%%%%%%%%%%%%%%%%%%                                                      %%%%%%%%%%%%%%)***********,**))++++++++++++++++++++++++++++++77777778===================%%%%%%%%%%%%%%%%%%                                                      %%%%%%%%%%%%%)*****,,,***,,,,,,++++++++++++++++++++++++++++++++7777778==================%%%%%%%%%%%%%%%%%%                                                       %%%%%%%%%%%***,,---------,,,,,,,,++++++++++++++++++++++++++++++++7777788===============%%%%%%%%%%%%%%%%%%                                                        %%%%%%%%%&**----;;;;C-;;---,,,,,,,,++++++++++++++++++++++++++++++++777778=============%%%%%%%%%%%%%%%%%%                                                         %%%%%%%%**---;;;;;;;;;;;----,,,,,,,++++++++++++++++++++++++++++++++777788============%%%%%%%%%%%%%%%%%%%                                                        %%%%%%&*--C;YYYYYYYYY;;;;;;;-,,,,,,,+++++++++++++++++++++++++++++++++777888========8%%%%%%%%%%%%%%%%%%%                                                        %%%%%&&*-C;YYYYYYYYYYYY;;;;;;-,,,,,,,++++++++++++++++++++++++++++++++777788888=88888%%%%%%%%%%%%%%%%%%%                                                       %%%%&*-C;YYY\\\\\\\^YYYY;;;;;;;,,,,,,,++++++++++++++++++++++++++++++++7777788888777%%%%%%%%%%%%%%%%%%%                                                     %%%%&--CYYY\\\\\\\\\\YYYY;;;;;;;,,,,,,,+++++++++++++++++++++++++++++++7777777777777%%%%%%%%%%%%%%%%%%%                                                   %%&&-CYY\\fxxxxxxxff\\^YYY;;;;;;;,,,,,,,+++++++++++++++++++++++++++++++77777777777%%%%%%%%%%%%%%%%%%%%                                              %%&&-CY\\xxx{{{{zzxxff\\^YYY;;;;;;8,,,,,,+++++++++++++++++++++++++++++++7777777777%%%%%%%%%%%%%%%%%%%%                                             %%&--6Y\\xx{{{{{{{zxxff\^YYY;;;;;;;,,,,,,,+++++++++++++++++++++++++++++++777777777%%%%%%%%%%%%%%%%%%%%                                          %&-CYY\xx{{ャャ{{{{zxff\\^YYY;;;;;;8,,,,,,++++++++++++++++++++++++++++++++7777+++%%%%%%%%%%%%%%%%%%%%                                        %&-CYZ\xy{ャャャ{{{zzxff\^YYY;;;;;;;,,,,,,,++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%                                       %&-CYZ\x{ャャャャボ{zzxfe\^YYY;;;;;;;,,,,,,,+++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%                                       %&-CYZxx{ャヤтャボ{{zxff\^^YY;;;;;;;8,,,,,,+++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%                                      %&--YZxx{ャттсャ{{zzxfe\^YYY;;;;;;;8,,,,,,++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%                                     %&--6Zxx{ャттсャ{{zzxff\^YYY;;;;;;;8,,,,,,,+++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%                              %&--6Z\xy{ャтсャボ{zzxff\^^YYY;;;;;;;,,,,,,,,++++++++++++++++++++++++,,,,,,,+++%%%%%%%%%%%%%%%%%%%%%                            !&-6YZxxyャャャャ{{{zxxff\^^YYY;;;;;;;;,,,,,,,++++++++++++++++++++++,,,,,,,,,,,,%%%%%%%%%%%%%%%%%%%%%                            !&-CYZ\xy{ャャャ{{{{zxxff\^^YYY;;;;;;;;,,,,,,,,++++++++++++++++++++,,,,,,8888,,,%%%%%%%%%%%%%%%%%%%%%%                         &-$6YZ\xxy{{{{{{{{zxxff\\^YYYY;;;;;;;;,,,,,,,,++++++++++++++++++,,,,,888888888,%%%%%%%%%%%%%%%%%%%%%%                       !&--6ZZxxxyy{{{{zxxxxff\\^YYYY;;;;;;;;,,,,,,,,+++++++++++++++++,,,,,88888888888%%%%%%%%%%%%%%%%%%%%%%                       !---6YZ\\xxxxxxxxxf\\\\YYYYY;;;;;;;;-,,,,,,,,+++++++++)+++++,,,,,8888888888888%%%%%%%%%%%%%%%%%%%%%%                     !&-$46YZ\\\xxxxf\\\\\\YYYYYY;;;;;;;;-,,,,,,,,,+++++++))+++++,,,,,8888888888888%%%%%%%%%%%%%%%%%%%%%%                    !!--$4YYYZZZ\\\\\\YYYYYYYY;;;;;;;;--,,,,,,,,,+++++)))++++,,,,,888888888888888%%%%%%%%%%%%%%%%%%%%%%%                 !!!----666YYYYYYYYYYYYY;;;;;;;;;--,,,,,,,,,+++++))))+++,,,,,8888;;;;;;;;;888%%%%%%%%%%%%%%%%%%%%%%%                 !!&--$--C66YYYYYYYYY;;;;;;;;;;---,,,,,,,,,++++)))))++,,,,,888;;;;;;;;;;;;88%%%%%%%%%%%%%%%%%%%%%%%                  !&!&------CCCCCCC;;;;;-------,,,,,,,,,,,+++)))))++,,,,,88;;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%                   !!&&-------CCCC-----------,,,,,,,,,,,,++))))))++,,,,88;;;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%                     !&&&&&--------------,,,,,,,,,,,,,,+)))))))++,,,,88;;;;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%                   !&&&&&&&**-----,,,,,,,,,,,,,,,,,)))))))))++,,,,8;;;;;;;;;;;;;;;;;;;%%%%%%%%%%%%%%%%%%%%%%%%                      %&&&&&&&**********,,,,,****))))))))))+,,,,8;;;;;;;;;GGGGGGG;;;;%%%%%%%%%%%%%%%%%%%%%%%%                      %%&&&&&&&****************))))))))))),,,,,;;;;;;;;GGGGGGGGGG;;;%%%%%%%%%%%%%%%%%%%%%%%%                      %%%%%%%%&&&*********))))))))))))))+,,,,;;;;;;;GGGYYY[[YYGGGG;%%%%%%%%%%%%%%%%%%%%%%%%%                      %%%%%%%%%%%%)))))))))))))))))))),,,,;;;;;;;GYY[[[[[[[[[[YGG%%%%%%%%%%%%%%%%%%%%%%%%%                       %%%%%%%%%%%%%)))))))))))))))))),,,,;;;;;;GYY[[[[[[[[[[[[GG%%%%%%%%%%%%%%%%%%%%%%%%%                       %%%%%%%%%%%%%%%%))))))))))))),,,,;;;;;;GYY[[^^^^^^^^[[[[Y%%%%%%%%%%%%%%%%%%%%%%%%%               				        %%%%%%%%%%%%%%%%%%%)))))))))),,,,;;;;;GYY[[^^^^^^^^^^[[[[%%%%%%%%%%%%%%%%%%%%%%%%%                		         %%%%%%%%%%%%%%%%%%%%%%%%))),,,,;;;;;YY[^^^^^^ee^^^^^^[[%%%%%%%%%%%%%%%%%%%%%%%%%                		        %%%%%%%%%%%%%%%%%%%%%%%%))),,,;;;;;GY[[^^^eeeeeee^^^^^[%%%%%%%%%%%%%%%%%%%%%%%%%%               	         %%%%%%%%%%%%%%%%%%%%%%)))*,,,;;;;;YY^^^eeeeeeeeeeee^^^%%%%%%%%%%%%%%%%%%%%%%%%%%               				        %%%%%%%%%%%%%%%%%%%%%))),,,-;;;;YY[^^eeeeffffffeeee^^%%%%%%%%%%%%%%%%%%%%%%%%%%               			        %%%%%%%%%%%%%%%%%%%%%))),,,-;;;;YY^^eeeeffffjfffeeee^%%%%%%%%%%%%%%%%%%%%%%%%%%               				        %%%%%%%%%%%%%%%%%%%%))),,,;;;;YY^^^eeffjjjzzjjjffeee%%%%%%%%%%%%%%%%%%%%%%%%%%%              			        %%%%%%%%%%%%%%%%%%%))),,,;;;;YY^^eeefjjzzzzzzjjffee%%%%%%%%%%%%%%%%%%%%%%%%%%%              				        %%%%%%%%%%%%%%%%%%%))*,,,;;;;Y[^^eefjzzzzzzzzzzjffe%%%%%%%%%%%%%%%%%%%%%%%%%%%              		         %%%%%%%%%%%%%%%%%%))*,,-;;;;Y^^eeffjzzzzzzzzzzjjfe%%%%%%%%%%%%%%%%%%%%%%%%%%%              		         %%%%%%%%%%%%%%%%%))*,,-;;;YY^^eefjzzzzzzzzzzzzzjf%%%%%%%%%%%%%%%%%%%%%%%%%%%               				         %%%%%%%%%%%%%%%%%))*,,-;;;YY^^effzzzzzzzzzzzzzzjf%%%%%%%%%%%%%%%%%%%%%%%%%%%%              				         %%%%%%%%%%%%%%%%))*,,-;;;Y[^eefjzzzzz{{{{zzzzzzj%%%%%%%%%%%%%%%%%%%%%%%%%%%%              						          %%%%%%%%%%%%%%%%)*,,-;;;Y^^effzzzz{{{{{{{{zzzzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%              										          %%%%%%%%%%%%%%%%)*,,-;;;Y^^effzzzz{{{{{{{{zzzzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%             						          %%%%%%%%%%%%%%%)*,,-;;;Y^^efzzzz{{{{{{{{{{zzzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%             						          %%%%%%%%%%%%%%%)*,,-;;;Y^^efzzzz{{{{{{{{{{{zzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%             					          %%%%%%%%%%%%%%)*,,-;;;Y^eefzzz{{{{{{{{{{{{zzz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%             			           %%%%%%%%%%%%%)*,,-;;;Y^eefzzz{{{{{{{{{{{{{zz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%              		            %%%%%%%%%%%%)*,,-;;;Y^eefzzz{{{{{ャボ{{{{zz%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%             					           %%%%%%%%%%%%)*,,-;;;Y^effzzz{{{{ャャボ{{{{z%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%             					           %%%%%%%%%%%%)*,,-;;;Y^effzz{{{{ャﾟャボ{{{z%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%             				            %%%%%%%%%%%))*,-;;;Y^effzz{{{{ャﾟﾟﾟﾟボ{{{z%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            				           %%%%%%%%%%%))*,-;;;Y^effzz{{{{ﾟﾟﾟﾟﾟャ{{{z%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            						           %%%%%%%%%%%%)*,-;;;Y^eefzz{{{{ﾟﾟﾟﾟﾟﾟボ{{{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            				           %%%%%%%%%%%%)*,-;;;Y^eefzz{{{ャﾟﾟ珥ﾟﾟボ{{{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%             				           %%%%%%%%%%%)*,,;;;Y^eefzz{{{ﾟﾟ珥珥ﾟﾟボ{{)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            				           %%%%%%%%%%%)*,,;;;Y^\efzz{{{ﾟﾟ珥珥ﾟﾟボ{{)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            						          %%%%%%%%%%%)*,,-;;Y^^efzz{{{ﾟﾟ珥珥珀ﾟ{{{))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            					          %%%%%%%%%%%)),,-;;YY^efzz{{{ﾟﾟ珥珥珀ﾟ{{{)))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           					           %%%%%%%%%%))*,-;;YY^efzz{{{ﾟﾟ珥珥珀ﾟ{{{)))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            					          %%%%%%%%%%%)*,-;;;Y^efzzz{{ﾟﾟ珥珥珀ﾟボ{))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            				          %%%%%%%%%%%)*,-;;;Y^efzzz{{ﾟﾟ珥珥珀ﾟボ{))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           				          %%%%%%%%%%%)*,,;;;Y^efjzz{{{ﾟﾟ珥珥珀ﾟﾟ{{)))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           				          %%%%%%%%%%%)*,,;;;Y^efjzz{{{ﾟﾟ珥珥珀ﾟﾟ{{))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%           					          %%%%%%%%%%)*,,;;;Y^^efzz{{{ﾟ珥珥珀ﾟﾟ{{))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           				          %%%%%%%%%%)),,-;;Y[^efzz{{{ﾟﾟ珥珥ﾟﾟﾟ{{)))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%           $					          %%%%%%%%%%)),,-;;YY^efzzz{{ﾟﾟ珥珥ﾟﾟﾟ{{))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%           	00440$$$			         %%%%%%%%%%%)*,,;;;Y^efzzz{{{ﾟﾟﾟ珥ﾟﾟﾟﾟﾔ{))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%%          0555544$$$				         %%%%%%%%%%%)*,,;;;Y^efjzz{{{ﾟﾟﾟﾟ珀ﾟﾟﾔﾔ{)))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%           15orwwwvq5544$$$			        %%%%%%%%%%%%)),,;;;Y^^ejzz{{{ﾔﾟﾟﾟﾟﾟﾟﾟﾔﾔ{)))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%           5pw|~~wwwvq5540$$			       %%%%%%%%%%%%%)),,;;;Y[^ejzzz{{ﾔﾟﾟﾟﾟﾟﾟﾟﾔﾔ{))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%%          1mt|≠ａ＝~~ywwvq544$$			         %%%%%%%%%%))),,;;;G[^eflzz{{{ﾔﾟﾟﾟﾟﾟﾔﾔﾔ{)))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%          2nu}ｂ＝＝×~ywvq54$			        %%%%%%%%%%))),,8;;G[^eejzzz{{ﾔﾔﾟﾟﾟﾔﾔﾔﾓ{))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%          1msuwwtw|~≠ｂａ×yvq4		         %%%%%%%%%))+,,8;;G[[^ejzzz{{{ﾔﾔﾔﾔﾔﾔﾔﾓ{))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%%          12115mnptwwww~yw~~w5$		         %%%%%%%%%%))++,8;;GG[^^ilzzz{{ﾓﾔﾔﾔﾔﾓﾓ{z)))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%          1555mmpppr~＝yq4		         %%%%%%%%%)))++,88;;G[]^ejlzzz{{ﾓﾓﾓﾓﾓﾓzz))))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%         5t~ｂ~v4$	       %%%%%%%%%%)))+++88;;GG[^^illzzzzzﾓﾓﾓﾐﾐzz))))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%          5r|＝~r4	      %%%%%%%%%))))+++888;GG[]^iklzzzzzzﾐﾐﾐﾐzz)))))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%%         1mtwwt50				       %%%%%%%%%)))++++888;FGG]]^ikllzzzzzﾐﾏﾏzz))))))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%         5ptro5			      %%%%%%%%%))))++++7888FFGG]^bkkllzzzzﾏﾏﾏzl+))))))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%         111	      %%%%%%%%))))+++++77888FFGR]]bdkkllllｦｦｦｦｦ+++)))))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%        			      %%%%%%%%%)))++++++77788:FFGR]]dddkkk･ｦｦｦ･･++++))))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%        	      %%%%%%%%)))+++++++77788:FFFRR]cdddk･･･････+++++++))))))))))))%%%%%%%%%%%%%%%%%%%%%%%%        			     %%%%%%%%)))++++++++777788@FFQRT_ccd沺衍････++++++++))))))))))))%%%%%%%%%%%%%%%%%%%%%%%        			     %%%%%%%%))+++++++++777778@@FQQTTcc棔沺衍･ｧｧ++++++++++)))))))))))%%%%%%%%%%%%%%%%%%%%%%%        			     %%%%%%%%))+++++++++777777=@@@QSSXX棍棔｡｡｡｡ｧｧ++++++++++++))))))))))%%%%%%%%%%%%%%%%%%%%%%        		     %%%%%%%)))+++++++++777777?@@@QSSX時棍｡｡｡｡｡ｮｮ++++++++++++++)))))))))%%%%%%%%%%%%%%%%%%%%%%        			    %%%%%%%%)++++++++++777777<?@@@SSW試棧｡ｪｪｮｮｰｰ++++++++++++++++))))))))%%%%%%%%%%%%%%%%%%%%%        			     %%%%%%%))+++++++++7777777<?@@MSS克滋ｪｪｪｰｰｰｰ++++++++++++++++++)))))))%%%%%%%%%%%%%%%%%%%%%       				     %%%%%%%)++++++++++777777<??@@MS麹諮ｩｪｪｰｰﾃﾄﾄﾄ+++++++++++++++++++++)))))%%%%%%%%%%%%%%%%%%%%%       				     %%%%%%%)++++++++++7777777<?@@MMS克摺ｩｪｬｬｰﾃﾄﾆﾆ++++++++++++++++++++++)))))%%%%%%%%%%%%%%%%%%%%%      				     %%%%%%%)++++++++++7777777<?@@MMS克摺ｩｪｬｰﾃﾄﾆﾆ+++++++++++++++++++++++++)))%%%%%%%%%%%%%%%%%%%%%      				     %%%%%%%+++++++++++7777777<??@MMS克瑞ｩｪｬｰﾃﾄﾆ+++++++++++++++++++++++++++))%%%%%%%%%%%%%%%%%%%%      					     %%%%%%%%+++++++++++7777777<??@AMS麹瑞ｩｩｬｬﾃﾃﾆﾆ++++++++++++++++++++++++++++++)%%%%%%%%%%%%%%%%%%%      						     %%%%%%%%++++++++++++7777777<??@MMS麹瑞ｩｩｬｬﾃﾃﾆﾆ++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%     						      %%%%%%%%++++++++++++7777777<??@@MMS克瑞ｩｩｬｬﾃﾃﾆﾆ+++++++++++++++++++++++++++++++++''%%%%%%%%%%%%%%%%%     				     %%%%%%%%%%%'++++++++++++7777777<<??@AMMS克瑞ｩｩｬｬﾃﾃ+++++++++++++++++++++++++++++++++++'''%%%%%%%%%%%%%%%     						    %%%%%'''''++++++++++++++++++7777777<<??@@MMS麹諮姓ｩｪ++++++++++++++++++++++++++++++++++++''''%%%%%%%%%%%%%%    						      %%%''+++++++++++++++++++++++7777777<<??@@MMM轄告瑞ｩ++++++++++++++++++++++++++++++++++++++'''''%%%%%%%%%%%%    					     %%%%%%%''''+++++++++++++++++++++77777777<<??@@MMMS麹+++++++++++++++++++++++++++++++++++++++''''''%%%%%%%%%%%   			     %%%%%%%'''''+++++++++77777777777++77777777<<???@@MMMS+++++++++++++++++++++++++++++++++++++++++'''''''%%%%%%%%%   	     %%%%%%''''''++++++++++++<<<<<<<<<<<<77777777777<<<???@@A++++++++++++++++++++++++++++++++++++++++++''''''''%%%%%%%%        %%%%%%'''''''+++++++++++++++@@@@@@??<<<<7777777777<<<????+++++++++++++++++++++++++++++++++++++++++++++''''''''%%%%%%        %%%%%%''''''''+++++++++++++++++++++MMAA@@??<<<7777777777<<<++++++++++++++++++++++++++++++++++++++++++++++'''''''''%%%%%        %%%%%%'''''''''++++++++++++++++++++++++MMA@@??<<<77777777777+++++++++++++++++++++++++++++++++++++++++++++++++''''''''%%%%          %%%%%%''''''''''++++++++++++++++++++++++++++777@???<<<77777777+++++++++++++++++++++++++++++++++++++++++++++++++++'''''''''%%%          %%%%%%''''''''''''+++++++++++++++++++++++++++++7777777??<<777777+++++++++++++++++++++++++++++++++++++++++++++++++++++''''''''%%           %%%%%%%'''''''''''''++++++++++++++++++++++++++++++77777777?<<<7777+++++++++++++++++++++++++++++++++++++++++++++++++++++++''''''''%%           %%%%%%%%''''''''''''''''++++++++++++++++++++++++++++++++77777777777777+++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''''''%%           %%%%%%%%'''''''''''''''''''++++++++++++++++++++++++++++++++7777777777777+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''''''%%                 %%%%%%%'''''''''''''''''''''''+++++++++++++++++++++++++++++++++++7777777777+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''''%%              %%%%%%'''''''''''''''''''''''''''+++++++++++++++++++++++++++++++++++777777777+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''''%%%  %' %%%%%%%%'''''''''''''''''''''''''''''++++++++++++++++++++++++++++++++++++++++777777+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''''%%%%''%%''''''''''''''''''''''''''''++++++++++++++++++++++++++++++++++++++++++++++++++777++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''''%%%'''''''''''''''''''''''''''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++7++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''''''''''''''''''''''''''''''++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''''''++''''''''''''''''++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'''''+++''''''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++''''+++''''+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++