%!PS-Adobe-3.0
%%BoundingBox: (atend)
%%Pages: (atend)
%%PageOrder: (atend)
%%DocumentFonts: (atend)
%%Creator: Frame 4.0
%%DocumentData: Clean7Bit
%%EndComments
%%BeginProlog
%
% Frame ps_prolog 4.0, for use with Frame 4.0 products
% This ps_prolog file is Copyright (c) 1986-1993 Frame Technology
% Corporation.  All rights reserved.  This ps_prolog file may be
% freely copied and distributed in conjunction with documents created
% using FrameMaker, FrameBuilder and FrameViewer as long as this 
% copyright notice is preserved.
%
% Frame products normally print colors as their true color on a color printer
% or as shades of gray, based on luminance, on a black-and white printer. The
% following flag, if set to True, forces all non-white colors to print as pure
% black. This has no effect on bitmap images.
/FMPrintAllColorsAsBlack             false def
%
% Frame products can either set their own line screens or use a printer's 
% default settings. Three flags below control this separately for no 
% separations, spot separations and process separations. If a flag
% is true, then the default printer settings will not be changed. If it is
% false, Frame products will use their own settings from a table based on
% the printer's resolution.
/FMUseDefaultNoSeparationScreen      true  def
/FMUseDefaultSpotSeparationScreen    true  def
/FMUseDefaultProcessSeparationScreen false def
%
% For any given PostScript printer resolution, Frame products have two sets of 
% screen angles and frequencies for printing process separations, which are 
% recomended by Adobe. The following variable chooses the higher frequencies
% when set to true or the lower frequencies when set to false. This is only
% effective if the appropriate FMUseDefault...SeparationScreen flag is false.
/FMUseHighFrequencyScreens true def
%
% PostScript Level 2 printers contain an "Accurate Screens" feature which can
% improve process separation rendering at the expense of compute time. This 
% flag is ignored by PostScript Level 1 printers.
/FMUseAcccurateScreens true def
%
% The following PostScript procedure defines the spot function that Frame
% products will use for process separations. You may un-comment-out one of
% the alternative functions below, or use your own.
%
% Dot function
/FMSpotFunction {abs exch abs 2 copy add 1 gt 
		{1 sub dup mul exch 1 sub dup mul add 1 sub }
		{dup mul exch dup mul add 1 exch sub }ifelse } def
%
% Line function
% /FMSpotFunction { pop } def
%
% Elipse function
% /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add 
%		sqrt 1 exch sub } def
%
%
/FMversion (4.0) def 
/FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def
/FMPColor
	FMLevel1 {
		false
		/colorimage where {pop pop true} if
	} {
		true
	} ifelse
def
/FrameDict 400 dict def 
systemdict /errordict known not {/errordict 10 dict def
		errordict /rangecheck {stop} put} if
% The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk
FrameDict /tmprangecheck errordict /rangecheck get put 
errordict /rangecheck {FrameDict /bug true put} put 
FrameDict /bug false put 
mark 
% Some PS machines read past the CR, so keep the following 3 lines together!
currentfile 5 string readline
00
0000000000
cleartomark 
errordict /rangecheck FrameDict /tmprangecheck get put 
FrameDict /bug get { 
	/readline {
		/gstring exch def
		/gfile exch def
		/gindex 0 def
		{
			gfile read pop 
			dup 10 eq {exit} if 
			dup 13 eq {exit} if 
			gstring exch gindex exch put 
			/gindex gindex 1 add def 
		} loop
		pop 
		gstring 0 gindex getinterval true 
		} bind def
	} if
/FMshowpage /showpage load def
/FMquit /quit load def
/FMFAILURE { 
	dup = flush 
	FMshowpage 
	/Helvetica findfont 12 scalefont setfont
	72 200 moveto
	show FMshowpage 
	FMquit 
	} def 
/FMVERSION {
	FMversion ne {
		(Frame product version does not match ps_prolog!) FMFAILURE
		} if
	} def 
/FMBADEPSF { 
	(PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X              )
	dup dup (X) search pop exch pop exch pop length 
	4 -1 roll 
	putinterval 
	FMFAILURE
	} def
/FMLOCAL {
	FrameDict begin
	0 def 
	end 
	} def 
/concatprocs
	{
	/proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def
	newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx
}def
FrameDict begin 
/FMnone 0 def
/FMcyan 1 def
/FMmagenta 2 def
/FMyellow 3 def
/FMblack 4 def
/FMcustom 5 def
/FrameNegative false def 
/FrameSepIs FMnone def 
/FrameSepBlack 0 def
/FrameSepYellow 0 def
/FrameSepMagenta 0 def
/FrameSepCyan 0 def
/FrameSepRed 1 def
/FrameSepGreen 1 def
/FrameSepBlue 1 def
/FrameCurGray 1 def
/FrameCurPat null def
/FrameCurColors [ 0 0 0 1 0 0 0 ] def 
/FrameColorEpsilon .001 def	
/eqepsilon {		
	sub dup 0 lt {neg} if
	FrameColorEpsilon le
} bind def
/FrameCmpColorsCMYK { 
	2 copy 0 get exch 0 get eqepsilon {
		2 copy 1 get exch 1 get eqepsilon {
			2 copy 2 get exch 2 get eqepsilon {
				3 get exch 3 get eqepsilon
			} {pop pop false} ifelse
		}{pop pop false} ifelse
	} {pop pop false} ifelse
} bind def
/FrameCmpColorsRGB { 
	2 copy 4 get exch 0 get eqepsilon {
		2 copy 5 get exch 1 get eqepsilon {
			6 get exch 2 get eqepsilon
		}{pop pop false} ifelse
	} {pop pop false} ifelse
} bind def
/RGBtoCMYK { 
	1 exch sub 
	3 1 roll 
	1 exch sub 
	3 1 roll 
	1 exch sub 
	3 1 roll 
	3 copy 
	2 copy 
	le { pop } { exch pop } ifelse 
	2 copy 
	le { pop } { exch pop } ifelse 
	dup dup dup 
	6 1 roll 
	4 1 roll 
	7 1 roll 
	sub 
	6 1 roll 
	sub 
	5 1 roll 
	sub 
	4 1 roll 
} bind def
/CMYKtoRGB { 
	dup dup 4 -1 roll add 						  
	5 1 roll 3 -1 roll add 						  
	4 1 roll add 								  
	1 exch sub dup 0 lt {pop 0} if 3 1 roll 	  
	1 exch sub dup 0 lt {pop 0} if exch 	      
	1 exch sub dup 0 lt {pop 0} if exch	  		  
} bind def
/FrameSepInit {
	1.0 RealSetgray
} bind def
/FrameSetSepColor { 
	/FrameSepBlue exch def
	/FrameSepGreen exch def
	/FrameSepRed exch def
	/FrameSepBlack exch def
	/FrameSepYellow exch def
	/FrameSepMagenta exch def
	/FrameSepCyan exch def
	/FrameSepIs FMcustom def
	setCurrentScreen	
} bind def
/FrameSetCyan {
	/FrameSepBlue 1.0 def
	/FrameSepGreen 1.0 def
	/FrameSepRed 0.0 def
	/FrameSepBlack 0.0 def
	/FrameSepYellow 0.0 def
	/FrameSepMagenta 0.0 def
	/FrameSepCyan 1.0 def
	/FrameSepIs FMcyan def
	setCurrentScreen	
} bind def
 
/FrameSetMagenta {
	/FrameSepBlue 1.0 def
	/FrameSepGreen 0.0 def
	/FrameSepRed 1.0 def
	/FrameSepBlack 0.0 def
	/FrameSepYellow 0.0 def
	/FrameSepMagenta 1.0 def
	/FrameSepCyan 0.0 def
	/FrameSepIs FMmagenta def
	setCurrentScreen
} bind def
 
/FrameSetYellow {
	/FrameSepBlue 0.0 def
	/FrameSepGreen 1.0 def
	/FrameSepRed 1.0 def
	/FrameSepBlack 0.0 def
	/FrameSepYellow 1.0 def
	/FrameSepMagenta 0.0 def
	/FrameSepCyan 0.0 def
	/FrameSepIs FMyellow def
	setCurrentScreen
} bind def
 
/FrameSetBlack {
	/FrameSepBlue 0.0 def
	/FrameSepGreen 0.0 def
	/FrameSepRed 0.0 def
	/FrameSepBlack 1.0 def
	/FrameSepYellow 0.0 def
	/FrameSepMagenta 0.0 def
	/FrameSepCyan 0.0 def
	/FrameSepIs FMblack def
	setCurrentScreen
} bind def
 
/FrameNoSep { 
	/FrameSepIs FMnone def
	setCurrentScreen
} bind def
/FrameSetSepColors { 
	FrameDict begin
	[ exch 1 add 1 roll ]
	/FrameSepColors  
	exch def end
	} bind def
/FrameColorInSepListCMYK { 
	FrameSepColors {  
       		exch dup 3 -1 roll 
       		FrameCmpColorsCMYK 
       		{ pop true exit } if
    	} forall 
	dup true ne {pop false} if
	} bind def
/FrameColorInSepListRGB { 
	FrameSepColors {  
       		exch dup 3 -1 roll 
       		FrameCmpColorsRGB 
       		{ pop true exit } if
    	} forall 
	dup true ne {pop false} if
	} bind def
/RealSetgray /setgray load def
/RealSetrgbcolor /setrgbcolor load def
/RealSethsbcolor /sethsbcolor load def
end 
/setgray { 
	FrameDict begin
	FrameSepIs FMnone eq
		{ RealSetgray } 
		{ 
		FrameSepIs FMblack eq 
			{ RealSetgray } 
			{ FrameSepIs FMcustom eq 
			  FrameSepRed 0 eq and
			  FrameSepGreen 0 eq and
			  FrameSepBlue 0 eq and {
			  	RealSetgray
			  } {
				1 RealSetgray pop 
			  } ifelse
			} ifelse
		} ifelse
	end
} bind def
/setrgbcolor { 
	FrameDict begin
	FrameSepIs FMnone eq
	{  RealSetrgbcolor }
	{
		3 copy [ 4 1 roll ] 
		FrameColorInSepListRGB
		{
				FrameSepBlue eq exch 
			 	FrameSepGreen eq and exch 
			 	FrameSepRed eq and
			 	{ 0 } { 1 } ifelse
		}
		{
			FMPColor {
				RealSetrgbcolor
				currentcmykcolor
			} {
				RGBtoCMYK
			} ifelse
			FrameSepIs FMblack eq
			{1.0 exch sub 4 1 roll pop pop pop} {
			FrameSepIs FMyellow eq
			{pop 1.0 exch sub 3 1 roll pop pop} {
			FrameSepIs FMmagenta eq
			{pop pop 1.0 exch sub exch pop } {
			FrameSepIs FMcyan eq
			{pop pop pop 1.0 exch sub } 
			{pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse 
		} ifelse
		RealSetgray
	} 
	ifelse
	end
} bind def
/sethsbcolor {
	FrameDict begin
	FrameSepIs FMnone eq 
	{ RealSethsbcolor } 
	{
		RealSethsbcolor 
		currentrgbcolor  
		setrgbcolor 
	} 
	ifelse
	end
} bind def
FrameDict begin
/setcmykcolor where {
	pop /RealSetcmykcolor /setcmykcolor load def
} {
	/RealSetcmykcolor {
		4 1 roll
		3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat 
		setrgbcolor pop
	} bind def
} ifelse
userdict /setcmykcolor { 
		FrameDict begin
		FrameSepIs FMnone eq
		{ RealSetcmykcolor } 
		{
			4 copy [ 5 1 roll ]
			FrameColorInSepListCMYK
			{
				FrameSepBlack eq exch 
				FrameSepYellow eq and exch 
				FrameSepMagenta eq and exch 
				FrameSepCyan eq and 
				{ 0 } { 1 } ifelse
			}
			{
				FrameSepIs FMblack eq
				{1.0 exch sub 4 1 roll pop pop pop} {
				FrameSepIs FMyellow eq
				{pop 1.0 exch sub 3 1 roll pop pop} {
				FrameSepIs FMmagenta eq
				{pop pop 1.0 exch sub exch pop } {
				FrameSepIs FMcyan eq
				{pop pop pop 1.0 exch sub } 
				{pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse 
			} ifelse
			RealSetgray
		}
		ifelse
		end
	} bind put
FMLevel1 not { 
	
	/patProcDict 5 dict dup begin
		<0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 
											4 -4 moveto 12 4 lineto stroke
											-4 4 moveto 4 12 lineto stroke} bind def
		<0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke 
											-4 4 moveto 4 -4 lineto stroke
											4 12 moveto 12 4 lineto stroke} bind def
		<8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke
											-1 -1 moveto 9 9 lineto stroke } bind def
		<03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 
											4 -4 moveto 12 4 lineto stroke
											-4 4 moveto 4 12 lineto stroke} bind def
		<8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke 
											-4 4 moveto 4 -4 lineto stroke
											4 12 moveto 12 4 lineto stroke} bind def
	end def
	/patDict 15 dict dup begin
		/PatternType 1 def		
		/PaintType 2 def		
		/TilingType 3 def		
		/BBox [ 0 0 8 8 ] def 	
		/XStep 8 def			
		/YStep 8 def			
		/PaintProc {
			begin
			patProcDict bstring known {
				patProcDict bstring get exec
			} {
				8 8 true [1 0 0 -1 0 8] bstring imagemask
			} ifelse
			end
		} bind def
	end def
} if
/combineColor {
    FrameSepIs FMnone eq
	{
		graymode FMLevel1 or not {
			
			[/Pattern [/DeviceCMYK]] setcolorspace
			FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor
		} {
			FrameCurColors 3 get 1.0 ge {
				FrameCurGray RealSetgray
			} {
				FMPColor graymode and {
					0 1 3 { 
						FrameCurColors exch get
						1 FrameCurGray sub mul
					} for
					RealSetcmykcolor
				} {
					4 1 6 {
						FrameCurColors exch get
						graymode {
							1 exch sub 1 FrameCurGray sub mul 1 exch sub
						} {
							1.0 lt {FrameCurGray} {1} ifelse
						} ifelse
					} for
					RealSetrgbcolor
				} ifelse
			} ifelse
		} ifelse
	} { 
		FrameCurColors 0 4 getinterval aload
		FrameColorInSepListCMYK {
			FrameSepBlack eq exch 
			FrameSepYellow eq and exch 
			FrameSepMagenta eq and exch 
			FrameSepCyan eq and
			FrameSepIs FMcustom eq and
			{ FrameCurGray } { 1 } ifelse
		} {
			FrameSepIs FMblack eq
			{FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} {
			FrameSepIs FMyellow eq
			{pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} {
			FrameSepIs FMmagenta eq
			{pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } {
			FrameSepIs FMcyan eq
			{pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } 
			{pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse 
		} ifelse
		graymode FMLevel1 or not {
			
			[/Pattern [/DeviceGray]] setcolorspace
			FrameCurPat setcolor
		} { 
			graymode not FMLevel1 and {
				
				dup 1 lt {pop FrameCurGray} if
			} if
			RealSetgray
		} ifelse
	} ifelse
} bind def
/savematrix {
	orgmatrix currentmatrix pop
	} bind def
/restorematrix {
	orgmatrix setmatrix
	} bind def
/dmatrix matrix def
/dpi    72 0 dmatrix defaultmatrix dtransform
    dup mul exch   dup mul add   sqrt def
	
/freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def
/sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
/dpiranges   [  2540    2400    1693     1270    1200     635      600      0      ] def
/CMLowFreqs  [ 100.402  94.8683 89.2289 100.402  94.8683  66.9349  63.2456 47.4342 ] def
/YLowFreqs   [  95.25   90.0    84.65    95.25   90.0     70.5556  66.6667 50.0    ] def
/KLowFreqs   [  89.8026 84.8528 79.8088  89.8026 84.8528  74.8355  70.7107 53.033  ] def
/CLowAngles  [  71.5651 71.5651 71.5651 71.5651  71.5651  71.5651  71.5651 71.5651 ] def
/MLowAngles  [  18.4349 18.4349 18.4349 18.4349  18.4349  18.4349  18.4349 18.4349 ] def
/YLowTDot    [  true    true    false    true    true     false    false   false   ] def
/CMHighFreqs [ 133.87  126.491 133.843  108.503 102.523  100.402   94.8683 63.2456 ] def
/YHighFreqs  [ 127.0   120.0   126.975  115.455 109.091   95.25    90.0    60.0    ] def
/KHighFreqs  [ 119.737 113.137 119.713  128.289 121.218   89.8026  84.8528 63.6395 ] def
/CHighAngles [  71.5651 71.5651 71.5651  70.0169 70.0169  71.5651  71.5651 71.5651 ] def
/MHighAngles [  18.4349 18.4349 18.4349  19.9831 19.9831  18.4349  18.4349 18.4349 ] def
/YHighTDot   [  false   false   true     false   false    true     true    false   ] def
/PatFreq     [	10.5833 10.0     9.4055  10.5833 10.0	  10.5833  10.0	   9.375   ] def
/screenIndex {
	0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for
} bind def
/getCyanScreen {
	FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse
		screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load
} bind def
/getMagentaScreen {
	FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse
		screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load
} bind def
/getYellowScreen {
	FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse
		screenIndex dup 3 1 roll get 3 1 roll get { 3 div
			{2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat
			FMSpotFunction } } {/FMSpotFunction load } ifelse
			0.0 exch
} bind def
/getBlackScreen  {
	FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse
		screenIndex get 45.0 /FMSpotFunction load 
} bind def
/getSpotScreen {
	getBlackScreen
} bind def
/getCompositeScreen {
	getBlackScreen
} bind def
/FMSetScreen 
	FMLevel1 { /setscreen load 
	}{ {
		8 dict begin
		/HalftoneType 1 def
		/SpotFunction exch def
		/Angle exch def
		/Frequency exch def
		/AccurateScreens FMUseAcccurateScreens def
		currentdict end sethalftone
	} bind } ifelse
def
/setDefaultScreen {
	FMPColor {
		orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer
	}
	{
		orgxfer cvx settransfer
	} ifelse
	orgfreq organgle orgproc cvx setscreen
} bind def
/setCurrentScreen {
	FrameSepIs FMnone eq {
		FMUseDefaultNoSeparationScreen {
			setDefaultScreen
		} {
			getCompositeScreen FMSetScreen
		} ifelse
	} {
		FrameSepIs FMcustom eq {
			FMUseDefaultSpotSeparationScreen {
				setDefaultScreen
			} {
				getSpotScreen FMSetScreen
			} ifelse
		} {
			FMUseDefaultProcessSeparationScreen {
				setDefaultScreen
			} {
				FrameSepIs FMcyan eq {
					getCyanScreen FMSetScreen
				} {
					FrameSepIs FMmagenta eq {
						getMagentaScreen FMSetScreen
					} {
						FrameSepIs FMyellow eq {
							getYellowScreen FMSetScreen
						} {
							getBlackScreen FMSetScreen
						} ifelse
					} ifelse
				} ifelse
			} ifelse
		} ifelse
	} ifelse 
} bind def
end
	/gstring FMLOCAL
	/gfile FMLOCAL
	/gindex FMLOCAL
	/orgrxfer FMLOCAL
	/orggxfer FMLOCAL
	/orgbxfer FMLOCAL
	/orgxfer FMLOCAL
	/orgproc FMLOCAL
	/orgrproc FMLOCAL
	/orggproc FMLOCAL
	/orgbproc FMLOCAL
	/organgle FMLOCAL
	/orgrangle FMLOCAL
	/orggangle FMLOCAL
	/orgbangle FMLOCAL
	/orgfreq FMLOCAL
	/orgrfreq FMLOCAL
	/orggfreq FMLOCAL
	/orgbfreq FMLOCAL
	/yscale FMLOCAL
	/xscale FMLOCAL
	/edown FMLOCAL
	/manualfeed FMLOCAL
	/paperheight FMLOCAL
	/paperwidth FMLOCAL
/FMDOCUMENT { 
	array /FMfonts exch def 
	/#copies exch def
	FrameDict begin
	0 ne /manualfeed exch def
	/paperheight exch def
	/paperwidth exch def
	0 ne /FrameNegative exch def 
	0 ne /edown exch def 
	/yscale exch def
	/xscale exch def
	FMLevel1 {
		manualfeed {setmanualfeed} if
		/FMdicttop countdictstack 1 add def 
		/FMoptop count def 
		setpapername 
		manualfeed {true} {papersize} ifelse 
		{manualpapersize} {false} ifelse 
		{desperatepapersize} {false} ifelse 
		{ (Can't select requested paper size for Frame print job!) FMFAILURE } if
		count -1 FMoptop {pop pop} for
		countdictstack -1 FMdicttop {pop end} for 
		}
		{{1 dict dup /PageSize [paperwidth paperheight]put setpagedevice}stopped
		{ (Can't select requested paper size for Frame print job!) FMFAILURE } if
		 {1 dict dup /ManualFeed manualfeed put setpagedevice } stopped pop }
	ifelse 
	
	FMPColor {
		currentcolorscreen
			cvlit /orgproc exch def
				  /organgle exch def 
				  /orgfreq exch def
			cvlit /orgbproc exch def
				  /orgbangle exch def 
				  /orgbfreq exch def
			cvlit /orggproc exch def
				  /orggangle exch def 
				  /orggfreq exch def
			cvlit /orgrproc exch def
				  /orgrangle exch def 
				  /orgrfreq exch def
			currentcolortransfer 
			FrameNegative {
				1 1 4 { 
					pop { 1 exch sub } concatprocs 4 1 roll
				} for
				4 copy
				setcolortransfer
			} if
			cvlit /orgxfer exch def
			cvlit /orgbxfer exch def
			cvlit /orggxfer exch def
			cvlit /orgrxfer exch def
	} {
		currentscreen 
			cvlit /orgproc exch def
				  /organgle exch def 
				  /orgfreq exch def
				  
		currenttransfer 
		FrameNegative {
			{ 1 exch sub } concatprocs
			dup settransfer
		} if 
		cvlit /orgxfer exch def
	} ifelse
	end 
} def 
/pagesave FMLOCAL
/orgmatrix FMLOCAL
/landscape FMLOCAL
/pwid FMLOCAL
/FMBEGINPAGE { 
	FrameDict begin 
	/pagesave save def
	3.86 setmiterlimit
	/landscape exch 0 ne def
	landscape { 
		90 rotate 0 exch dup /pwid exch def neg translate pop 
	}{
		pop /pwid exch def
	} ifelse
	edown { [-1 0 0 1 pwid 0] concat } if
	0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 
	0 paperheight lineto 0 0 lineto 1 setgray fill
	xscale yscale scale
	/orgmatrix matrix def
	gsave 
} def 
/FMENDPAGE {
	grestore 
	pagesave restore
	end 
	showpage
	} def 
/FMFONTDEFINE { 
	FrameDict begin
	findfont 
	ReEncode 
	1 index exch 
	definefont 
	FMfonts 3 1 roll 
	put
	end 
	} def 
/FMFILLS {
	FrameDict begin dup
	array /fillvals exch def
	dict /patCache exch def
	end 
	} def 
/FMFILL {
	FrameDict begin
	 fillvals 3 1 roll put
	end 
	} def 
/FMNORMALIZEGRAPHICS { 
	newpath
	0.0 0.0 moveto
	1 setlinewidth
	0 setlinecap
	0 0 0 sethsbcolor
	0 setgray 
	} bind def
	/fx FMLOCAL
	/fy FMLOCAL
	/fh FMLOCAL
	/fw FMLOCAL
	/llx FMLOCAL
	/lly FMLOCAL
	/urx FMLOCAL
	/ury FMLOCAL
/FMBEGINEPSF { 
	end 
	/FMEPSF save def 
	/showpage {} def 
% See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714.
% "...the following operators MUST NOT be used in an EPS file:" (emphasis ours)
	/banddevice {(banddevice) FMBADEPSF} def
	/clear {(clear) FMBADEPSF} def
	/cleardictstack {(cleardictstack) FMBADEPSF} def 
	/copypage {(copypage) FMBADEPSF} def
	/erasepage {(erasepage) FMBADEPSF} def
	/exitserver {(exitserver) FMBADEPSF} def
	/framedevice {(framedevice) FMBADEPSF} def
	/grestoreall {(grestoreall) FMBADEPSF} def
	/initclip {(initclip) FMBADEPSF} def
	/initgraphics {(initgraphics) FMBADEPSF} def
	/initmatrix {(initmatrix) FMBADEPSF} def
	/quit {(quit) FMBADEPSF} def
	/renderbands {(renderbands) FMBADEPSF} def
	/setglobal {(setglobal) FMBADEPSF} def
	/setpagedevice {(setpagedevice) FMBADEPSF} def
	/setshared {(setshared) FMBADEPSF} def
	/startjob {(startjob) FMBADEPSF} def
	/lettertray {(lettertray) FMBADEPSF} def
	/letter {(letter) FMBADEPSF} def
	/lettersmall {(lettersmall) FMBADEPSF} def
	/11x17tray {(11x17tray) FMBADEPSF} def
	/11x17 {(11x17) FMBADEPSF} def
	/ledgertray {(ledgertray) FMBADEPSF} def
	/ledger {(ledger) FMBADEPSF} def
	/legaltray {(legaltray) FMBADEPSF} def
	/legal {(legal) FMBADEPSF} def
	/statementtray {(statementtray) FMBADEPSF} def
	/statement {(statement) FMBADEPSF} def
	/executivetray {(executivetray) FMBADEPSF} def
	/executive {(executive) FMBADEPSF} def
	/a3tray {(a3tray) FMBADEPSF} def
	/a3 {(a3) FMBADEPSF} def
	/a4tray {(a4tray) FMBADEPSF} def
	/a4 {(a4) FMBADEPSF} def
	/a4small {(a4small) FMBADEPSF} def
	/b4tray {(b4tray) FMBADEPSF} def
	/b4 {(b4) FMBADEPSF} def
	/b5tray {(b5tray) FMBADEPSF} def
	/b5 {(b5) FMBADEPSF} def
	FMNORMALIZEGRAPHICS 
	[/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall 
	fx fw 2 div add fy fh 2 div add  translate
	rotate
	fw 2 div neg fh 2 div neg translate
	fw urx llx sub div fh ury lly sub div scale 
	llx neg lly neg translate 
	/FMdicttop countdictstack 1 add def 
	/FMoptop count def 
	} bind def
/FMENDEPSF {
	count -1 FMoptop {pop pop} for 
	countdictstack -1 FMdicttop {pop end} for 
	FMEPSF restore
	FrameDict begin 
	} bind def
FrameDict begin 
/setmanualfeed {
%%BeginFeature *ManualFeed True
	 statusdict /manualfeed true put
%%EndFeature
	} bind def
/max {2 copy lt {exch} if pop} bind def
/min {2 copy gt {exch} if pop} bind def
/inch {72 mul} def
/pagedimen { 
	paperheight sub abs 16 lt exch 
	paperwidth sub abs 16 lt and
	{/papername exch def} {pop} ifelse
	} bind def
	/papersizedict FMLOCAL
/setpapername { 
	/papersizedict 14 dict def 
	papersizedict begin
	/papername /unknown def 
		/Letter 8.5 inch 11.0 inch pagedimen
		/LetterSmall 7.68 inch 10.16 inch pagedimen
		/Tabloid 11.0 inch 17.0 inch pagedimen
		/Ledger 17.0 inch 11.0 inch pagedimen
		/Legal 8.5 inch 14.0 inch pagedimen
		/Statement 5.5 inch 8.5 inch pagedimen
		/Executive 7.5 inch 10.0 inch pagedimen
		/A3 11.69 inch 16.5 inch pagedimen
		/A4 8.26 inch 11.69 inch pagedimen
		/A4Small 7.47 inch 10.85 inch pagedimen
		/B4 10.125 inch 14.33 inch pagedimen
		/B5 7.16 inch 10.125 inch pagedimen
	end
	} bind def
/papersize {
	papersizedict begin
		/Letter {lettertray letter} def
		/LetterSmall {lettertray lettersmall} def
		/Tabloid {11x17tray 11x17} def
		/Ledger {ledgertray ledger} def
		/Legal {legaltray legal} def
		/Statement {statementtray statement} def
		/Executive {executivetray executive} def
		/A3 {a3tray a3} def
		/A4 {a4tray a4} def
		/A4Small {a4tray a4small} def
		/B4 {b4tray b4} def
		/B5 {b5tray b5} def
		/unknown {unknown} def
	papersizedict dup papername known {papername} {/unknown} ifelse get
	end
	statusdict begin stopped end 
	} bind def
/manualpapersize {
	papersizedict begin
		/Letter {letter} def
		/LetterSmall {lettersmall} def
		/Tabloid {11x17} def
		/Ledger {ledger} def
		/Legal {legal} def
		/Statement {statement} def
		/Executive {executive} def
		/A3 {a3} def
		/A4 {a4} def
		/A4Small {a4small} def
		/B4 {b4} def
		/B5 {b5} def
		/unknown {unknown} def
	papersizedict dup papername known {papername} {/unknown} ifelse get
	end
	stopped 
	} bind def
/desperatepapersize {
	statusdict /setpageparams known
		{
		paperwidth paperheight 0 1 
		statusdict begin
		{setpageparams} stopped 
		end
		} {true} ifelse 
	} bind def
/DiacriticEncoding [
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
/numbersign /dollar /percent /ampersand /quotesingle /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon
/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
/bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
/braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
/udieresis /dagger /.notdef /cent /sterling /section /bullet
/paragraph /germandbls /registered /copyright /trademark /acute
/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
/periodcentered /quotesinglbase /quotedblbase /perthousand
/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
] def
/ReEncode { 
	dup 
	length 
	dict begin 
	{
	1 index /FID ne 
		{def} 
		{pop pop} ifelse 
	} forall 
	0 eq {/Encoding DiacriticEncoding def} if 
	currentdict 
	end 
	} bind def
FMPColor 
	
	{
	/BEGINBITMAPCOLOR { 
		BITMAPCOLOR} def
	/BEGINBITMAPCOLORc { 
		BITMAPCOLORc} def
	/BEGINBITMAPTRUECOLOR { 
		BITMAPTRUECOLOR } def
	/BEGINBITMAPTRUECOLORc { 
		BITMAPTRUECOLORc } def
	}
	
	{
	/BEGINBITMAPCOLOR { 
		BITMAPGRAY} def
	/BEGINBITMAPCOLORc { 
		BITMAPGRAYc} def
	/BEGINBITMAPTRUECOLOR { 
		BITMAPTRUEGRAY } def
	/BEGINBITMAPTRUECOLORc { 
		BITMAPTRUEGRAYc } def
	}
ifelse
/K { 
	FMPrintAllColorsAsBlack {
		dup 1 eq 2 index 1 eq and 3 index 1 eq and not
			{7 {pop} repeat 0 0 0 1 0 0 0} if
	} if 
	FrameCurColors astore 
	pop combineColor
} bind def
/graymode true def
	/bwidth FMLOCAL
	/bpside FMLOCAL
	/bstring FMLOCAL
	/onbits FMLOCAL
	/offbits FMLOCAL
	/xindex FMLOCAL
	/yindex FMLOCAL
	/x FMLOCAL
	/y FMLOCAL
/setPatternMode {
	FMLevel1 {
		/bwidth  exch def
		/bpside  exch def
		/bstring exch def
		/onbits 0 def  /offbits 0 def
		freq sangle landscape {90 add} if 
			{/y exch def
			 /x exch def
			 /xindex x 1 add 2 div bpside mul cvi def
			 /yindex y 1 add 2 div bpside mul cvi def
			 bstring yindex bwidth mul xindex 8 idiv add get
			 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if
			 {/onbits  onbits  1 add def 1}
			 {/offbits offbits 1 add def 0}
			 ifelse
			}
			setscreen
		offbits offbits onbits add div FrameNegative {1.0 exch sub} if
		/FrameCurGray exch def
	} { 
		pop pop
		dup patCache exch known {
			patCache exch get
		} { 
			dup
			patDict /bstring 3 -1 roll put
			patDict 
			9 PatFreq screenIndex get div dup matrix scale
			makepattern
			dup 
			patCache 4 -1 roll 3 -1 roll put
		} ifelse
		/FrameCurGray 0 def
		/FrameCurPat exch def
	} ifelse
	/graymode false def
	combineColor
} bind def
/setGrayScaleMode {
	graymode not {
		/graymode true def
		FMLevel1 {
			setCurrentScreen
		} if
	} if
	/FrameCurGray exch def
	combineColor
} bind def
/normalize {
	transform round exch round exch itransform
	} bind def
/dnormalize {
	dtransform round exch round exch idtransform
	} bind def
/lnormalize { 
	0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
	} bind def
/H { 
	lnormalize setlinewidth
	} bind def
/Z {
	setlinecap
	} bind def
	
/PFill {
	graymode FMLevel1 or not {
		gsave 1 setgray eofill grestore
	} if
} bind def
/PStroke {
	graymode FMLevel1 or not {
		gsave 1 setgray stroke grestore
	} if
	stroke
} bind def
	/fillvals FMLOCAL
/X { 
	fillvals exch get
	dup type /stringtype eq
	{8 1 setPatternMode} 
	{setGrayScaleMode}
	ifelse
	} bind def
/V { 
	PFill gsave eofill grestore
	} bind def
/Vclip {
	clip
	} bind def
/Vstrk {
	currentlinewidth exch setlinewidth PStroke setlinewidth
	} bind def
/N { 
	PStroke
	} bind def
/Nclip {
	strokepath clip newpath
	} bind def
/Nstrk {
	currentlinewidth exch setlinewidth PStroke setlinewidth
	} bind def
/M {newpath moveto} bind def
/E {lineto} bind def
/D {curveto} bind def
/O {closepath} bind def
	/n FMLOCAL
/L { 
 	/n exch def
	newpath
	normalize
	moveto 
	2 1 n {pop normalize lineto} for
	} bind def
/Y { 
	L 
	closepath
	} bind def
	/x1 FMLOCAL
	/x2 FMLOCAL
	/y1 FMLOCAL
	/y2 FMLOCAL
/R { 
	/y2 exch def
	/x2 exch def
	/y1 exch def
	/x1 exch def
	x1 y1
	x2 y1
	x2 y2
	x1 y2
	4 Y 
	} bind def
	/rad FMLOCAL
/rarc 
	{rad 
	 arcto
	} bind def
/RR { 
	/rad exch def
	normalize
	/y2 exch def
	/x2 exch def
	normalize
	/y1 exch def
	/x1 exch def
	mark
	newpath
	{
	x1 y1 rad add moveto
	x1 y2 x2 y2 rarc
	x2 y2 x2 y1 rarc
	x2 y1 x1 y1 rarc
	x1 y1 x1 y2 rarc
	closepath
	} stopped {x1 y1 x2 y2 R} if 
	cleartomark
	} bind def
/RRR { 
	/rad exch def
	normalize /y4 exch def /x4 exch def
	normalize /y3 exch def /x3 exch def
	normalize /y2 exch def /x2 exch def
	normalize /y1 exch def /x1 exch def
	newpath
	normalize moveto 
	mark
	{
	x2 y2 x3 y3 rarc
	x3 y3 x4 y4 rarc
	x4 y4 x1 y1 rarc
	x1 y1 x2 y2 rarc
	closepath
	} stopped
	 {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if
	cleartomark
	} bind def
/C { 
	grestore
	gsave
	R 
	clip
	setCurrentScreen
} bind def
/CP { 
	grestore
	gsave
	Y 
	clip
	setCurrentScreen
} bind def
	/FMpointsize FMLOCAL
/F { 
	FMfonts exch get
	FMpointsize scalefont
	setfont
	} bind def
/Q { 
	/FMpointsize exch def
	F 
	} bind def
/T { 
	moveto show
	} bind def
/RF { 
	rotate
	0 ne {-1 1 scale} if
	} bind def
/TF { 
	gsave
	moveto 
	RF
	show
	grestore
	} bind def
/P { 
	moveto
	0 32 3 2 roll widthshow
	} bind def
/PF { 
	gsave
	moveto 
	RF
	0 32 3 2 roll widthshow
	grestore
	} bind def
/S { 
	moveto
	0 exch ashow
	} bind def
/SF { 
	gsave
	moveto
	RF
	0 exch ashow
	grestore
	} bind def
/B { 
	moveto
	0 32 4 2 roll 0 exch awidthshow
	} bind def
/BF { 
	gsave
	moveto
	RF
	0 32 4 2 roll 0 exch awidthshow
	grestore
	} bind def
/G { 
	gsave
	newpath
	normalize translate 0.0 0.0 moveto 
	dnormalize scale 
	0.0 0.0 1.0 5 3 roll arc 
	closepath 
	PFill fill
	grestore
	} bind def
/Gstrk {
	savematrix
    newpath
    2 index 2 div add exch 3 index 2 div sub exch 
    normalize 2 index 2 div sub exch 3 index 2 div add exch 
    translate
    scale 
    0.0 0.0 1.0 5 3 roll arc 
    restorematrix
    currentlinewidth exch setlinewidth PStroke setlinewidth
    } bind def
/Gclip { 
	newpath
	savematrix
	normalize translate 0.0 0.0 moveto 
	dnormalize scale 
	0.0 0.0 1.0 5 3 roll arc 
	closepath 
	clip newpath
	restorematrix
	} bind def
/GG { 
	gsave
	newpath
	normalize translate 0.0 0.0 moveto 
	rotate 
	dnormalize scale 
	0.0 0.0 1.0 5 3 roll arc 
	closepath
	PFill
	fill
	grestore
	} bind def
/GGclip { 
	savematrix
	newpath
    normalize translate 0.0 0.0 moveto 
    rotate 
    dnormalize scale 
    0.0 0.0 1.0 5 3 roll arc 
    closepath
	clip newpath
	restorematrix
	} bind def
/GGstrk { 
	savematrix
    newpath
    normalize translate 0.0 0.0 moveto 
    rotate 
    dnormalize scale 
    0.0 0.0 1.0 5 3 roll arc 
    closepath 
	restorematrix
    currentlinewidth exch setlinewidth PStroke setlinewidth
	} bind def
/A { 
	gsave
	savematrix
	newpath
	2 index 2 div add exch 3 index 2 div sub exch 
	normalize 2 index 2 div sub exch 3 index 2 div add exch 
	translate 
	scale 
	0.0 0.0 1.0 5 3 roll arc 
	restorematrix
	PStroke
	grestore
	} bind def
/Aclip {
	newpath
	savematrix
	normalize translate 0.0 0.0 moveto 
	dnormalize scale 
	0.0 0.0 1.0 5 3 roll arc 
	closepath 
	strokepath clip newpath
	restorematrix
} bind def
/Astrk {
	Gstrk
} bind def
/AA { 
	gsave
	savematrix
	newpath
	
	3 index 2 div add exch 4 index 2 div sub exch 
	
	normalize 3 index 2 div sub exch 4 index 2 div add exch
	translate 
	rotate 
	scale 
	0.0 0.0 1.0 5 3 roll arc 
	restorematrix
	PStroke
	grestore
	} bind def
/AAclip {
	savematrix
	newpath
    normalize translate 0.0 0.0 moveto 
    rotate 
    dnormalize scale 
    0.0 0.0 1.0 5 3 roll arc 
    closepath
	strokepath clip newpath
	restorematrix
} bind def
/AAstrk {
	GGstrk
} bind def
	/x FMLOCAL
	/y FMLOCAL
	/w FMLOCAL
	/h FMLOCAL
	/xx FMLOCAL
	/yy FMLOCAL
	/ww FMLOCAL
	/hh FMLOCAL
	/FMsaveobject FMLOCAL
	/FMoptop FMLOCAL
	/FMdicttop FMLOCAL
/BEGINPRINTCODE { 
	/FMdicttop countdictstack 1 add def 
	/FMoptop count 7 sub def 
	/FMsaveobject save def
	userdict begin 
	/showpage {} def 
	FMNORMALIZEGRAPHICS 
	3 index neg 3 index neg translate
	} bind def
/ENDPRINTCODE {
	count -1 FMoptop {pop pop} for 
	countdictstack -1 FMdicttop {pop end} for 
	FMsaveobject restore 
	} bind def
/gn { 
	0 
	{	46 mul 
		cf read pop 
		32 sub 
		dup 46 lt {exit} if 
		46 sub add 
		} loop
	add 
	} bind def
	/str FMLOCAL
/cfs { 
	/str sl string def 
	0 1 sl 1 sub {str exch val put} for 
	str def 
	} bind def
/ic [ 
	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
	0
	{0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
	{10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
	{19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
	{13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
	{4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
	{13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
	{7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
	{0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
	{10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
	] def
	/sl FMLOCAL
	/val FMLOCAL
	/ws FMLOCAL
	/im FMLOCAL
	/bs FMLOCAL
	/cs FMLOCAL
	/len FMLOCAL
	/pos FMLOCAL
/ms { 
	/sl exch def 
	/val 255 def 
	/ws cfs 
	/im cfs 
	/val 0 def 
	/bs cfs 
	/cs cfs 
	} bind def
400 ms 
/ip { 
	is 
	0 
	cf cs readline pop 
	{	ic exch get exec 
		add 
		} forall 
	pop 
	
	} bind def
/rip { 
	   
	  
	  bis ris copy pop 
      is
      0
      cf cs readline pop 
      {       ic exch get exec 
              add 
              } forall 
	  pop pop 
	  ris gis copy pop 
	  dup is exch 
	  
      cf cs readline pop 
      {       ic exch get exec 
              add 
              } forall 
	  pop pop
	  gis bis copy pop 
	  dup add is exch 
	  
      cf cs readline pop 
      {       ic exch get exec 
              add 
              } forall 
      pop 
      
      } bind def
/wh { 
	/len exch def 
	/pos exch def 
	ws 0 len getinterval im pos len getinterval copy pop
	pos len 
	} bind def
/bl { 
	/len exch def 
	/pos exch def 
	bs 0 len getinterval im pos len getinterval copy pop
	pos len 
	} bind def
/s1 1 string def
/fl { 
	/len exch def 
	/pos exch def 
	/val cf s1 readhexstring pop 0 get def
	pos 1 pos len add 1 sub {im exch val put} for
	pos len 
	} bind def
/hx { 
	3 copy getinterval 
	cf exch readhexstring pop pop 
	} bind def
	/h FMLOCAL
	/w FMLOCAL
	/d FMLOCAL
	/lb FMLOCAL
	/bitmapsave FMLOCAL
	/is FMLOCAL
	/cf FMLOCAL
/wbytes { 
      dup dup
      24 eq { pop pop 3 mul }
      { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse
	} bind def
/BEGINBITMAPBWc { 
	1 {} COMMONBITMAPc
	} bind def
/BEGINBITMAPGRAYc { 
	8 {} COMMONBITMAPc
	} bind def
/BEGINBITMAP2BITc { 
	2 {} COMMONBITMAPc
	} bind def
/COMMONBITMAPc { 
		 
	/r exch def
	/d exch def
	gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/lb w d wbytes def 
	sl lb lt {lb ms} if 
	/bitmapsave save def 
	r                    
	/is im 0 lb getinterval def 
	ws 0 lb getinterval is copy pop 
	/cf currentfile def 
	w h d [w 0 0 h neg 0 h] 
	{ip} image 
	bitmapsave restore 
	grestore
	} bind def
/BEGINBITMAPBW { 
	1 {} COMMONBITMAP
	} bind def
/BEGINBITMAPGRAY { 
	8 {} COMMONBITMAP
	} bind def
/BEGINBITMAP2BIT { 
	2 {} COMMONBITMAP
	} bind def
/COMMONBITMAP { 
	/r exch def
	/d exch def
	gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/bitmapsave save def 
	r                    
	/is w d wbytes string def
	/cf currentfile def 
	w h d [w 0 0 h neg 0 h] 
	{cf is readhexstring pop} image
	bitmapsave restore 
	grestore
	} bind def
/ngrayt 256 array def
/nredt 256 array def
/nbluet 256 array def
/ngreent 256 array def
	/gryt FMLOCAL
	/blut FMLOCAL
	/grnt FMLOCAL
	/redt FMLOCAL
	/indx FMLOCAL
	/cynu FMLOCAL
	/magu FMLOCAL
	/yelu FMLOCAL
	/k FMLOCAL
	/u FMLOCAL
FMLevel1 {
/colorsetup {
	currentcolortransfer
	/gryt exch def
	/blut exch def
	/grnt exch def
	/redt exch def
	0 1 255 {
		/indx exch def
		/cynu 1 red indx get 255 div sub def
		/magu 1 green indx get 255 div sub def
		/yelu 1 blue indx get 255 div sub def
		/k cynu magu min yelu min def
		/u k currentundercolorremoval exec def
%		/u 0 def
		nredt indx 1 0 cynu u sub max sub redt exec put
		ngreent indx 1 0 magu u sub max sub grnt exec put
		nbluet indx 1 0 yelu u sub max sub blut exec put
		ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
	} for
	{255 mul cvi nredt exch get}
	{255 mul cvi ngreent exch get}
	{255 mul cvi nbluet exch get}
	{255 mul cvi ngrayt exch get}
	setcolortransfer
	{pop 0} setundercolorremoval
	{} setblackgeneration
	} bind def
}
{
/colorSetup2 {
	[ /Indexed /DeviceRGB 255 
		{dup red exch get 255 div 
		 exch dup green exch get 255 div 
		 exch blue exch get 255 div}
	] setcolorspace
} bind def
} ifelse
	/tran FMLOCAL
/fakecolorsetup {
	/tran 256 string def
	0 1 255 {/indx exch def 
		tran indx
		red indx get 77 mul
		green indx get 151 mul
		blue indx get 28 mul
		add add 256 idiv put} for
	currenttransfer
	{255 mul cvi tran exch get 255.0 div}
	exch concatprocs settransfer
} bind def
/BITMAPCOLOR { 
	/d 8 def
	gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/bitmapsave save def
	FMLevel1 {	
		colorsetup
		/is w d wbytes string def
		/cf currentfile def 
		w h d [w 0 0 h neg 0 h] 
		{cf is readhexstring pop} {is} {is} true 3 colorimage 
	} {
		colorSetup2
		/is w d wbytes string def
		/cf currentfile def 
		7 dict dup begin
			/ImageType 1 def
			/Width w def
			/Height h def
			/ImageMatrix [w 0 0 h neg 0 h] def
			/DataSource {cf is readhexstring pop} bind def
			/BitsPerComponent d def
			/Decode [0 255] def
		end image	
	} ifelse
	bitmapsave restore 
	grestore
	} bind def
/BITMAPCOLORc { 
	/d 8 def
	gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/lb w d wbytes def 
	sl lb lt {lb ms} if 
	/bitmapsave save def 
	FMLevel1 {	
		colorsetup
		/is im 0 lb getinterval def 
		ws 0 lb getinterval is copy pop 
		/cf currentfile def 
		w h d [w 0 0 h neg 0 h] 
		{ip} {is} {is} true 3 colorimage
	} {
		colorSetup2
		/is im 0 lb getinterval def 
		ws 0 lb getinterval is copy pop 
		/cf currentfile def 
		7 dict dup begin
			/ImageType 1 def
			/Width w def
			/Height h def
			/ImageMatrix [w 0 0 h neg 0 h] def
			/DataSource {ip} bind def
			/BitsPerComponent d def
			/Decode [0 255] def
		end image	
	} ifelse
	bitmapsave restore 
	grestore
	} bind def
/BITMAPTRUECOLORc { 
	/d 24 def
        gsave
 	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/lb w d wbytes def 
	sl lb lt {lb ms} if 
        /bitmapsave save def 
        
	/is im 0 lb getinterval def	
	/ris im 0 w getinterval def	
	/gis im w w getinterval def	
	/bis im w 2 mul w getinterval def 
        
        ws 0 lb getinterval is copy pop 
        /cf currentfile def 
        w h 8 [w 0 0 h neg 0 h] 
        {w rip pop ris} {gis} {bis} true 3 colorimage
        bitmapsave restore 
        grestore
        } bind def
/BITMAPTRUECOLOR { 
        gsave
		
		3 index 2 div add exch	
		4 index 2 div add exch	
		translate		
		rotate			
		1 index 2 div neg	
		1 index 2 div neg	
		translate		
		scale			
		/h exch def /w exch def
        /bitmapsave save def 
        /is w string def
        /gis w string def
        /bis w string def
        /cf currentfile def 
        w h 8 [w 0 0 h neg 0 h] 
        { cf is readhexstring pop } 
        { cf gis readhexstring pop } 
        { cf bis readhexstring pop } 
        true 3 colorimage 
        bitmapsave restore 
        grestore
        } bind def
/BITMAPTRUEGRAYc { 
	/d 24 def
        gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/lb w d wbytes def 
	sl lb lt {lb ms} if 
        /bitmapsave save def 
        
	/is im 0 lb getinterval def	
	/ris im 0 w getinterval def	
	/gis im w w getinterval def	
	/bis im w 2 mul w getinterval def 
        ws 0 lb getinterval is copy pop 
        /cf currentfile def 
        w h 8 [w 0 0 h neg 0 h] 
        {w rip pop ris gis bis w gray} image
        bitmapsave restore 
        grestore
        } bind def
/ww FMLOCAL
/r FMLOCAL
/g FMLOCAL
/b FMLOCAL
/i FMLOCAL
/gray { 
        /ww exch def
        /b exch def
        /g exch def
        /r exch def
        0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
			b i get .114 mul add add r i 3 -1 roll floor cvi put } for
        r
        } bind def
/BITMAPTRUEGRAY { 
        gsave
		
		3 index 2 div add exch	
		4 index 2 div add exch	
		translate		
		rotate			
		1 index 2 div neg	
		1 index 2 div neg	
		translate		
		scale			
		/h exch def /w exch def
        /bitmapsave save def 
        /is w string def
        /gis w string def
        /bis w string def
        /cf currentfile def 
        w h 8 [w 0 0 h neg 0 h] 
        { cf is readhexstring pop 
          cf gis readhexstring pop 
          cf bis readhexstring pop w gray}  image
        bitmapsave restore 
        grestore
        } bind def
/BITMAPGRAY { 
	8 {fakecolorsetup} COMMONBITMAP
	} bind def
/BITMAPGRAYc { 
	8 {fakecolorsetup} COMMONBITMAPc
	} bind def
/ENDBITMAP {
	} bind def
end 
	/ALDsave FMLOCAL
	/ALDmatrix matrix def ALDmatrix currentmatrix pop
/StartALD {
	/ALDsave save def
	 savematrix
	 ALDmatrix setmatrix
	} bind def
/InALD {
	 restorematrix
	} bind def
/DoneALD {
	 ALDsave restore
	} bind def
/I { setdash } bind def
/J { [] 0 setdash } bind def
%%EndProlog
%%BeginSetup
(4.0) FMVERSION
1 1 0 0 612 792 0 1 14 FMDOCUMENT
0 0 /Times-Italic FMFONTDEFINE
1 0 /Helvetica-Bold FMFONTDEFINE
2 0 /Times-Roman FMFONTDEFINE
3 0 /Courier-Bold FMFONTDEFINE
4 0 /Helvetica FMFONTDEFINE
5 0 /Times-Bold FMFONTDEFINE
6 1 /Symbol FMFONTDEFINE
7 0 /ZapfChancery-MediumItalic FMFONTDEFINE
32 FMFILLS
0 0 FMFILL
1 0.1 FMFILL
2 0.3 FMFILL
3 0.5 FMFILL
4 0.7 FMFILL
5 0.9 FMFILL
6 0.97 FMFILL
7 1 FMFILL
8 <0f1e3c78f0e1c387> FMFILL
9 <0f87c3e1f0783c1e> FMFILL
10 <cccccccccccccccc> FMFILL
11 <ffff0000ffff0000> FMFILL
12 <8142241818244281> FMFILL
13 <03060c183060c081> FMFILL
14 <8040201008040201> FMFILL
16 1 FMFILL
17 0.9 FMFILL
18 0.7 FMFILL
19 0.5 FMFILL
20 0.3 FMFILL
21 0.1 FMFILL
22 0.03 FMFILL
23 0 FMFILL
24 <f0e1c3870f1e3c78> FMFILL
25 <f0783c1e0f87c3e1> FMFILL
26 <3333333333333333> FMFILL
27 <0000ffff0000ffff> FMFILL
28 <7ebddbe7e7dbbd7e> FMFILL
29 <fcf9f3e7cf9f3f7e> FMFILL
30 <7fbfdfeff7fbfdfe> FMFILL
%%EndSetup
%%Page: "1" 1
%%BeginPaperSize: Letter
%%EndPaperSize
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
J
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(1/12) 540.64 56.83 T
1 18 Q
(The Jupiter Audio/V) 144.28 726.14 T
(ideo Architecture:) 313.98 726.14 T
(Secure Multimedia in Network Places) 147.08 704.14 T
0 12 Q
(Pavel Curtis, Michael Dixon, Ron Fr) 144.88 661.14 T
(ederick, and David A. Nichols) 322.76 661.14 T
2 F
(Xerox Palo Alto Research Center) 225.82 647.14 T
(3333 Coyote Hill Road) 250.3 633.14 T
(Palo Alto, CA 94304 USA) 241.97 619.14 T
(+1 415 812 4000) 265.26 605.14 T
({pavel,mdixon,frederick,nichols}@parc.xerox.com) 182.71 591.14 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
1 9 Q
(ABSTRACT) 53.86 547.89 T
2 10 Q
0.25 0 (Jupiter is a multi-user) 53.86 536.22 B
0.25 0 (, multimedia virtual world intended to) 141.22 536.22 B
0.25 0.1 (support remote collaboration, including support for shared) 53.86 525.22 B
0.25 0.13 (documents, shared tools, and audio/video communication.) 53.86 514.22 B
0.25 0.04 (In addition, it provides a rich set of end-user customization) 53.86 503.22 B
0.25 0.09 (and programming facilities, designed to support a commu-) 53.86 492.22 B
0.25 0.17 (nity of developers with a wide range both of skills and of) 53.86 481.22 B
(trust in each other) 53.86 470.22 T
(.) 125.24 470.22 T
0.25 0.04 (This combination of features leads to an interesting tension) 53.86 451.22 B
0.15 (in the system\325) 53.86 440.22 P
0.15 (s design, between \337exibility and privacy: how) 109.73 440.22 P
0.25 0 (can we make it easy for \322power users\323 to build applications) 53.86 429.22 B
0.25 0.13 (that control the distribution and recording of the real-time) 53.86 418.22 B
0.25 0.35 (audio and video streams in new and useful ways, while) 53.86 407.22 B
0.25 0.11 (simultaneously assuring) 53.86 396.22 B
0 F
0.25 0.11 (all) 155.84 396.22 B
2 F
0.25 0.11 ( users that they understand and) 166.72 396.22 B
0.25 0.46 (control where their own A/V streams are going at any) 53.86 385.22 B
(moment?) 53.86 374.22 T
0.25 0.22 (In this paper we describe our solution to this dilemma; it) 53.86 355.22 B
0.25 0.05 (combines the automatic use of encryption, a f) 53.86 344.22 B
0.25 0.05 (lexible model) 239.29 344.22 B
0.25 0.17 (for dynamically interconnecting media sources and sinks,) 53.86 333.22 B
0.25 0.09 (and user) 53.86 322.22 B
0.25 0.09 (-interface widgets that can be relied upon to accu-) 88.26 322.22 B
0.25 0.16 (rately represent and control the workstation\325) 53.86 311.22 B
0.25 0.16 (s audio/video) 239.06 311.22 B
(capabilities.) 53.86 300.22 T
1 9 Q
(KEYWORDS) 53.86 278.89 T
2 10 Q
0.25 0.39 (Network places, collaboration, audio, video, multicast,) 53.86 267.22 B
(security) 53.86 256.22 T
(, encryption.) 84.87 256.22 T
1 9 Q
(INTRODUCTION) 53.86 234.89 T
2 10 Q
0.25 0.44 (Jupiter is a system supporting long-term collaboration) 53.86 223.22 B
-0.21 (through the use of) 53.86 212.22 P
0 F
-0.21 (network places) 128.02 212.22 P
2 F
-0.21 ( [5]. Each Jupiter user runs) 188.09 212.22 P
0.09 (a client program on a workstation, preferably equipped with) 53.86 201.22 P
0.25 0.27 (video camera and microphone, and connects to a Jupiter) 53.86 190.22 B
0.25 0.13 (server that maintains a persistent virtual world of network) 53.86 179.22 B
(places.) 53.86 168.22 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
0.25 0.2 (Compared with virtual reality systems, the world itself is) 317.48 547.22 B
0.25 0.2 (simple, represented with only two-dimensional maps and) 317.48 536.22 B
0.25 0.01 (textual descriptions. The emphasis instead is on interaction,) 317.48 525.22 B
-0.23 (with the other users currently connected and with the objects) 317.48 514.22 P
(that they jointly construct and leave behind.) 317.48 503.22 T
0.25 0.21 (The Jupiter world is composed of a set of interconnected) 317.48 484.22 B
0.25 0.24 (places that serve to structure these interactions: to a f) 317.48 473.22 B
0.25 0.24 (irst) 544.91 473.22 B
0.25 0.13 (approximation, each user sees and interacts with the other) 317.48 462.22 B
0.25 0.32 (users and objects currently located in the same network) 317.48 451.22 B
0.25 0.02 (place as themselves. By moving themselves and the objects) 317.48 440.22 B
0.25 0.07 (from place to place, they can f) 317.48 429.22 B
0.25 0.07 (lexibly and naturally control) 442.04 429.22 B
(the extent of their participation in the collaboration.) 317.48 418.22 T
0.25 0.21 (The objects in Jupiter can include simple text documents) 317.48 399.22 B
0.25 0.1 (and drawing surfaces, general tools like web browsers and) 317.48 388.22 B
-0.01 (tape recorders, tools designed for speci\336c types of work like) 317.48 377.22 P
0.25 0.19 (data analysis, and even active agents that move about the) 317.48 366.22 B
-0.08 (Jupiter world and interact with other objects and users. Jupi-) 317.48 355.22 P
0.25 0.25 (ter provides tools for creating new objects, creating new) 317.48 344.22 B
0.25 0.19 (places, and def) 317.48 333.22 B
0.25 0.19 (ining or modifying the behavior of objects) 379.9 333.22 B
0.25 0.08 (and places with a simple but powerful object-oriented pro-) 317.48 322.22 B
(gramming language.) 317.48 311.22 T
0.25 0.07 (The Jupiter server consists of a database that maintains the) 317.48 292.22 B
0.25 (state of the world and the objects in it, an interpreter for the) 317.48 281.22 P
0.25 0.21 (internal programming language, and a core set of objects) 317.48 270.22 B
0.25 0.01 (that provide the basic functionality of network places, com-) 317.48 259.22 B
(munication facilities, and programming tools.) 317.48 248.22 T
0.25 0.19 (An important design assumption is that users adding new) 317.48 229.22 B
0.25 0.09 (capabilities to Jupiter might not be trusted by other Jupiter) 317.48 218.22 B
0.25 0.4 (users, so we require an unusually f) 317.48 207.22 B
0.25 0.4 (ine-grained security) 470.92 207.22 B
0.25 0.26 (model that allows users to maintain control of their own) 317.48 196.22 B
0.25 0.06 (objects and places, but at the same time share and build on) 317.48 185.22 B
(each others\325 programming ef) 317.48 174.22 T
(forts when desired.) 433.1 174.22 T
0.25 0.02 (The Jupiter programming environment has made it easy for) 317.48 155.22 B
0.04 (users to extend the world in many ways; our goal in the cur-) 317.48 144.22 P
-0.22 (rent work was to design audio/video facilities with compara-) 317.48 133.22 P
-0.04 (ble \337exibility) 317.48 122.22 P
-0.04 (, so that novel or customized media connection) 370.41 122.22 P
0.09 (applications could be implemented easily by end users. Fur-) 317.48 111.22 P
0.25 0.07 (thermore, such extensions should not require reimplement-) 317.48 100.22 B
0.25 0.07 (ing basic facilities like the management and distribution of) 317.48 89.22 B
(network addresses and encryption keys.) 317.48 78.22 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "1" 1
%%Page: "2" 2
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(2/12) 540.64 56.83 T
2 F
0.25 0.09 (These user) 53.86 731.47 B
0.25 0.09 (-written applications should not be able to com-) 97.79 731.47 B
0.25 0.09 (promise other users\325 control or understanding of their own) 53.86 720.47 B
(audio/video access. For example, we would like to prevent) 53.86 709.47 T
3 11 Q
(\245) 53.86 696.47 T
2 10 Q
0.25 0.07 (a programmer creating an object that allows them to see) 64.66 696.47 B
0.25 0.39 (or hear what\325) 64.66 685.47 B
0.25 0.39 (s going on in another room without the) 122.94 685.47 B
(occupants of that room knowing it,) 64.66 674.47 T
3 11 Q
(\245) 53.86 661.48 T
2 10 Q
0.25 0.17 (a programmer creating a new communication tool that,) 64.66 661.48 B
0.25 0.11 (while seemingly secure within Jupiter) 64.66 650.48 B
0.25 0.11 (, is actually trans-) 220.97 650.48 B
0.25 0.15 (mitting the media streams unencrypted and is therefore) 64.66 639.48 B
(vulnerable to external tapping,) 64.66 628.48 T
3 11 Q
(\245) 53.86 615.48 T
2 10 Q
0.25 0.45 (user) 64.66 615.48 B
0.25 0.45 (1 playing back a \050possibly edited\051 recording of) 86.05 615.48 B
0.25 0.01 (user) 64.66 604.48 B
0.25 0.01 (2, making other people present believe that user) 83.88 604.48 B
0.25 0.01 (2 is) 280.37 604.48 B
(actually speaking, or) 64.66 593.48 T
3 11 Q
(\245) 53.86 580.48 T
2 10 Q
0.25 0.11 (a programmer creating an object that allows unsolicited) 64.66 580.48 B
(broadcast to everyone else in the system.) 64.66 569.48 T
0.25 0.1 (The previous prototype of Jupiter supported much of what) 53.86 550.48 B
0.25 0.31 (we would like, but often in an) 53.86 539.48 B
0 F
0.25 0.31 (ad hoc) 187.36 539.48 B
2 F
0.25 0.31 ( or inf) 216.39 539.48 B
0.25 0.31 (lexible way) 242.94 539.48 B
0.25 0.31 (.) 292.3 539.48 B
0.25 0.57 (After having used the system for several months, we) 53.86 528.48 B
0.1 (decided to completely redesign the facilities for audio/video) 53.86 517.48 P
0.25 0.1 (control, coordination, and security; this paper presents our) 53.86 506.48 B
(new design.) 53.86 495.48 T
-0.16 (In what follows, we \336rst lay out the range of applications we) 53.86 476.48 P
0.25 0.15 (had specif) 53.86 465.48 B
0.25 0.15 (ically in mind as design tar) 95.89 465.48 B
0.25 0.15 (gets. Next, we cover) 209.25 465.48 B
0.25 0.37 (two other major inf) 53.86 454.48 B
0.25 0.37 (luences on the design: the technical) 138.61 454.48 B
0.25 0.11 (infrastructure underlying Jupiter and the security and trust) 53.86 443.48 B
0.25 0.04 (considerations. At the core of the paper is a presentation of) 53.86 432.48 B
0.23 (the user and programming interfaces in the new design, fol-) 53.86 421.48 P
0.25 0.1 (lowed by a brief discussion of how this design enables the) 53.86 410.48 B
(implementation of several key applications.) 53.86 399.48 T
1 9 Q
(SOME MOTIV) 53.86 378.14 T
(A) 110.7 378.14 T
(TING APPLICA) 116.53 378.14 T
(TIONS) 179.37 378.14 T
2 10 Q
-0.02 (The design of the Jupiter audio/video architecture was in\337u-) 53.86 366.48 P
0.23 (enced in lar) 53.86 355.48 P
0.23 (ge part by the set of sample applications we had) 100.79 355.48 P
0.25 0.01 (in mind. A major criterion in our deliberations was the ease) 53.86 344.48 B
0.25 0.11 (with which new applications could be prototyped by users) 53.86 333.48 B
0.12 (with little knowledge of the low-level details of audio/video) 53.86 322.48 P
0.25 0.37 (capture, processing, or transmission. In this section we) 53.86 311.48 B
0.25 0.31 (describe many of these applications in order to give the) 53.86 300.48 B
0.25 0.3 (reader a sense of the breadth we considered. Late in the) 53.86 289.48 B
0.25 0.24 (paper) 53.86 278.47 B
0.25 0.24 (, we revisit a number of the applications to explore) 76.88 278.47 B
(how well we\325ve addressed our ease-of-use goals.) 53.86 267.47 T
3 11 Q
(\245) 53.86 252.47 T
0 10 Q
(Intra-r) 64.66 252.47 T
(oom communication) 91.51 252.47 T
2 F
-0.21 (By far the most common use of audio and video in Jupiter) 64.66 241.47 P
0.41 (is for communicating with the other users who are in the) 64.66 230.47 P
-0.17 (same network place, or) 64.66 219.47 P
0 F
-0.17 (r) 159.24 219.47 P
-0.17 (oom) 162.76 219.47 P
2 F
-0.17 (. The model is that when one) 179.98 219.47 P
-0.15 (user speaks, all of the others in the room can hear them; if) 64.66 208.47 P
0.52 (any of the users have cameras, all of the others there are) 64.66 197.47 P
(able to see their image.) 64.66 186.47 T
3 11 Q
(\245) 53.86 171.47 T
0 10 Q
(Private comments to a single user) 64.66 171.47 T
2 F
-0.22 (It often happens that a user would like to speak to just one) 64.66 160.47 P
1.08 (of the others in the current room, not to all present; we) 64.66 149.47 P
(refer to this as) 64.66 138.47 T
0 F
(whispering.) 124.09 138.47 T
3 11 Q
(\245) 53.86 123.47 T
0 10 Q
(Non-speech sounds in r) 64.66 123.47 T
(ooms) 158.45 123.47 T
2 F
0.79 (Other) 64.66 112.47 P
0.79 (, non-speech audio communications can be helpful) 87.03 112.47 P
-0.17 (in giving network places more of the af) 64.66 101.47 P
-0.17 (fordances of phys-) 220.73 101.47 P
0.13 (ical places. For example, it should be possible for a room) 64.66 90.47 P
1.63 (to generate a sound, audible to the users in that room,) 64.66 79.47 P
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
0.74 (whenever someone enters or leaves. Another example is) 328.28 731.47 P
0.62 (ambient, background sounds, which might be capable of) 328.28 720.47 P
(subtly giving dif) 328.28 709.47 T
(ferent places dif) 394.22 709.47 T
(ferent \322feels.\323) 458.46 709.47 T
3 11 Q
(\245) 317.48 694.47 T
0 10 Q
(Hearing sounds fr) 328.28 694.47 T
(om \322nearby\323 r) 400.69 694.47 T
(ooms) 460.32 694.47 T
2 F
0.24 (It often happens in physical places that the sound of con-) 328.28 683.47 P
0.67 (versation in one room will draw in participants from the) 328.28 672.47 P
0.58 (nearby spaces; this kind of casual, unplanned interaction) 328.28 661.48 P
2.68 (is an important mechanism for improving the overall) 328.28 650.48 P
0.39 (level of communication in a group. If the presentation of) 328.28 639.48 P
1.25 (network places to users includes enough information to) 328.28 628.48 P
-0.04 (make clear how far conversation is travelling, it would be) 328.28 617.48 P
0.05 (useful and should be straightforward to allow this kind of) 328.28 606.48 P
(inter) 328.28 595.48 T
(-room audio leakage.) 346.41 595.48 T
3 11 Q
(\245) 317.48 580.48 T
0 10 Q
(Connecting physical and virtual places) 328.28 580.48 T
2 F
-0.22 (The activities in some physical places, such as conference) 328.28 569.48 P
1.93 (rooms and auditoriums, could be of interest to remote) 328.28 558.48 P
0.47 (users. It should be easy to set up virtual analogs of these) 328.28 547.48 P
0.89 (places, allowing users who are not physically present to) 328.28 536.48 P
1.26 (see, hear) 328.28 525.48 P
1.26 (, and even actively participate in meetings and) 364.11 525.48 P
(presentations.) 328.28 514.48 T
3 11 Q
(\245) 317.48 499.48 T
0 10 Q
(Non-local audio/video tunnels) 328.28 499.48 T
2 F
0.18 (While network places provide a rich metaphor for a wide) 328.28 488.48 P
1.94 (range of interactions, there are times when users need) 328.28 477.48 P
2.13 (other communications channels not tied to any virtual) 328.28 466.48 P
1.08 (geography) 328.28 455.48 P
1.08 (. For example, some pairs of users who often) 369.84 455.48 P
0.15 (interact with each other also often need to work in dif) 328.28 444.48 P
0.15 (fer-) 543.99 444.48 P
2.75 (ent network places on essentially dif) 328.28 433.48 P
2.75 (ferent immediate) 487.64 433.48 P
-0.24 (projects. Such pairs should be able to easily set up an A/V) 328.28 422.48 P
0.33 (\324tunnel\325 between them, allowing them to stay in commu-) 328.28 411.48 P
2.46 (nication even as they each move about in the virtual) 328.28 400.48 P
(space) 328.28 389.48 T
([1].) 352.99 389.48 T
3 11 Q
(\245) 317.48 374.48 T
0 10 Q
(W) 328.28 374.48 T
(orkgr) 335.69 374.48 T
(oup media spaces) 357.54 374.48 T
2 F
2.17 (The same basic concept scales up to lar) 328.28 363.48 P
2.17 (ger groups as) 500.76 363.48 P
0.9 (well. For example, the hardware group in P) 328.28 352.48 P
0.9 (ARC\325) 507.24 352.48 P
0.9 (s com-) 530.58 352.48 P
2.84 (puter science lab comprises about ten people usually) 328.28 341.48 P
1.65 (working on several distinct projects at any given time.) 328.28 330.48 P
1.97 (While their individual work keeps the group members) 328.28 319.48 P
2.84 (spread apart in both physical and virtual space, they) 328.28 308.48 P
0.55 (would like to be able to stay casually in touch with each) 328.28 297.48 P
0.12 (other as a group; they) 328.28 286.48 P
0.12 (, too, should be able to easily set up) 414.74 286.48 P
(a group A/V \322space\323 to meet this need [3].) 328.28 275.47 T
3 11 Q
(\245) 317.48 260.47 T
0 10 Q
(Public addr) 328.28 260.47 T
(ess system) 375.41 260.47 T
2 F
0.08 (At the limit of this notion, some communities might wish) 328.28 249.47 P
1.49 (to allow certain distinguished users to make announce-) 328.28 238.47 P
(ments that are seen and heard by everyone.) 328.28 227.47 T
3 11 Q
(\245) 317.48 212.47 T
0 10 Q
(V) 328.28 212.47 T
(irtual video telephones) 333.65 212.47 T
2 F
0.54 (The two-person A/V tunnel concept is similar to a video) 328.28 201.47 P
0.41 (telephone call that is never disconnected. One could also) 328.28 190.47 P
0.83 (provide virtual videophones in their full generality) 328.28 179.47 P
0.83 (, with) 534.81 179.47 P
0.08 (users able to specify on a call-by-call basis the other end-) 328.28 168.47 P
1.29 (point of the tunnel and to cause a receiving window to) 328.28 157.47 P
(appear on the callee\325) 328.28 146.47 T
(s screen at call initiation.) 410.75 146.47 T
3 11 Q
(\245) 317.48 131.47 T
0 10 Q
(V) 328.28 131.47 T
(irtual answering machines) 333.65 131.47 T
2 F
0.11 (Once there were virtual telephones, the virtual equivalent) 328.28 120.47 P
0.96 (of an answering machine would be useful, providing an) 328.28 109.47 P
1.14 (asynchronous complement to the other applications dis-) 328.28 98.47 P
(cussed.) 328.28 87.47 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "2" 2
%%Page: "3" 3
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(3/12) 540.64 56.83 T
3 11 Q
(\245) 53.86 731.47 T
0 10 Q
(Connecting to the r) 64.66 731.47 T
(eal world phone system) 141.79 731.47 T
2 F
0.36 (Given appropriate hardware, it should be straightforward) 64.66 720.47 P
0.29 (to hook up any virtual telephone system to the one in the) 64.66 709.47 P
(real world [1) 64.66 698.47 T
(1].) 115.94 698.47 T
3 11 Q
(\245) 53.86 683.47 T
0 10 Q
(Audio/video r) 64.66 683.47 T
(ecor) 119.01 683.47 T
(ding and playback) 136.41 683.47 T
2 F
0.82 (As is suggested by the answering machine example, not) 64.66 672.47 P
5.53 (all participants in audio/video communications are) 64.66 661.48 P
-0.01 (human users. One obvious non-user application is a \322tape) 64.66 650.48 P
-0.1 (recorder) 64.66 639.48 P
-0.1 (.\323 W) 97.42 639.48 P
-0.1 (ith the assistance of a simple auxiliary server) 115.8 639.48 P
1.95 (that can transmit and receive A/V traf) 64.66 628.48 P
1.95 (\336c, it should be) 227.27 628.48 P
0.94 (easy to implement an object that, when located in some) 64.66 617.48 P
1.62 (network place, can record the open communications in) 64.66 606.48 P
2.46 (that place. Once such a recording has been made, of) 64.66 595.48 P
0.51 (course, it should again be straightforward to play it back) 64.66 584.48 P
2.17 (later to any authorized listeners. Extra facilities might) 64.66 573.48 P
1.48 (usefully allow users to insert notes and other markings) 64.66 562.48 P
0.93 (tied to speci\336c locations in the recording, to aid in later) 64.66 551.48 P
(indexing or review [8].) 64.66 540.48 T
3 11 Q
(\245) 53.86 525.48 T
0 10 Q
(External audio/video sour) 64.66 525.48 T
(ces) 168.73 525.48 T
2 F
0.55 (V) 64.66 514.48 P
0.55 (irtual analogs of physical places is just one example of) 71.28 514.48 P
0.54 (making an external audio/video source available to Jupi-) 64.66 503.48 P
-0.22 (ter users. Others might include broadcast radio and televi-) 64.66 492.48 P
(sion signals or physical security cameras.) 64.66 481.48 T
3 11 Q
(\245) 53.86 466.48 T
0 10 Q
(Hourly news r) 64.66 466.48 T
(ecor) 121.51 466.48 T
(ding service) 138.91 466.48 T
2 F
-0.18 (In the radio case, we have found it useful to automatically) 64.66 455.48 P
-0.25 (record the news reports broadcast at the top of every hour) 64.66 444.48 P
-0.25 (,) 292.3 444.48 P
2.24 (making the latest news always easily available to our) 64.66 433.48 P
(users.) 64.66 422.48 T
3 11 Q
(\245) 53.86 407.48 T
0 10 Q
(Application-speci\336c audible alerts) 64.66 407.48 T
2 F
1.58 (Another class of non-user media sources includes such) 64.66 396.48 P
0.46 (applications as mail readers, status monitors, and games;) 64.66 385.48 P
1.73 (for the most part, these applications are not concerned) 64.66 374.48 P
0.63 (with audio/video transmissions, but they may) 64.66 363.48 P
0.63 (, from time) 248.82 363.48 P
-0.24 (to time, wish to alert the user to some change in their state) 64.66 352.48 P
(with a simple sound ef) 64.66 341.48 T
(fect.) 155.03 341.48 T
0.25 0.39 (W) 53.86 322.48 B
0.25 0.39 (e had already implemented versions of most of these) 62.89 322.48 B
0.16 (applications in the previous Jupiter prototype, but in several) 53.86 311.48 P
0.25 0.13 (cases they relied on) 53.86 300.48 B
0 F
0.25 0.13 (ad hoc) 138.59 300.48 B
2 F
0.25 0.13 (, specialized mechanisms; they) 166.53 300.48 B
0.25 0.06 (were thus somewhat fragile and poorly integrated with one) 53.86 289.48 B
0.25 0.09 (another) 53.86 278.47 B
0.25 0.09 (. Our desire to clean up that situation and to enable) 83.94 278.47 B
0.25 0.27 (the rest of these applications was a major reason for our) 53.86 267.47 B
0.25 0.23 (decision to redesign the media coordination system from) 53.86 256.47 B
(scratch.) 53.86 245.47 T
1 9 Q
(THE JUPITER INFRASTRUCTURE) 53.86 224.14 T
2 10 Q
0.25 0.01 (Several properties of the technical infrastructure underlying) 53.86 212.47 B
0.25 0.11 (the Jupiter system have signif) 53.86 201.47 B
0.25 0.11 (icantly inf) 176.37 201.47 B
0.25 0.11 (luenced the design) 218.07 201.47 B
0.25 0.41 (of the new audio/video architecture. In this section we) 53.86 190.47 B
0.25 0.3 (describe enough of that infrastructure to bring out these) 53.86 179.47 B
(design requirements.) 53.86 168.47 T
1 9 Q
(Communications and networking) 53.86 147.14 T
2 10 Q
0.16 (Jupiter has a very sharp client/server distinction, with major) 53.86 135.47 P
0.08 (dif) 53.86 124.47 P
0.08 (ferences in the responsibilities and capabilities of the two) 64.79 124.47 P
0.25 0.06 (components. Each user runs a client program on their local) 53.86 113.47 B
0.25 0.18 (workstation that communicates across the network with a) 53.86 102.47 B
(single, shared server) 53.86 91.47 T
(.) 135.23 91.47 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
0.25 0.32 (The clients each initiate a single TCP connection to the) 317.48 731.47 B
0.25 0.29 (server that stays up for periods ranging from minutes to) 317.48 720.47 B
0.25 0.11 (months, depending on the user; users who disconnect may) 317.48 709.47 B
0.25 0.06 (later reconnect at will. The server stays up, ready to accept) 317.48 698.47 B
0.25 0.25 (new connections and to do its other processing, for arbi-) 317.48 687.47 B
0.25 0.12 (trarily long periods of time. The TCP connection is essen-) 317.48 676.47 B
0.25 0.04 (tially the only means of communication between any client) 317.48 665.47 B
0.25 0.2 (and the server) 317.48 654.48 B
0.25 0.2 (. All communication on these TCP connec-) 376.31 654.48 B
0.18 (tions will soon be encrypted for privacy) 317.48 643.48 P
0.18 (, using the proposed) 477.33 643.48 P
(standard Secure Sockets Layer protocol, SSL [7].) 317.48 632.48 T
0.25 0.02 (The clients transmit and receive audio and video data using) 317.48 613.48 B
0.17 (IP multicast [6] and the proposed standard Real-time T) 317.48 602.48 P
0.17 (rans-) 538.43 602.48 P
0.25 0 (port Protocol \050R) 317.48 591.48 B
0.25 0 (TP\051 [10]. All Jupiter audio and video traf) 382.39 591.48 B
0.25 0 (f) 548.42 591.48 B
0.25 0 (ic) 551.2 591.48 B
(is encrypted for privacy) 317.48 580.48 T
(.) 412.08 580.48 T
-0.23 (IP multicast is a routing technology that inexpensively sends) 317.48 561.48 P
-0.12 (copies of network packets to every host in the entire Internet) 317.48 550.48 P
0.25 0.07 (that has expressed interest in that packet\325) 317.48 539.48 B
0.25 0.07 (s specif) 485.69 539.48 B
0.25 0.07 (ic destina-) 516.2 539.48 B
0.07 (tion address; the sender of such a packet can not, in general,) 317.48 528.48 P
0.25 0.21 (control which hosts are allowed to receive it or even dis-) 317.48 517.48 B
(cover) 317.48 506.48 T
(, after the fact, which ones did so.) 339.29 506.48 T
1 9 Q
0.25 0.11 (Requirement:) 328.28 491.14 B
4 F
0.25 0.11 ( W) 387.58 491.14 B
0.25 0.11 (e should not use the same multicast) 398.88 491.14 B
0.25 0.5 (address for two transmissions to dif) 328.28 480.64 B
0.25 0.5 (ferent sets of) 488.55 480.64 B
(receivers.) 328.28 470.14 T
2 10 Q
0.25 0.07 (Otherwise, receivers who were in one set and not the other) 317.48 453.98 B
(would suf) 317.48 442.98 T
(fer a useless increase in local network load.) 357.02 442.98 T
1 9 Q
0.13 (Requirement:) 328.28 427.64 P
4 F
0.13 ( W) 386.28 427.64 P
0.13 (e should not use the same encryption) 397.25 427.64 P
-0.14 (key for two transmissions with dif) 328.28 417.14 P
-0.14 (ferent sets of intended) 458.98 417.14 P
(participants.) 328.28 406.64 T
2 10 Q
0.25 0.01 (This requirement applies even to incremental changes, such) 317.48 390.48 B
0.09 (as growing or shrinking a set by a single member) 317.48 379.48 P
0.09 (. When the) 514.65 379.48 P
0.25 0.02 (set grows, we cannot reveal the old key to the new member) 317.48 368.48 B
0.19 (because they may have recorded old transmissions that they) 317.48 357.48 P
0.25 0.22 (were not meant to receive. When the set shrinks, the key) 317.48 346.48 B
0.25 0.01 (must again change to keep the removed member from deci-) 317.48 335.48 B
(phering any further transmissions.) 317.48 324.48 T
0.25 0.33 (Encryption and decryption are not computationally free) 317.48 305.48 B
0.25 0.04 (operations; we would like to minimize the number of cryp-) 317.48 294.48 B
0.25 0.29 (tographic operations clients must perform. In particular) 317.48 283.48 B
0.25 0.29 (,) 555.92 283.48 B
0.25 0.04 (they should be able to successfully decrypt incoming pack-) 317.48 272.47 B
0.25 0.07 (ets without resorting to trial and error) 317.48 261.47 B
0.25 0.07 (. Fortunately) 471.09 261.47 B
0.25 0.07 (, the two) 522.67 261.47 B
0.25 0.28 (previous requirements together imply that the client can) 317.48 250.47 B
0.25 0.37 (determine which key to use solely from the destination) 317.48 239.47 B
(address of the packet.) 317.48 228.47 T
0.25 0 (There are, on a number of client platforms, signif) 317.48 209.47 B
0.25 0 (icant costs) 516.21 209.47 B
0.25 0.26 (associated with each separate network address the client) 317.48 198.47 B
(must listen to.) 317.48 187.47 T
1 9 Q
0.25 0.43 (Requirement:) 328.28 172.14 B
4 F
0.25 0.43 ( W) 391.45 172.14 B
0.25 0.43 (e should minimize the number of) 403.4 172.14 B
0.25 0.22 (addresses that clients must handle; in particular) 328.28 161.64 B
0.25 0.22 (, we) 530.2 161.64 B
-0.04 (should usually delay assigning addresses until they are) 328.28 151.14 P
(actually needed.) 328.28 140.64 T
2 10 Q
0.25 0.02 (In contrast to the clients, the main server never transmits or) 317.48 121.47 B
0.25 0.09 (receives any multicast data. In this regard, it acts only as a) 317.48 110.47 B
0.21 (coordinator and key generator) 317.48 99.47 P
0.21 (, notifying the other parties of) 437.95 99.47 P
0.2 (the appropriate multicast addresses and keys to use for their) 317.48 88.47 P
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "3" 3
%%Page: "4" 4
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(4/12) 540.64 56.83 T
2 F
0.25 0.1 (own out-of-band communications. Note that cryptographi-) 53.86 731.47 B
(cally secure key generation is computationally expensive.) 53.86 720.47 T
1 9 Q
-0.08 (Requirement:) 64.66 705.14 P
4 F
-0.08 ( W) 122.66 705.14 P
-0.08 (e should minimize the number of keys) 133.42 705.14 P
0.25 0.06 (that the server must create; in particular) 64.66 694.64 B
0.25 0.06 (, where possi-) 226.76 694.64 B
0.25 0.31 (ble, we should delay generating keys until they are) 64.66 684.14 B
(actually needed.) 64.66 673.64 T
1 F
(Jupiter Clients) 53.86 652.14 T
2 10 Q
-0.16 (The Jupiter client programs \050of which there are separate ver-) 53.86 640.48 P
0.25 0.03 (sions for UNIX systems, Macintoshes, and PCs\051 are prima-) 53.86 629.48 B
0.25 0.18 (rily responsible for managing the local details of the user) 53.86 618.48 B
0.25 0.02 (interface. Guided mostly by commands from the server) 53.86 607.48 B
0.25 0.02 (, the) 277.26 607.48 B
0.04 (client displays windows on the user) 53.86 596.48 P
0.04 (\325) 196.93 596.48 P
0.04 (s screen, conveys infor-) 199.71 596.48 P
-0.17 (mation about user input actions back to the server) 53.86 585.48 P
-0.17 (, and sends) 250.98 585.48 P
0.25 0.03 (and receives audio and video data via IP multicast. The cli-) 53.86 574.48 B
0.25 0.01 (ent employs no knowledge about network places, their con-) 53.86 563.48 B
-0.04 (tents, their behavior) 53.86 552.48 P
-0.04 (, or even other users; rather) 133.09 552.48 P
-0.04 (, it is a more-) 241.91 552.48 P
0.25 0.24 (or) 53.86 541.48 B
0.25 0.24 (-less straightforward engine for manipulating the local) 62.47 541.48 B
0.25 0.04 (machine\325) 53.86 530.48 B
0.25 0.04 (s I/O devices under the direction of the server and) 90.84 530.48 B
0.25 0.12 (the user) 53.86 519.48 B
0.25 0.12 (. All of the semantics of the various actions it per-) 85.9 519.48 B
(forms is carried in the server) 53.86 508.48 T
(\325) 168.92 508.48 T
(s code and the user) 171.7 508.48 T
(\325) 248.16 508.48 T
(s mind.) 250.94 508.48 T
0.25 0.28 (The server/client windowing protocol is relatively high-) 53.86 489.48 B
0.25 0.29 (level and low-bandwidth, especially in comparison to X) 53.86 478.48 B
0.07 (windows and similar systems [9]. W) 53.86 467.48 P
0.07 (indows are described to) 199.9 467.48 P
-0.01 (the client as a tree of high-level widgets, drawn from a \336xed) 53.86 456.48 P
0.25 0.23 (set of about 20 def) 53.86 445.48 B
0.25 0.23 (ined in the protocol. The client imple-) 133.02 445.48 B
0.25 0 (ments these widgets in terms of native facilities on the plat-) 53.86 434.48 B
0.25 0.11 (form, informing the server only of high-level user actions,) 53.86 423.48 B
0.25 0.04 (such as pushing a button, releasing a slider) 53.86 412.48 B
0.25 0.04 (, etc. Some wid-) 228.18 412.48 B
0.25 0.11 (gets, as described later) 53.86 401.48 B
0.25 0.11 (, directly support various aspects of) 147.38 401.48 B
(audio/video communication.) 53.86 390.48 T
0.14 (Note that it may be computationally expensive for clients to) 53.86 371.48 P
0.25 0.09 (capture, compress, and transmit audio and video data. Par-) 53.86 360.48 B
0.25 0.03 (ticularly in the case of video, which provides an essentially) 53.86 349.48 B
0.25 0.24 (constant stream of new data, we would like to be able to) 53.86 338.48 B
0.25 0.09 (avoid any of this processing during times when there were) 53.86 327.48 B
(no active receivers.) 53.86 316.48 T
1 9 Q
0.25 0.2 (Requirement:) 64.66 301.14 B
4 F
0.25 0.2 ( Even if security considerations would) 125.12 301.14 B
-0.25 (permit others to receive transmissions, we should avoid) 64.66 290.64 P
0.25 0.28 (preparing and sending them unless those transmis-) 64.66 280.14 B
(sions would actually be used by someone.) 64.66 269.64 T
1 F
(The Jupiter Server) 53.86 248.14 T
2 10 Q
0.25 0.05 (The main server is substantially more complex and general) 53.86 236.47 B
-0.01 (than the client. An instance of the LambdaMOO server soft-) 53.86 225.47 P
0.25 0.08 (ware used in a number of MUDs \050multi-user dungeons\051 on) 53.86 214.47 B
0.25 0.22 (the Internet [4], it accepts and manages network connec-) 53.86 203.47 B
0.25 0.15 (tions, maintains an object-oriented database, and, often in) 53.86 192.47 B
0.25 0.16 (response to user commands and client protocol messages,) 53.86 181.47 B
(executes code stored in the database.) 53.86 170.47 T
0.25 0.14 (The database contains a variety of objects, including their) 53.86 151.47 B
0.25 0.3 (methods and instance variables. Some of these database) 53.86 140.47 B
0.25 0.09 (objects model so-called) 53.86 129.47 B
0 F
0.25 0.09 (world objects) 153.69 129.47 B
2 F
0.25 0.09 (: virtually \324tangible\325,) 209.28 129.47 B
0.25 0.14 (user) 53.86 118.47 B
0.25 0.14 (-visible objects like places, the things in those places,) 70.89 118.47 B
0.25 0.05 (and even the individual users. The last of these, the objects) 53.86 107.47 B
0.25 0.35 (modelling users, have particular importance in the A/V) 53.86 96.47 B
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
-0.04 (architecture; we call them) 317.48 731.47 P
0 F
-0.04 (user objects) 423.38 731.47 P
2 F
-0.04 ( and discuss their role) 471.39 731.47 P
(later in the paper) 317.48 720.47 T
(.) 384.41 720.47 T
0.25 0.29 (Other objects in the database are essentially invisible to) 317.48 701.47 B
0.05 (users, being programming libraries or other parts of the pro-) 317.48 690.47 P
(gramming infrastructure.) 317.48 679.47 T
0.25 0.22 (All code for object methods is written in MOO, a simple) 317.48 660.48 B
0.25 0.12 (interpreted language. Essentially all of the Jupiter) 317.48 649.48 B
0.25 0.12 (-specif) 523.59 649.48 B
0.25 0.12 (ic) 551.08 649.48 B
(code in the server is in the database, written in MOO.) 317.48 638.48 T
0.14 (All aspects of the MOO database are mutable during execu-) 317.48 619.48 P
0.25 0.35 (tion; objects may be created or destroyed, methods and) 317.48 608.48 B
0.25 0.02 (instance variables added, modif) 317.48 597.48 B
0.25 0.02 (ied, or removed. Further) 444.86 597.48 B
0.25 0.02 (, all) 543.1 597.48 B
0.25 0.29 (users are allowed to perform any of these actions at any) 317.48 586.48 B
0.09 (time, allowing them to add to and customize the system to a) 317.48 575.48 P
(substantial degree.) 317.48 564.48 T
0.25 0.05 (W) 317.48 545.48 B
0.25 0.05 (e conceptually distinguish certain objects that implement) 326.17 545.48 B
0.25 0.1 (very general, basic facilities, such as the server side of the) 317.48 534.48 B
0.25 0.34 (window system\325) 317.48 523.48 B
0.25 0.34 (s widget toolkit, from more specialized) 387.73 523.48 B
0.25 0.08 (objects that implement specif) 317.48 512.48 B
0.25 0.08 (ic tools or other uses of those) 437.4 512.48 B
0.25 0.17 (facilities. When maintained by the system administrators,) 317.48 501.48 B
0.25 0.33 (we call the f) 317.48 490.48 B
0.25 0.33 (irst kind) 371.14 490.48 B
0 F
0.25 0.33 (cor) 410.51 490.48 B
0.25 0.33 (e objects;) 424.47 490.48 B
2 F
0.25 0.33 ( we refer to the other) 466.63 490.48 B
0.25 0.35 (objects as) 317.48 479.48 B
0 F
0.25 0.35 (applications) 363.47 479.48 B
2 F
0.25 0.35 (. In general, applications are not) 417.1 479.48 B
0.25 0.07 (maintained by the system administrators; any user can cre-) 317.48 468.48 B
(ate them.) 317.48 457.48 T
0.25 0.41 (As a security measure, each MOO object, method, and) 317.48 438.48 B
0.25 0.13 (instance variable is) 317.48 427.48 B
0 F
0.25 0.13 (owned) 400.13 427.48 B
2 F
0.25 0.13 ( by some specif) 426.9 427.48 B
0.25 0.13 (ied user and has) 491.56 427.48 B
0.25 0.52 (associated permission settings that control the access) 317.48 416.48 B
0.04 (allowed to all other users. Users and the code they own may) 317.48 405.48 P
0.25 0.4 (not, in general, modify or destroy objects, methods, or) 317.48 394.48 B
0.25 0.2 (instance variables owned by others and, in some cases as) 317.48 383.48 B
(speci\336ed by the owner) 317.48 372.48 T
(, may not even inspect them.) 407.34 372.48 T
0.25 0.2 (This multiplicity of, in general, mutually untrusting code) 317.48 353.48 B
0.25 0.19 (authors leads to situations where a method owned by one) 317.48 342.48 B
0.25 0.18 (user is called by a method owned by someone else. If the) 317.48 331.48 B
0.25 0.13 (author of the callee is malicious or even just incompetent,) 317.48 320.48 B
0.18 (this call might signal an error or never return, causing prob-) 317.48 309.48 P
-0.16 (lems for the caller) 317.48 298.48 P
-0.16 (. Often, though, the caller does not need or) 388.92 298.48 P
-0.23 (expect any returned value; the call is just a one-way) 317.48 287.48 P
0 F
-0.23 (noti\336ca-) 525.09 287.48 P
0.16 (tion) 317.48 276.47 P
2 F
0.16 ( of some condition or event. W) 333.04 276.47 P
0.16 (e have added a facility to) 457.36 276.47 P
0.25 0.29 (our database supporting asynchronous, one-way method) 317.48 265.47 B
0.25 0.31 (calls; these provide a guaranteed safe way for callers to) 317.48 254.47 B
(make such noti\336cations.) 317.48 243.47 T
1 9 Q
(THE SECURITY/TRUST MODEL) 317.48 222.14 T
2 10 Q
0.25 0.13 (In our thinking about network places, we have not limited) 317.48 210.47 B
-0.23 (ourselves to scenarios where all of the users necessarily trust) 317.48 199.47 P
0.25 0.24 (one another fully) 317.48 188.47 B
0.25 0.24 (. W) 389.76 188.47 B
0.25 0.24 (e do expect that the vast majority of) 404.38 188.47 B
0.23 (users will behave well in the vast majority of situations, but) 317.48 177.47 P
0.25 0.4 (we wish to maintain our generality by not treating this) 317.48 166.47 B
0.25 0.26 (expectation as an assumption. This section discusses the) 317.48 155.47 B
(design requirements that this desire for generality imposes.) 317.48 144.47 T
0.25 0.28 (In our analysis of the security issues in Jupiter) 317.48 125.47 B
0.25 0.28 (, we have) 517.66 125.47 B
0.25 0.3 (identif) 317.48 114.47 B
0.25 0.3 (ied f) 345.15 114.47 B
0.25 0.3 (ive classes of) 364.42 114.47 B
0 F
0.25 0.3 (principals) 425.52 114.47 B
2 F
0.25 0.3 (, entities with distin-) 469.1 114.47 B
(guishable agency or intent:) 317.48 103.47 T
3 11 Q
(\245) 317.48 90.47 T
2 10 Q
(users,) 328.28 90.47 T
3 11 Q
(\245) 317.48 77.47 T
2 10 Q
(their Jupiter client software,) 328.28 77.47 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "4" 4
%%Page: "5" 5
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(5/12) 540.64 56.83 T
3 11 Q
(\245) 53.86 731.47 T
2 10 Q
(objects maintained by users,) 64.66 731.47 T
3 11 Q
(\245) 53.86 718.47 T
2 10 Q
(objects maintained by the system administrators, and) 64.66 718.47 T
3 11 Q
(\245) 53.86 705.47 T
2 10 Q
(external eavesdroppers.) 64.66 705.47 T
0.25 0.28 (For the purpose of driving the design of the audio/video) 53.86 686.47 B
0.25 0.2 (architecture, the key security issue revolves around trust.) 53.86 675.47 B
0.25 0.08 (W) 53.86 664.47 B
0.25 0.08 (e need to know which principals must trust which others) 62.58 664.47 B
0.25 0.19 (to keep what guarantees. The general applicability of our) 53.86 653.48 B
0.25 0.26 (design is improved whenever we can reduce the level of) 53.86 642.48 B
0.25 0.21 (trust required without also reducing the usefulness of the) 53.86 631.48 B
(system.) 53.86 620.48 T
0.25 0.08 (Users must trust their own clients, like other software they) 53.86 601.48 B
0.25 0.05 (run on their local machines, more-or) 53.86 590.48 B
0.25 0.05 (-less absolutely: not to) 202.69 590.48 B
0.25 0.07 (damage their local computational resources, not to deceive) 53.86 579.48 B
0.25 0.01 (them about what local resources are being accessed in what) 53.86 568.48 B
0.25 0.11 (way) 53.86 557.48 B
0.25 0.11 (, etc. The client is the user) 70.19 557.48 B
0.25 0.11 (\325) 180.21 557.48 B
0.25 0.11 (s only representative to the) 183.1 557.48 B
-0.19 (rest of the system, the sole conduit for the user) 53.86 546.48 P
-0.19 (\325) 239.16 546.48 P
-0.19 (s expressions) 241.94 546.48 P
0.02 (of intent. W) 53.86 535.48 P
0.02 (e therefore equate the client with the user) 101.14 535.48 P
0.02 (, mer) 266.08 535.48 P
0.02 (g-) 286.47 535.48 P
0.25 0.08 (ing them into a single ef) 53.86 524.48 B
0.25 0.08 (fective principal for the remainder) 153.88 524.48 B
(of the analysis.) 53.86 513.48 T
0.25 0.3 (Users need not trust the server and its maintainers com-) 53.86 494.48 B
0.03 (pletely) 53.86 483.48 P
0.03 (. Of course, the system maintainers can inspect, mod-) 80.43 483.48 P
-0.17 (ify) 53.86 472.48 P
-0.17 (, or destroy anything \322owned\323 by users in the database, so) 64.32 472.48 P
0.25 0 (users must certainly trust them to the degree that they value) 53.86 461.48 B
0.25 0.2 (what is stored there. W) 53.86 450.48 B
0.25 0.2 (e assume therefore that users only) 151.14 450.48 B
0.25 0.1 (give information to the server that they trust it to maintain) 53.86 439.48 B
(for them.) 53.86 428.48 T
0.25 0.15 (The system maintainers do not,) 53.86 409.48 B
0 F
0.25 0.15 (a priori) 187.55 409.48 B
2 F
0.25 0.15 (, have any control) 219.84 409.48 B
0.25 0.1 (over the local resources of the user) 53.86 398.48 B
0.25 0.1 (, including in particular) 197.85 398.48 B
(the A/V capture and display devices on the user) 53.86 387.48 T
(\325) 245.3 387.48 T
(s machine.) 248.08 387.48 T
1 9 Q
0.25 0.08 (Requirement:) 64.66 372.14 B
4 F
0.25 0.08 ( The design should keep as much local) 123.67 372.14 B
0.22 (device control as possible in the hands of the user; the) 64.66 361.64 P
-0.14 (server should not control, for example, whether or not a) 64.66 351.14 P
0.01 (user) 64.66 340.64 P
0.01 (\325) 82.5 340.64 P
0.01 (s audio or video signals are transmitted to the net-) 84.33 340.64 P
(work.) 64.66 330.14 T
2 10 Q
-0.23 (User) 53.86 310.98 P
-0.23 (-maintained applications embody) 72.54 310.98 P
-0.23 (, in ef) 204.75 310.98 P
-0.23 (fect, the intent of) 227.17 310.98 P
0.25 0.35 (the user who created them; through the appearance and) 53.86 299.98 B
0.25 0.35 (behavior of an application, authors make both tacit and) 53.86 288.98 B
0.25 0.38 (explicit statements about what guarantees they of) 53.86 277.97 B
0.25 0.38 (fer to) 271.24 277.97 B
0.25 0.28 (users. For example, consider the two-person A/V tunnel) 53.86 266.97 B
0.25 0.44 (application described earlier) 53.86 255.97 B
0.25 0.44 (. In addition to other) 180 255.97 B
0.25 0.44 (, less) 272.33 255.97 B
0.25 0.23 (explicit guarantees, it is represented as providing private) 53.86 244.97 B
(communications between its two users.) 53.86 233.97 T
0.25 0.12 (Before a user can believe these statements, he or she must) 53.86 214.97 B
0.25 0.2 (f) 53.86 203.97 B
0.25 0.2 (irst trust the application\325) 56.84 203.97 B
0.25 0.2 (s author to honestly present and) 160.46 203.97 B
0.25 0.04 (correctly implement their intent. How easily such trust will) 53.86 192.97 B
0.25 0.02 (be granted is a function of the reputations of the author and) 53.86 181.97 B
-0.16 (application, and of what users have at stake if that trust turns) 53.86 170.97 P
(out to be misplaced.) 53.86 159.97 T
-0.15 (The MOO object system and programming language make a) 53.86 140.97 P
0.25 0.22 (fundamental security guarantee, that code written by one) 53.86 129.97 B
0.25 0.09 (user cannot modify) 53.86 118.97 B
0.25 0.09 (, destroy) 132.6 118.97 B
0.25 0.09 (, or in some cases even inspect) 167.48 118.97 B
(data owned by any other user) 53.86 107.97 T
(.) 170.78 107.97 T
1 9 Q
0.25 0.1 (Requirement:) 64.66 92.64 B
4 F
0.25 0.1 ( Users of an application should only be) 123.87 92.64 B
(putting at risk data that they explicitly make available.) 64.66 82.14 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
2 10 Q
0.25 0.28 (Returning to the A/V tunnel example, a user should risk) 317.48 731.47 B
0.25 0.11 (only whatever audio and video signals he or she explicitly) 317.48 720.47 B
-0.05 (enables the application to access; the application should not,) 317.48 709.47 P
0.25 0.06 (in particular) 317.48 698.47 B
0.25 0.06 (, somehow gain access to the user) 366.7 698.47 B
0.25 0.06 (\325) 505.77 698.47 B
0.25 0.06 (s other data.) 508.61 698.47 B
0.19 (Given this, a user might reasonably be willing to use even a) 317.48 687.47 P
0.25 0.01 (completely unknown \050and therefore completely untrustwor-) 317.48 676.47 B
-0.23 (thy\051 tunnel application for communications that are not at all) 317.48 665.47 P
0.25 0.29 (sensitive. If the application works at all according to its) 317.48 654.48 B
0.25 0.12 (stated guarantees, the user will succeed in communicating) 317.48 643.48 B
0.25 0.12 (with the intended party) 317.48 632.48 B
0.25 0.12 (. At worst, no such communication) 412.93 632.48 B
0.04 (will take place and the harmless A/V signals may have been) 317.48 621.48 P
(distributed arbitrarily widely) 317.48 610.48 T
(.) 431.82 610.48 T
0.25 0.39 (The code and objects maintained by the Jupiter system) 317.48 591.48 B
-0.17 (administrators are shared resources, providing services to all) 317.48 580.48 P
0.06 (users, both individually and as a group. Clearly) 317.48 569.48 P
0.06 (, the applica-) 506.38 569.48 P
0.25 0.2 (bility and robustness of the system is greatly improved if) 317.48 558.48 B
(these) 317.48 547.48 T
0 F
(cor) 340.53 547.48 T
(e objects) 353.49 547.48 T
2 F
( are not required to trust the users.) 388.76 547.48 T
1 9 Q
0.25 0.58 (Requirement:) 328.28 532.14 B
4 F
0.25 0.58 ( Core objects should be protected) 393.24 532.14 B
0.25 0.04 (against misbehavior by any user) 328.28 521.64 B
0.25 0.04 (, client, or application.) 458.96 521.64 B
0.25 0.29 (In addition, misbehavior by any one user should be) 328.28 511.14 B
0.25 0.25 (prevented, to the extent possible, from reducing the) 328.28 500.64 B
(usefulness of the system to others.) 328.28 490.14 T
2 10 Q
0.25 0.09 (Finally) 317.48 470.98 B
0.25 0.09 (, we consider the trust situation for user) 345.84 470.98 B
0.25 0.09 (-maintained) 509.7 470.98 B
0.25 0.14 (applications. Since the very essence of an application, the) 317.48 459.98 B
0.25 0.15 (code and data in its objects, is totally under the control of) 317.48 448.98 B
0.25 0.07 (the server \050and thus of the system administrators\051, applica-) 317.48 437.98 B
0.25 0.14 (tions must fundamentally trust the server and core objects) 317.48 426.98 B
-0.1 (absolutely) 317.48 415.98 P
-0.1 (. Users and other applications, however) 357.94 415.98 P
-0.1 (, cannot be) 515.03 415.98 P
0.25 0.04 (so relied upon; robust applications must protect themselves) 317.48 404.98 B
(against misbehavior by these principals.) 317.48 393.98 T
1 9 Q
0.25 0.06 (Requirement:) 328.28 378.64 B
4 F
0.25 0.06 ( The same basic MOO security guaran-) 387.01 378.64 B
0.25 0.07 (tees described for users should apply as well to appli-) 328.28 368.14 B
0.25 0.78 (cations; they should only be risking release of) 328.28 357.64 B
(information that they explicitly reveal.) 328.28 347.14 T
2 10 Q
0.25 0.05 (Of course, any information that a user presents to an appli-) 317.48 327.98 B
0.25 0.01 (cation must in general also be treated as untrustworthy; this) 317.48 316.98 B
(is rarely) 317.48 305.98 T
(, however) 349.32 305.98 T
(, a threat to the integrity of applications.) 388.35 305.98 T
0.02 (The \336nal principal to consider is external eavesdroppers. By) 317.48 286.98 P
-0.12 (and lar) 317.48 275.97 P
-0.12 (ge, the use of encryption on all Jupiter network traf) 344.67 275.97 P
-0.12 (\336c) 548.42 275.97 P
-0.22 (is suf) 317.48 264.97 P
-0.22 (\336cient to thwart such unauthorized listening. W) 338.47 264.97 P
-0.22 (e do not) 526.64 264.97 P
(further consider eavesdroppers as a threat.) 317.48 253.97 T
1 9 Q
(AN OVER) 317.48 232.64 T
(VIEW OF THE ARCHITECTURE) 358.32 232.64 T
2 10 Q
0.25 0.11 (The earlier sections of the paper lay out in some detail the) 317.48 220.97 B
0.25 0.01 (context for our redesign of the Jupiter audio/video architec-) 317.48 209.97 B
0.25 0.35 (ture. In this section, we describe the new design in two) 317.48 198.97 B
-0.01 (parts. First, we describe four new user interface components) 317.48 187.97 P
0.25 0.2 (that together provide users with the levels of information) 317.48 176.97 B
0.25 0.13 (and control indicated by the earlier requirements analysis.) 317.48 165.97 B
0.25 0.18 (W) 317.48 154.97 B
0.25 0.18 (e then give a high-level introduction to the key compo-) 326.3 154.97 B
0.25 0.28 (nents of the programming interface provided to applica-) 317.48 143.97 B
0.25 0.88 (tions. The next section presents the details of the) 317.48 132.97 B
(programming interface.) 317.48 121.97 T
1 9 Q
(The User Interface) 317.48 100.64 T
2 10 Q
0.25 0.13 (All transmission of a client\325) 317.48 88.97 B
0.25 0.13 (s audio and video signals, and) 433.39 88.97 B
0.25 0.03 (all audio and video output to a client\325) 317.48 77.97 B
0.25 0.03 (s local devices, is tied) 469.36 77.97 B
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "5" 5
%%Page: "6" 6
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(6/12) 540.64 56.83 T
2 F
0.25 0.03 (to widgets that Jupiter applications may include in the win-) 53.86 596.36 B
0.25 0.01 (dows they open on the user) 53.86 585.36 B
0.25 0.01 (\325) 164.87 585.36 B
0.25 0.01 (s display) 167.66 585.36 B
0.25 0.01 (. In this way) 202.62 585.36 B
0.25 0.01 (, users can) 252.28 585.36 B
0.25 0.05 (always easily control whether or not their audio or video is) 53.86 574.36 B
0.25 0.12 (being sent anywhere and to choose exactly which applica-) 53.86 563.36 B
0.25 0.01 (tions they are entrusting it to. It also makes it easy for them) 53.86 552.36 B
0.25 0.44 (to identify which applications are currently delivering) 53.86 541.36 B
-0.23 (images or sounds, and to shut them of) 53.86 530.36 P
-0.23 (f when they don\325) 203.71 530.36 P
-0.23 (t wish) 270.86 530.36 P
0.25 0.54 (to see or hear them. There are four new GUI widgets) 53.86 519.36 B
-0.24 (involved:) 53.86 508.36 P
0 F
-0.24 (cameras) 93.9 508.36 P
2 F
-0.24 (,) 127.78 508.36 P
0 F
-0.24 (micr) 132.54 508.36 P
-0.24 (ophones) 150.5 508.36 P
2 F
-0.24 (,) 183.83 508.36 P
0 F
-0.24 (video panes) 188.6 508.36 P
2 F
-0.24 (, and) 235.85 508.36 P
0 F
-0.24 (speakers) 257.31 508.36 P
2 F
-0.24 (.) 292.3 508.36 P
0.25 0.05 (Camera and Microphone widgets allow the user to monitor) 53.86 489.36 B
0.25 0.05 (and control the transmission of their local audio and video,) 53.86 478.36 B
0 (respectively) 53.86 467.36 P
0 (. These button-like widgets each contain an icon) 101.53 467.36 P
0.25 0.29 (\050provided by the user) 53.86 456.36 B
0.25 0.29 (\325) 146.28 456.36 B
0.25 0.29 (s client program\051 representing the) 149.34 456.36 B
0.25 0.22 (local audio or video device they control. As with normal) 53.86 445.36 B
0.25 0.03 (buttons, the application can provide its own textual label or) 53.86 434.36 B
-0.21 (other content in addition to the icon. When one of these wid-) 53.86 423.36 P
0.25 0.13 (gets is turned \322on\323, the icon\325) 53.86 412.36 B
0.25 0.13 (s foreground and background) 173.31 412.36 B
0.25 0.32 (colors are reversed, as shown in Figure) 53.86 401.36 B
0.25 0.32 (1, to signal that) 226.96 401.36 B
(audio/video is being sent.) 53.86 390.36 T
0.25 0.34 (Camera widgets act as relatively simple toggle buttons.) 53.86 371.36 B
0.25 0.14 (Each time the user clicks on them, they switch from on to) 53.86 360.36 B
0.25 0.05 (of) 53.86 349.36 B
0.25 0.05 (f and back. Microphone widgets support the same sort of) 62.11 349.36 B
0.25 0.07 (toggling, but they can also be used as) 53.86 338.36 B
0 F
0.25 0.07 (push-to-talk) 210.42 338.36 B
2 F
0.25 0.07 ( buttons.) 259.56 338.36 B
0.25 0.02 (In that case, pressing the button enables sending) 53.86 327.36 B
0 F
0.25 0.02 (only) 251.92 327.36 B
2 F
0.25 0.02 ( to the) 269.2 327.36 B
0.25 0.15 (destination associated with that widget, temporarily inter-) 53.86 316.36 B
-0.06 (rupting transmissions associated with any other \322on\323 Micro-) 53.86 305.36 P
0.25 0.02 (phone widgets for that device. When the mouse is released,) 53.86 294.36 B
0.25 0.11 (the interrupted transmissions are resumed. Because of this) 53.86 283.36 B
0.17 (press-to-talk functionality) 53.86 272.36 P
0.17 (, users must hold down a shift key) 156.97 272.36 P
0.25 0.46 (while clicking on Microphones in order to \322lock them) 53.86 261.36 B
(down\323 like Camera widgets.) 53.86 250.36 T
-0.18 (In the process of turning a Camera or Microphone widget on) 53.86 231.36 P
0.25 0.14 (or of) 53.86 220.36 B
0.25 0.14 (f, there may be some latency introduced to notify the) 73.78 220.36 B
0.25 0.26 (server and acquire the appropriate multicast address and) 53.86 209.36 B
0.25 0.29 (encryption key information. This is ref) 53.86 198.36 B
0.25 0.29 (lected in the user) 221.01 198.36 B
0.25 0.02 (interface by switching background of the widget\325) 53.86 187.36 B
0.25 0.02 (s icon to a) 253.01 187.36 B
0.25 0.12 (stippled color f) 53.86 176.36 B
0.25 0.12 (irst, to show that the request is in progress;) 116.21 176.36 B
0.25 0.16 (later) 53.86 165.36 B
0.25 0.16 (, it switches either to the reversed icon, if turning the) 72.05 165.36 B
0.25 0.11 (widget on, or to the normal one, if turning it of) 53.86 154.36 B
0.25 0.11 (f. The stip-) 249 154.36 B
0.25 0.07 (pled background signals the user that their request is being) 53.86 143.36 B
0.25 0.17 (processed, but that the audio or video transmission hasn\325) 53.86 132.36 B
0.25 0.17 (t) 292.02 132.36 B
0.25 0.04 (actually changed state yet. This latency is typically under a) 53.86 121.36 B
0.25 0.35 (second, which is satisfactory for most cases but not for) 53.86 110.36 B
0.25 0.05 (push-to-talk. As described later) 53.86 99.36 B
0.25 0.05 (, our design allows push-to-) 181.19 99.36 B
0.25 0.06 (talk buttons to avoid communications latency after the f) 53.86 88.36 B
0.25 0.06 (irst) 281.85 88.36 B
(time they are used.) 53.86 77.36 T
53.86 603.02 294.8 738.14 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 X
0 0 0 1 0 0 0 K
%%BeginBinary:  788      
109 31 109 31 0 140.05 709.13
 BEGINBITMAPTRUECOLORc












;j
P&

<Z
P$

J"
P)8B

>z"
P E78B







J$
9000000

J&?aC#J&
80000E700000000>0000E70000

J(>(B"J"8"
70000E700E70000E700E7E7E70000E7?E7E7

J&D"J"B"
8E700E700E7E770000

J&D(9$9#;%8#;%8#?"
800E700E70000000000E70000000000000000000000000000000000000000

J"8&@'8"9$:$:*:*=#
60000E70000E700000000E7E7E700E7E7E7E700E700E7E7E700E7E700E700E7E7E700E7E70000E7

J":$A%?$J$=#
5000000E7E7E7E7E700E7E7<E7000000E7

J":$J%J$=#
400E7E7E78E7E70000<00E7E7E700

I":"J$J#
00E7;00E7E7HE700

G#I$;&8(8":);-;"
0000000000E70000E7000000E7E700000000E70000E7E70000E7E70000E7E70000E70000000000

E$9"F$<s8';#8#=#8t8#
0000E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7

C)
0000E7E7E7E7E7E7

C#=#
E7E7E7E7







>z
P 8B

="
8B

<j
P$

;Z
P&








ENDBITMAP
%%EndBinary
%%BeginBinary:  1297     
109 34 109 34 0 139.05 667.45
 BEGINBITMAPTRUECOLORc















<j
P&

=Z
P$

J"
P*8B

?z"
P E78B




A5
700E700E700E700E700E700E700E700E700E700E700E700

A5
8E700E700E700E700E700E700E700E7000000E700E700E700

A5:aC#J&
800E700E700E700E700E700E700E70000E70000E700E700E70000>0000E70000

A5:(B"J"8"
8E700E700E700E700E700E700E70000E700E70000E700E700E700E7E7E70000E7?E7E7

A5?"J"B"
800E700E700E700E700E700E70000E700E700E70000E700E7E770000

A5?(9$9#;%8#;%8#?"
8E700E700E700E700E700E700E70000E700E70000E700E70000000000E70000000000000000000000000000000000000000

A.8*<'8"9$:$:*:*=#
00E700E700E700E700E700E70000E70000E700E700E700000000E7E7E700E7E7E7E700E700E7E7E700E7E700E700E7E7E700E7E70000E7

A-:)<%?$J$=#
E700E700E700E700E700E7000000E700E700E700E7E7E7E700E7E7<E7000000E7

A,:*H%J$=#
00E700E700E700E700E700E700E700E700E700E7E7E70000<00E7E7E700

A+:+H$J#
E700E700E700E700E700E700E700E700E700E70000E7E7HE700

A*;+:$;&8(8":);-;"
00E700E700E700000000E700E700E700E700E7000000E70000E7000000E7E700000000E70000E7E70000E7E70000E7E70000E70000000000

A)9"8+:$<s8';#8#=#8t8#
E700E700E70000E7E7E700E700E700E700E700E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7

A'9":+
00E7000000E7E700E700E700E700E700E7

A5
8E700E700E700E700E700E700E700E700E700E700E700E700

Bz
7E7




?z
P 8B

>"
8B

=j
P$

<Z
P&














ENDBITMAP
%%EndBinary
%%BeginBinary:  788      
107 32 107 32 0 140.05 628.26
 BEGINBITMAPTRUECOLORc












;j
P&

<Z
P$

J"
P)8B

>z"
P E78B




@j
8

J$
9E7E7E7

J&?aC#J&
8E7E700E7E70000>0000E70000

J(>(B"J"8"
7E7E700E700E7E7E700E7E7E70000E7?E7E7

J&D"J"B"
800E700E700E770000

J&D(9$9#;%8#;%8#?"
8E700E700E700000000E70000000000000000000000000000000000000000

J"8&@'8"9$:$:*:*=#
6E7E700E7E70000000000E7E7E700E7E7E7E700E700E7E7E700E7E700E700E7E7E700E7E70000E7

J":$A%?$J$=#
5E7E7E700E7E7E7E700E7E7<E7000000E7

J":$J%J$=#
4E70000008E7E70000<00E7E7E700

I":"J$J#
E700;00E7E7HE700

G#I$;&8(8":);-;"
E7E7000000E70000E7000000E7E700000000E70000E7E70000E7E70000E7E70000E70000000000

E$9"F$<s8';#8#=#8t8#
E7E70000E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7

C#a
E7E7

C#=#
00000000

@z
8E7




>z
P 8B

="
8B

<j
P$

;Z
P&











ENDBITMAP
%%EndBinary
2 10 Q
(Of) 119.52 722 T
(f:) 129.89 722 T
(Pending:) 100.44 681.75 T
(On:) 121 641.5 T
53.86 610.58 294.8 621.92 R
7 X
V
5 F
0 X
(Figur) 71.53 615.25 T
(e 1:) 95.24 615.25 T
2 F
(The three states of a Microphone widget.) 113 615.25 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
0 0 612 792 C
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
2 10 Q
0 X
0 0 0 1 0 0 0 K
0.25 0.09 (Because users\325 own client programs provide the icon, they) 317.48 731.47 B
0.25 0.13 (can be sure that all genuine Camera and Microphone wid-) 317.48 720.47 B
-0.14 (gets will be recognizable; if there are no such widgets in any) 317.48 709.47 P
0.12 (of the Jupiter windows on the screen, or if all of them are in) 317.48 698.47 P
0.25 0.11 (the \322of) 317.48 687.47 B
0.25 0.11 (f\323 state, then the user knows that their audio and/or) 345.84 687.47 B
0.25 0.31 (video signal is not being transmitted. Further) 317.48 676.47 B
0.25 0.31 (, the client) 512.57 676.47 B
0.25 0.12 (guarantees that all Camera and Microphone widgets begin) 317.48 665.47 B
0.25 0.07 (in the \322of) 317.48 654.48 B
0.25 0.07 (f\323 state when the window containing them is f) 356.29 654.48 B
0.25 0.07 (irst) 545.43 654.48 B
0.25 0.1 (displayed, and only the user can turn them on. This means) 317.48 643.48 B
0.25 0.15 (that an explicit user action is always required before their) 317.48 632.48 B
0.25 0.23 (audio or video is transmitted. When such a button is dis-) 317.48 621.48 B
0.25 0.09 (played by an application, the user can decide whether they) 317.48 610.48 B
0.25 0.26 (trust that application enough to allow it to send audio or) 317.48 599.48 B
(video on their behalf.) 317.48 588.48 T
0.25 0.39 (V) 317.48 569.48 B
0.25 0.39 (ideoPane widgets are used to display incoming video) 324.49 569.48 B
0.25 0.12 (streams. Each V) 317.48 558.48 B
0.25 0.12 (ideoPane is associated with a single video) 384.39 558.48 B
0.25 0.38 (source at any given time. It resizes the incoming video) 317.48 547.48 B
0.25 0.04 (stream to f) 317.48 536.48 B
0.25 0.04 (it in the space available, if necessary) 360.65 536.48 B
0.25 0.04 (, and can be) 509.46 536.48 B
0.25 0.12 (set to display the video in either grayscale or color) 317.48 525.48 B
0.25 0.12 (. It also) 527.27 525.48 B
0.25 0.03 (takes care of any necessary dithering on displays of limited) 317.48 514.48 B
(depth.) 317.48 503.48 T
0.25 0.04 (A Speaker widget acts as a border around any other collec-) 317.48 484.48 B
0.25 0.11 (tion of widgets. The border highlights whenever the client) 317.48 473.48 B
-0.12 (plays audio from one of the sources associated with the wid-) 317.48 462.48 P
0.25 0.15 (get. The client will not play any audio stream through the) 317.48 451.48 B
0.25 0.22 (local speaker unless there is a Speaker widget associated) 317.48 440.48 B
0.25 0.13 (with the source of that stream in some open window) 317.48 429.48 B
0.25 0.13 (. This) 534.74 429.48 B
0.25 0.31 (ensures that users can always identify the source of any) 317.48 418.48 B
0.25 0.16 (audible sounds and also guarantees that they have control) 317.48 407.48 B
0.25 0.26 (over whether the sounds continue to be played: they can) 317.48 396.48 B
(simply close any of) 317.48 385.48 T
(fending windows.) 395.35 385.48 T
1 9 Q
(The Media Coordination System) 317.48 364.14 T
2 10 Q
0.05 (Not all Jupiter audio and video transmissions originate from) 317.48 352.48 P
-0.04 (users, and not all are received only by them. The new audio/) 317.48 341.48 P
0.25 0.12 (video coordination system thus generalizes away from the) 317.48 330.48 B
0.25 0.45 (specif) 317.48 319.48 B
0.25 0.45 (ic widgets described above, to the more abstract) 343.49 319.48 B
0.25 0.12 (notions of) 317.48 308.48 B
0 F
0.25 0.12 (sour) 362.02 308.48 B
0.25 0.12 (ces) 379.89 308.48 B
2 F
0.25 0.12 ( and) 393.01 308.48 B
0 F
0.25 0.12 (sinks) 413.52 308.48 B
2 F
0.25 0.12 (. For active Camera or Micro-) 434.1 308.48 B
-0.19 (phone widgets, the user) 317.48 297.48 P
-0.19 (\325) 411.72 297.48 P
-0.19 (s database object acts as a source; in) 414.5 297.48 P
0.08 (the case of Speakers and V) 317.48 286.48 P
0.08 (ideoPanes, the user object acts as) 425.29 286.48 P
0.25 0.08 (a sink. Other database objects may be sources and sinks as) 317.48 275.47 B
0.09 (well. An example from the applications mentioned earlier is) 317.48 264.47 P
-0.19 (the tape recorder object. It could be both a source and a sink,) 317.48 253.47 P
0.25 0.28 (depending on whether it was being used for playback or) 317.48 242.47 B
(recording.) 317.48 231.47 T
0.25 0.12 (A source can have several) 317.48 212.47 B
0 F
0.25 0.12 (devices) 428.74 212.47 B
2 F
0.25 0.12 ( associated with it; each) 459.01 212.47 B
-0.01 (one is capable of generating a stream of audio or video data.) 317.48 201.47 P
0.25 0.15 (For a user) 317.48 190.47 B
0.25 0.15 (, these devices correspond to the physical audio) 359.08 190.47 B
0.25 0.57 (and video inputs on their workstation. A virtual tape) 317.48 179.47 B
-0.18 (recorder object might have one device for each stream that it) 317.48 168.47 P
(is currently playing back.) 317.48 157.47 T
0.25 0.11 (Sources transmit to sinks through) 317.48 138.47 B
0 F
0.25 0.11 (channels) 458.96 138.47 B
2 F
0.25 0.11 (, an abstraction) 495.41 138.47 B
0.25 0.07 (in the database representing the pipes through which audio) 317.48 127.47 B
0.25 0.08 (and video streams f) 317.48 116.47 B
0.25 0.08 (low) 397.32 116.47 B
0.25 0.08 (. Channels have a) 411.92 116.47 B
0 F
0.25 0.08 (membership) 487.47 116.47 B
2 F
0.25 0.08 (, list-) 537.19 116.47 B
0.25 0.15 (ing the sources and sinks that are allowed to access them;) 317.48 105.47 B
0.25 0.1 (the membership list can be either static or dynamic. Chan-) 317.48 94.47 B
0.25 0.05 (nels with dynamic membership have an associated) 317.48 83.47 B
0 F
0.25 0.05 (channel) 526.45 83.47 B
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "6" 6
%%Page: "7" 7
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(7/12) 540.64 56.83 T
-0.22 (manager) 53.86 499.03 P
2 F
-0.22 (, an object that is responsible for notifying the coor-) 89.01 499.03 P
0.25 0.22 (dination system whenever the membership changes. Any) 53.86 488.03 B
0.25 0.18 (Jupiter object can act as a channel manager; for example,) 53.86 477.03 B
0.16 (each room in Jupiter might be manager for a channel whose) 53.86 466.03 P
0.25 0.37 (membership contains all of the user objects within that) 53.86 455.03 B
(room.) 53.86 444.03 T
0.25 0.31 (Sources, sinks, and channel managers never) 53.86 425.03 B
0.25 0.31 (, in general,) 243.4 425.03 B
0.25 0.04 (communicate with each other directly; instead, they all call) 53.86 414.03 B
0.25 0.12 (\050and are called by\051 a single, coordinating object called the) 53.86 403.03 B
0 F
-0.05 (key manager) 53.86 392.03 P
2 F
-0.05 (. The key manager is responsible for translating) 104.63 392.03 P
0.25 0.2 (the abstract requests made by these objects into actual IP) 53.86 381.03 B
0.25 0.07 (multicast addresses and encryption keys to use when send-) 53.86 370.03 B
0.16 (ing and receiving audio/video data. It also coordinates pass-) 53.86 359.03 P
(ing a small amount of) 53.86 348.03 T
0 F
(in-band) 143.58 348.03 T
2 F
( data from sources to sinks.) 174.69 348.03 T
-0.02 (A diagram of the communication patterns within the coordi-) 53.86 329.03 P
0.25 0.29 (nation system appears in Figure) 53.86 318.03 B
0.25 0.29 (2. The) 193.8 318.03 B
0 F
0.25 0.29 (transmitters) 224.37 318.03 B
2 F
0.25 0.29 ( and) 276.17 318.03 B
0 F
(r) 53.86 307.03 T
(eceivers) 57.38 307.03 T
2 F
( depicted there are described in the next section.) 90.14 307.03 T
1 9 Q
(DET) 53.86 285.7 T
(AILS OF THE PROGRAMMING INTERF) 71.19 285.7 T
(ACE) 234.7 285.7 T
2 10 Q
0.25 0.11 (W) 53.86 274.03 B
0.25 0.11 (ith the context provided by the previous section, we can) 63.01 274.03 B
-0.04 (now describe in detail the programming interface to the new) 53.86 263.03 P
0.25 0.25 (media coordination system. In this section, we cover the) 53.86 252.03 B
-0.09 (interfaces provided to sources, sinks, and channel managers.) 53.86 241.03 P
0.25 0.36 (The next section describes the implementation of those) 53.86 230.03 B
0.06 (interfaces inside the key manager) 53.86 219.03 P
0.06 (. Applications\325 interface to) 187.41 219.03 P
0.25 0.08 (the four new widget types and the server) 53.86 208.03 B
0.25 0.08 (-side implementa-) 220.92 208.03 B
(tions of the widgets themselves are described thereafter) 53.86 197.03 T
(.) 275.2 197.03 T
1 9 Q
(Sources) 53.86 175.7 T
2 10 Q
0.25 0.12 (The methods that sources call on the key manager and the) 53.86 164.03 B
0.25 0.15 (notif) 53.86 153.03 B
0.25 0.15 (ications that it sends back to them are summarized in) 72.94 153.03 B
0.2 (T) 53.86 142.03 P
0.2 (able) 59.27 142.03 P
0.2 (1. In all of the method calls, the source object itself is) 78.43 142.03 P
0.25 0.02 (passed to the key manager as an implicit parameter \050via the) 53.86 131.03 B
(MOO language\325) 53.86 120.03 T
(s built-in) 118.57 120.03 T
4 9 Q
(caller) 156.91 120.03 T
2 10 Q
( variable\051.) 178.41 120.03 T
0.06 (A source declares its intent to provide an A/V signal by cre-) 53.86 101.03 P
0.25 0.57 (ating a) 53.86 90.03 B
0 F
0.25 0.57 (transmitter) 88.34 90.03 B
2 F
0.25 0.57 ( and associating it with one of the) 139.04 90.03 B
0.02 (source\325) 53.86 79.03 P
0.02 (s devices. A source typically creates a transmitter for) 82.74 79.03 P
53.86 505.7 558.42 738.14 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1.5 H
2 Z
0 X
0 0 0 1 0 0 0 K
90 450 2.87 16.07 374.72 639.43 A
369.95 621.51 374.49 657.33 R
7 X
V
54.86 508.54 558.42 521.91 R
V
5 10 Q
0 X
(Figur) 106.6 515.24 T
(e 2:) 130.31 515.24 T
2 F
(Communication in the coordination system;) 148.08 515.24 T
4 9 Q
(D) 326.14 515.24 T
2 10 Q
( = device,) 332.64 515.24 T
4 9 Q
(T) 374.38 515.24 T
2 10 Q
( = transmitter) 379.88 515.24 T
(, and) 433.45 515.24 T
4 9 Q
(R) 455.39 515.24 T
2 10 Q
( = receiver) 461.89 515.24 T
(.) 504.18 515.24 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
242.11 655.5 M
 255.23 655.5 242.93 649.36 255.14 649.38 D
N
242.11 655.5 238.01 655.5 2 L
N
242.11 623.35 M
 255.23 623.35 242.93 629.49 255.14 629.47 D
N
242.11 623.35 238.01 623.35 2 L
N
90 450 2.87 16.07 237.6 639.43 A
370.21 655.5 M
 357.09 655.5 369.39 649.36 357.18 649.38 D
N
370.21 655.5 374.31 655.5 2 L
N
370.21 623.35 M
 357.09 623.35 369.39 629.49 357.18 629.47 D
N
370.21 623.35 374.31 623.35 2 L
N
255.04 649.38 357.18 649.38 2 L
N
255.04 629.48 357.24 629.48 2 L
N
137.5 528.87 475.63 684.5 18 RR
2 H
N
4 14 Q
(Channel) 280.63 635.12 T
1.5 H
90 450 2.87 16.07 374.72 591.43 A
369.95 573.51 374.49 609.33 R
7 X
V
242.11 607.5 M
 255.23 607.5 242.93 601.36 255.14 601.38 D
0 X
N
242.11 607.5 238.01 607.5 2 L
N
242.11 575.35 M
 255.23 575.35 242.93 581.49 255.14 581.47 D
N
242.11 575.35 238.01 575.35 2 L
N
90 450 2.87 16.07 237.6 591.43 A
370.21 607.5 M
 357.09 607.5 369.39 601.36 357.18 601.38 D
N
370.21 607.5 374.31 607.5 2 L
N
370.21 575.35 M
 357.09 575.35 369.39 581.49 357.18 581.47 D
N
370.21 575.35 374.31 575.35 2 L
N
255.04 601.38 357.18 601.38 2 L
N
255.04 581.48 357.24 581.48 2 L
N
(Channel) 280.63 587.12 T
4 12 Q
(T) 192.83 647.62 T
189.62 645.12 203.37 658.87 R
1 H
N
(R) 433.67 651 T
431.13 648.5 444.88 662.25 R
N
(T) 192.83 618.37 T
189.62 615.87 203.37 629.62 R
N
(T) 192.83 589.12 T
189.62 586.62 203.37 600.37 R
N
(T) 192.83 559.87 T
189.62 557.37 203.37 571.12 R
N
(R) 433.67 628.62 T
431.13 626.12 444.88 639.87 R
N
(R) 433.67 606.25 T
431.13 603.75 444.88 617.5 R
N
(R) 433.67 583.87 T
431.13 581.37 444.88 595.12 R
N
(R) 433.67 561.5 T
431.13 559 444.88 572.75 R
N
502.05 632 544.55 657 R
N
(Sink) 511.63 640.12 T
J
231.66 647.73 240.28 645.14 231.6 642.77 232.53 645.24 4 Y
V
[7.619 7.619] 3.81 I
203.37 652 M
 224.99 650.85 206.84 646 232.52 645.24 D
N
J
422.36 657.41 431.13 655.37 422.61 652.46 423.39 654.98 4 Y
V
[7.968 7.968] 3.984 I
376.75 646.37 M
 416.69 647.6 394.88 652.99 423.37 654.97 D
N
J
502.05 589 544.55 614 R
N
(Sink) 511.63 597.12 T
502.05 549.75 544.55 574.75 R
N
(Sink) 511.63 557.87 T
(Source) 72.87 641.06 T
66.88 632 116.87 658.87 R
N
(Source) 72.87 581.81 T
66.88 572.75 116.87 599.62 R
N
4 9 Q
(D) 118.69 589.94 T
117.25 588.53 126.62 597.9 R
N
(D) 118.69 576.44 T
117.25 575.03 126.62 584.4 R
N
(D) 118.44 642.44 T
117 641.03 126.37 650.4 R
N
J
180.96 654.43 189.62 652 180.99 649.47 181.88 651.96 4 Y
V
[7.004 7.004] 3.502 I
126.37 645.72 M
 156.68 643.35 156.54 651.1 181.87 651.95 D
N
[0.966 4.832] 0.483 I
126.62 593.22 M
 151.5 594.37 138.75 608.87 162.5 608.87 D
N
J
180.94 625.1 189.62 622.75 181.01 620.14 181.88 622.63 4 Y
V
[1.048 5.24] 0.524 I
162.62 608.72 M
 177.41 609.07 169.18 620.67 181.86 622.63 D
N
J
180.26 597.78 188.87 595.15 180.18 592.82 181.13 595.28 4 Y
V
[1.048 5.24] 0.524 I
161.87 609.18 M
 176.66 608.83 168.43 597.23 181.11 595.28 D
N
J
180.99 566.78 189.62 564.25 180.96 561.82 181.87 564.3 4 Y
V
[3.106 5.177] 1.553 I
126.62 579.72 M
 156.71 580.55 156.54 565.76 181.87 564.29 D
N
J
231.62 637.05 240.34 634.84 231.77 632.09 232.6 634.6 4 Y
V
[0.924 4.619] 0.462 I
203.37 622.75 M
 224.99 621.6 206.9 632.78 232.59 634.59 D
N
J
231.64 598.98 240.32 596.58 231.69 594.02 232.57 596.51 4 Y
V
[0.978 4.892] 0.489 I
203.37 593.5 M
 224.99 592.35 206.87 595.91 232.56 596.5 D
N
J
231.63 588.63 240.4 586.62 231.9 583.68 232.67 586.2 4 Y
V
[3.011 5.018] 1.505 I
203.37 564.25 M
 224.99 563.17 206.94 583 232.64 586.19 D
N
J
422.42 635.3 431.13 633 422.53 630.34 423.38 632.84 4 Y
V
[0.974 4.87] 0.487 I
405.5 621.12 M
 422.82 621.34 409.18 631.18 423.36 632.83 D
N
[0.943 4.715] 0.472 I
377.32 632.81 M
 400 634.37 378.75 620.12 406.39 621.15 D
N
J
422.45 613.05 431.12 610.62 422.49 608.09 423.37 610.57 4 Y
V
[0.912 4.558] 0.456 I
406.23 621.15 M
 421.16 621.13 408.96 611.7 423.35 610.57 D
N
J
422.55 568.65 431.12 565.88 422.39 563.69 423.37 566.14 4 Y
V
[1.036 5.179] 0.518 I
377.2 599.43 M
 417.14 600.66 394.94 569.5 423.38 566.12 D
N
J
422.39 590.42 431.12 588.25 422.57 585.46 423.38 587.97 4 Y
V
[2.873 4.788] 1.436 I
377.44 586.56 M
 417.39 587.79 394.98 586.9 423.38 587.96 D
N
J
493.33 564.51 502.04 562.25 493.45 559.55 494.29 562.06 4 Y
V
[1.035 5.174] 0.517 I
444.88 565.87 M
 484.84 567.1 465.38 561.65 494.3 562.04 D
N
J
493.29 598.19 502.04 596.12 493.52 593.24 494.3 595.76 4 Y
V
[3.132 5.219] 1.566 I
444.88 588.25 M
 484.84 589.48 465.38 593.91 494.3 595.74 D
N
J
493.33 608.4 502.04 606.13 493.45 603.44 494.29 605.94 4 Y
V
[1.04 5.199] 0.52 I
444.88 610.62 M
 484.84 611.85 465.38 605.64 494.3 605.93 D
N
J
493.35 651.43 502.05 649.12 493.45 646.46 494.3 648.96 4 Y
V
[6.282 6.282] 3.141 I
444.88 655.37 M
 484.84 656.6 465.38 648.89 494.3 648.96 D
N
J
493.29 641.22 502.05 639.12 493.51 636.26 494.3 638.78 4 Y
V
[1.037 5.184] 0.518 I
444.88 633 M
 484.84 634.23 465.38 637.15 494.3 638.77 D
N
J
4 14 Q
(The Key Manager) 250.63 534.5 T
4 12 Q
(Channel) 228.21 722 T
(Manager) 226.88 710 T
J
223.05 704.06 278.05 734.06 R
N
(Channel) 339.96 722 T
(Manager) 338.63 710 T
J
334.8 704.06 389.8 734.06 R
N
280.81 658.12 278.75 649.38 275.86 657.88 278.38 657.1 4 Y
V
250.55 704.06 M
 252.34 685.86 275.23 688.92 278.39 657.1 D
N
341.05 609.91 338.25 601.38 336.11 610.1 338.54 609.1 4 Y
V
362.3 704.06 M
 362.49 645.65 341.86 668.14 338.57 609.1 D
N
0 0 612 792 C
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
2 10 Q
0 X
0 0 0 1 0 0 0 K
0.25 0.03 (each reason it might wish to send data; for users, for exam-) 317.48 262.2 B
0.25 0.16 (ple, there is one transmitter for each displayed Camera or) 317.48 251.2 B
(Microphone widget.) 317.48 240.2 T
0.25 0.05 (The) 317.48 221.2 B
4 9 Q
0.25 0.05 (set_transmitter_channel\050\051) 335.99 221.2 B
2 10 Q
0.25 0.05 ( method aims a transmitter at) 439.33 221.2 B
0.25 0.02 (a particular channel; sources may only do this if they are in) 317.48 210.2 B
-0.19 (that channel\325) 317.48 199.2 P
-0.19 (s current membership list. Attempts to aim any-) 368.67 199.2 P
0.25 0.2 (where else result in a) 317.48 188.2 B
4 9 Q
0.25 0.2 (transmitters_rejected\050\051) 410.2 188.2 B
2 10 Q
0.25 0.2 ( notif) 504.76 188.2 B
0.25 0.2 (ication;) 527.04 188.2 B
0.25 0.38 (this notif) 317.48 177.2 B
0.25 0.38 (ication is also sent if the channel membership) 356.87 177.2 B
0.25 0.2 (changes at some point and no longer includes the source.) 317.48 166.2 B
0.25 0.21 (The) 317.48 155.2 B
0 F
0.25 0.21 (channel) 336.62 155.2 B
2 F
0.25 0.21 ( ar) 369.75 155.2 B
0.25 0.21 (gument is either the object that will act as) 380.73 155.2 B
0.25 0.23 (channel manager for the channel, or a list of sources and) 317.48 144.2 B
0.25 0.23 (sinks that comprises the static membership. T) 317.48 133.2 B
0.25 0.23 (ransmitters) 511.64 133.2 B
-0.18 (may be aimed at only one channel at a time, but a source can) 317.48 122.2 P
(create multiple transmitters for the same device.) 317.48 111.2 T
0.25 0.25 (Sources identify which transmitters are active by calling) 317.48 92.2 B
4 9 Q
0.25 0.25 (add_broadcaster\050\051) 317.48 81.2 B
2 10 Q
0.25 0.25 ( and) 395.25 81.2 B
4 9 Q
0.25 0.25 (remove_broadcaster\050\051) 416.43 81.2 B
2 10 Q
0.25 0.25 (. The set of) 509.94 81.2 B
5 F
(Key manager methods called by sour) 323.48 494.2 T
(ces) 481.35 494.2 T
4 9 Q
(create_transmitter\050\051) 323.48 481.2 T
6 10 Q
(\336) 404.5 481.2 T
0 F
(transmitter) 416.87 481.2 T
4 9 Q
(set_transmitter_device\050) 323.48 468.2 T
0 10 Q
(transmitter) 417.01 468.2 T
2 F
(,) 461.06 468.2 T
0 F
(device) 466.06 468.2 T
4 9 Q
(\051) 491.6 468.2 T
(set_transmitter_channel\050) 323.48 455.2 T
0 10 Q
(transmitter) 422.52 455.2 T
2 F
(,) 466.57 455.2 T
0 F
(channel) 471.57 455.2 T
4 9 Q
(\051) 503.23 455.2 T
(add_broadcaster\050) 323.48 442.2 T
0 10 Q
(transmitter) 394.01 442.2 T
4 9 Q
(\051) 438.46 442.2 T
6 10 Q
(\336) 443.96 442.2 T
2 F
( {) 453.83 442.2 T
0 F
(addr) 461.13 442.2 T
(ess) 479.65 442.2 T
2 F
(,) 491.87 442.2 T
0 F
(key) 496.87 442.2 T
2 F
(}) 510.19 442.2 T
4 9 Q
(remove_broadcaster\050) 323.48 429.2 T
0 10 Q
(transmitter) 409.01 429.2 T
4 9 Q
(\051) 453.46 429.2 T
6 10 Q
(\336) 458.95 429.2 T
2 F
( {) 468.82 429.2 T
0 F
(addr) 476.12 429.2 T
(ess) 494.64 429.2 T
2 F
(,) 506.86 429.2 T
0 F
(key) 511.86 429.2 T
2 F
(}) 525.18 429.2 T
4 9 Q
(get_transmitter_address\050) 323.48 416.2 T
0 10 Q
(transmitter) 423.51 416.2 T
4 9 Q
(\051) 467.96 416.2 T
6 10 Q
(\336) 473.46 416.2 T
2 F
( {) 483.33 416.2 T
0 F
(addr) 490.63 416.2 T
(ess) 509.15 416.2 T
2 F
(,) 521.37 416.2 T
0 F
(key) 526.37 416.2 T
2 F
(}) 539.69 416.2 T
4 9 Q
(broadcast_value\050) 323.48 403.2 T
0 10 Q
(device) 392.51 403.2 T
2 F
(,) 418.05 403.2 T
0 F
(value) 423.05 403.2 T
4 9 Q
(\051) 444.71 403.2 T
(transmit_value\050) 323.48 390.2 T
0 10 Q
(transmitter) 384.99 390.2 T
2 F
(,) 429.04 390.2 T
0 F
(value) 434.04 390.2 T
2 F
(\051) 455.7 390.2 T
4 9 Q
(destroy_transmitter\050) 323.48 377.2 T
0 10 Q
(transmitter) 403.5 377.2 T
4 9 Q
(\051) 447.95 377.2 T
5 10 Q
(Noti\336cations sent to sour) 323.48 364.2 T
(ces) 429.13 364.2 T
4 9 Q
(use_broadcast_address\050) 323.48 351.2 T
0 10 Q
(device) 422.52 351.2 T
2 F
(,) 448.06 351.2 T
0 F
(addr) 453.06 351.2 T
(ess) 471.58 351.2 T
2 F
(,) 483.8 351.2 T
0 F
(key) 488.8 351.2 T
4 9 Q
(\051) 502.12 351.2 T
(use_transmitter_address\050) 323.48 338.2 T
0 10 Q
(transmitters) 425.51 338.2 T
2 F
(,) 473.85 338.2 T
0 F
(addr) 478.85 338.2 T
(ess) 497.37 338.2 T
2 F
(,) 509.59 338.2 T
0 F
(key) 514.59 338.2 T
4 9 Q
(\051) 527.91 338.2 T
(broadcast_has_receivers\050) 323.48 325.2 T
0 10 Q
(device) 427.02 325.2 T
2 F
(,) 452.55 325.2 T
0 F
(yes_or_no) 457.55 325.2 T
4 9 Q
(\051) 499.21 325.2 T
(transmitters_have_receivers\050) 323.48 312.2 T
0 10 Q
(transmitters) 439.51 312.2 T
2 F
(,) 487.85 312.2 T
0 F
(yes_or_no) 492.85 312.2 T
4 9 Q
(\051) 534.51 312.2 T
(transmitters_rejected\050) 323.48 299.2 T
0 10 Q
(transmitters) 410.5 299.2 T
2 F
(,) 458.84 299.2 T
0 F
(channel) 463.84 299.2 T
4 9 Q
(\051) 495.5 299.2 T
5 10 Q
(T) 321.96 283.2 T
(able 1:) 327.71 283.2 T
2 F
(The programming interface provided for sources.) 358.82 283.2 T
317.48 502.74 317.48 294.99 2 L
V
0.25 H
0 Z
N
560.48 502.74 560.48 294.99 2 L
V
N
317.35 502.87 560.6 502.87 2 L
V
N
317.35 489.87 560.6 489.87 2 L
V
N
317.35 372.87 560.6 372.87 2 L
V
N
317.35 359.87 560.6 359.87 2 L
V
N
317.35 294.87 560.6 294.87 2 L
V
N
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "7" 7
%%Page: "8" 8
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(8/12) 540.64 56.83 T
2 F
0.25 0.22 (active transmitters for a particular device is known as its) 53.86 731.47 B
0 F
0.25 0.11 (br) 53.86 720.47 B
0.25 0.11 (oadcast set) 62.6 720.47 B
2 F
0.25 0.11 (. For Camera and Microphone widgets, these) 108.79 720.47 B
0.25 0.19 (calls are made as the widgets are toggled on and of) 53.86 709.47 B
0.25 0.19 (f. The) 269.72 709.47 B
0.25 0.12 (calls return a new multicast address and encryption key to) 53.86 698.47 B
0.25 0.26 (use for broadcasts from the device. The address and key) 53.86 687.47 B
0.05 (might also change as channel memberships change; the new) 53.86 676.47 P
0.25 0.17 (address and key are delivered to the source with the) 53.86 665.47 B
4 9 Q
0.25 0.17 (use_) 274.78 665.47 B
(broadcast_address\050\051) 53.86 654.48 T
2 10 Q
( noti\336cation.) 136.39 654.48 T
0.25 0.28 (T) 53.86 635.48 B
0.25 0.28 (o support the push-to-talk functionality of Microphone) 59.55 635.48 B
0.01 (widgets, sources must also be able to request an address and) 53.86 624.48 P
0.25 0.45 (key for sending only to a particular channel. The) 53.86 613.48 B
4 9 Q
0.25 0.45 (get_) 275.93 613.48 B
-0.02 (transmitter_address\050\051) 53.86 602.48 P
2 10 Q
-0.02 ( method returns this information. Once) 139.38 602.48 P
-0.24 (the address and key are assigned, the user) 53.86 591.48 P
-0.24 (\325) 219.15 591.48 P
-0.24 (s client can switch) 221.93 591.48 P
-0.11 (in and out of push-to-talk mode without any further commu-) 53.86 580.48 P
0.25 0.38 (nication with the server) 53.86 569.48 B
0.25 0.38 (, thus usually meeting our low-) 157.58 569.48 B
0.25 0.18 (latency goals. If the address or key ever changes due to a) 53.86 558.48 B
0.25 0.08 (change in channel membership, the key manager sends the) 53.86 547.48 B
4 9 Q
(use_transmitter_address\050\051) 53.86 536.48 T
2 10 Q
( noti\336cation.) 158.89 536.48 T
0.25 0.22 (T) 53.86 517.48 B
0.25 0.22 (o allow sources to avoid sending unnecessarily) 59.49 517.48 B
0.25 0.22 (, the key) 258.36 517.48 B
0.22 (manager keeps track of whether receivers, sinks\325 equivalent) 53.86 506.48 P
0.25 0.1 (of transmitters, currently exist for each source/device. The) 53.86 495.48 B
0.25 0.07 (key manager sends the) 53.86 484.48 B
4 9 Q
0.25 0.07 (broadcast_has_receivers\050\051) 149.78 484.48 B
2 10 Q
0.25 0.07 ( notif) 258.14 484.48 B
0.25 0.07 (ica-) 279.67 484.48 B
0.25 0.12 (tion whenever the set of receivers for a device\325) 53.86 473.48 B
0.25 0.12 (s broadcast) 248.66 473.48 B
0.25 0.17 (set starts or stops being empty;) 53.86 462.48 B
4 9 Q
0.25 0.17 (transmitters_have_receiv-) 187.25 462.48 B
(ers\050\051) 53.86 451.48 T
2 10 Q
( is sent similarly for individual transmitters.) 72.35 451.48 T
0.2 (In addition to assigning addresses and keys for sending out-) 53.86 432.48 P
0.25 0.22 (of-band data, the key manager provides a mechanism for) 53.86 421.48 B
0.25 0.24 (sending small amounts of) 53.86 410.48 B
0 F
0.25 0.24 (in-band) 165.82 410.48 B
2 F
0.25 0.24 ( data. This is currently) 198.6 410.48 B
-0.04 (intended primarily as a means for sources to send a URL [2]) 53.86 399.48 P
0.25 0.27 (for some sound, image or video sequence that they wish) 53.86 388.48 B
0.25 0.22 (recipients to retrieve and display) 53.86 377.48 B
0.25 0.22 (. V) 192.21 377.48 B
0.25 0.22 (alues can be sent to a) 204.23 377.48 B
0.25 0.07 (device\325) 53.86 366.48 B
0.25 0.07 (s broadcast set using the) 83.21 366.48 B
4 9 Q
0.25 0.07 (broadcast_value\050\051) 185.91 366.48 B
2 10 Q
0.25 0.07 ( method,) 259.08 366.48 B
(or to a speci\336c channel using) 53.86 355.48 T
4 9 Q
(transmit_value\050\051) 172.73 355.48 T
2 10 Q
(.) 237.24 355.48 T
1 9 Q
(Sinks) 53.86 178.14 T
2 10 Q
0.25 0.22 (The methods on the key manager called by sinks and the) 53.86 166.47 B
0.25 0.05 (notif) 53.86 155.47 B
0.25 0.05 (ications returned are summarized in T) 72.47 155.47 B
0.25 0.05 (able) 226.98 155.47 B
0.25 0.05 (2. Again, in) 246.42 155.47 B
(all method calls, the sink is passed as an implicit parameter) 53.86 144.47 T
(.) 290.23 144.47 T
0.25 0.13 (A sink declares its interest in receiving a particular audio/) 53.86 125.47 B
0.14 (video stream by creating a) 53.86 114.47 P
0 F
0.14 (r) 162.57 114.47 P
0.14 (eceiver) 166.09 114.47 P
2 F
0.14 ( and associating it with a) 194.96 114.47 P
0.25 0.06 (specif) 53.86 103.47 B
0.25 0.06 (ic signal being sent through some channel. For users,) 77.54 103.47 B
0.25 0.22 (each displayed V) 53.86 92.47 B
0.25 0.22 (ideoPane widget has a single associated) 126.12 92.47 B
5 F
(Key manager methods called by sinks) 59.86 332.48 T
4 9 Q
(create_receiver\050\051) 59.86 319.48 T
6 10 Q
(\336) 130.37 319.48 T
0 F
(r) 142.74 319.48 T
(eceiver) 146.26 319.48 T
4 9 Q
(aim_receiver\050) 59.86 306.48 T
0 10 Q
(r) 114.36 306.48 T
(eceiver) 117.88 306.48 T
2 F
(,) 146.35 306.48 T
0 F
(sour) 151.35 306.48 T
(ce) 168.76 306.48 T
2 F
(,) 177.64 306.48 T
0 F
(device) 182.64 306.48 T
2 F
(,) 208.18 306.48 T
0 F
( channel) 210.68 306.48 T
4 9 Q
(\051) 244.84 306.48 T
(unaim_receiver\050) 59.86 293.48 T
0 10 Q
(r) 124.37 293.48 T
(eceiver) 127.89 293.48 T
4 9 Q
(\051) 156.76 293.48 T
(destroy_receiver\050) 59.86 280.48 T
0 10 Q
(r) 129.37 280.48 T
(eceiver) 132.89 280.48 T
4 9 Q
(\051) 161.76 280.48 T
5 10 Q
(Noti\336cations sent to sinks) 59.86 267.47 T
4 9 Q
(use_receiver_addresses\050) 59.86 254.47 T
0 10 Q
(r) 160.89 254.47 T
(eceivers) 164.41 254.47 T
2 F
(,) 197.17 254.47 T
213.73 253.63 202.17 253.63 2 L
V
0.58 H
0 Z
N
1 8 Q
(list) 202.17 254.47 T
223.78 253.63 216.23 253.63 2 L
V
N
(of) 216.23 254.47 T
2 10 Q
( {) 223.78 254.47 T
0 F
(addr) 231.08 254.47 T
(ess) 249.6 254.47 T
2 F
(,) 261.82 254.47 T
0 F
(key) 266.82 254.47 T
2 F
(}\051) 280.14 254.47 T
4 9 Q
(receivers_have_transmitters\050) 59.86 241.47 T
0 10 Q
(r) 175.89 241.47 T
(eceivers) 179.41 241.47 T
2 F
(,) 212.16 241.47 T
0 F
(yes_or_no) 217.16 241.47 T
4 9 Q
(\051) 258.83 241.47 T
(receive_value\050) 59.86 228.47 T
0 10 Q
(r) 118.38 228.47 T
(eceivers) 121.9 228.47 T
2 F
(,) 154.65 228.47 T
0 F
(value) 159.65 228.47 T
4 9 Q
(\051) 181.32 228.47 T
(receivers_rejected\050) 59.86 215.47 T
0 10 Q
(r) 136.38 215.47 T
(eceivers) 139.9 215.47 T
2 F
(,) 172.65 215.47 T
0 F
(channel) 177.65 215.47 T
4 9 Q
(\051) 209.32 215.47 T
5 10 Q
(T) 63.06 199.47 T
(able 2:) 68.81 199.47 T
2 F
(The programming interface provided for sinks.) 99.92 199.47 T
53.86 341.02 53.86 211.27 2 L
V
0.25 H
N
296.86 341.02 296.86 211.27 2 L
V
N
53.73 341.14 296.98 341.14 2 L
V
N
53.73 328.14 296.98 328.14 2 L
V
N
53.73 276.14 296.98 276.14 2 L
V
N
53.73 263.14 296.98 263.14 2 L
V
N
53.73 211.14 296.98 211.14 2 L
V
N
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
0.25 0.25 (receiver and each Speaker widget has a set of associated) 317.48 731.47 B
(receivers.) 317.48 720.47 T
0.25 0.22 (The) 317.48 701.47 B
4 9 Q
0.25 0.22 (aim_receiver\050\051) 336.65 701.47 B
2 10 Q
0.25 0.22 ( method associates a receiver with the) 397.21 701.47 B
0.25 0.01 (signal from a particular source and device as sent through a) 317.48 690.47 B
0.25 0.54 (given channel. As with sources, sinks can only aim a) 317.48 679.47 B
0.04 (receiver at a channel if they are in its membership list. Aim-) 317.48 668.47 P
0.25 (ing elsewhere results in a later) 317.48 657.48 P
4 9 Q
0.25 (receivers_rejected\050\051) 442.83 657.48 P
2 10 Q
0.25 ( noti\336ca-) 522.34 657.48 P
(tion. Channels are speci\336ed as for sources.) 317.48 646.48 T
-0.22 (As new addresses and encryption keys are generated for par-) 317.48 627.48 P
0.25 0.85 (ticular receivers, sinks are sent the) 317.48 616.48 B
4 9 Q
0.25 0.85 (use_receiver_) 491.66 616.48 B
0.25 0.52 (addresses\050\051) 317.48 605.48 B
2 10 Q
0.25 0.52 ( notif) 370.67 605.48 B
0.25 0.52 (ication. This tells the sink the set of) 394.85 605.48 B
0.25 0.08 (addresses and keys the source will use to encrypt and send) 317.48 594.48 B
0.25 0.09 (out-of-band data. Since a source can switch between send-) 317.48 583.48 B
0.14 (ing to its broadcast set address and an individual transmitter) 317.48 572.48 P
0.25 0.09 (address without notifying the server) 317.48 561.48 B
0.25 0.09 (, the key manager pro-) 465.31 561.48 B
0.25 0.4 (vides both addresses to receivers when both have been) 317.48 550.48 B
(assigned.) 317.48 539.48 T
-0.25 (T) 317.48 520.48 P
-0.25 (o allow a sink to discard useless receivers, the key manager) 322.89 520.48 P
0.25 0.05 (sends the) 317.48 509.48 B
4 9 Q
0.25 0.05 (receiver_has_transmitters\050\051) 357.96 509.48 B
2 10 Q
0.25 0.05 ( notif) 468.95 509.48 B
0.25 0.05 (ication as the set) 490.37 509.48 B
(of corresponding transmitters starts and stops being empty) 317.48 498.48 T
(.) 550.42 498.48 T
0.25 0.36 (Sinks receive in-band information from sources via the) 317.48 479.48 B
4 9 Q
(receive_value\050\051) 317.48 468.48 T
2 10 Q
( noti\336cation.) 378.99 468.48 T
1 9 Q
(Channel Managers) 317.48 447.14 T
2 10 Q
0.01 (The third and \336nal kind of participant in media coordination) 317.48 435.48 P
-0.14 (is channel managers. Any object may be a channel manager;) 317.48 424.48 P
-0.16 (to do so, it must support the following key manager noti\336ca-) 317.48 413.48 P
(tion:) 317.48 402.48 T
4 9 Q
(channel_in_use\050) 328.28 389.48 T
0 10 Q
(yes_or_no) 394.31 389.48 T
4 9 Q
(\051) 435.97 389.48 T
2 10 Q
0.25 0.13 (This is sent whenever the set of transmitters and receivers) 317.48 376.48 B
0.25 0.1 (aimed at this channel manager starts or stops being empty) 317.48 365.48 B
0.25 0.1 (.) 555.92 365.48 B
0.25 0.04 (When) 317.48 354.48 B
0 F
0.25 0.04 (yes_or_no) 344.3 354.48 B
2 F
0.25 0.04 ( is true, the channel manager should begin) 386.29 354.48 B
0.25 0.04 (informing the key manager of the membership of the chan-) 317.48 343.48 B
-0.17 (nel, both immediately and whenever it changes in the future.) 317.48 332.48 P
(The method used for this is) 317.48 321.48 T
4 9 Q
(set_channel_membership\050) 328.28 308.48 T
0 10 Q
(members) 434.32 308.48 T
4 9 Q
(\051) 470.42 308.48 T
2 10 Q
0.25 0.2 (A given object can be a channel manager for at most one) 317.48 289.48 B
0.25 0.32 (channel, since the object serves as the channel\325) 317.48 278.47 B
0.25 0.32 (s unique) 522.32 278.47 B
0.25 0.66 (name in calls to) 317.48 267.47 B
4 9 Q
0.25 0.66 (set_transmitter_channel\050\051) 395.22 267.47 B
2 10 Q
0.25 0.66 ( and) 513.71 267.47 B
4 9 Q
0.25 0.66 (aim_) 536.95 267.47 B
(receiver\050\051) 317.48 256.47 T
2 10 Q
(.) 355.48 256.47 T
0.25 0.13 (A member of a channel is presently allowed to be either a) 317.48 237.47 B
0.12 (source or a sink or both on that channel. Providing indepen-) 317.48 226.47 P
0.25 0.36 (dent source and sink membership lists might be useful,) 317.48 215.47 B
(though, and we are considering this change.) 317.48 204.47 T
5 F
(Key manager methods called by sour) 323.48 181.47 T
(ces and sinks) 481.35 181.47 T
4 9 Q
(watch_channel\050) 323.48 168.47 T
0 10 Q
(channel) 386.51 168.47 T
2 F
(,) 418.17 168.47 T
0 F
(aspects) 423.17 168.47 T
4 9 Q
(\051) 452.61 168.47 T
(channel_membership\050) 323.48 155.47 T
0 10 Q
(channel) 412.51 155.47 T
4 9 Q
(\051) 444.17 155.47 T
6 10 Q
(\336) 449.67 155.47 T
0 F
(members) 462.04 155.47 T
4 9 Q
(channel_transmitters\050) 323.48 142.47 T
0 10 Q
(channel) 410.01 142.47 T
4 9 Q
(\051) 441.67 142.47 T
6 10 Q
(\336) 447.16 142.47 T
471.09 141.63 459.53 141.63 2 L
V
0.58 H
N
1 8 Q
(list) 459.53 142.47 T
481.15 141.63 473.59 141.63 2 L
V
N
(of) 473.59 142.47 T
2 10 Q
( {) 481.15 142.47 T
0 F
(sour) 488.45 142.47 T
(ce) 505.86 142.47 T
2 F
(,) 514.74 142.47 T
0 F
(device) 519.74 142.47 T
2 F
(}) 545.28 142.47 T
5 F
(Noti\336cations sent to sour) 323.48 129.47 T
(ces and sinks) 429.13 129.47 T
4 9 Q
(channel_changed\050) 323.48 116.47 T
0 10 Q
(channel) 397.52 116.47 T
2 F
(,) 429.18 116.47 T
0 F
( aspect) 431.68 116.47 T
4 9 Q
(\051) 459.73 116.47 T
(watching_rejected\050) 323.48 103.47 T
0 10 Q
(channel) 399.01 103.47 T
4 9 Q
(\051) 430.67 103.47 T
5 10 Q
(T) 319.59 87.47 T
(able 3:) 325.34 87.47 T
2 F
(Programming interface for both sources and sinks.) 356.45 87.47 T
317.48 190.02 317.48 99.27 2 L
V
0.25 H
N
560.48 190.02 560.48 99.27 2 L
V
N
317.35 190.14 560.6 190.14 2 L
V
N
317.35 177.14 560.6 177.14 2 L
V
N
317.35 138.14 560.6 138.14 2 L
V
N
317.35 125.14 560.6 125.14 2 L
V
N
317.35 99.14 560.6 99.14 2 L
V
N
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "8" 8
%%Page: "9" 9
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(9/12) 540.64 56.83 T
1 9 Q
(Other Key Manager Services) 53.86 732.14 T
2 10 Q
0.25 0.19 (The remaining methods and notif) 53.86 720.47 B
0.25 0.19 (ications provided by the) 193.39 720.47 B
0.14 (key manager are summarized in T) 53.86 709.47 P
0.14 (able) 190.23 709.47 P
0.14 (3. These methods are) 209.39 709.47 P
(typically used by both sources and sinks.) 53.86 698.47 T
0.25 0.25 (The) 53.86 679.47 B
4 9 Q
0.25 0.25 (watch_channel\050\051) 73.15 679.47 B
2 10 Q
0.25 0.25 ( method provides a way for sources) 142.91 679.47 B
0.25 0.15 (and sinks to be notif) 53.86 668.47 B
0.25 0.15 (ied of changes to various aspects of a) 138.5 668.47 B
0.14 (channel\325) 53.86 657.48 P
0.14 (s state, including the channel\325) 87.74 657.48 P
0.14 (s membership and the) 206.89 657.48 P
0.25 0.12 (set of transmitters aimed at the channel. W) 53.86 646.48 B
0.25 0.12 (atchers are sent) 230.91 646.48 B
0.25 0.18 (the) 53.86 635.48 B
4 9 Q
0.25 0.18 (channel_changed\050\051) 69.53 635.48 B
2 10 Q
0.25 0.18 ( notif) 149.55 635.48 B
0.25 0.18 (ication whenever any of their) 171.7 635.48 B
0.12 (speci\336ed) 53.86 624.48 P
0 F
0.12 (aspects) 92.03 624.48 P
2 F
0.12 ( changes. As in other methods, sources and) 121.47 624.48 P
-0.24 (sinks can only watch a channel when they are in its member-) 53.86 613.48 P
0.19 (ship. Otherwise, or should they later become excluded from) 53.86 602.48 P
-0.1 (the membership, they receive a) 53.86 591.48 P
4 9 Q
-0.1 (watching_rejected\050\051) 180.55 591.48 P
2 10 Q
-0.1 ( noti\336ca-) 259.07 591.48 P
(tion.) 53.86 580.48 T
-0.16 (Any source or sink that is a member of a channel can use the) 53.86 561.48 P
4 9 Q
0.25 0.29 (channel_membership\050\051) 53.86 550.48 B
2 10 Q
0.25 0.29 ( method to discover the complete) 151.62 550.48 B
0.21 (membership; this method is on the key manager and not the) 53.86 539.48 P
0.25 0.01 (channel manager to prevent the latter from maliciously giv-) 53.86 528.48 B
0.25 0.1 (ing dif) 53.86 517.48 B
0.25 0.1 (ferent answers to dif) 81.04 517.48 B
0.25 0.1 (ferent sources and sinks. Mem-) 165.68 517.48 B
0.25 0.25 (bers can also use) 53.86 506.48 B
4 9 Q
0.25 0.25 (channel_transmitters\050\051) 129.3 506.48 B
2 10 Q
0.25 0.25 ( to f) 224.27 506.48 B
0.25 0.25 (ind out what) 241.57 506.48 B
(signals are available through a given channel.) 53.86 495.48 T
1 9 Q
(IMPLEMENTING THE KEY MANAGER) 53.86 474.14 T
2 10 Q
0.25 0.37 (Fundamentally) 53.86 462.48 B
0.25 0.37 (, the key manager must maintain several) 117.98 462.48 B
0.25 0.02 (mappings that represent the current state of channels, trans-) 53.86 451.48 B
(mitters, devices, and receivers:) 53.86 440.48 T
7 F
(C) 64.66 427.48 T
2 F
( [) 69.86 427.48 T
0 F
(channel) 75.69 427.48 T
2 F
(]) 107.35 427.48 T
6 F
(\336) 113.18 427.48 T
(\341) 125.55 427.48 T
0 F
(members) 128.84 427.48 T
2 F
(,) 164.94 427.48 T
0 F
(addr) 169.94 427.48 T
(ess) 188.46 427.48 T
2 F
(,) 200.68 427.48 T
0 F
(key) 205.68 427.48 T
2 F
(,) 218.35 427.48 T
0 F
(watchers) 223.35 427.48 T
6 F
(\361) 259.46 427.48 T
7 F
(T) 64.66 414.48 T
2 F
( [) 69.66 414.48 T
0 F
(sour) 75.49 414.48 T
(ce, xmtr) 92.9 414.48 T
2 F
(]) 125.11 414.48 T
6 F
(\336) 130.94 414.48 T
(\341) 143.31 414.48 T
0 F
(device) 146.6 414.48 T
2 F
(,) 172.14 414.48 T
0 F
(channel) 177.14 414.48 T
2 F
(,) 208.8 414.48 T
0 F
(is_br) 213.8 414.48 T
(oadcaster) 233.99 414.48 T
6 F
(\361) 273.43 414.48 T
7 F
(D) 64.66 401.48 T
2 F
( [) 71.66 401.48 T
0 F
(sour) 77.49 401.48 T
(ce, device) 94.9 401.48 T
2 F
(]) 134.32 401.48 T
6 F
(\336) 140.15 401.48 T
(\341) 152.52 401.48 T
0 F
(addr) 155.81 401.48 T
(ess) 174.33 401.48 T
2 F
(,) 186.55 401.48 T
0 F
(key) 191.55 401.48 T
6 F
(\361) 204.87 401.48 T
7 F
(R) 64.66 388.48 T
2 F
( [) 70.66 388.48 T
0 F
(sink, r) 76.49 388.48 T
(cvr) 101.12 388.48 T
2 F
(]) 113.89 388.48 T
6 F
(\336) 119.72 388.48 T
(\341) 132.09 388.48 T
0 F
(sour) 135.38 388.48 T
(ce) 152.79 388.48 T
2 F
(,) 161.67 388.48 T
0 F
(device) 166.67 388.48 T
2 F
(,) 192.21 388.48 T
0 F
(channel) 197.21 388.48 T
6 F
(\361) 228.87 388.48 T
2 F
-0.17 (In most cases, it is easy to see how to update these mappings) 53.86 375.48 P
0.05 (for each of the key manager methods described in the previ-) 53.86 364.48 P
0.25 0.4 (ous section. The one exception is the) 53.86 353.48 B
0 F
0.25 0.4 (key) 220.92 353.48 B
2 F
0.25 0.4 ( f) 235.45 353.48 B
0.25 0.4 (ields, which) 241.78 353.48 B
0.25 0.22 (should be changed only when necessary) 53.86 342.48 B
0.25 0.22 (, a condition that) 223.01 342.48 B
0.25 0.08 (would be dif) 53.86 331.48 B
0.25 0.08 (f) 105.68 331.48 B
0.25 0.08 (icult \050or at least inef) 108.54 331.48 B
0.25 0.08 (f) 191.73 331.48 B
0.25 0.08 (icient\051 to test given only) 194.59 331.48 B
(the obvious representations of the mappings above.) 53.86 320.48 T
0.25 0.38 (It is more dif) 53.86 301.48 B
0.25 0.38 (f) 111.71 301.48 B
0.25 0.38 (icult to characterize the conditions under) 114.87 301.48 B
0.23 (which the various key manager noti\336cations should be sent,) 53.86 290.48 P
0.25 0.16 (especially as a function of the various method calls in the) 53.86 279.47 B
0.25 0.21 (public interface. For example, the) 53.86 268.47 B
4 9 Q
0.25 0.21 (broadcast_has_receiv-) 199.83 268.47 B
0.25 0.01 (ers\050\051) 53.86 257.47 B
2 10 Q
0.25 0.01 ( notif) 72.41 257.47 B
0.25 0.01 (ication should be sent for a given) 93.57 257.47 B
6 F
0.25 0.01 (\341) 230.97 257.47 B
0 F
0.25 0.01 (sour) 234.27 257.47 B
0.25 0.01 (ce) 251.73 257.47 B
2 F
0.25 0.01 (,) 260.63 257.47 B
0 F
0.25 0.01 (device) 265.9 257.47 B
6 F
0.25 0.01 (\361) 291.51 257.47 B
2 F
(pair exactly when the set) 53.86 246.47 T
({) 64.66 233.47 T
6 F
(\341) 69.46 233.47 T
0 F
(sink) 72.75 233.47 T
2 F
(,) 88.86 233.47 T
0 F
(r) 93.86 233.47 T
(cvr) 97.38 233.47 T
6 F
(\361) 110.15 233.47 T
2 F
( |) 113.44 233.47 T
6 F
($) 120.44 233.47 T
0 F
(channel) 125.93 233.47 T
2 F
(,) 157.59 233.47 T
0 F
(xmtr) 162.59 233.47 T
2 F
( .) 180.92 233.47 T
7 F
(R) 133.23 222.47 T
2 F
( [) 139.23 222.47 T
0 F
(sink, r) 145.06 222.47 T
(cvr) 169.69 222.47 T
2 F
(]) 182.46 222.47 T
(=) 158.74 211.47 T
6 F
(\341) 166.88 211.47 T
0 F
(sour) 170.17 211.47 T
(ce) 187.58 211.47 T
2 F
(,) 196.46 211.47 T
0 F
(device) 201.46 211.47 T
2 F
(,) 227 211.47 T
0 F
(channel) 232 211.47 T
6 F
(\361) 263.66 211.47 T
(\331) 269.45 211.47 T
7 F
(T) 133.23 200.47 T
2 F
( [) 138.23 200.47 T
0 F
(sour) 144.06 200.47 T
(ce, xmtr) 161.47 200.47 T
2 F
(]) 193.68 200.47 T
(=) 158.74 189.47 T
6 F
(\341) 166.88 189.47 T
0 F
(device) 170.17 189.47 T
2 F
(,) 195.71 189.47 T
0 F
(channel) 200.71 189.47 T
2 F
(,) 232.37 189.47 T
252.48 188.63 237.37 188.63 2 L
V
0.58 H
0 Z
N
1 8 Q
(true) 237.37 189.47 T
6 10 Q
(\361) 252.48 189.47 T
2 F
(}) 255.77 189.47 T
0.25 0.12 (transitions between empty and non-empty \050in either direc-) 53.86 176.47 B
-0.04 (tion\051. The simple mappings given above do not make it easy) 53.86 165.47 P
-0.18 (to read of) 53.86 154.47 P
-0.18 (f the current value of this set; worse, several dif) 91.64 154.47 P
-0.18 (fer-) 280.37 154.47 P
-0.01 (ent method calls can trigger the important transition, each in) 53.86 143.47 P
(a dif) 53.86 132.47 T
(ferent way) 71.73 132.47 T
(.) 113.56 132.47 T
-0.14 (W) 53.86 113.47 P
-0.14 (e attacked these problems by maintaining extra, redundant) 62.5 113.47 P
0.25 0.09 (information in the mappings that make it easier to read of) 53.86 102.47 B
0.25 0.09 (f) 291.47 102.47 B
0.25 0.18 (the important derived sets and relations. Each derived set) 53.86 91.47 B
0.25 0.12 (corresponds to a specif) 53.86 80.47 B
0.25 0.12 (ic set of notif) 148.83 80.47 B
0.25 0.12 (ications; when certain) 203.94 80.47 B
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
0.25 0.08 (key transitions occur in the values of these sets, the appro-) 317.48 731.47 B
0.25 0.37 (priate notif) 317.48 720.47 B
0.25 0.37 (ications are sent. In our implementation, we) 365.71 720.47 B
(maintain the following mappings dif) 317.48 709.47 T
(ferently:) 463.41 709.47 T
7 F
(C) 328.28 696.47 T
2 F
( [) 333.48 696.47 T
0 F
(channel) 339.31 696.47 T
2 F
(]) 370.97 696.47 T
6 F
(\336) 376.8 696.47 T
(\341) 389.17 696.47 T
0 F
(members) 392.46 696.47 T
2 F
(,) 428.56 696.47 T
0 F
(xmtrs) 433.56 696.47 T
2 F
(,) 455.78 696.47 T
0 F
(r) 460.78 696.47 T
(cvrs) 464.3 696.47 T
2 F
(,) 480.96 696.47 T
0 F
(addr) 485.96 696.47 T
(ess) 504.48 696.47 T
2 F
(,) 516.7 696.47 T
0 F
(key) 521.7 696.47 T
2 F
(,) 534.37 696.47 T
0 F
(watchers) 394.01 685.47 T
6 F
(\361) 430.12 685.47 T
7 F
(T) 328.28 672.47 T
2 F
( [) 333.28 672.47 T
0 F
(sour) 339.11 672.47 T
(ce, xmtr) 356.52 672.47 T
2 F
(]) 388.73 672.47 T
6 F
(\336) 394.56 672.47 T
(\341) 406.93 672.47 T
0 F
(device) 410.22 672.47 T
2 F
(,) 435.76 672.47 T
0 F
(channel) 440.76 672.47 T
2 F
(,) 472.42 672.47 T
0 F
(is_br) 477.42 672.47 T
(oadcaster) 497.61 672.47 T
6 F
(\361) 537.05 672.47 T
7 F
(D) 328.28 659.48 T
2 F
([) 337.48 659.48 T
0 F
(sour) 340.81 659.48 T
(ce, device) 358.22 659.48 T
2 F
(]) 397.64 659.48 T
6 F
(\336) 403.47 659.48 T
(\341) 415.84 659.48 T
0 F
(has_r) 419.13 659.48 T
(cvrs) 441.54 659.48 T
2 F
(,) 458.2 659.48 T
0 F
(addr) 463.2 659.48 T
(ess) 481.72 659.48 T
2 F
(,) 493.94 659.48 T
0 F
(key) 498.94 659.48 T
6 F
(\361) 512.26 659.48 T
7 F
(Z) 328.28 646.48 T
2 F
([) 336.68 646.48 T
0 F
(sour) 340.01 646.48 T
(ce, device) 357.42 646.48 T
2 F
(,) 396.84 646.48 T
0 F
(channel) 401.84 646.48 T
2 F
(]) 433.5 646.48 T
6 F
(\336) 439.33 646.48 T
(\341) 451.7 646.48 T
0 F
(xmtrs) 454.99 646.48 T
2 F
(,) 477.21 646.48 T
0 F
(r) 482.21 646.48 T
(cvrs) 485.73 646.48 T
6 F
(\361) 502.39 646.48 T
2 F
0.25 0.31 (T) 317.48 627.48 B
0.25 0.31 (o the) 323.2 627.48 B
7 F
0.22 0.31 (C) 347.78 627.48 B
2 F
0.25 0.31 ( mapping we added lists of the transmitters and) 353.29 627.48 B
0.25 0.26 (receivers currently aimed at each channel. This makes it) 317.48 616.48 B
0.25 0.04 (easy to generate the appropriate) 317.48 605.48 B
4 9 Q
0.25 0.04 (use_transmitter_address\050\051) 449.82 605.48 B
2 10 Q
0.25 0.04 (,) 555.92 605.48 B
4 9 Q
0.25 0.8 (use_receiver_addresses\050\051) 317.48 594.48 B
2 10 Q
0.25 0.8 (,) 440.68 594.48 B
4 9 Q
0.25 0.8 (transmitters_rejected\050\051) 447.53 594.48 B
2 10 Q
0.25 0.8 (,) 555.92 594.48 B
4 9 Q
0.25 0.14 (receivers_rejected\050\051) 317.48 583.48 B
2 10 Q
0.25 0.14 (, and) 399.84 583.48 B
4 9 Q
0.25 0.14 (watching_rejected\050\051) 423.14 583.48 B
2 10 Q
0.25 0.14 ( notif) 504.37 583.48 B
0.25 0.14 (ications) 526.32 583.48 B
0.25 0.64 (when the channel membership changes. The various) 317.48 572.48 B
4 9 Q
0.25 0.38 (channel_changed\050\051) 317.48 561.48 B
2 10 Q
0.25 0.38 ( notif) 401.05 561.48 B
0.25 0.38 (ications are also now trivial to) 424.45 561.48 B
(implement.) 317.48 550.48 T
-0.05 (The) 317.48 531.48 P
7 F
-0.05 (Z) 335.47 531.48 P
2 F
-0.05 ( mapping was added to enable easy implementation of) 341.67 531.48 P
0.25 0.4 (the) 317.48 520.48 B
4 9 Q
0.25 0.4 (transmitters_have_receivers\050\051) 334.06 520.48 B
2 10 Q
0.25 0.4 ( and) 464.79 520.48 B
4 9 Q
0.25 0.4 (receivers_have_) 486.75 520.48 B
(transmitters\050\051) 317.48 509.48 T
2 10 Q
( noti\336cations.) 370.48 509.48 T
0.25 0.09 (The ef) 317.48 490.48 B
0.25 0.09 (f) 343.88 490.48 B
0.25 0.09 (icient implementation of the) 346.75 490.48 B
4 9 Q
0.25 0.09 (broadcast_has_receiv-) 465.77 490.48 B
0.25 0 (ers\050\051) 317.48 479.48 B
2 10 Q
0.25 0 ( notif) 335.98 479.48 B
0.25 0 (ication was perhaps the most dif) 357.08 479.48 B
0.25 0 (f) 487.34 479.48 B
0.25 0 (icult design task;) 490.12 479.48 B
0.25 0.18 (it may be called for after changes to any of four mapping) 317.48 468.48 B
-0.08 (components: receiver aiming, transmitter device, transmitter) 317.48 457.48 P
0.22 (channel, or transmitter membership in the associated broad-) 317.48 446.48 P
0.25 0.3 (cast set. W) 317.48 435.48 B
0.25 0.3 (e added a) 364.1 435.48 B
0 F
0.25 0.3 (has_r) 408.12 435.48 B
0.25 0.3 (cvrs) 432.04 435.48 B
2 F
0.25 0.3 ( f) 449.91 435.48 B
0.25 0.3 (lag to the) 456.04 435.48 B
7 F
0.22 0.3 (D) 499.83 435.48 B
2 F
0.25 0.3 ( mapping to) 507.13 435.48 B
0.25 0.45 (remember the current empty/nonempty state of the set) 317.48 424.48 B
0.25 0.24 (described earlier; this allows us to avoid useless work in) 317.48 413.48 B
0.25 0.22 (cases where that state is obviously not changing, such as) 317.48 402.48 B
0.25 0.14 (when a new receiver is added to a device that already had) 317.48 391.48 B
0.25 0 (receivers listening. The new) 317.48 380.48 B
7 F
0.22 0 (Z) 433.89 380.48 B
2 F
0.25 0 ( mapping provides the rest of) 440.09 380.48 B
0.18 (the information used to trigger possible transitions; unfortu-) 317.48 369.48 P
0.25 0.04 (nately) 317.48 358.48 B
0.25 0.04 (, some searching is still required in order to make the) 341.49 358.48 B
-0.19 (\336nal determination of whether a true transition has occurred.) 317.48 347.48 P
0.22 (It is worth mentioning two other optimizations. The speci\336-) 317.48 328.48 P
0.25 0.05 (cation calls for a change in broadcast-set key whenever the) 317.48 317.48 B
0.25 0.03 (set of allowed sinks changes; that is, for each change in the) 317.48 306.48 B
-0.07 (union of the memberships of the channels aimed at by trans-) 317.48 295.48 P
0.25 0.21 (mitters in the broadcast set of a given source and device.) 317.48 284.48 B
0.25 0.32 (This union is suf) 317.48 273.47 B
0.25 0.32 (f) 390.4 273.47 B
0.25 0.32 (iciently expensive to maintain that we) 393.49 273.47 B
0.25 0.02 (chose instead to change the key whenever there is a change) 317.48 262.47 B
0.25 0.22 (either in the set of channels in the broadcast set or in the) 317.48 251.47 B
-0.21 (membership of any one of those channels. This could lead to) 317.48 240.47 P
0.25 0.47 (more key changes than strictly necessary) 317.48 229.47 B
0.25 0.47 (, but seems a) 500.39 229.47 B
(worthwhile trade-of) 317.48 218.47 T
(f for implementation ef) 397 218.47 T
(\336ciency) 489.86 218.47 T
(.) 520.87 218.47 T
0.25 0.17 (The other optimization is simpler; whenever there is only) 317.48 199.47 B
-0.15 (one channel in a broadcast set, we use that channel\325) 317.48 188.47 P
-0.15 (s address) 522.19 188.47 P
0.24 (and key for the broadcast set as well. This reduces both key) 317.48 177.47 P
0.25 0.18 (generation work on the server and cryptographic and net-) 317.48 166.47 B
(work expenses on the client.) 317.48 155.47 T
1 9 Q
(IMPLEMENTING THE USER INTERF) 317.48 134.14 T
(ACE) 468.99 134.14 T
2 10 Q
0.25 0.24 (In this section, we describe applications\325 interface to the) 317.48 122.47 B
0.25 0.09 (new widgets and the ways in which the widget themselves) 317.48 111.47 B
(are implemented in terms of the coordination system.) 317.48 100.47 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "9" 9
%%Page: "10" 10
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(10/12) 535.64 56.83 T
2 F
0.25 0.03 (All widgets in the Jupiter window system have their imple-) 53.86 731.47 B
0.25 0.18 (mentations split between core objects in the database and) 53.86 720.47 B
0.25 0.02 (code in each user) 53.86 709.47 B
0.25 0.02 (\325) 124.51 709.47 B
0.25 0.02 (s client. The server) 127.31 709.47 B
0.25 0.02 (-side code is responsi-) 204.42 709.47 B
0.25 0.12 (ble for coordination with other parts of the system and for) 53.86 698.47 B
0.25 0.41 (communicating with the client. The client-side code is) 53.86 687.47 B
0.25 0.1 (responsible for actually interacting with the user and com-) 53.86 676.47 B
0.25 0.2 (municating with the server) 53.86 665.47 B
0.25 0.2 (. In the rest of this section, we) 166.28 665.47 B
0.19 (often elide the server/client communication step; it does not) 53.86 654.48 P
(usually hold much interest.) 53.86 643.48 T
0.25 0.01 (The server) 53.86 624.48 B
0.25 0.01 (-side implementations of the four new user inter-) 96.54 624.48 B
0.25 0 (face widgets in our design use the facilities described in the) 53.86 613.48 B
0 (previous section. The implicit source or sink ar) 53.86 602.48 P
0 (gument to all) 242.01 602.48 P
0.25 0.19 (key manager method calls, however) 53.86 591.48 B
0.25 0.19 (, is overridden by the) 205.01 591.48 B
0.25 0.12 (widget implementations; from the key manager) 53.86 580.48 B
0.25 0.12 (\325) 250.44 580.48 B
0.25 0.12 (s perspec-) 253.34 580.48 B
0.25 0.31 (tive, the calling source or sink always appears to be the) 53.86 569.48 B
0.25 0.29 (object representing the user on whose screen the widget) 53.86 558.48 B
0.17 (appears. This approach allows the key manager to treat user) 53.86 547.48 P
(objects in the same way as other sources and sinks.) 53.86 536.48 T
1 9 Q
(Camera and Microphone W) 53.86 515.14 T
(idgets) 169.79 515.14 T
2 10 Q
0.25 0.25 (When a Microphone widget is created, it makes a call to) 53.86 503.48 B
4 9 Q
0.25 0.29 (create_transmitter\050\051) 53.86 492.48 B
2 10 Q
0.25 0.29 (. Similarly) 138.1 492.48 B
0.25 0.29 (, the creation of a Camera) 183.09 492.48 B
0.25 0.17 (widget causes a call to) 53.86 481.48 B
4 9 Q
0.25 0.17 (create_transmitter\050\051) 151.79 481.48 B
2 10 Q
0.25 0.17 (. The resulting) 233.8 481.48 B
(transmitter is saved as part of the widget\325) 53.86 470.48 T
(s private state.) 218.56 470.48 T
-0.2 (T) 53.86 451.48 P
-0.2 (wo methods are available on Microphone and Camera wid-) 59.27 451.48 P
-0.02 (gets. They let applications set from which of the user) 53.86 440.48 P
-0.02 (\325) 266.21 440.48 P
-0.02 (s local) 268.99 440.48 P
(devices to get the signal and to which channel to send it:) 53.86 429.48 T
4 9 Q
(set_device\050) 64.66 416.48 T
0 10 Q
(device) 110.68 416.48 T
4 9 Q
(\051) 136.21 416.48 T
(set_channel\050) 64.66 403.48 T
0 10 Q
(channel) 116.18 403.48 T
4 9 Q
(\051) 147.84 403.48 T
2 10 Q
0.25 0.53 (When these methods are called, the widget calls) 53.86 390.48 B
4 9 Q
0.25 0.53 (set_) 276.19 390.48 B
0.25 0.05 (transmitter_device\050\051) 53.86 379.48 B
2 10 Q
0.25 0.05 ( or) 134.45 379.48 B
4 9 Q
0.25 0.05 (set_transmitter_channel\050\051) 148.5 379.48 B
2 10 Q
0.25 0.05 (, as appro-) 251.88 379.48 B
0.25 0.46 (priate. It is expected that when users\325 client programs) 53.86 368.48 B
0.25 0.17 (receive a) 53.86 357.48 B
4 9 Q
0.25 0.17 (set_device\050\051) 94.35 357.48 B
2 10 Q
0.25 0.17 ( for widgets that are \322on,\323 they will) 145.37 357.48 B
0.25 0.27 (generally send back an event indicating that the widgets) 53.86 346.48 B
0.25 0.15 (have been turned of) 53.86 335.48 B
0.25 0.15 (f; this ensures that an application pro-) 136.45 335.48 B
0.14 (gram can\325) 53.86 324.48 P
0.14 (t cause a user to start sending from some dif) 94.07 324.48 P
0.14 (ferent) 271.48 324.48 P
(device without an additional, explicit user action.) 53.86 313.48 T
0.25 0.1 (When a Camera or Microphone widget is turned on by the) 53.86 294.48 B
0.25 0.06 (user) 53.86 283.48 B
0.25 0.06 (, its associated transmitter is added to the broadcast set) 70.35 283.48 B
0.25 0.26 (for its designated device. When it is later turned of) 53.86 272.47 B
0.25 0.26 (f, the) 272.68 272.47 B
0.25 0.08 (transmitter is removed again. These are the operations tak-) 53.86 261.47 B
0.25 0.05 (ing place while the button icon\325) 53.86 250.47 B
0.25 0.05 (s background is in its inter-) 183.06 250.47 B
(mediate, stippled state.) 53.86 239.47 T
0.25 0.01 (When a Microphone is used as a push-to-talk button for the) 53.86 220.47 B
0.02 (\336rst time, the widget calls) 53.86 209.47 P
4 9 Q
0.02 (get_transmitter_address\050\051) 160.07 209.47 P
2 10 Q
0.02 ( to have) 263.1 209.47 P
0.25 0.05 (an address assigned just for that channel. On future uses of) 53.86 198.47 B
0.25 0.07 (the widget, the client can respond instantly) 53.86 187.47 B
0.25 0.07 (, already having) 229.12 187.47 B
(all of the necessary information.) 53.86 176.47 T
0.25 0.4 (The key manager) 53.86 157.47 B
0.25 0.4 (\325) 130.19 157.47 B
0.25 0.4 (s) 133.37 157.47 B
4 9 Q
0.25 0.4 (use_broadcast_address\050\051) 140.82 157.47 B
2 10 Q
0.25 0.4 ( and) 252.13 157.47 B
4 9 Q
0.25 0.4 (use_) 274.08 157.47 B
0.25 0.56 (transmitter_address\050\051) 53.86 146.47 B
2 10 Q
0.25 0.56 ( notif) 151.04 146.47 B
0.25 0.56 (ications are simply passed) 175.46 146.47 B
-0.13 (through to the user) 53.86 135.47 P
-0.13 (\325) 129.1 135.47 P
-0.13 (s client, to update the addresses and keys) 131.88 135.47 P
0.25 0.03 (assigned to existing widgets. Similarly) 53.86 124.47 B
0.25 0.03 (, the) 210.02 124.47 B
4 9 Q
0.25 0.03 (broadcast_has_) 230.41 124.47 B
0.25 0.13 (receivers\050\051) 53.86 113.47 B
2 10 Q
0.25 0.13 ( and) 97.74 113.47 B
4 9 Q
0.25 0.13 (transmitters_have_receivers\050\051) 118.3 113.47 B
2 10 Q
0.25 0.13 ( notif) 240.97 113.47 B
0.25 0.13 (ications) 262.81 113.47 B
0.25 0.33 (are passed through, so that the client can avoid sending) 53.86 102.47 B
0.25 0.13 (unnecessary data. When a) 53.86 91.47 B
4 9 Q
0.25 0.13 (transmitters_rejected\050\051) 164.55 91.47 B
2 10 Q
0.25 0.13 ( notif) 257.65 91.47 B
0.25 0.13 (ica-) 279.54 91.47 B
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
0.25 0.07 (tion is received, a message is sent to the client clearing the) 317.48 731.47 B
(appropriate address and key information.) 317.48 720.47 T
1 9 Q
(Speaker W) 317.48 699.14 T
(idgets) 363.42 699.14 T
2 10 Q
-0.11 (Applications set which sources a Speaker should listen to by) 317.48 687.47 P
(calling the method:) 317.48 676.47 T
4 9 Q
(set_sources\050) 328.28 663.48 T
391.36 662.63 379.8 662.63 2 L
V
0.58 H
0 Z
N
1 8 Q
(list) 379.8 663.48 T
401.41 662.63 393.86 662.63 2 L
V
N
(of) 393.86 663.48 T
2 10 Q
( {) 401.41 663.48 T
0 F
(sour) 408.71 663.48 T
(ce) 426.12 663.48 T
2 F
(,) 435 663.48 T
0 F
(device) 440 663.48 T
2 F
(,) 465.54 663.48 T
0 F
(channel) 470.54 663.48 T
2 F
(,) 502.2 663.48 T
0 F
(volume) 507.2 663.48 T
2 F
(}) 536.08 663.48 T
4 9 Q
(\051) 540.88 663.48 T
2 10 Q
0.25 0.26 (For each tuple in the list, a receiver must be created and) 317.48 650.48 B
0.25 0.01 (aimed at the specif) 317.48 639.48 B
0.25 0.01 (ied source, device, and channel. The) 393.08 639.48 B
0 F
0.25 0.01 (vol-) 542.86 639.48 B
0.25 0.1 (ume) 317.48 628.48 B
2 F
0.25 0.1 (ar) 337.3 628.48 B
0.25 0.1 (guments allow an application to specify the relative) 345.09 628.48 B
0.25 0.1 (level of the incoming audio, so that certain streams can be) 317.48 617.48 B
0.25 0.04 (played more softly than others. This is useful, for example,) 317.48 606.48 B
0.25 0.23 (when trying to play audio from sources that are virtually) 317.48 595.48 B
(\322farther away) 317.48 584.48 T
(,\323 such as in a nearby room.) 371.52 584.48 T
0.25 0.24 (When) 317.48 565.48 B
4 9 Q
0.25 0.24 (set_sources\050\051) 345.33 565.48 B
2 10 Q
0.25 0.24 ( is called, the widget creates a set of) 403.02 565.48 B
0.25 0.11 (new receivers, one aimed at each of the given sources; the) 317.48 554.48 B
0 F
(volume) 317.48 543.48 T
2 F
( ar) 346.36 543.48 T
(guments are simply passed on to the client.) 356.45 543.48 T
0.25 0.09 (The key manager) 317.48 524.48 B
0.25 0.09 (\325) 389.13 524.48 B
0.25 0.09 (s) 392.01 524.48 B
4 9 Q
0.25 0.09 (use_receiver_addresses\050\051) 398.83 524.48 B
2 10 Q
0.25 0.09 ( notif) 505.04 524.48 B
0.25 0.09 (ications) 526.68 524.48 B
-0.21 (are passed on to the client. When a) 317.48 513.48 P
4 9 Q
-0.21 (receivers_rejected\050\051) 457.73 513.48 P
2 10 Q
-0.21 ( noti-) 537.24 513.48 P
-0.07 (\336cation is received, a similar message goes to the client, set-) 317.48 502.48 P
0.25 0.05 (ting the empty list of addresses for those receivers. Finally) 317.48 491.48 B
0.25 0.05 (,) 555.92 491.48 B
0.25 0.42 (on a) 317.48 480.48 B
4 9 Q
0.25 0.42 (receive_value\050\051) 339.53 480.48 B
2 10 Q
0.25 0.42 ( notif) 407.39 480.48 B
0.25 0.42 (ication, the value received is) 431.02 480.48 B
0.25 0 (passed to the client as a URL naming audio data for the cli-) 317.48 469.48 B
(ent to retrieve and play) 317.48 458.48 T
(.) 409.03 458.48 T
1 9 Q
(V) 317.48 437.14 T
(ideoPane W) 323.32 437.14 T
(idgets) 374.25 437.14 T
2 10 Q
0.25 0.17 (V) 317.48 425.48 B
0.25 0.17 (ideoPane widgets are implemented almost identically to) 324.27 425.48 B
0.25 0.02 (Speakers. The one dif) 317.48 414.48 B
0.25 0.02 (ference is that, since a V) 405.59 414.48 B
0.25 0.02 (ideoPane can) 504.96 414.48 B
0.25 0.11 (only receive at most one signal at a time, a single receiver) 317.48 403.48 B
0.25 0.23 (can be created and saved when the widget is created; the) 317.48 392.48 B
-0.15 (widget can simply re-aim the receiver whenever the applica-) 317.48 381.48 P
-0.19 (tion changes the source to which the widget listens. T) 317.48 370.48 P
-0.19 (o make) 529.46 370.48 P
(this change, applications call this widget method:) 317.48 359.48 T
4 9 Q
(set_source\050) 328.28 346.48 T
0 10 Q
(sour) 375.3 346.48 T
(ce) 392.7 346.48 T
2 F
(,) 401.58 346.48 T
0 F
(device) 406.58 346.48 T
2 F
(,) 432.12 346.48 T
0 F
(channel) 437.12 346.48 T
4 9 Q
(\051) 468.79 346.48 T
2 10 Q
0.25 0.1 (V) 317.48 327.48 B
0.25 0.1 (ideoPane widgets also support the) 324.2 327.48 B
4 9 Q
0.25 0.1 (receive_value\050\051) 467.55 327.48 B
2 10 Q
0.25 0.1 ( notif) 530.61 327.48 B
0.25 0.1 (i-) 552.31 327.48 B
0.25 0.16 (cation; at present, this is used to pass a URL containing a) 317.48 316.48 B
0.06 (static image to load. W) 317.48 305.48 P
0.06 (e may later extend the usage to allow) 409.41 305.48 P
(playing a video clip.) 317.48 294.48 T
1 9 Q
(IMPLEMENTING THE APPLICA) 317.48 273.14 T
(TIONS) 448.32 273.14 T
2 10 Q
0.25 0.08 (Earlier in the paper) 317.48 261.47 B
0.25 0.08 (, several applications were described as) 396.34 261.47 B
0.25 0.07 (motivating the audio/video architecture design. In this sec-) 317.48 250.47 B
-0.04 (tion, some of these applications are re-examined, to see how) 317.48 239.47 P
0.25 0.04 (their implementations could take advantage of the facilities) 317.48 228.47 B
(provided.) 317.48 217.47 T
1 9 Q
(Communication W) 317.48 196.14 T
(ithin a Room) 396.4 196.14 T
2 10 Q
0.25 0.23 (Communicating with other users in the same room is the) 317.48 184.47 B
0.25 0.09 (most common use of audio and video within Jupiter) 317.48 173.47 B
0.25 0.09 (. T) 531.2 173.47 B
0.25 0.09 (ypi-) 542.13 173.47 B
0.25 0.13 (cally) 317.48 162.47 B
0.25 0.13 (, support for this is provided one of the windows that) 336.93 162.47 B
0.24 (the system opens when a user \336rst connects. An example of) 317.48 151.47 P
(such a window appears in Figure) 317.48 140.47 T
(3.) 451.9 140.47 T
0.25 0.1 (This window contains Microphone and Camera widgets to) 317.48 121.47 B
0.18 (control sending to everyone in the room, and a collection of) 317.48 110.47 P
0.25 0.02 (V) 317.48 99.47 B
0.25 0.02 (ideoPanes, each surrounded by a Speaker) 324.12 99.47 B
0.25 0.02 (, to receive from) 491.26 99.47 B
0.25 0.01 (others in the room. Below each V) 317.48 88.47 B
0.25 0.01 (ideoPane is a Microphone) 453.34 88.47 B
0.25 0.24 (that serves as a push-to-talk button for whispering to the) 317.48 77.47 B
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "10" 10
%%Page: "11" 11
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(1) 536.38 56.83 T
(1/12) 540.64 56.83 T
2 F
0.25 0.19 (indicated user) 53.86 527.38 B
0.25 0.19 (. Below this are Speakers and Microphones) 112.06 527.38 B
0.25 0.19 (for users who are not providing video. In the lower right,) 53.86 516.38 B
0.25 0.06 (there is a list of users who either won\325) 53.86 505.38 B
0.25 0.06 (t f) 210.82 505.38 B
0.25 0.06 (it in the rest of the) 219.31 505.38 B
0.25 0.34 (window or else are not providing either audio or video.) 53.86 494.38 B
0.14 (Finally) 53.86 483.38 P
0.14 (, there is also a lar) 81.55 483.38 P
0.14 (ge Speaker widget surrounding the) 154.82 483.38 P
(entire window) 53.86 472.38 T
(.) 110.7 472.38 T
0.25 0.17 (Whenever any user talks, their associated Speaker widget) 53.86 453.38 B
0.25 0.47 (highlights. If they are speaking to the whole room \050as) 53.86 442.38 B
0.25 0.1 (opposed to whispering\051, the lar) 53.86 431.38 B
0.25 0.1 (ge outer Speaker also high-) 181.9 431.38 B
(lights. The \336gure shows user RonF speaking to the room.) 53.86 420.38 T
0.25 0.14 (This application takes advantage of two dif) 53.86 401.38 B
0.25 0.14 (ferent kinds of) 234 401.38 B
0.25 0.12 (channels provided in the system. For sending to the room,) 53.86 390.38 B
0.25 0.18 (the Jupiter object representing the room acts as a channel) 53.86 379.38 B
0.25 0.04 (manager) 53.86 368.38 B
0.25 0.04 (, dynamically updating the channel membership as) 88.2 368.38 B
0.25 0.17 (its contents change. The membership is not limited to the) 53.86 357.38 B
0.25 0.16 (users in the room; it includes all of the objects present, to) 53.86 346.38 B
0.25 0.2 (allow for the participation of non-user sources and sinks.) 53.86 335.38 B
0.25 0.25 (For whispering, the tool specif) 53.86 324.38 B
0.25 0.25 (ies a channel with a static) 184.56 324.38 B
(membership containing just the two users involved.) 53.86 313.38 T
0.25 0.09 (When the user f) 53.86 294.38 B
0.25 0.09 (irst enters a room, the tool clears out all of) 119.02 294.38 B
0.02 (the Speakers and V) 53.86 283.38 P
0.02 (ideoPanes; they were pointing at users in) 130.8 283.38 P
0.25 0.19 (the previous room. The primary Microphone and Camera) 53.86 272.38 B
0.25 0.24 (widgets are re-aimed at the new room\325) 53.86 261.38 B
0.25 0.24 (s channel, and the) 218.25 261.38 B
0.25 0.03 (application starts watching for transmitters on that channel.) 53.86 250.38 B
0.25 0.06 (For every transmitter found, one of the V) 53.86 239.38 B
0.25 0.06 (ideoPane/Speaker) 222.3 239.38 B
-0.12 (pairs is directed at the source or) 53.86 228.38 P
-0.12 (, if no video is available, one) 179.96 228.38 P
(of the audio-only widgets is used instead.) 53.86 217.38 T
0.25 0.33 (Supporting audio from other rooms is a straightforward) 53.86 198.38 B
0.25 0.19 (extension of the preceding. It only requires that the room) 53.86 187.38 B
-0.15 (objects acting as channel managers include in their member-) 53.86 176.38 P
0.25 0.24 (ship the objects in \322nearby\323 rooms. The application then) 53.86 165.38 B
0.25 0.15 (also watches these nearby room channels for sources, and) 53.86 154.38 B
0.09 (any found are added to some Speaker) 53.86 143.38 P
0.09 (, perhaps labelled with) 203.98 143.38 P
0.25 0.06 (the name of the appropriate room. Using Speakers\325) 53.86 132.38 B
0 F
0.25 0.06 (volume) 265.63 132.38 B
2 F
0.25 0.02 (feature, this audio is played more softly than it would if the) 53.86 121.38 B
(source were in the same room as the user of the application.) 53.86 110.38 T
0.2 (T) 53.86 91.38 P
0.2 (o \322glue together\323 a virtual and a physical place, a machine) 59.27 91.38 P
0.25 0.04 (must exist somewhere on the network with physical micro-) 53.86 80.38 B
53.86 534.05 558.42 738.14 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 536.88 558.42 551.05 R
7 X
0 0 0 1 0 0 0 K
V
5 10 Q
0 X
(Figur) 186.39 544.39 T
(e 3:) 210.1 544.39 T
2 F
(An example of a tool for in-room communication) 227.87 544.39 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
%%BeginBinary:  75740    
499 229 399.2 183.2 0 102.53 555.17
 BEGINBITMAPTRUECOLORc









9j
X@

:z#z#z"
=C68042W,C68042>C680

<5:5:5
<80C680C680C680C680C680C680C680C680C680C680C680C680C68042W*80C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C68042<80C680C680C680C680C680C680C680C680C680C680C680C680C68042

;#z9z9z#
80C6;80W+80;804280

;#J"J"J#
C680=80W-80;8042

;58585
<80C68042804280428042804280428042804280428042804280428042W,804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042?804280428042804280428042804280428042804280428042804280C6804280

;5
X=C6808080428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280C680808042

;&j'
80C6804280X2C680C6804280

;'z8&
C68080804200X0C6C680808042

;&9595859&
80C6804280580C680C680C680C680C680C680C680C680C680C680W,80C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C68080580C680C680C680C680C680C680C680C680C680C68080C6804280

;&8z#z$z#z"8&
C68080804268042C6VA8042C6C668042C668042C680808042

;&8"J"J"8"J"9i=&
80C6804280C67C6V?42808C680C6804280

;&8"J"8"G%J#J#J"8"J"8":w:"9&
C680808042804428000000000E0000O;0000SB80C6542808042C680808042

;&8"J"8"E(J#J"8"J"8"G"8"9&
80C6804280C6480C600000080800000PG0000S.4280580C6008080C6804280

;&8"J"8"D%J$J#J"8"J"8"J"9&
C680808042804428000008080G000080O;8080SB80C654280442C680808042

;&8"J"8"C$:#9%9':%:%>%:#9%:%9*9*9#9#8'9#9%:%8#8"8%9&J"8"J"8"J"9&
80C6804280C6480C6000080808000000000000080000000000000000000000000000000000000000000000000000000800000800000000000800000800000000000000000008000000000000000000000000000000000000000000000800000RM4280580C648080C6804280

;&8"J"8"J':&8'8'<'='8':):)C&<'8)8*:"J"8"J"8"J"9&
C680808042804428080000808000000080800000000080800000000080800000000080800000000080800000000080800000008000000080000000800000008000000080800000000080800000000080800000808080808000008080000000S!80C654280442C680808042

;&8"8j8"8"B$>$>"@';(=';$>"9"="9":$?"?$<#@$>$J"8"=%@"8"J"9&
80C6804280C6080C6000080000080808080800000800000808000008080808000008000008080808080000080800000808080000080808080RM42800000000080C648080C6804280

;&8"9y9"8"J$8$8%G&A#?5<(8(<#8`&@$J"8">%?"8"J"9&
C68080804280804280?000080000080800000000000000080808070000808000008080000080800000808000008080000080000080800000800000808000008080808080000080000080S"80C6808000004280442C680808042

;&8"H$8"J$8$B)8$:(<$;$8$J$<%>$8$J"8"J"8"J"9&
80C6804280C6008080C66000080000080808000008000008000008000008080808080000080000080000080O 00008000008080000080000080S&4280580C648080C6804280

;&8"9i9"8"I#H#J#J$8$I';$J"8">#A"8"J"9&
C68080804280428000000000D0000A000080000080000080000080000080S080C600004280442C680808042

;&8"8#F"8"B$8%;(8$;$;(;#9#<$;5;":$8(;$;$@(J"8"="C"8"J"9&
80C6804280C6808080C680000000000080000080800000800000800000800000808000008000000000000080;000080800000808000008080000080800000808000008080000080000000800000808000008000008000008000008080000080S#42808080C648080C6804280

;&8":z"8"C(8'A'8'<'='8'J&G'8,8'J"8">%?"8"J"9&
C68080804280080428080000000008080800000000080800000000080800000000080800000000080800000000080800000000080:80000000808000000000808000000080000080800000800000000080S(80C6808080804280442C680808042

;&8"J"8"D%;%9#9#9%:%9#9%:#9%:%9#8#8#8#8#8#9'8#9#8#9%:'8#9%9#J"8"J"8"J"9&
80C6804280C6480C6808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080S$4280580C648080C6804280

;&8"J"8"J"8"J"8"J"9&
C6808080428044280V?80C654280442C680808042

;&8"J"8"J"8"J"8"J"9&
80C6804280C6480C6V?4280580C648080C6804280

;&8"J"8"J"8"J"8":g:"9&
C6808080428044280V?80C65428042C680808042

;&8"J"8"J"8"J"8"9#E"9&
80C6804280C6480C6V?4280580C680808080C6804280

;&8"J"8"J"8"J"8";x8"9&
C6808080428044280V?80C6542808042C680808042

;&:58585859&
80C680428044280428042804280428042804280428042804280VA42804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280427804280428042804280428042804280428042804280428064280428042804280428042804280428042804280428080C6804280

:)z"z8"z"z9&
804280808042008074280V@428084280642C680428042

:'j8%
424242424280X180424242

:(z8&
C6C6C6C6804242X0EFC6C6C6C6C6

=$8j9"
804280X.80

<%J&
80808042X3C680808042

;&:z;&
80C6804280X*EF80C6804280

;&;Z@ZJZJZ<&
C680808042P$@PFP$O5EC680808042

;&J"J"J"JjJ"<&
80C6804280P(8FI8FRI8FJ4I8F80C6804280

;&=z"Cz"Jz"J2>z"=&
C680808042P EF8F<EF8FPIP EF8FMEF00EF00EF00EF00EF00EF00EF00EF00EFAEF8FC680808042

;&J3J&
80C6804280VLEF00EF00EF00EF00EF00EF00EF00EF00EF00O#80C6804280

;&JjJjJ&
C680808042P78SK1O$C680808042

;&J$J%JzJ&
80C68042808000000P%EFEFEFEFT(2EFO#80C6804280

;&J&?aC#J&J$:$J&E$J#D"J"9"9"9"9"B)J&
C68080804270000EF00000000>0000EF0000<EFEFEFEFEFEFQ*000000EF0000EF00=000000O30000000000000000EF00EF0000=C680808042

;&J(>(B"J"8"J#c#9$J&E%J"E"J"9"9"9"9"A&8"J&
80C680428060000EF00EF0000EF00EFEFEF0000EF?EFEF<EFEFEFEFEFEFEFQ"0000EFEF0000EFEFEF=EFEFO3EFEFEFEFEF0000EFEF00EF>80C6804280

;&J&D"J"B"J#9+8%J"8"J"9"9"9"D"8"J&
C6808080427EF00EF00EFEF70000DEFEF0000EF00EF00EF00EF00EFEFEF00Q$EFEFPH00000000EFEFAC680808042

;&J&D(9$9#;%8#;%8#?"J$8)8$J#:"9#8%8`9a)8#=#:#8#8%9#9#:$J"9"9"9"B#:"<#:$9#B&
80C6804280700EF00EF0000000000EF0000000000000000000000000000000000000000500EFEFEF00EF00EF00EF00EFEF00Q$00EFEF000000EF0000EF0000EF00EF000000000000000000000000000000000000000000O$EFEFEFEF00EFEF0000000000000080C6804280

;&J"8&@'8"9$:$:*:*=#J#8)8"J09'8"8*;$9':#9*8$J"9"9"9"9"J%8$9%A&
C68080804250000EF0000EF00000000EFEFEF00EFEFEFEF00EF00EFEFEF00EFEF00EF00EFEFEF00EFEF0000EF6000000EF00EF00EF00EF00Q/00EFEF00EFEF00EFEF00EFEF00EFEF00EFEF00EFEFEFEF0000EFEF00EFEF0000EFEF00EFEF00EFEFEFEF00EFEF00EF00EFEF0000EFEFO"0000000000700EFEF0000EFEF00EFEF00C680808042

;&J":$A%?$J$=#J#8)8"J"9#C#;"?"8#:$J"9"9"9"9"J$9#B&
80C68042804000000EFEFEFEFEF00EFEF<EF000000EF7EFEFEF00EF00EF00EF00EFR EF0000000000EF000000EFEFO!EFEFEFEFEF>00EFEF000080C6804280

;&I":$J%J$=#J$8)8$J#:"J$C$B$;"A$8%J"9"9"9"C#:"A%9$A&
C68080804200EFEFEF8EFEF0000<00EFEFEF006EF000000EF00EF00EF00EF00EFEFQ$EF000050000EFEFEFEFEFEFEFEFEFEFEFEFEF0000O#00000000EF0000EFEF0000EFEFEFC680808042

;&H":"J$J#J#9"c"8%J"8"J$D"8"A"8%@"8"8&J"9"9"9"E"8"B$:"8"@&
80C680428000EF;00EFEFHEF0040000EFEF0000EFEFQ$00005EF00EF00000000EFEF00000000EF00EFEFO$EFEFEFEF000000EFEF000080C6804280

;&F#I$;&8(8":);-;"J"u"9$J'8)8"9$9#8)8&:,9"8/8$J"9"9"9"9"A09$8&@&
C6808080420000000000EF0000EF000000EFEF00000000EF0000EFEF0000EFEF0000EFEF0000EF0000000000700EF00000000Q"EF00000000EFEF0000EFEF000000000000000000EF0000EF00000000EF000000EFEF0000EF00EFEF000000EFEF000000EFEF0000EFEFEF000000EF0000EFO"0000000000EF00000000EFEF000000EFEF0000EF0000EFEF000000EFC680808042

;&D$9"F$<s8';#8#=#8t8#J$dJ%:#8x&8r9$<%8$9"9$8#9$8$J"9"9"9"9"B%8$8#9$:$A&
80C68042800000EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF6EFEFEFQ*EFEFEFEFEFEFEF00EFEFEF00EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFO#EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF80C6804280

;&B)J'J"9"9"9"J&
C6808080420000EFEFEFEFEFEFP$EFEFEF000000T100000000O%C680808042

;&B#=#J$J&J"9"9"9"J&
80C6804280EFEFEFEFP!000000R!EF000000EFP.EFEFEFEFO%80C6804280

;&JzJ$J"9"9"9"9"J&
C680808042P78EFQ<EFEFEFP,0000000000O$C680808042

;&J"9"9"9"9"J&
80C6804280VLEFEFEFEFEFO$80C6804280

;&=zDzJzJj>z>&
C680808042P 8F<8FPJP 8FM2A8FC680808042

;&<"J"J"Jz<"J&
80C68042808FP-8FQ78FPL4EF8FI80C6804280

;&;z@zJzJz<&
C680808042P$EF@EFPFP$EFO5EEFC680808042

;&:j;&
80C6804280X*80C6804280

;&J&
C680808042X3C680808042

;&:z;&
80C6804280X*EF80C6804280

;&JjJ&
C680808042P?P6S,C680808042

;&J&
80C6804280X380C6804280

;&=Z>Z>Z>Z>&
C680808042P2P2P2P2C680808042

;&J"J"J"J">&
80C6804280P88FP98FP98FP98F80C6804280

;&?x5x"Ax5x"Axzx"Axzx"?&
C680808042EFOB23432B937355615F3D33851F2F83878B87858BAB9BABB3AD9F45518FB5D59181378159656D878F9BBFCFD7DBE3DFD5E3CDD1D9EBD9C7CFC9C5C7BD95B5ADA9A19995918D7F4D432783939B9F9FA399A7EF8FEFOB2D2D2D2929376B776F6B6F7773777F837B77877B877B83838787839393979B9797979B9F97979B9FA39F9F9F9FA7A79BC7DBD9D9DDE7DDD9D1B577D5D9C3C9C3DDD3C7A3DDDDDDD1C5B7C7BFC7D9CDD5EF8FEFOB99EF8FEFOB99EF8FC680808042J5J5
@OB435B478F81512F3D3F49AD3B3F7F73A19591A3BBA9A5C1ADB77B837BB9D9B54153B75B6771819D99BDB9D3D5DFD9DFDDD5D5DDE1DBD7C5D1C7BDC199B9B1ADA59D99939175755F357789919595999B99FOB3F2F2F2B2B3169636D6D717977796F737F79797F797F878B8F8F8B898989918D8D8D91958D8F93979B959595979F9F8DC1D5E3E3E7E1E7E3DBBF89DDE1D5CBD3DFE5E9B3E5E5E5D3C7D9EBE1D7DBD1DDJ5J5
@OB39815B537D6F4D553115CD4F2D432D6D91415FA9A579BDADDDB565359BBBF54967F14D595355994D718397A9A3AD9FB1A5B7BFC7CDC5ABA1B9A3A37B9B938F877F7B85735B9573316D6F777B7B7F8D9DFOB0121211D1D051D1D210F131B091B171B111B11111111190B0F0F0B0F0F2117131313171B1305090D111B1B1B0D15152595A9A3A3A7B5A7A39B7F67ADB1B3BDC1D1C3D1A1B5B5B5C5B9C1C3C9C5CDB3AD;&J5J5J&
80C68042806OB33472F938155756341378D2F3D7FA183898B7799A3B1C5D9AB455FABD7EDAF813B875D6D7D9F939FD3D3DBDDE5E1DDD7D1D9DDD9CBBFC1B7BDC7C185AD959DA5A5A19D95875949279B918B9999A58FA7FOB35292D291F33777B6F7373777773777B73837B83878B83838F8B8793939397978B879B97939B9B9F9F9B9F9F9FA3A39FBDD1E3E3E3DDDDD9DFB581D9D5D1D9E3DDD1A7B3ABD3DDDDB5D9D5CDDDEBC7D7S=80C6804280J5J5
@OB43634B8F854D333F434DB33B41757DA38D8F9B9D99B3C3D9B57BAD9DCDF1BD53539F5F6F8199B19BCFCDD1E7EDE9E5E9D5E1E1DDD7D1C5CDC1BDC38DB599A5ADA9A59F977D7F75358F93999B9BA99B99FOB372B2F292F2D63676D7575797975797D71737D73797D8787817D798589898F8D938B918D89939197979397979599998FC7D9DDDFDFE7E7E3DBBD85E1DDD5E1D9E5D5C9D5CDE3DFDFB5DBD7CFDFE1C1D1J5J5
@OB31775F53677D49673519E345235B3D996F21737F7FA5D1D9CFB5AF35B3D3FF5579C55161636DB55F93A1B7A7BDB9B5C7B7B1C3BFE1AFA799A3A3B55D857B757D8B87918963AF83318585958D8D8BA59DFOB291D21291D011D212117171B1B171B1F251B1F1B111519191915111D0F0F0513131D17130F09170D0D090D0D1B1F1F3787A9B1A3A3A7A7A39F8D67B1ADB7B1BFB5B7B1BDB5D1D1D1B5CDC9C1D1C795A5;&J5J5J&
C6808080426OB33472F8583556D633D436D2F376F8F8F7B6F899FAFC1C5C5B7396FD1DFE989954769697993A79B9B9B6BD3D5D3DBC7EDD3D3D9CFC3BBB3B3A7A3AFC1B59B95A7A1A19D957D5D4927776D757175977379FOB2D29292D2933777B6F737B837377776F6F77737B878783838F8F87879393979B979B8F8F9797979F9F9B9B9F9B9FA38FCBD1E3DDDDDDE1DDD5B57DE3DDCBA3ABC7DDDDD9DDE1E1E1B5BBA997B7D3C9D9S=C680808042J59$J$85
@O<43634B8D794D3D3B3F59A53D477F8B9B8D8D93AFA9C3C5C7BD73B9B1DBEDA75753956D7D89A1B797B193BDD9C9CFD7C5E5C7DDDFDBCBC3C9CBB5C1C5B9AB999DA5A59F9781857533876F7B8177F2F2B2BO=2963676D756B73757979717179757F79798B8B81858B7989898D91898D81858D8D8D959791919591959991C5D9DDE5E5E5EBE5DDBD7FDDE5DDC3B5D5DDDFDBE1E5E5E3B3C9D9B5C3E1CBDDJ59$J$85
@O<31775F5D5F7D4D753125CF39356D4FA56B27539D7DB5C5B9E98DCD5F9FCFFF4F5DA34F5F6F75CB5B7D5987BBAFC5C5A5C3BDBFCDFFB9B195A3939FA79B997B838787918963A5833D7561677D85F211D1DO=0F1D212117131B171B1B13131B171111110B0B190B1D110F0F13172125190B1313131B0D17171B171B1F3399A9B1B5B5B5ABB5AD8D71B1B5BBB9CFD1DDD1CDC3C7C7D5C1C5C9B9CDDDBDBF;&J5J5J&
80C68042806OB33472F8B795B71634D516933376F97877B7DB7AFBFC1CBD7B9456BCBD1E583835B49433B8FAF9B874F3F8DD3C3D9C5EDDDDDDDD9D9C7CDCDC5C9BB89B5B5A9ADA5A5A18F7D615727897D7D81978F7F7BFOB2727272D1F296F7B6F736F73838377737373777B878B7F838F93978393978B9B97938F9B9B9B979BA3A39F9B9FA3A38FC1D1D9DDDDE1E1E7D1B579DDD9D5D1E1DDE1DDD9BBC3B3DDE1C3CFB7D3D9D9D9S=80C6804280J58&J5
@O;43634B857D493F514F59A341477F81A58D89A9BDB3C1BFD1B56DB5CDD9E99167556F5B4779A9B799555D5DBBA5ADC3AFDFE5DFDDDDD9CFCFC7CBC98DB9B7ADB1A9A9A19F818773338B838D858B87FOB3737352D2D2D6D676D716D71737379757575797F777D838781858D8B89898F918D8981918D918D919999959197999991C9D9E1E5E5E5E5E1D9BD7BE1DBD9D5E5E5E5E1DBC9D1C3E5E5D5DDC7E5DBDDDDJ58&J5
@O;31775F595F6B5D734129BD3D356D4BA96B3941B9A9C1B5A5D38DC96FA9CBF953299F8151437DCB7781610195A19FD1A7D1B5D1BFBFB7C1C1B9BDC56F9BA98F938B8BA18D63B7873D7D75736B9591FOB2525312D290F2121212521251B1B1B1717171B111F151519191D130B0F212117130F1917251713171F1F1B170D1F1F3399A9B1B5B5C7C7B5A98D6DC3CDBBB7C7B5C7C3CDC5CDB1B5C7B3D9B5C3CDBFBF;&J5J5t5J&
C6808080426OB2F432F7F75595F63513F6133376F8B7D7B6FA3A5CBBDB9DBAB4563DBD5DB776B819F973B332B33575171ADCFD3DBC7EDCDD7D3E1A5BFBBB7B3AFB78DB1919D97A9A199997D615F1F77717D7179796F7DF=2D3523231F2D6B6F6F7F837F87837377777F83878B8B7F7F838387939397J9B9B9FA7A39B9F9B9B93C5D1E3DDE1DDE1DDD5B56BDDDDCDDDDDE1CFD5E1E1E1DDE1E1DDDDDDDDDDDDD9S=C680808042J5:$J5
@O;3F5F4B7B79573F515555993F477D87AB8B85A1A9C1BFBDD5B571BDD7D9EB75754BA98D57434B3F514F457DBBBDD5D3AFCFEDE3E5D3D1CDC7C5BFC995B3939FA9ABA39B9B8587773F857B8D7BFOB2F3733332D31696D6D6B736F77737579796B73797D7B818387878B83858989898D8D8D8D8D8D9191959D9991958D9191CDD5DDE5E5E5E9E1DDBD7BE1E5D1E1E5E5E1D7E5E5E5E1E5E5E1E1E1DFE1E1DDJ5:$J5
@O;2D735F3F5B6549733721C34935794BA97951558BA7B19FA9CF7FCD9BBBD9D38F11C3736B314149255D378D7587A9DDA7C1B9D1C7D1AFABB5A3ADA765A58591879D958D8D55B79D35816D9189FOB2129212129131D2121251B171F1B171B1B251B111523231519191D2B1D21212113131313131317171B231F171B2517459DB7B1B5C7B5B9C3AD8D69C3B5B3C3B5C7BFC9C7C7C7C3C7C7C3C3C3D1C3C3BF;&J5J5t5J&
80C68042806OB2B432F8B75596D5F57495D33376F8F836B6FB3B39BC3ABC7A34167DBE7C7676F9F9B894743433F6BAF83BFCFD7D5D9DDCFD3CFCFADABBBB7B3B3ABC1B9B1978BA9A59D997D65551F8D8185799F9D8B85F=3531312D1F296F6F6F777773777777737777777B8B8F8B8B938B8B939397J9B9B9FA3A39F9B9FA39BCFDBD9DDE1E1E1DDD1B56DDDDDD3C3C3D9C9CDD5E1E1E1E1E1E1DDDDE1DDDDDDS=80C6804280J59$J5
@O;3D5F4B8779553D494D519541478F8BA38B899FADA7BDBBD5AD6DB1D5CFE565714DB78953514F5F5BB961C1CDD1E1E3E5E5E5DFDFDDCDCBC9C5C9BBC5BDB1A59DADA7A19B858B7D3D8F939D95GOB3733332F2F2D6D6D71797975797579757979797D7D857D7D857D7D85858989898D8D8D8D8D8D91919599999193959987C9D5E1E5E9E5E5E1D5B96FE5E5E3D1D1D7C7CDD7E5E3E5E5E5E5E1E1E5E1E1E1J59$J5
@O;1B735F4B5B734D7D3321BF3D35854F9981355981B191A9D1C77BC5A9A9E9C3BD0BCB895D4D595503D3796381A591A3B5B1C3CDCDCDB5B9A7A395A9A79FB1A17B8F99838D55BB9D4181899DAFGOB292525211D0F2121131B1B171B291B171B1B1B1F150B15151D15151D1D21212113131313131317171B1F1F29091B1F419DA9B1B5B9C7C7C3B79B61B5B5D1CDCDE5D5CDC9C7D5C7C7C7C7C3C3C7C3C3C3;&J5J5J&
C6808080426OB2B472D8575556D5F4D495D2F3773AB797D7DABBFCDC5C3DD8B4B61DFE3CB5D779F7D87317D3D457BB199D3D5CDC7C7D5D5BBBFCBD1CDC3BBBBBBAFA7B5A7A3ADA9A59D998159591B7F7D7B6F878F7F77FOB2D31272D1F296F6F6F77777377737B73878783877B8B8B8787837F83979797979797939397979B9B9BA39BA3A3B5AB9BCFD5E3DDE1E1E1DDD5B56DDDE1DDE1E1DDDDCBB797B7C3E1E1E5CBD3DDE1D1DDS=C680808042J5J5
@OB3D65558D79533D4D5151953D478F95A58187A5B3CFC7D1DF916B9FD9CBD7537B5FB3955985734767B573D1DFD5DDDDDDD9DFCFDDD5CFD3CDCDCBC1B9B9B9B5AFADA79F9B858F81398D7F897D97839783GOA33352D2D2B6B6D6D75757579757D7577736F777F7D7D798B87818789898989898985858D8D91918D959199999DA18BC9DDDDE5E5E5E9E5D9B96FE1E5E1E3E3E1E1DDD7B5C3D1E3E3E7D9E1DFE3D5E5J5J5
@OB1B69755D5B614D6F3321BF3935A35FB3634779A9C1B9CDD1BD61A7ADA5E193B709ED917955AD39219743859FA5A9A9ADBBB7BDBBB7C1C1ABABB99F979B9793A18F99918D67C9A13D897185798579BD8DGOA25312D291D2F21212929171B171F171F2D291F111515111D1923192121212121211D1D13131717252D171F1F1927339DADB1B5C7C7B9B5BB9B61C3C7C3D5D5C3C3BBCDB9CDCDD5D5D9D5DDD1D5B7B5;&J5J5J&
80C68042806OB2B472D8F754D69634D495D23377F67A97B7BB5CBCDC5D1D97F5D51DFD9D5757DB38D8D3F8553519BB391D3DFC5D1D1A7B3B7BFD5C3C3BFC5C5C1C1ADB5879FA99FA5A1938169592B919B99999D998B91FOB232335351F296B6F73778373837F83877F8B83877B8B8B7F838F8787979797979797939397979B9BA3A39F9F9FA7A38BC5DFE3E7E1DDE1DDDFB56DE1E5E5DDD5D5BBC7E1E1E1E1E1E1D9DDC9D7C9D5DDS=80C6804280J59$J5
@O<3D655189794939514F539341478D77AD8D95BDC1CDC7CFD581658FD5DDD5437979BFB95B876F5387AD6DD1D9CDD5D3BDD5D5CFD7D3D5D1C7C9C5C5AFB79799ADAFA9A5A3858F8137938D97A78FFOB333337352F2B676D71756F75736F73776F7D73777D7D7D8387818B7989898989898985858D8D919199999595919D9589CDD9DDE1E9E1E9E1D9B96FE5E9E9E1D7D7CBD9E5E5E5E9E5E5DDE1C7C9CBD9E1J59$J5
@O<1B69915D5B6749734113CD453589658F6B418DA7CDB9DDF3CD3597BBBFD5619701FFC76F79834541812D85AD9DB7C589BDD9BDC9C1B3AFB9ABA7A7A1A9856D8F9D8B879167BFA1418591A5BB9DFOB212129351D1D2B21252929171B171B1F17151B1F1F15151519191D112121212121211D1D131317171F1F1B1B29232D3D9DADB1B5B9C3B9C3AD9B61C7CBCBC3C9C9B9B7C7C7C7B9C7C7BFC3D5CDBDBBC3;&J5J5J&
C6808080426OB27472F937955655733395B1F3769ABA38577B9CBC9CBC3D56F6765C7EFCB8163B1676D4B893D5BFFAF91CBDBAF9BB5ABB3B7C3D1C3BFBBC5BBB7BDBDAF9F97A3A99B9D93856D5D1F83777F678B87837BFOB2F3131312D29637373737773838377777B778383877F838B8F8F8F8F939397979393939797979F9FA39F9F9B9B9F9F8BC5DBE3E7DDDDDDE7D5B171E1E5E5E5EFE5E1E1E1E1E1E5E5E5E5E1E1E1CDDDE1S=C680808042J5J5
@OB3965458F7D4D35454543A13B4995A5B58D91C1C5CBC5D1D5716595D5D7D73F8187B993578D6355FDCD6BC5D5D1BFBDBDD7DBD3D3D3CFCBCDCBC9BFC1C1ADA99DABAB9FA38D93893D91858D7597959B87FOB3F3333312F2B5F7171757971737379797D797373798387818181818189898D8D8989898D898995959995958D8D91958DCDD5DDDDE5E5E5E1DDB573E5E9E9E9E5E9E5E9E5E5E5E9E9E9E9E5E5E5CFE5E5J5J5
@OB17697B535F7D45672303D54F27A379935D3D9199BD99CDD5BD1985D1B1E1558509FBC3616F9329D1D13B99A9B9978D9BAFB3C1C5C1BDB99DB9A7B1A39FA987719D9991915DC397418D818971A191C191FOB2D252531211D232525171B251B1B1B1B1F1B1B1B11151907191919190F0F13130F0F0F1321211B1B1F1B1B2525291B2F9DA9B1C3B5B5B5B5AD9765C7CBCBCBCBCBC7B9C7C7C7CBCBCBCBC7C7C7C1B5C7;&J5J5s5J&
80C68042806OB27432993795565573B435F2B45619FBB8573C3CBB9CFCDDD77756DD9EBB59955AF2723557B938FABA7B3CBCDC1D1CD9FBFB7CDD1C9BFBBBBB7B7BDB3AFABA39FA9A5A1938561611F91919DA1A19D9B95F>353535312D295B73737773737B7783837F77777B7B7F8F8F8F838B8F939397J9F9FA39F9F9F979BA79BCFDBD9DDDDDDDDDDD1B175E5E9E9E9E9E5E5E1EBE5E5E5E5E1E5E1E1E1E1DDE1S=80C6804280J58'J5
@O:395F518F7D5135454D3FA137478999B18D9DBFC5BBC9CDDF798175D9E1D95581A93B3B5579817F979BAFC9D5C9D5CFC7CDD7CFD5CBD1CBCBC7C9C1C3C1BDB1AFABA7A3A38999893D9B9DA19BA591FOB373735332D2B5771757975757D79737383797B7F7D8381817F857D9389898D8D8D8D8D8D898995959B9595978D8D9D87C9D5E1E5E5E5E5E5D9B577E9F1EDEDEDEDE9E5E1E9E9E9E9E5E9E5E5E5E5E1E5J58'J5
@O:177371535F6F45672B03E74139A96D975D538399AD9DCDD1C53145D9C7FF798F7D8161552DA3915191737DA599B7C18DC9CDC1B7BDAFB9B9B5A7A3B19F9BAD9D9D9995916BC3A941A9BBA1A9BFAFFOB292935252D1D1B25171B17171F1B1B1B151B0D111F151919272715250F0F13131313131321211B1B111B1B0D132523419DA9B1B5B5B5B5B5A99769CBC1CFCFCFBDCBC7C7CBCBCBCBC7CBC7C7C7C7C3C7;&J5J5s(J&
C6808080426OB23472D837D516557334F5B1B3367A3B17D6BC3C7BBD3C5CD696B89B7997B736D8389838D8389898D91919195CBC1C5C9CDCDC3CDBFBFBFC5C1BDB3B3AFABA3A39F9B97A1855D611F837F8B57779F7F7FFO3313535312D294B7B7377777777777F7F83837B7B877F8B878F8F87878F8F93938B8B878793979B9BA39FA7B5ADABA78FCFDBD9E7E7E7DDD9CDAD81EDEDF1F1EDE9E5E1E5E1E1E1DDE1S=C680808042J585J#95
@635635381814D3541454D9D3745839DB3858FBFC1B1B7O*5F676BAB998155637155615B615D59596363656DC5C3C7C9CFCFD3CFCFCFCFC9C3BDC3C3BFBBB3B3AFABA7A38993893F918F99738F919B89F3337O=2B476B757979757979717175737D7D79837D798181798B8181858593938F8F858993919995999795A1998DC5D5E1E1E1DDE1E1D5B183F1F1F5F3F1EDE9EDEDEDEDE9E9E9E5E9E5E5E5E1E5J585J#95
@613778335636B45752301E34B239771A55567839597A3O*9F2B09A199AD51A393837979794F69876565574D99B5B9C9C1C1C1C1BDBDBDABB5BDB1B1ADA9A1A19D9995956BCDA9358D7D9587B595AFA3F2529O=1D0B13171B1B291B1B09090D1B1F1F111515111919111D19191D1D13130F0F1D2109171F1B313511273141ABA9B1B5B5C3C3B1A59375D3D3D7E5D3CFCBBDBDBDBDCBCBCBC7CBC7C7C7C3C7;&J5J5J&
80C68042806OB2D43299B83595B5F534F6D575B636F6B5F6F6F6F636F636763676165696D7175754B43474B3B65A3ADCBD1E5EDE3DBAFB3C5C9C9C9BFC5BBB7B3B3AFB5A7A3ADA99B9D99855D651F87858D91959F9399FOB2B2B2B3123293B6F6F737F7F777777776F738387838B7F7F938F7F8B8F8F939383837F7B6B6373938F8F7783AFABA793D3DFD9DDDDDDD9E3C9A59DF5F5F5F5F1EDE5E5E5E9E5E5E9E5E9E5E1E1E1DDD9S=80C6804280J5J5
@OB3163518779553B3B474B63454D53534D535151535953595D595D65696D717579796B515759596997ABBBCFE9EDF1EBBFC3C9CBCBC9CFC7CBC5C1C3BFB7B7B1AFABAB9F9B8D938D3D95858B8F95919D95FOB3B3B3B33312B377171756F6F7979797971757379757D83838981837B8585898981817D795F577195938D5B779FA39D91CDD9E1E5E5E1DDDDCDA79FF9F9F9F9F5F1EDEDE9EDE9E9EDE9EDE9E5E5E5E1DBJ5J5
@OB135971415F7345633D0FA36751653F49494D4D3F3F3F3F433F43474B4F53575B5B614D45555D4B8DB9CDDDCBEDEDD9ADB1ABBDBDC9BDB9B9C1BDB1ADA9A5ADA19D99918D5DCDAD419185999D9595B7B3FOB292929252D1D0113131717171B1B1B1B13171B110D1515150F1915230B0B0F0F3535312D554D25372541476D47192345A1ADB1B5B5C3BFB1AF9991DBDBDBDBD7D3BDBDCBCFCBCBCFCBCFCBC7C7C7C3CD;&J5J5J&
C6808080426OB4B474B4B4B454545494D4D51554F3F37413F4B4F61655B63716B6F7381817B7B835D4F79878B999D9B9B8B8377B1B1B1B9CBC1C9BBBBBBB7B7B3B3B9ABA7A3A39F9BA19D856169238B7F8765977B7385FOB353535352D2D336F7B7B7F83837773776F737B87878B837B83838B837F87877B6961554D3D45395597713FFD7FA79F979DD9D9E7DDDDDDD5C993AFF9FDFDFDFDF9E9DDD9E1E5EDE5E9EDEDE5E1E1D99BS=C680808042J585J%85P0
@<3F3B3F3F414749494D515155595F5F45414F5B5F63676B7173797D83O$8B8991855D79939595A1A7ABABA399B5B5B9C1C5C5CBCBCBCDC7C7C3C3BBBBB7B3B3AFABA39F8D978F41978D956787878F83F37373737O(2D6D6B6B71737379757971777F79797D8B7F87857D75878981716B63574F3F473B5789794BFD7D999195A1E1E1E1E5E5E1D9CDA1BDF9F1DFD9E3E7F1E9EDEFEFE9E5E3DBBBJ585J%85
@<3531353527392B2B2F3333373B4D5541413D494D5559596D65757971O$79858DA559799DAFB383B199A199819797899199A7BDB9B9ABB5B5B1B1ADA9A5A1A19D9995915DD1BF45A18991599991A391F29292929O<01211313091B1B1B171B1309111111150B111927150D072B55575D55494131392D49214955FD3131294983B1B1B5B5B5C3BBAF9DB9F9F1F1F1E3D1C1D1D9D5D9D3CBCFE1E1CBC7D5CDB1;&J5J%85J&
80C68042806OB31393D3B4543514B4B4F5353575F4B51695F5F6D7171676F73777B8983878B878B43535F6B856D83BDC1B7B37571B1B1B9BDC1C5C1C1C1B3B3B9AFAFB5B1ADAD9F979393855D692F83817B899F9F8FA1F31353935O<336F7B7B7F837773777383838783877F837B7F838B938783776751514D49414141414565617D839B979BC9D1D9DDDDE7E7E3B5839FC5D5C7BFBFCBCF77A7B5EDCFC3DDEDF1F1EDE5C939S=80C6804280J49385J5
@333B3F4945515359595D6361656F67536B6D6F777D8187898991979995975B716975819B91FC5D3A7A3B1B9BDC5C5C9C5C1C3C3C3BBBFC1B7B3AFB1ADA7A3A1898F91398F7F89878F919B9DFOA33373B352F2F2F6D67676F73797579757373776F7783877F83877D858981715B53534F4B4343434347696585858D8985D1D9E1E5E5E1E1D9B993AFC3D1D3CDCBD9DB83B3B3EBBFB5DFF1F3F5F1E9CDJ49385J5
@252D3145454D45555559515D615D7B455D695D65797D7585898D859591A18175838F9F998DFC1C98985B1899F95A7ABA7C1B5B1B1ADAD9FA9A5A193A995919D6BDBB153998D8595A195A5BBFOA25292D35212101212121171B1B171B171B1B1F291F1519111519151D2B3545514545413D35353535394B47552725214FA1A9B1B5B5B5B5BF9B819DD1EFDDC9D5D5E58DBDC1F9D1B9D1D3E5D7D3CBAF;&J5J5J&
C6808080426OB3B3F3F43474B4F4F5357575B5B5F3D6363676B6B6F6F7373777F83838B8B8B8F8F537B7F7B774F4B5B818799A3ADC9B9B5BDC1C1C1BBB7C1C1AFAFAFABB1A39FA59D9D8F8559692B837B876B95896F85FOB272B2B272329337B7B7B7F7F777F7F7F83838383877B7F7F837F8F837569554541414545393D49453D53738793A3A78FC9D5E3EFDDDDD9D1A57185858581817B9D9971534B59513F87F9FDFDF9E1B53BS=C680808042J5J58(8%
@OB494D4D5355595D5D63656569696D6573717379797D7B817F858D91919999979D9B6B858993936D698589999BB3B1D1BBBDC1C5C5C5CBC7C3C3BFBDBFB9B3B3AFA59F9F9F898F8F359187937997878B81FO3373B3B37332B2D67676B6F6F796F6F6F73737575797F8383878381757D6D5745434347473B3F4B473F476F7989999D8DD1DDDDE5E1E5E1D9A9738787898381899F635B594F4B95FBFBE5B947J5J58(8%
@OB454949415155595951616165656985616D7D757579857D8981898D8D9595A199A5919FA3B9A7716D3B59778DA193A1AD8DA3A7A7A7B9B5B5B5ADB9ADB5A5A19DA591918D6BC9BF4F8D919D7589959F9FFO325292925211D0121211317171B1717171B1B0D0D111115151915190D4D4F4945353539392D313D39313D33110F1F2341A1ADB1CBC3B5B1A98B6579796B758185915149595D5591EDEDC79B51;&J5J5J&
80C68042806OA3B3B493F474B59535757575B5B5F416D63676B6B6F737377777B77777F7F959393638F8F875983635F6B5B738383A7B7B9BDC1C1C5BBB3BDB3B9AFB5A7B1AD9F9B979D8F8555652B7F73777D858F87GOB313131352D29336B6F6F7373837F7F7F7B83878B877F7F7F8F7F83836555413D45454545415549455149799B939FA38FCFDFE7E1E1DDD5C19381757781858585858185897B7B89899F7FE1F9FDFDD741S=80C6804280J5J58"@59"
@OB4949494D5559596365636569696D696F6F7377797D818185858983838D8D959F9F7995939F87757F7B75797D8D8DA1B3BDC5C5C5C9CDC3BFC3BBBFB7B7B3AFAFA9A79F9D898B8B378B81857B8381918DF=333333372D2B2D696D6D7175756F6F6F6B73777B778183818587877F673BA7B8B8995998DC9D9E1E9E9E1DDC98D897D89838787878785898B8B8B8B8B7F6FDFC9J5J58"@59"
@OB4545494951555951616D616565698961797D8175797D7D8181858D8D898995A9A9AFC1CFC58579938F8F7D97A7A775779F95A7A7ABABB1B1B1ADADA9A5A5A19DA59591996BC5BB41957D81899185ABAFF=252525292D1D011D212125170D171717131B1F231F2315230B0719435949A6D330F1B1F419DADB5B9B9C3AD9961594D677579797979676B7D79797D7D8981EDCD;&J5J5s$J&
C6808080426OB1F1B1F2339474B4F535757575F5F4171676B6B6B7973777B7B6B2F3F497185958F4F879BA78D676B6F77775F5397ABBBB9BDC1C1C1C1B3B7BDAFAFAFA7B19F9F9BA19D8B776381816D81877783836B7DFO72B313535312D376F7B7B6F7F77777F8383878387878B8B8B9B7783555959554549493D55555D4D514D5569798FA39F9FD3D1D9E1E7E3D1BDA599918D898585817D7D7D8185817FA983S=C680808042J5J%85>5r%
@OB2D292D333B55595D616565656D6D6973757979797981858987894B4D4D738795996B91A5B1957F7B7F8383655F7FA5B5C1C5C5C3C3C3C3C7BFBDBFBDB7B1ADAFABA39F998573837F6D7F9385938F877BF3B33373762D6D6B67716F79796F7373777379797D7D7D8D7B7F57A575F4F534F576B7B7B99958BC9D5DDE5DDD9DBC5AFA19995918D8985818581858783818DA975J5J%85>5r%
@OB292529212D5155595D6161616969896571757575797D8185918D5F492F657995B37FABBFCB65A5696D8D8D91695979899195A7B5B5B5B1B5B1B9ADB9A5B1A99D999591958161758D6D8D9D8181999B89F2925292961321132113171B1B171B1B1F1B1111151515250D4349A4951414541495D6D351F1B45AFB7BFC7C3BF9B956F716965615D6B676355636779758189A979;&J5J%85J&
80C68042806OB1F1F1F1F23273B4B4F432F335161476D636363636F81817773632F3F4D6D7989774F838B85675BEBF7E79F454B97A3B7B9BDC1C1BDA3B5BDABABABA7ADAD9FA3A597998B7D737B7D5D75778F8D8F83A3F35313131O<296F7373737377777F837B7B777B878B8B8B8F7F774D5D5D5D555559555D61595161596571898B9F9F9FC9D5D9DDE3DBD3C3B9B5B5B5B1A9A59D958D8993858179797D797D7D7D7D7D7DS=80C6804280J-8(85J%85B5
@2D2D2D2D31374B595D614D41636F6F7171717DO+857F7F4B4D4F717D89936B8D95ADAF67D9E5F1EF736B919DB1BDC1C3C3BFC5B9BFBBB9BBB9AFAFADB3A7A799977B63717F5B75819B8B818D91F3733333362D6D7575757579796F737F7F7B7F777B7D7D8183734FH5B67738B75959589D1DDE1E5DFD7CDBDC1BDBDBDB9B1ADA59995918D8989817D817D818181818181J-8(85J%85B5
@292929292D2539555965513D7761796D6D6D79O+8189935F4941535F89A77FA7AFCDD371FBFFFFFF71616571859FA3B5B5B1AD9BB1A9B5A997A1A1A9A1999599A18975577169759BA59985A7B3F2925252560F21171717171B1B171B11110D111F23151519153741H4D59657D3F1B1B53A1ADB1B5A39BA191918D8D8D89817D757B6561616B59515F635F636363636363;&J5J5u0J&
C6808080426OB1F1F232317233541431B1F2B274D47655F6D4B61717D5B6363532B3B539F9195959997838F4D5B635757836F75999DB7B9A9AFBDBDBDBDBDB9AFABA7A7A39FA5A19D8F875F737B796B857B998F976F8DFO)3539393927232D7373737F7F837F77877F8B7B7B878B8B8B878B6B415555596159555D5959556961657181797B8F9393D3DFD9D9D1D3C1B9B1B5ADA99D9591858181817D757579S=C680808042J5J5C5
@OB2D2D31313731374351373D37354F55676B6D5963737D7B716D7149494D9593979597A18D957F77837579918F77A1A7B1BDABBFBDBFBFBFBFBBBFBDB5B7B3ADA7A39F9F956D856B775F8587979B898B89F;373B3B393733317175756F6F736F79776B7B7F7F777D7D7D798D67H6773837B7793978FCDD9E3E1D9CFCBC1C1C1C1C1C1BDBDC1BDB5BDB5B1A199958D8989858179797DJ5J5C5
@OB29292D2D2D2D29354D4B414131415159756D5555657D716D87754D45217B858995A5BBA7C1CB8B7979618D85697167859F9DADBDB1B1B1B1ADAD9BB1A5A1A99995918D9169637D85558591A5A58D9FA7F;292D2D3925211325171717171B171B1F252311111F151515112F2BH5965756D3B252953A1ADA3B1A9938B9191919191919F9F919F978D8581837B775D595967635B5B5F;&J5J584v0J&
80C68042806OB1F23171B1B27272F1F23396365697D85856F535D69434D7D574F2B414583B3D3D1DFDDD5B39BC5ABC7CBCDD3D1BFA7A9B5B3BDBDBDB3C1BDB9B5B5B1B1ADA39FA5A19995839F9D8359635B877B8F677BFA353539352D2D296B7377737F8383777B77878B8B87878B8B8B875D394141495D6161515D6D697971655D738B8F97D7DFD5D5D7CFB9B1C3B9B9B9B9B9B1A9A19D9189857DS=80C6804280J58595J5C5
@;2D31373B3B35353F3D413955656B7F87857B5F616D594B7F695B37;7FA9B7D3D5E1D9C1A9C19FBDBFD1D1D5CFA1B1BDC5C1BFBFC3C3BF5B3B3ADB1ADA7A19793637F6F615971679387858385F;37373B372F2F2D697579756F7373797F7B797B7D79797D7D7D8965H7B73675F6F8F9393D1D9DDDDD1C9C1C1BDBDBDC1C1BDBDC1BDB5BDC1C1C1BDBDB9ADA5A5998D8D85J58595J5C5
@;292D2D313131312D41453959655D7179858569434F8F5971476541;438FA3C5BBC3BBBDA5DF95A3B5B385B7BD75818DA3A3B1B1B1B5B15A5A5ADADA999A1A5A16D897179596D719D916B979FF;29292D2921210F1D171B17171B1B1B110D11231511111515152B35H6D65595133212557A5ADADADA59D91919F9F9F91919F9F919F97919191919F9F898F8775696F5D55;&J5J5u1J&
C6808080426OB2317231B1B1B1B2F394B61693F5569939FAFB39357636F6F53754B2F416F3B537B838B878B8F694F415363736991A7A9ADB5B5B5B5ABB5AFABABB5B1A39F9B9BA59D8B8B6975936F839B8B8F93976381FO(2F2323273131295F6F7F73776B777777777B7B7B878B8B8F83877131232F3F4F5D615D65695D656561555551537F8BA3D7DBD7D7C5BDB9BDB5BDBDB9B9B9B9B5B5B5B1B5BBADA1S=C680808042J+8"85J5>/s3
@3137313B3B3B3B3D3D5B5DO38791A3A9AB674B65877145593D417B59638B9191A5959597797575738B9799A1B1B1B9B9B7B9B9B7BFB9B9B7B1B3ADABABA79F9B996973715D77A5959D9F897F7FF@3F33333733312B5B716F717969757B7B797D7D7D79818185758B7B31313D4D5D6357575349838F9FD1D5D1D1CDC5C1BDBDC5BDC1C1BDC1BDBDBDBDBDB5B9B1B5A5J+8"85J5>/s3
@2D2D2D31313131391F4961O37D95998FD155254BAD7555553941855D51798DBDA9AFC1952F475D61B195697581939B9BA99BB5A9ADB5B5A9B1A1A99999999189956981897F6DBFAF99A98D938DF@2D21212525311D1F1317251B1D290D0D1B1F1F1F1107070B0D1D3B312D394959554949452F152163A5A9A5A59D95919F9F958DA3A39F919F9F8D8D8D979B978587;&J5J5J&
80C68042806OB2317231B1B1B271B3D79979791898D8F87776B3D43639D6739575741375783A1BFBBAFA3A55D61CFD1B793718183A1A9A3ADA3ADADB1B1B5A7A7ADA9A5A5A5A1939987775F5D8B6377A19DADAFAF7F97FOB2727272735312D5B7B7373736F837F8783838787878B8B8F8783713539393D415151515D5955554D4D454D49577F8FA3D7DBD7D7C5BDB9B9BDB9BDB9B9B9C7C7B9B5C3BDB9B9B9B5B9B5BFB5B5B5B1B1S=80C6804280J5J%85C5
@OB31373139393B37393F538D8D938B91837B695D35314B77795F4D4B3F454B719DCBC5B5A9A38B5DADD1D9D999ADADA9B1B5AFB3B1AFB1B3B7B7B5ADABA7A7A7A3A39B95956B5D956D71999BABB9B99DA1F3737373552F57677175756D736F7773737979797D7D8179877BH4F474F4B4D83939FD1D5D1D1CDC5C1C1C5C1C5C1C1BDC1C1C1B9BDC5BDC1C1BDC1BDB9B9B9B9B5B5J5J%85C5
@OB2D2D2D3D3D31253D31237373857D7379716D6165532547578F33414D414193BBD5DFE1D5B1897BC5D1C1FFB9BB63798193A1A193A1B1A5A9A5B1AD9D99999995918D9199755DAF8745C9A9B9D3D3A1BBF252525315211B21251717211B171F1B1B11111115151911193BH4139413D33152563A5A9A5A59D95919195919591919F9595919B91959F91918D918D8D9B9B9B9797;&J5J585J&
C6808080426OB1F2323171B1313315D5559656D6757535F5F673F3959D737B1195B737F335373B7A7A39BA777837F8F8F7B7F93A7A1A18F7B9DABA5ADADB1ADADA9A5A1A19D97978F87875B575D591B2733699DAD979BF>352B35393D31294B6F737F7F77837F837B837B87838B8B8B8B8375393135O"49414D59495D5555494D45455F878FA3C9D1D1D1CDC5C1C5C1BDBDBDB9C3C7BDB9ADC7BDBDBDB9B9B9B5B5B5B1B5B1B1S=C680808042J+8583J%85:5
@2D312F373B313333674DO"6F7565614D4D55573933BD5971453F697151495B99B1ADB3AD87A39F9D7F696D8DA1A9A39F9BA1A1A9AFAFB1AFADABA79FA7A59F959165635B59393743679BA99DA1F373B373B:2B456D716B6B79736F736B737F7D757D7D8181877F3933373F43L4B5F57574B4F4747558B979FD1D9D9D9D7CDC9CDC9C5C5C5C1BDC1C5BDB1C1C5C5C5C1C1C1B9BDBDB5B9B5B9J+8583J%85:5
@292D392D31352925277DO"6171615D6F6F777D3903FF4179532B4F75552F3595CBC7D9D975999599918B8F617579958D9183878BA1A1B1A1AD9D999195A18D91AB7F6D69593D253175A9C7C9CDF2929292D:1D19212525251B1B171B131B11030D15150707193F3925293135L3D5149493D4139393B1D1763A1A9A9A9979D999D99959595919195959F93959595959191919B8D8D979B9789;&J5J585J&
80C68042806OB1F1F231F17171F2D454D55532F27272F2F2F3B413543999DA753477385518979A9ADAFB99F8B59516767777D7B8163574B5F9D9DA5A9ADA9A9A9A5A1A1938FB5AB8B91C5615349571B2727277D878797F@3D3D41413727293F6F6F737F7F777F8377838B7B878B878F8F7F793D41414141O 6155537B779F6175454D678B93A3C9D1D1D1CDCDCDC9C9C9C5CFCFC5C1C1C1BBC7BDBDBDBDB9B9B9B9C3B5B5B1B1S=80C6804280J5J#85
@OB2D2B2F2D37352B2F454B55635149353B3B3D593F35396D6F619357639153877DA9A5B5B5C1A7854D5B5B6B818DB3B3A16169A5A1ADADAFABABABA5A3A3A39DB7B99791C7875F7563373535357F939F9DF3F3FO>45352B3B716D756F6F796F757B757D7F777D79818583833F434343434B43635749716D956377474F618F9B9FD1D9D9D9D5D5D5D1D1D1CDC9C9CDC9C5C9B1C1C1C1C5C5BDC1C1BDB9B9B9B5B9J5J#85
@OB293539292D393521455955513931314545395D4D351F01712DE9450B4145955FA9D5E1D3A9BB936B515161636B95A5B5978375837D8FA19D9D9DA595959199A9B5A191B9B769836D4B313131719DC5C9F3131O>41311D0113211717171B170D0D0D15111F1511190B154331353535353D3555492F57537B5569394135211B63A1A9A9A9A5A5A5A1A1A19D9D9D9D99A7999795A3A395959F91919F9F9B9B9789;&J5J5u5J&
C6808080426OB4D5D5557412F2F2723232B2F333F5D87BBD3C32F39BFDBD3C9CF7B374D57534D8DBFFBEF7767735F5B5B995D4F796D816551919DA5A1A99B9DA19D938B8D7FB7CFC7B59BAB8337612327272771838B8FFO$3D4145453F2323376F737377776F7F7F8387878B838B8B8B7B8387475F87776B47777F6F63BF93D787BB674F79938FB3C5CDD14CDCDCDCDC9C1C5C5C1C1C1BDB9B9B5B9B5B5B5B1S=C680808042J5J5
BO@57696F3D4B334331373D3F4D5D799DB5BF753B7DBDCDCDC399534D4B43578DB1EFFFD56D816F696B9D9353779FB3A58F95A1A9A5A9A99FA39FA39B8F8D9FB3C1B791A59F55612F353535738D9595FOB3F4347474D3131337175757979716F6F7577777D757D7D7D7F87853D557D6D613D6D75654BA77BBF81B56149538593AFCDD5D9D9D9D9D9D5D9D5D9D9D5D5D5D5D1C5CDCDC9C5C9C5C1C1B9BDB9B9B9B9J5J5
BO@49476D395F3D392D413949495D7D99B183A92D37B9A1AFB99D674D4155178DB5E5EDD3997D5D65597FCD8F8581959D9777838B87A9A591959191898189799F95A97779B359613931313165A7AFC1FOB31353939492D2D011317171B1B1317170D1F1F150D151515111939233B63534723535B4B258155995589351D231D25739DA5A9A9A9A9A9B7A9B7A9A9A5A5A5A5A1A79D9D99A7999591919B9F9B9B9B89;&J5J5v4J&
80C68042806OB716D6D4B4B332F1757B3A3A7AFAB856D6F675753575367515F37675F3F7163636BF36B6F6F777F5F675F8F91695D6F93555B939D9DA1A18F8D9987833B37338397A3B3B3AFAB674F232323235F818387FO$3B4545493F232D376F737F837F7F737F7F838387777B8B8B7B7F87535383939BBFD7AF83BBEFE7FBFFFFB367A1FF83ABC5CDD1D5D5D5D1CDD1D1CDC9C9C5C1C1BDB9B9B9B5B1S=80C6804280J5J5
AOA6F6F6B5D5147353B979FA3A5A18F714F4547454B4F4B51535B5B6D4B716F717BADB3797B838B6F7F779589A79B799F857DA9A5A1A5A5A1919D97754545416D9195A9ADA5A1835B3131313155818D8BFOB4B47474B4F312D316D716B736B6F756F6F7373797B7F7D7D7F83854949798991A3BB93679FD3CBDFF5FDA95D79F987A5CDD5D9D9D9D9DBD9DBD5D9D9D9DDDDDDD9D5D9D9D5CDCDCDC5C5C1C1BDBDB9B9J5J5
AOA6161613B556D39278363678B874F53595D594941133751493351695571796D6979D793858D955DA59DC1B9AFA393A9756575758387877F737F85795F413D3765998F818B8797652D2D2D2D3B81A7C7FOB3939393D3D2D2D052125251B25171717171B1B110D1115151115392F2F5F6F778FA77F538BBFB7CBDBE38F43599119799DA5A9A9A9A99BA99BB7A9A9A9ADADADA9A5A9A9A5AFAF9DA7A7A3919F9F9B89;&J5J5R,r4J&
C6808080426OB81857F7F7F7B2D1731574F4B4141454F414153595D615F63637B75754D796B6F6F4B7D7373736F5F6B576B7BB5614D515B7193CBC3D3D16DAB9F7B5F4F433B697DA5B3A5777D9F4B2323232327272737FD454949494D2729336B6F7B7F7F83838383877F8383878B877F7F8363638BA7B7D7CFDBEB8BD1D38FAFC5CDD1D1DBDBD1D5D1D5D1C9D1D1D5D1D1D1CDCDC9C5C5C1B9B9S=C680808042J5J5r4
@OB7F878B8B8B85553539493F3D414347434143495B5F616D7371757973737B797D7B597D7F7F818D6F816D7193BDA3878F77A3A3AFD5BBCDAB8FAB7F6D5B5149497F81A9A9898195552F31313133353745HO&4B4B4F35292D696D676B6F6F737373776F7375797D798383815959819DADBBB3BFCFD5DDE1DDEFE3EF6FA9C37FA9CDD5D9D9D5D5D9DDD9DDD9D1D5D9D9D5D5D5D5D1CDC9C9C9BDBDJ5J5v4
@OB8D799595959F7539094D51414135393941352F4D516169616D495B81A36D757985557D89897D915DB7A39DB98D8DA1978B85919BB395EBB37BB51169654D450171418F8B67637B6F392D2D2D3D312541HO"3D3D413129011D21212517291B1B1B1F171B0D1115111515353F3F678393A79FABBBC7CFD3CFDBCFDB5B896B277D9DA5A9ADA9ADA9A1B7A9BBB7B7B7A5B3AFABAB999F9F;&J5J5P5J&
80C68042806OB7D79777B8B87674F3F3B2F452B3D3F3B554F575B5F6963676B396F6F4B736F6F6F6B736B6F737B535F6B5B71516749A3B5A3B197FFADC97D4155555159534F49718BAB8FAB9D9347453D2F2B2B272B2FFF4949494D4D2723296B6F836F73837F7F837F7F8377777B7B837B7F736F8BA3AFE5E5D9E5E9EDEDB91F58FABC5CDD1D1D1D1D1DBD1D1D1D1D1D5D5D5D5D1DFD5D9D5D5D5D5D1D1D1D1CDC5C1S=80C6804280J5:4J5u/
BO)838795917F5B4D493D45373F4D49555D65676D676F7579617F7D69837D7D7B8981897B7F85717B8171958B6D8B93B7B1E9B9E9B58BB57161614B7381959FA5A1895F433F3D393935393BFO*4B4B4B4F4F35332D696D6F6D75736F6F736F6F737B797D7D877F7D67658199A5B9B9ADB9BBBFE7D7E7F3F3BF69D57FA5CDD5D9D9D9D9D9D5D9D5D9DDD9D9D9DDD5D5D5D5D1C9C5J5:4J5v4
BO)8D91AFABA5654945394541314945555961716975797175816D796D717979858D7D8D85899F758FB7A7D5A59975A5A9ADA9A1B3858375615D3F3D65675F8D79836F855131393535313545FO$3D3D3D414131210F1D212921171B17171B17171B0D1B1F1F1911315D4B677F8BABAB9FABBDC1E9D9D3DFDFAB498327799DA5A9BBBBBBBBA9BBBBBFBBBBBBADB7B7B7B7B3ABA7;&J5J5r5J&
C6808080426OB75676F737B7B6F47414941432B4543374F53575B5F6367676B5559737B736F6F7D6F817773737F4F5B5B6F6FA5B98F8FE1B7DFCBC1CDC1E54D5765696569614B6171998FA7A3896F595533393D2F2B2FFO$494D494D4D3523377B7B7F7F7F7F7F737F7F7F778383878787878B97737F8FA3BFCBCFD3D3CFC7AF9BC7D3F3FBDB97BFC9CDD17D5D1D1D1D5D5D1D9D9D5DFD9D5D5DFD5D5D5D1D1D1CDCDS=C680808042J(958$J5
A837B7F89858B65O24D374751475D6165676D71757377755D7F59817D7D7D8B8183817F8B6B737173879DBBAFABE3FFC5AB99FF81A7CF65676B67695F5B617579959D998D795957413D3B3DFOB4B514B4F4F37312D67676B6B6B6B6F756B6B6F797373777777777B8367738397A1ADB1B5C7C3BBA391BDC9E9E3CD89A7D1D5D9D9D9D9D9D9D5D9D5D5D9DDD9D9E1DDD9D5DDD9D9D5D9D7D9D3D5D5D1D1J(958$J5
A978589859F9F69O26741394D35595D6171696D717D81C73F89717D79797D9F818D7D89957F99A7AFADCDADA5BFD5EDFFB579FF899FB161595D59696D49615727C1837F6F9359493D392939FOB3D333D4141292D1321212525252517172525171B1B1B1F1F1F1F233D5D69798D9DA9ADB1BDB9B19977A3AFCFBD652181A1A5A9A9A9A9A9A9B7BBB7B7A9ADBBA9B1BFBBBBBFBBBBBBBBC9BBC5B7B7B3B3;&J5J5r5J&
80C68042806OB7F777B73736B754339472F47434B433753575B616367676B6F6F51674D6F7973776B918173777353DFC147337B83A3E5DFBF8BC3DBEDE1E1F55D7171633F5B5F7373779FA39F8D733F33272B2F3D3341FO$494D4D4D4D372D29736F6F777F7B837F7F7B838383838787878783877F6B4B3F5F6F9FAB8B6B7B9FB3ABCBF3FF9B97C3C9CDD17D5D1D1D1D5D1D5D5D5D5DFD5D9D5D5D1D5D5D5D5D1D1D1S=80C6804280J5J5
@OA898D858F7D77754D373B4D57515B614761656761717573777B7D6387877D79818383617F7F838F6FC7E7974F8599A9E3FFFFEFE5DFF9D97FED9F737373616971856961959D958B89514335393D3F43GOB4B4F4F4F4F472D2D6F6D71796F676F6F6F677573737377777777737375615D515363939F7F5F6F93ADA5C5EDF78D89ABD1D5D9D9D5D5D9D9D9DDD9D5D5D9D9DDD9D9DDD9D9E1DDD9D5D7D9D9D9D3D3D5J5J5
@OAA3C39FA397817567453151454D4965355D6171616D717D818579017DA179797D8DA9718D898DA383A1FF89639FCFD5F1F5F5C1CDFFA9FF43FF8965656149654F634F2B7B717B99BF2F313135393131GOB3D41414141352D0F3321131B1721291717210D1B1B1B1F1F1F1F1B2D5B473B2F4959899575556589817999C1D1252185A1A5A9A9B7B7A9A9A9ADA9B7B7BBA9ADBBBBADADBBB1ADBBB7C9BBBBBBC5C5B7;&J5J5u%J&
C6808080426OB7D6F73735F6775573947434B4B4F53535B575B5F63636B6B6B6F6B67876F6F7D816B7777736F573B69F3B759638FCDE9D5EBDFA3BDFFF3C9F7B55F756D4B5D5F6F8B9187A79F937D4F5349452B2F2B39FO44D515551513F27296F6B7F7373737783837F837F838387877B7B7B8369796D717B6F7FBB8B77839BC3DBF3FFF78B87B7C9D1D5D5DBD1D1D1D5D5D5D5D5D1D5D5D5D9D5D1D1D1D1S=C680808042J5J#85u%
@OA7B877D8F7773776F373B4F59595D5F5F6763696B716F7979777D69717B7D7D7F818785857F7B6F5337E7CB816F9BCBE9FFF9FD9391E5ED9BDFE581776F55616F7D6D99939199897D43474B47393F3BG4F53O0534F352D6D696F757175796F6F6F736F737377777D7D7F816D7D71756F6373AF7F6B778FABC3DBE7F18D89B1D1D9DDDDD5D5D5D5D9DDD9DDDDD9D9DDDDE1D9D3D5D5D5J5J#85u%
@OA89AD97A39D7D69954531595555596969716D65756D7975758179C78B71797971819B81818985957901DDFFA179A5D9E9F5F5FF3B23C5C19DB9D56969616F435D7969699D5B6D6F7D393D3D39352D29G4145O0453D310F211D171725171B2929171B171B1B1F1F1F1F11354F5F5357655969A575616D85859DB5C1C52F2B85A1A9ADADA9B7B7B7BBADBBADADA9BBADADB1BBC5B7B7B7;&J5J5J&
80C68042806OB776F6F63635F655339533F4F4F4F574B5B5B5F636775756F6F73514983817D81777777735F3B37372BC3DDBFB3B1CBDBDDDFD5E7A1C7F7DFDFF77567574B6167656D8F87A385472B455141392F2B272FFOB515551514B47272D6F776F736F7F737F837F7B83838387877F7F7F8779797D857F7767BB93A39BBFEFF7FFFFE3878BBBC9D1D5D5D5D5D5D5DFD5D5D5D5D1D5D5D1D5D5D9DFD5D5D5D5D5D1D1D1D1CDD1S=80C6804280J585J5
@5817579796D69675935375D5D5D5D656769696D7173O+7B7B7F897B79837F83858387817B4743434983DBCDBDAFD7F9DBEDFFF7D1C9EDE5A3D9B773655D65776577A17D8D8969374953433B3D39373FFOB535753535B57372F596371756D6B756F736F797373737777818183857D7D8189736B5BAF899991B5D7DFEBEBD9898DB1D1D9DDDDDDDDDDDDD9D9D9D9D9D5D9D9D5DDD9DDD5D9D9D9D9D7D5D5D5D5D1D5J585J5r5
@59BA193AF87835985532361595959617B6565696D7DO+85858949C75F757175818D757D8F514D4D4D2DE9C9D7BDE1FDE9E9F5E5C16BD3FF3BD5A17D613B476565377F63576B51412B45352D3935252DFO$4549454549452521231D1317212517171B172D1B1B1B1F1F232315395F5F636B696151A56F7F779BB1B9C5C5BF2B2F97A1A9AD7BBBBBBBBB7BBBBB7ADBBBFBBBBBBBBBBC9B7B7B7B7B3B7;&J5J5w(s"J&
C6808080426OB736B6F5F535365433949474B43574B57656363716B6B6F6F6F7753634D8581818585776F4137333B3737E7C7CDBBBFC7F1EBEBEFE9CFCFF3D7F5C3437983816F8985A3899B799F9147413927312B272FFO&55515151514B312D5F7B7F7F7373837F77837F87716D6971D5FDF9F1FB7F8B8F838369F1A1CDC9C5DDDFE7DFB7E37FAFCDCDD5D9D5D1D5D5D5D5DFD5D1D7S=C680808042J5J":4:5
@OB7D7175776F5F695F374B555961655963656F716F77797D7B7D835D715D8785838785877D69433F47435BC9D1CFC9B1D3EFF9F9FBE7BFBBD7CBCDCD657D77817F8B87838D8375918D674339353339373DF5759312F5B676F6F75716F6F79736F7783777175O&F175818577773BC379A5A19DB1C3DDD5ABD97BADD5D5DDE1D9D9DDDDDDDDDDD9D9D9DDDDD9D9D9D9D9D5D9D5D5D5D3D5D5D5D5CDJ5J":4:5
@OB979DA19D83694B73453D51556561556D65796D7D81757985798D776D0179677579857579894D49514D01C5EBC1C5B5DDFDF5F5FFF5D175C3C1ADE74D5F6D816D7D798D6F5D9395AB5D35393125352539F495531211F211717172529171B1B171F11374157O&D75B676B6D6D3DC55985817DA3AFC3BBA1BF3F61A5A5ADB1BBBBADADADADADBBBBBBADADA9BBBBBBBBBBBBB7B7B7C5B7B7B7B7B3;&J5J5sJ&
80C68042806OB736B5F5B5F575F33334337474F53555F6367676B6F6F6F73776B55856B81858589858153372F27332F339DDBBFD9A7CDDFE3E7E7F7BFCFF1B35F4F7BB7A983937FABABAF9B7D4733272B2F412F2B232BFO:4B59555555592329536F7F7F7F7F7773837F87876D61FDFDFDFDD5F9CF839FAB8F7F95E9F5E1F5F1E9DFE7E9FDFD79BDC9D1D5CDD5D5DFDFD5D5D5D5D5D5DFDFCDD5D5D5D5D5D1DFD1S=80C6804280J5J"8"81<5u
@OB7D717B7769636D514F5153535D5F536D737775797D7D7D8183895787795989898B8983714F3B33413D3F3DCFB5DBC7D1CDEFF5F7EBCBDBF5D77F615FB3B17389759DA1A19179574135393F433F37313BF5B57312D4F6D6B6B6B6B75716F6F77737765JC57995A1837367BBC9B5C9C5BDC3DDEDFFFF81C7D1D9DDD5DDDDD9D9DDD9D9D9D9D9D5D5D5D9D9D9D9D9D5J5J"8"81<5r)s
@OB979D8F8B836D6955634D675D59696169616571757979797D8D8D4979E1396B6B7D6B757575453D3D394901C59BCDBDB3EFF9F1E5E1D5E5D7AF753F4B7781856F5BA187A57797453D31352D352D412D29F49492D0F132125252525292529171F2D3747=AB5F7B87796969BDBBA7BBB7AFAFC3CFF1E35187A1A9ADA5ADADADADADBBA5BBBBBBBBBBB7BBB7;&J5J585v1J&
C6808080426OB6F5B5357575F37433B433B231F2B576367676F6F6F6F736F73558F85675369736F777B716F77612B2B2B35DDC1B7D9ABCFF9B5635F575F4F495D7FA3AF85778F6B334B4F372B2B33333D2F33371F1F27F65959595959532D296F7B6F7B7F7F7F7F837B7B7761D9=F9F1F9F1CBB38B93AFA399E9FFD5B1C5C7E7F7E1FDFDF5C5C5CDD5D5DFD5C9D5D9D9D5D5D1D5D1D5D1D1D1D1CDCDS=C680808042J5J$80>5
@OB79776B63636B53514951573F3B354D7175737D7D7D7D817D818F798783516B696973757B6B6D5F4B393935B5BDB1E1BBC1F7E7777D676D5B47617397A5A9678B7741415F43393943433D3D41453D2D35F5B5B5B612D2B59676D676B6F6F6F736B7D79O&BFA77F8791856BBBD5A98599A9C9EBE3FFFFF9C9CDD5DDDDD9DDD9D9DDD9D9D9D9D9DDD9CDD9DDDDDDD9D5D9D9D9D5D5D5D3CFD1J5J$80>5
@OB938B916D6D75674D454D6B534F4F336D717D797979797D797DA9437997055D4F3D37493B2F536D4135353595DB85B1A9C5FFFFBD815569655543698D8BE9794F813D274D4D353531313D393D41412931F4D4D4D5D2D1D23212121251717171B131F1BO&B59D757D8D816DBDC79B778BA5C5E1D5F1F1DBAB9DA5ADADADADBBBBADBBBBBBBBBBADBBAFBBBFBFADBBB7BBA9BBB7B7B7C5C1B3;&J585J5v1J&
80C68042806C67535B57674B33272B2F232327235371676B6F6F6F7373737D3F5D5F43617B8783533DK2B2B4B6F2B375FDFAFADE3B96363533F3B4579877769839391A59B552F27394337333D2F47555137271F1BFO'5D5D5D5D534F1F1F636F6F7B7F7B7F7377737759C9FDF1EDEDD5F1F1D7B78797B7ABA5E9F9E1C1D5D3D7DDFDFDFDFDFDE5D9D1D5D1D5C9D5D5DFD5D5D5D5D1D1CDD1CDD1CDD7S=80C6804280J5J"91>1:*r1
@OB716F676373694B45393B2F3135313F7375777D7D7B8181817F91657D5F6D77718161414B3B39394761494555C1BBB7DDB977695D5D57497D7D736B737D9D7D8F873B353B5345413D3F3B575345332D29F5F615D2F2F5F6D6D676B6B6F757975795DCBAB7B8B998D77BBCBB393A7B5CBDFFFEDE1D9DDD9D9D9D9DDD9D1D9D9D5D9D9D9D9D3D5D1D3D1D3D1CDJ5J"91>1:*r"r)
@OB8B83716D7D6D71493545392D312D016571817979857D7D7D71D33581731D3B3B355D23394535350B654D4101BDC577B1B9BD9577616B2B5F63375D85474D5D856945312D41413D3D2D314945413D2925F515D591D1D23212121251317171B171B3FC1A17181958979BDCDB595A9B1C1D1F1BDB1A9ADA9BBBBBBADBBA1BBC5B7B3C5B3C5B3B3;&J5J5:5J&
C6808080426OB5F4F53534B1D17231727272323173F71676B796F6F6F6F6F7D6F274D4F81857F352327272B2B2B2B2B35413BE1C7875F4F433B2B273F412B595D6573A96B2B2B394345453737333D3D453D41331F1F2DFL5D5D59594F5D23295F776F7B6F6F6F6F6F7F63F7D9FDE9E1E5CDD5DDA1A1858D978F7BA79BCBCFCBC5C1F9FD@FDFDD1D1D1D1D1DFDFD5D5DBDBD1D1D1C1D5D5DFDFD1D1DFD1DBD1D1D1D1D1D1S=C680808042J5J5:0R5
@OA6B6B5D61674935313537353131373B73777B797D7D7B7D7D7D7D474F4183838B75433333393939393B374149A9BBA36B5B4F4737334D41415D656555817D37393B5347474547413F3D493F43412B2FK45D5D31295B636D6771717171717B59EBD7FBE7DFA3A3878F8B836F9B7DADB1ADC7C3FB>D9D9D5D5D5D5D9DDDDD5D1D5D9D9C9DDD9D3D3D5D5D5D5CFD5D5D5D5D9D9J5J5:0r5
@OA757F775D7B57392D3925312D2D2D016565697979798579797D793D41457591956D393D3D35353535292941457FB1B775655951413D49410D3F356551615B41352D41393941353D313D2B31353D351DK4595D2D291F1D212113131313133F3FE1E5FFF5ED959579818179659179A9ADA9B9B5EDF1>A9A9B7B7B7BBADADADA9B7B7A9A999ADBBC9C9B7B7BBB7C5B7B7B7B7A9A9;&J5J#85r4t$J&
80C68042806OB5B57534F372F2B2F333337272727417567756F6F796F6B6F6B4F47433B87BBA91127272B27272B352F2F3145373755693F43553333373D3B2B3D3327273541453B413B4141373D333D4B3F452F1B1B1FJ4F59B5F776B6F6F6F6F6F7383ABE3E1F5E9E1DDC9B5B1A1A19D7D93838383C7DFC3B3C1DDFDF3FDE3D1DBDBD5D1D5D1D5D5D5D1D1C5D5D5D5D1DBCDCDS=80C6804280J5J"95:/T5
@OB67635F5B533D3B3D434145474547497775757D7D797D797D796B63614D79ABA94B33333933353B373B3D33454543596D5751515341453D47373D4335353743474B414B4343473D413F414F473D27292DF5F45F592F2B596369716D6D6D6D717DA1D5DFF3E7DFA3A39F7F87777777A9C1A595C3DF=D9D9D5D5DDD9D9D5D9D9D9D5D5C9D9D9D9D5D3D3D5D5D3D5D5D5D1CFD1J5J"95:/t5
@OB716D696567392939313D413D493D19697175797979797579757F77652B7DBDA9653D3D353D31292945392545414D3B4F7D4D6F493D413D51413D3131312935393941393535353D3D31273D3939312529F5144D59211D2D1D1D1321212121255187D9EDFFF5ED959591717D6D6D6DA5BDA191B5D1F1=BFA9A9A9ADA9BBB7BBBBBBB7B7ABBBBBBBB7C5C5B7B7C5B7B7B7B7C1B3;&J2r5J"95u#v*rJ&
C68080804265753532B2F2F2B2F2F2B2F2F1B2B3F75756BO*63573B374D79972323272B2B2B2B2323352F2B43ADBFBBC3D7A78F633B41413939352F3341413D41414137373D3D3D39394F454D2B1B1F23F5DE4F55352D37777B7F6F6F6F736561E1C9E9EDE1D9D1CDADB5A5A99D7D838367636F9BD3D3CDFDF3F5D1C9D1D1D1D1CDD7CDD1CDS=C680808042J2r58+J"85:.V5
@63615F493D3F3B3F3F393F3D3B3B39777579L6F6357434B89A5373135373737373131393D393D7FA3B1BDBFAD83714943433B3B353D4343433F43434345453F3B3949454F39272D31F5F55B5D55372F3163676B6D6D6D716D65E1C7E7EBDFD7A7AB9F7F77775B57517DB5B5CF<F9D5D9D9D5D5D5D9D9D9D5D5CDD5D9D5D5CFD1D1D5D1CFCFCFD1CFD1J1s58+J"85:.v5
@6D5D694D392D292D2D352D3931290D6975L796D6B4D5927A17D2D31414141412D2D1B393511818F979199D9796D4535352D2D3539313535313535354141312D391D45413531292DF5154D59552921051D2125212121253D47E1D5F5F9EDE5999D91716D6D514D4D79B1B1C1F1<DBB7A9A9B7B7B7A9A9A9B7B7AFB7A9B7B7C1A5B3B7B3C1C1C1B3C1B3;&J5J"8"8.85u5J&
80C68042806OA594F4F1F2B2B2B2B2F392B33412F39756B6B6B75796B6B675F4B3F594B856B1B23272B2B2B272327273D2B2793DD7B77BB6D3733392B393B49453B41414141413D333D3D393D3939394533452B1B1BG5D4F332D336F6F736F6F73736DB9F54EDE1D9D1C9B19981859189638783838B9BB7DFF1FD=F3FDFDCDDFD1D1D1D1D1D1CDD1CDD1CDD1CDCDCDCDCDC9C9CDCDCDC9CDS=80C6804280J385:2J5:-:U5
A5D5D3D393B3B3B3F3B3D43413F41797B7979F7779756D635B595D8371372F33393735353135373B39353DB58D65A3934343393B3B4B4B474B433F433F3F3B3F3B393B47414739292B2FF85F5F595D5957432D296B6D716D6D717171BBF3D1F3EBDFD78387938B577B77776D7D99C1:D1D9D9D9D5D5D5D9D1D5D1D5D1D5D1D1D1D1D1CBCBCFCFD1CDD1J385:2J5:-:u5
A595941352929292D2D1B31412D115B697575F81757169896F593B919D4B393D35414F312D31254935310D956B877DC34D3139292D393D393935313131312D312D392D393D3935251921F8515159595949312D0F2F21252121252553ADFFEFFFF9EDE57579857D4D716D6D697995BDF1:B3ADA9A9B7B7B7A9B3B7B3B7B3B7B3B3B3B3B3BDBDC1C1B3AFB3;&J582J595J&
C6808080426O/47432F2B232B2B2B2B332B33392B3971676775796B6B6B675B4F413F61834D2323272B2B2B2727271F272B27354F333D2B2B35394549453B41453B3B373741413D3D394B3B2F2F4D4D2B2B1B1F35FI5D595D61595945312D6B6B6F6B6B736F71C5F5D1E9E5E1D9D5CDBDB19D9D9995976B7B8785A9B5D1FDDFDFDFDFDF3F3F3F3F3F3FDD7D5D1D1CDD1CDD1D1CD9B93DBD1CDCDCDCDCDCDC9C9BFBFC9S=C680808042J3859,J":0>):Z5
@55513D39333B3D3B3D433D433B4D41797775O 79797973675D41493573712F31353737373335352D35373537613F3D3939373B474B474B43474B4B4541434743433F4B3D3D514F3939292D37F5F5B47333169696D6D6D71656FC3F3CF9F9F9B978B5F6F7B/9CDD9D5D5D1D9D1D5D5D1ABA3CDD3D1CFCFCFD1D1CBCBCFCFCDJ3859,J":0>):z5
@514D393521291B291B311B312D3511496571O 7575757D715941632785B1392D314141413D313129314131293F493D3535292D393D3939353939394141353535353539393933413535252929F514D3925131D1D210F0F254B7DD1FFDD91918D8981556571/F19B3BBB7B7B3A9B3B7B7B39991D1C5B3C1C1C1B3B3BDBDBDBDAF;&J2858*8'J5:,tr5J&
80C680428063F4D23272B2B2B392F2F2F33392F317B71I75796F6F674B47292B2B69412323232B2B2B332F2B23232723272B353141453F3B453D4545414141414141333D39393D23272F2B27271B1FG8595D595959554D312D7B6B6B73736F67DDEDF1C9F5E9DDDDA1A19D99957561717D9595FDF39FDD1D1DBCDCDCDD7D76151373D49436FBDDBCDCDCDC9C9C5C5S=80C6804280J39580J$84:):Z5
@4D4D41353B3B3B3B413F41453B4135717373I7D7D73676355373B6965312F313737373F3B37313135313539353343474F4B473F4747434343434343413F3B3B3F31353B3B3F393535292DG5B5F5B574F313167696D75756D5DDBEBEFC7F3E7DBDBA3A39F9B9777637308D5D5D5D1D1D5CDCD6153473F49517FBDCFD1CFD1CDCDC9C7J39580J$84:):z5
@494D45312929292D1F2D1F232D1F17576565I79797D7B7763412969A52D392D4141414945412D2D312D3135352535393D39393139393535353535353D312D2D312D312D2D2D3531312529G4D514D49413113211D0F17172143E9F9FDD5FFF5E9E99595918D896955650F18B7B7A9B3B3A5B3B361453531494D6DBDC5B3C1B3AFAFABB9;&J580J5s5J&
C6808080426O1434D2727272B2735272B272B2B233373717575796F6B6B5F4B433F2F2B3B2D172323272B436767574D3727274B374949453B414541414137413D4141333D3D3939393939392F2F2B2B27231B1F23FH4F5D4F4F595555312967777773736F9BD9EDE9C5F9EDE5E9D9D1C5B5A9A9A19DA1A5698189A9EDC9FD@F3F3F3F3FDFDFDFDFDD1DBCDCDCDCD6545494145413D413349494F8FCDCDC5C5S=C680808042J385J5B%:X'8(8'
@534F4535373B3937373B393B3B43436D7377O.7F79776B695F4D3B373553352F2F3337335B6D5D4B4335353F454B4B4749434743434347433F4343433F3F413F3B3B3B3B3B3B3F3D3B393731292D31F85F5F5F5D595757312B6363637575658DD7EBE7C3F7EBE3E787A7EBC7D5D1D1D1D1D14B4347433F43416F9DCDCFC9C7J385r)J5B%:x'8(8'
@414149312529172925291729293931416569M6D7581756D7349454109833939393D4145519989594D313135413D3D39453539353535353531353531313141312D392935252D25292DF84D514D59594949311D271D1D17174B91E5F9F5D1FFF9F1F595B5F9D5F1B7B7B3B3B3B33D35393531353D6599CDC1ABB9;&J5r.J585J&
80C68042806O.4D4D2F271B272735272F396167677569716B756F6F756B635B5F453F2B1B37172323232B4377716D53514D3D45573D45454545454137414141414149433F43433F3F3F372F272731555FFJ555959595D5951312D5B777B737363AFD1E9C99D85B5E9F1E5DDD1C5B1ADA5A199A5C5B1B5B5C1B9C9EDDFDFDFDFDF3F3F3F3FDFDFDFDFDD1CDCDCDCD9159453F3B3341373D39393939413F37437BS=80C6804280J595J5B%:W0;%
@O)4F4F4D353B373737373F3B637775736B717B757D7D75776F6769734B353943352F31313937676D695D4D4B3D474D3F45474747474347436434D535353535151514F51534D4D4D453F3733315753F8575B5B5B5F5953332F5763676F6F579FCFE7C79B81B1E5EDB3B3BFB7FDD3D1D1D5D5955B454F4B4141473F4D455189J595J5B%:w0;%
@O)4141513131252529252D2D556571815D7169757979758179718371554F3D4D39392D2D352D798B87776B593D39333145393939393535356352F414141414D4D4D3D4D41494949412D253D314949F8494D4D4D51594525211B1D2133334DB1DDF5D5A99FCFFFFFC1C1CDC5F1FDC5B3B3A5A5774D453D393D41353149414D85;&J395J58w08(J&
C6808080426494D3B232339455D5B556D69615B4B5B6767O-6F6B675F5B4553333F1F23231F1F2743677773554D534F4F5741414141413741413D3D3D3D373B373737373733373737373737413737373B453B37FJ5959595D5D5D552D29576B6B6569B5D1CDE1B5BD85A5C5DD9BD7E1E3C9B1B1A9CDB5B5C5C5E5F1F1C5B1FDF3FDCDC9C9C15D514945453D333B35413939372B3D45S=C680808042J5J5:%>Y5
@OB4B4F4731333B475F6B576F6B6169596B7575757B7B7F79736B6963614F493D31312B2D3535596763534B4541434B43434343434543433F3D3F3D47494545434745414545454547454145454549474949F<5B595B5F5F5F572F2B4169696F6DB3CFCBDFB3BB83A3C3DBB7E1DDD1CBB3B3C35D1CDCDC561534D47473F434B353B3B433B3B473B3FJ5J5:%>y5
@OB3D41512D212D39515949615D616555597171756D6D6D757D7565C55D6363412D2D352931395D79756159494539413535353535413535313D313D354541414D35413D4141414135414141414145394527F<4D594D51515149211D0B1D1D2F4FC1DDD9EDC1C991B1D1E9CBFBFBF3D9C1C1D1F15B3AFAFA743452F3939313139352D2D352D2D352931;&J5zJ5w.8*J&
80C68042806O04D4D3F4B55595D55596561616F4F4F6543433F3F3F5771635F57534B471B2B73491F2D3155656D695951494F494541414141413D3333333D3D3333373737233FL61615D5D5D5D552D294F6B6B6555C1CDE1D1C5B96B8BDBC7E3EBAFA5E9D9D9D9E1C9C9D5E5F9FDFDFDFDF1F5FDF3F3D1CDC1AD8D35393D37453D39333D3D3931393939S=80C6804280J5:)85J5>Y'8/
@B4F4F4D5B555B5F575B656361656B5D6751514D4D4F4D716F6B635F5955333757692B6965574F47414947@4343433F4343433F3D43434545453F3F4141413F414141413F414141413F4141FD63635F5F5F5F572F2B3969696F59BFCBDFCFC3B75B7BCBB7FFF5B9A1E7D7D7D7DFC7C7D3D5D1C9B7913745473F39373B413D3F3B313B3B3BJ5:)85J5>y'8/
@B41414949554D51494D6555614B7F59594D4D49493D337179756D695551594143BB358783655D55454939@35353531313131313D313141414149493D3D3D493D3D3D3D493D3D3D3D493D3DFD55555151515149211D031D1D2F3BCDD9EDDDD1C56D8DDDC9FFFFD3BFF5E5E5E5EDD5D5E1F1B7B39977732941393139292D3D3D312D312D2D2D;&J581u'J5sx5J&
C6808080426O 454D4355554B5D5D535D5559573F3B3B3B3F3B3F3F3B3F57574B574B27272B47751B236375695959554D41492F2D41413D413D3D33333D393333333333272F2B2F2F2F2F2FFD6565656161615D3129376B6765C1B1EDCDA9D5B9718181A9E5E5FDF5F1B589D1EBE3E3E7F3FD7F3FDC1B19D7D77452B272B2B333745413D2D2D39353539S=C680808042J'8"8585t(J5Z5
@474F5157575B61=5D65454747494B474B4D494B4D635761593133393D4533315971655757645493B2D434343433F433D3F43433F3B4143414141453D3B393D3D3D3D3DFD6767676363635F332B31676367BFAFEBCBA7D3B73F4F4F77E3E3FBF3EDB185CDF7EFEFF375C5B5A585714D3D37393B414547433F2F2F3B35373BJ'8"8585t(J5z5
@39414D4949495D=3F6171515145555155494555336D617B554B3D352355592D3F8F83656562749452D3535353531353D313131312D3D313D3D3D493945353939393939FH59595955555551251D052B2759CDBDF9D9B5E1C55D6D6D95F1F1FFFFFFCFA3EBFFF9F9FDFDFDFDFD3F15A7977555451D1B2535293D4139353121212D35292D;&J1r5x'J5ux5J&
80C68042806494D3F4D555551515955333B3B3737373BF3F576D4B1F2B2B27315B4739737B4F3727293D4B272D413D3D3D37592F3D3D3D3D3D3D2F2F2F2B272B2B352B2BFB6969656965656551413B676B4DB1B9F1C9B9E5A98D817D8D8D99F3FBEBE7E3F3BBCBF3FD7F3F3F9A98D71797D7D7D75472B273539333B412F272B35S=80C6804280J%9585t(J5Z-8(
@4D4F4D51A535B57534747434343474747474745474B516B673B3737333B654937676B554131657332F433F3F3F475B3D3F3F3D3F3F3F3D3D3D3939373937353939353939FB6D6D676B67676753433563674FAFB7EFC7B7E3A7493D39494967D1EBF7F3EFFFC7D19FBAD9579818787857D5D3B37414B413F373937J%9585t(J5rz.8(
@2F414933A454D494951514D4D4D51515151515F515525797B4F41413D017F95455D7D815B4B6613D2135313131354D3931313D3131313939393535413541313535353535FA4F4F595D595959453509272B41BDC5FDD5C5F1B56D615D6D6D85E9FDFFFDF9FFD1FD2F1FDED8F6549514747554D2929253D39412D253529;&J3r5trJ5sz5J&
C680808042645493F41514749473B373733373737373B373BG711F27334B4F5B7B5B4D73755F6B33436B752F23413D3D5B271B2F3D3D3D3D3D333333332F272B2F2BFD6D6D71716D6D6D6D5D495D55E9D5BDE9E1BBCBB7798995919BAB9B89BBF7FFFDF3F3E7B7F30FD4CDA16D8181817D7D7979797F4D2B272B2B414541S=C680808042J585J5Z818"
@O(474B4F4553554B574743433F43434343474347474747474749733B353F3B5B4B69614B6571696F4B375D6D3931433F3F513529413D3F83F414141413D33393B3B3B3B3D3B3D3B3D37393937393739FD6F6F73736F6F6F6F5F4B6157E7D3BBE7DFABBB953545514D45454555ABE7F7FBFFFFFFD77A57589898B878581818375513B35393B43J585J58'z818"
@O(393D3D2745513D45514D4D494D4D4D4D514D51515151515145654F31494D655D8B8D59698F83AB712D619D532D3531313731251F3D318313D3D3D3D393D3545454545394539453941353541354135FD6161656561616161513D4349F5E1C9F5EDBDCDAD596975717F837F83BDF9FFFFFDFDFDCDFDFDFDFDFDFD/F1874559594B47555151435B332931352935;&J(tt5t)J5s5J&
80C68042806374145394D4D49373BF332B8BA17F4561713F33577B7B6D51637F7F3B353D413D27232F3D3D3D333D3D3333332F2F2B2F2B2727272B2B2B2BFO"6D6D717175757575756D6571E9EDADE1D9C5C39F8D8985919F7593A7979B8DF5FDF5FDFDF3DBBFFDF3F3EFF3F3F3F3F3FD7F3F3F3F3B7D5A18181818581817D797979797977492F37S>80C6804280J(tt5J5:(Z4
@4543473D4F4F494347O)4F376DA3D1435F6F5B41496B69654D556F6D45353F413F35333F3F3F3F433F3F41413F3B3B373B3B3B3B3B3D3B3B3D3933353339393939F@6F6F737377777777776F6973E7EBABDFD7C3B37D4945414D4B413D41434749B1FFE9DBFDFFFFFD1C1D3A58589898D8989858181818181714D4145J(tt5J5:)z5
@4135391F4141494D51O)63416995FF516D7D6F3D4D7D8B956B59818F5F3531413131212D3131313131313D3D49454541454545454539454539353D313D35353535F@616165656969696969614B65F5F9B9EDE5D1C5956D696571756F777F6D716DD5FDE5EFFDFDFDF9FD/F14FDDBE1876759595D5959555151515151452F1F41;&J5w5J5w%s)J&
C6808080426M4541453D4D3F37373333333337373737372B37373B3B413353BBC9C79F774F6F6D3F393D636D6D5D516B6F51393D72F2F2F2F2F333333332F2F2F2F2B2B2B2727272B2B2727FO"7575757579797D7D817989A9F1E5B9E5CDC9B3837189919195AB97977185B7C1B3B9FFFDF3F3F3F3F3E7DBEFF3F3F3F3FDBBBFD18D817979797975717571S=C680808042J5v5J)95P(:R5
@O 4745473F514F45433F3F3F3F434343434349434147473F5743AFC1B9B3BF3F5F6B49373D596B695B4F5D5D49373D3F73D3D3D3D3D3F3F413F3B3B3B3B39393733353339393535F777777777B7B7F7F9A7EDE1B5E1CBC7A3612D454D4D4F4541413D3F514B4F75F1FBF5E9FDFFFFFFFF5FDC5C9CF958989898B898589898181817D7D797D75J-r5v5J)95:r5
@39273931333D414D494949494D;5B51514D2F55A5F1BDF9FF51717963453D3F7987695D617F79453D317393939393949493D49454545453535413D313D35353131F696969696D6D7171EB5FFFFD3FFD9D5B5795169717183837B7B6B738F8F7D99FFFFFDFDFDFDFDF1E5F9FDFDFDFDF15FDDFE3DD655959594B596759595151515F4D494D57;&J-u5J5:s'r(J&
80C6804280641373B33493B37333333333337O,45BBC1D1CFCBAB93416D753F2B2739737361496F735145353D3D3D333D3D3D3D3D33332F3333332F33332F332F2F2F2F2F2F2B2B2B2B2B2B2727FO"7575757579797D7D7D71E1F5C1E5C9E9C9B9A77F8D8181A3976793ADAFB39181B3A3B3BBF3F3FFFFF3F3F3F3CFDFF3F3FDE9BBC5C9817D817D7D7D75757571S=80C6804280J585J)95:Q8)s%
@O%45474B434D49433F3F3F3F3F4343434143434341414143B1BDC5D1B9BBD73F6B714337353D65635D474F634D45373D3F3F433F;3F3F43413D4141413D41413D3F3B3B3B3D3D3B3739393739393535F777777777B7B7F7FEF3BDE1C5E5C7B7975D493D3D3F41433D37494D4B3B4D4D5D65FFFFF9F9FFFFFFFFDBEBFFFFE5C1BDC989858989857D7D7D79J585J)95s#<'85
@O%273539312F454D49494949494D4D4D5B4D4D4D5B5B5B5197DBFFFFDBFFFF4D798F7F41311F69757B5559756B45293D31313131;3131313D393D3D3D393D3D39494545453939454135354135353131F696969696D6D71719FFDBFFE3FFD5C5A9756D61616D7B6B777B878B7F6F8B87979FFDE5F5F1F1F1F1F1F14FFEDEDC95955595967676767675555554D4D4D49;&J'u580u#J58085J&
C6808080426333F3733453B33C37372B2B33A7C5CDC9C9AFA3B7C1477F79372B272B51614D4537354937353D3D3D3D3D3D333D3D2F2F2F2F2F2B332F2F2F2F2B2727FI7171757579757D7D8989D5F1B1D5CDD9D5B1915D757D897197A795957D8FA3899F8D9FC9C5C59DEBF3FFF3F3F3D3B3EFF3EFFDFDFDFDFDFD4F9B5AFBD8181818181817D7D7D7D7D7979797975S=C680808042J'u5J5:5
@414D474147473FO2434349473D91C1C5BFBFBFB39DD9516F753B37333953614B4345394743373D3F3F3F413F3F3F433F3F3D3D3B3D3D39413B3D3B3D393739373739393939373533FO&737377777B777F7F8B89D3EDADD1C9D5D3AF8F5B434B453D41414F4F49394D55494749534F4F57C7FFFBFBF7FFFFFFE3BFFDFFFF8FFFFFFFFF7ADB9BD89898989898985858581857D7D7D817DJ'u5J5:5
@3D49353D395149O24D4D4D5B575BDFF5FFFFFFFFF1FF6B819377413D3545615951411B554D293D313131233131313131313939453939353D4539453935413541413535353541313DFO&656569696D6971717D89E1FFCBEFE7F3E1BD9D696169696B7B7F838377738783837B839793938BEFFFFFFFFFF1F1F1D1C9F9FDED8F1F1F1F1FFDDD3BD59595959595955555563555F5F5F514D;&J'u5t5J5:5J&
80C6804280647394133373733>3737374BBBC1BFC3C3BFB3B3B3BB59836F2B2B272B2B3D2B2727272723353D9333D2F2F2B2F3D5169798B63232B2B2B2B2B2B272727272727FO&717175757975797D97A7D3EBE9B9C1B9DDB171556965818F9381879793F981879BB5BB8991AFC9C5C5A3C1FFF3FDFDFFEFE7EBF38FDFDFDFDFDA3A7AD8181818181817D7D7D7D7D7979797579S=80C6804280J5:0J58&:5
@O/533B434145433F3F3F3F3F413F3F3F3F4143433BB1B9C3C7C5C1B5AFABB9BF717541373339393D373333353533373D3F3F3F3F3F3F3D3F433F3D3D393D7F7B41393937373939353535353533FM737377777B777B7F8D9BC5DBE7B7BFB7DBAF6F5337333D3B3D3B31413DC54D31453F55554B49534F514F8FEFFFF9FBF3F9FF8FFFFFFFFFDADABAD85898989858585858581818181817D81J5T5:0J58&:5
@65D2D353D414D49494949493D494949495B4D4D4D97E9>93A177413D35353D413D3D313121293D3131313131313D3131313939353975A14535354141353531313131313DFM656569696D696D717391C9EDF5C5CDC5E9BD7D6155516165776F6B7B77F37B6B7F8393837F8797938579ADFFFDFDFFFDF5F18F1F1F1F1FDC7E7AD67595959676755555563635151514D51;&J5J5:5J&
C6808080426OB59373537372737333333272F33332F3337338DA3B7C5BFCDBFA7ABB7A3ABA1897D312F2B272727273D33272B3D3D3D3D3D333D3341516571878B8F8F9B8F8F8F8F8F878F312B2727272B23232B232323FO&71717171837F8FA7B3BFB7DFC5D9E1A5956D69518F6781658793976771F3979191859FB7AB9FAF859BB3AFBB91E9FFFFFDD9F9FD8FDFDFDFDFD9793A97D7D7D7D81817D7D7D7D7D7979797575S=C680808042J5J5<5
@OB5B5537474343433F3F3F353D413F3B3F433F4FA7BDBBBDC1C1B5ADB5A7B5B7C179553B37353535353D4135393F3F3F3F3F433F41435365737D8185858389898589897D815D373535353931313931312FFO$737373737975859DA9B5A9D1C3D7DFA3936B674F6D453D33333F43452B9D414B4B3F49515549493F354D49554DB7F1F7FBD78FFFFFFFFFBA19DAB858585858989858185858781817D7D7DJ5r5J5<5
@L4D5929354D574D49494931393D4945494D4947E3E9FBFFFFFFFFF9FFE3FFFFEB97954541313131313D3D313531=3D3545656563676B6B5D5D5D6B5D5D63856B41313131352D2D352D2D39FO$656565655F5B6B838F9BADD5D1E5EDB1A179755D855D61515D696D5D5FD77B7F7F73838F8F838773738B879371D5FFFFFFE58F1F1F1F1FFBBB79D555555555959556355554751515F4D4D;&J5s/J5;-s%J&
80C68042806O,67533F3537373333596977715B43333337A9B9BDC5C5C9C1B59F9BA7A7BB8F9977453F1F2B2727272B2B393D55657583878B8F8F938F8F8F8F938F8B8B836F2727272723232723231BFO%717171717B8FA7ABBBCFC7B399C9B9BD9D9155799BAF937D9185698F9BA58D87AF97918D9FAF99959FA185919D999D9581DDFDFDFDFDFDFD97A9A17D7D7D877D79757575S=80C6804280J585J1:5<5
@J5B5F493741413F3F5B6B6B6F67513F3F4341B1B5BBBBBDB7A9A399A9B5B7A367B969493D373335353939D576779777D818985898989898B89898585898985858981857D7533353533313133312F27F7373737371859DA1A3B3A99397C7B7BB>8B9F834B4D41373B455F473149414B474949534F495B3F4B5753574F7DDB8FFFFFFFFFDA1A7A5818587818581858585858585817D7D7DJ585J1:5<5
@J516963295B5B49494D5D617D714D49494D27E1E5FBFBFFF7F9DFF7F5FFFFE985FFA96341413D31313535D49595B6D63675D6B6F5D5D5D4F6F5D6B6B5D5D6B6B5D675951A13D31313D2D2D3D2D3931F65656565576B83877D9FA59DA5D5C5C9>9DB19569716555657F937B6B877B7F7B83878783838F737F8B878B839BE98F1F1F1F1FDBBB587635547555563555555555555514D4D4D;&J5z2J5<)u'J&
C6808080426O"5D614B372B374D6B737B7B7583794B374BC1AFB7B7B3B7A39B9395B5AB9FA537B37B3153697179838787978B8B8B8B97/8F8B8B8B8B8787878337274F757971713D29FO$6D7175699FB3BBBBBFBFBFBFB7837BABA579697F53BFB3E7D981915F5B7D93A37585979B799FA79FB3B3BFB78581797149D9FDFDFDFDFD9D8B857D797979757575S=C680808042J5J5A$u'
@OA5F63594347434D61697171797D7967413DBDB3B9BBB5BBA59F998BABA9ADBDADC3AB555F67717B797D7D7B858581857F898989898989858585858985898585858585857D7D817553332F3539312D3BGO$7175796D83979F9FA1A1A1A1A9756D9DA97D6B8B59C1B9F1A74F513D394B3F3F413F4145474951494D4D5951534F473F45D599998D8583817D7D7D7DJ5Q5J5A$u'
@<5155554D5B4D4D474F57575B51797B5B41DBEFFFF7FFF7F1DBC5CBEBM956975716D5F63636759596759595D5D5D5D5D5D6B6B6B6B5D6B5D6B6B5959595963635579673D393D41395149GO$53575B4F6F838B8B9D9D9D9DAD7971A18B5F5D9585FFE5FFC56D59555169696D6F737B7F65838B838B8B978F716D655D63F3B7955D5543515F4D4D4D;&J5rv5J5@4J&
80C68042806I59675D475D6F69777B7B7B7B79797971ABA7B7AFAB95978D7D7D7D817D8183878383838787878787878B8F59B8F8F8B8B8B8B878787878383715F654F5D535D4BFO%6D6D6579ABB7BFBFC3C3BFBBA1816D6D8581817B3F735FB7EDF9D767938D7D859B97758FABA16B678DAFABB39995918949D5F58B91797D7D7D7D797D7D797D7D797979797575S=80C6804280J585J5A4
@:5B5B5F555D636D6D717171717D7D7D6FB9A9B9C3BFB99B837979O&7F8377797977797D7D7D7D7D818585858181858589898985858B8B898585897F8589818585817D7D7D817D796F3F352F2F352F3FFO$7171697D8F9BA3A3A5A5A19DA3836F6F89858387538373CFEBF7CB453F49394145414139455D47434749454D55514D4545D1979181858585858185857D85857D8181817D7DJ585J5A4
@:4D5151515D594F53575757575F5F5F7DB5F5FFFFFFF9D7C39797O&71756D7D5F6D5F636363636355595959676759595D5D5D6B6B4F4F5D6B6B5D6B6B5D6759596763636355515F7D49453931313135FO$53534B5F7B878F8FA1A19D99957561616B67759199DBB9F5F9FFC15D696D5D657F7B6F7383816F6B7B87838B7975716963EFA19151555555555155555F55555F5151514D4D;&J5s's3J5Br+J&
C6808080426H595D59637777777B838383837B7F7B7B67656977777B7171757575798383838379878383878787878B818B8F8F8F8F8B87878787879387837F7F7B7F614B4F534F4FFO%7F738BA3A3AFABABB7AFA79B7D657185817D856B35597D3DC7EBFDFDF391859B6D8F8D8D6D8BAF95A7ABA7A79F9B979335CDF97D797D7979797979757571S=C680808042J5J195A4
@OB5B5F5B596D6D6D75797977777179717177676B6B6B6F73737777777B777979797D7B7979817D8181858587858181858189818989898985858581858585817D7D7D7D7D7B7D79757571755F2D31354343F7569819997A39F9FABA39B8F7F677387?755B799B5DD1F9FBFBE35F41473B3B49493935594F515551514B47433F31C99F938585858581818181858181817D817F7D79J5J195A4
@OB4D514D3F535353495F5F6D6D574D575765595D61616565656969696D6D5F5F5F5F715F5F5563555559594B596767596759675D5D5D5D5959596759595967636363636355635F5B5B575B6D292D313939F5B4F677F8D999595A199918571596579?8F8BCBFDAFEBF5FFFFF57D657159656D6D676F93838B8F8B8B75716D694FE7AD855555555563636351555151515F513F4D49;&J5t5J5@4J&
80C68042806O%595959596F7777777F7F7F877B7F7B7B7B7373736D6D777B7B7F7F7F8383838F838793878B8B8B8B8B97978B9B8F8F8F8F9B9B8F48B8B8B8B8B8B938787838383757F7B6B4B4F4F4BFO%6F879BA3A3AFABABABA38F8369754D3151817F353D459959554DBBE3F3F9FFC38991698B8B9381756F919F9F8581817D45C5F1958961797D7D7D79797979797975797975756DS=80C6804280J5J5@5
@OB5B5B5D5D696D6D6D7575757D71756F6F6F6569696F6F6B6F6F73737379797973797D777D81858585817B7B817F898985898383858989858985858585858185858181777D7B797977797571593F43433FFO$657D919997A39F9F9D9581756B774F33538371316365B7797567CFFFFFF7F7A1454D3737353D3B414B4B4949534F4F4B41C14FB938B657D8585857D8381817D7D7981817D7971J5J585@5
@OB4D4D3F3F3D5353535B5B5B63575B656565694F4F61616165656969695F5F5F5F5F63636367595959676767676B5D5D6B5D5D5D6B5D5D6B5D6B6B6B6B5967595967676363715F5F6D5B5B577B35393935F;4B63777F8D999595A19985795D6941254575754F93B7FFCBC7DBFF5FFFFB9697155616F776F6F737F8383716D6D695FDF4FFA17D475F5555555F4351515F5F5B51514D5B53;&?zBzBzBz@&
C680808042P.8FP.8FP.8FP.8FC680808042

;&>"J"J"J"J&
80C68042808FP98FP98FP98FP880C6804280

;&=z>z>z>z>&
C680808042P2EFP2EFP2EFP2EFC680808042

;&J&
80C6804280X380C6804280

;&=ZJZJZJZJ&
C680808042@OH@OH@OH@OHC680808042

;&J"J"J"J"J&
80C6804280F8FP98FP98FP98FOH80C6804280

;&?z"Jz"Jz"Jz"J&
C680808042<EF8FOK<EF8FOK<EF8FOK<EF8FOIC680808042

;&J&
80C6804280X380C6804280

;&J&
C680808042X3C680808042

;&J$J$J&
80C6804280:000000P7000000U*80C6804280

;&J&JaI#J&JaDbJ&
C68080804290000EF000070000O10000EF00007T%C680808042

;&J(J(H"J(J(C'J&
80C680428080000EF00EF00006EF00EFEFEF0000EFO10000EF00EF00006EF00EFEFEF0000EF00EFEFEFEFT&80C6804280

;&J&J"J&J"J"J&
C6808080429EF00EF00EF<EFOFEF00EF00EF<EF4EFT%C680808042

;&J&A#8%?"9#8#8#8#J&A#8%?":#8%="J&
80C6804280900EF00EF0000000000EF00000000000000000000O500EF00EF0000000000EF0000000000EF000000T&80C6804280

;&J"8&@":$<-:'J"8&@":$<&8+9$J&
C68080804270000EF0000EFEFEFEFEF00000000EFEF00EFEF00EFEFEFEF00EFEF00O20000EF0000EFEFEFEFEF00000000EF00EFEF00EFEF00EFEF00000000T'C680808042

;&J":$D"@%8$;":#J":$D"@%F$J&
80C68042806000000EF00EFEFEFEFEF0000000000O2000000EF00EFEF00EFEFEFEFT'80C6804280

;&J":$F"E$<"9$J":$F"A#I"J&
C680808042500EFEFEFEF00EFEFEFEFEFEFO000EFEFEFEFEF00EFT&C680808042

;&J":"F#J#;"8"J":"F#D#J&
80C6804280400EFEF007EF000000O.00EFEF00EF00T980C6804280

;&H#J"9":$;&9"9)J#J"9":$:+8`J&
C68080804200008EF00000000EF0000EF00EFEF000000EF000000O)00008EF0000000000EFEF0000EFEF000000T(C680808042

;&F$9"J":":$<%8";rJ$9"J":":$9#8#8uJ&
80C68042800000EFEF4EFEFEFEFEFEFEFEFEFEFEFO'0000EFEF4EFEFEFEFEFEFEFEFEFEFT(80C6804280

;&D)J)J&
C6808080420000EFEFEFEFEFEFP20000EFEFEFEFEFEFU1C680808042

;&D#=#J#=#J&
80C6804280EFEFEFEFP/EFEFEFEFU.80C6804280

;&J&
C680808042X3C680808042

;&J&
80C6804280X380C6804280

;&?zJzJzJzJ&
C680808042<8FOL<8FOL<8FOL<8FOJC680808042

;&>"J"J"J"J&
80C68042808FP98FP98FP98FP880C6804280

;&=zJj>zJzJ&
C680808042@EFOHP2@EFOH@EFOHC680808042

;&J&
80C6804280X380C6804280

;&JzJ&
C680808042P?P6EFS,C680808042

;&:j;&
80C6804280X*80C6804280

;&J&
C680808042X3C680808042

;&:z8z;&
80C6804280U>EFP8EF80C6804280

;&J&
C680808042X3C680808042

;&J&
80C6804280X380C6804280

;&=ZJZJZJ"J&
C680808042@OH@OH@P!40P2C680808042

;&J"J"J"J$J&
80C6804280F8FP98FP98FP 964040P180C6804280

;&?z"Jz"Jz"J&
C680808042<EF8FOK<EF8FOK<EF8FR5C680808042

;&J&J&
80C6804280UL96966B4040P080C6804280

;&J$J&
C680808042UK96966BP3C680808042

;&J$J$J"J&
80C6804280:000000U26B4040600OF80C6804280

;&J&J#:&<#@#J$J&
C68080804290000EF000060000000000EF0000000000T%96966BP4C680808042

;&J(J$9&<"A"J":$J$J&
80C680428080000EF00EF00005EF0000EF00EFEFEFEFEFT'6B6B4040400EF00OE80C6804280

;&J&J"J"C%8+8#:%J&
C6808080429EF00EF00EFU+9650000EF00000000EF0000EF00EF0000000000000000O&C680808042

;&J&B#9"<#;#9#9#:#=$J$<$A"<&8(8"8*8&J&
80C6804280900EF00EF00000000EF000000000000000000000000SK96966B6B4040EF00EFEFEF00EF00EFEF00EFEFEFEF0000EFEF00EFEF0000EFEF00EFO&80C6804280

;&J"8&@%8"=#:"9%8$8%;$JtJ$G"8$J&
C68080804270000EF0000EF00EFEF00EFEF00EF00EFEF00EFEF0000EFEF0000EFEFSM405000000EFEF0000O.C680808042

;&J":$A$J"G$J#A"H$J$:$J&
80C68042806000000EFEF00008EF00EFEFSJ964040EFEFEF400EFEF0000EFO'80C6804280

;&J":$B$B#J%J"w"F#9#J$J&
C680808042500EFEFEF00EFEFEF00;EFEF0000SJEF96EF00EFEF008EF00EFO(C680808042

;&J":"J#?"F$J"A":$9a8+8&9#J&
80C6804280400EF?EF000000EFEFT)400000000000EFEF0000EF00000000EF0000EF000000O'80C6804280

;&H#J(:$9"8,8+8$Js"B":$9t8r9+J&
C68080804200005EF0000EF00EF00000000EF000000EFEF0000EF00000000EFEF0000EFEF0000000000EFSM6B40EFEFEFEFEFEFEFEFEFEFEF00EFEFEF00O&C680808042

;&F$9"I':$:&8t8#8rJ&
80C68042800000EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFV780C6804280

;&D)J&J&
C6808080420000EFEFEFEFEFEFV@EF000000EFO&C680808042

;&D#=#J$J&
80C6804280EFEFEFEFV>EFEFEFO'80C6804280

;&J&
C680808042X3C680808042

;&J&
80C6804280X380C6804280

;&?zJzJzJ&
C680808042<8FOL<8FOL<8FR6C680808042

;&>"J"J"J&
80C68042808FP98FP98FS$80C6804280

;&=zJzJzJ&
C680808042@EFOH@EFOH@EFR4C680808042

;&J&
80C6804280X380C6804280

;&J&
C680808042X3C680808042

;&J&
80C6804280X380C6804280

;&=ZJZJZJ&
C680808042@OH@OH@R4C680808042

;&J"J"J"J&
80C6804280F8FP98FP98FR480C6804280

:'?z"Jz"Jz"J&
804280808042<EF8FOK<EF8FOK<EF8FR5C680428042

:'J%
424242424280X380424242

:'J&
C6C6C6C68042X3C6C6C6C6C6

=$J"
804280X380

<%J&
80808042X3C680808042

;&J&
80C6804280X380C6804280

;&JsJ&
C680808042UJ40P/C680808042

;&J"J&
80C6804280UI40P780C6804280

;&JyJ&
C680808042UG96P,C680808042

;&J"B"J&
80C6804280UGEF40P,80C6804280

;&J#s$J&
C680808042UHEF966B4040EFP,C680808042

;&J"J&
80C6804280UJ96P680C6804280

;&J$;$J&
C680808042UIEF96964040EFP-C680808042

;&J&
80C6804280X380C6804280

;&J$9$J&
C680808042UJEF96964040EFP.C680808042

;&J";"J&
80C6804280UKEFEFP/80C6804280

;&J$J&
C680808042UM966B40P1C680808042

;&J&J&
80C6804280ULEF964040EFP080C6804280

;&?zJzJzJ&
C680808042<8FOL<8FOL<8FR6C680808042

;&>"J"J"J$J&
80C68042808FP98FP98FP>EF40EFP180C6804280

;&=zJzJzJ"J&
C680808042@EFOH@EFOH@EFP!EFP2C680808042

;&J&
80C6804280X380C6804280

;&J&
C680808042X3C680808042

;&:j8j;&
80C6804280U>P880C6804280

;&J&
C680808042X3C680808042

;&8z9&
80C6804280X.EF80C6804280

;'j8&
C68080804242X0C680808042

;&z&
80C6804280X3C680C6804280

;5
X=C6808080C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680C680808042

;#8z"8z"8z8#
80C698042W+80429804280

;#J"8"J"8"J#
C680:42C6W*42C6;8042

;5:5:5
=8042804280428042804280428042804280428042804280428042804280W*42804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280428042804280<42804280428042804280428042804280428042804280428042804280

;z9z9z
=42W+42=42

:j
X>

9Z
X@











ENDBITMAP
%%EndBinary
0 0 612 792 C
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
2 10 Q
0 X
0 0 0 1 0 0 0 K
0.25 0.23 (phones and cameras pointing into that room and a server) 317.48 527.89 B
-0.18 (capable of capturing and delivering this audio and video as a) 317.48 516.89 P
0.25 0.26 (multicast stream. The Jupiter application performing the) 317.48 505.89 B
0.25 0.17 (gluing would then contact this server) 317.48 494.89 B
0.25 0.17 (, create a transmitter) 472.53 494.89 B
0.25 0.19 (pointing at the virtual room, and pass on address and key) 317.48 483.89 B
0.25 0.34 (information in much the same way the Microphone and) 317.48 472.89 B
0.25 0.01 (Camera widgets do for client programs. Allowing virtually-) 317.48 461.89 B
0.25 0.16 (present users to be audible in the physical room is a sym-) 317.48 450.89 B
0.25 0.24 (metric problem; the room\325) 317.48 439.89 B
0.25 0.24 (s server must receive and play) 429.46 439.89 B
(audio streams under the direction of the Jupiter application.) 317.48 428.89 T
1 9 Q
(Media Spaces, Public Address, and T) 317.48 407.55 T
(elephony) 475.87 407.55 T
2 10 Q
0.25 0.06 (As far as the media coordination system is concerned, sup-) 317.48 395.89 B
0.25 0.05 (porting an audio/video tunnel or media space is exactly the) 317.48 384.89 B
0.25 0.15 (same as supporting a room. The only dif) 317.48 373.89 B
0.25 0.15 (ference is in how) 486.64 373.89 B
0.25 0.08 (channel membership is determined. All of the mechanisms) 317.48 362.89 B
0.25 0.07 (for discovering new transmitters and setting up whispering) 317.48 351.89 B
(work in exactly the same manner in both cases.) 317.48 340.89 T
0.17 (A public address system can be supported in a few dif) 317.48 321.89 P
0.17 (ferent) 535.1 321.89 P
0.14 (ways. If it should be able to reach all users at all times, then) 317.48 310.89 P
0.25 0.12 (it might make sense to leave some space for an associated) 317.48 299.89 B
0.25 0.18 (Speaker in the main client window) 317.48 288.89 B
0.25 0.18 (. The channel manager) 463.06 288.89 B
0.25 0.05 (for the public address channel then) 317.48 277.89 B
0.25 0.05 (sets a membership con-) 462.62 277.89 B
0.25 0.24 (taining all connected users. As another option, the act of) 317.48 266.89 B
0.25 0.24 (sending a public address could pop up a new window on) 317.48 255.89 B
0.25 0.05 (each connected user) 317.48 244.89 B
0.25 0.05 (\325) 399.8 244.89 B
0.25 0.05 (s screen, with a Speaker \050and possibly) 402.63 244.89 B
0.25 0.02 (V) 317.48 233.89 B
0.25 0.02 (ideoPane\051 for the public address channel included in it. In) 324.12 233.89 B
-0.19 (either case, if limits are desired on the use of this facility) 317.48 222.89 P
-0.19 (, the) 541.39 222.89 P
-0.06 (application could arrange to include only authorized sources) 317.48 211.89 P
(in the list associated with the Speaker widget.) 317.48 200.89 T
0.25 0.06 (A virtual videophone object once again has many things in) 317.48 181.89 B
0.12 (common with sending to rooms or a media space. However) 317.48 170.89 P
0.12 (,) 555.92 170.89 P
0.25 0.08 (the user interface would need to provide some sort of pop-) 317.48 159.89 B
0.25 0.12 (up window allowing users to be invited into the conversa-) 317.48 148.89 B
0.25 0.26 (tion, only then adding appropriate Camera, Microphone,) 317.48 137.89 B
0.25 0.36 (V) 317.48 126.89 B
0.25 0.36 (ideoPane, and Speaker widgets. Also, the videophone) 324.45 126.89 B
0.25 0.19 (might create its own audio transmitter) 317.48 115.89 B
0.25 0.19 (, for use in sending) 477.45 115.89 B
0.25 0.3 (sound ef) 317.48 104.89 B
0.25 0.3 (fects to the users placing or receiving calls; the) 354.09 104.89 B
4 9 Q
(transmit_value\050\051) 317.48 93.89 T
2 10 Q
( facility could be used for this.) 381.99 93.89 T
317.48 534.55 558.42 738.14 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 612 792 C
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "11" 11
%%Page: "12" 12
612 792 0 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
53.86 52.16 558.42 63.5 R
7 X
0 0 0 1 0 0 0 K
V
0 10 Q
0 X
(Pr) 53.86 56.83 T
(oceedings of ACM Multiedia \32495) 63.49 56.83 T
(12/12) 535.64 56.83 T
1 9 Q
(The T) 53.86 732.14 T
(ape Recorder and the Archive Server) 77.19 732.14 T
2 10 Q
0.25 0.04 (A virtual tape recorder) 53.86 720.47 B
0.25 0.04 (\325) 146.58 720.47 B
0.25 0.04 (s audio or video data must be trans-) 149.39 720.47 B
-0.03 (mitted and received by an auxiliary server) 53.86 709.47 P
-0.03 (, under the control) 221.57 709.47 P
0.25 0.25 (of a Jupiter application, as in the case of gluing together) 53.86 698.47 B
0.25 0.19 (physical and virtual rooms. In contrast, however) 53.86 687.47 B
0.25 0.19 (, such an) 257.49 687.47 B
0.25 0.09 (archive server should probably be shared among a number) 53.86 676.47 B
0.01 (of applications, recording and playing back several dif) 53.86 665.47 P
0.01 (ferent) 271.48 665.47 P
0.25 0.02 (media streams simultaneously) 53.86 654.48 B
0.25 0.02 (. A Jupiter object, the) 174.78 654.48 B
0 F
0.25 0.02 (ar) 265.07 654.48 B
0.25 0.02 (chive) 273.63 654.48 B
0 (manager) 53.86 643.48 P
2 F
0 (, coordinates the various requests from applications) 89.01 643.48 P
0.25 0.05 (and relays them to the archive server) 53.86 632.48 B
0.25 0.05 (. These requests could) 204.02 632.48 B
0.25 0.39 (include such services as seeking to a new position in a) 53.86 621.48 B
0.25 0.12 (recorded stream or changing the speed of playback. These) 53.86 610.48 B
0.25 0.16 (aren\325) 53.86 599.48 B
0.25 0.16 (t directly tied to the audio/video distribution system,) 75.01 599.48 B
0.25 0.12 (however; they only cause the archive server to modify the) 53.86 588.48 B
(signal it actually delivers to the receivers.) 53.86 577.48 T
0.25 0.01 (An individual tape recorder) 53.86 558.48 B
0.25 0.01 (, then, simply maintains a list of) 164.68 558.48 B
0.25 0.05 (the recordings it has stored on the archive server) 53.86 547.48 B
0.25 0.05 (. For play-) 251.87 547.48 B
0.25 0.1 (back, it creates a transmitter aimed at the room and passes) 53.86 536.48 B
0.25 0.26 (the address/key information it receives on to the archive) 53.86 525.48 B
0.25 0.01 (manager) 53.86 514.48 B
0.25 0.01 (. For recording, it watches the room channel, creat-) 87.79 514.48 B
0.25 0.29 (ing a receiver for every source and again passing on the) 53.86 503.48 B
(addresses and keys to the archive manager) 53.86 492.48 T
(.) 223.26 492.48 T
1 9 Q
(Other Applications) 53.86 471.14 T
2 10 Q
0.25 0.17 (The other applications we described earlier can be imple-) 53.86 459.48 B
0.25 0.01 (mented as straightforward variations on the examples given) 53.86 448.48 B
0.25 0.03 (above. The \324news on the hour) 53.86 437.48 B
0.25 0.03 (\325 service is just another client) 175.16 437.48 B
0.25 0.07 (of the archive server) 53.86 426.48 B
0.25 0.07 (, for example. Applications wishing to) 137.51 426.48 B
0.25 0.02 (play sound ef) 53.86 415.48 B
0.25 0.02 (fects just create a transmitter themselves from) 108.36 415.48 B
0.25 0.22 (which to send URLs, aiming it either at individual users,) 53.86 404.48 B
0.25 0.14 (rooms, or channels whose membership they directly man-) 53.86 393.48 B
(age, as appropriate.) 53.86 382.48 T
1 9 Q
(CONCLUSIONS) 53.86 361.14 T
2 10 Q
0.25 0.21 (The Jupiter system supports multimedia communications) 53.86 349.48 B
0.25 0.02 (and long-term collaboration, using a \322real-world\323 metaphor) 53.86 338.48 B
0.25 0.18 (including people, places, and things. In this environment,) 53.86 327.48 B
0.25 0.16 (we wanted to allow experimentation with a wide range of) 53.86 316.48 B
0.25 0.01 (communication metaphors, such as talking in a room, using) 53.86 305.48 B
0.25 0.27 (a telephone, making announcements on a public address) 53.86 294.48 B
(system, and using a tape recorder) 53.86 283.48 T
(.) 186.61 283.48 T
0.25 0.23 (It is challenging in such a system to keep our users from) 53.86 264.47 B
-0.11 (being confused by the variety of sounds and images emanat-) 53.86 253.47 P
0.25 0.01 (ing from their workstations. Another challenge is providing) 53.86 242.47 B
0.25 0 (a programming library for controlling the f) 53.86 231.47 B
0.25 0 (low of audio and) 226.53 231.47 B
0.25 0 (video that is powerful enough to support our list of applica-) 53.86 220.47 B
0.25 0.12 (tions, yet simple enough to allow users to build new ones.) 53.86 209.47 B
0.12 (Finally) 53.86 198.47 P
0.12 (, to allow use of our system in insecure contexts, it is) 81.55 198.47 P
0.25 0.06 (important to protect the privacy of all communications and) 53.86 187.47 B
0.25 0.17 (the integrity of the coordination system from both misbe-) 53.86 176.47 B
(having users and other possible attackers.) 53.86 165.47 T
0.25 0.01 (Based on experience with an earlier prototype, we designed) 53.86 146.47 B
0.25 0.05 (and implemented a f) 53.86 135.47 B
0.25 0.05 (lexible new programming interface for) 136.97 135.47 B
0.25 0.05 (secure media coordination. W) 53.86 124.47 B
0.25 0.05 (e also designed a small set of) 175.19 124.47 B
0.25 0.25 (new widgets that provide users with the information and) 53.86 113.47 B
0.25 0.04 (control they require. W) 53.86 102.47 B
0.25 0.04 (e are in the process of reimplement-) 148.06 102.47 B
(ing our motivating applications on top of the new facilities.) 53.86 91.47 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
1 9 Q
(REFERENCES) 317.48 732.14 T
2 10 Q
(1.) 317.48 720.47 T
0.1 (Adler) 331.65 720.47 P
0.1 (, Annette, and Austin Henderson, \322A Room of Our) 354.02 720.47 P
0.25 0.8 (Own: Experiences from a Direct Of) 331.65 708.47 B
0.25 0.8 (f) 502.14 708.47 B
0.25 0.8 (ice-Share,\323) 505.72 708.47 B
0 F
0.25 0.25 (Pr) 331.65 696.47 B
0.25 0.25 (oceedings of the 1994 ACM Confer) 341.79 696.47 B
0.25 0.25 (ence on Human) 492.13 696.47 B
(Factors in Computing Systems) 331.65 684.47 T
2 F
(, May) 454.15 684.47 T
(, 1994.) 476.83 684.47 T
(2.) 317.48 666.47 T
0.25 0.77 (Berners-Lee, T) 331.65 666.47 B
0.25 0.77 (., L. Masinter) 402.53 666.47 B
0.25 0.77 (, and M. McCahill,) 467.63 666.47 B
0.25 0.01 (\322Uniform Resource Locators \050URL\051,\323 IETF Request for) 331.65 654.48 B
(Comments RFC 1738, available from) 331.65 642.48 T
4 9 Q
(ftp://ftp.internic.net/rfc/rfc1738.txt.) 331.65 630.48 T
2 10 Q
(3.) 317.48 612.48 T
0.25 0.38 (Bly) 331.65 612.48 B
0.25 0.38 (, Sara, Steve Harrison, and Susan Irwin, \322Media) 346.58 612.48 B
0.25 0.25 (Spaces: Bringing People T) 331.65 600.48 B
0.25 0.25 (ogether in a V) 445.01 600.48 B
0.25 0.25 (ideo, Audio,) 505.65 600.48 B
0.25 0.14 (and Computing Environment,\323) 331.65 588.48 B
0 F
0.25 0.14 (Communications of the) 462.38 588.48 B
(ACM) 331.65 576.48 T
2 F
(, 36\0501\051, January 1993.) 352.76 576.48 T
(4.) 317.48 558.48 T
0.25 0.39 (Curtis, Pavel,) 331.65 558.48 B
0 F
0.25 0.39 (LambdaMOO Pr) 394.61 558.48 B
0.25 0.39 (ogrammer) 467.16 558.48 B
0.25 0.39 (\325) 512.28 558.48 B
0.25 0.39 (s Manual) 514.7 558.48 B
2 F
0.25 0.39 (,) 555.54 558.48 B
0.25 0.92 (available as) 331.65 546.48 B
4 9 Q
0.25 0.92 (ftp://ftp.parc.xerox.com/pub/MOO/) 393.51 546.48 B
(ProgrammersManual.ps) 331.65 534.48 T
2 10 Q
(.) 427.67 534.48 T
(5.) 317.48 516.48 T
0.25 0.08 (Curtis, Pavel and David A. Nichols, \322MUDs Grow Up:) 331.65 516.48 B
0.25 0.69 (Social V) 331.65 504.48 B
0.25 0.69 (irtual Reality in the Real W) 371.54 504.48 B
0.25 0.69 (orld,\323 in the) 501.59 504.48 B
0.25 0.22 (Proceedings of the 1994 IEEE Computer Conference,) 331.65 492.48 B
0.25 0.42 (pp. 193--200, January 1994. Also available as) 331.65 480.48 B
4 9 Q
0.25 0.42 (ftp://) 538.81 480.48 B
(ftp.parc.xerox.com/pub/MOO/papers/MUDsGrowUp.ps) 331.65 468.48 T
2 10 Q
(.) 549.71 468.48 T
(6.) 317.48 450.48 T
0.25 0.48 (Deering, S. and D. Cheriton, \322Multicast routing in) 331.65 450.48 B
0.25 0.9 (datagram networks and extended LANs,\323) 331.65 438.48 B
0 F
0.25 0.9 (ACM) 535.51 438.48 B
(T) 331.65 426.48 T
(ransactions on Computer Systems) 336.66 426.48 T
2 F
(, May 1990.) 472.49 426.48 T
(7.) 317.48 408.48 T
0.25 0.28 (Hickman, Kipp E. B., \322The SSL Protocol,\323 available) 331.65 408.48 B
(from) 331.65 396.48 T
4 9 Q
(http://home.mcom.com/newsref/std/SSL.html) 353.59 396.48 T
2 10 Q
(.) 532.66 396.48 T
(8.) 317.48 378.48 T
0.25 0.32 (Minneman, Scott L., and Steve R. Harrison, \322Where) 331.65 378.48 B
0.25 0.38 (W) 331.65 366.48 B
0.25 0.38 (ere W) 340.67 366.48 B
0.25 0.38 (e: making and using near) 366.18 366.48 B
0.25 0.38 (-synchronous, pre-) 476.7 366.48 B
0.25 0.79 (narrative video,\323) 331.65 354.48 B
0 F
0.25 0.79 (Pr) 416.11 354.48 B
0.25 0.79 (oceedings of the 1993 ACM) 427.32 354.48 B
0.25 0.08 (International Confer) 331.65 342.48 B
0.25 0.08 (ence on Multimedia) 416.22 342.48 B
2 F
0.25 0.08 (, pp. 207--214,) 497.62 342.48 B
(June 1993.) 331.65 330.48 T
(9.) 317.48 312.48 T
0.25 0.26 (Nichols, David A., Pavel Curtis, Michael Dixon, and) 331.65 312.48 B
-0.08 (John Lamping, \322A Low-Bandwidth W) 331.65 300.48 P
-0.08 (indow T) 485.1 300.48 P
-0.08 (oolkit,\323 in) 517.94 300.48 P
(preparation.) 331.65 288.48 T
(10.) 317.48 270.47 T
0.25 0.71 (Schulzrinne, H., S. Casner) 331.65 270.47 B
0.25 0.71 (, R. Frederick, and V) 456.37 270.47 B
0.25 0.71 (.) 555.21 270.47 B
0.25 0.25 (Jacobson, \322R) 331.65 258.47 B
0.25 0.25 (TP: A T) 387.12 258.47 B
0.25 0.25 (ransport Protocol for Real-T) 421.82 258.47 B
0.25 0.25 (ime) 542.92 258.47 B
(Applications,\323 IETF Internet Draft, available from) 331.65 246.47 T
4 9 Q
(ftp://ftp.internic.net/internet-drafts/draft-ietf-avt-rtp-07.txt.) 331.65 234.47 T
2 10 Q
(1) 317.48 216.47 T
(1.) 322.11 216.47 T
0.25 0.29 (Zellweger) 331.65 216.47 B
0.25 0.29 (, Polle T) 374.4 216.47 B
0.25 0.29 (., Douglas B. T) 410.94 216.47 B
0.25 0.29 (erry) 476.45 216.47 B
0.25 0.29 (, and Daniel C.) 493.06 216.47 B
-0.06 (Swinehart, \322An Overview of the Etherphone System and) 331.65 204.47 P
0.25 0.81 (its Applications,\323) 331.65 192.47 B
0 F
0.25 0.81 (Pr) 420.06 192.47 B
0.25 0.81 (oceedings of the) 431.31 192.47 B
0.25 0.81 (2nd IEEE) 513.34 192.47 B
(Confer) 331.65 180.47 T
(ence on Computer W) 359.06 180.47 T
(orkstations) 442.29 180.47 T
2 F
(, March1988.) 486.74 180.47 T
0 1 1 0 1 0 0 K
0 0 0 1 0 0 0 K
FMENDPAGE
%%EndPage: "12" 12
%%Trailer
%%BoundingBox: 0 0 612 792
%%PageOrder: Ascend
%%Pages: 12
%%DocumentFonts: Times-Italic
%%+ Helvetica-Bold
%%+ Times-Roman
%%+ Courier-Bold
%%+ Helvetica
%%+ Times-Bold
%%+ Symbol
%%+ ZapfChancery-MediumItalic
%%EOF