gitextract_lq2m_xle/ ├── .codecov.yml ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yml │ │ ├── config.yml │ │ └── feature.yml │ ├── PULL_REQUEST_TEMPLATE │ ├── stale.yml │ └── workflows/ │ ├── build.yml │ ├── lint.yml │ └── potential-duplicates.yml ├── .gitignore ├── .markdownlint.json ├── .twosky.json ├── AGHTechDoc.md ├── CHANGELOG.md ├── CONTRIBUTING.md ├── HACKING.md ├── LICENSE.txt ├── Makefile ├── README.md ├── SECURITY.md ├── bamboo-specs/ │ ├── bamboo.yaml │ ├── release.yaml │ ├── snapcraft.yaml │ └── test.yaml ├── build/ │ └── gitkeep ├── changelog.config.js ├── client/ │ ├── .eslintrc.json │ ├── .gitattributes │ ├── .prettierrc │ ├── .stylelintrc.js │ ├── babel.config.cjs │ ├── constants.js │ ├── dev.eslintrc │ ├── global.d.ts │ ├── package.json │ ├── playwright.config.ts │ ├── prod.eslintrc │ ├── public/ │ │ ├── index.html │ │ ├── install.html │ │ └── login.html │ ├── src/ │ │ ├── __locales/ │ │ │ ├── ar.json │ │ │ ├── be.json │ │ │ ├── bg.json │ │ │ ├── cs.json │ │ │ ├── da.json │ │ │ ├── de.json │ │ │ ├── en.json │ │ │ ├── es.json │ │ │ ├── fa.json │ │ │ ├── fi.json │ │ │ ├── fr.json │ │ │ ├── hr.json │ │ │ ├── hu.json │ │ │ ├── id.json │ │ │ ├── it.json │ │ │ ├── ja.json │ │ │ ├── ko.json │ │ │ ├── nl.json │ │ │ ├── no.json │ │ │ ├── pl.json │ │ │ ├── pt-br.json │ │ │ ├── pt-pt.json │ │ │ ├── ro.json │ │ │ ├── ru.json │ │ │ ├── si-lk.json │ │ │ ├── sk.json │ │ │ ├── sl.json │ │ │ ├── sr-cs.json │ │ │ ├── sv.json │ │ │ ├── th.json │ │ │ ├── tr.json │ │ │ ├── uk.json │ │ │ ├── vi.json │ │ │ ├── zh-cn.json │ │ │ ├── zh-hk.json │ │ │ └── zh-tw.json │ │ ├── __locales-services/ │ │ │ ├── ar.json │ │ │ ├── be.json │ │ │ ├── bg.json │ │ │ ├── cs.json │ │ │ ├── da.json │ │ │ ├── de.json │ │ │ ├── en.json │ │ │ ├── es.json │ │ │ ├── fa.json │ │ │ ├── fi.json │ │ │ ├── fr.json │ │ │ ├── hr.json │ │ │ ├── hu.json │ │ │ ├── id.json │ │ │ ├── it.json │ │ │ ├── ja.json │ │ │ ├── ko.json │ │ │ ├── nl.json │ │ │ ├── no.json │ │ │ ├── pl.json │ │ │ ├── pt-br.json │ │ │ ├── pt-pt.json │ │ │ ├── ro.json │ │ │ ├── ru.json │ │ │ ├── si-lk.json │ │ │ ├── sk.json │ │ │ ├── sl.json │ │ │ ├── sr-cs.json │ │ │ ├── sv.json │ │ │ ├── th.json │ │ │ ├── tr.json │ │ │ ├── uk.json │ │ │ ├── vi.json │ │ │ ├── zh-cn.json │ │ │ ├── zh-hk.json │ │ │ └── zh-tw.json │ │ ├── __tests__/ │ │ │ └── helpers.test.ts │ │ ├── actions/ │ │ │ ├── access.ts │ │ │ ├── clients.ts │ │ │ ├── dnsConfig.ts │ │ │ ├── encryption.ts │ │ │ ├── filtering.ts │ │ │ ├── index.tsx │ │ │ ├── install.ts │ │ │ ├── login.ts │ │ │ ├── queryLogs.ts │ │ │ ├── rewrites.ts │ │ │ ├── services.ts │ │ │ ├── stats.ts │ │ │ └── toasts.ts │ │ ├── api/ │ │ │ └── Api.ts │ │ ├── components/ │ │ │ ├── App/ │ │ │ │ ├── index.css │ │ │ │ └── index.tsx │ │ │ ├── Dashboard/ │ │ │ │ ├── BlockedDomains.tsx │ │ │ │ ├── Clients.tsx │ │ │ │ ├── Counters.tsx │ │ │ │ ├── Dashboard.css │ │ │ │ ├── DomainCell.tsx │ │ │ │ ├── QueriedDomains.tsx │ │ │ │ ├── Statistics.tsx │ │ │ │ ├── StatsCard.tsx │ │ │ │ ├── UpstreamAvgTime.tsx │ │ │ │ ├── UpstreamResponses.tsx │ │ │ │ └── index.tsx │ │ │ ├── Filters/ │ │ │ │ ├── Actions.tsx │ │ │ │ ├── Check/ │ │ │ │ │ ├── Info.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── CustomRules.tsx │ │ │ │ ├── DnsAllowlist.tsx │ │ │ │ ├── DnsBlocklist.tsx │ │ │ │ ├── Examples.tsx │ │ │ │ ├── FiltersList.tsx │ │ │ │ ├── Form.tsx │ │ │ │ ├── Modal.tsx │ │ │ │ ├── Rewrites/ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ ├── Table.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Services/ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ ├── ScheduleForm/ │ │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ │ ├── TimePeriod.tsx │ │ │ │ │ │ ├── TimeSelect.tsx │ │ │ │ │ │ ├── Timezone.tsx │ │ │ │ │ │ ├── helpers.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.css │ │ │ │ │ ├── ServiceField.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── Table.tsx │ │ │ ├── Header/ │ │ │ │ ├── Header.css │ │ │ │ ├── Menu.tsx │ │ │ │ └── index.tsx │ │ │ ├── Logs/ │ │ │ │ ├── AnonymizerNotification.tsx │ │ │ │ ├── Cells/ │ │ │ │ │ ├── ClientCell.tsx │ │ │ │ │ ├── DateCell.tsx │ │ │ │ │ ├── DomainCell.tsx │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── HeaderCell.tsx │ │ │ │ │ ├── IconTooltip.css │ │ │ │ │ ├── IconTooltip.tsx │ │ │ │ │ ├── ResponseCell.tsx │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Disabled.tsx │ │ │ │ ├── Filters/ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ ├── SearchField.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── InfiniteTable.tsx │ │ │ │ ├── Logs.css │ │ │ │ └── index.tsx │ │ │ ├── ProtectionTimer/ │ │ │ │ └── index.ts │ │ │ ├── Settings/ │ │ │ │ ├── Clients/ │ │ │ │ │ ├── AutoClients.tsx │ │ │ │ │ ├── ClientsTable/ │ │ │ │ │ │ ├── ClientsTable.tsx │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── Form/ │ │ │ │ │ │ ├── components/ │ │ │ │ │ │ │ ├── BlockedServices.tsx │ │ │ │ │ │ │ ├── ClientIds.tsx │ │ │ │ │ │ │ ├── MainSettings.tsx │ │ │ │ │ │ │ ├── ScheduleServices.tsx │ │ │ │ │ │ │ ├── UpstreamDns.tsx │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ ├── Service.css │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── whoisCell.tsx │ │ │ │ ├── Dhcp/ │ │ │ │ │ ├── FormDHCPv4.tsx │ │ │ │ │ ├── FormDHCPv6.tsx │ │ │ │ │ ├── Interfaces.tsx │ │ │ │ │ ├── Leases.tsx │ │ │ │ │ ├── StaticLeases/ │ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── Dns/ │ │ │ │ │ ├── Access/ │ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Cache/ │ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Config/ │ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Upstream/ │ │ │ │ │ │ ├── Examples.tsx │ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Encryption/ │ │ │ │ │ ├── CertificateStatus.tsx │ │ │ │ │ ├── Form.tsx │ │ │ │ │ ├── KeyStatus.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── FiltersConfig/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── FormButton.css │ │ │ │ ├── LogsConfig/ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Settings.css │ │ │ │ ├── StatsConfig/ │ │ │ │ │ ├── Form.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ ├── SetupGuide/ │ │ │ │ ├── Guide.css │ │ │ │ └── index.tsx │ │ │ ├── Toasts/ │ │ │ │ ├── Toast.css │ │ │ │ ├── Toast.tsx │ │ │ │ └── index.tsx │ │ │ └── ui/ │ │ │ ├── Card.css │ │ │ ├── Card.tsx │ │ │ ├── Cell.tsx │ │ │ ├── CellWrap.tsx │ │ │ ├── Controls/ │ │ │ │ ├── Checkbox/ │ │ │ │ │ ├── checkbox.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── Input.tsx │ │ │ │ ├── Radio.tsx │ │ │ │ ├── Select.tsx │ │ │ │ └── Textarea.tsx │ │ │ ├── Dropdown.css │ │ │ ├── Dropdown.tsx │ │ │ ├── EncryptionTopline.tsx │ │ │ ├── Footer.css │ │ │ ├── Footer.tsx │ │ │ ├── Guide/ │ │ │ │ ├── Guide.tsx │ │ │ │ ├── MobileConfigForm.tsx │ │ │ │ └── index.ts │ │ │ ├── Icons.css │ │ │ ├── Icons.tsx │ │ │ ├── Line.css │ │ │ ├── Line.tsx │ │ │ ├── Loading.css │ │ │ ├── Loading.tsx │ │ │ ├── LogsSearchLink.tsx │ │ │ ├── Modal.css │ │ │ ├── Overlay.css │ │ │ ├── PageTitle.css │ │ │ ├── PageTitle.tsx │ │ │ ├── ReactTable.css │ │ │ ├── Select.css │ │ │ ├── Status.tsx │ │ │ ├── Tab.tsx │ │ │ ├── Tabler.css │ │ │ ├── Tabs.css │ │ │ ├── Tabs.tsx │ │ │ ├── Tooltip.css │ │ │ ├── Tooltip.tsx │ │ │ ├── Topline.css │ │ │ ├── Topline.tsx │ │ │ ├── UpdateOverlay.tsx │ │ │ ├── UpdateTopline.tsx │ │ │ ├── Version.css │ │ │ ├── Version.tsx │ │ │ ├── svg/ │ │ │ │ └── logo.tsx │ │ │ └── texareaCommentsHighlight.css │ │ ├── configureStore.ts │ │ ├── containers/ │ │ │ ├── Clients.ts │ │ │ ├── CustomRules.ts │ │ │ ├── Dashboard.ts │ │ │ ├── Dhcp.ts │ │ │ ├── Dns.ts │ │ │ ├── DnsAllowlist.ts │ │ │ ├── DnsBlocklist.ts │ │ │ ├── DnsRewrites.ts │ │ │ ├── Encryption.ts │ │ │ ├── Settings.ts │ │ │ └── SetupGuide.ts │ │ ├── helpers/ │ │ │ ├── constants.ts │ │ │ ├── filters/ │ │ │ │ └── filters.ts │ │ │ ├── form.tsx │ │ │ ├── helpers.tsx │ │ │ ├── highlightTextareaComments.tsx │ │ │ ├── localStorageHelper.ts │ │ │ ├── renderFormattedClientCell.tsx │ │ │ ├── trackers/ │ │ │ │ ├── trackers.json │ │ │ │ ├── trackers.ts │ │ │ │ └── whotracksme_web.json │ │ │ ├── twosky.ts │ │ │ ├── useDebounce.ts │ │ │ ├── validators.ts │ │ │ └── version.ts │ │ ├── i18n.ts │ │ ├── index.tsx │ │ ├── initialState.ts │ │ ├── install/ │ │ │ ├── Setup/ │ │ │ │ ├── AddressList.tsx │ │ │ │ ├── Auth.tsx │ │ │ │ ├── Controls.tsx │ │ │ │ ├── Devices.tsx │ │ │ │ ├── Greeting.tsx │ │ │ │ ├── Progress.tsx │ │ │ │ ├── Settings.tsx │ │ │ │ ├── Setup.css │ │ │ │ ├── Submit.tsx │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ ├── login/ │ │ │ ├── Login/ │ │ │ │ ├── Form.tsx │ │ │ │ ├── Login.css │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ ├── reducers/ │ │ │ ├── access.ts │ │ │ ├── clients.ts │ │ │ ├── dashboard.ts │ │ │ ├── dhcp.ts │ │ │ ├── dnsConfig.ts │ │ │ ├── encryption.ts │ │ │ ├── filtering.ts │ │ │ ├── index.ts │ │ │ ├── install.ts │ │ │ ├── login.ts │ │ │ ├── queryLogs.ts │ │ │ ├── rewrites.ts │ │ │ ├── services.ts │ │ │ ├── settings.ts │ │ │ ├── stats.ts │ │ │ └── toasts.ts │ │ └── types.d.ts │ ├── tests/ │ │ ├── constants.ts │ │ ├── e2e/ │ │ │ ├── control-panel.spec.ts │ │ │ ├── dhcp.spec.ts │ │ │ ├── dns-settings.spec.ts │ │ │ ├── filtering.spec.ts │ │ │ ├── general-settings.spec.ts │ │ │ ├── globalSetup.ts │ │ │ ├── globalTeardown.ts │ │ │ ├── login.spec.ts │ │ │ ├── querylog.spec.ts │ │ │ └── rewrites.spec.ts │ │ └── helpers/ │ │ └── network.ts │ ├── tsconfig.json │ ├── vitest.config.ts │ ├── webpack.common.js │ ├── webpack.dev.js │ └── webpack.prod.js ├── docker/ │ ├── build.Dockerfile │ ├── build.Dockerfile.dockerignore │ ├── ci.Dockerfile │ ├── ci.Dockerfile.dockerignore │ ├── frontend.Dockerfile │ ├── frontend.Dockerfile.dockerignore │ ├── snapcraft.Dockerfile │ └── snapcraft.Dockerfile.dockerignore ├── go.mod ├── go.sum ├── internal/ │ ├── agh/ │ │ └── agh.go │ ├── aghalg/ │ │ ├── aghalg.go │ │ ├── nullbool.go │ │ ├── nullbool_test.go │ │ ├── sortedmap.go │ │ └── sortedmap_test.go │ ├── aghhttp/ │ │ ├── aghhttp.go │ │ ├── header.go │ │ ├── json.go │ │ ├── json_test.go │ │ └── registrar.go │ ├── aghnet/ │ │ ├── addr.go │ │ ├── dhcp.go │ │ ├── dhcp_unix.go │ │ ├── dhcp_windows.go │ │ ├── hostgen.go │ │ ├── hostgen_test.go │ │ ├── hostscontainer.go │ │ ├── hostscontainer_internal_test.go │ │ ├── hostscontainer_test.go │ │ ├── ignore.go │ │ ├── ignore_test.go │ │ ├── interfaces.go │ │ ├── interfaces_bsd.go │ │ ├── interfaces_linux.go │ │ ├── interfaces_test.go │ │ ├── ipmut.go │ │ ├── ipmut_test.go │ │ ├── net.go │ │ ├── net_bsd.go │ │ ├── net_darwin.go │ │ ├── net_darwin_internal_test.go │ │ ├── net_freebsd.go │ │ ├── net_freebsd_internal_test.go │ │ ├── net_internal_test.go │ │ ├── net_linux.go │ │ ├── net_linux_internal_test.go │ │ ├── net_openbsd.go │ │ ├── net_openbsd_internal_test.go │ │ ├── net_test.go │ │ ├── net_unix.go │ │ ├── net_windows.go │ │ ├── upstream.go │ │ └── upstream_test.go │ ├── aghos/ │ │ ├── filewalker.go │ │ ├── filewalker_internal_test.go │ │ ├── filewalker_test.go │ │ ├── fswatcher.go │ │ ├── os.go │ │ ├── os_bsd.go │ │ ├── os_freebsd.go │ │ ├── os_internal_test.go │ │ ├── os_linux.go │ │ ├── os_unix.go │ │ ├── os_windows.go │ │ ├── service.go │ │ ├── service_darwin.go │ │ ├── service_others.go │ │ ├── syslog.go │ │ ├── syslog_others.go │ │ ├── syslog_windows.go │ │ ├── user.go │ │ ├── user_unix.go │ │ └── user_windows.go │ ├── aghrenameio/ │ │ ├── renameio.go │ │ ├── renameio_test.go │ │ ├── renameio_unix.go │ │ └── renameio_windows.go │ ├── aghslog/ │ │ └── aghslog.go │ ├── aghtest/ │ │ ├── aghtest.go │ │ ├── interface.go │ │ ├── interface_test.go │ │ └── upstream.go │ ├── aghtls/ │ │ ├── aghtls.go │ │ ├── aghtls_test.go │ │ ├── defaultmanager.go │ │ ├── manager.go │ │ ├── root.go │ │ ├── root_linux.go │ │ └── root_others.go │ ├── aghuser/ │ │ ├── aghuser.go │ │ ├── aghuser_test.go │ │ ├── db.go │ │ ├── db_test.go │ │ ├── session.go │ │ ├── sessionstorage.go │ │ ├── sessionstorage_test.go │ │ └── user.go │ ├── arpdb/ │ │ ├── arpdb.go │ │ ├── arpdb_bsd.go │ │ ├── arpdb_bsd_internal_test.go │ │ ├── arpdb_internal_test.go │ │ ├── arpdb_linux.go │ │ ├── arpdb_linux_internal_test.go │ │ ├── arpdb_openbsd.go │ │ ├── arpdb_openbsd_internal_test.go │ │ ├── arpdb_windows.go │ │ ├── arpdb_windows_internal_test.go │ │ └── testdata/ │ │ └── proc_net_arp │ ├── client/ │ │ ├── addrproc.go │ │ ├── addrproc_test.go │ │ ├── client.go │ │ ├── client_test.go │ │ ├── index.go │ │ ├── index_internal_test.go │ │ ├── persistent.go │ │ ├── persistent_internal_test.go │ │ ├── runtimeindex.go │ │ ├── storage.go │ │ ├── storage_test.go │ │ └── upstreammanager.go │ ├── configmigrate/ │ │ ├── configmigrate.go │ │ ├── configmigrate_internal_test.go │ │ ├── configmigrate_test.go │ │ ├── migrations_internal_test.go │ │ ├── migrator.go │ │ ├── migrator_test.go │ │ ├── testdata/ │ │ │ └── TestMigrateConfig_Migrate/ │ │ │ ├── v1/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v10/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v11/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v12/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v13/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v14/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v15/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v16/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v17/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v18/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v19/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v2/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v20/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v21/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v22/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v23/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v24/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v25/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v26/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v27/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v28/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v29/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v3/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v30/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v31/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v32/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v33/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v4/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v5/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v6/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v7/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ ├── v8/ │ │ │ │ ├── input.yml │ │ │ │ └── output.yml │ │ │ └── v9/ │ │ │ ├── input.yml │ │ │ └── output.yml │ │ ├── v1.go │ │ ├── v10.go │ │ ├── v11.go │ │ ├── v12.go │ │ ├── v13.go │ │ ├── v14.go │ │ ├── v15.go │ │ ├── v16.go │ │ ├── v17.go │ │ ├── v18.go │ │ ├── v19.go │ │ ├── v2.go │ │ ├── v20.go │ │ ├── v21.go │ │ ├── v22.go │ │ ├── v23.go │ │ ├── v24.go │ │ ├── v25.go │ │ ├── v26.go │ │ ├── v27.go │ │ ├── v28.go │ │ ├── v29.go │ │ ├── v3.go │ │ ├── v30.go │ │ ├── v31.go │ │ ├── v32.go │ │ ├── v33.go │ │ ├── v4.go │ │ ├── v5.go │ │ ├── v6.go │ │ ├── v7.go │ │ ├── v8.go │ │ ├── v9.go │ │ └── yaml.go │ ├── dhcpd/ │ │ ├── README.md │ │ ├── bitset.go │ │ ├── bitset_internal_test.go │ │ ├── broadcast_bsd.go │ │ ├── broadcast_bsd_internal_test.go │ │ ├── broadcast_others.go │ │ ├── broadcast_others_internal_test.go │ │ ├── config.go │ │ ├── conn_bsd.go │ │ ├── conn_bsd_internal_test.go │ │ ├── conn_linux.go │ │ ├── conn_linux_internal_test.go │ │ ├── conn_unix.go │ │ ├── db.go │ │ ├── dhcpd.go │ │ ├── dhcpd_internal_test.go │ │ ├── dhcpd_unix_internal_test.go │ │ ├── http_unix.go │ │ ├── http_unix_internal_test.go │ │ ├── http_windows.go │ │ ├── http_windows_internal_test.go │ │ ├── iprange.go │ │ ├── iprange_internal_test.go │ │ ├── migrate.go │ │ ├── migrate_internal_test.go │ │ ├── options_unix.go │ │ ├── options_unix_internal_test.go │ │ ├── routeradv.go │ │ ├── routeradv_internal_test.go │ │ ├── v46_windows.go │ │ ├── v4_unix.go │ │ ├── v4_unix_internal_test.go │ │ ├── v6_unix.go │ │ └── v6_unix_internal_test.go │ ├── dhcpsvc/ │ │ ├── addresschecker.go │ │ ├── bitset.go │ │ ├── bitset_internal_test.go │ │ ├── config.go │ │ ├── config_test.go │ │ ├── db.go │ │ ├── db_internal_test.go │ │ ├── dhcpsvc.go │ │ ├── dhcpsvc_test.go │ │ ├── errors.go │ │ ├── handle.go │ │ ├── handler4.go │ │ ├── handler4_test.go │ │ ├── handler6.go │ │ ├── interface.go │ │ ├── iprange.go │ │ ├── iprange_internal_test.go │ │ ├── lease.go │ │ ├── lease_internal_test.go │ │ ├── leaseindex.go │ │ ├── networkdevice.go │ │ ├── networkdevice_test.go │ │ ├── options4.go │ │ ├── options4_internal_test.go │ │ ├── options4_test.go │ │ ├── server.go │ │ ├── server_test.go │ │ ├── testdata/ │ │ │ ├── TestDHCPServer_RemoveLease/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_Reset/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_ServeEther4_decline/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_ServeEther4_discover/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_ServeEther4_discoverExpired/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_ServeEther4_release/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_ServeEther4_requestInitReboot/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_ServeEther4_requestRenew/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_ServeEther4_requestSelecting/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_UpdateStaticLease/ │ │ │ │ └── leases.json │ │ │ ├── TestDHCPServer_index/ │ │ │ │ └── leases.json │ │ │ └── TestServer_Leases/ │ │ │ └── leases.json │ │ ├── v4.go │ │ └── v6.go │ ├── dnsforward/ │ │ ├── access.go │ │ ├── access_internal_test.go │ │ ├── clientid.go │ │ ├── clientid_internal_test.go │ │ ├── clientscontainer.go │ │ ├── config.go │ │ ├── config_internal_test.go │ │ ├── configvalidator.go │ │ ├── context.go │ │ ├── dialcontext.go │ │ ├── dns64.go │ │ ├── dns64_internal_test.go │ │ ├── dnsforward.go │ │ ├── dnsforward_internal_test.go │ │ ├── dnsrewrite.go │ │ ├── dnsrewrite_internal_test.go │ │ ├── filter.go │ │ ├── filter_internal_test.go │ │ ├── http.go │ │ ├── http_internal_test.go │ │ ├── ipset.go │ │ ├── ipset_internal_test.go │ │ ├── middleware.go │ │ ├── middleware_internal_test.go │ │ ├── msg.go │ │ ├── process.go │ │ ├── process_internal_test.go │ │ ├── requesthandler.go │ │ ├── requesthandler_internal_test.go │ │ ├── stats.go │ │ ├── stats_internal_test.go │ │ ├── svcbmsg.go │ │ ├── svcbmsg_internal_test.go │ │ ├── testdata/ │ │ │ ├── TestDNSForwardHTTP_handleGetConfig.json │ │ │ └── TestDNSForwardHTTP_handleSetConfig.json │ │ ├── upstreams.go │ │ └── upstreams_internal_test.go │ ├── filtering/ │ │ ├── blocked.go │ │ ├── dnsrewrite.go │ │ ├── dnsrewrite_test.go │ │ ├── filter.go │ │ ├── filter_internal_test.go │ │ ├── filtering.go │ │ ├── filtering_internal_test.go │ │ ├── filtering_test.go │ │ ├── hashprefix/ │ │ │ ├── cache.go │ │ │ ├── cache_internal_test.go │ │ │ ├── hashprefix.go │ │ │ └── hashprefix_internal_test.go │ │ ├── hosts.go │ │ ├── hosts_test.go │ │ ├── http.go │ │ ├── http_internal_test.go │ │ ├── idgenerator.go │ │ ├── idgenerator_internal_test.go │ │ ├── path.go │ │ ├── path_unix_internal_test.go │ │ ├── path_windows_internal_test.go │ │ ├── result.go │ │ ├── rewrite/ │ │ │ ├── item.go │ │ │ ├── item_internal_test.go │ │ │ ├── storage.go │ │ │ └── storage_internal_test.go │ │ ├── rewritehttp.go │ │ ├── rewritehttp_test.go │ │ ├── rewrites.go │ │ ├── rewrites_internal_test.go │ │ ├── rulelist/ │ │ │ ├── engine.go │ │ │ ├── engine_test.go │ │ │ ├── error.go │ │ │ ├── filter.go │ │ │ ├── filter_test.go │ │ │ ├── parser.go │ │ │ ├── parser_test.go │ │ │ ├── rulelist.go │ │ │ ├── rulelist_test.go │ │ │ ├── storage.go │ │ │ ├── storage_test.go │ │ │ ├── textengine.go │ │ │ └── textengine_test.go │ │ ├── safesearch/ │ │ │ ├── rules/ │ │ │ │ ├── bing.txt │ │ │ │ ├── duckduckgo.txt │ │ │ │ ├── ecosia.txt │ │ │ │ ├── google.txt │ │ │ │ ├── pixabay.txt │ │ │ │ ├── yandex.txt │ │ │ │ └── youtube.txt │ │ │ ├── rules.go │ │ │ ├── safesearch.go │ │ │ ├── safesearch_internal_test.go │ │ │ └── safesearch_test.go │ │ ├── safesearch.go │ │ ├── safesearchhttp.go │ │ ├── servicelist.go │ │ └── tests/ │ │ └── dns.txt │ ├── home/ │ │ ├── auth.go │ │ ├── auth_internal_test.go │ │ ├── authglinet.go │ │ ├── authglinet_internal_test.go │ │ ├── authhttp.go │ │ ├── authhttp_internal_test.go │ │ ├── authratelimiter.go │ │ ├── authratelimiter_internal_test.go │ │ ├── clients.go │ │ ├── clients_internal_test.go │ │ ├── clientshttp.go │ │ ├── clientshttp_internal_test.go │ │ ├── config.go │ │ ├── config_internal_test.go │ │ ├── context.go │ │ ├── control.go │ │ ├── controlinstall.go │ │ ├── controlupdate.go │ │ ├── dns.go │ │ ├── home.go │ │ ├── home_internal_test.go │ │ ├── httpclient.go │ │ ├── httpclient_internal_test.go │ │ ├── i18n.go │ │ ├── log.go │ │ ├── middlewares.go │ │ ├── middlewares_internal_test.go │ │ ├── mobileconfig.go │ │ ├── mobileconfig_internal_test.go │ │ ├── options.go │ │ ├── options_internal_test.go │ │ ├── profilehttp.go │ │ ├── profilehttp_internal_test.go │ │ ├── service.go │ │ ├── signal.go │ │ ├── tls.go │ │ ├── tls_internal_test.go │ │ └── web.go │ ├── ipset/ │ │ ├── ipset.go │ │ ├── ipset_linux.go │ │ ├── ipset_linux_internal_test.go │ │ └── ipset_others.go │ ├── next/ │ │ ├── AdGuardHome.example.yaml │ │ ├── agh/ │ │ │ └── agh.go │ │ ├── changelog.md │ │ ├── cmd/ │ │ │ ├── cmd.go │ │ │ ├── log.go │ │ │ ├── opt.go │ │ │ └── service.go │ │ ├── configmgr/ │ │ │ ├── config.go │ │ │ └── configmgr.go │ │ ├── dnssvc/ │ │ │ ├── config.go │ │ │ ├── dnssvc.go │ │ │ └── dnssvc_test.go │ │ ├── jsonpatch/ │ │ │ ├── jsonpatch.go │ │ │ └── jsonpatch_test.go │ │ └── websvc/ │ │ ├── config.go │ │ ├── dns.go │ │ ├── dns_test.go │ │ ├── http.go │ │ ├── http_test.go │ │ ├── middleware.go │ │ ├── route.go │ │ ├── server.go │ │ ├── settings.go │ │ ├── settings_test.go │ │ ├── system.go │ │ ├── system_test.go │ │ ├── websvc.go │ │ └── websvc_test.go │ ├── ossvc/ │ │ ├── action.go │ │ ├── config.go │ │ ├── config_darwin.go │ │ ├── config_freebsd.go │ │ ├── config_linux.go │ │ ├── config_openbsd.go │ │ ├── config_windows.go │ │ ├── defaultaction.go │ │ ├── defaultmanager.go │ │ ├── manager.go │ │ ├── manager_unix.go │ │ ├── manager_windows.go │ │ ├── ossvc.go │ │ ├── reloadmanager.go │ │ ├── service_linux.go │ │ ├── service_openbsd.go │ │ └── service_others.go │ ├── permcheck/ │ │ ├── check_unix.go │ │ ├── check_windows.go │ │ ├── migrate_unix.go │ │ ├── migrate_windows.go │ │ ├── permcheck.go │ │ ├── security_unix.go │ │ └── security_windows.go │ ├── querylog/ │ │ ├── client.go │ │ ├── decode.go │ │ ├── decode_internal_test.go │ │ ├── entry.go │ │ ├── http.go │ │ ├── json.go │ │ ├── qlog.go │ │ ├── qlog_internal_test.go │ │ ├── qlogfile.go │ │ ├── qlogfile_internal_test.go │ │ ├── qlogreader.go │ │ ├── qlogreader_internal_test.go │ │ ├── querylog.go │ │ ├── querylogfile.go │ │ ├── search.go │ │ ├── search_internal_test.go │ │ ├── searchcriterion.go │ │ └── searchparams.go │ ├── rdns/ │ │ ├── rdns.go │ │ └── rdns_test.go │ ├── schedule/ │ │ ├── schedule.go │ │ └── schedule_internal_test.go │ ├── stats/ │ │ ├── http.go │ │ ├── http_internal_test.go │ │ ├── stats.go │ │ ├── stats_internal_test.go │ │ ├── stats_test.go │ │ ├── unit.go │ │ └── unit_internal_test.go │ ├── updater/ │ │ ├── check.go │ │ ├── check_test.go │ │ ├── updater.go │ │ ├── updater_internal_test.go │ │ └── updater_test.go │ ├── version/ │ │ ├── norace.go │ │ ├── race.go │ │ └── version.go │ └── whois/ │ ├── whois.go │ └── whois_test.go ├── main.go ├── main_next.go ├── openapi/ │ ├── CHANGELOG.md │ ├── README.md │ ├── index.html │ ├── next.yaml │ └── openapi.yaml ├── scripts/ │ ├── README.md │ ├── blocked-services/ │ │ └── main.go │ ├── companiesdb/ │ │ └── download.sh │ ├── hooks/ │ │ ├── helper.sh │ │ ├── pre-commit │ │ └── pre-merge-commit │ ├── install.sh │ ├── make/ │ │ ├── build-docker.sh │ │ ├── build-release.sh │ │ ├── go-bench.sh │ │ ├── go-build.sh │ │ ├── go-deps.sh │ │ ├── go-fuzz.sh │ │ ├── go-lint.sh │ │ ├── go-test.sh │ │ ├── go-upd-tools.sh │ │ ├── helper.sh │ │ ├── md-lint.sh │ │ ├── sh-lint.sh │ │ ├── txt-lint.sh │ │ └── version.sh │ ├── snap/ │ │ ├── build.sh │ │ ├── download.sh │ │ └── upload.sh │ ├── translations/ │ │ ├── download.go │ │ ├── main.go │ │ ├── twosky.go │ │ └── upload.go │ └── vetted-filters/ │ └── main.go ├── snap/ │ ├── gui/ │ │ └── adguard-home-web.desktop │ ├── local/ │ │ └── adguard-home-web.sh │ └── snap.tmpl.yaml └── staticcheck.conf