Assolo              Assolo                       ------                 @   Written by            L @   Silvio Banzi          O @   in 1994                @   Write me suggests at  	 @   banzi@cs.unibo.it      @   or at                        yoda@xcal.net                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              x                                                                                                                   M.K. p 0                                                          ` 0                                             }0          p                                                 }0          `                                 S0                          p @0                                                          ` @0                                             0          p                                                 0          ` S0                             @0                          p 0                                                          ` 0                                             }0          p                                                 }0          ` }0                             S0                          p @0  \  ,          \  ,         \ ,          \0 ,0 ` @0  \0 ,0        \0,0         \@ ,@    0  \@ ,@ p     \@,@         \P ,P         \P ,P    0 \P,P ` S0  \` ,`         \` ,`    @0 \`,`                 p 0 P  P                         P  P                  ` 0                                 SP P     }0 @P  P  p     P  P                                     }0 @P  P  `                                 S0 SP P                  p @0 P @P                         P @P                  ` @0                                             0     @P  p          P              P             @P     0      P  ` S0      P             @P     @0      P              P  p 0 P  P                         P  P                  ` 0                                 SP P     }0 @P  P  p     P  P                                     }0 @P  P  ` }0                             S0     P                  p @0     @P                             hP                  ` @0     @P                             hP     0     P  p                         P                     0     P  ` S0     hP             }P     @0     P                  p 0     P                      0   P                  ` 0 @  @P                         h  hP     }0          p     @  @P      0                             }0 @  @P  `                                 S0 h  hP                  p @0 @  @P             SP      0 h  hP                  ` @0 @  @P             SP         h  hP     0          p       P      0                             0   P  ` S0                             @0   P                  p 0   P                      0                          ` 0                                             }0          p                  0                             }0 P      ` }0     P         P         S0      P         P      p @0      P                      0 P                  P  ` @0                 P                 P     0 P      p         @P      0                 P         0     P  ` S0                 P         @0     hP                  p 0  P  P          P          0  P P                  ` 0  P  P                          P  P     }0          p      P P      0                  P         }0  P hP  `                                 S0  P P                  p @0  P  P              P      0  P  P                  ` @0  P  P              P          P  P     0          p      P  P      0                  P         0  P  P  ` S0                             @0  P  P              P  p 0  P  P                      0                          ` 0                                             }0          p                  0                             }0 P      ` }0     P         P         S0      P         P      p @0      P                      0 P                  P  ` @0                 P                 P     0 P      p         @P      0                 P         0     P  ` S0                 P         @0     hP                  p 0  P  P                      0  P  P                  ` 0 P  P                      0 hP P     }0  P  P  p                  0                             }0          `      P  P                     S0                          p @0  P  P          P  P      0  P  P                  ` @0  P  P          P  P      0  P  P     0  P  P  p                 0                 P  P     0          ` S0 P  P                     @0 @P P                  p 0 hP P                      0                          ` 0  P P                      0             }0  P P  p                  0                             }0          ` }0                             S0                          p @0  P                  P      0                          ` @0  P                  P      0             0  P      p          P     0  P                  P     0  P      ` S0      P                     @0                          p 0                                                          ` 0                 P                       }0  P     p      P                             P        }0 P    `                     @P @      S0                 P    p @0                                                          ` @0                                  P        0          p      P                                        0  P     ` S0                             @0  P                     p 0  P                                                     ` 0                                             }0          p                                                 }0          ` }0                             S0                          p @0  P             P             P             P     ` @0  P             P             P        0  P     p      P             P             P        0 P    ` S0  P            P       @0 @P @          P    p 0 @ ,             S,             ,              ,  ` 0 @  ,              ,             ,          @ S,  p 0 @ ,             S,             ,              ,  ` 0      ,              ,             ,             S,  p 0  @ ,             S,             ,              ,  ` 0  @  ,              ,             ,          @ S,  p 0  @ ,             S,             ,              ,  ` 0      ,              ,             ,             S,  p 0  @ ,             S,             ,              ,  ` 0  @  ,              ,             ,     0  @ S,  p }0  @ :,             ,             },             ,  ` }0      ,             ,             },             ,  p }0  @ :,             ,             },             ,  ` }0  @ ,             S,             ,     }0  @  ,  p 0  @ ,             S,             ,              ,  ` 0      ,              ,             ,             S,     +վ ͲF_0[Lꗃ !O2=nO͹Lx]@5ΐ0^Ǫ^\X0ܧaz]q<ᤘׯOOP_9鱯SF6B//2e(O_:;PΛ*O}U=@ܴ+[b1/%ؾYb:6<ŸTv^E).F0EdZT-7G-Ć	BTWZ4LE&ƅ5RZU.O9Ĉ@VXH-E'	ʐ>QU3$7ʫ,>J'1*0CG%/#=KG!$4GXH" ߲CQcL%Ч!ELbC/Š,DE]D;𺟵+<I_BA󿥷!7N^ID󽬺!5NYLA!2IPI6%>EI6漽4@E2/<:$,:5,:1*5,/1)/0'21&
 64#	
!55) #34*  	!01')-(	%'#!&#	
!!!	+-)'̳&8==<(3FLNI0󹑤7IKNJ1򭏥 :INQL/쫎!=JPRN/覎"<ISUP.ꢏ	%;KVWR)㦒$<JWYS'ߤ";LYZP$ؠ :NXXN"գ!8OZ[MӠ8NYZH̤8NYZGţ8OWXCȤ	;OXX>ħ ;RYW:æ
!=QZV3"?S[T3%AT[T/&BV\R+)GWZP(쾨+GUYO#뺩/HTWJ$뼩.FTVK 溩/FQTI滫0DMRG湫/BKQDⷬ2AJP@ݸ
1@IO?۴!2?IO:ٵ#1>IN9Դ"/=GK7ֲ#0<GJ4ѳ#/<FI/Ӳ"/:FG/е +:EF*ϵ,9EE)Ͷ+8DB%̶)9DA"ʸ +8C=ʸ,9C;Ƹ ,9C:Ƹ-;B7Ǻ!/;B4ƻ"/:@1ƽ#09=,ý%08=,	Ŀ$19<($/67% '/66"(053&.53'/50'.4.(04-(04-	)04+
)15*
 (/3(	&-2'
%-1%

%,/#
 
#*-!")+!)*!') ('&% %% $# #"	!%" %!$ 	# #" 

 
	 	 	




 
  

 	
		     ,*(%#!	˵ 
!$'),.0235789;<==>?@@@@@@??>===;:9865320.,*(%$!
	  н!),+)'%#! 	  ĭ $'*-01579;=?ABCEFHIJKKKKKKKKKJIHGGEDCB@?=;97531.-*)&%#!
	   İ)1331/,+)'%#" 
	° !$(+-03589<=@ABDEFGHIIJJJJJJIIIHGFEECB@>=;97531.,*(&$" 
	   °)/330.,*('$#!
	Ͼ
 #&),.1457:<=?ABCDEFGGGHHHHGGGGFEDCB@?><;97521.,*(&$" 	   ð(/2320.,*(&$" 
		˺	"%(+-2367:<=?@ACDEEFGGGGGGGFFEEDCAA?><;87531/-*)&%" 
	  )023410-+)'&$" 
	 ȹ#'),.13579;=>?ABCDEFFGGGGGFFEEDCB@?><:97542/-+)'%"!
		   ó"*145541/,+)'%#" 
	Ǹ
 $&),/13579;=?@@BCDEEEFFFFFFEEEDCBA@><;97532/,*'%#"

   ´
",1467531/-*(&$#!

ŷ #'),/13589;=>@ABBCDEEFFFEEEDDCCA@?=<:87531/-+)'%#!
	  õ $,25787530/,*(&%#! 
	õ $'),.13579:<>?@ABCDEEEEEEEEEDCBA@>=;:86420.,*(&#! 
	 ŷ%,25787641/,+)&%#! 	¶ $&),.03568:;=>@ABBCCDDDDDDCCBBA@==;976420.,*(&$! 
	 Ź'.368887520.,*(&$"!  	!$'),.13579:<>?@ABCCDDEEDDCCBAA??><;985320.,*(%#" 	Ż	'.367898641/.+*'&$#!$'),/13579:;=>@AAABCCCCCCBBAA@?=<;976420.,*(&$" 	Ƽ!)/3689:97530.,*(&$#!	ʿ
!$'*,/03568:<=>?@ABBCDDCCCBBA@?>=;987531/-+)'%#!
	 ƾ"*03689998631.-*('%#!  	 $&),.13468:;=>?@@ABBBBBBAAA@?>=<:97642/-,)'%#!
	ǿ$+04689::8641/.+)'%#" ǿ
!$'),/13568:;<=>?@ABBBBBBAA@@>==;:87531/-+)'%#!
 %+14789::97520.,*)&$"!	ȿ
!$')+.02478:;<>??@@AAAAA@@??>=<;986421/-+*'%#!	º '-1579::::8531/,+)&%#!  
!$'),.13468:;;=>?@@AAAAAA@?>=<;:975420.,*(&$" 
ü '-2579:::98641/-+)&%#! 
!%'*,.035679:;<=>>??@@@@??>>=<:976530/-+)(%#! 
ļ
"(-15789:::87520.+)'%#! 	
"%(),/034789:;<=>??@@@@??>=<;:9875310.+)(&$" 	ž#(-25789:::97531.,*(&$"!	 !$')+.023578:;<<==>>>?>>==<<;9864310.,*(&$#!	 $*/35789:::87531.,+(&$#!
 "$'*,.0245789:;<=>>?????>==;:987531/-+)'%$!	 
%+/2578899987530.,*(&%#!	½ "%'),.0246799:;<<==>>===<;:99764200.,*(&%" 
þ!'+0257899:998632/-+)'%#! ý!$&),/1246789:;<========<;:9865420.,*)'%#!
	"'+/2467889876430.,*(&$" 
½	"%'*+.024567899:;;<<<<<;:9876531/.,+)'%#! 
 ý#(,03578888886420-,*'%#"  
 "%(*-.02467899::;;;;;;;::9875421/.,*(&$#!
 $)-/245678887531/-+('$#! ¾  #&(*,/02356789:::;;;;::98765321/-,*(&%#! 
"'*.1345677776531/-*('%#!	  #&'*,.02455689:::::::998765420/-,*('&$"   #'*-0245677776420.,*)'%#  ¾ 	 #&)+,.023567899999999987754310.,+)'&$" 	 ¾	#(,.124566665431/-,*(%#!	¿ 
!$&)+-.0234567899::99988765320/.,*)'%#" 
  %),.0124455544210-+)'$"! ¿ 
!$')+-/1234567788888876653320/-,*('%#"!	 ÿ	!%),.013445554421.-*(&%# 	¿ #%&)+-/023566788998888765421/.,+)'&%#!
 
"&(,./1234444321/-+)(&$"  #%()*-.012345677777776553210.-+*)'%$" 
 ÿ#'*,-/0123333310.-+)'%# 	
!#%(*,./01244566677666543210/.,+)(&$"!¿	 $'*,-/0122223320/-+)'$"  
 #%')+-.0123455666665543210/-,*)'&$"! ¿!$(*,-/012222210/.,*(&#!	
 #%')+,./02334556655544321/.-*)'&$#! 	 "$')+,.//011110/.-+)'%"  "$%')+,./012334444443221/.-,+)('&%#! 	  #%()*,-.//00000/.,+)&$!	  	"$&)*,-./0112333443322100/-,+*('%$" 
 "%(*+,.//00000/.-,*(%#   	"$&')+,-/01223333332110/.,+*)(&%#" 
 
 #&()+,-../////..,+)&$!	  	!#%'(**+,--...//..--,+*)('%$#" 	 	 !""#%&&&%%%$#"!   
 !!""#""""""!!! 
  
	  

	    		




		
	%%&
+
'
)'/:1&*7B<,
1HMNFݿ'=T.%"$H/2"2'ܯ&
'<4/)D4̦	*24NNR[J1Զ(?4=#Yt8唜RiSsj(ǥ%doC"4X"⩸XgJ&ED	ϼ?MHFfZ7%?OCq^,ݲBUU̶#gid۶WfC֡IynW	󜮯?ef/ݯ=hzMѹ)Ylcد2\vw/Ϩ<il#߷)Hn&1UI<fgfN1,)GCSeD/">Job*24	)UjrQ&>(Vcyf;ɫŽG?;fxT3ʑCJ*ӸevnC(/SDƺToZ6NR5㴼.owD(ѡ9VNZtYܸ(VZ/	8o_ۨGb3]yc(	庲1b);moCԲ%C7aZxd%췱?2CBxsB˳+<&(Y}a)B,=yoH37.czc/?-?wrKڿ5:
.a}_/ǻӸD)%=xmK˿״	:6*]w^5
״B($AsfR#ӿ83.Un_8δ='&9jbT$ԫ4-$/Qc_<Ү
4%&<]XW(Ѿ+&'6HV^E̩)'(:KU\)ԥ&+6:M[I	ڲ
#)%.5=S^$ȯ(/4,GXH᯳+,,./NY'귵	)2""/BSBμ.2)$&LI*ĺ(4&"&;EE26#!FB&53::446<
7<"
4"++	38
/
%&!	'"
,*		)2&""33	17&#!,64#&58##3:.
#/96
	%7<($5>3$+<;%!#7B/##%
-A:$#&###8B-"'("'Ծ.B8$&*(&"
ŵ	!8B+$*-&(ӷ-B6%(--շ)踯#8>+',1&߼%(-?5'+/2Ǿ,բ	$7:,+/2#).<3*/22'&78,.23(ҡ"/:2,13!ߦ(76,/2"
滟	&2:1.2(Ǜ+86,2.
ǽ(3:1.1
ʤ	"/87-2!
ʶ(5<3.	
"Ȣ
2;8.#ɵ
)7?4$ͦ	4=<$#Ϲ)8B3&ͪ	5>>#!ҷ	&:C
'ӱ4?%"#վ%:/'	13#"4")"&&($"$),'(
/*%E#*6&I.	"67%CH".?6;R3$";DARR	.3EJYS,%*&AOeXJ.351KijU'C=Ca}e<JL/)R}xSٿAZH	9rl/߿-X_%U~}IOdC2s|f.7Z[#WwvDRa94quZ(;XS"Vrl9OZ32ioN#>VHUjb2"LT/5cgD<S?RdU*%IK)
6Z]:
<N6M]F'(FC&4TS27G/FV;$'D9$3MG,6B*AM3"&?2#
2F<(48&!:D,%:*",?3&22$49&$5%'7+#.*".2$"."#2&)$((""'("
%$#!#!


		
	

					
	
	



	

		    
%.=QPK4""*# $.+5: ?O&+I,-/=O8Ľ	 MJ9M]NMWKCPte(ǵٹ6XWpg]fbISLȣVZfmfY[\D>e{iFɬAR]eg[OVD.?_lR ˡ:]n{tfkX;;Tg^.ت,Tgyq]_P*$>A&ݰ8GXi\LVU@(+K\WD ̵#9WywhmthF4APWG%˭*:SzrkttS4.<HJ9Ĭ
&<ewefn[3".;9Ƣ$JlsfivnS6-.?MD.WokepxmL5.:KQ3֢!Lt{sxc=%-@/鼇	1Ymjku}tS7 $>=(=]ediuudG#'1)Μ #H]]_lsue>#&43%#󵝪3TZbmvyV2&04(%+ڱ?QZciv|gA%'/'!/-λ!8KX]jzvT3*2)".<ƿ";KQ\qqJ7;4'-A9+=GOb{{[@:7$#9?% Ϳ-=CMjygG97#,=3ƭ5<AWuuVA=.48(+67FhtaKH:!-=8'ϲ(*1QmgTOE) /5/"#:_i]XQ=$*35,Ӹ /Sgca_N5%&135/Ĳ<X^`dXC+$+/76#
$ETZbbS7+&(2<4ϻ/ESZb[E3("'6=+
о #9JTacQ?.#(:4˸&:DU_XK9*!2:+µ¼(5IW\SE7#)97"	Լ*:N[WOA/ "3>1 
̾Ŀ)>OUSK7#&67(ǽ/EPVSI2 !.;5(  !4EOSQ@* (4:5# %:EPTL6$$-69/	 )7EPRC/$'.98%,9IRL6)!%/90 /?ORG5)$,9;(,@LJ=.##0;1 #5IMG;+ )89+
';JJD5#!.90$	+=GJ>-(64'"	/?GG9&#050($!
 "3BIB-")12+&$%7FI8'%-1-(& &;HA0$'/.,)& 	+AE9+&+.-*)$4C@1)*.--+'$#9B:.*++,++&,=>3-*+-*-)#!3=92,+-*-+'%	$5:6.-++-+)'$'680/+)+,)(& 	.421,)(+*((%	-22.))**()(#"-10+()*()*'%-1-(()('*($ %//,))%&)('#	'.,+)'%())%	),,*'&''*'#! #(++(('&)(&$ *)*(%&')'& 	%(*)&%%')&# #'*'%$%((&# 
#'&&$#&'%$"$(&%$&&&$&! 	$&%#$%%$'$ &%##%$#&&! #$##%$$%)"#"!#%"#)%  
  "# !&%! 	!% !$%#!
 %  "%&! ! 	"! $&" !!
#"%$!!" 	  #%! "!	
 ##!!! 
 !"  ! ! 	!## !$$"	 !
!    
 	!	
"##	!
			
  


		
	 

			
			  	   	  		
	
	 
!!		
	
$%		
$!
	
 		
!# 
	 	 $(& #)+%&*)$ %)&# 
#))&%#	"(*(&%$#),+%#!	!! "!		 	   !#$&%!"##	 	!"#&$	 #%$$#! !$%&$%%	
#%$%((" !(*+***&! &++)+*'#
"())**('!
%'(+++(%!$&)))'&$	
"&)*))'&""%')(&##&*+-,+)'"$'(*))'$
$(+-,+*("
 #&()&''#"&)+)**'" 	 &))*++(#
#%&$%#!  "%%$!
!#$&&$" $$%%'''%  "%%&'')($	 #')+*&! #&)*)'"#&(('$
!$&&#	#%))'"
 #%%"
!!#$! 	!#! !"#"	 " 	
  	 

 		



 	
	   	   			 
 

	 

	  	
	
			
		  		 
				
	
				
	 	 
 		 	
					
 	
  	
 	
 
  	
  	
 	
	  
	  	
	
 	
	  
	 	 
	  	
 
	
 	 	 	

 
   
	  
	 
		  	
	        _6x7_%m0bj?@_  4 9D+? $ o khl-$EWX ǅ!3_|t`x|Phxp[  Ȱ  07KX3 +7P;(ĿЌ϶    #7U?000 A1HX5r@+   ( 0\0 İ\ P?  !HO/!WM Лօۿʐ߸ E(?D4\)7;040@ - <    :8X @7?+;P  /3P;   !:	;ƫϣؿڧ(   & '4     C(P6P_tPWS`OGPhB 7'  ܿ
+;4 P83   ȶ )CH'K>F33@ G/0L$G(0  GD% //H3$	ص= 0,  		/0;@/DH?/8?oMr@?0:+   %O:0# 0HD ˯ó߸ 	  #  -8:I+H0J '/  #0P41@$   +>+ Իï(7:6ϱ  +  0?mlPWH?X+4/+ ( '$0 /0+ #L/D7?%ะ
 (90%$8#$($,)  
58(07   "70*
+
 ׻ǻ  ۹Ƚ.1+4 7$(//!  (0(7/@SFoxph``P@904$"$ '	
 Ź 	(/
  	(
/:8-<$ 1 
+  $	  
/$ 
'0(8-,-!4#*?01  /9: (00'ü   	 #+ 2F47@CH?)0)8
#0   )$(/ Ҹ˹	 ,&/*2!-'3(( 
	( +#  0%  н 	 پ*(0!'3/"=/<$'  '1- (  
(     	 # /0#??8&#, %&4* $ " +#  Ľ     
#'$(07 0#? D=/0*'75
         	  ' )0;:.@1@PK='/   
 	
 

	 
(#   !)!     ׿ 
'#    ,' #(6 ($-.( '(
	
   ' *7?7/0/)'% %* 	    
& #$(0%'(( :?&2$7!  			&)"+ 
    	!-'*(!-)) '&%
 ! "
	   		   (        	+211 # (%)#  !"!%'&$    
("        
	  #%$!'! #$&&"     	 	'    
 !	
$ $"%	   	
    	 #( 	     	$ 3( ! %'#	                     R H'  4Ъ<@ 0(- +:30-0 %=$+ /($ #6<"аȿ& #+-1=<29FHLEFMESwX7]z`UXVXglZVXR[bh`YXTPLHD<=95-&" ú!%+,06;???DKPPUVXX[bhb_glnljllqttrtttyxtxz{yxvtrpnljhfeda_^\ZYXRLPPHB:1-60$ #)/3437?EFBDHNPRVZXX[]\]dhihhjkhjlllpnmmnklprmfkrlfddhjdZY_^^TPPWTPMBAE@866=8,)'$" 
"%')-.1358<=?CDFHJJMPRTTVYYY[^]]^ababddfddbdeddhfa^ddbb___^^ZZZZZVUWYVRTTPPNMLKHFDDBA@=<8651-,*'$!	 #&)+,/2468:;=@BCDFHJJLLPPQQRTTTTVVVVXVTUVWVVTTTSRQPPPNMLLJIHHFEDD@=<;:9864310.,*)&%#" 		                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 