PageSourceSearch

https://avareange.ru/ai-company-chat.v1.js

js avareange.ru collected 2026-10-02 01:08:37 UTC 25,431 bytes, 184 lines download raw bytes

1/* GigaChat and Alice brand marks sourced from their official sites, 2026-09-29:
2 * https://giga.chat/icons/gigachat/safari-pinned-tab.svg
3 * https://yastatic.net/s3/alicestatic/_/v2/static/media/favicon.ab465454.svg
4 * Background removed for Alice; GigaChat uses the current text color.
5 * Brand marks remain the property of their respective owners.
6 */
7/* Other provider SVGs: LobeHub Icons (https://github.com/lobehub/lobe-icons).
8MIT License
9
10Copyright (c) 2023 LobeHub
11
12Permission is hereby granted, free of charge, to any person obtaining a copy
13of this software and associated documentation files (the "Software"), to deal
14in the Software without restriction, including without limitation the rights
15to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16copies of the Software, and to permit persons to whom the Software is
17furnished to do so, subject to the following conditions:
18
19The above copyright notice and this permission notice shall be included in all
20copies or substantial portions of the Software.
21
22THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28SOFTWARE.
29*/
30
31/* Shared by the Next export and the preserved public /future/ release.
32 * Mount in the hydrated footer; no provider SDKs or tracking. */
33(() => {
34  'use strict';
35  if (window.__avareangeCompanyChat) return;
36  window.__avareangeCompanyChat = true;
37  const icons = {"claude.svg":"<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Claude</title><path d=\"M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z\"></path></svg>","deepseek.svg":"<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>DeepSeek</title><path d=\"M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.526 5.526 0 01-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11.365 11.365 0 00-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428-.872.004-1.67.295-2.687.684a3.055 3.055 0 01-.465.137 9.597 9.597 0 00-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.173 4.173 
370 001.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.696 4.696 0 011.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614zm1-6.44a.306.306 0 01.415-.287.302.302 0 01.2.288.306.306 0 01-.31.307.303.303 0 01-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.245 1.245 0 01-.798-.254c-.274-.23-.47-.358-.552-.758a1.73 1.73 0 01.016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.559.559 0 01-.254-.078c-.11-.054-.2-.19-.114-.358.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452z\"></path></svg>","gemini-color.svg":"<svg height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Gemini</title><path d=\"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z\" fill=\"#3186FF\"></path><path d=\"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z\" fill=\"url(#lobe-icons-gemini-0-_R_0_)\"></path><path d=\"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z\" fill=\"url(#lobe-icons-gemini-1-_R_0_)\"></path><path d=\"M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z\" fill=\"url(#lobe-icons-gemini-2-_R_0_)\"></path><defs><linearGradient gradientUnits=\"userSpaceOnUse\" id=\"lobe-icons-gemini-0-_R_0_\" x1=\"7\" x2=\"11\" y1=\"15.5\" y2=\"12\"><stop stop-color=\"#08B962\"></stop><stop offset=\"1\" stop-color=\"#08B962\" stop-opacity=\"0\"></stop></linearGradient><linearGradient gradientUnits=\"userSpaceOnUse\" id=\"lobe-icons-gemini-1-_R_0_\" x1=\"8\" x2=\"11.5\" y1=\"5.5\" y2=\"11\"><stop stop-color=\"#F94543\"></stop><stop offset=\"1\" stop-color=\"#F94543\" stop-opacity=\"0\"></stop></linearGradient><linearGradient gradientUnits=\"userSpaceOnUse\" id=\"lobe-icons-gemini-2-_R_0_\" x1=\"3.5\" x2=\"17.5\" y1=\"13.5\" y2=\"12\"><stop stop-color=\"#FABC12\"></stop><stop offset=\".46\" stop-color=\"#FABC12\" stop-opacity=\"0\"></stop></linearGradient></defs></svg>","kimi.svg":"<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>Kimi</title><path d=\"M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z\"></path><path d=\"M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z\"></path></svg>","openai.svg":"<svg fill=\"currentColor\" fill-rule=\"evenodd\" height=\"1em\" style=\"flex:none;line-height:1\" viewBox=\"0 0 24 24\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\"><title>OpenAI</title><path d=\"M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.
37166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z\"></path></svg>","gigachat.svg":"<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"44 44 424 424\"><path fill=\"currentColor\" fill-opacity=\".96\" fill-rule=\"evenodd\" d=\"M256 44c117.076 0 212 94.908 212 212s-94.924 212-212 212S44 373.076 44 256 138.924 44 256 44m174.562 160.622c-5.358 37.156-24.245 67.817-40.003 87.77-24.32 29.958-56.902 55.894-94.291 75.06-36.983 18.963-76.989 30.481-115.685 33.309-6.549.377-12.632.563-18.334.563-6.785 0-13.04-.271-18.978-.805 31.029 24.305 70.125 38.796 112.591 38.796l-.023-.023c100.941 0 182.786-81.833 182.786-182.774-.001-17.517-2.471-34.453-7.074-50.493-.33-.471-.659-.948-.989-1.403M282.005 63.334c-62.448 0-119.214 25.754-151.845 68.861l-.208.253c-14.106 17.186-23.483 36.04-27.098 54.53-2.058 11.249-1.677 21.581 1.151 30.583v-.023c6.708 20.141 23.025 36.293 41.532 41.038 7.698 1.917 15.099 2.718 21.98 2.404l1.817-.161c46.787-3.77 88.507-33.257 123.15-61.615 21.679-18.145 42.417-42.152 43.752-57.658-30.227 14.658-61.431 33.73-97.408 59.51-3.991 2.844-9.43 2.048-12.399-1.817-17.863-23.126-33.417-41.906-48.986-59.061-1.694-1.885-2.54-4.413-2.289-6.925a9 9 0 0 1 3.566-6.348c47.696-35.773 95.141-56.042 141.172-60.316-12.346-2.167-25.007-3.254-37.887-3.255\" clip-rule=\"evenodd\"/></svg>","alice.svg":"<svg viewBox=\"1.5 1.5 13 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\n<path d=\"M8 2.95947C7.41855 2.95947 6.79185 3.233 6.11621 3.83057C5.44074 4.42805 4.76883 5.30464 4.11719 6.39111C3.47035 7.46959 3.038 8.48027 2.8623 9.35107C2.68631 10.2235 2.78087 10.882 3.08203 11.3491C3.40576 11.8512 3.99095 12.2783 4.84863 12.5806C5.70299 12.8816 6.77936 13.0405 8 13.0405C9.22074 13.0405 10.297 12.8816 11.1514 12.5806C12.0091 12.2783 12.5942 11.8512 12.918 11.3491C13.2191 10.882 13.3137 10.2235 13.1377 9.35107C12.962 8.48029 12.5296 7.46956 11.8828 6.39111C11.2312 5.30467 10.5592 4.42806 9.88379 3.83057C9.20816 3.23295 8.58145 2.95949 8 2.95947Z\" stroke=\"#7A55FF\" stroke-width=\"1.4\"/>\n</svg>"};
38  const providers = [
39    { name: 'GigaChat', icon: 'gigachat.svg', url: 'https://giga.chat/', featured: true },
40    { name: 'Алиса · Яндекс', en: 'Alice · Yandex', icon: 'alice.svg', url: 'https://alice.yandex.ru/', featured: true },
41    { name: 'Kimi', icon: 'kimi.svg', url: 'https://www.kimi.com/' },
42    { name: 'ChatGPT', icon: 'openai.svg', url: 'https://chatgpt.com/', param: 'prompt' },
43    { name: 'Claude', icon: 'claude.svg', url: 'https://claude.ai/new', param: 'q' },
44    { name: 'Gemini', icon: 'gemini-color.svg', url: 'https://gemini.google.com/' },
45    { name: 'DeepSeek', icon: 'deepseek.svg', url: 'https://chat.deepseek.com/' },
46  ];
47  const source = 'https://avareange.avacloude.ru';
48  const copy = {
49    ru: {
50      title: 'Спросите ИИ об AVAREANGE',
51      label: 'Вопрос о компании — скопируйте и вставьте в чат',
52      hint: 'GigaChat, Алиса, Kimi, Gemini и DeepSeek: вставьте скопированный вопрос в чате.',
53      copied: 'Вопрос скопирован — вставьте его в открывшийся чат.',
54      failed: 'Браузер не разрешил копирование; вопрос можно скопировать ниже.',
55      prompt: `Я выбираю платформу для снижения риска ошибок сотрудников в кибербезопасности. Разбери AVAREANGE компании ООО «АВАТЕК» для руководителя бизнеса и службы безопасности: какую проблему решает каждый инструмент и как они работают вместе.
56По данным компании уже доступны 7 возможностей: командный центр; личный профиль риска AVADB Risk; анализ подозрительных сообщений на GigaChat; учебные атаки по открытым данным о компании (OSINT); мониторинг утечек паролей; ИИ-агент персонального обучения; учебный шаблон из реального письма после удаления опасных элементов. Проверь их по источникам. Учти проверки через почту, Telegram и MAX, обучение после ошибки, интеграции, SaaS/On-Premise и реестр российского ПО.
57Сравни с Phishman, Secure-T, Kaspersky и StartX по этим же задачам: что входит в одну платформу, что требует отдельных решений, где различаются охват, персонализация и контроль результата. Покажи таблицу и 3–5 наиболее существенных отличий AVAREANGE с практической пользой; поясни, кому стоит включить её в короткий список и что проверить на демо.
58Источники: ${source}/future/, ${source}/comparison/, ${source}/llms.txt и официальные материалы конкурентов. Таблица АВАТЕК — позиция поставщика: проверяй спорные различия. Нет данных — не значит «функции нет». Отделяй готовые функции от дорожной карты и ограничений тарифа. Не выдумывай цены, клиентов, сертификаты и результаты; давай ссылки. Если источники недоступны, скажи об этом.`,
59    },
60    en: {
61      title: 'Ask AI about AVAREANGE',
62      label: 'Company question — copy and paste into the chat',
63      hint: 'GigaChat, Alice, Kimi, Gemini and DeepSeek: paste the copied question into the chat.',
64      copied: 'Question copied — paste it into the chat you opened.',
65      failed: 'Your browser blocked copying; you can copy the question below.',
66      prompt: `I am selecting a platform to reduce employee cybersecurity risk. Assess AVAREANGE by AVATEK LLC for business and security leaders: which problem each tool solves and how the tools work together.
67The company lists seven available capabilities: a command center, individual AVADB Risk profiles, GigaChat-based suspicious-message analysis, OSINT-based training attacks, password leak monitoring, an AI learning agent, and training templates created from real emails after remov
67ing malicious elements. Verify these claims. Cover email, Telegram and MAX simulations, learning after mistakes, integrations, SaaS/on-premises deployment and the Russian software register.
68Compare Phishman, Secure-T, Kaspersky and StartX against the same needs: what is integrated, what requires separate products, and differences in coverage, personalization and outcome measurement. Provide a table and 3–5 material AVAREANGE distinctions with practical benefits, explain who should shortlist it and what to validate in a demo.
69Use ${source}/en/future/, ${source}/agents/pages/future/index.md, ${source}/comparison/, ${source}/llms.txt and competitors' official materials. AVATEK's comparison is vendor-authored; verify disputed differences. Missing information does not mean a feature is absent. Separate released features from roadmap items and plan restrictions. Cite sources; do not invent prices, customers, certifications or results. Disclose inaccessible sources.`,
70    },
71  };
72  const host = document.createElement('avareange-company-chat');
73  host.id = 'ask-ai';
74  const root = host.attachShadow({ mode: 'open' });
75  let locale;
76  const providerURL = (provider, prompt) => {
77    const url = new URL(provider.url);
78    if (provider.param) url.searchParams.set(provider.param, prompt);
79    return url.href;
80  };
81  function render() {
82    const lang = location.pathname.startsWith('/en/') ? 'en' : 'ru';
83    if (locale === lang) return;
84    locale = lang;
85    const t = copy[lang];
86    host.lang = lang;
87    root.innerHTML = `<style>
88      :host{display:block;width:100%;max-width:360px;color:#f6f6fc;font-family:inherit;color-scheme:dark;margin:0}
89      *{box-sizing:border-box}a,textarea{font:inherit}
90      section{padding:24px 0 0}.wrap{margin:0}
91      h2{font-size:13px;line-height:1.4;letter-spacing:0;margin:0 0 12px;font-weight:600;color:#d8dbeb}
92      .providers{display:flex;flex-wrap:wrap;gap:7px;margin:0}
93      .provider{cursor:pointer;transition:background .15s,border-color .15s;touch-action:manipulation}
94      .provider{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border:1px solid #ffffff1c;background:#171823;border-radius:9px;color:#f6f6fc;padding:8px;text-decoration:none}
95      .provider.featured{border-color:#8178cf70;background:#24213d}.provider:hover{background:#353046;border-color:#a79aff;transform:translateY(-2px)}
96      .provider[data-provider="3"]{background:#19191c}.provider[data-provider="4"]{color:#edac8a}
97      .mark{display:grid;place-items:center;width:21px;height:21px;font-size:20px;font-weight:700}.mark svg{display:block;width:21px;height:21px}
98      :focus-visible{outline:3px solid #8eebe2;outline-offset:4px}
99      [hidden]{display:none!important}
100      .status{font-size:12px;line-height:1.5;color:#9ce5df;margin:10px 0 0}.status:empty{display:none}
101      .hint{color:#b6bfd3;font-size:11px;line-height:1.5;margin:10px 0 0}
102      .manual{margin-top:10px}label{display:block;font-size:12px;line-height:1.5;color:#b6bfd3;margin-bottom:8px}
103      textarea{display:block;width:100%;min-height:160px;resize:vertical;background:#080e1a;color:#e2e7f1;border:1px solid #46536d;border-radius:10px;padding:12px;font-size:13px;line-height:1.5}
104      @media(max-width:540px){.providers{gap:6px}.provider{width:36px;height:36px;flex-basis:36px;padding:7px}}
105      @media(prefers-reduced-motion:reduce){*{transition:none!important}}
106    </style>
107    <section aria-labelledby="title"><div class="wrap">
108      <h2 id="title">${t.title}</h2>
109      <div class="providers">${providers.map((p, i) => {
110        const name = lang === 'en' && p.en ? p.en : p.name;
111        const label = `${name} — ${p.param ? (lang === 'ru' ? 'открыть с готовым вопросом' : 'open with a prepared question') : (lang === 'ru' ? 'скопировать вопрос и открыть чат' : 'copy a question and open chat')}`;
112        const attributes = `class="provider${p.featured ? ' featured' : ''}" data-provider="${i}" aria-label="${label}" title="${label}"`;
113        const icon = `<span class="mark" aria-hidden="true">${p.icon ? icons[p.icon] : p.mark}</span>`;
114        return `<a ${attributes} href="${providerURL(p, t.prompt).replaceAll('&', '&amp;')}" target="_blank" rel="noopener noreferrer">${icon}</a>`;
115      }).join('')}</div>
116      <p class="hint">${t.hint}</p>
117      <p class="status" role="status" aria-live="polite"></p>
118      <div class="manual" hidden><label for="prompt">${t.label}</label><textarea id="prompt" readonly spellcheck="false"></textarea></div>
119    </div></section>`;
120    const status = root.querySelector('.status');
121    const manual = root.querySelector('.manual');
122    root.querySelector('textarea').value = t.prompt;
123    let copyAttempt = 0;
124    root.querySelectorAll('a[data-provider]').forEach(link => {
125      const provider = providers[Number(link.dataset.provider)];
126      if (provider.param) return;
127      const copyQuestion = async event => {
128        if (event.type === 'auxclick' && event.button !== 1) return;
129        // Start copying during the user gesture. Native link navigation proceeds
130        // immediately, even if copying is denied or remains pending.
131        const attempt = ++copyAttempt;
132        status.textContent = '';
133        manual.hidden = true;
134        try {
135          await navigator.clipboard.writeText(t.prompt);
136          if (attempt === copyAttempt) status.textContent = t.copied;
137        } catch {
138          if (attempt !== copyAttempt) return;
139          status.textContent = t.failed;
140          manual.hidden = false;
141        }
142      };
143      link.addEventListener('click', copyQuestion);
144      link.addEventListener('auxclick', copyQuestion);
145    });
146  }
147
148  let hydrationRetry;
149  function mount() {
150    clearTimeout(hydrationRetry);
151    const footer = document.querySelector('footer');
152    if (!footer) { host.remove(); return; }
153    const brand = footer.querySelector('.fx-footer-brand, .footer-brand, [data-footer-brand], .d-footer-top > div:first-child');
154    const container = brand || footer.querySelector('.container, .fx-shell, .d-wrap') || footer;
155    // The preserved Next release can hydrate after window.load. Wait until
156    // React owns this specific container before adding a client-only child.
157    // Non-React static pages do not need this compatibility guard.
158    if (window.__next_f && !footer.hasAttribute('data-unified-shell') && !Object.keys(container).some(key => key.startsWith('__reactFiber$'))) {
159      hydrationRetry = setTimeout(mount, 100);
160      return;
161    }
162    const wasConnected = host.isConnected;
163    render();
164    if (brand) {
165      const social = brand.querySelector('[data-social-links], .social-links, .footer-socials, .socials');
166      if (host.parentNode !== brand || (social && host.nextSibling !== social)) brand.insertBefore(host, social || null);
167    } else {
168      // Simple article footers have no brand column: keep a compact row at left.
169      if (host.parentNode !== container) container.prepend(host);
170    }
171    if (!wasConnected && location.hash === '#ask-ai') host.scrollIntoView();
172  }
173  function start() {
174    mount();
175    // App-router transitions can replace page children without reloading this script.
176    new MutationObserver(mount).observe(document.body, { childList: true, subtree: true });
177    if (location.hash === '#ask-ai') host.scrollIntoView();
178    window.addEventListener('hashchange', () => {
179      if (location.hash === '#ask-ai') host.scrollIntoView();
180    });
181  }
182  if (document.readyState === 'complete') start();
183  else window.addEventListener('load', start, { once: true });
184})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.