code: def _read_snc(snc_file):
      
      snc_raw_dtype = dtype([('sampleStamp', '<i'),
                             ('sampleTime', '<q')])
  
      with snc_file.open('rb') as f:
          f.seek(352)  # end of header
          snc_raw = fromfile(f, dtype=snc_raw_dtype)
  
      sampleStamp = snc_raw['sampleStamp']
      sampleTime = asarray([_filetime_to_dt(x) for x in snc_raw['sampleTime']])
  
      return sampleStamp, sampleTime
docs: Read Synchronization File and return sample stamp and time
  
      Returns
      -------
      sampleStamp : list of int
          Sample number from start of study
      sampleTime : list of datetime.datetime
          File time representation of sampleStamp
  
      Notes
      -----
      The synchronization file is used to calculate a FILETIME given a sample
      stamp (and vise-versa). Theoretically, it is possible to calculate a sample
      stamp's FILETIME given the FILETIME of sample stamp zero (when sampling
      started) and the sample rate. However, because the sample rate cannot be
      represented with full precision the accuracy of the FILETIME calculation is
      affected.
  
      To compensate for the lack of accuracy, the synchronization file maintains
      a sample stamp-to-computer time (called, MasterTime) mapping. Interpolation
      is then used to calculate a FILETIME given a sample stamp (and vise-versa).
  
      The attributes, sampleStamp and sampleTime, are used to predict (using
      interpolation) the FILETIME based upon a given sample stamp (and
      vise-versa). Currently, the only use for this conversion process is to
      enable correlation of EEG (sample_stamp) data with other sources of data
      such as Video (which works in FILETIME).