public function render(): void
    {
        $useSession = $this->useSession && \session_status() === PHP_SESSION_ACTIVE;
        $redirectQueue = &$_SESSION['_tracy']['redirect'];

        foreach (['bar', 'redirect', 'bluescreen'] as $key) {
            $queue = &$_SESSION['_tracy'][$key];
            $queue = \array_slice((array) $queue, -10, null, true);
            $queue = \array_filter($queue, function ($item) {
                return isset($item['time']) && $item['time'] > \time() - 60;
            });
        }

        $rows = [];

        if (Helpers::isAjax()) {
			if ($useSession) {
				$rows[] = (object) ['type' => 'ajax', 'panels' => $this->renderPanels('-ajax')];
				$contentId = $_SERVER['HTTP_X_TRACY_AJAX'] . '-ajax';
				$_SESSION['_tracy']['bar'][$contentId] = ['content' => self::renderHtmlRows($rows), 'dumps' => Dumper::fetchLiveData(), 'time' => \time()];
			}
        } elseif (Helpers::isRedirect()) { // redirect
            if ($useSession) {
				Dumper::fetchLiveData();
				Dumper::$livePrefix = \count($redirectQueue) . 'p';
				$redirectQueue[] = [
					'panels' => $this->renderPanels('-r' . \count($redirectQueue)),
					'dumps' => Dumper::fetchLiveData(),
					'time' => \time(),
				];
			}
		} elseif (Helpers::isHtmlMode()) {
            $rows[] = (object) ['type' => 'main', 'panels' => $this->renderPanels()];
            $dumps = Dumper::fetchLiveData();
            foreach (\array_reverse((array) $redirectQueue) as $info) {
                $rows[] = (object) ['type' => 'redirect', 'panels' => $info['panels']];
                $dumps += $info['dumps'];
            }
            $redirectQueue = null;
            $content = self::renderHtmlRows($rows);

            if ($this->contentId) {
                $_SESSION['_tracy']['bar'][$this->contentId] = ['content' => $content, 'dumps' => $dumps, 'time' => time()];
			} else {
				$contentId = \substr(\md5(\uniqid('', true)), 0, 10);
				$nonce = Helpers::getNonce();
				$async = false;
				require __DIR__ . '/assets/Bar/loader.phtml';
			}
        }
    }