                                      coverage_ratio=self._samples.predictor.coverage_ratio,
                                      centering=self._samples.predictor.centering,
                                      draw_transparent=False,
                                      pre_encode=None,
                                      arguments=self._generate_converter_arguments(arguments,
                                                                                   available_masks),
                                      configfile=configfile)
          self._shutdown = Event()
  
          self._thread = Thread(target=self._process,
                                name="patch_thread",
 
</s> remove         self._shutdown = Event()

 </s> add  </s> remove         self._converter = Converter(output_size=self._samples.predictor.output_size,
                                    coverage_ratio=self._samples.predictor.coverage_ratio,
                                    centering=self._samples.predictor.centering,
 </s> add         self._converter = Converter(output_size=app._samples.predictor.output_size,
                                    coverage_ratio=app._samples.predictor.coverage_ratio,
                                    centering=app._samples.predictor.centering, </s> remove                               args=(self._trigger,
                                    self._shutdown,
                                    self._queue_patch_in,
                                    self._samples,
                                    tk_vars),
 </s> add                               args=(self._queue_patch_in,
                                    self._app.dispatcher.needs_patch,
                                    app._samples), </s> remove         self._display = display
        self._lock = lock
        self._trigger = trigger
        self.current_config = config_tools.config
 </s> add  </s> remove 
        self._tk_vars: Dict[Literal["refresh", "busy"],
                            tk.BooleanVar] = dict(refresh=tk.BooleanVar(), busy=tk.BooleanVar())
        for val in self._tk_vars.values():
            val.set(False)
        self._display = FacesDisplay(256, 64, self._tk_vars)

        trigger_patch = Event()
        self._samples = Samples(arguments, 5, self._display, self._lock, trigger_patch)
        self._patch = Patch(arguments,
                            self._available_masks,
                            self._samples,
                            self._display,
                            self._lock,
                            trigger_patch,
                            self._config_tools,
                            self._tk_vars)
 </s> add         self._dispatcher = Dispatcher(self)
        self._display = FacesDisplay(self, 256, 64)
        self._samples = Samples(self, arguments, 5)
        self._patch = Patch(self, arguments)
                                    arguments=self._generate_converter_arguments(
                                        arguments,
                                        app._samples.available_masks),
                                      coverage_ratio=self._samples.predictor.coverage_ratio,
                                      centering=self._samples.predictor.centering,
                                      draw_transparent=False,
                                      pre_encode=None,
                                    arguments=self._generate_converter_arguments(
                                        arguments,
                                        app._samples.available_masks),
                                    arguments=self._generate_converter_arguments(
                                        arguments,
                                        app._samples.available_masks),
                                      configfile=configfile)
          self._shutdown = Event()
  
          self._thread = Thread(target=self._process,
                                name="patch_thread",
keep keep keep keep replace replace keep keep keep keep keep
 bugfix:
    - preview tool - Prevent tkinter variables from exiting main thread
refactor:
    - preview tool - Split module to smaller sub-modules + docs, locales
Typing:
    - tools.preview.cli
Unit test:
    - tools.preview.viewer 
tools/preview/preview.py