# HG changeset patch # User gongo@gendarme.cr.ie.u-ryukyu.ac.jp # Date 1233277052 -32400 # Node ID 2ae83ca07f0d6c6ab705480803c129778143faf0 # Parent 07f3cd0bcc14cb380d6c6c03a150351cc6add9e5 remove tmp file diff -r 07f3cd0bcc14 -r 2ae83ca07f0d TaskManager/Test/test_render/SGList.cpp --- a/TaskManager/Test/test_render/SGList.cpp Fri Jan 30 09:57:12 2009 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -#include "SGList.h" - -const char *sglist_table[SGLIST_LENGTH] = { - "Ball", "LongCube", "Cube", "Cube", "Plane", "CUBE", "IEBOSS", "IEJIKI", "IETAMA", "PANEL_1024", "PANEL_2048", "PANEL_512", "Sphere", "Sphere", "Earth", "Moon" -}; diff -r 07f3cd0bcc14 -r 2ae83ca07f0d TaskManager/Test/test_render/SGList.h --- a/TaskManager/Test/test_render/SGList.h Fri Jan 30 09:57:12 2009 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -#ifndef INCLUDED_SGLIST -#define INCLUDED_SGLIST - -/* ../xml_file/Ball.xml */ -#define Ball 0 - -/* ../xml_file/LongCube.xml */ -#define LongCube 1 - -/* ../xml_file/cube.xml */ -#define Cube 2 - -/* ../xml_file/cube_big.xml */ -#define Cube 3 - -/* ../xml_file/cube_split.xml */ -#define Plane 4 -#define CUBE 5 - -/* ../xml_file/ieboss.xml */ -#define IEBOSS 6 - -/* ../xml_file/iejiki.xml */ -#define IEJIKI 7 - -/* ../xml_file/ietama.xml */ -#define IETAMA 8 - -/* ../xml_file/panel_1024.xml */ -#define PANEL_1024 9 - -/* ../xml_file/panel_2048.xml */ -#define PANEL_2048 10 - -/* ../xml_file/panel_512.xml */ -#define PANEL_512 11 - -/* ../xml_file/sphere.xml */ -#define Sphere 12 - -/* ../xml_file/sphere_big.xml */ -#define Sphere 13 - -/* ../xml_file/universe.xml */ -#define Earth 14 -#define Moon 15 - -/* Number of Scene */ -#define SGLIST_LENGTH 16 - -/* Scene Table */ -extern const char *sglist_table[SGLIST_LENGTH]; - -#endif diff -r 07f3cd0bcc14 -r 2ae83ca07f0d TaskManager/Test/test_render/log --- a/TaskManager/Test/test_render/log Fri Jan 30 09:57:12 2009 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17799 +0,0 @@ -Use Keyboard -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -2 -3 -5 -6 -7 -9 -10 -11 -13 -14 -15 -17 -18 -19 -21 -22 -23 -25 -26 -27 -29 -30 -31 -33 -34 -35 -37 -38 -39 -41 -42 -43 -45 -46 -47 -49 -50 -51 -53 -54 -55 -57 -58 -59 -61 -62 -63 -65 -66 -67 -69 -70 -71 -73 -74 -75 -77 -78 -79 -81 -82 -83 -85 -86 -87 -89 -90 -91 -93 -94 -95 -97 -98 -99 -101 -102 -103 -105 -106 -107 -109 -110 -111 -113 -114 -115 -117 -118 -119 -121 -122 -123 -125 -126 -127 -129 -130 -131 -133 -134 -135 -137 -138 -139 -141 -142 -143 -145 -146 -147 -149 -150 -151 -153 -154 -155 -157 -158 -159 -161 -162 -163 -165 -166 -167 -169 -170 -171 -173 -174 -175 -177 -178 -179 -181 -182 -183 -185 -186 -187 -189 -190 -191 -193 -194 -195 -197 -198 -199 -201 -202 -203 -205 -206 -207 -209 -210 -211 -213 -214 -215 -217 -218 -219 -221 -222 -223 -225 -226 -227 -229 -230 -231 -233 -234 -235 -237 -238 -239 -241 -242 -243 -245 -246 -247 -249 -250 -251 -253 -254 -255 -257 -258 -259 -261 -262 -263 -265 -266 -267 -269 -270 -271 -273 -274 -275 -277 -278 -279 -281 -282 -283 -285 -286 -287 -289 -290 -291 -293 -294 -295 -297 -298 -299 -301 -302 -303 -305 -306 -307 -309 -310 -311 -313 -314 -315 -317 -318 -319 -321 -705 -707 -708 -709 -711 -712 -713 -715 -716 -717 -719 -720 -721 -723 -724 -725 -727 -728 -729 -731 -732 -733 -735 -736 -737 -739 -740 -741 -743 -744 -745 -747 -748 -749 -751 -752 -753 -755 -756 -757 -759 -760 -761 -763 -764 -765 -767 -768 -769 -771 -772 -773 -775 -776 -777 -779 -780 -781 -783 -784 -785 -787 -788 -789 -791 -792 -793 -795 -796 -797 -799 -800 -801 -803 -804 -805 -807 -808 -809 -811 -812 -813 -815 -816 -817 -819 -820 -821 -823 -824 -825 -827 -828 -829 -831 -832 -833 -835 -836 -837 -839 -840 -841 -843 -844 -845 -847 -848 -849 -851 -852 -853 -855 -856 -857 -859 -860 -861 -863 -864 -865 -867 -868 -869 -871 -872 -873 -875 -876 -877 -879 -880 -881 -883 -884 -885 -887 -888 -889 -891 -892 -893 -895 -896 -897 -899 -900 -901 -903 -904 -905 -907 -908 -909 -911 -912 -913 -915 -916 -917 -919 -920 -921 -923 -924 -925 -927 -928 -929 -931 -932 -933 -935 -936 -937 -939 -940 -941 -943 -944 -945 -947 -948 -949 -951 -952 -953 -955 -956 -957 -959 -960 -961 -963 -964 -965 -967 -968 -969 -971 -972 -973 -975 -976 -977 -979 -980 -981 -983 -984 -985 -987 -988 -989 -991 -992 -993 -995 -996 -997 -999 -1000 -1001 -1003 -1004 -1005 -1007 -1008 -1009 -1011 -1012 -1013 -1015 -1016 -1017 -1019 -1020 -1021 -1023 -1024 -1025 -12.937063 FPS diff -r 07f3cd0bcc14 -r 2ae83ca07f0d TaskManager/Test/test_render/task/CreateSpan.cpp.orig --- a/TaskManager/Test/test_render/task/CreateSpan.cpp.orig Fri Jan 30 09:57:12 2009 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,521 +0,0 @@ -#include "CreateSpan.h" -#include "viewer_types.h" - -static const int SPAN_PACK_LOAD = 5; -static const int SPAN_PACK_STORE = 6; -static const int POLYGON_PACK_LOAD = 7; -static const int TILE_ALLOCATE = 8; -static const int TILE_LOAD = 9; -static const int TILE_STORE = 10; - -static SpanPackPtr spack = NULL; -static SpanPackPtr send_spack = NULL; -static int prev_index = 0; - -SchedDefineTask(CreateSpan); - -static float -calc(float f1, float f2,int i, float base) -{ - float ans; - ans = f1/f2*i + base; - return ans; -} - - -/** - * TrianglePack から、vMin, vMid, vMax を求める - * - * @param [triPack] TrianglePack - * @param [vMin] [vMid] [vMax] - */ -static void -make_vertex(TrianglePack *triPack, - VertexPackPtr *vMin, VertexPackPtr *vMid, VertexPackPtr *vMax) -{ - if (triPack->ver1.y <= triPack->ver2.y) { - if (triPack->ver2.y <= triPack->ver3.y) { - *vMin = &triPack->ver1; - *vMid = &triPack->ver2; - *vMax = &triPack->ver3; - } else if (triPack->ver3.y <= triPack->ver1.y) { - *vMin = &triPack->ver3; - *vMid = &triPack->ver1; - *vMax = &triPack->ver2; - } else { - *vMin = &triPack->ver1; - *vMid = &triPack->ver3; - *vMax = &triPack->ver2; - } - } else { - if (triPack->ver1.y <= triPack->ver3.y) { - *vMin = &triPack->ver2; - *vMid = &triPack->ver1; - *vMax = &triPack->ver3; - } else if (triPack->ver3.y <= triPack->ver2.y) { - *vMin = &triPack->ver3; - *vMid = &triPack->ver2; - *vMax = &triPack->ver1; - } else { - *vMin = &triPack->ver2; - *vMid = &triPack->ver3; - *vMax = &triPack->ver1; - } - } -} - -static void -make_vMid10(VertexPack *v, VertexPack *vMin, - VertexPack *vMid, VertexPack *vMax) -{ - //int d, d1; - float d; - int d1; - - d = vMax->y - vMin->y; - d1 = (int)(vMid->y - vMin->y); - - v->tex_x = calc(vMax->tex_x - vMin->tex_x, d, d1, vMin->tex_x); - v->tex_y = calc(vMax->tex_y - vMin->tex_y, d, d1, vMin->tex_y); - v->x = calc(vMax->x - vMin->x, d, d1, vMin->x); - v->y = vMid->y; - v->z = calc(vMax->z - vMin->z, d, d1, vMin->z); -} - -/** - * 与えられた scale から、実際に使うテクスチャの Tapestry を選択する - * - * テクスチャは、オリジナルのサイズから、可能なかぎり 1/2 で縮小していき、 - * 下の図の様に連続した領域に入れられる - * - * Tapestry (1) - * +---+---+---+---+ - * | 0 | 1 | 2 | 3 | - * +---+---+---+---+ - * | 4 | 5 | 6 | 7 | (2) - * +---+---+---+---+ +---+---+ - * | 8 | 9 | 10| 11| | 16| 17| (3) - * +---+---+---+---+ +---+---+ +---+ - * | 12| 13| 14| 15| | 18| 19| | 20| - * +---+---+---+---+ +---+---+ +---| - * - * (1) (2) (3) - * +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * | * | * | 14| 15| 16| 17| 18| 19| 20| - * +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ - * - * scale の値から、各 Tapestry の先頭アドレスを返す - * - * @param[in] tw Width of texture - * @param[in] th Height of texture - * @param[in] scale テクスチャの縮小率 (= 2^n) - * @param[in] addr_top テクスチャの先頭アドレス (上の図での (1) - * @return scale に対応する Tapestry のアドレス (上の図での (1) or (2) or(3) - */ -static uint32* -getTapestry(int tw, int th, int scale, uint32 *addr_top) -{ - int index = 0; - - for (int s = 1; s < scale; s <<= 1) { - index += tw*th; - tw >>= 1; /* tw /= 2 */ - th >>= 1; - } - - return addr_top + index; -} - - -/** - * span の width,height と texture の width,height を比べて - * span を描画する際に使う texture の比率を求める - * - * @param[in] width Width of span - * @param[in] height Height of span - * @param[in] tex_width Width of 1/1 texture that span use - * @param[in] tex_height Height of 1/1 texture that span use - * @param[in] scale_max この Span で使う texture の最大縮小率 - * 計算結果が scale_max 以上になるのを防ぐ - * @return 描画に使う texture の比率 - * width と height は 1/scale の画像を使う - * - */ -static int -getScale(int width, int height, int tex_width, int tex_height, int scale_max) -{ - int base, tex_base; - int scale = 1; - - /** - * width と height で、長い方を基準に、 - * texture の scale を決める - */ - if (width > height) { - base = width; - tex_base = tex_width; - } else { - base = height; - tex_base = tex_height; - } - - if (tex_base > base) { - int t_scale = tex_base/base; - - while (t_scale >>= 1) { - scale <<= 1; - } - } - - return (scale > scale_max) ? scale_max : scale; -} - -/** - * x軸に水平な辺を持つ三角形ポリゴンから、 - * Span を抜き出す - * - * @param[in] spackList triangle から生成された span を格納する List - * @param[in] charge_y_top 担当する y の範囲開始地点 - * @param[in] charge_y_end 担当する y の範囲終了地点 - * @param[in] tex_addr triangle が参照するテクスチャの先頭アドレス - * @param[in] tex_width テクスチャの width - * @param[in] tex_height テクスチャの height - * @param[in] tex_scale_max テクスチャの最大縮小率 (2^n) - * @param[in] vMin triangle の座標 - * @param[in] vMid triangle の座標。triangle を二つに分けて出来た新しい座標 - * @param[in] vMid10 triangle の座標 - * @param[in] length_y 分割する前の Triangle の y の長さ - * @param[in] tex_y_len 分割する前の Triangle に貼られている Texture の - * 長さの割合 (0 ... 1) - */ -void -CreateSpan::half_triangle(SpanPackPtr *spackList, - int charge_y_top, int charge_y_end, - uint32 *tex_addr, int tex_width, int tex_height, - int tex_scale_max, - VertexPack *vMin,VertexPack *vMid,VertexPack *vMid10, - int length_y, float tex_y_len) -{ - float tmp_z,tmp_tex1, tmp_tex2 ,tmp_tey1,tmp_tey2; - float tmp_xpos,tmp_end,tmp_zpos; - float start_z, end_z; - float start_tex_x, end_tex_x, start_tex_y, end_tex_y; - int x, y, length; - -#if 1 - // これじゃないと - // テクスチャの貼りに微妙に隙間が。謎だ - int start_y = (int)vMid->y; - int end_y = (int)vMin->y; -#else - float start_y = vMid->y; - float end_y = vMin->y; -#endif - float div_y = start_y - end_y; - int k = 0; - int l = 1; - - SpanPackPtr tmp_spack; - - /** - * 三角形ポリゴンをx軸に水平に二つに分けようとして - * ある一辺がすでに水平だった場合、つまり - * - * |\ - * | \ - * | \ - * ----- - * - * - * 上のようなポリゴンだった場合は、本来なら上の部分の三角形にだけ - * half_triangle の処理をするべきだが、現在の処理だと - * この half_triangle に「上の部分の三角形」と、 - * 「『下の部分の三角形と判断してしまった』直線」が来てしまう。 - * 直線の部分が来ると、calc() で 0 除算とかで、値不定で暴走するので - * 現在はこれで代用。 - * half_triangle 呼ぶ前にこれを判断できれば良いかもしれない。 - * てかこんなんでいいのかよ。。。 - */ -#if 1 - if ((int)div_y == 0) { - return; - } -#else - if (vMid10->x == vMin->x && vMid10->y == vMin->y) { - return; - } -#endif - - if (div_y < 0) { - div_y = -div_y; - k = 1; - l = -1; - } - - for (int i = k; i < (int)div_y+1; i++) { - y = (int)vMin->y + i*l; - - /** - * 担当 y 範囲内 - */ - if (charge_y_top <= y && y <= charge_y_end) { - // 1..8 を index0, 9..16 を index1 にするために y を -1 - int index = (y-1) / split_screen_h; - - /** - * 違う SpanPack を扱う場合、 - * 現在の SpanPack をメインメモリに送り、 - * 新しい SpanPack を取ってくる - */ - if (index != prev_index) { - tmp_spack = spack; - spack = send_spack; - send_spack = tmp_spack; - - smanager->dma_wait(SPAN_PACK_STORE); - smanager->dma_store(send_spack, (uint32)spackList[prev_index], - sizeof(SpanPack), SPAN_PACK_STORE); - - smanager->dma_load(spack, (uint32)spackList[index], - sizeof(SpanPack), SPAN_PACK_LOAD); - prev_index = index; - smanager->dma_wait(SPAN_PACK_LOAD); - } - - /** - * 書き込む SpanPack が満杯だったら - * メインメモリで allocate した領域 (next) を持ってきて - * 現在の spack->next につなぎ、next を次の spack とする。 - */ - if (spack->info.size >= MAX_SIZE_SPAN) { - SpanPackPtr next; - - smanager->mainMem_alloc(0, sizeof(SpanPack)); - smanager->mainMem_wait(); - next = (SpanPackPtr)smanager->mainMem_get(0); - - spack->next = next; - - tmp_spack = spack; - spack = send_spack; - send_spack = tmp_spack; - - smanager->dma_wait(SPAN_PACK_STORE); - smanager->dma_store(send_spack, (uint32)spackList[index], - sizeof(SpanPack), SPAN_PACK_STORE); - - spackList[index] = next; - - smanager->dma_load(spack, (uint32)spackList[index], - sizeof(SpanPack), SPAN_PACK_LOAD); - smanager->dma_wait(SPAN_PACK_LOAD); - spack->init((index+1)*split_screen_h); - } - } else { - /** - * 担当範囲外だったら無視 - */ - continue; - } - - tmp_xpos = calc(vMid10->x - vMin->x ,div_y, i, vMin->x); - tmp_end = calc(vMid->x - vMin->x ,div_y, i, vMin->x); - tmp_z = calc(vMid10->z - vMin->z ,div_y, i, vMin->z); - tmp_zpos = calc(vMid->z - vMin->z ,div_y, i, vMin->z); - - length = (tmp_xpos > tmp_end) - ? (int)tmp_xpos - (int)tmp_end : (int)tmp_end - (int)tmp_xpos; - if (length == 0) { - continue; - } - - tmp_tex1 =((i/(div_y)) * vMid10->tex_x) + - ( ((div_y - i)/(div_y)) * vMin->tex_x); - tmp_tex2 =( (i/(div_y)) * vMid->tex_x) + - ( ((div_y - i)/(div_y)) * vMin->tex_x); - - tmp_tey1 =( (i/(div_y)) * vMid10->tex_y) + - ( ((div_y - i)/(div_y)) * vMin->tex_y); - tmp_tey2 =( (i/(div_y)) * vMid->tex_y) + - ( ((div_y - i)/(div_y)) * vMin->tex_y); - - if (tmp_xpos > tmp_end) { - x = (int)tmp_end; - length = (int)(tmp_xpos)-(int)(tmp_end)+1; - start_z = tmp_zpos; - end_z = tmp_z; - start_tex_x = tmp_tex2; - end_tex_x = tmp_tex1; - start_tex_y = tmp_tey2; - end_tex_y = tmp_tey1; - } else { - x = (int)tmp_xpos; - length = (int)(tmp_end)-(int)(tmp_xpos)+1; - start_z = tmp_z; - end_z = tmp_zpos; - start_tex_x = tmp_tex1; - end_tex_x = tmp_tex2; - start_tex_y = tmp_tey1; - end_tex_y = tmp_tey2; - } - - smanager->dma_wait(SPAN_PACK_LOAD); - - Span *span = &spack->span[spack->info.size++]; - - span->x = x; - span->y = y; - span->length_x = length; - span->start_z = start_z; - span->end_z = end_z; - span->tex_x1 = start_tex_x; - span->tex_x2 = end_tex_x; - span->tex_y1 = start_tex_y; - span->tex_y2 = end_tex_y; - - - float tex_x_len = span->tex_x2 - span->tex_x1; - - /** - * tex_x_len, tex_y_len を掛ける理由は - * Changelog の 2008-12-16 を参照 - */ - int scale = getScale(span->length_x, length_y, - (int)(span->tex_width*tex_x_len), - (int)(span->tex_height*tex_y_len), tex_scale_max); - - scale = (8 > tex_scale_max) ? tex_scale_max : 8; - - uint32 *tapestry = getTapestry(tex_width, tex_height, scale, tex_addr); - - span->tex_addr = tapestry; - span->tex_width = tex_width/scale; - span->tex_height = tex_height/scale; - } -} - - -int -CreateSpan::run(void *rbuf, void *wbuf) -{ - PolygonPack *pp = (PolygonPack*)smanager->get_input(0); - PolygonPack *next_pp = - (PolygonPack*)smanager->allocate(sizeof(PolygonPack)); - PolygonPack *free_pp = next_pp; - PolygonPack *tmp_pp; - - TrianglePackPtr triPack; - VertexPackPtr vMin, vMid, vMax; - VertexPackPtr vMid10 - = (VertexPackPtr)smanager->allocate(sizeof(VertexPack)); - - SpanPackPtr *spackList = (SpanPackPtr*)smanager->get_input(1); - spack = (SpanPackPtr)smanager->get_input(2); - send_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack)); - prev_index = get_param(0); - - // spack と send_spack は swap しながら DMA を繰り返すので - // 自分で allocate した send_spack を覚えてないといけない - SpanPackPtr free_spack = send_spack; - - int charge_y_top = get_param(1); - int charge_y_end = get_param(2); - - do { - if (pp->next != NULL) { - smanager->dma_load(next_pp, (uint32)pp->next, - sizeof(PolygonPack), POLYGON_PACK_LOAD); - } else { - next_pp = NULL; - } - - for (int i = 0; i < pp->info.size; i++) { - triPack = &pp->tri[i]; - -#if 0 - make_vertex(triPack, &vMin, &vMid, &vMax); -#else - if (triPack->ver1.y <= triPack->ver2.y) { - if (triPack->ver2.y <= triPack->ver3.y) { - vMin = &triPack->ver1; - vMid = &triPack->ver2; - vMax = &triPack->ver3; - } else if (triPack->ver3.y <= triPack->ver1.y) { - vMin = &triPack->ver3; - vMid = &triPack->ver1; - vMax = &triPack->ver2; - } else { - vMin = &triPack->ver1; - vMid = &triPack->ver3; - vMax = &triPack->ver2; - } - } else { - if (triPack->ver1.y <= triPack->ver3.y) { - vMin = &triPack->ver2; - vMid = &triPack->ver1; - vMax = &triPack->ver3; - } else if (triPack->ver3.y <= triPack->ver2.y) { - vMin = &triPack->ver3; - vMid = &triPack->ver2; - vMax = &triPack->ver1; - } else { - vMin = &triPack->ver2; - vMid = &triPack->ver3; - vMax = &triPack->ver1; - } - } -#endif - make_vMid10(vMid10, vMin, vMid, vMax); - - /** - * ポリゴンを、x軸に水平に分割して二つの三角形を作り、 - * それぞれから Span を求める - * - * vMax - * |\ - * | \ - * | \ - * | \ - * vMid10 ------ vMid - * | / - * | / - * | / - * |/ - * vMin - * - * (vMax, vMid, vMin) という triangle を - * (vMax, vMid, vMid10) (vMin, vMid, vMid10) という - * 二つの Triangle に分けている - */ - half_triangle(spackList, charge_y_top, charge_y_end, - triPack->tex_info.addr, - triPack->tex_info.width, - triPack->tex_info.height, - triPack->tex_info.scale_max, vMin, vMid, vMid10, - (int)(vMax->y - vMin->y), vMax->tex_y - vMin->tex_y); - half_triangle(spackList, charge_y_top, charge_y_end, - pp->tri[0].tex_info.addr, - pp->tri[0].tex_info.width, - pp->tri[0].tex_info.height, - pp->tri[0].tex_info.scale_max, vMax, vMid, vMid10, - (int)(vMax->y - vMin->y), vMax->tex_y - vMin->tex_y); - } - - smanager->dma_wait(POLYGON_PACK_LOAD); - - tmp_pp = pp; - pp = next_pp; - next_pp = tmp_pp; - } while (pp); - - smanager->dma_wait(SPAN_PACK_STORE); - smanager->dma_store(spack, (uint32)spackList[prev_index], - sizeof(SpanPack), SPAN_PACK_STORE); - smanager->dma_wait(SPAN_PACK_STORE); - - free(free_pp); - free(free_spack); - free(vMid10); - - return 0; -} diff -r 07f3cd0bcc14 -r 2ae83ca07f0d TaskManager/Test/test_render/task/DrawSpanRenew.cpp.orig --- a/TaskManager/Test/test_render/task/DrawSpanRenew.cpp.orig Fri Jan 30 09:57:12 2009 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -#include -#include -#include "DrawSpanRenew.h" -#include "polygon_pack.h" -#include "SpanPack.h" -#include "texture.h" -#include "viewer_types.h" -#include "Func.h" - -#define SPAN_PACK_LOAD 0 -#define TEX_LOAD 1 - -SchedDefineTask(DrawSpanRenew); - -int -DrawSpanRenew::run(void *rbuf, void *wbuf) -{ - hash = (TileHashPtr)smanager->global_get(GLOBAL_TEXTURE_HASH); - tileList = (TileListPtr)smanager->global_get(GLOBAL_TILE_LIST); - - int rangex_start = smanager->get_param(0); - int rangex_end = smanager->get_param(1); - - // Υô x ϰ - int rangex = rangex_end - rangex_start + 1; - - // y ϰ (render_y + rangey - 1) - int rangey = smanager->get_param(2); - - float *zRow = (float*)smanager->allocate(sizeof(float)*rangex*rangey); - - for (int i = 0; i < rangex*rangey; i++) { - zRow[i] = 65535.0f; - } - - int **linebuf = (int**)smanager->allocate(sizeof(int*)*rangey); - - for (int i = 0; i < rangey; i++) { - linebuf[i] = (int*)smanager->get_output(i); - linebuf_init(linebuf[i], rangex, 0xffffffff); - } - - SpanPackPtr spack = (SpanPackPtr)smanager->get_param(3); - SpanPackPtr next_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack)); - SpanPackPtr free_spack1 = spack; - SpanPackPtr free_spack2 = next_spack; - Span *span; - - // span->length_x νǤκƵư - int js_cont = smanager->get_param(4); - - smanager->dma_wait(TEX_LOAD); - - do { - /** - * SpanPack->next ¸ߤ硢 - * ߤ SpanPack Ƥ֤ - * SpanPack DMA žԤ - */ - if (spack->next != NULL) { - smanager->dma_load(next_spack, (uint32)spack->next, - sizeof(SpanPack), SPAN_PACK_LOAD); - } else { - next_spack = NULL; - } - - for (int t = spack->info.start; t < spack->info.size; t++) { - span = &spack->span[t]; - - Uint32 rgb = 0x00ff0000; - float tex1 = span->tex_x1; - float tex2 = span->tex_x2; - float tey1 = span->tex_y1; - float tey2 = span->tex_y2; - - /** - * Span 1 pixel - * ƥκɸ - */ - int tex_xpos; - int tex_ypos; - - /** - * (tex_xpos, tex_ypos) Ρ֥å(ο޻)Ǥκɸ - * Υ֥åΥɥ쥹(MainMemory) - */ - int tex_localx; - int tex_localy; - uint32 *tex_addr; - - int x = span->x; - int y = span->y; - int x_len = span->length_x; - float z = span->start_z; - float zpos = span->end_z; - - // ɸ [0 .. split_screen_w-1] 褦 x,y -1 - int localx = getLocalX(x-1); - int localy = getLocalY(y-1); - - if (x_len == 1) { - if (x < rangex_start || rangex_end < x) { - continue; - } - - tex_xpos = (int)((span->tex_width-1) * tex1); - tex_ypos = (int)((span->tex_height-1) * tey1); - - if (zpos < zRow[localx + (rangex * localy)]) { - tex_addr = getTile(tex_xpos, tex_ypos, - span->tex_width, span->tex_addr); - tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL; - tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL; - - /** - * Tile ̵硢öϤǤ - * Tile ɤ륿餻˺Ƶư - */ - if (!isAvailableTile(tex_addr)) { - spack->info.start = t; - //set_rgb(tex_addr); - set_rgbs(tex_addr, - getTile(span->tex_width-1, tex_ypos, - span->tex_width, span->tex_addr)); - //reboot(spack, 0); - //goto FINISH; - } - - rgb = get_rgb(tex_localx, tex_localy, tex_addr); - - zRow[localx + (rangex * localy)] = zpos; - linebuf[localy][localx] = rgb; - } - } else { - int js = (x < rangex_start) ? rangex_start - x : 0; - int je = (x + x_len > rangex_end) ? rangex_end - x : x_len; - float tex_x, tex_y, tex_z; - - /** - * ӤСʸƵưޤǤ - * js_cont ϻȤʤ 0 ˤƤ櫓ɡ - * ǽΰΤˤϤɤΡ - */ - js = (js < js_cont) ? js_cont : js; - js_cont = 0; - - for (int j = js; j <= je; j++) { - localx = getLocalX(x-1+j); - - tex_z = z*(x_len-1-j)/(x_len-1) + zpos*j/(x_len-1); - - tex_x = tex1*(x_len-1-j)/(x_len-1) + tex2*j/(x_len-1); - tex_y = tey1*(x_len-1-j)/(x_len-1) + tey2*j/(x_len-1); - if (tex_x > 1) tex_x = 1; - if (tex_x < 0) tex_x = 0; - if (tex_y > 1) tex_y = 1; - if (tex_y < 0) tex_y = 0; - tex_xpos = (int)((span->tex_width-1) * tex_x); - tex_ypos = (int)((span->tex_height-1) * tex_y); - - if (tex_z < zRow[localx + (rangex*localy)]) { - tex_addr = getTile(tex_xpos, tex_ypos, - span->tex_width, span->tex_addr); - tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL; - tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL; - if (!isAvailableTile(tex_addr)) { - spack->info.start = t; -<<<<<<< local - printf("empty\n"); - set_rgb(tex_addr); -======= - //set_rgb(tex_addr); ->>>>>>> other - set_rgbs(tex_addr, - getTile(span->tex_width-1, tex_ypos, - span->tex_width, span->tex_addr)); - //reboot(spack, j); - //goto FINISH; - } - - rgb = get_rgb(tex_localx, tex_localy, tex_addr); - - zRow[localx + (rangex*localy)] = tex_z; - linebuf[localy][localx] = rgb; - } - } - } - } - - smanager->dma_wait(SPAN_PACK_LOAD); - - SpanPackPtr tmp_spack = spack; - spack = next_spack; - next_spack = tmp_spack; - } while (spack); - - -FINISH: - smanager->dma_wait(SPAN_PACK_LOAD); - //free(next_spack); - free(linebuf); - free(zRow); - - // Renew allocate 줿ΤʤΤǡ free - //free(spack); - - free(free_spack1); - free(free_spack2); - - - return 0; -}