gitextract_vt94lyrq/ ├── .coveragerc ├── .devcontainer/ │ ├── Dockerfile │ └── devcontainer.json ├── .dir-locals-template.el ├── .dockerignore ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.md │ │ ├── config.yml │ │ ├── engine-request.md │ │ └── feature-request.md │ ├── dependabot.yml │ └── workflows/ │ ├── container.yml │ ├── data-update.yml │ ├── documentation.yml │ ├── integration.yml │ ├── l10n.yml │ └── security.yml ├── .gitignore ├── .nvmrc ├── .pylintrc ├── .vscode/ │ ├── launch.json │ ├── settings.json │ └── tasks.json ├── .weblate ├── .yamllint.yml ├── AI_POLICY.rst ├── AUTHORS.rst ├── CHANGELOG.rst ├── CONTRIBUTING.rst ├── LICENSE ├── Makefile ├── PULL_REQUEST_TEMPLATE.md ├── README.rst ├── SECURITY.md ├── babel.cfg ├── client/ │ └── simple/ │ ├── .gitignore │ ├── .stylelintrc.json │ ├── README.rst │ ├── biome.json │ ├── generated/ │ │ └── pygments.less │ ├── package.json │ ├── src/ │ │ ├── js/ │ │ │ ├── Plugin.ts │ │ │ ├── index.ts │ │ │ ├── loader.ts │ │ │ ├── main/ │ │ │ │ ├── autocomplete.ts │ │ │ │ ├── keyboard.ts │ │ │ │ ├── preferences.ts │ │ │ │ ├── results.ts │ │ │ │ └── search.ts │ │ │ ├── plugin/ │ │ │ │ ├── Calculator.ts │ │ │ │ ├── InfiniteScroll.ts │ │ │ │ └── MapView.ts │ │ │ ├── router.ts │ │ │ ├── toolkit.ts │ │ │ └── util/ │ │ │ ├── appendAnswerElement.ts │ │ │ ├── assertElement.ts │ │ │ └── getElement.ts │ │ └── less/ │ │ ├── animations.less │ │ ├── autocomplete.less │ │ ├── definitions.less │ │ ├── detail.less │ │ ├── embedded.less │ │ ├── index.less │ │ ├── info.less │ │ ├── mixins.less │ │ ├── preferences.less │ │ ├── result_templates.less │ │ ├── result_types/ │ │ │ ├── code.less │ │ │ ├── file.less │ │ │ ├── keyvalue.less │ │ │ └── paper.less │ │ ├── rss.less │ │ ├── search.less │ │ ├── stats.less │ │ ├── style-center.less │ │ ├── style-ltr.less │ │ ├── style-rtl.less │ │ ├── style.less │ │ ├── toolkit.less │ │ ├── toolkit_loader.less │ │ └── weather.less │ ├── theme_icons.ts │ ├── tools/ │ │ ├── img.ts │ │ ├── jinja_svg_catalog.html.edge │ │ ├── jinja_svg_catalog.ts │ │ └── plg.ts │ ├── tsconfig.json │ └── vite.config.ts ├── container/ │ ├── builder.dockerfile │ ├── dist.dockerfile │ ├── docker-compose.yml │ └── entrypoint.sh ├── docs/ │ ├── _static/ │ │ └── searxng.css │ ├── admin/ │ │ ├── answer-captcha.rst │ │ ├── api.rst │ │ ├── arch_public.dot │ │ ├── architecture.rst │ │ ├── buildhosts.rst │ │ ├── index.rst │ │ ├── installation-apache.rst │ │ ├── installation-docker.rst │ │ ├── installation-granian.rst │ │ ├── installation-nginx.rst │ │ ├── installation-scripts.rst │ │ ├── installation-searxng.rst │ │ ├── installation-uwsgi.rst │ │ ├── installation.rst │ │ ├── plugins.rst │ │ ├── searx.favicons.rst │ │ ├── searx.limiter.rst │ │ ├── settings/ │ │ │ ├── index.rst │ │ │ ├── settings.rst │ │ │ ├── settings_brand.rst │ │ │ ├── settings_categories_as_tabs.rst │ │ │ ├── settings_engines.rst │ │ │ ├── settings_general.rst │ │ │ ├── settings_outgoing.rst │ │ │ ├── settings_plugins.rst │ │ │ ├── settings_redis.rst │ │ │ ├── settings_search.rst │ │ │ ├── settings_server.rst │ │ │ ├── settings_ui.rst │ │ │ └── settings_valkey.rst │ │ └── update-searxng.rst │ ├── build-templates/ │ │ └── searxng.rst │ ├── conf.py │ ├── dev/ │ │ ├── answerers/ │ │ │ ├── builtins.rst │ │ │ ├── development.rst │ │ │ ├── index.rst │ │ │ ├── random.rst │ │ │ └── statistics.rst │ │ ├── commits.rst │ │ ├── contribution_guide.rst │ │ ├── csv_table.txt │ │ ├── engines/ │ │ │ ├── demo/ │ │ │ │ ├── demo_offline.rst │ │ │ │ └── demo_online.rst │ │ │ ├── engine_overview.rst │ │ │ ├── enginelib.rst │ │ │ ├── engines.rst │ │ │ ├── index.rst │ │ │ ├── json_engine.rst │ │ │ ├── mediawiki.rst │ │ │ ├── offline/ │ │ │ │ ├── command-line-engines.rst │ │ │ │ ├── nosql-engines.rst │ │ │ │ ├── search-indexer-engines.rst │ │ │ │ └── sql-engines.rst │ │ │ ├── offline_concept.rst │ │ │ ├── online/ │ │ │ │ ├── adobe_stock.rst │ │ │ │ ├── alpinelinux.rst │ │ │ │ ├── annas_archive.rst │ │ │ │ ├── aol.rst │ │ │ │ ├── archlinux.rst │ │ │ │ ├── arxiv.rst │ │ │ │ ├── astrophysics_data_system.rst │ │ │ │ ├── azure.rst │ │ │ │ ├── bing.rst │ │ │ │ ├── bpb.rst │ │ │ │ ├── brave.rst │ │ │ │ ├── bt4g.rst │ │ │ │ ├── cara.rst │ │ │ │ ├── chinaso.rst │ │ │ │ ├── core.rst │ │ │ │ ├── crossref.rst │ │ │ │ ├── dailymotion.rst │ │ │ │ ├── discourse.rst │ │ │ │ ├── duckduckgo.rst │ │ │ │ ├── geizhals.rst │ │ │ │ ├── gitea.rst │ │ │ │ ├── github_code.rst │ │ │ │ ├── gitlab.rst │ │ │ │ ├── google.rst │ │ │ │ ├── huggingface.rst │ │ │ │ ├── karmasearch.rst │ │ │ │ ├── lemmy.rst │ │ │ │ ├── loc.rst │ │ │ │ ├── marginalia.rst │ │ │ │ ├── mastodon.rst │ │ │ │ ├── moviepilot.rst │ │ │ │ ├── mrs.rst │ │ │ │ ├── mwmbl.rst │ │ │ │ ├── odysee.rst │ │ │ │ ├── openalex.rst │ │ │ │ ├── openlibrary.rst │ │ │ │ ├── peertube.rst │ │ │ │ ├── piped.rst │ │ │ │ ├── presearch.rst │ │ │ │ ├── pubmed.rst │ │ │ │ ├── qwant.rst │ │ │ │ ├── radio_browser.rst │ │ │ │ ├── recoll.rst │ │ │ │ ├── repology.rst │ │ │ │ ├── reuters.rst │ │ │ │ ├── semantic_scholar.rst │ │ │ │ ├── soundcloud.rst │ │ │ │ ├── sourcehut.rst │ │ │ │ ├── springer.rst │ │ │ │ ├── startpage.rst │ │ │ │ ├── tagesschau.rst │ │ │ │ ├── torznab.rst │ │ │ │ ├── tubearchivist.rst │ │ │ │ ├── void.rst │ │ │ │ ├── wallhaven.rst │ │ │ │ ├── wikipedia.rst │ │ │ │ ├── yacy.rst │ │ │ │ ├── yahoo.rst │ │ │ │ └── zlibrary.rst │ │ │ ├── online_url_search/ │ │ │ │ └── tineye.rst │ │ │ └── xpath.rst │ │ ├── extended_types.rst │ │ ├── hello.dot │ │ ├── index.rst │ │ ├── makefile.rst │ │ ├── plugins/ │ │ │ ├── builtins.rst │ │ │ ├── calculator.rst │ │ │ ├── development.rst │ │ │ ├── hash_plugin.rst │ │ │ ├── hostnames.rst │ │ │ ├── index.rst │ │ │ ├── infinite_scroll.rst │ │ │ ├── self_info.rst │ │ │ ├── time_zone.rst │ │ │ ├── tor_check.rst │ │ │ └── unit_converter.rst │ │ ├── quickstart.rst │ │ ├── reST.rst │ │ ├── result_types/ │ │ │ ├── answer.rst │ │ │ ├── base_result.rst │ │ │ ├── correction.rst │ │ │ ├── index.rst │ │ │ ├── infobox.rst │ │ │ ├── main/ │ │ │ │ ├── code.rst │ │ │ │ ├── file.rst │ │ │ │ ├── keyvalue.rst │ │ │ │ ├── mainresult.rst │ │ │ │ └── paper.rst │ │ │ ├── main_result.rst │ │ │ └── suggestion.rst │ │ ├── search_api.rst │ │ ├── searxng_extra/ │ │ │ ├── index.rst │ │ │ └── update.rst │ │ ├── templates.rst │ │ └── translation.rst │ ├── index.rst │ ├── own-instance.rst │ ├── src/ │ │ ├── index.rst │ │ ├── searx.babel_extract.rst │ │ ├── searx.botdetection.rst │ │ ├── searx.cache.rst │ │ ├── searx.exceptions.rst │ │ ├── searx.favicons.rst │ │ ├── searx.infopage.rst │ │ ├── searx.locales.rst │ │ ├── searx.search.processors.rst │ │ ├── searx.search.rst │ │ ├── searx.settings.rst │ │ ├── searx.sqlitedb.rst │ │ ├── searx.utils.rst │ │ ├── searx.valkeydb.rst │ │ ├── searx.valkeylib.rst │ │ └── searx.weather.rst │ ├── user/ │ │ ├── .gitignore │ │ ├── about.rst │ │ ├── configured_engines.rst │ │ ├── index.rst │ │ └── search-syntax.rst │ └── utils/ │ ├── index.rst │ └── searxng.sh.rst ├── go.mod ├── go.sum ├── manage ├── mise.toml ├── package.json ├── pyrightconfig.json ├── requirements-dev.txt ├── requirements-server.txt ├── requirements.txt ├── searx/ │ ├── __init__.py │ ├── answerers/ │ │ ├── __init__.py │ │ ├── _core.py │ │ ├── random.py │ │ └── statistics.py │ ├── autocomplete.py │ ├── babel_extract.py │ ├── botdetection/ │ │ ├── __init__.py │ │ ├── _helpers.py │ │ ├── config.py │ │ ├── http_accept.py │ │ ├── http_accept_encoding.py │ │ ├── http_accept_language.py │ │ ├── http_connection.py │ │ ├── http_sec_fetch.py │ │ ├── http_user_agent.py │ │ ├── ip_limit.py │ │ ├── ip_lists.py │ │ ├── link_token.py │ │ ├── trusted_proxies.py │ │ └── valkeydb.py │ ├── brand.py │ ├── cache.py │ ├── compat.py │ ├── data/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── ahmia_blacklist.txt │ │ ├── core.py │ │ ├── currencies.json │ │ ├── currencies.py │ │ ├── engine_descriptions.json │ │ ├── engine_traits.json │ │ ├── external_bangs.json │ │ ├── external_urls.json │ │ ├── gsa_useragents.txt │ │ ├── lid.176.ftz │ │ ├── locales.json │ │ ├── osm_keys_tags.json │ │ ├── tracker_patterns.py │ │ ├── useragents.json │ │ └── wikidata_units.json │ ├── enginelib/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ └── traits.py │ ├── engines/ │ │ ├── 1337x.py │ │ ├── 360search.py │ │ ├── 360search_videos.py │ │ ├── 9gag.py │ │ ├── __builtins__.pyi │ │ ├── __init__.py │ │ ├── acfun.py │ │ ├── adobe_stock.py │ │ ├── ahmia.py │ │ ├── alpinelinux.py │ │ ├── annas_archive.py │ │ ├── ansa.py │ │ ├── aol.py │ │ ├── apkmirror.py │ │ ├── apple_app_store.py │ │ ├── apple_maps.py │ │ ├── archlinux.py │ │ ├── artic.py │ │ ├── artstation.py │ │ ├── arxiv.py │ │ ├── astrophysics_data_system.py │ │ ├── azure.py │ │ ├── baidu.py │ │ ├── bandcamp.py │ │ ├── base.py │ │ ├── bilibili.py │ │ ├── bing.py │ │ ├── bing_images.py │ │ ├── bing_news.py │ │ ├── bing_videos.py │ │ ├── bitchute.py │ │ ├── boardreader.py │ │ ├── bpb.py │ │ ├── brave.py │ │ ├── braveapi.py │ │ ├── bt4g.py │ │ ├── btdigg.py │ │ ├── cachy_os.py │ │ ├── cara.py │ │ ├── ccc_media.py │ │ ├── chefkoch.py │ │ ├── chinaso.py │ │ ├── cloudflareai.py │ │ ├── command.py │ │ ├── core.py │ │ ├── crates.py │ │ ├── crossref.py │ │ ├── currency_convert.py │ │ ├── dailymotion.py │ │ ├── deepl.py │ │ ├── deezer.py │ │ ├── demo_offline.py │ │ ├── demo_online.py │ │ ├── destatis.py │ │ ├── deviantart.py │ │ ├── devicons.py │ │ ├── dictzone.py │ │ ├── digbt.py │ │ ├── discourse.py │ │ ├── docker_hub.py │ │ ├── doku.py │ │ ├── duckduckgo.py │ │ ├── duckduckgo_definitions.py │ │ ├── duckduckgo_extra.py │ │ ├── duckduckgo_weather.py │ │ ├── duden.py │ │ ├── dummy-offline.py │ │ ├── dummy.py │ │ ├── ebay.py │ │ ├── elasticsearch.py │ │ ├── emojipedia.py │ │ ├── fdroid.py │ │ ├── findthatmeme.py │ │ ├── flickr.py │ │ ├── flickr_noapi.py │ │ ├── freesound.py │ │ ├── frinkiac.py │ │ ├── fyyd.py │ │ ├── geizhals.py │ │ ├── genius.py │ │ ├── gitea.py │ │ ├── github.py │ │ ├── github_code.py │ │ ├── gitlab.py │ │ ├── gmx.py │ │ ├── goodreads.py │ │ ├── google.py │ │ ├── google_images.py │ │ ├── google_news.py │ │ ├── google_play.py │ │ ├── google_scholar.py │ │ ├── google_videos.py │ │ ├── grokipedia.py │ │ ├── hackernews.py │ │ ├── hex.py │ │ ├── huggingface.py │ │ ├── il_post.py │ │ ├── imdb.py │ │ ├── imgur.py │ │ ├── ina.py │ │ ├── invidious.py │ │ ├── ipernity.py │ │ ├── iqiyi.py │ │ ├── jisho.py │ │ ├── json_engine.py │ │ ├── karmasearch.py │ │ ├── kickass.py │ │ ├── lemmy.py │ │ ├── lib_rs.py │ │ ├── libretranslate.py │ │ ├── lingva.py │ │ ├── loc.py │ │ ├── lucide.py │ │ ├── marginalia.py │ │ ├── mariadb_server.py │ │ ├── mastodon.py │ │ ├── material_icons.py │ │ ├── mediathekviewweb.py │ │ ├── mediawiki.py │ │ ├── meilisearch.py │ │ ├── metacpan.py │ │ ├── microsoft_learn.py │ │ ├── mixcloud.py │ │ ├── mojeek.py │ │ ├── mongodb.py │ │ ├── moviepilot.py │ │ ├── mozhi.py │ │ ├── mrs.py │ │ ├── mwmbl.py │ │ ├── mysql_server.py │ │ ├── naver.py │ │ ├── niconico.py │ │ ├── npm.py │ │ ├── nvd.py │ │ ├── nyaa.py │ │ ├── odysee.py │ │ ├── ollama.py │ │ ├── open_meteo.py │ │ ├── openalex.py │ │ ├── openclipart.py │ │ ├── openlibrary.py │ │ ├── opensemantic.py │ │ ├── openstreetmap.py │ │ ├── openverse.py │ │ ├── pdbe.py │ │ ├── peertube.py │ │ ├── pexels.py │ │ ├── photon.py │ │ ├── pinterest.py │ │ ├── piped.py │ │ ├── piratebay.py │ │ ├── pixabay.py │ │ ├── pixiv.py │ │ ├── pkg_go_dev.py │ │ ├── podcastindex.py │ │ ├── postgresql.py │ │ ├── presearch.py │ │ ├── public_domain_image_archive.py │ │ ├── pubmed.py │ │ ├── pypi.py │ │ ├── quark.py │ │ ├── qwant.py │ │ ├── radio_browser.py │ │ ├── recoll.py │ │ ├── reddit.py │ │ ├── repology.py │ │ ├── reuters.py │ │ ├── rottentomatoes.py │ │ ├── rumble.py │ │ ├── scanr_structures.py │ │ ├── searx_engine.py │ │ ├── selfhst.py │ │ ├── semantic_scholar.py │ │ ├── senscritique.py │ │ ├── sepiasearch.py │ │ ├── seznam.py │ │ ├── sogou.py │ │ ├── sogou_images.py │ │ ├── sogou_videos.py │ │ ├── sogou_wechat.py │ │ ├── solidtorrents.py │ │ ├── solr.py │ │ ├── soundcloud.py │ │ ├── sourcehut.py │ │ ├── spotify.py │ │ ├── springer.py │ │ ├── sqlite.py │ │ ├── stackexchange.py │ │ ├── startpage.py │ │ ├── steam.py │ │ ├── svgrepo.py │ │ ├── tagesschau.py │ │ ├── tineye.py │ │ ├── tokyotoshokan.py │ │ ├── tootfinder.py │ │ ├── torznab.py │ │ ├── translated.py │ │ ├── tubearchivist.py │ │ ├── unsplash.py │ │ ├── uxwing.py │ │ ├── valkey_server.py │ │ ├── vimeo.py │ │ ├── voidlinux.py │ │ ├── wallhaven.py │ │ ├── wikicommons.py │ │ ├── wikidata.py │ │ ├── wikipedia.py │ │ ├── wolframalpha_api.py │ │ ├── wolframalpha_noapi.py │ │ ├── wordnik.py │ │ ├── wttr.py │ │ ├── www1x.py │ │ ├── xpath.py │ │ ├── yacy.py │ │ ├── yahoo.py │ │ ├── yahoo_news.py │ │ ├── yandex.py │ │ ├── yandex_music.py │ │ ├── yep.py │ │ ├── youtube_api.py │ │ ├── youtube_noapi.py │ │ └── zlibrary.py │ ├── exceptions.py │ ├── extended_types.py │ ├── external_bang.py │ ├── external_urls.py │ ├── favicons/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── cache.py │ │ ├── config.py │ │ ├── favicons.toml │ │ ├── proxy.py │ │ └── resolvers.py │ ├── flaskfix.py │ ├── infopage/ │ │ ├── __init__.py │ │ ├── de/ │ │ │ ├── about.md │ │ │ ├── donate.md │ │ │ └── search-syntax.md │ │ ├── en/ │ │ │ ├── about.md │ │ │ ├── donate.md │ │ │ └── search-syntax.md │ │ ├── fa_IR/ │ │ │ ├── about.md │ │ │ └── search-syntax.md │ │ ├── fr/ │ │ │ ├── about.md │ │ │ └── search-syntax.md │ │ ├── id/ │ │ │ ├── about.md │ │ │ └── search-syntax.md │ │ └── it/ │ │ ├── about.md │ │ └── search-syntax.md │ ├── limiter.py │ ├── limiter.toml │ ├── locales.py │ ├── metrics/ │ │ ├── __init__.py │ │ ├── error_recorder.py │ │ └── models.py │ ├── network/ │ │ ├── __init__.py │ │ ├── client.py │ │ ├── network.py │ │ └── raise_for_httperror.py │ ├── openmetrics.py │ ├── plugins/ │ │ ├── __init__.py │ │ ├── _core.py │ │ ├── ahmia_filter.py │ │ ├── calculator.py │ │ ├── hash_plugin.py │ │ ├── hostnames.py │ │ ├── infinite_scroll.py │ │ ├── oa_doi_rewrite.py │ │ ├── self_info.py │ │ ├── time_zone.py │ │ ├── tor_check.py │ │ ├── tracker_url_remover.py │ │ └── unit_converter.py │ ├── preferences.py │ ├── query.py │ ├── result_types/ │ │ ├── __init__.py │ │ ├── _base.py │ │ ├── answer.py │ │ ├── code.py │ │ ├── file.py │ │ ├── keyvalue.py │ │ └── paper.py │ ├── results.py │ ├── search/ │ │ ├── __init__.py │ │ ├── models.py │ │ └── processors/ │ │ ├── __init__.py │ │ ├── abstract.py │ │ ├── offline.py │ │ ├── online.py │ │ ├── online_currency.py │ │ ├── online_dictionary.py │ │ └── online_url_search.py │ ├── searxng.msg │ ├── settings.yml │ ├── settings_defaults.py │ ├── settings_loader.py │ ├── sqlitedb.py │ ├── static/ │ │ └── themes/ │ │ └── simple/ │ │ └── manifest.json │ ├── sxng_locales.py │ ├── templates/ │ │ └── simple/ │ │ ├── 404.html │ │ ├── answer/ │ │ │ ├── legacy.html │ │ │ ├── translations.html │ │ │ └── weather.html │ │ ├── base.html │ │ ├── categories.html │ │ ├── elements/ │ │ │ ├── answers.html │ │ │ ├── apis.html │ │ │ ├── corrections.html │ │ │ ├── engines_msg.html │ │ │ ├── infobox.html │ │ │ ├── search_url.html │ │ │ └── suggestions.html │ │ ├── filters/ │ │ │ ├── languages.html │ │ │ ├── safesearch.html │ │ │ └── time_range.html │ │ ├── icons.html │ │ ├── index.html │ │ ├── info.html │ │ ├── macros.html │ │ ├── manifest.json │ │ ├── messages/ │ │ │ ├── no_cookies.html │ │ │ └── no_results.html │ │ ├── new_issue.html │ │ ├── opensearch.xml │ │ ├── opensearch_response_rss.xml │ │ ├── page_with_header.html │ │ ├── preferences/ │ │ │ ├── answerers.html │ │ │ ├── autocomplete.html │ │ │ ├── center_alignment.html │ │ │ ├── cookies.html │ │ │ ├── doi_resolver.html │ │ │ ├── engines.html │ │ │ ├── favicon.html │ │ │ ├── footer.html │ │ │ ├── hotkeys.html │ │ │ ├── image_proxy.html │ │ │ ├── language.html │ │ │ ├── method.html │ │ │ ├── query_in_title.html │ │ │ ├── results_on_new_tab.html │ │ │ ├── safesearch.html │ │ │ ├── search_on_category_select.html │ │ │ ├── theme.html │ │ │ ├── tokens.html │ │ │ ├── ui_locale.html │ │ │ └── urlformatting.html │ │ ├── preferences.html │ │ ├── result_templates/ │ │ │ ├── code.html │ │ │ ├── default.html │ │ │ ├── file.html │ │ │ ├── images.html │ │ │ ├── keyvalue.html │ │ │ ├── map.html │ │ │ ├── packages.html │ │ │ ├── paper.html │ │ │ ├── products.html │ │ │ ├── torrent.html │ │ │ └── videos.html │ │ ├── results.html │ │ ├── rss.xsl │ │ ├── search.html │ │ ├── simple_search.html │ │ └── stats.html │ ├── translations/ │ │ ├── af/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ar/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── bg/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── bn/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── bo/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ca/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── cs/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── cy/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── da/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── de/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── dv/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── el_GR/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── en/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── eo/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── es/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── et/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── eu/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── fa_IR/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── fi/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── fil/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── fr/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ga/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── gl/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── he/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── hr/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── hu/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ia/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── id/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── it/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ja/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ko/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── lt/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── lv/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── messages.pot │ │ ├── ml/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ms/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── nb_NO/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── nl/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── oc/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── pa/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── pap/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── pl/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── pt/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── pt_BR/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ro/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ru/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── si/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── sk/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── sl/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── sr/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── sv/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── szl/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── ta/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── te/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── th/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── tr/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── tt/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── uk/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── vi/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ ├── zh_Hans_CN/ │ │ │ └── LC_MESSAGES/ │ │ │ ├── messages.mo │ │ │ └── messages.po │ │ └── zh_Hant_TW/ │ │ └── LC_MESSAGES/ │ │ ├── messages.mo │ │ └── messages.po │ ├── utils.py │ ├── valkeydb.py │ ├── valkeylib.py │ ├── version.py │ ├── weather.py │ ├── webadapter.py │ ├── webapp.py │ ├── webutils.py │ └── wikidata_units.py ├── searxng_extra/ │ ├── __init__.py │ ├── docs_prebuild │ └── update/ │ ├── __init__.py │ ├── update_ahmia_blacklist.py │ ├── update_currencies.py │ ├── update_engine_descriptions.py │ ├── update_engine_traits.py │ ├── update_external_bangs.py │ ├── update_firefox_version.py │ ├── update_gsa_useragents.py │ ├── update_locales.py │ ├── update_osm_keys_tags.py │ ├── update_pygments.py │ └── update_wikidata_units.py ├── setup.py ├── tests/ │ ├── __init__.py │ ├── robot/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── settings_robot.yml │ │ └── test_webapp.py │ └── unit/ │ ├── __init__.py │ ├── engines/ │ │ ├── __init__.py │ │ ├── test_command.py │ │ ├── test_json_engine.py │ │ └── test_xpath.py │ ├── network/ │ │ ├── __init__.py │ │ └── test_network.py │ ├── processors/ │ │ ├── __init__.py │ │ └── test_online.py │ ├── settings/ │ │ ├── empty_settings.yml │ │ ├── limiter.toml │ │ ├── syntaxerror_settings.yml │ │ ├── test_github_code.yml │ │ ├── test_result_container.yml │ │ ├── test_settings.yml │ │ ├── test_tineye.yml │ │ ├── user_settings.yml │ │ ├── user_settings_keep_only.yml │ │ ├── user_settings_remove.yml │ │ ├── user_settings_remove2.yml │ │ └── user_settings_simple.yml │ ├── test_answerers.py │ ├── test_engine_github_code.py │ ├── test_engine_tineye.py │ ├── test_engines_init.py │ ├── test_exceptions.py │ ├── test_external_bangs.py │ ├── test_js_variable_to_python.py │ ├── test_locales.py │ ├── test_plugin_hash.py │ ├── test_plugin_self_info.py │ ├── test_plugins.py │ ├── test_preferences.py │ ├── test_query.py │ ├── test_results.py │ ├── test_search.py │ ├── test_settings_loader.py │ ├── test_utils.py │ ├── test_webadapter.py │ ├── test_webapp.py │ └── test_webutils.py └── utils/ ├── brand.sh ├── get_setting.py ├── lib.sh ├── lib_govm.sh ├── lib_nvm.sh ├── lib_redis.sh ├── lib_sxng_container.sh ├── lib_sxng_data.sh ├── lib_sxng_node.sh ├── lib_sxng_static.sh ├── lib_sxng_test.sh ├── lib_sxng_themes.sh ├── lib_sxng_vite.sh ├── lib_sxng_weblate.sh ├── lib_valkey.sh ├── makefile.include ├── searxng.sh ├── searxng_check.py └── templates/ └── etc/ ├── apt/ │ └── sources.list.d/ │ ├── debian-stable-backports.sources │ └── ubuntu-stable-backports.sources ├── httpd/ │ └── sites-available/ │ ├── searxng.conf │ └── searxng.conf:socket ├── nginx/ │ └── default.apps-available/ │ ├── searxng.conf │ └── searxng.conf:socket ├── searxng/ │ └── settings.yml └── uwsgi/ ├── apps-archlinux/ │ ├── searxng.ini │ └── searxng.ini:socket └── apps-available/ ├── searxng.ini └── searxng.ini:socket