      @property
      def normalized_landmarks(self):
          """ :class:`numpy.ndarray`: The 68 point facial landmarks normalized to 0.0 - 1.0 as
          aligned by Umeyama. """
          with self._cache["landmarks_normalized"][1]:
              if self._cache["landmarks_normalized"][0] is None:
                  lms = np.expand_dims(self._frame_landmarks, axis=1)
                  lms = cv2.transform(lms, self._matrices["legacy"], lms.shape).squeeze()
                  logger.trace("normalized landmarks: %s", lms)
                  self._cache["landmarks_normalized"][0] = lms
          return self._cache["landmarks_normalized"][0]
 
</s> remove     def normalized_landmarks(self):
 </s> add     def normalized_landmarks(self) -> np.ndarray: </s> remove                 logger.trace("normalized landmarks: %s", lms)
                self._cache["landmarks_normalized"][0] = lms
        return self._cache["landmarks_normalized"][0]
 </s> add                 logger.trace("normalized landmarks: %s", lms)  # type: ignore
                self._cache.landmarks_normalized = lms
        return self._cache.landmarks_normalized </s> remove                 logger.trace("aligned landmarks: %s", lms)
                self._cache["landmarks"][0] = lms
        return self._cache["landmarks"][0]
 </s> add                 logger.trace("aligned landmarks: %s", lms)  # type: ignore
                self._cache.landmarks = lms
            return self._cache.landmarks </s> remove         with self._cache["landmarks"][1]:
            if self._cache["landmarks"][0] is None:
 </s> add         with self._cache.lock("landmarks"):
            if self._cache.landmarks is None: </s> remove     def landmarks(self):
 </s> add     def landmarks(self) -> np.ndarray:
        with self._cache.lock("landmarks_normalized"):
            if self._cache.landmarks_normalized is None:
      @property
      def normalized_landmarks(self):
          """ :class:`numpy.ndarray`: The 68 point facial landmarks normalized to 0.0 - 1.0 as
          aligned by Umeyama. """
        with self._cache.lock("landmarks_normalized"):
            if self._cache.landmarks_normalized is None:
        with self._cache.lock("landmarks_normalized"):
            if self._cache.landmarks_normalized is None:
                  lms = np.expand_dims(self._frame_landmarks, axis=1)
                  lms = cv2.transform(lms, self._matrices["legacy"], lms.shape).squeeze()
                  logger.trace("normalized landmarks: %s", lms)
                  self._cache["landmarks_normalized"][0] = lms
          return self._cache["landmarks_normalized"][0]
keep keep keep keep replace replace keep keep keep keep keep
 lib.align.aligned_face updates
  - Typing
  - Legacy support for pre-aligned faces
  - Coverage support for pre-aligned faces
  - Standardized retrieval of sub-crops 
lib/align/aligned_face.py