code: func NewSourceFromFile(responseFile string) (Source, error) {
  	fileContents, err := ioutil.ReadFile(responseFile)
  	if err != nil {
  		return nil, err
  	}
  
  	responsesB64 := regexp.MustCompile("\\s").Split(string(fileContents), -1)
  	src := InMemorySource{}
  	for _, b64 := range responsesB64 {
  		// if the line/space is empty just skip
  		if b64 == "" {
  			continue
  		}
  		der, tmpErr := base64.StdEncoding.DecodeString(b64)
  		if tmpErr != nil {
  			log.Errorf("Base64 decode error %s on: %s", tmpErr, b64)
  			continue
  		}
  
  		response, tmpErr := ocsp.ParseResponse(der, nil)
  		if tmpErr != nil {
  			log.Errorf("OCSP decode error %s on: %s", tmpErr, b64)
  			continue
  		}
  
  		src[response.SerialNumber.String()] = der
  	}
  
  	log.Infof("Read %d OCSP responses", len(src))
  	return src, nil
  }
docs: // NewSourceFromFile reads the named file into an InMemorySource.
  // The file read by this function must contain whitespace-separated OCSP
  // responses. Each OCSP response must be in base64-encoded DER form (i.e.,
  // PEM without headers or whitespace).  Invalid responses are ignored.
  // This function pulls the entire file into an InMemorySource.