code: def sentinel2_toa_cloud_mask(input_img):
      
      qa_img = input_img.select(['QA60'])
      cloud_mask = qa_img.rightShift(10).bitwiseAnd(1).neq(0)\
          .Or(qa_img.rightShift(11).bitwiseAnd(1).neq(0))
  
      # Set cloudy pixels to 0 and clear to 1
      return cloud_mask.Not()
docs: Extract cloud mask from the Sentinel 2 TOA QA60 band
  
      Parameters
      ----------
      input_img : ee.Image
          Image from the COPERNICUS/S2 collection with a QA60 band.
  
      Returns
      -------
      ee.Image
  
      Notes
      -----
      Output image is structured to be applied directly with updateMask()
          i.e. 0 is cloud, 1 is cloud free
  
      Bits
          10: Opaque clouds present
          11: Cirrus clouds present
  
      The Sentinel 2 TOA and SR cloud masks functions are currently identical
  
      References
      ----------
      https://sentinel.esa.int/documents/247904/685211/Sentinel-2_User_Handbook
      https://sentinel.esa.int/web/sentinel/technical-guides/sentinel-2-msi/level-1c/cloud-masks