2021-07-03 19:18:21 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Copyright  ( c )  Microsoft  Corporation . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  the  Apache  License ,  Version  2.0  ( the  "License" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  you  may  not  use  this  file  except  in  compliance  with  the  License . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  You  may  obtain  a  copy  of  the  License  at 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  http : //www.apache.org/licenses/LICENSE-2.0
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Unless  required  by  applicable  law  or  agreed  to  in  writing ,  software 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  distributed  under  the  License  is  distributed  on  an  "AS IS"  BASIS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  WITHOUT  WARRANTIES  OR  CONDITIONS  OF  ANY  KIND ,  either  express  or  implied . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  See  the  License  for  the  specific  language  governing  permissions  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  limitations  under  the  License . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-25 15:05:50 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  browserTest  as  it ,  expect  }  from  '../config/browserTest' ;  
						 
					
						
							
								
									
										
										
										
											2021-07-03 19:18:21 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								import  fs  from  'fs' ;  
						 
					
						
							
								
									
										
										
										
											2022-06-21 14:04:52 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  os  from  'os' ;  
						 
					
						
							
								
									
										
										
										
											2021-07-03 19:18:21 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								async  function  checkFeatures ( name : string ,  context : any ,  server : any )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  try  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  page  =  await  context . newPage ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    await  page . goto ( server . PREFIX  +  '/modernizr/index.html' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-03 19:18:21 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    const  actual  =  await  page . evaluate ( 'window.report' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-25 21:11:29 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  expected  =  JSON . parse ( fs . readFileSync ( require . resolve ( ` ../assets/modernizr/ ${ name } .json ` ) ,  'utf-8' ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  {  actual ,  expected  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-03 19:18:21 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  }  finally  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    await  context . close ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								it ( 'Safari Desktop' ,  async  ( {  browser ,  browserName ,  platform ,  server ,  headless ,  isMac  } )  = >  {  
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  it . skip ( browserName  !==  'webkit' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-19 10:29:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  it . skip ( browserName  ===  'webkit'  &&  platform  ===  'darwin'  &&  parseInt ( os . release ( ) ,  10 )  ===  22 ,  'Modernizr uses WebGL which is not available in macOS-13 - https://bugs.webkit.org/show_bug.cgi?id=278277' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-12 08:35:59 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  const  context  =  await  browser . newContext ( { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    deviceScaleFactor : 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  const  {  actual ,  expected  }  =  await  checkFeatures ( 'safari-18' ,  context ,  server ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expected . pushmanager  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expected . hiddenscroll  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expected . devicemotion2  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expected . devicemotion  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expected . deviceorientation  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expected . deviceorientation3  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  delete  expected . webglextensions ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  delete  actual . webglextensions ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expected . audio  =  ! ! expected . audio ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  actual . audio  =  ! ! actual . audio ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expected . video  =  ! ! expected . video ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  actual . video  =  ! ! actual . video ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  ( platform  ===  'linux' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . subpixelfont  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 12:51:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . speechrecognition  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . publickeycredential  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . mediastream  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( headless ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expected . todataurljpeg  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // GHA
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  actual . variablefonts ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  expected . variablefonts ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  ( platform  ===  'win32' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . datalistelem  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . getusermedia  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . peerconnection  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . speechrecognition  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . speechsynthesis  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . todataurljpeg  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . webaudio  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 12:51:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . gamepads  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . input . list  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    delete  expected . datalistelem ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . publickeycredential  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . mediastream  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . mediasource  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . datachannel  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . inputtypes . color  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . inputtypes . month  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . inputtypes . week  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . inputtypes . date  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . inputtypes [ 'datetime-local' ]  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . inputtypes . time  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-03 14:51:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  expect ( actual ) . toEqual ( expected ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-03 19:18:21 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								it ( 'Mobile Safari' ,  async  ( {  playwright ,  browser ,  browserName ,  platform ,  isMac ,  server ,  headless  } )  = >  {  
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  it . skip ( browserName  !==  'webkit' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-19 10:29:23 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  it . skip ( browserName  ===  'webkit'  &&  platform  ===  'darwin'  &&  parseInt ( os . release ( ) ,  10 )  ===  22 ,  'Modernizr uses WebGL which is not available in macOS-13 - https://bugs.webkit.org/show_bug.cgi?id=278277' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-03 19:18:21 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  const  iPhone  =  playwright . devices [ 'iPhone 12' ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  const  context  =  await  browser . newContext ( iPhone ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  const  {  actual ,  expected  }  =  await  checkFeatures ( 'mobile-safari-18' ,  context ,  server ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // All platforms.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . capture  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . cssscrollbar  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . cssvhunit  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . cssvmaxunit  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . overflowscrolling  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . mediasource  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . scrolltooptions  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  expected . webglextensions ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  actual . webglextensions ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . audio  =  ! ! expected . audio ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    actual . audio  =  ! ! actual . audio ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . video  =  ! ! expected . video ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    actual . video  =  ! ! actual . video ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  ( platform  ===  'linux' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . subpixelfont  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 12:51:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . speechrecognition  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . publickeycredential  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . mediastream  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( headless ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      expected . todataurljpeg  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // GHA
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  actual . variablefonts ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  expected . variablefonts ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  ( platform  ===  'win32' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . datalistelem  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . getusermedia  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . peerconnection  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . speechrecognition  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . speechsynthesis  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . todataurljpeg  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . webaudio  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 12:51:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . gamepads  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . input . list  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-23 16:59:55 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delete  expected . datalistelem ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . publickeycredential  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . mediastream  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . mediasource  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . datachannel  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-07-23 09:13:57 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    expected . inputtypes . color  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . inputtypes . month  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . inputtypes . week  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . inputtypes . date  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . inputtypes [ 'datetime-local' ]  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expected . inputtypes . time  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  expect ( actual ) . toEqual ( expected ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-07-03 19:18:21 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								} ) ;