summaryrefslogtreecommitdiff
path: root/cesar/ce/rx/bitloading/test
diff options
context:
space:
mode:
authorJalil Chemseddine2012-10-12 11:13:19 +0200
committerJalil Chemseddine2012-11-07 11:10:05 +0100
commit2e67e3fdff60d15a64e727de8fac3d0473261d92 (patch)
tree6545b9f33db0a3d6a37891e99647a01d61997364 /cesar/ce/rx/bitloading/test
parent0cc6d0dc71ce45a1d5a5078d0ae5aacaf17f0aba (diff)
cesar/ce/rx/bl: remove tonemap update tests, refs #3310
Diffstat (limited to 'cesar/ce/rx/bitloading/test')
-rw-r--r--cesar/ce/rx/bitloading/test/common-define.mk14
-rw-r--r--cesar/ce/rx/bitloading/test/common-rule.mk4
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_opti_table_shift.data32
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data1536
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_2_opti_table.data917
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_3_ber_input.data15
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data1
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data1536
-rw-r--r--cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data1
-rw-r--r--cesar/ce/rx/bitloading/test/data/test_content.txt22
-rw-r--r--cesar/ce/rx/bitloading/test/src/test_bl.c758
11 files changed, 5 insertions, 4831 deletions
diff --git a/cesar/ce/rx/bitloading/test/common-define.mk b/cesar/ce/rx/bitloading/test/common-define.mk
index eea97f142d..14fa54bc44 100644
--- a/cesar/ce/rx/bitloading/test/common-define.mk
+++ b/cesar/ce/rx/bitloading/test/common-define.mk
@@ -23,20 +23,13 @@ bl_test_vectors_tns = nsr_on_sound.data mean_on_sound_nsr.data \
tonemap_initial_2db_nsr_margin_0_01_ber_margin.data \
tonemap_initial_3db_nsr_margin_0_00_ber_margin.data \
tonemap_initial_3db_nsr_margin_0_01_ber_margin.data \
- tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.data \
- bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data \
- bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data
+ tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.data
bl_test_vectors_ber_tns = ber_quantify.data
+
# Test vectors from scilab.
bl_test_vectors_scilab = polynomial_nsr.data polynomial_raw.data
-# Test vectors for tone map update.
-bl_test_vectors_tm_update = bl_iteratif_opti_table_shift.data \
- bl_iteratif_tm_update_new_tm_IN_2_opti_table.data \
- bl_iteratif_tm_update_new_tm_IN_3_ber_input.data \
- bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data \
- bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data
# Test vectors for Pber.
bl_test_vectors_pber = pber_vector.data
@@ -51,7 +44,6 @@ bl_test_vectors_dir = data
# Generate header list.
bl_test_vectors_tns_h = $(bl_test_vectors_tns:%.data=$(OBJ_INC_DIR)/%.h)
bl_test_vectors_scilab_h = $(bl_test_vectors_scilab:%.data=$(OBJ_INC_DIR)/%.h)
-bl_test_vectors_tm_update_h = $(bl_test_vectors_tm_update:%.data=$(OBJ_INC_DIR)/%.h)
bl_test_vectors_pber_h = $(bl_test_vectors_pber:%.data=$(OBJ_INC_DIR)/%.h)
bl_test_vectors_ber_margin_update_h = $(bl_test_vectors_ber_margin_update:%.data=$(OBJ_INC_DIR)/%.h)
bl_test_vectors_ber_tns_h = $(bl_test_vectors_ber_tns:%.data=$(OBJ_INC_DIR)/%.h)
@@ -59,7 +51,6 @@ bl_test_vectors_ber_tns_h = $(bl_test_vectors_ber_tns:%.data=$(OBJ_INC_DIR)/%.h)
# Add it to the compile dependencies.
COMPILE_DEPS += $(bl_test_vectors_tns_h) \
$(bl_test_vectors_scilab_h) \
- $(bl_test_vectors_tm_update_h) \
$(bl_test_vectors_pber_h) \
$(bl_test_vectors_ber_margin_update_h) \
$(bl_test_vectors_ber_tns_h)
@@ -67,7 +58,6 @@ COMPILE_DEPS += $(bl_test_vectors_tns_h) \
# Add it to the clean rule.
CLEAN_FILES += $(bl_test_vectors_tns_h) $(bl_test_vectors_scilab_h) $(bl_test_vectors_ber_tns_h) \
$(bl_test_vectors_scilab:%=$(bl_test_vectors_dir)/%) \
- $(bl_test_vectors_tm_update_h:%=$(bl_test_vectors_dir_h)/%) \
$(bl_test_vectors_pber_h:%=$(bl_test_vectors_dir_h)/%.) \
$(bl_test_vectors_ber_margin_update_h:%=$(bl_test_vectors_dir_h)/%)
diff --git a/cesar/ce/rx/bitloading/test/common-rule.mk b/cesar/ce/rx/bitloading/test/common-rule.mk
index 96c6564af4..8c056944dd 100644
--- a/cesar/ce/rx/bitloading/test/common-rule.mk
+++ b/cesar/ce/rx/bitloading/test/common-rule.mk
@@ -12,10 +12,6 @@ $(bl_test_vectors_scilab_h): $(OBJ_INC_DIR)/%.h : $(bl_test_vectors_dir)/%.data
$(bl_test_vector_tools) $(OBJ_INC_DIR_STAMP)
$(bl_test_vector_tools) $(@:$(OBJ_INC_DIR)/%.h=%) -d < $< > $@
-$(bl_test_vectors_tm_update_h): $(OBJ_INC_DIR)/%.h : $(bl_test_vectors_dir)/%.data \
- $(bl_test_vector_tools) $(OBJ_INC_DIR_STAMP)
- $(bl_test_vector_tools) $(@:$(OBJ_INC_DIR)/%.h=%) -u < $< > $@
-
$(bl_test_vectors_pber_h): $(OBJ_INC_DIR)/%.h : $(bl_test_vectors_dir)/%.data \
$(bl_test_vector_tools) $(OBJ_INC_DIR_STAMP)
$(bl_test_vector_tools) $(@:$(OBJ_INC_DIR)/%.h=%) < $< > $@
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_opti_table_shift.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_opti_table_shift.data
deleted file mode 100644
index 5b475529d8..0000000000
--- a/cesar/ce/rx/bitloading/test/data/bl_iteratif_opti_table_shift.data
+++ /dev/null
@@ -1,32 +0,0 @@
-143520054238126 117843660550594 119294766166798 11 1
-143520054238126 122835040875281 127214378397664 3 1
-166038052374979 130119232407151 136887186436980 12 1
-166038052374979 137761637877759 146871681205943 3 1
-211074048648685 167383300393285 178956846352532 9 1
-233592046785538 188730695008516 201837691459334 6 1
-255566706426391 211318098870518 225287781290925 4 1
-121002056101273 119921369382117 121761934688575 6 0
-142039795511488 115638122924601 114076724660046 14 1
-142039795511488 119468101107796 121392466829804 8 1
-142039795511488 135301093293130 146053632056458 24 0
-142039795511488 170475837227030 201536695668297 336 0
-142039795511488 152595762963824 154470289055608 71 0
-142039795511488 127729150455425 113074292431388 1 1
-142039795511488 118146821976928 104632032980343 11 1
-142039795511488 115076137762840 106746484071724 14 1
-142039795511488 116033653859465 112864389374955 13 1
-164557793648341 122360803372328 125310693181616 21 1
-164557793648341 131425858536650 138975024002580 9 1
-164295864833177 42922630043236 42245097066940 95 1
-164295864833177 48910400263310 53135885151496 86 1
-164295864833177 58263510495131 68117943840481 73 1
-164295864833177 70360328605465 85680541178539 57 1
-186380711423175 85009540682521 105613784582749 50 1
-186380711423175 103968570736590 130857687052131 30 1
-186380711423175 120634787573828 150739587235872 14 1
-186380711423175 137986279280586 170542535494536 0 2
-186380711423175 139217934625068 171479771673471 0 2
-186380711423175 140432805592774 172397239997239 0 2
-186380711423175 161562863499371 188229960180114 9 0
-186380711423175 170531226845154 194201237824336 35 0
-186380711423175 174746157962532 192089619775724 26 0
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data
deleted file mode 100644
index dd4279040a..0000000000
--- a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data
+++ /dev/null
@@ -1,1536 +0,0 @@
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-6 4 4 6 6 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 6 4 4 4 4 4 4 4 4
-6 4 4 6 4 4 6 4 4 4 4 4 4 4 4
-6 4 4 6 6 6 6 4 4 4 4 4 4 4 4
-6 4 4 6 6 6 6 6 4 4 4 4 4 4 6
-6 4 4 6 6 6 6 6 4 4 4 4 4 4 4
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 4 6 6 4 4 4 4 4 4 4
-6 4 4 6 6 6 6 6 4 4 4 4 4 4 4
-6 4 4 6 6 4 6 4 4 4 4 4 4 4 4
-4 4 4 6 4 4 6 4 4 4 4 4 4 4 4
-6 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 6 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 3 3 3 3 3 3 3 3 3
-3 3 3 4 4 4 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 2 3 3 2 3 3 3 3 3 3 3 3 3
-3 3 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 3 3 3 3 3 2 2 2 3 3 3 3
-3 2 2 3 3 3 3 3 2 2 2 2 2 2 3
-3 2 2 3 3 3 3 3 2 2 2 2 2 2 2
-3 2 2 3 3 3 3 2 2 2 2 2 2 2 2
-3 2 2 3 3 3 3 3 2 2 2 2 2 2 2
-3 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 3 3 3 3 3 2 2 2 2 2 3 3
-3 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 2 3 3 3 3 3 3 3 3 3 3 3 3
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 3 3 3 4 4 3 3 3 3 3 4 4
-4 3 3 4 4 4 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-3 2 2 2 2 2 3 2 2 2 2 2 2 2 2
-3 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-3 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 3 2 2 2 2 2 2 2 2
-3 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 2 2 2 2 2 2 2 2 2 2
-3 2 2 3 3 2 3 2 2 2 2 2 2 2 2
-3 2 2 3 3 3 3 3 2 2 2 2 2 2 2
-3 2 2 3 3 2 2 2 2 2 2 2 2 2 2
-3 2 2 3 3 3 3 2 2 2 2 2 2 2 2
-3 2 2 2 2 2 3 2 2 2 2 2 2 2 2
-3 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-3 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 3 2 2 2 2 2 2 2 2
-3 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 1 1 1 1 1 1 1
-2 2 1 2 2 2 2 1 1 1 1 1 1 1 1
-2 1 1 2 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 2 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 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 1 1 1
-1 1 0 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 0 0 0 0 0 0 0 0
-1 0 0 1 1 1 1 1 0 0 0 0 0 0 0
-1 0 0 1 1 0 1 0 0 0 0 0 0 0 0
-0 0 0 1 1 1 1 1 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 0 0 1 1 1 0 0 0 0 0 0 0 0 0
-1 0 0 1 1 1 1 1 0 0 0 0 0 0 1
-1 0 0 1 1 1 1 1 0 0 0 0 0 0 0
-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 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 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 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 2 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 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
-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 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 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 2 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 2 2 2 1 1 1 1 1 1 1 1 1
-2 1 1 2 2 2 2 2 1 1 1 1 1 1 1
-2 1 1 2 2 1 1 1 1 1 1 1 1 1 1
-2 1 1 2 2 1 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 1 1 1 1 1 1 1
-2 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-2 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-2 2 2 2 2 2 2 1 1 1 1 1 1 1 1
-2 2 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 1 1 1 1 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 3 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 3 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 3 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-3 2 2 3 3 2 3 2 2 2 2 2 2 2 2
-3 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-3 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-3 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-3 2 2 3 3 2 3 2 2 2 2 2 2 2 2
-3 2 2 3 2 2 3 2 2 2 2 2 2 2 2
-3 2 2 3 3 3 3 3 2 2 2 2 2 2 2
-3 2 2 3 2 2 3 3 2 2 2 2 2 2 3
-3 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-3 2 2 2 2 2 3 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 3 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 3 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 3 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 1 2 2 2 2 2 1 1 1 2 2 2 2
-2 2 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 1 1 1 1 1 1 2
-2 1 1 2 2 2 2 2 1 1 1 1 1 2 2
-2 1 1 2 2 2 2 2 1 1 1 1 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 2 1 1 1 1 1 2 2
-2 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-2 1 1 2 2 1 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 2 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 2 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 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
-2 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 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
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 2 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 2 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 2 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 2 1 1 1 1 1 1 1 1 1 1 1
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 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
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 2 2 1 1 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 1 1 1 1 1 1 1 1 1
-1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
-1 1 1 2 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 2 2 1 1 1 1 1 1 2
-1 1 1 2 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 2 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 2 2 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 2 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 2 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 2 1 1 1 1 1 1 1 1
-2 1 1 2 1 1 2 2 1 1 1 1 1 1 1
-2 1 1 2 1 1 2 2 1 1 1 1 2 2 2
-2 1 1 2 2 2 2 2 1 1 1 1 1 1 1
-2 1 1 2 2 2 1 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 1 1 1 1 1 1 1
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 2 2 1 1 1 1 1 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 1 2 2 1 1 1 1 1 1 1
-1 1 1 2 2 1 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-2 1 1 2 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-2 1 1 2 2 2 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
-2 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 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 1 1 1 1 1 1
-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
-1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-0 0 0 1 1 1 1 1 0 0 0 0 0 0 0
-1 0 0 0 0 0 1 1 0 0 0 0 0 0 0
-0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 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/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_2_opti_table.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_2_opti_table.data
deleted file mode 100644
index d05697b62e..0000000000
--- a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_2_opti_table.data
+++ /dev/null
@@ -1,917 +0,0 @@
-308 308 308 678 678 678 459 459 459 459 459 459 459 459 459
-647 647 647 456 456 456 390 390 390 390 390 390 390 390 390
-378 378 378 675 675 675 478 478 478 478 478 478 478 478 478
-305 305 305 369 369 369 381 381 381 381 381 381 381 381 381
-463 463 463 371 371 371 274 274 274 274 274 274 274 274 274
-369 369 369 449 449 449 468 468 468 468 468 468 468 468 468
-935 935 935 477 477 477 450 450 450 450 450 450 450 450 450
-605 605 605 127 127 127 462 462 462 462 462 462 462 462 462
-353 353 353 680 680 680 391 391 391 391 391 391 391 391 391
-368 368 368 805 805 805 684 684 684 684 684 684 684 684 684
-128 128 128 126 126 126 370 370 370 370 370 370 370 370 370
-126 126 126 468 468 468 679 679 679 679 679 679 679 679 679
-467 467 467 455 455 455 374 374 374 374 374 374 374 374 374
-273 273 273 408 408 408 460 460 460 460 460 460 460 460 460
-382 382 382 460 460 460 682 682 682 682 682 682 682 682 682
-446 446 446 410 410 410 254 254 254 254 254 254 254 254 254
-356 356 356 354 354 354 371 371 371 371 371 371 371 371 371
-802 802 802 282 282 282 649 649 649 649 649 649 649 649 649
-407 407 407 531 531 531 355 355 355 355 355 355 355 355 355
-452 452 452 544 544 544 541 541 541 541 541 541 541 541 541
-275 275 275 376 376 376 352 352 352 352 352 352 352 352 352
-371 371 371 459 459 459 449 449 449 449 449 449 449 449 449
-253 253 253 808 808 808 369 369 369 369 369 369 369 369 369
-464 464 464 272 272 272 465 465 465 465 465 465 465 465 465
-447 447 447 358 358 358 281 281 281 281 281 281 281 281 281
-469 469 469 931 931 931 648 648 648 648 648 648 648 648 648
-391 391 391 604 604 604 272 272 272 272 272 272 272 272 272
-406 406 406 464 464 464 676 676 676 676 676 676 676 676 676
-359 359 359 377 377 377 674 674 674 674 674 674 674 674 674
-449 449 449 688 688 688 306 306 306 306 306 306 306 306 306
-354 354 354 463 463 463 456 456 456 456 456 456 456 456 456
-282 282 282 273 273 273 461 461 461 461 461 461 461 461 461
-392 392 392 283 283 283 408 408 408 408 408 408 408 408 408
-458 458 458 365 365 365 935 935 935 935 935 935 935 935 935
-547 547 547 254 254 254 529 529 529 529 529 529 529 529 529
-456 456 456 445 445 445 441 441 441 441 441 441 441 441 441
-544 544 544 466 466 466 467 467 467 467 467 467 467 467 467
-604 604 604 277 277 277 804 804 804 804 804 804 804 804 804
-648 648 648 446 446 446 392 392 392 392 392 392 392 392 392
-307 307 307 532 532 532 454 454 454 454 454 454 454 454 454
-800 800 800 368 368 368 307 307 307 307 307 307 307 307 307
-531 531 531 443 443 443 276 276 276 276 276 276 276 276 276
-383 383 383 370 370 370 466 466 466 466 466 466 466 466 466
-548 548 548 454 454 454 455 455 455 455 455 455 455 455 455
-271 271 271 406 406 406 650 650 650 650 650 650 650 650 650
-384 384 384 409 409 409 934 934 934 934 934 934 934 934 934
-457 457 457 304 304 304 936 936 936 936 936 936 936 936 936
-459 459 459 690 690 690 366 366 366 366 366 366 366 366 366
-649 649 649 128 128 128 367 367 367 367 367 367 367 367 367
-451 451 451 382 382 382 363 363 363 363 363 363 363 363 363
-268 268 268 461 461 461 128 128 128 128 128 128 128 128 128
-462 462 462 130 130 130 380 380 380 380 380 380 380 380 380
-934 934 934 441 441 441 368 368 368 368 368 368 368 368 368
-468 468 468 451 451 451 452 452 452 452 452 452 452 452 452
-256 256 256 359 359 359 686 686 686 686 686 686 686 686 686
-804 804 804 684 684 684 443 443 443 443 443 443 443 443 443
-533 533 533 603 603 603 815 815 815 815 815 815 815 815 815
-366 366 366 274 274 274 480 480 480 480 480 480 480 480 480
-438 438 438 934 934 934 606 606 606 606 606 606 606 606 606
-678 678 678 467 467 467 382 382 382 382 382 382 382 382 382
-479 479 479 191 191 191 364 364 364 364 364 364 364 364 364
-137 137 137 192 192 192 453 453 453 453 453 453 453 453 453
-460 460 460 812 812 812 193 193 193 193 193 193 193 193 193
-465 465 465 87 87 87 457 457 457 457 457 457 457 457 457
-255 255 255 281 281 281 305 305 305 305 305 305 305 305 305
-644 644 644 436 436 436 543 543 543 543 543 543 543 543 543
-470 470 470 366 366 366 445 445 445 445 445 445 445 445 445
-193 193 193 683 683 683 409 409 409 409 409 409 409 409 409
-472 472 472 305 305 305 189 189 189 189 189 189 189 189 189
-132 132 132 363 363 363 410 410 410 410 410 410 410 410 410
-304 304 304 271 271 271 448 448 448 448 448 448 448 448 448
-357 357 357 188 188 188 354 354 354 354 354 354 354 354 354
-408 408 408 356 356 356 282 282 282 282 282 282 282 282 282
-363 363 363 937 937 937 437 437 437 437 437 437 437 437 437
-684 684 684 270 270 270 451 451 451 451 451 451 451 451 451
-681 681 681 439 439 439 442 442 442 442 442 442 442 442 442
-433 433 433 447 447 447 464 464 464 464 464 464 464 464 464
-444 444 444 407 407 407 479 479 479 479 479 479 479 479 479
-188 188 188 383 383 383 446 446 446 446 446 446 446 446 446
-534 534 534 935 935 935 434 434 434 434 434 434 434 434 434
-409 409 409 375 375 375 444 444 444 444 444 444 444 444 444
-355 355 355 471 471 471 938 938 938 938 938 938 938 938 938
-431 431 431 392 392 392 356 356 356 356 356 356 356 356 356
-480 480 480 362 362 362 647 647 647 647 647 647 647 647 647
-270 270 270 129 129 129 680 680 680 680 680 680 680 680 680
-436 436 436 367 367 367 357 357 357 357 357 357 357 357 357
-806 806 806 809 809 809 447 447 447 447 447 447 447 447 447
-545 545 545 480 480 480 360 360 360 360 360 360 360 360 360
-130 130 130 133 133 133 469 469 469 469 469 469 469 469 469
-135 135 135 138 138 138 531 531 531 531 531 531 531 531 531
-546 546 546 457 457 457 406 406 406 406 406 406 406 406 406
-439 439 439 405 405 405 361 361 361 361 361 361 361 361 361
-358 358 358 360 360 360 438 438 438 438 438 438 438 438 438
-442 442 442 385 385 385 87 87 87 87 87 87 87 87 87
-807 807 807 469 469 469 192 192 192 192 192 192 192 192 192
-803 803 803 434 434 434 807 807 807 807 807 807 807 807 807
-404 404 404 546 546 546 362 362 362 362 362 362 362 362 362
-364 364 364 190 190 190 129 129 129 129 129 129 129 129 129
-432 432 432 194 194 194 424 424 424 424 424 424 424 424 424
-136 136 136 197 197 197 440 440 440 440 440 440 440 440 440
-430 430 430 685 685 685 385 385 385 385 385 385 385 385 385
-191 191 191 255 255 255 436 436 436 436 436 436 436 436 436
-269 269 269 430 430 430 393 393 393 393 393 393 393 393 393
-448 448 448 433 433 433 645 645 645 645 645 645 645 645 645
-385 385 385 533 533 533 811 811 811 811 811 811 811 811 811
-87 87 87 357 357 357 359 359 359 359 359 359 359 359 359
-685 685 685 438 438 438 685 685 685 685 685 685 685 685 685
-680 680 680 442 442 442 190 190 190 190 190 190 190 190 190
-937 937 937 545 545 545 358 358 358 358 358 358 358 358 358
-434 434 434 643 643 643 547 547 547 547 547 547 547 547 547
-437 437 437 472 472 472 806 806 806 806 806 806 806 806 806
-936 936 936 602 602 602 195 195 195 195 195 195 195 195 195
-129 129 129 938 938 938 941 941 941 941 941 941 941 941 941
-365 365 365 551 551 551 138 138 138 138 138 138 138 138 138
-428 428 428 136 136 136 365 365 365 365 365 365 365 365 365
-361 361 361 384 384 384 273 273 273 273 273 273 273 273 273
-362 362 362 189 189 189 471 471 471 471 471 471 471 471 471
-405 405 405 193 193 193 394 394 394 394 394 394 394 394 394
-410 410 410 444 444 444 407 407 407 407 407 407 407 407 407
-266 266 266 393 393 393 431 431 431 431 431 431 431 431 431
-445 445 445 137 137 137 188 188 188 188 188 188 188 188 188
-443 443 443 364 364 364 191 191 191 191 191 191 191 191 191
-440 440 440 185 185 185 395 395 395 395 395 395 395 395 395
-429 429 429 437 437 437 139 139 139 139 139 139 139 139 139
-471 471 471 269 269 269 256 256 256 256 256 256 256 256 256
-426 426 426 268 268 268 470 470 470 470 470 470 470 470 470
-190 190 190 428 428 428 187 187 187 187 187 187 187 187 187
-140 140 140 131 131 131 198 198 198 198 198 198 198 198 198
-461 461 461 361 361 361 820 820 820 820 820 820 820 820 820
-258 258 258 432 432 432 428 428 428 428 428 428 428 428 428
-131 131 131 470 470 470 265 265 265 265 265 265 265 265 265
-197 197 197 257 257 257 130 130 130 130 130 130 130 130 130
-267 267 267 135 135 135 472 472 472 472 472 472 472 472 472
-395 395 395 424 424 424 196 196 196 196 196 196 196 196 196
-427 427 427 427 427 427 810 810 810 810 810 810 810 810 810
-645 645 645 132 132 132 255 255 255 255 255 255 255 255 255
-386 386 386 267 267 267 271 271 271 271 271 271 271 271 271
-435 435 435 645 645 645 131 131 131 131 131 131 131 131 131
-187 187 187 435 435 435 481 481 481 481 481 481 481 481 481
-810 810 810 386 386 386 197 197 197 197 197 197 197 197 197
-473 473 473 816 816 816 267 267 267 267 267 267 267 267 267
-424 424 424 266 266 266 270 270 270 270 270 270 270 270 270
-474 474 474 440 440 440 403 403 403 403 403 403 403 403 403
-393 393 393 195 195 195 194 194 194 194 194 194 194 194 194
-196 196 196 199 199 199 435 435 435 435 435 435 435 435 435
-360 360 360 534 534 534 646 646 646 646 646 646 646 646 646
-138 138 138 256 256 256 199 199 199 199 199 199 199 199 199
-387 387 387 425 425 425 283 283 283 283 283 283 283 283 283
-535 535 535 187 187 187 475 475 475 475 475 475 475 475 475
-441 441 441 263 263 263 423 423 423 423 423 423 423 423 423
-192 192 192 547 547 547 405 405 405 405 405 405 405 405 405
-133 133 133 139 139 139 426 426 426 426 426 426 426 426 426
-262 262 262 479 479 479 133 133 133 133 133 133 133 133 133
-394 394 394 473 473 473 430 430 430 430 430 430 430 430 430
-263 263 263 398 398 398 473 473 473 473 473 473 473 473 473
-809 809 809 387 387 387 134 134 134 134 134 134 134 134 134
-805 805 805 264 264 264 384 384 384 384 384 384 384 384 384
-425 425 425 429 429 429 132 132 132 132 132 132 132 132 132
-475 475 475 431 431 431 137 137 137 137 137 137 137 137 137
-388 388 388 140 140 140 439 439 439 439 439 439 439 439 439
-257 257 257 810 810 810 605 605 605 605 605 605 605 605 605
-476 476 476 936 936 936 939 939 939 939 939 939 939 939 939
-283 283 283 481 481 481 304 304 304 304 304 304 304 304 304
-189 189 189 259 259 259 433 433 433 433 433 433 433 433 433
-812 812 812 400 400 400 404 404 404 404 404 404 404 404 404
-139 139 139 426 426 426 140 140 140 140 140 140 140 140 140
-134 134 134 134 134 134 425 425 425 425 425 425 425 425 425
-185 185 185 548 548 548 530 530 530 530 530 530 530 530 530
-194 194 194 388 388 388 257 257 257 257 257 257 257 257 257
-264 264 264 813 813 813 135 135 135 135 135 135 135 135 135
-603 603 603 399 399 399 136 136 136 136 136 136 136 136 136
-423 423 423 423 423 423 546 546 546 546 546 546 546 546 546
-265 265 265 474 474 474 474 474 474 474 474 474 474 474 474
-259 259 259 262 262 262 258 258 258 258 258 258 258 258 258
-422 422 422 395 395 395 422 422 422 422 422 422 422 422 422
-549 549 549 389 389 389 427 427 427 427 427 427 427 427 427
-261 261 261 186 186 186 184 184 184 184 184 184 184 184 184
-198 198 198 817 817 817 386 386 386 386 386 386 386 386 386
-260 260 260 939 939 939 185 185 185 185 185 185 185 185 185
-389 389 389 265 265 265 262 262 262 262 262 262 262 262 262
-195 195 195 641 641 641 387 387 387 387 387 387 387 387 387
-814 814 814 404 404 404 269 269 269 269 269 269 269 269 269
-186 186 186 260 260 260 532 532 532 532 532 532 532 532 532
-682 682 682 258 258 258 429 429 429 429 429 429 429 429 429
-199 199 199 475 475 475 186 186 186 186 186 186 186 186 186
-390 390 390 549 549 549 916 916 916 916 916 916 916 916 916
-421 421 421 422 422 422 266 266 266 266 266 266 266 266 266
-396 396 396 401 401 401 432 432 432 432 432 432 432 432 432
-729 729 729 814 814 814 533 533 533 533 533 533 533 533 533
-938 938 938 184 184 184 918 918 918 918 918 918 918 918 918
-811 811 811 198 198 198 261 261 261 261 261 261 261 261 261
-478 478 478 261 261 261 268 268 268 268 268 268 268 268 268
-643 643 643 397 397 397 476 476 476 476 476 476 476 476 476
-402 402 402 196 196 196 388 388 388 388 388 388 388 388 388
-908 908 908 421 421 421 421 421 421 421 421 421 421 421 421
-477 477 477 403 403 403 263 263 263 263 263 263 263 263 263
-850 850 850 940 940 940 389 389 389 389 389 389 389 389 389
-536 536 536 644 644 644 401 401 401 401 401 401 401 401 401
-642 642 642 915 915 915 264 264 264 264 264 264 264 264 264
-403 403 403 920 920 920 683 683 683 683 683 683 683 683 683
-639 639 639 391 391 391 200 200 200 200 200 200 200 200 200
-481 481 481 402 402 402 940 940 940 940 940 940 940 940 940
-482 482 482 390 390 390 914 914 914 914 914 914 914 914 914
-200 200 200 815 815 815 604 604 604 604 604 604 604 604 604
-602 602 602 476 476 476 260 260 260 260 260 260 260 260 260
-201 201 201 535 535 535 640 640 640 640 640 640 640 640 640
-397 397 397 478 478 478 259 259 259 259 259 259 259 259 259
-853 853 853 911 911 911 808 808 808 808 808 808 808 808 808
-731 731 731 183 183 183 937 937 937 937 937 937 937 937 937
-847 847 847 818 818 818 913 913 913 913 913 913 913 913 913
-640 640 640 811 811 811 911 911 911 911 911 911 911 911 911
-829 829 829 637 637 637 396 396 396 396 396 396 396 396 396
-813 813 813 909 909 909 809 809 809 809 809 809 809 809 809
-184 184 184 910 910 910 681 681 681 681 681 681 681 681 681
-483 483 483 916 916 916 908 908 908 908 908 908 908 908 908
-183 183 183 726 726 726 814 814 814 814 814 814 814 814 814
-550 550 550 914 914 914 402 402 402 402 402 402 402 402 402
-733 733 733 913 913 913 818 818 818 818 818 818 818 818 818
-641 641 641 396 396 396 477 477 477 477 477 477 477 477 477
-537 537 537 601 601 601 915 915 915 915 915 915 915 915 915
-400 400 400 642 642 642 813 813 813 813 813 813 813 813 813
-906 906 906 181 181 181 812 812 812 812 812 812 812 812 812
-401 401 401 919 919 919 896 896 896 896 896 896 896 896 896
-730 730 730 182 182 182 602 602 602 602 602 602 602 602 602
-939 939 939 892 892 892 182 182 182 182 182 182 182 182 182
-855 855 855 505 505 505 397 397 397 397 397 397 397 397 397
-886 886 886 727 727 727 732 732 732 732 732 732 732 732 732
-182 182 182 200 200 200 201 201 201 201 201 201 201 201 201
-909 909 909 912 912 912 909 909 909 909 909 909 909 909 909
-399 399 399 202 202 202 904 904 904 904 904 904 904 904 904
-504 504 504 638 638 638 400 400 400 400 400 400 400 400 400
-819 819 819 728 728 728 943 943 943 943 943 943 943 943 943
-857 857 857 556 556 556 638 638 638 638 638 638 638 638 638
-941 941 941 733 733 733 202 202 202 202 202 202 202 202 202
-940 940 940 500 500 500 503 503 503 503 503 503 503 503 503
-638 638 638 731 731 731 731 731 731 731 731 731 731 731 731
-815 815 815 905 905 905 942 942 942 942 942 942 942 942 942
-839 839 839 942 942 942 183 183 183 183 183 183 183 183 183
-734 734 734 941 941 941 641 641 641 641 641 641 641 641 641
-889 889 889 819 819 819 907 907 907 907 907 907 907 907 907
-822 822 822 503 503 503 840 840 840 840 840 840 840 840 840
-848 848 848 923 923 923 534 534 534 534 534 534 534 534 534
-914 914 914 918 918 918 900 900 900 900 900 900 900 900 900
-398 398 398 917 917 917 917 917 917 917 917 917 917 917 917
-943 943 943 394 394 394 549 549 549 549 549 549 549 549 549
-502 502 502 820 820 820 603 603 603 603 603 603 603 603 603
-852 852 852 724 724 724 398 398 398 398 398 398 398 398 398
-816 816 816 178 178 178 853 853 853 853 853 853 853 853 853
-856 856 856 502 502 502 912 912 912 912 912 912 912 912 912
-178 178 178 203 203 203 551 551 551 551 551 551 551 551 551
-849 849 849 550 550 550 822 822 822 822 822 822 822 822 822
-203 203 203 821 821 821 729 729 729 729 729 729 729 729 729
-496 496 496 729 729 729 901 901 901 901 901 901 901 901 901
-824 824 824 639 639 639 816 816 816 816 816 816 816 816 816
-728 728 728 201 201 201 906 906 906 906 906 906 906 906 906
-820 820 820 504 504 504 181 181 181 181 181 181 181 181 181
-910 910 910 501 501 501 483 483 483 483 483 483 483 483 483
-846 846 846 890 890 890 902 902 902 902 902 902 902 902 902
-912 912 912 640 640 640 842 842 842 842 842 842 842 842 842
-507 507 507 907 907 907 856 856 856 856 856 856 856 856 856
-181 181 181 723 723 723 642 642 642 642 642 642 642 642 642
-500 500 500 921 921 921 644 644 644 644 644 644 644 644 644
-484 484 484 537 537 537 204 204 204 204 204 204 204 204 204
-510 510 510 536 536 536 734 734 734 734 734 734 734 734 734
-921 921 921 496 496 496 399 399 399 399 399 399 399 399 399
-854 854 854 732 732 732 823 823 823 823 823 823 823 823 823
-825 825 825 894 894 894 722 722 722 722 722 722 722 722 722
-923 923 923 635 635 635 844 844 844 844 844 844 844 844 844
-202 202 202 903 903 903 506 506 506 506 506 506 506 506 506
-180 180 180 730 730 730 817 817 817 817 817 817 817 817 817
-724 724 724 180 180 180 889 889 889 889 889 889 889 889 889
-732 732 732 908 908 908 845 845 845 845 845 845 845 845 845
-887 887 887 898 898 898 615 615 615 615 615 615 615 615 615
-503 503 503 204 204 204 905 905 905 905 905 905 905 905 905
-727 727 727 735 735 735 735 735 735 735 735 735 735 735 735
-828 828 828 852 852 852 824 824 824 824 824 824 824 824 824
-601 601 601 717 717 717 944 944 944 944 944 944 944 944 944
-851 851 851 497 497 497 891 891 891 891 891 891 891 891 891
-888 888 888 725 725 725 826 826 826 826 826 826 826 826 826
-725 725 725 893 893 893 730 730 730 730 730 730 730 730 730
-826 826 826 826 826 826 887 887 887 887 887 887 887 887 887
-916 916 916 721 721 721 946 946 946 946 946 946 946 946 946
-506 506 506 736 736 736 502 502 502 502 502 502 502 502 502
-907 907 907 897 897 897 841 841 841 841 841 841 841 841 841
-926 926 926 507 507 507 819 819 819 819 819 819 819 819 819
-843 843 843 857 857 857 613 613 613 613 613 613 613 613 613
-833 833 833 718 718 718 719 719 719 719 719 719 719 719 719
-922 922 922 205 205 205 535 535 535 535 535 535 535 535 535
-505 505 505 600 600 600 825 825 825 825 825 825 825 825 825
-205 205 205 899 899 899 903 903 903 903 903 903 903 903 903
-508 508 508 616 616 616 180 180 180 180 180 180 180 180 180
-913 913 913 614 614 614 548 548 548 548 548 548 548 548 548
-945 945 945 887 887 887 550 550 550 550 550 550 550 550 550
-817 817 817 823 823 823 509 509 509 509 509 509 509 509 509
-552 552 552 499 499 499 724 724 724 724 724 724 724 724 724
-509 509 509 757 757 757 203 203 203 203 203 203 203 203 203
-823 823 823 179 179 179 206 206 206 206 206 206 206 206 206
-511 511 511 720 720 720 505 505 505 505 505 505 505 505 505
-553 553 553 854 854 854 850 850 850 850 850 850 850 850 850
-841 841 841 835 835 835 852 852 852 852 852 852 852 852 852
-112 112 112 770 770 770 854 854 854 854 854 854 854 854 854
-821 821 821 613 613 613 736 736 736 736 736 736 736 736 736
-208 208 208 506 506 506 643 643 643 643 643 643 643 643 643
-773 773 773 206 206 206 888 888 888 888 888 888 888 888 888
-903 903 903 482 482 482 179 179 179 179 179 179 179 179 179
-896 896 896 552 552 552 774 774 774 774 774 774 774 774 774
-885 885 885 734 734 734 721 721 721 721 721 721 721 721 721
-204 204 204 207 207 207 897 897 897 897 897 897 897 897 897
-904 904 904 906 906 906 920 920 920 920 920 920 920 920 920
-844 844 844 944 944 944 919 919 919 919 919 919 919 919 919
-551 551 551 851 851 851 499 499 499 499 499 499 499 499 499
-836 836 836 608 608 608 601 601 601 601 601 601 601 601 601
-211 211 211 636 636 636 855 855 855 855 855 855 855 855 855
-723 723 723 902 902 902 725 725 725 725 725 725 725 725 725
-176 176 176 922 922 922 910 910 910 910 910 910 910 910 910
-920 920 920 889 889 889 504 504 504 504 504 504 504 504 504
-842 842 842 177 177 177 899 899 899 899 899 899 899 899 899
-539 539 539 513 513 513 945 945 945 945 945 945 945 945 945
-919 919 919 209 209 209 508 508 508 508 508 508 508 508 508
-845 845 845 924 924 924 501 501 501 501 501 501 501 501 501
-915 915 915 722 722 722 728 728 728 728 728 728 728 728 728
-600 600 600 619 619 619 733 733 733 733 733 733 733 733 733
-735 735 735 553 553 553 205 205 205 205 205 205 205 205 205
-538 538 538 947 947 947 500 500 500 500 500 500 500 500 500
-619 619 619 599 599 599 208 208 208 208 208 208 208 208 208
-722 722 722 888 888 888 507 507 507 507 507 507 507 507 507
-206 206 206 483 483 483 639 639 639 639 639 639 639 639 639
-764 764 764 904 904 904 482 482 482 482 482 482 482 482 482
-115 115 115 610 610 610 611 611 611 611 611 611 611 611 611
-767 767 767 210 210 210 726 726 726 726 726 726 726 726 726
-635 635 635 509 509 509 839 839 839 839 839 839 839 839 839
-726 726 726 827 827 827 831 831 831 831 831 831 831 831 831
-759 759 759 612 612 612 720 720 720 720 720 720 720 720 720
-111 111 111 617 617 617 821 821 821 821 821 821 821 821 821
-554 554 554 853 853 853 836 836 836 836 836 836 836 836 836
-636 636 636 856 856 856 512 512 512 512 512 512 512 512 512
-818 818 818 514 514 514 843 843 843 843 843 843 843 843 843
-177 177 177 555 555 555 614 614 614 614 614 614 614 614 614
-637 637 637 719 719 719 851 851 851 851 851 851 851 851 851
-942 942 942 830 830 830 885 885 885 885 885 885 885 885 885
-944 944 944 609 609 609 895 895 895 895 895 895 895 895 895
-827 827 827 622 622 622 207 207 207 207 207 207 207 207 207
-891 891 891 829 829 829 898 898 898 898 898 898 898 898 898
-831 831 831 176 176 176 716 716 716 716 716 716 716 716 716
-514 514 514 901 901 901 600 600 600 600 600 600 600 600 600
-210 210 210 714 714 714 886 886 886 886 886 886 886 886 886
-501 501 501 621 621 621 713 713 713 713 713 713 713 713 713
-905 905 905 175 175 175 723 723 723 723 723 723 723 723 723
-113 113 113 758 758 758 718 718 718 718 718 718 718 718 718
-895 895 895 849 849 849 538 538 538 538 538 538 538 538 538
-486 486 486 896 896 896 830 830 830 830 830 830 830 830 830
-623 623 623 111 111 111 552 552 552 552 552 552 552 552 552
-513 513 513 611 611 611 516 516 516 516 516 516 516 516 516
-928 928 928 848 848 848 612 612 612 612 612 612 612 612 612
-763 763 763 895 895 895 857 857 857 857 857 857 857 857 857
-238 238 238 841 841 841 618 618 618 618 618 618 618 618 618
-840 840 840 766 766 766 835 835 835 835 835 835 835 835 835
-756 756 756 618 618 618 949 949 949 949 949 949 949 949 949
-830 830 830 891 891 891 536 536 536 536 536 536 536 536 536
-634 634 634 715 715 715 846 846 846 846 846 846 846 846 846
-497 497 497 174 174 174 764 764 764 764 764 764 764 764 764
-771 771 771 623 623 623 513 513 513 513 513 513 513 513 513
-512 512 512 557 557 557 617 617 617 617 617 617 617 617 617
-884 884 884 850 850 850 511 511 511 511 511 511 511 511 511
-761 761 761 831 831 831 834 834 834 834 834 834 834 834 834
-179 179 179 498 498 498 947 947 947 947 947 947 947 947 947
-720 720 720 510 510 510 714 714 714 714 714 714 714 714 714
-911 911 911 846 846 846 838 838 838 838 838 838 838 838 838
-721 721 721 772 772 772 616 616 616 616 616 616 616 616 616
-755 755 755 824 824 824 833 833 833 833 833 833 833 833 833
-890 890 890 211 211 211 827 827 827 827 827 827 827 827 827
-736 736 736 240 240 240 637 637 637 637 637 637 637 637 637
-609 609 609 615 615 615 515 515 515 515 515 515 515 515 515
-770 770 770 765 765 765 175 175 175 175 175 175 175 175 175
-917 917 917 845 845 845 176 176 176 176 176 176 176 176 176
-924 924 924 554 554 554 177 177 177 177 177 177 177 177 177
-894 894 894 822 822 822 711 711 711 711 711 711 711 711 711
-175 175 175 855 855 855 756 756 756 756 756 756 756 756 756
-900 900 900 847 847 847 727 727 727 727 727 727 727 727 727
-737 737 737 538 538 538 849 849 849 849 849 849 849 849 849
-835 835 835 833 833 833 710 710 710 710 710 710 710 710 710
-556 556 556 515 515 515 892 892 892 892 892 892 892 892 892
-897 897 897 839 839 839 829 829 829 829 829 829 829 829 829
-927 927 927 711 711 711 894 894 894 894 894 894 894 894 894
-615 615 615 838 838 838 921 921 921 921 921 921 921 921 921
-618 618 618 508 508 508 636 636 636 636 636 636 636 636 636
-108 108 108 900 900 900 633 633 633 633 633 633 633 633 633
-612 612 612 837 837 837 775 775 775 775 775 775 775 775 775
-775 775 775 775 775 775 786 786 786 786 786 786 786 786 786
-630 630 630 842 842 842 847 847 847 847 847 847 847 847 847
-925 925 925 784 784 784 209 209 209 209 209 209 209 209 209
-110 110 110 634 634 634 510 510 510 510 510 510 510 510 510
-918 918 918 632 632 632 772 772 772 772 772 772 772 772 772
-714 714 714 208 208 208 890 890 890 890 890 890 890 890 890
-899 899 899 836 836 836 610 610 610 610 610 610 610 610 610
-632 632 632 840 840 840 178 178 178 178 178 178 178 178 178
-207 207 207 828 828 828 778 778 778 778 778 778 778 778 778
-893 893 893 633 633 633 761 761 761 761 761 761 761 761 761
-494 494 494 929 929 929 717 717 717 717 717 717 717 717 717
-760 760 760 759 759 759 893 893 893 893 893 893 893 893 893
-892 892 892 945 945 945 923 923 923 923 923 923 923 923 923
-614 614 614 620 620 620 708 708 708 708 708 708 708 708 708
-209 209 209 626 626 626 174 174 174 174 174 174 174 174 174
-498 498 498 703 703 703 832 832 832 832 832 832 832 832 832
-616 616 616 832 832 832 737 737 737 737 737 737 737 737 737
-768 768 768 886 886 886 922 922 922 922 922 922 922 922 922
-901 901 901 558 558 558 753 753 753 753 753 753 753 753 753
-499 499 499 768 768 768 625 625 625 625 625 625 625 625 625
-837 837 837 112 112 112 837 837 837 837 837 837 837 837 837
-772 772 772 117 117 117 537 537 537 537 537 537 537 537 537
-752 752 752 239 239 239 762 762 762 762 762 762 762 762 762
-610 610 610 943 943 943 776 776 776 776 776 776 776 776 776
-832 832 832 771 771 771 484 484 484 484 484 484 484 484 484
-631 631 631 773 773 773 113 113 113 113 113 113 113 113 113
-243 243 243 825 825 825 948 948 948 948 948 948 948 948 948
-215 215 215 755 755 755 848 848 848 848 848 848 848 848 848
-633 633 633 834 834 834 712 712 712 712 712 712 712 712 712
-617 617 617 706 706 706 173 173 173 173 173 173 173 173 173
-235 235 235 625 625 625 210 210 210 210 210 210 210 210 210
-109 109 109 511 511 511 540 540 540 540 540 540 540 540 540
-236 236 236 113 113 113 783 783 783 783 783 783 783 783 783
-622 622 622 173 173 173 112 112 112 112 112 112 112 112 112
-838 838 838 486 486 486 211 211 211 211 211 211 211 211 211
-898 898 898 540 540 540 212 212 212 212 212 212 212 212 212
-237 237 237 628 628 628 239 239 239 239 239 239 239 239 239
-902 902 902 607 607 607 785 785 785 785 785 785 785 785 785
-542 542 542 172 172 172 624 624 624 624 624 624 624 624 624
-114 114 114 539 539 539 213 213 213 213 213 213 213 213 213
-778 778 778 114 114 114 555 555 555 555 555 555 555 555 555
-540 540 540 764 764 764 828 828 828 828 828 828 828 828 828
-620 620 620 763 763 763 619 619 619 619 619 619 619 619 619
-762 762 762 955 955 955 768 768 768 768 768 768 768 768 768
-541 541 541 484 484 484 788 788 788 788 788 788 788 788 788
-624 624 624 844 844 844 539 539 539 539 539 539 539 539 539
-766 766 766 767 767 767 924 924 924 924 924 924 924 924 924
-613 613 613 115 115 115 751 751 751 751 751 751 751 751 751
-712 712 712 631 631 631 609 609 609 609 609 609 609 609 609
-834 834 834 705 705 705 766 766 766 766 766 766 766 766 766
-611 611 611 116 116 116 514 514 514 514 514 514 514 514 514
-172 172 172 212 212 212 780 780 780 780 780 780 780 780 780
-627 627 627 238 238 238 777 777 777 777 777 777 777 777 777
-930 930 930 885 885 885 755 755 755 755 755 755 755 755 755
-107 107 107 762 762 762 108 108 108 108 108 108 108 108 108
-174 174 174 110 110 110 238 238 238 238 238 238 238 238 238
-241 241 241 237 237 237 553 553 553 553 553 553 553 553 553
-774 774 774 954 954 954 559 559 559 559 559 559 559 559 559
-625 625 625 107 107 107 930 930 930 930 930 930 930 930 930
-557 557 557 884 884 884 709 709 709 709 709 709 709 709 709
-931 931 931 624 624 624 975 975 975 975 975 975 975 975 975
-212 212 212 1001 1001 1001 114 114 114 114 114 114 114 114 114
-715 715 715 753 753 753 115 115 115 115 115 115 115 115 115
-929 929 929 760 760 760 884 884 884 884 884 884 884 884 884
-621 621 621 774 774 774 782 782 782 782 782 782 782 782 782
-753 753 753 519 519 519 622 622 622 622 622 622 622 622 622
-608 608 608 843 843 843 760 760 760 760 760 760 760 760 760
-626 626 626 769 769 769 632 632 632 632 632 632 632 632 632
-213 213 213 737 737 737 497 497 497 497 497 497 497 497 497
-487 487 487 1000 1000 1000 517 517 517 517 517 517 517 517 517
-628 628 628 106 106 106 927 927 927 927 927 927 927 927 927
-116 116 116 542 542 542 626 626 626 626 626 626 626 626 626
-555 555 555 925 925 925 773 773 773 773 773 773 773 773 773
-705 705 705 704 704 704 754 754 754 754 754 754 754 754 754
-173 173 173 761 761 761 620 620 620 620 620 620 620 620 620
-234 234 234 952 952 952 623 623 623 623 623 623 623 623 623
-515 515 515 928 928 928 767 767 767 767 767 767 767 767 767
-559 559 559 494 494 494 110 110 110 110 110 110 110 110 110
-716 716 716 109 109 109 116 116 116 116 116 116 116 116 116
-240 240 240 606 606 606 240 240 240 240 240 240 240 240 240
-780 780 780 213 213 213 757 757 757 757 757 757 757 757 757
-781 781 781 779 779 779 759 759 759 759 759 759 759 759 759
-607 607 607 713 713 713 628 628 628 628 628 628 628 628 628
-233 233 233 512 512 512 241 241 241 241 241 241 241 241 241
-118 118 118 926 926 926 715 715 715 715 715 715 715 715 715
-516 516 516 756 756 756 929 929 929 929 929 929 929 929 929
-117 117 117 495 495 495 627 627 627 627 627 627 627 627 627
-606 606 606 559 559 559 752 752 752 752 752 752 752 752 752
-765 765 765 245 245 245 621 621 621 621 621 621 621 621 621
-776 776 776 541 541 541 634 634 634 634 634 634 634 634 634
-946 946 946 958 958 958 237 237 237 237 237 237 237 237 237
-242 242 242 518 518 518 781 781 781 781 781 781 781 781 781
-244 244 244 783 783 783 485 485 485 485 485 485 485 485 485
-543 543 543 629 629 629 925 925 925 925 925 925 925 925 925
-718 718 718 710 710 710 770 770 770 770 770 770 770 770 770
-171 171 171 776 776 776 498 498 498 498 498 498 498 498 498
-757 757 757 105 105 105 926 926 926 926 926 926 926 926 926
-518 518 518 108 108 108 974 974 974 974 974 974 974 974 974
-932 932 932 630 630 630 520 520 520 520 520 520 520 520 520
-754 754 754 605 605 605 111 111 111 111 111 111 111 111 111
-787 787 787 627 627 627 171 171 171 171 171 171 171 171 171
-485 485 485 960 960 960 706 706 706 706 706 706 706 706 706
-492 492 492 241 241 241 932 932 932 932 932 932 932 932 932
-629 629 629 712 712 712 769 769 769 769 769 769 769 769 769
-659 659 659 999 999 999 635 635 635 635 635 635 635 635 635
-777 777 777 946 946 946 787 787 787 787 787 787 787 787 787
-789 789 789 214 214 214 542 542 542 542 542 542 542 542 542
-997 997 997 778 778 778 109 109 109 109 109 109 109 109 109
-719 719 719 927 927 927 933 933 933 933 933 933 933 933 933
-998 998 998 716 716 716 931 931 931 931 931 931 931 931 931
-120 120 120 950 950 950 246 246 246 246 246 246 246 246 246
-989 989 989 118 118 118 630 630 630 630 630 630 630 630 630
-232 232 232 232 232 232 243 243 243 243 243 243 243 243 243
-710 710 710 951 951 951 954 954 954 954 954 954 954 954 954
-106 106 106 751 751 751 629 629 629 629 629 629 629 629 629
-933 933 933 930 930 930 236 236 236 236 236 236 236 236 236
-103 103 103 485 485 485 978 978 978 978 978 978 978 978 978
-517 517 517 101 101 101 496 496 496 496 496 496 496 496 496
-786 786 786 242 242 242 784 784 784 784 784 784 784 784 784
-950 950 950 560 560 560 758 758 758 758 758 758 758 758 758
-751 751 751 664 664 664 245 245 245 245 245 245 245 245 245
-668 668 668 932 932 932 558 558 558 558 558 558 558 558 558
-495 495 495 933 933 933 765 765 765 765 765 765 765 765 765
-214 214 214 752 752 752 608 608 608 608 608 608 608 608 608
-758 758 758 782 782 782 215 215 215 215 215 215 215 215 215
-239 239 239 520 520 520 172 172 172 172 172 172 172 172 172
-704 704 704 234 234 234 519 519 519 519 519 519 519 519 519
-717 717 717 521 521 521 545 545 545 545 545 545 545 545 545
-713 713 713 702 702 702 118 118 118 118 118 118 118 118 118
-709 709 709 244 244 244 544 544 544 544 544 544 544 544 544
-769 769 769 708 708 708 979 979 979 979 979 979 979 979 979
-231 231 231 543 543 543 703 703 703 703 703 703 703 703 703
-245 245 245 788 788 788 771 771 771 771 771 771 771 771 771
-520 520 520 781 781 781 233 233 233 233 233 233 233 233 233
-664 664 664 709 709 709 518 518 518 518 518 518 518 518 518
-105 105 105 104 104 104 522 522 522 522 522 522 522 522 522
-519 519 519 233 233 233 928 928 928 928 928 928 928 928 928
-599 599 599 777 777 777 793 793 793 793 793 793 793 793 793
-119 119 119 103 103 103 234 234 234 234 234 234 234 234 234
-341 341 341 236 236 236 337 337 337 337 337 337 337 337 337
-711 711 711 665 665 665 554 554 554 554 554 554 554 554 554
-558 558 558 786 786 786 607 607 607 607 607 607 607 607 607
-334 334 334 949 949 949 231 231 231 231 231 231 231 231 231
-669 669 669 785 785 785 704 704 704 704 704 704 704 704 704
-708 708 708 523 523 523 214 214 214 214 214 214 214 214 214
-598 598 598 235 235 235 792 792 792 792 792 792 792 792 792
-706 706 706 754 754 754 631 631 631 631 631 631 631 631 631
-121 121 121 707 707 707 107 107 107 107 107 107 107 107 107
-332 332 332 171 171 171 117 117 117 117 117 117 117 117 117
-97 97 97 750 750 750 242 242 242 242 242 242 242 242 242
-947 947 947 780 780 780 951 951 951 951 951 951 951 951 951
-170 170 170 170 170 170 102 102 102 102 102 102 102 102 102
-100 100 100 948 948 948 120 120 120 120 120 120 120 120 120
-951 951 951 998 998 998 779 779 779 779 779 779 779 779 779
-788 788 788 243 243 243 663 663 663 663 663 663 663 663 663
-782 782 782 492 492 492 235 235 235 235 235 235 235 235 235
-779 779 779 516 516 516 750 750 750 750 750 750 750 750 750
-663 663 663 701 701 701 244 244 244 244 244 244 244 244 244
-331 331 331 1002 1002 1002 556 556 556 556 556 556 556 556 556
-523 523 523 487 487 487 486 486 486 486 486 486 486 486 486
-987 987 987 517 517 517 106 106 106 106 106 106 106 106 106
-104 104 104 230 230 230 119 119 119 119 119 119 119 119 119
-790 790 790 670 670 670 103 103 103 103 103 103 103 103 103
-667 667 667 493 493 493 599 599 599 599 599 599 599 599 599
-666 666 666 663 663 663 973 973 973 973 973 973 973 973 973
-488 488 488 119 119 119 790 790 790 790 790 790 790 790 790
-991 991 991 228 228 228 170 170 170 170 170 170 170 170 170
-785 785 785 789 789 789 707 707 707 707 707 707 707 707 707
-750 750 750 102 102 102 662 662 662 662 662 662 662 662 662
-525 525 525 787 787 787 794 794 794 794 794 794 794 794 794
-338 338 338 328 328 328 659 659 659 659 659 659 659 659 659
-521 521 521 215 215 215 105 105 105 105 105 105 105 105 105
-522 522 522 231 231 231 340 340 340 340 340 340 340 340 340
-491 491 491 1003 1003 1003 655 655 655 655 655 655 655 655 655
-665 665 665 121 121 121 334 334 334 334 334 334 334 334 334
-99 99 99 97 97 97 976 976 976 976 976 976 976 976 976
-703 703 703 100 100 100 705 705 705 705 705 705 705 705 705
-699 699 699 120 120 120 230 230 230 230 230 230 230 230 230
-660 660 660 525 525 525 232 232 232 232 232 232 232 232 232
-661 661 661 527 527 527 699 699 699 699 699 699 699 699 699
-227 227 227 978 978 978 955 955 955 955 955 955 955 955 955
-707 707 707 662 662 662 977 977 977 977 977 977 977 977 977
-247 247 247 326 326 326 661 661 661 661 661 661 661 661 661
-560 560 560 330 330 330 324 324 324 324 324 324 324 324 324
-1000 1000 1000 997 997 997 495 495 495 495 495 495 495 495 495
-101 101 101 660 660 660 247 247 247 247 247 247 247 247 247
-990 990 990 524 524 524 493 493 493 493 493 493 493 493 493
-783 783 783 654 654 654 984 984 984 984 984 984 984 984 984
-102 102 102 953 953 953 339 339 339 339 339 339 339 339 339
-999 999 999 333 333 333 763 763 763 763 763 763 763 763 763
-658 658 658 661 661 661 330 330 330 330 330 330 330 330 330
-490 490 490 522 522 522 789 789 789 789 789 789 789 789 789
-246 246 246 598 598 598 660 660 660 660 660 660 660 660 660
-493 493 493 658 658 658 658 658 658 658 658 658 658 658 658
-984 984 984 490 490 490 328 328 328 328 328 328 328 328 328
-988 988 988 169 169 169 791 791 791 791 791 791 791 791 791
-524 524 524 327 327 327 99 99 99 99 99 99 99 99 99
-657 657 657 491 491 491 332 332 332 332 332 332 332 332 332
-656 656 656 332 332 332 657 657 657 657 657 657 657 657 657
-792 792 792 1004 1004 1004 981 981 981 981 981 981 981 981 981
-948 948 948 797 797 797 521 521 521 521 521 521 521 521 521
-672 672 672 982 982 982 492 492 492 492 492 492 492 492 492
-784 784 784 986 986 986 668 668 668 668 668 668 668 668 668
-530 530 530 342 342 342 953 953 953 953 953 953 953 953 953
-662 662 662 698 698 698 983 983 983 983 983 983 983 983 983
-228 228 228 246 246 246 970 970 970 970 970 970 970 970 970
-701 701 701 331 331 331 950 950 950 950 950 950 950 950 950
-526 526 526 489 489 489 494 494 494 494 494 494 494 494 494
-1001 1001 1001 672 672 672 229 229 229 229 229 229 229 229 229
-796 796 796 699 699 699 331 331 331 331 331 331 331 331 331
-229 229 229 697 697 697 491 491 491 491 491 491 491 491 491
-528 528 528 666 666 666 972 972 972 972 972 972 972 972 972
-339 339 339 657 657 657 702 702 702 702 702 702 702 702 702
-333 333 333 668 668 668 797 797 797 797 797 797 797 797 797
-169 169 169 700 700 700 523 523 523 523 523 523 523 523 523
-795 795 795 673 673 673 327 327 327 327 327 327 327 327 327
-95 95 95 334 334 334 952 952 952 952 952 952 952 952 952
-674 674 674 229 229 229 667 667 667 667 667 667 667 667 667
-996 996 996 652 652 652 654 654 654 654 654 654 654 654 654
-1004 1004 1004 669 669 669 795 795 795 795 795 795 795 795 795
-986 986 986 801 801 801 100 100 100 100 100 100 100 100 100
-330 330 330 791 791 791 329 329 329 329 329 329 329 329 329
-793 793 793 337 337 337 666 666 666 666 666 666 666 666 666
-670 670 670 692 692 692 985 985 985 985 985 985 985 985 985
-527 527 527 338 338 338 700 700 700 700 700 700 700 700 700
-93 93 93 526 526 526 525 525 525 525 525 525 525 525 525
-324 324 324 792 792 792 104 104 104 104 104 104 104 104 104
-676 676 676 667 667 667 169 169 169 169 169 169 169 169 169
-985 985 985 325 325 325 527 527 527 527 527 527 527 527 527
-673 673 673 329 329 329 653 653 653 653 653 653 653 653 653
-677 677 677 798 798 798 651 651 651 651 651 651 651 651 651
-791 791 791 996 996 996 326 326 326 326 326 326 326 326 326
-96 96 96 488 488 488 665 665 665 665 665 665 665 665 665
-329 329 329 322 322 322 248 248 248 248 248 248 248 248 248
-335 335 335 671 671 671 338 338 338 338 338 338 338 338 338
-654 654 654 529 529 529 670 670 670 670 670 670 670 670 670
-992 992 992 341 341 341 796 796 796 796 796 796 796 796 796
-98 98 98 659 659 659 336 336 336 336 336 336 336 336 336
-327 327 327 98 98 98 524 524 524 524 524 524 524 524 524
-794 794 794 990 990 990 798 798 798 798 798 798 798 798 798
-799 799 799 653 653 653 701 701 701 701 701 701 701 701 701
-326 326 326 227 227 227 333 333 333 333 333 333 333 333 333
-690 690 690 122 122 122 656 656 656 656 656 656 656 656 656
-322 322 322 335 335 335 96 96 96 96 96 96 96 96 96
-336 336 336 977 977 977 343 343 343 343 343 343 343 343 343
-489 489 489 676 676 676 325 325 325 325 325 325 325 325 325
-328 328 328 983 983 983 122 122 122 122 122 122 122 122 122
-655 655 655 656 656 656 697 697 697 697 697 697 697 697 697
-798 798 798 336 336 336 664 664 664 664 664 664 664 664 664
-230 230 230 528 528 528 101 101 101 101 101 101 101 101 101
-700 700 700 790 790 790 487 487 487 487 487 487 487 487 487
-92 92 92 979 979 979 982 982 982 982 982 982 982 982 982
-797 797 797 99 99 99 228 228 228 228 228 228 228 228 228
-597 597 597 961 961 961 249 249 249 249 249 249 249 249 249
-337 337 337 793 793 793 123 123 123 123 123 123 123 123 123
-91 91 91 694 694 694 121 121 121 121 121 121 121 121 121
-343 343 343 249 249 249 562 562 562 562 562 562 562 562 562
-691 691 691 980 980 980 698 698 698 698 698 698 698 698 698
-954 954 954 800 800 800 956 956 956 956 956 956 956 956 956
-702 702 702 976 976 976 561 561 561 561 561 561 561 561 561
-694 694 694 247 247 247 598 598 598 598 598 598 598 598 598
-342 342 342 248 248 248 968 968 968 968 968 968 968 968 968
-671 671 671 687 687 687 800 800 800 800 800 800 800 800 800
-340 340 340 95 95 95 987 987 987 987 987 987 987 987 987
-646 646 646 655 655 655 799 799 799 799 799 799 799 799 799
-675 675 675 794 794 794 669 669 669 669 669 669 669 669 669
-325 325 325 343 343 343 677 677 677 677 677 677 677 677 677
-686 686 686 650 650 650 344 344 344 344 344 344 344 344 344
-344 344 344 91 91 91 693 693 693 693 693 693 693 693 693
-652 652 652 345 345 345 971 971 971 971 971 971 971 971 971
-696 696 696 649 649 649 94 94 94 94 94 94 94 94 94
-94 94 94 693 693 693 97 97 97 97 97 97 97 97 97
-695 695 695 806 806 806 323 323 323 323 323 323 323 323 323
-952 952 952 795 795 795 341 341 341 341 341 341 341 341 341
-983 983 983 344 344 344 335 335 335 335 335 335 335 335 335
-693 693 693 985 985 985 526 526 526 526 526 526 526 526 526
-1005 1005 1005 799 799 799 560 560 560 560 560 560 560 560 560
-953 953 953 651 651 651 692 692 692 692 692 692 692 692 692
-974 974 974 340 340 340 673 673 673 673 673 673 673 673 673
-692 692 692 696 696 696 801 801 801 801 801 801 801 801 801
-347 347 347 957 957 957 321 321 321 321 321 321 321 321 321
-248 248 248 803 803 803 227 227 227 227 227 227 227 227 227
-683 683 683 339 339 339 696 696 696 696 696 696 696 696 696
-122 122 122 647 647 647 691 691 691 691 691 691 691 691 691
-532 532 532 96 96 96 98 98 98 98 98 98 98 98 98
-698 698 698 991 991 991 528 528 528 528 528 528 528 528 528
-123 123 123 316 316 316 672 672 672 672 672 672 672 672 672
-323 323 323 974 974 974 91 91 91 91 91 91 91 91 91
-529 529 529 691 691 691 490 490 490 490 490 490 490 490 490
-697 697 697 674 674 674 671 671 671 671 671 671 671 671 671
-653 653 653 94 94 94 695 695 695 695 695 695 695 695 695
-687 687 687 323 323 323 320 320 320 320 320 320 320 320 320
-650 650 650 796 796 796 687 687 687 687 687 687 687 687 687
-124 124 124 807 807 807 488 488 488 488 488 488 488 488 488
-689 689 689 89 89 89 805 805 805 805 805 805 805 805 805
-688 688 688 802 802 802 694 694 694 694 694 694 694 694 694
-962 962 962 321 321 321 996 996 996 996 996 996 996 996 996
-808 808 808 677 677 677 689 689 689 689 689 689 689 689 689
-311 311 311 93 93 93 678 678 678 678 678 678 678 678 678
-651 651 651 682 682 682 1006 1006 1006 1006 1006 1006 1006 1006 1006
-679 679 679 689 689 689 251 251 251 251 251 251 251 251 251
-249 249 249 530 530 530 319 319 319 319 319 319 319 319 319
-319 319 319 92 92 92 980 980 980 980 980 980 980 980 980
-801 801 801 324 324 324 802 802 802 802 802 802 802 802 802
-317 317 317 995 995 995 342 342 342 342 342 342 342 342 342
-345 345 345 695 695 695 557 557 557 557 557 557 557 557 557
-318 318 318 679 679 679 675 675 675 675 675 675 675 675 675
-250 250 250 646 646 646 652 652 652 652 652 652 652 652 652
-1002 1002 1002 804 804 804 95 95 95 95 95 95 95 95 95
-982 982 982 686 686 686 688 688 688 688 688 688 688 688 688
-314 314 314 988 988 988 803 803 803 803 803 803 803 803 803
-1003 1003 1003 648 648 648 347 347 347 347 347 347 347 347 347
-321 321 321 681 681 681 489 489 489 489 489 489 489 489 489
-315 315 315 975 975 975 318 318 318 318 318 318 318 318 318
-994 994 994 124 124 124 322 322 322 322 322 322 322 322 322
-949 949 949 320 320 320 986 986 986 986 986 986 986 986 986
-346 346 346 123 123 123 250 250 250 250 250 250 250 250 250
-960 960 960 347 347 347 988 988 988 988 988 988 988 988 988
-348 348 348 1005 1005 1005 345 345 345 345 345 345 345 345 345
-351 351 351 987 987 987 346 346 346 346 346 346 346 346 346
-320 320 320 90 90 90 89 89 89 89 89 89 89 89 89
-90 90 90 348 348 348 317 317 317 317 317 317 317 317 317
-350 350 350 250 250 250 690 690 690 690 690 690 690 690 690
-316 316 316 959 959 959 313 313 313 313 313 313 313 313 313
-310 310 310 981 981 981 90 90 90 90 90 90 90 90 90
-312 312 312 311 311 311 92 92 92 92 92 92 92 92 92
-979 979 979 315 315 315 316 316 316 316 316 316 316 316 316
-89 89 89 318 318 318 93 93 93 93 93 93 93 93 93
-375 375 375 317 317 317 311 311 311 311 311 311 311 311 311
-959 959 959 346 346 346 124 124 124 124 124 124 124 124 124
-277 277 277 125 125 125 991 991 991 991 991 991 991 991 991
-278 278 278 251 251 251 967 967 967 967 967 967 967 967 967
-251 251 251 313 313 313 88 88 88 88 88 88 88 88 88
-279 279 279 378 378 378 1007 1007 1007 1007 1007 1007 1007 1007 1007
-377 377 377 319 319 319 993 993 993 993 993 993 993 993 993
-993 993 993 308 308 308 1010 1010 1010 1010 1010 1010 1010 1010 1010
-977 977 977 984 984 984 990 990 990 990 990 990 990 990 990
-450 450 450 350 350 350 279 279 279 279 279 279 279 279 279
-252 252 252 314 314 314 1008 1008 1008 1008 1008 1008 1008 1008 1008
-309 309 309 956 956 956 1012 1012 1012 1012 1012 1012 1012 1012 1012
-454 454 454 280 280 280 252 252 252 252 252 252 252 252 252
-125 125 125 349 349 349 348 348 348 348 348 348 348 348 348
-373 373 373 306 306 306 309 309 309 309 309 309 309 309 309
-453 453 453 353 353 353 315 315 315 315 315 315 315 315 315
-561 561 561 372 372 372 994 994 994 994 994 994 994 994 994
-349 349 349 309 309 309 989 989 989 989 989 989 989 989 989
-381 381 381 380 380 380 310 310 310 310 310 310 310 310 310
-276 276 276 465 465 465 351 351 351 351 351 351 351 351 351
-995 995 995 597 597 597 969 969 969 969 969 969 969 969 969
-374 374 374 453 453 453 563 563 563 563 563 563 563 563 563
-376 376 376 312 312 312 1009 1009 1009 1009 1009 1009 1009 1009 1009
-380 380 380 275 275 275 995 995 995 995 995 995 995 995 995
-281 281 281 462 462 462 597 597 597 597 597 597 597 597 597
-958 958 958 88 88 88 125 125 125 125 125 125 125 125 125
-976 976 976 993 993 993 997 997 997 997 997 997 997 997 997
-274 274 274 458 458 458 376 376 376 376 376 376 376 376 376
-372 372 372 561 561 561 372 372 372 372 372 372 372 372 372
-957 957 957 253 253 253 350 350 350 350 350 350 350 350 350
-975 975 975 355 355 355 378 378 378 378 378 378 378 378 378
-88 88 88 374 374 374 377 377 377 377 377 377 377 377 377
-352 352 352 373 373 373 1000 1000 1000 1000 1000 1000 1000 1000 1000
-1006 1006 1006 448 448 448 127 127 127 127 127 127 127 127 127
-961 961 961 310 310 310 1003 1003 1003 1003 1003 1003 1003 1003 1003
-379 379 379 351 351 351 314 314 314 314 314 314 314 314 314
-313 313 313 252 252 252 458 458 458 458 458 458 458 458 458
-370 370 370 967 967 967 253 253 253 253 253 253 253 253 253
-280 280 280 964 964 964 349 349 349 349 349 349 349 349 349
-127 127 127 963 963 963 353 353 353 353 353 353 353 353 353
-455 455 455 379 379 379 280 280 280 280 280 280 280 280 280
-254 254 254 973 973 973 379 379 379 379 379 379 379 379 379
-272 272 272 972 972 972 375 375 375 375 375 375 375 375 375
-466 466 466 352 352 352 383 383 383 383 383 383 383 383 383
-367 367 367 279 279 279 312 312 312 312 312 312 312 312 312
-955 955 955 381 381 381 1002 1002 1002 1002 1002 1002 1002 1002 1002
-306 306 306 452 452 452 277 277 277 277 277 277 277 277 277
-980 980 980 278 278 278 308 308 308 308 308 308 308 308 308
-981 981 981 276 276 276 959 959 959 959 959 959 959 959 959
-562 562 562 307 307 307 373 373 373 373 373 373 373 373 373
-1009 1009 1009 450 450 450 126 126 126 126 126 126 126 126 126
-978 978 978 989 989 989 275 275 275 275 275 275 275 275 275
-1011 1011 1011 1006 1006 1006 278 278 278 278 278 278 278 278 278
-956 956 956 562 562 562 463 463 463 463 463 463 463 463 463
-1007 1007 1007 962 962 962 1001 1001 1001 1001 1001 1001 1001 1001 1001
-973 973 973 969 969 969 957 957 957 957 957 957 957 957 957
-563 563 563 968 968 968 1013 1013 1013 1013 1013 1013 1013 1013 1013
-963 963 963 1007 1007 1007 564 564 564 564 564 564 564 564 564
-596 596 596 970 970 970 958 958 958 958 958 958 958 958 958
-564 564 564 965 965 965 963 963 963 963 963 963 963 963 963
-1010 1010 1010 1008 1008 1008 992 992 992 992 992 992 992 992 992
-964 964 964 563 563 563 1011 1011 1011 1011 1011 1011 1011 1011 1011
-1014 1014 1014 994 994 994 961 961 961 961 961 961 961 961 961
-971 971 971 992 992 992 962 962 962 962 962 962 962 962 962
-1012 1012 1012 971 971 971 966 966 966 966 966 966 966 966 966
-1016 1016 1016 966 966 966 1005 1005 1005 1005 1005 1005 1005 1005 1005
-968 968 968 1011 1011 1011 960 960 960 960 960 960 960 960 960
-1013 1013 1013 596 596 596 1016 1016 1016 1016 1016 1016 1016 1016 1016
-970 970 970 1009 1009 1009 965 965 965 965 965 965 965 965 965
-1008 1008 1008 565 565 565 1004 1004 1004 1004 1004 1004 1004 1004 1004
-1015 1015 1015 1010 1010 1010 596 596 596 596 596 596 596 596 596
-972 972 972 595 595 595 998 998 998 998 998 998 998 998 998
-965 965 965 564 564 564 1015 1015 1015 1015 1015 1015 1015 1015 1015
-969 969 969 1012 1012 1012 565 565 565 565 565 565 565 565 565
-966 966 966 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014
-967 967 967 1013 1013 1013 964 964 964 964 964 964 964 964 964
-565 565 565 1036 1036 1036 999 999 999 999 999 999 999 999 999
-1034 1034 1034 594 594 594 566 566 566 566 566 566 566 566 566
-1035 1035 1035 1016 1016 1016 1032 1032 1032 1032 1032 1032 1032 1032 1032
-595 595 595 1015 1015 1015 1031 1031 1031 1031 1031 1031 1031 1031 1031
-1039 1039 1039 1037 1037 1037 567 567 567 567 567 567 567 567 567
-1037 1037 1037 566 566 566 1030 1030 1030 1030 1030 1030 1030 1030 1030
-1036 1036 1036 1038 1038 1038 595 595 595 595 595 595 595 595 595
-1038 1038 1038 1034 1034 1034 1033 1033 1033 1033 1033 1033 1033 1033 1033
-1033 1033 1033 593 593 593 1029 1029 1029 1029 1029 1029 1029 1029 1029
-1040 1040 1040 1035 1035 1035 594 594 594 594 594 594 594 594 594
-1032 1032 1032 567 567 567 1036 1036 1036 1036 1036 1036 1036 1036 1036
-594 594 594 1039 1039 1039 1034 1034 1034 1034 1034 1034 1034 1034 1034
-1030 1030 1030 1033 1033 1033 568 568 568 568 568 568 568 568 568
-1031 1031 1031 1032 1032 1032 1035 1035 1035 1035 1035 1035 1035 1035 1035
-566 566 566 568 568 568 593 593 593 593 593 593 593 593 593
-593 593 593 1043 1043 1043 569 569 569 569 569 569 569 569 569
-1041 1041 1041 1044 1044 1044 1037 1037 1037 1037 1037 1037 1037 1037 1037
-1029 1029 1029 1041 1041 1041 1042 1042 1042 1042 1042 1042 1042 1042 1042
-1042 1042 1042 1046 1046 1046 1039 1039 1039 1039 1039 1039 1039 1039 1039
-1043 1043 1043 1031 1031 1031 1038 1038 1038 1038 1038 1038 1038 1038 1038
-567 567 567 1047 1047 1047 1043 1043 1043 1043 1043 1043 1043 1043 1043
-1044 1044 1044 1045 1045 1045 1044 1044 1044 1044 1044 1044 1044 1044 1044
-1045 1045 1045 1040 1040 1040 1041 1041 1041 1041 1041 1041 1041 1041 1041
-1060 1060 1060 1042 1042 1042 1040 1040 1040 1040 1040 1040 1040 1040 1040
-1046 1046 1046 1030 1030 1030 1046 1046 1046 1046 1046 1046 1046 1046 1046
-1058 1058 1058 1048 1048 1048 570 570 570 570 570 570 570 570 570
-1059 1059 1059 1050 1050 1050 1047 1047 1047 1047 1047 1047 1047 1047 1047
-1048 1048 1048 1029 1029 1029 1045 1045 1045 1045 1045 1045 1045 1045 1045
-1056 1056 1056 569 569 569 1051 1051 1051 1051 1051 1051 1051 1051 1051
-1062 1062 1062 1049 1049 1049 1054 1054 1054 1054 1054 1054 1054 1054 1054
-1047 1047 1047 1051 1051 1051 1050 1050 1050 1050 1050 1050 1050 1050 1050
-1061 1061 1061 570 570 570 1053 1053 1053 1053 1053 1053 1053 1053 1053
-1054 1054 1054 1052 1052 1052 1048 1048 1048 1048 1048 1048 1048 1048 1048
-1053 1053 1053 1053 1053 1053 1049 1049 1049 1049 1049 1049 1049 1049 1049
-1049 1049 1049 1054 1054 1054 1055 1055 1055 1055 1055 1055 1055 1055 1055
-1064 1064 1064 1055 1055 1055 1052 1052 1052 1052 1052 1052 1052 1052 1052
-1052 1052 1052 1057 1057 1057 1062 1062 1062 1062 1062 1062 1062 1062 1062
-568 568 568 1059 1059 1059 1063 1063 1063 1063 1063 1063 1063 1063 1063
-1055 1055 1055 1056 1056 1056 1057 1057 1057 1057 1057 1057 1057 1057 1057
-1057 1057 1057 1061 1061 1061 1056 1056 1056 1056 1056 1056 1056 1056 1056
-1050 1050 1050 1058 1058 1058 1060 1060 1060 1060 1060 1060 1060 1060 1060
-1065 1065 1065 1060 1060 1060 1058 1058 1058 1058 1058 1058 1058 1058 1058
-1063 1063 1063 1062 1062 1062 1064 1064 1064 1064 1064 1064 1064 1064 1064
-1051 1051 1051 1063 1063 1063 1059 1059 1059 1059 1059 1059 1059 1059 1059
-569 569 569 1065 1065 1065 1061 1061 1061 1061 1061 1061 1061 1061 1061
-570 570 570 1066 1066 1066 1065 1065 1065 1065 1065 1065 1065 1065 1065
-1067 1067 1067 1064 1064 1064 1068 1068 1068 1068 1068 1068 1068 1068 1068
-1066 1066 1066 1069 1069 1069 1069 1069 1069 1069 1069 1069 1069 1069 1069
-1068 1068 1068 1070 1070 1070 1066 1066 1066 1066 1066 1066 1066 1066 1066
-1071 1071 1071 1079 1079 1079 1070 1070 1070 1070 1070 1070 1070 1070 1070
-1069 1069 1069 1067 1067 1067 1071 1071 1071 1071 1071 1071 1071 1071 1071
-1070 1070 1070 1068 1068 1068 1072 1072 1072 1072 1072 1072 1072 1072 1072
-1072 1072 1072 1071 1071 1071 1067 1067 1067 1067 1067 1067 1067 1067 1067
-1073 1073 1073 1072 1072 1072 1075 1075 1075 1075 1075 1075 1075 1075 1075
-1074 1074 1074 1073 1073 1073 1074 1074 1074 1074 1074 1074 1074 1074 1074
-1078 1078 1078 1074 1074 1074 1073 1073 1073 1073 1073 1073 1073 1073 1073
-1075 1075 1075 1075 1075 1075 1077 1077 1077 1077 1077 1077 1077 1077 1077
-1077 1077 1077 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076
-1079 1079 1079 1077 1077 1077 1079 1079 1079 1079 1079 1079 1079 1079 1079
-1120 1120 1120 1078 1078 1078 1144 1144 1144 1144 1144 1144 1144 1144 1144
-1076 1076 1076 1080 1080 1080 1078 1078 1078 1078 1078 1078 1078 1078 1078
-1080 1080 1080 1081 1081 1081 1080 1080 1080 1080 1080 1080 1080 1080 1080
-1081 1081 1081 1082 1082 1082 1081 1081 1081 1081 1081 1081 1081 1081 1081
-1082 1082 1082 1083 1083 1083 1082 1082 1082 1082 1082 1082 1082 1082 1082
-1083 1083 1083 1084 1084 1084 1083 1083 1083 1083 1083 1083 1083 1083 1083
-1084 1084 1084 1085 1085 1085 1084 1084 1084 1084 1084 1084 1084 1084 1084
-1085 1085 1085 1086 1086 1086 1085 1085 1085 1085 1085 1085 1085 1085 1085
-1086 1086 1086 1087 1087 1087 1086 1086 1086 1086 1086 1086 1086 1086 1086
-1087 1087 1087 1088 1088 1088 1087 1087 1087 1087 1087 1087 1087 1087 1087
-1088 1088 1088 1089 1089 1089 1088 1088 1088 1088 1088 1088 1088 1088 1088
-1089 1089 1089 1090 1090 1090 1089 1089 1089 1089 1089 1089 1089 1089 1089
-1090 1090 1090 1091 1091 1091 1090 1090 1090 1090 1090 1090 1090 1090 1090
-1091 1091 1091 1092 1092 1092 1091 1091 1091 1091 1091 1091 1091 1091 1091
-1092 1092 1092 1093 1093 1093 1092 1092 1092 1092 1092 1092 1092 1092 1092
-1093 1093 1093 1094 1094 1094 1093 1093 1093 1093 1093 1093 1093 1093 1093
-1094 1094 1094 1095 1095 1095 1094 1094 1094 1094 1094 1094 1094 1094 1094
-1095 1095 1095 1096 1096 1096 1095 1095 1095 1095 1095 1095 1095 1095 1095
-1096 1096 1096 1097 1097 1097 1096 1096 1096 1096 1096 1096 1096 1096 1096
-1097 1097 1097 1098 1098 1098 1097 1097 1097 1097 1097 1097 1097 1097 1097
-1098 1098 1098 1099 1099 1099 1098 1098 1098 1098 1098 1098 1098 1098 1098
-1099 1099 1099 1100 1100 1100 1099 1099 1099 1099 1099 1099 1099 1099 1099
-1100 1100 1100 1101 1101 1101 1100 1100 1100 1100 1100 1100 1100 1100 1100
-1101 1101 1101 1102 1102 1102 1101 1101 1101 1101 1101 1101 1101 1101 1101
-1102 1102 1102 1103 1103 1103 1102 1102 1102 1102 1102 1102 1102 1102 1102
-1103 1103 1103 1104 1104 1104 1103 1103 1103 1103 1103 1103 1103 1103 1103
-1104 1104 1104 1105 1105 1105 1104 1104 1104 1104 1104 1104 1104 1104 1104
-1105 1105 1105 1106 1106 1106 1105 1105 1105 1105 1105 1105 1105 1105 1105
-1106 1106 1106 1107 1107 1107 1106 1106 1106 1106 1106 1106 1106 1106 1106
-1107 1107 1107 1108 1108 1108 1107 1107 1107 1107 1107 1107 1107 1107 1107
-1108 1108 1108 1109 1109 1109 1108 1108 1108 1108 1108 1108 1108 1108 1108
-1109 1109 1109 1110 1110 1110 1109 1109 1109 1109 1109 1109 1109 1109 1109
-1110 1110 1110 1111 1111 1111 1110 1110 1110 1110 1110 1110 1110 1110 1110
-1111 1111 1111 1112 1112 1112 1111 1111 1111 1111 1111 1111 1111 1111 1111
-1112 1112 1112 1113 1113 1113 1112 1112 1112 1112 1112 1112 1112 1112 1112
-1113 1113 1113 1114 1114 1114 1113 1113 1113 1113 1113 1113 1113 1113 1113
-1114 1114 1114 1115 1115 1115 1114 1114 1114 1114 1114 1114 1114 1114 1114
-1115 1115 1115 1116 1116 1116 1115 1115 1115 1115 1115 1115 1115 1115 1115
-1116 1116 1116 1117 1117 1117 1116 1116 1116 1116 1116 1116 1116 1116 1116
-1117 1117 1117 1118 1118 1118 1117 1117 1117 1117 1117 1117 1117 1117 1117
-1118 1118 1118 1119 1119 1119 1118 1118 1118 1118 1118 1118 1118 1118 1118
-1119 1119 1119 1120 1120 1120 1119 1119 1119 1119 1119 1119 1119 1119 1119
-1121 1121 1121 1121 1121 1121 1120 1120 1120 1120 1120 1120 1120 1120 1120
-1122 1122 1122 1122 1122 1122 1121 1121 1121 1121 1121 1121 1121 1121 1121
-1123 1123 1123 1123 1123 1123 1122 1122 1122 1122 1122 1122 1122 1122 1122
-1124 1124 1124 1124 1124 1124 1123 1123 1123 1123 1123 1123 1123 1123 1123
-1125 1125 1125 1125 1125 1125 1124 1124 1124 1124 1124 1124 1124 1124 1124
-1126 1126 1126 1126 1126 1126 1125 1125 1125 1125 1125 1125 1125 1125 1125
-1127 1127 1127 1127 1127 1127 1126 1126 1126 1126 1126 1126 1126 1126 1126
-1128 1128 1128 1128 1128 1128 1127 1127 1127 1127 1127 1127 1127 1127 1127
-1129 1129 1129 1129 1129 1129 1128 1128 1128 1128 1128 1128 1128 1128 1128
-1130 1130 1130 1130 1130 1130 1129 1129 1129 1129 1129 1129 1129 1129 1129
-1131 1131 1131 1131 1131 1131 1130 1130 1130 1130 1130 1130 1130 1130 1130
-1132 1132 1132 1132 1132 1132 1131 1131 1131 1131 1131 1131 1131 1131 1131
-1133 1133 1133 1133 1133 1133 1132 1132 1132 1132 1132 1132 1132 1132 1132
-1134 1134 1134 1134 1134 1134 1133 1133 1133 1133 1133 1133 1133 1133 1133
-1135 1135 1135 1135 1135 1135 1134 1134 1134 1134 1134 1134 1134 1134 1134
-1136 1136 1136 1136 1136 1136 1135 1135 1135 1135 1135 1135 1135 1135 1135
-1137 1137 1137 1137 1137 1137 1136 1136 1136 1136 1136 1136 1136 1136 1136
-1138 1138 1138 1138 1138 1138 1137 1137 1137 1137 1137 1137 1137 1137 1137
-1139 1139 1139 1139 1139 1139 1138 1138 1138 1138 1138 1138 1138 1138 1138
-1140 1140 1140 1140 1140 1140 1139 1139 1139 1139 1139 1139 1139 1139 1139
-1141 1141 1141 1141 1141 1141 1140 1140 1140 1140 1140 1140 1140 1140 1140
-1142 1142 1142 1142 1142 1142 1141 1141 1141 1141 1141 1141 1141 1141 1141
-1143 1143 1143 1143 1143 1143 1142 1142 1142 1142 1142 1142 1142 1142 1142
-1144 1144 1144 1144 1144 1144 1143 1143 1143 1143 1143 1143 1143 1143 1143
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_3_ber_input.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_3_ber_input.data
deleted file mode 100644
index 2aa26aecaa..0000000000
--- a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_3_ber_input.data
+++ /dev/null
@@ -1,15 +0,0 @@
-113414384937002 131517565524606 129730254963376
-113414384937002 123866299686337 115917804230772
-113414384937002 101151759096365 83691224180787
-112799947274473 115586271416062 116656733257003
-112799947274473 114899680835564 115043361830075
-112799947274473 114104728776259 113602205628177
-113424995683034 121837881481439 121365633139536
-113424995683034 118961749743960 116098064564167
-113424995683034 102037257121101 95624082560989
-113424995683034 101739059890975 95328305658243
-113424995683034 101574718384712 95300126750377
-113424995683034 100165503194647 94496444773102
-113424995683034 99275504663649 94478204760528
-113424995683034 98458947298318 94316832384981
-113424995683034 97452545880935 93624665468982
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data
deleted file mode 100644
index cc0f2949e1..0000000000
--- a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data
+++ /dev/null
@@ -1 +0,0 @@
-293 164 89 287 259 242 311 251 211 211 211 213 216 221 227 \ No newline at end of file
diff --git a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data
deleted file mode 100644
index 400885c4cd..0000000000
--- a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data
+++ /dev/null
@@ -1,1536 +0,0 @@
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 6 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 6 6 6 4 4 4 4 4 4 4 4 4
-4 4 4 6 6 6 6 4 4 4 4 4 4 6 6
-4 4 4 6 6 6 6 4 4 4 4 4 4 4 4
-4 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-4 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-4 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
-4 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-4 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-6 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-4 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-4 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-4 4 4 6 6 6 6 6 6 6 6 6 6 6 6
-4 4 4 6 4 4 6 4 4 4 4 4 4 4 6
-4 4 4 6 6 6 6 4 4 4 4 4 4 4 6
-4 4 4 6 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 3 3 3 3 3 3 3 3 3
-3 3 3 4 4 4 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 3 2 2 3 3 3 3 3 3 3 3 3
-3 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-2 2 2 3 3 3 3 2 2 2 3 3 3 3 3
-2 2 2 3 3 3 3 2 2 2 2 2 2 3 3
-2 2 2 3 3 3 3 2 2 2 2 2 2 2 2
-2 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 3 3 2 2 2 2 2 2 2 3
-2 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-2 2 2 3 3 3 3 2 2 2 2 2 3 3 3
-2 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
-3 3 3 3 3 3 4 3 3 3 3 3 4 4 4
-3 3 3 4 4 4 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
-2 2 2 3 3 3 3 3 3 3 3 3 3 3 3
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 2 3 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 1 1 1 1 1 1 1 1
-2 1 1 2 2 2 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 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 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 0 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 0 0 0 0 0 0 0 0 0
-0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
-0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
-0 0 0 1 1 1 1 0 0 0 0 0 0 1 1
-0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
-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 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 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 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 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 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 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 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 2 2 2 1 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 1 1 1 1 1 1 1 2
-1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
-1 1 1 2 1 1 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 1 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 1 1 1 1 1 1 1 1 1
-2 2 2 2 2 2 1 1 1 1 1 1 1 1 1
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 1 1 1 1 2 2 2 2
-1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 3 2 2 2 2 2 2 2 2 2
-2 2 2 3 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 3 3 2 3 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 3 2 2 2 2 2 2 3 3
-2 2 2 3 3 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
-2 1 1 2 2 2 2 1 1 1 2 2 2 2 2
-2 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 2 1 1 1 1 1 1 2 2
-1 1 1 2 2 2 2 1 1 1 1 1 2 2 2
-1 1 1 2 2 2 2 1 1 1 1 2 2 2 2
-1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 1 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 1 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 1 1 1 1 1 2 2 2
-1 1 1 2 2 1 1 1 1 1 1 1 1 1 1
-1 1 1 2 1 1 2 2 2 2 2 2 2 2 2
-1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 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 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
-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 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 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 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 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
-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 1 1 2 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 1 1 1 1
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-1 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 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 2 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 2 2 2 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 2 1 1 1 1 1 1 2 2
-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 2 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 2 1 1 1 1 1 1 1 2
-1 1 1 2 2 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 2 1 1 1 1 1 1 1 1
-1 1 1 1 1 1 2 1 1 1 1 2 2 2 2
-1 1 1 2 2 2 2 1 1 1 1 1 1 1 2
-1 1 1 2 2 2 1 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 2 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 2 1 1 1 1 1 2 2 2
-1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
-1 1 1 2 1 1 2 1 1 1 1 1 1 1 1
-1 1 1 2 1 1 2 2 2 2 2 2 2 2 2
-1 1 1 2 2 2 1 1 1 1 1 1 1 1 1
-1 1 1 2 2 2 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 2 2 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 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 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 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
-0 0 0 1 1 0 1 1 1 1 1 1 1 1 1
-0 0 0 1 1 0 1 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 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/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data b/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data
deleted file mode 100644
index 8299f1b386..0000000000
--- a/cesar/ce/rx/bitloading/test/data/bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data
+++ /dev/null
@@ -1 +0,0 @@
-164 89 91 259 242 232 251 211 211 211 213 216 221 227 234 \ No newline at end of file
diff --git a/cesar/ce/rx/bitloading/test/data/test_content.txt b/cesar/ce/rx/bitloading/test/data/test_content.txt
index a00eaa18f3..11c6f91edb 100644
--- a/cesar/ce/rx/bitloading/test/data/test_content.txt
+++ b/cesar/ce/rx/bitloading/test/data/test_content.txt
@@ -1,30 +1,14 @@
----------------------------- Script file information -----------------------------
-test generated on = 02-Oct-2012 at 13:3
+test generated on = 12-Oct-2012 at 11:58
test vectors generated using:
SubWCRev: 'E:\projet\PLC\DSP_chain_oct_2012\Simu\BitLoading\testVectorGeneration.m'
-Last committed at revision 18959
-Updated to revision 18959
+Last committed at revision 19029
+Updated to revision 19029
--------------------------------- bitloading test ---------------------------------
SNR = 10 dB
tonemap_initial_under_ber_Xdb_nsr_margin_X_XX_ber_margin generated for 0.76 coderate
final tonemap code rate is 0.76
-------------------------------- tonemap update test -------------------------------
-fast and slow are in the same side --> lower carriers
-fast and slow are in the same side --> lower carriers
-both mean BER are under the inf limit --> boost carriers
-fast and slow are in the same side --> lower carriers
-fast and slow are in the same side --> lower carriers
-fast and slow are in the same side --> lower carriers
-fast and slow are in the same side --> lower carriers
-fast and slow are in the same side --> lower carriers
-both mean BER are under the inf limit --> boost carriers
-both mean BER are under the inf limit --> boost carriers
-both mean BER are under the inf limit --> boost carriers
-both mean BER are under the inf limit --> boost carriers
-both mean BER are under the inf limit --> boost carriers
-both mean BER are under the inf limit --> boost carriers
-both mean BER are under the inf limit --> boost carriers
------------------------------------ Pber test ------------------------------------
PB_MEAN_COEF = 6912
NB iterations = 30
diff --git a/cesar/ce/rx/bitloading/test/src/test_bl.c b/cesar/ce/rx/bitloading/test/src/test_bl.c
index 68630e26b7..6d3788f3ef 100644
--- a/cesar/ce/rx/bitloading/test/src/test_bl.c
+++ b/cesar/ce/rx/bitloading/test/src/test_bl.c
@@ -45,13 +45,6 @@
#include "tonemap_initial_3db_nsr_margin_0_00_ber_margin.h"
#include "tonemap_initial_3db_nsr_margin_0_01_ber_margin.h"
#include "tonemap_initial_under_ber_0db_nsr_margin_0_00_ber_margin.h"
-#include "bl_iteratif_opti_table_shift.h"
-#include "bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.h"
-#include "bl_iteratif_tm_update_new_tm_IN_2_opti_table.h"
-#include "bl_iteratif_tm_update_new_tm_IN_3_ber_input.h"
-#include "bl_iteratif_tm_update_new_tm_IN_4_cursor_input.h"
-#include "bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.h"
-#include "bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.h"
#include "ber_quantify.h"
#include <float.h>
@@ -1264,754 +1257,6 @@ test_suite_ce_rx_bl_tm_configuration (test_t t)
test_bl_after_nsr_sound_uninit (&bl);
}
-static void
-test_suite_ce_rx_bl_tm_update (test_t t)
-{
- /**
- * Test for the number of tones to shift in the optimization table
- * depending of a BER target.
- */
- test_begin (t, "test the optimization table shift counter")
- {
- ce_rx_bl_tone_map_update_actions_t out_action;
- u16 out;
- u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB];
- uint test_cpt = 0;
- u64 ber_target = 1000;
-
- for (test_cpt = 0; test_cpt < 9; test_cpt++)
- {
- /*
- * Each ber means can be in 3 zones:
- * (1) Above the ber target.
- * (2) Between ber target and 10% of ber target.
- * (3) Under 10% of ber target.
- * This suppose 3^2=9 different positions.
- */
- switch (test_cpt)
- {
- case 0:
- /* Slow (1) and Fast (1). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 1200;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 1200;
- break;
- case 1:
- /* Slow (1) and Fast (2). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 1200;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 999;
- break;
- case 2:
- /* Slow (1) and Fast (3). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 1200;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 42;
- break;
- case 3:
- /* Slow (2) and Fast (1). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 999;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 1200;
- break;
- case 4:
- /* Slow (2) and Fast (2). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 999;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 999;
- break;
- case 5:
- /* Slow (2) and Fast (3). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 999;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 42;
- break;
- case 6:
- /* Slow (3) and Fast (1). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 42;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 1200;
- break;
- case 7:
- /* Slow (3) and Fast (2). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 42;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 999;
- break;
- case 8:
- /* Slow (3) and Fast (3). */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 42;
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 42;
- break;
- }
-
- /* Compute action to perform. */
- out_action = ce_rx_bl_tone_map_update_action (ber_target, means);
-
- /* Output of the tested function. */
- out = ce_rx_bl_tone_map_update_count (out_action,
- ber_target,
- means);
-
- /* Tests. */
- test_fail_if (out_action == CE_RX_BL_TONE_MAP_UPDATE_NONE
- && out != 0);
- test_fail_if (out_action == CE_RX_BL_TONE_MAP_UPDATE_MINUS
- && out == 0);
- test_fail_if (out_action == CE_RX_BL_TONE_MAP_UPDATE_PLUS
- && out == 0);
- test_fail_if (out_action != CE_RX_BL_TONE_MAP_UPDATE_NONE
- && out_action != CE_RX_BL_TONE_MAP_UPDATE_MINUS
- && out_action != CE_RX_BL_TONE_MAP_UPDATE_PLUS);
- }
- } test_end;
-
- /**
- * Test for the number of tones to shift in the optimization table
- * depending of a BER target. Data used here come from vector test.
- */
- test_begin (t, "test the optimization table shift counter (test vector)")
- {
- /* Input data from test vector. */
- u64 ber_target;
- u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB];
- /* Output data from test vector. */
- u16 shift_count;
- ce_rx_bl_tone_map_update_actions_t action;
-
- u16 t;
-
- for (t = 0; t < bl_iteratif_opti_table_shift_height; t++)
- {
- /* Fill with data from test vector. */
- ber_target = bl_iteratif_opti_table_shift[t][0];
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = bl_iteratif_opti_table_shift[t][1];
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = bl_iteratif_opti_table_shift[t][2];
- shift_count = bl_iteratif_opti_table_shift[t][3];
- action = bl_iteratif_opti_table_shift[t][4];
-
- /* Check the performed action is correct. */
- test_fail_if (action !=
- ce_rx_bl_tone_map_update_action (ber_target,
- means));
- /* Check the shift count is correct. */
- test_fail_if (shift_count !=
- ce_rx_bl_tone_map_update_count (action,
- ber_target,
- means));
- }
- } test_end;
-
- /**
- * Test to check the tone map update action to perform
- * depending of sliding means and ber target.
- * Each ber means can be in 3 zones:
- * (1) Above the ber target.
- * (2) Between ber target and 10% of ber target.
- * (3) Under 10% of ber target.
- * This suppose 3^2=9 different positions.
- */
- test_begin (t, "test update action to perform considering sliding means")
- {
- ce_rx_bl_tone_map_update_actions_t out;
- u64 ber_target = 0;
- u64 ber_target_limit = 0;
- u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB];
-
- lib_rnd_t rand;
- lib_rnd_init (&rand, 4251);
- uint test_limit = 300;
- uint all[9] = {0,0,0,0,0,0,0,0,0};
- u8 test_finished = 0;
- u8 cpt, cpt2;
-
- while (!test_finished)
- {
- /* Generate random ber means and target. */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = lib_rnd32 (&rand)
- + ((u64) lib_rnd32 (&rand) << 32);
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] = lib_rnd32 (&rand)
- + ((u64) lib_rnd32 (&rand) << 32);
- ber_target = ((u64) lib_rnd32 (&rand) << 32) + lib_rnd32 (&rand);
- ber_target_limit = ber_target - (u64) (ber_target
- / CE_RX_BL_TONE_MAP_UPDATE_MIDDLE_PERCENTAGE);
-
- /* Get output of the function under test. */
- out = ce_rx_bl_tone_map_update_action (ber_target,
- means);
-
- /* Slow (1) and Fast (1). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] > ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] > ber_target)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_MINUS);
- if (all[0] < test_limit)
- all[0]++;
- }
-
- /* Slow (1) and Fast (2). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] > ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] <= ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] >= ber_target_limit)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_NONE);
- if (all[1] < test_limit)
- all[1]++;
- }
-
- /* Slow (1) and Fast (3). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] > ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] < ber_target_limit)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_NONE);
- if (all[2] < test_limit)
- all[2]++;
- }
-
- /* Slow (2) and Fast (1). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] <= ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] >= ber_target_limit
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] > ber_target)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_MINUS);
- if (all[3] < test_limit)
- all[3]++;
- }
-
- /* Slow (2) and Fast (2). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] <= ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] >= ber_target_limit
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] <= ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] >= ber_target_limit)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_NONE);
- if (all[4] < test_limit)
- all[4]++;
- }
-
- /* Slow (2) and Fast (3). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] <= ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] > ber_target_limit
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] < ber_target_limit)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_NONE);
- if (all[5] < test_limit)
- all[5]++;
- }
-
- /* Slow (3) and Fast (1). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] < ber_target_limit
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] > ber_target)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_MINUS);
- if (all[6] < test_limit)
- all[6]++;
- }
-
- /* Slow (3) and Fast (2). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] < ber_target_limit
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] <= ber_target
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] >= ber_target_limit)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_NONE);
- if (all[7] < test_limit)
- all[7]++;
- }
-
- /* Slow (3) and Fast (3). */
- if (means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] < ber_target_limit
- && means[CE_RX_BL_BER_SLIDING_MEAN_FAST] < ber_target_limit)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_PLUS);
- if (all[8] < test_limit)
- all[8]++;
- }
-
- /* Is this the end ? */
- cpt2 = 0;
- for (cpt = 0; cpt < 9; cpt++)
- if (all[cpt] >= test_limit)
- cpt2++;
- else
- break;
- if (cpt2 == 9)
- test_finished = 1;
- else
- cpt2 = 0;
- }
- } test_end;
-
- /**
- * Test for creating a new tone map based on old one with some
- * adjustments done using the optimization table.
- * This test verify that we do not compute a new tone map when we
- * we don't need to.
- */
- test_begin (t, "Verify that we don't do any thing when we don't need to")
- {
- ce_rx_bl_tone_map_update_status_t out = 0;
- u64 ber_target = 0;
- ce_rx_bitloading_t bl;
- uint tone_en = 0;
- tonemap_t *new_tonemap = NULL;
- tonemap_t *tm = NULL;
-
- tm = tonemap_alloc ();
- ber_target = 100;
- ce_rx_bitloading_init (&bl);
- bl.ber_sliding_mean[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 99;
- bl.ber_sliding_mean[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 98;
- bl.opti_table_cursor = 100;
- bl.opti_table = blk_table_init (sizeof (u16), PHY_CARRIER_NB);
-
- out = ce_rx_bl_tone_map_update_compute_new_tonemap (&bl,
- ber_target,
- tm,
- tone_en,
- &new_tonemap);
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_STATUS_NOTHING);
- test_fail_if (new_tonemap != NULL);
- test_fail_if (bl.opti_table_cursor != 100);
- tonemap_free (tm);
- ce_rx_bitloading_uninit (&bl);
- } test_end;
-
- /**
- * Test for creating a new tone map based on old one with some
- * adjustments done using the optimization table.
- * This test verify that we correctly compute a new tone when we have
- * to do a Tone Map +.
- */
- test_begin (t, "Verify TM+ in a classic case")
- {
- ce_rx_bl_tone_map_update_status_t out = 0;
- u64 ber_target = 0;
- ce_rx_bitloading_t bl;
- uint tone_en = 0;
- tonemap_t *new_tonemap = NULL;
- tonemap_t *tm = NULL;
- tonemask_info_t ti;
-
- uint i = 0;
- uint old_opti_cursor = 0;
- uint bits_per_symbol = 0;
- u16 *tmp;
-
- /* Preparing input data and supposed output. */
- ti.carrier_nb = tonemask_default (ti.tonemask);
- tm = tonemap_alloc ();
- tone_en = ti.carrier_nb;
- ce_rx_bitloading_init (&bl);
- bl.opti_table = blk_table_init (sizeof (u16), tone_en);
- uint pos_opti = 0;
- uint tone_index_real = 0;
-#define TONEMAP_WRITE_OPEN {
-#define TONEMAP_WRITE_CLOSE }
- TONEMAP_WRITE_BEGIN (tm, ti.tonemask)
- {
- tmp = (u16 *) blk_table_get (bl.opti_table, pos_opti++);
- *tmp = tone_index_real++;
- TONEMAP_WRITE_MOD (1);
- tm->bits_per_symbol += CE_BIT_PER_MOD[1];
- }
- TONEMAP_WRITE_CLOSE
- else
- TONEMAP_WRITE_OPEN
- {
- tone_index_real++;
- }
- TONEMAP_WRITE_END;
-#undef TONEMAP_WRITE_OPEN
-#undef TONEMAP_WRITE_CLOSE
- bl.opti_table_cursor = tone_en / 2;
- old_opti_cursor = bl.opti_table_cursor;
- /* Produce a TM+ operation. */
- ber_target = 100;
- bl.ber_sliding_mean[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 40;
- bl.ber_sliding_mean[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 30;
-
- /* Test. */
- out = ce_rx_bl_tone_map_update_compute_new_tonemap (&bl,
- ber_target,
- tm,
- tone_en,
- &new_tonemap);
-
- /* Check basic errors. */
- if (ce_rx_bl_tone_map_update_count (CE_RX_BL_TONE_MAP_UPDATE_PLUS,
- ber_target, (u64 *) bl.ber_sliding_mean)
- + bl.opti_table_cursor <= tone_en)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_STATUS_OK);
- test_fail_if (bl.opti_table_cursor != old_opti_cursor
- + ce_rx_bl_tone_map_update_count (
- CE_RX_BL_TONE_MAP_UPDATE_PLUS, ber_target, (u64 *) bl.ber_sliding_mean));
- }
- else
- {
- test_fail_if (out !=
- CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MAX);
- test_fail_if (bl.opti_table_cursor != tone_en - 1);
- }
- test_fail_if (new_tonemap == NULL);
-
- /* Verify updated values in the new tone map */
- for (i = old_opti_cursor; i < bl.opti_table_cursor; i++)
- {
- u32 *word_ptr_old = NULL;
- u32 *word_ptr_new = NULL;
- tmp = (u16 *) blk_table_get (bl.opti_table, i);
- u8 mod_old = tonemap_get_tone (tm,
- *tmp,
- &word_ptr_old);
- u8 mod_new = tonemap_get_tone (new_tonemap,
- *tmp,
- &word_ptr_new);
- test_fail_if (mod_old != 1);
- test_fail_if (mod_new != 2);
-
- bits_per_symbol += CE_BIT_PER_MOD[mod_new];
- bits_per_symbol -= CE_BIT_PER_MOD[mod_old];
- }
-
- /* Check that bits per symbol is ok. */
- test_fail_if (tm->bits_per_symbol + bits_per_symbol !=
- new_tonemap->bits_per_symbol);
-
- /* Cleanup */
- ce_rx_bitloading_uninit (&bl);
- tonemap_free (tm);
- tonemap_free (new_tonemap);
- } test_end;
-
- /**
- * Test for creating a new tone map based on old one with some
- * adjustments done using the optimization table.
- * This test verify that we correctly compute a new tone when we have
- * to do a Tone Map -.
- */
- test_begin (t, "Verify TM- in a classic case")
- {
- ce_rx_bl_tone_map_update_status_t out = 0;
- u64 ber_target = 0;
- ce_rx_bitloading_t bl;
- uint tone_en = 0;
- tonemap_t *new_tonemap = NULL;
- tonemap_t *tm = NULL;
- tonemask_info_t ti;
-
- uint i = 0;
- uint old_opti_cursor = 0;
- uint bits_per_symbol = 0;
- u16 *tmp;
-
- /* Preparing input data and supposed output. */
- ti.carrier_nb = tonemask_default (ti.tonemask);
- tm = tonemap_alloc ();
- tone_en = ti.carrier_nb;
- ce_rx_bitloading_init (&bl);
- bl.opti_table = blk_table_init (sizeof (u16), tone_en);
- uint pos_opti = 0;
- uint tone_index_real = 0;
-#define TONEMAP_WRITE_OPEN {
-#define TONEMAP_WRITE_CLOSE }
- TONEMAP_WRITE_BEGIN (tm, ti.tonemask)
- {
- tmp = (u16 *) blk_table_get (bl.opti_table, pos_opti++);
- *tmp = tone_index_real++;
- TONEMAP_WRITE_MOD (1);
- tm->bits_per_symbol += CE_BIT_PER_MOD[1];
- }
- TONEMAP_WRITE_CLOSE
- else
- TONEMAP_WRITE_OPEN
- {
- tone_index_real++;
- }
- TONEMAP_WRITE_END;
-#undef TONEMAP_WRITE_OPEN
-#undef TONEMAP_WRITE_CLOSE
- bl.opti_table_cursor = tone_en / 2;
- old_opti_cursor = bl.opti_table_cursor;
- /* Produce a TM- operation. */
- ber_target = 100;
- bl.ber_sliding_mean[CE_RX_BL_BER_SLIDING_MEAN_FAST] = 120;
- bl.ber_sliding_mean[CE_RX_BL_BER_SLIDING_MEAN_SLOW] = 123;
-
- /* Test. */
- out = ce_rx_bl_tone_map_update_compute_new_tonemap (&bl,
- ber_target,
- tm,
- tone_en,
- &new_tonemap);
-
- /* Check basic errors. */
- if ((int) bl.opti_table_cursor - (int) ce_rx_bl_tone_map_update_count (
- CE_RX_BL_TONE_MAP_UPDATE_MINUS,
- ber_target, (u64 *) bl.ber_sliding_mean) >= 0)
- {
- test_fail_if (out != CE_RX_BL_TONE_MAP_UPDATE_STATUS_OK);
- test_fail_if (bl.opti_table_cursor != old_opti_cursor -
- ce_rx_bl_tone_map_update_count (CE_RX_BL_TONE_MAP_UPDATE_MINUS
- , ber_target, (u64 *) bl.ber_sliding_mean));
- }
- else
- {
- test_fail_if (out !=
- CE_RX_BL_TONE_MAP_UPDATE_STATUS_OUT_OF_RANGE_MIN);
- test_fail_if (bl.opti_table_cursor != tone_en - 1);
- }
- test_fail_if (new_tonemap == NULL);
-
- /* Verify updated values in the new tone map */
- for (i = bl.opti_table_cursor;
- i < old_opti_cursor;
- i++)
- {
- u32 *word_ptr_old = NULL;
- u32 *word_ptr_new = NULL;
- tmp = (u16 *) blk_table_get (bl.opti_table, i);
- u8 mod_old = tonemap_get_tone (tm,
- *tmp,
- &word_ptr_old);
- u8 mod_new = tonemap_get_tone (new_tonemap,
- *tmp,
- &word_ptr_new);
-
- test_fail_if (mod_old != 1);
- test_fail_if (mod_new != 0);
-
- bits_per_symbol += CE_BIT_PER_MOD[mod_new];
- bits_per_symbol -= CE_BIT_PER_MOD[mod_old];
- }
-
- /* Check that bits per symbol is ok. */
- test_fail_if (tm->bits_per_symbol + bits_per_symbol !=
- new_tonemap->bits_per_symbol);
-
- /* Cleanup */
- ce_rx_bitloading_uninit (&bl);
- tonemap_free (tm);
- tonemap_free (new_tonemap);
- } test_end;
-
- /*
- * Test if the computation of a new tone map after a tone map update
- * operation is correct. Data used here come from vector test.
- */
- test_begin (t, "test tone map creation using tone map update (test vector)")
- {
- u16 t;
- u64 i,j;
- /* Preparing data from test vector. */
- /* Tone map input from
- * bl_iteratif_tm_update_new_tm_IN_1_tone_map_input.data. */
- tonemap_t *tm_in = tonemap_alloc ();
- /* Optimisation table from
- * bl_iteratif_tm_update_new_tm_IN_2_opti_table.data. */
- u16 opti[PHY_CARRIER_NB];
- /* Ber target (and sliding means) input from
- * bl_iteratif_tm_update_new_tm_IN_3_ber_input.data. */
- u64 ber_target;
- u64 means[CE_RX_BL_BER_SLIDING_MEAN_NB];
- /* Cursor input position from
- * bl_iteratif_tm_update_new_tm_IN_4_cursor_input.data. */
- uint curs_in;
- /* Tone map output from
- * bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output.data. */
- tonemap_t *tm_out = tonemap_alloc ();
- /* Cursor output position from
- * bl_iteratif_tm_update_new_tm_OUT_2_cursor_output.data. */
- uint curs_out;
- /* Default tonemask. */
- tonemask_info_t dtmask;
- dtmask.carrier_nb = tonemask_default (dtmask.tonemask);
- /* Variables to check sanity of test vectors. */
- u16 shift_count;
- ce_rx_bl_tone_map_update_actions_t action;
- /* Variables to check function output. */
- tonemap_t *computed_tm;
- ce_rx_bl_tone_map_update_status_t status;
- uint test_curs;
- /* The opposite of CE_BIT_PER_MOD. */
- uint ce_mod_per_bit[CE_BIT_PER_MOD[CE_MOD_COUNT - 1]];
- for (i = 0; i < CE_MOD_COUNT; i++)
- ce_mod_per_bit[CE_BIT_PER_MOD[i]] = i;
-
- /* For each tone maps, test the computation of the new tone map based
- * on the optimization table and ber parameters. */
- for (t = 0;
- t < bl_iteratif_tm_update_new_tm_IN_1_tone_map_input_width;
- t++)
- {
- /* Fill with data from test vector. */
- /* Input tone map. */
- j = 0;
-#define TONEMAP_WRITE_OPEN {
-#define TONEMAP_WRITE_CLOSE }
- TONEMAP_WRITE_BEGIN (tm_in, dtmask.tonemask)
- {
- TONEMAP_WRITE_MOD (
- ce_mod_per_bit[
- bl_iteratif_tm_update_new_tm_IN_1_tone_map_input[j][t]
- ]);
- j++;
- }
- TONEMAP_WRITE_CLOSE
- else
- TONEMAP_WRITE_OPEN
- {
- j++;
- }
- TONEMAP_WRITE_END;
-#undef TONEMAP_WRITE_OPEN
-#undef TONEMAP_WRITE_CLOSE
- /* Optimisation table. */
- for (i = 0;
- i < bl_iteratif_tm_update_new_tm_IN_2_opti_table_height;
- i++)
- /* The first 75 carriers are not considered, look
- * documentation of tonemask_default in
- * mac/common/src/tonemask.c. The soustracted value is 75 (and
- * not 74 because the input data begin at 1 (and not 0). */
- opti[i] = bl_iteratif_tm_update_new_tm_IN_2_opti_table[i][t]
- - (PHY_CARRIER_OFFSET + 1);
- /* Ber target. */
- ber_target = bl_iteratif_tm_update_new_tm_IN_3_ber_input[t][0];
- /* Slow mean. */
- means[CE_RX_BL_BER_SLIDING_MEAN_SLOW] =
- bl_iteratif_tm_update_new_tm_IN_3_ber_input[t][1];
- /* Fast Mean. */
- means[CE_RX_BL_BER_SLIDING_MEAN_FAST] =
- bl_iteratif_tm_update_new_tm_IN_3_ber_input[t][2];
- /* Input Cursor. */
- curs_in = bl_iteratif_tm_update_new_tm_IN_4_cursor_input[0][t];
- test_curs = curs_in;
- /* Output tone map. */
- j = 0;
-#define TONEMAP_WRITE_OPEN {
-#define TONEMAP_WRITE_CLOSE }
- TONEMAP_WRITE_BEGIN (tm_out, dtmask.tonemask)
- {
- TONEMAP_WRITE_MOD (
- ce_mod_per_bit[
- bl_iteratif_tm_update_new_tm_OUT_1_tone_map_output[j][t]
- ]);
- j++;
- }
- TONEMAP_WRITE_CLOSE
- else
- TONEMAP_WRITE_OPEN
- {
- j++;
- }
- TONEMAP_WRITE_END;
-#undef TONEMAP_WRITE_OPEN
-#undef TONEMAP_WRITE_CLOSE
- /* Output cursor. */
- curs_out = bl_iteratif_tm_update_new_tm_OUT_2_cursor_output[0][t];
-
- /* Sanity check: is the shift count is valid ? */
- action = ce_rx_bl_tone_map_update_action (ber_target,
- means);
- shift_count = MAX (curs_in, curs_out) - MIN (curs_in, curs_out);
- test_fail_if (shift_count !=
- ce_rx_bl_tone_map_update_count (action,
- ber_target,
- means));
-
- /* Sanity check: is the optimization table valid ?
- * At the cursor position and after, tones should be strictly
- * under a modulation of 10 bits (except the end of the table).
- * Below the cursor, tones should > 0. */
- for (i = 0; i < dtmask.carrier_nb; i++)
- {
- u32 *word_ptr = NULL;
- u8 mod = tonemap_get_tone (tm_in,
- opti[i],
- &word_ptr);
- if (i < curs_in)
- test_fail_if (mod == 0);
- }
-
- /* Fill input data in ce_rx_bitloading_t structure. */
- ce_rx_bitloading_t bl;
- ce_rx_bitloading_init (&bl);
- u16 *tmp;
- for (i = 0; i < CE_RX_BL_BER_SLIDING_MEAN_NB; i++)
- bl.ber_sliding_mean[i] = (s64) means[i];
- bl.opti_table_cursor = test_curs;
- bl.opti_table = blk_table_init (sizeof (u16),
- bl_iteratif_tm_update_new_tm_IN_2_opti_table_height);
- for (i = 0;
- i < bl_iteratif_tm_update_new_tm_IN_2_opti_table_height;
- i++)
- {
- tmp = (u16 *) blk_table_get (bl.opti_table, i);
- *tmp = opti[i];
- }
-
- /* Test function. */
- status = ce_rx_bl_tone_map_update_compute_new_tonemap (
- &bl,
- ber_target,
- tm_in,
- dtmask.carrier_nb,
- &computed_tm);
-
- /* Re-import data from ce_rx_bitloading_t and free it. */
- test_curs = bl.opti_table_cursor;
- ce_rx_bitloading_uninit (&bl);
-
- /* Check status. */
- test_fail_if (status == CE_RX_BL_TONE_MAP_UPDATE_STATUS_ERROR);
-
- /* Check if the new cursor position is well computed. */
- test_fail_if (test_curs != curs_out);
-
- /* Check if the generated tone map is the same. */
- u32 *word_ptr_out = NULL;
- u32 *word_ptr_in = NULL;
- u32 *word_ptr_cpt = NULL;
- u8 mod_out;
- u8 mod_in;
- u8 mod_cpt;
- for (i = 0; i < dtmask.carrier_nb; i++)
- {
- mod_out = tonemap_get_tone (tm_out,
- opti[i],
- &word_ptr_out);
- mod_in = tonemap_get_tone (tm_in,
- opti[i],
- &word_ptr_in);
- mod_cpt = tonemap_get_tone (computed_tm,
- opti[i],
- &word_ptr_cpt);
-
- if (action == CE_RX_BL_TONE_MAP_UPDATE_MINUS)
- {
- if (i >= curs_out && i < curs_in)
- {
- test_fail_if (mod_out != 0 && mod_out != mod_in - 1);
- test_fail_if (mod_cpt != mod_out);
- }
- else
- test_fail_if ((mod_out != mod_in)
- || (mod_out != mod_cpt));
- }
- if (action == CE_RX_BL_TONE_MAP_UPDATE_PLUS)
- {
- if (i < curs_out && i >= curs_in)
- {
- test_fail_if (mod_out != CE_MOD_COUNT - 1
- && mod_out != mod_in + 1);
- test_fail_if (mod_cpt != mod_out);
- }
- else
- test_fail_if ((mod_out != mod_in)
- || (mod_out != mod_cpt));
- }
- }
- /* Clean. */
- tonemap_free (computed_tm);
- }
- tonemap_free (tm_in);
- tonemap_free (tm_out);
- } test_end;
-}
-
int
main (int argc, char **argv)
{
@@ -2071,9 +1316,6 @@ main (int argc, char **argv)
/* Test tone map is correctly configure for usage. */
test_suite_ce_rx_bl_tm_configuration (t);
- /* Test tone map update */
- test_suite_ce_rx_bl_tm_update (t);
-
/* Memory check. */
test_case_begin (t, "General");
test_begin (t, "Memory")