From ef73039559b296560780bd2ee7afb77751bb7ba4 Mon Sep 17 00:00:00 2001 From: Juan Fernandez Date: Tue, 7 Jun 2022 21:09:47 -0400 Subject: [PATCH] Improve vulnerability detection for Ubuntu (#6102) Feature: Improve our capability to detect vulnerable software on Ubuntu hosts To improve the capability of detecting vulnerable software on Ubuntu, we are now using OVAL definitions to detect vulnerable software on Ubuntu hosts. If data sync is enabled (disable_data_sync=false) OVAL definitions are automatically kept up to date (they are 'refreshed' once per day) - there's also the option to manually download the OVAL definitions using the 'fleetctl vulnerability-data-stream' command. Downloaded definitions are then parsed into an intermediary format and then used to identify vulnerable software on Ubuntu hosts. Finally, any 'recent' detected vulnerabilities are sent to any third-party integrations. --- .../feature-5307-create-an-oval-file-parser | 2 + .../feature-5648-update-software_cve-shema | 1 + .../feature-5796-oval-third-party-integration | 1 + cmd/fleet/cron.go | 125 +- cmd/fleet/cron_test.go | 66 + cmd/fleetctl/vulnerability_data_stream.go | 13 +- .../vulnerability_data_stream_test.go | 1 + cmd/osquery-perf/agent.go | 81 +- cmd/osquery-perf/ubuntu_16.04.tmpl | 364 + .../ubuntu_1604-vulnerable_software.json | 7126 +++++++++++++++++ cmd/osquery-perf/ubuntu_18.04.tmpl | 364 + .../ubuntu_1804-vulnerable_software.json | 6214 ++++++++++++++ cmd/osquery-perf/ubuntu_20.04.tmpl | 364 + .../ubuntu_2004-vulnerable_software.json | 5974 ++++++++++++++ cmd/osquery-perf/ubuntu_21.04.tmpl | 364 + cmd/osquery-perf/ubuntu_21.10.tmpl | 364 + .../ubuntu_2104-vulnerable_software.json | 6098 ++++++++++++++ .../ubuntu_2110-vulnerable_software.json | 6022 ++++++++++++++ cmd/osquery-perf/ubuntu_22.04.tmpl | 364 + .../ubuntu_2204-vulnerable_software.json | 6762 ++++++++++++++++ go.mod | 2 +- go.sum | 3 + orbit/pkg/execuser/execuser_linux.go | 2 +- server/datastore/mysql/hosts.go | 29 + server/datastore/mysql/hosts_test.go | 48 + .../20220510110838_AddIdxOnHostsPlatform.go | 25 + ...20518124708_AddSourceToSoftwareCveTable.go | 24 + server/datastore/mysql/schema.sql | 6 +- server/datastore/mysql/software.go | 226 +- server/datastore/mysql/software_test.go | 395 +- server/fleet/datastore.go | 38 +- server/fleet/software.go | 48 +- server/mock/datastore_mock.go | 76 +- server/service/integration_core_test.go | 41 +- server/test/comparisons.go | 4 +- server/vulnerabilities/cpe.go | 6 +- server/vulnerabilities/cve.go | 131 +- server/vulnerabilities/cve_test.go | 69 +- server/vulnerabilities/oval/analyzer.go | 244 + server/vulnerabilities/oval/analyzer_test.go | 369 + server/vulnerabilities/oval/downloader.go | 63 + .../vulnerabilities/oval/downloader_test.go | 36 + .../oval/input/constant_variable.go | 8 + .../vulnerabilities/oval/input/definition.go | 27 + .../vulnerabilities/oval/input/dpkg_object.go | 11 + .../vulnerabilities/oval/input/dpkg_state.go | 18 + server/vulnerabilities/oval/input/dpkgtest.go | 19 + .../oval/input/ubuntu_result.go | 10 + server/vulnerabilities/oval/mappers.go | 101 + server/vulnerabilities/oval/oval_platform.go | 79 + .../oval/oval_platform_test.go | 47 + .../vulnerabilities/oval/parsed/data_type.go | 48 + .../oval/parsed/data_type_test.go | 32 + .../vulnerabilities/oval/parsed/definition.go | 63 + .../oval/parsed/definition_test.go | 111 + .../oval/parsed/dpkginfo_state_evr_string.go | 45 + .../parsed/dpkginfo_state_evr_string_test.go | 37 + .../oval/parsed/dpkginfotest.go | 60 + .../oval/parsed/dpkginfotest_test.go | 76 + .../oval/parsed/host_package.go | 7 + .../oval/parsed/object_match_type.go | 49 + .../oval/parsed/object_match_type_test.go | 53 + .../oval/parsed/operation_type.go | 54 + .../oval/parsed/operation_type_test.go | 30 + .../oval/parsed/operator_type.go | 93 + .../oval/parsed/operator_type_test.go | 80 + server/vulnerabilities/oval/parsed/result.go | 9 + .../vulnerabilities/oval/parsed/rpmvercmp.go | 290 + .../oval/parsed/rpmvercmp_test.go | 4565 +++++++++++ .../oval/parsed/state_match_type.go | 44 + .../oval/parsed/state_match_type_test.go | 49 + .../oval/parsed/ubuntu_result.go | 57 + server/vulnerabilities/oval/parser.go | 164 + server/vulnerabilities/oval/sync.go | 146 + server/vulnerabilities/oval/sync_test.go | 100 + .../software/ubuntu_1604-software.json.bz2 | Bin 0 -> 16026 bytes .../ubuntu_1604-software_cves.csv.bz2 | Bin 0 -> 2421 bytes .../software/ubuntu_1804-software.json.bz2 | Bin 0 -> 13762 bytes .../ubuntu_1804-software_cves.csv.bz2 | Bin 0 -> 1024 bytes .../software/ubuntu_2004-software.json.bz2 | Bin 0 -> 13053 bytes .../ubuntu_2004-software_cves.csv.bz2 | Bin 0 -> 549 bytes .../software/ubuntu_2104-software.json.bz2 | Bin 0 -> 12941 bytes .../ubuntu_2104-software_cves.csv.bz2 | Bin 0 -> 1098 bytes .../software/ubuntu_2110-software.json.bz2 | Bin 0 -> 12742 bytes .../ubuntu_2110-software_cves.csv.bz2 | Bin 0 -> 665 bytes .../software/ubuntu_2204-software.json.bz2 | Bin 0 -> 14158 bytes .../ubuntu_2204-software_cves.csv.bz2 | Bin 0 -> 219 bytes .../ubuntu/ubuntu_1604-oval_def.json.bz2 | Bin 0 -> 70764 bytes .../ubuntu/ubuntu_1804-oval_def.json.bz2 | Bin 0 -> 62433 bytes .../ubuntu/ubuntu_2004-oval_def.json.bz2 | Bin 0 -> 32920 bytes .../ubuntu/ubuntu_2104-oval_def.json.bz2 | Bin 0 -> 15265 bytes .../ubuntu/ubuntu_2110-oval_def.json.bz2 | Bin 0 -> 12223 bytes .../ubuntu/ubuntu_2204-oval_def.json.bz2 | Bin 0 -> 3472 bytes server/webhooks/vulnerabilities.go | 15 +- server/webhooks/vulnerabilities_test.go | 23 +- server/worker/jira.go | 10 +- server/worker/jira_test.go | 4 +- server/worker/zendesk.go | 10 +- server/worker/zendesk_test.go | 4 +- 99 files changed, 48879 insertions(+), 324 deletions(-) create mode 100644 changes/feature-5307-create-an-oval-file-parser create mode 100644 changes/feature-5648-update-software_cve-shema create mode 100644 changes/feature-5796-oval-third-party-integration create mode 100644 cmd/fleet/cron_test.go create mode 100644 cmd/osquery-perf/ubuntu_16.04.tmpl create mode 100644 cmd/osquery-perf/ubuntu_1604-vulnerable_software.json create mode 100644 cmd/osquery-perf/ubuntu_18.04.tmpl create mode 100644 cmd/osquery-perf/ubuntu_1804-vulnerable_software.json create mode 100644 cmd/osquery-perf/ubuntu_20.04.tmpl create mode 100644 cmd/osquery-perf/ubuntu_2004-vulnerable_software.json create mode 100644 cmd/osquery-perf/ubuntu_21.04.tmpl create mode 100644 cmd/osquery-perf/ubuntu_21.10.tmpl create mode 100644 cmd/osquery-perf/ubuntu_2104-vulnerable_software.json create mode 100644 cmd/osquery-perf/ubuntu_2110-vulnerable_software.json create mode 100644 cmd/osquery-perf/ubuntu_22.04.tmpl create mode 100644 cmd/osquery-perf/ubuntu_2204-vulnerable_software.json create mode 100644 server/datastore/mysql/migrations/tables/20220510110838_AddIdxOnHostsPlatform.go create mode 100644 server/datastore/mysql/migrations/tables/20220518124708_AddSourceToSoftwareCveTable.go create mode 100644 server/vulnerabilities/oval/analyzer.go create mode 100644 server/vulnerabilities/oval/analyzer_test.go create mode 100644 server/vulnerabilities/oval/downloader.go create mode 100644 server/vulnerabilities/oval/downloader_test.go create mode 100644 server/vulnerabilities/oval/input/constant_variable.go create mode 100644 server/vulnerabilities/oval/input/definition.go create mode 100644 server/vulnerabilities/oval/input/dpkg_object.go create mode 100644 server/vulnerabilities/oval/input/dpkg_state.go create mode 100644 server/vulnerabilities/oval/input/dpkgtest.go create mode 100644 server/vulnerabilities/oval/input/ubuntu_result.go create mode 100644 server/vulnerabilities/oval/mappers.go create mode 100644 server/vulnerabilities/oval/oval_platform.go create mode 100644 server/vulnerabilities/oval/oval_platform_test.go create mode 100644 server/vulnerabilities/oval/parsed/data_type.go create mode 100644 server/vulnerabilities/oval/parsed/data_type_test.go create mode 100644 server/vulnerabilities/oval/parsed/definition.go create mode 100644 server/vulnerabilities/oval/parsed/definition_test.go create mode 100644 server/vulnerabilities/oval/parsed/dpkginfo_state_evr_string.go create mode 100644 server/vulnerabilities/oval/parsed/dpkginfo_state_evr_string_test.go create mode 100644 server/vulnerabilities/oval/parsed/dpkginfotest.go create mode 100644 server/vulnerabilities/oval/parsed/dpkginfotest_test.go create mode 100644 server/vulnerabilities/oval/parsed/host_package.go create mode 100644 server/vulnerabilities/oval/parsed/object_match_type.go create mode 100644 server/vulnerabilities/oval/parsed/object_match_type_test.go create mode 100644 server/vulnerabilities/oval/parsed/operation_type.go create mode 100644 server/vulnerabilities/oval/parsed/operation_type_test.go create mode 100644 server/vulnerabilities/oval/parsed/operator_type.go create mode 100644 server/vulnerabilities/oval/parsed/operator_type_test.go create mode 100644 server/vulnerabilities/oval/parsed/result.go create mode 100644 server/vulnerabilities/oval/parsed/rpmvercmp.go create mode 100644 server/vulnerabilities/oval/parsed/rpmvercmp_test.go create mode 100644 server/vulnerabilities/oval/parsed/state_match_type.go create mode 100644 server/vulnerabilities/oval/parsed/state_match_type_test.go create mode 100644 server/vulnerabilities/oval/parsed/ubuntu_result.go create mode 100644 server/vulnerabilities/oval/parser.go create mode 100644 server/vulnerabilities/oval/sync.go create mode 100644 server/vulnerabilities/oval/sync_test.go create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1604-software.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1604-software_cves.csv.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1804-software.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1804-software_cves.csv.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2004-software.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2004-software_cves.csv.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2104-software.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2104-software_cves.csv.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2110-software.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2110-software_cves.csv.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2204-software.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2204-software_cves.csv.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/ubuntu_1604-oval_def.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/ubuntu_1804-oval_def.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/ubuntu_2004-oval_def.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/ubuntu_2104-oval_def.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/ubuntu_2110-oval_def.json.bz2 create mode 100644 server/vulnerabilities/oval/testdata/ubuntu/ubuntu_2204-oval_def.json.bz2 diff --git a/changes/feature-5307-create-an-oval-file-parser b/changes/feature-5307-create-an-oval-file-parser new file mode 100644 index 0000000000..c51c31e7e0 --- /dev/null +++ b/changes/feature-5307-create-an-oval-file-parser @@ -0,0 +1,2 @@ +- fleetctl vulnerability-data-stream now downloads and parses Ubuntu OVAL definitions. +- cron vulnerabity job now keeps up-to-date local Ubuntu OVAL definitions diff --git a/changes/feature-5648-update-software_cve-shema b/changes/feature-5648-update-software_cve-shema new file mode 100644 index 0000000000..e0450e30af --- /dev/null +++ b/changes/feature-5648-update-software_cve-shema @@ -0,0 +1 @@ +- cron vulnerabity job now scan hosts using OVAL definitions diff --git a/changes/feature-5796-oval-third-party-integration b/changes/feature-5796-oval-third-party-integration new file mode 100644 index 0000000000..915e554f12 --- /dev/null +++ b/changes/feature-5796-oval-third-party-integration @@ -0,0 +1 @@ +Allow OVAL vulnerability results to be sent to third-party integrations. \ No newline at end of file diff --git a/cmd/fleet/cron.go b/cmd/fleet/cron.go index c0b6ebdb2b..1b2e7eabcf 100644 --- a/cmd/fleet/cron.go +++ b/cmd/fleet/cron.go @@ -10,12 +10,14 @@ import ( "strings" "time" + "github.com/fleetdm/fleet/v4/pkg/fleethttp" "github.com/fleetdm/fleet/v4/server/config" "github.com/fleetdm/fleet/v4/server/contexts/ctxerr" "github.com/fleetdm/fleet/v4/server/fleet" "github.com/fleetdm/fleet/v4/server/policies" "github.com/fleetdm/fleet/v4/server/service/externalsvc" "github.com/fleetdm/fleet/v4/server/vulnerabilities" + "github.com/fleetdm/fleet/v4/server/vulnerabilities/oval" "github.com/fleetdm/fleet/v4/server/webhooks" "github.com/fleetdm/fleet/v4/server/worker" "github.com/getsentry/sentry-go" @@ -228,13 +230,22 @@ func cronVulnerabilities( } level.Debug(logger).Log("vulnAutomationEnabled", vulnAutomationEnabled) - recentVulns := checkVulnerabilities(ctx, ds, logger, vulnPath, config, (vulnAutomationEnabled != "")) + collectVulns := vulnAutomationEnabled != "" + nvdVulns := checkNVDVulnerabilities(ctx, ds, logger, vulnPath, config, collectVulns) + ovalVulns := checkOvalVulnerabilities(ctx, ds, logger, vulnPath, config, collectVulns) + recentVulns := filterRecentVulns(ctx, ds, logger, nvdVulns, ovalVulns, config.Vulnerabilities.RecentVulnerabilityMaxAge) + if len(recentVulns) > 0 { switch vulnAutomationEnabled { case "webhook": // send recent vulnerabilities via webhook - if err := webhooks.TriggerVulnerabilitiesWebhook(ctx, ds, kitlog.With(logger, "webhook", "vulnerabilities"), - recentVulns, appConfig, time.Now()); err != nil { + if err := webhooks.TriggerVulnerabilitiesWebhook( + ctx, + ds, + kitlog.With(logger, "webhook", "vulnerabilities"), + recentVulns, + appConfig, + time.Now()); err != nil { level.Error(logger).Log("err", "triggering vulnerabilities webhook", "details", err) sentry.CaptureException(err) @@ -291,14 +302,111 @@ func cronVulnerabilities( } } -func checkVulnerabilities( +func filterRecentVulns( + ctx context.Context, + ds fleet.Datastore, + logger kitlog.Logger, + nvdVulns []fleet.SoftwareVulnerability, + ovalVulns []fleet.SoftwareVulnerability, + maxAge time.Duration, +) []fleet.SoftwareVulnerability { + if len(nvdVulns) == 0 && len(ovalVulns) == 0 { + return nil + } + + recent, err := ds.ListCVEs(ctx, maxAge) + if err != nil { + level.Error(logger).Log("msg", "could not fetch recent CVEs", "err", err) + sentry.CaptureException(err) + return nil + } + + lookup := make(map[string]bool) + for _, r := range recent { + lookup[r.CVE] = true + } + + filtered := make(map[string]fleet.SoftwareVulnerability) + for _, v := range nvdVulns { + if _, ok := lookup[v.CVE]; ok { + filtered[v.Key()] = v + } + } + for _, v := range ovalVulns { + if _, ok := lookup[v.CVE]; ok { + filtered[v.Key()] = v + } + } + + result := make([]fleet.SoftwareVulnerability, 0, len(filtered)) + for _, v := range filtered { + result = append(result, v) + } + + return result +} + +func checkOvalVulnerabilities( ctx context.Context, ds fleet.Datastore, logger kitlog.Logger, vulnPath string, config config.FleetConfig, - collectRecentVulns bool, -) map[string][]string { + collectVulns bool, +) []fleet.SoftwareVulnerability { + if config.Vulnerabilities.DisableDataSync { + return nil + } + + var results []fleet.SoftwareVulnerability + + // Get Platforms + versions, err := ds.OSVersions(ctx, nil, nil) + if err != nil { + level.Error(logger).Log("msg", "updating oval definitions", "err", err) + sentry.CaptureException(err) + return nil + } + + // Sync on disk OVAL definitions with current OS Versions. + client := fleethttp.NewClient() + downloaded, err := oval.Refresh(ctx, client, versions, vulnPath) + if err != nil { + level.Error(logger).Log("msg", "updating oval definitions", "err", err) + sentry.CaptureException(err) + } + for _, d := range downloaded { + level.Debug(logger).Log("oval-sync-downloaded", d) + } + + // Analyze all supported os versions using the synched OVAL definitions. + for _, version := range versions.OSVersions { + start := time.Now() + r, err := oval.Analyze(ctx, ds, version, vulnPath, collectVulns) + elapsed := time.Since(start) + level.Debug(logger).Log( + "msg", "oval-analysis-done", + "platform", version.Name, + "elapsed", elapsed, + "found new", len(r)) + results = append(results, r...) + if err != nil { + level.Error(logger).Log("msg", "analyzing oval definitions", "err", err) + sentry.CaptureException(err) + } + } + + return results +} + +func checkNVDVulnerabilities( + ctx context.Context, + ds fleet.Datastore, + logger kitlog.Logger, + vulnPath string, + config config.FleetConfig, + collectVulns bool, +) []fleet.SoftwareVulnerability { if !config.Vulnerabilities.DisableDataSync { err := vulnerabilities.Sync(vulnPath, config.Vulnerabilities.CPEDatabaseURL) if err != nil { @@ -322,13 +430,14 @@ func checkVulnerabilities( return nil } - recentVulns, err := vulnerabilities.TranslateCPEToCVE(ctx, ds, vulnPath, logger, collectRecentVulns, config.Vulnerabilities.RecentVulnerabilityMaxAge) + vulns, err := vulnerabilities.TranslateCPEToCVE(ctx, ds, vulnPath, logger, collectVulns) if err != nil { level.Error(logger).Log("msg", "analyzing vulnerable software: CPE->CVE", "err", err) sentry.CaptureException(err) return nil } - return recentVulns + + return vulns } func cronWebhooks( diff --git a/cmd/fleet/cron_test.go b/cmd/fleet/cron_test.go new file mode 100644 index 0000000000..b951315c11 --- /dev/null +++ b/cmd/fleet/cron_test.go @@ -0,0 +1,66 @@ +package main + +import ( + "context" + "testing" + "time" + + "github.com/fleetdm/fleet/v4/server/fleet" + "github.com/fleetdm/fleet/v4/server/mock" + kitlog "github.com/go-kit/kit/log" + "github.com/stretchr/testify/require" +) + +func TestFilterRecentVulns(t *testing.T) { + t.Run("no NVD nor OVAL vulns", func(t *testing.T) { + ctx := context.Background() + ds := new(mock.Store) + logger := kitlog.NewNopLogger() + + result := filterRecentVulns(ctx, ds, logger, nil, nil, 2*time.Hour) + require.Empty(t, result) + }) + + t.Run("filters both NVD and OVAL vulns based on max age", func(t *testing.T) { + ctx := context.Background() + ds := new(mock.Store) + logger := kitlog.NewNopLogger() + + ds.ListCVEsFunc = func(ctx context.Context, maxAge time.Duration) ([]fleet.CVEMeta, error) { + return []fleet.CVEMeta{ + {CVE: "cve-recent-1"}, + {CVE: "cve-recent-2"}, + {CVE: "cve-recent-3"}, + }, nil + } + + ovalVulns := []fleet.SoftwareVulnerability{ + {CVE: "cve-recent-1"}, + {CVE: "cve-recent-2"}, + {CVE: "cve-outdated-1"}, + } + + nvdVulns := []fleet.SoftwareVulnerability{ + {CVE: "cve-recent-1"}, + {CVE: "cve-recent-3"}, + {CVE: "cve-outdated-2"}, + {CVE: "cve-outdated-3"}, + } + + maxAge := 30 * 24 * time.Hour + + expected := []string{ + "cve-recent-1", + "cve-recent-2", + "cve-recent-3", + } + + var actual []string + result := filterRecentVulns(ctx, ds, logger, nvdVulns, ovalVulns, maxAge) + for _, r := range result { + actual = append(actual, r.CVE) + } + + require.ElementsMatch(t, expected, actual) + }) +} diff --git a/cmd/fleetctl/vulnerability_data_stream.go b/cmd/fleetctl/vulnerability_data_stream.go index 8e972e576f..9075d7c0fc 100644 --- a/cmd/fleetctl/vulnerability_data_stream.go +++ b/cmd/fleetctl/vulnerability_data_stream.go @@ -6,6 +6,7 @@ import ( "github.com/fleetdm/fleet/v4/pkg/fleethttp" "github.com/fleetdm/fleet/v4/server/vulnerabilities" + "github.com/fleetdm/fleet/v4/server/vulnerabilities/oval" "github.com/urfave/cli/v2" ) @@ -35,24 +36,20 @@ Downloads (if needed) the data streams that can be used by the Fleet server to p if dir == "" { return errors.New("No directory provided") } - err := os.MkdirAll(dir, 0o700) if err != nil { return err } log(c, "[-] Downloading CPE database...") - client := fleethttp.NewClient() err = vulnerabilities.DownloadCPEDatabase(dir, client) if err != nil { return err } - log(c, " Done\n") log(c, "[-] Downloading NVD CVE feed...") - err = vulnerabilities.DownloadNVDCVEFeed(dir, "") if err != nil { return err @@ -75,11 +72,15 @@ Downloads (if needed) the data streams that can be used by the Fleet server to p if err != nil { return err } - + log(c, " Done\n") + log(c, "[-] Downloading Oval definitions...") + err = oval.Sync(client, dir, nil) + if err != nil { + return err + } log(c, " Done\n") log(c, "[+] Data streams successfully downloaded!\n") - return nil }, } diff --git a/cmd/fleetctl/vulnerability_data_stream_test.go b/cmd/fleetctl/vulnerability_data_stream_test.go index e16bfddeb0..8b2111843d 100644 --- a/cmd/fleetctl/vulnerability_data_stream_test.go +++ b/cmd/fleetctl/vulnerability_data_stream_test.go @@ -20,6 +20,7 @@ func TestVulnerabilityDataStream(t *testing.T) { [-] Downloading NVD CVE feed... Done [-] Downloading EPSS feed... Done [-] Downloading CISA known exploits feed... Done +[-] Downloading Oval definitions... Done [+] Data streams successfully downloaded! ` assert.Equal(t, diff --git a/cmd/osquery-perf/agent.go b/cmd/osquery-perf/agent.go index be0e975826..c9ca29732d 100644 --- a/cmd/osquery-perf/agent.go +++ b/cmd/osquery-perf/agent.go @@ -8,6 +8,7 @@ import ( "errors" "flag" "fmt" + "io/ioutil" "log" "math/rand" "net/http" @@ -411,6 +412,61 @@ func (a *agent) HostUsersMacOS() []fleet.HostUser { return users } +func loadUbuntuSoftware(ver string) []fleet.Software { + var r []fleet.Software + + type softwareJSON struct { + Name string `json:"name"` + Version string `json:"version"` + } + + var software []softwareJSON + contents, err := ioutil.ReadFile(fmt.Sprintf("ubuntu_%s-vulnerable_software.json", ver)) + if err != nil { + log.Printf("reading vuln software for ubuntu %s: %s\n", ver, err) + return nil + } + + err = json.Unmarshal(contents, &software) + if err != nil { + log.Printf("unmarshalling vuln software for ubuntu %s:%s", ver, err) + return nil + } + + for _, fi := range software { + r = append(r, fleet.Software{ + Name: fi.Name, + Version: fi.Version, + Source: "osquery-perf", + }) + } + return r +} + +func (a *agent) SoftwareUbuntu1604() []fleet.Software { + return loadUbuntuSoftware("1604") +} + +func (a *agent) SoftwareUbuntu1804() []fleet.Software { + return loadUbuntuSoftware("1804") +} + +func (a *agent) SoftwareUbuntu2004() []fleet.Software { + return loadUbuntuSoftware("2004") +} + +func (a *agent) SoftwareUbuntu2104() []fleet.Software { + return loadUbuntuSoftware("2104") +} + +func (a *agent) SoftwareUbuntu2110() []fleet.Software { + return loadUbuntuSoftware("2110") +} + +func (a *agent) SoftwareUbuntu2204() []fleet.Software { + return loadUbuntuSoftware("2204") +} + func (a *agent) SoftwareMacOS() []fleet.Software { var lastOpenedCount int commonSoftware := make([]fleet.Software, a.softwareCount.common) @@ -682,10 +738,26 @@ func main() { rand.Seed(*randSeed) - // Currently all hosts will be macOS. - tmpl, err := template.ParseFS(templatesFS, "mac10.14.6.tmpl") - if err != nil { - log.Fatal("parse templates: ", err) + templateNames := []string{ + "mac10.14.6.tmpl", + + // Uncomment this to add ubuntu hosts with vulnerable software + // "ubuntu_16.04.tmpl", + // "ubuntu_18.04.tmpl", + // "ubuntu_20.04.tmpl", + // "ubuntu_21.04.tmpl", + // "ubuntu_21.10.tmpl", + // "ubuntu_22.04.tmpl", + } + + var tmpls []*template.Template + for _, t := range templateNames { + tmpl, err := template.ParseFS(templatesFS, t) + if err != nil { + log.Fatal("parse templates: ", err) + continue + } + tmpls = append(tmpls, tmpl) } // Spread starts over the interval to prevent thundering herd @@ -701,6 +773,7 @@ func main() { } for i := 0; i < *hostCount; i++ { + tmpl := tmpls[i%len(tmpls)] a := newAgent(i+1, *serverURL, *enrollSecret, tmpl, *configInterval, *queryInterval, softwareEntityCount{ entityCount: entityCount{ diff --git a/cmd/osquery-perf/ubuntu_16.04.tmpl b/cmd/osquery-perf/ubuntu_16.04.tmpl new file mode 100644 index 0000000000..88a33f6ee0 --- /dev/null +++ b/cmd/osquery-perf/ubuntu_16.04.tmpl @@ -0,0 +1,364 @@ +{{ define "enroll" -}} +{ + "enroll_secret": "{{ .EnrollSecret }}", + "host_details": { + "os_version": { + "build": "", + "major": "", + "minor": "", + "name": "Ubuntu 16.4.0", + "patch": "", + "platform": "ubuntu", + "platform_like": "ubuntu", + "version": "Ubuntu 16.4.0" + }, + "osquery_info": { + "build_distro": "16.04", + "build_platform": "linux", + "config_hash": "", + "config_valid": "0", + "extensions": "inactive", + "instance_id": "{{ .UUID }}", + "pid": "12947", + "platform_mask": "21", + "start_time": "1580931224", + "uuid": "{{ .UUID }}", + "version": "4.6.0", + "watcher": "12946" + }, + "platform_info": { + "address": "0xff990000", + "date": "12/16/2019 ", + "extra": "MBP114; 196.0.0.0.0; root@xapp160; Mon Dec 16 15:55:18 PST 2019; 196 (B&I); F000_B00; Official Build, Release; Apple LLVM version 5.0 (clang-500.0.68) (based on LLVM 3.3svn)", + "revision": "196 (B&I)", + "size": "8388608", + "vendor": "Apple Inc. ", + "version": "196.0.0.0.0 ", + "volume_size": "1507328" + }, + "system_info": { + "computer_name": "{{ .CachedString "hostname" }}", + "cpu_brand": "Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "cpu_logical_cores": "8", + "cpu_physical_cores": "4", + "cpu_subtype": "Intel x86-64h Haswell", + "cpu_type": "x86_64h", + "hardware_model": "MacBookPro11,4", + "hardware_serial": "D02R835DG8WK", + "hardware_vendor": "Apple Inc.", + "hardware_version": "1.0", + "hostname": "{{ .CachedString "hostname" }}", + "local_hostname": "{{ .CachedString "hostname" }}", + "physical_memory": "17179869184", + "uuid": "{{ .UUID }}" + } + }, + "host_identifier": "{{ .CachedString "hostname" }}", + "platform_type": "16" +} +{{- end }} + +{{ define "fleet_detail_query_network_interface" -}} +[ + { + "point_to_point":"", + "address":"fe80::8cb:112d:ff51:1e5d%en0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"en0", + "mac":"f8:2d:88:93:56:5c", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"", + "address":"192.168.1.3", + "mask":"255.255.255.0", + "broadcast":"192.168.1.255", + "interface":"en0", + "mac":"f5:5a:80:92:52:5b", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"127.0.0.1", + "address":"127.0.0.1", + "mask":"255.0.0.0", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"::1", + "address":"::1", + "mask":"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::1%lo0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::3a:84ff:fe6b:bf75%awdl0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"awdl0", + "mac":"03:3b:94:5b:be:75", + "type":"6", + "mtu":"1484", + "metric":"0", + "ipackets":"0", + "opackets":"16", + "ibytes":"0", + "obytes":"3072", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582842892" + }, + { + "point_to_point":"", + "address":"fe80::6eaf:9721:3476:b691%utun0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"utun0", + "mac":"00:00:00:00:00:00", + "type":"1", + "mtu":"2000", + "metric":"0", + "ipackets":"0", + "opackets":"2", + "ibytes":"0", + "obytes":"0", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840897" + } +] +{{- end }} +{{ define "fleet_detail_query_os_version" -}} +[ + { + "name":"Ubuntu", + "version":"Ubuntu 16.4.0", + "major":"16", + "minor":"4", + "patch":"0", + "build":"18G3020", + "platform":"ubuntu", + "platform_like":"ubuntu", + "codename":"" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_flags" -}} +[ + { + "name":"config_refresh", + "value":"{{ printf "%.0f" .ConfigInterval.Seconds }}" + }, + { + "name":"distributed_interval", + "value":"{{ printf "%.0f" .QueryInterval.Seconds }}" + }, + { + "name":"logger_tls_period", + "value":"99999" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_info" -}} +[ + { + "pid":"11287", + "uuid":"{{ .UUID }}", + "instance_id":"{{ .UUID }}", + "version":"4.1.2", + "config_hash":"b01efbf375ac6767f259ae98751154fef727ce35", + "config_valid":"1", + "extensions":"inactive", + "build_platform":"ubuntu", + "build_distro":"16.4.0", + "start_time":"1582857555", + "watcher":"11286", + "platform_mask":"21" + } +] +{{- end }} +{{ define "fleet_detail_query_system_info" -}} +[ + { + "hostname":"{{ .CachedString "hostname" }}", + "uuid":"4740D59F-699E-5B29-960B-979AAF9BBEEB", + "cpu_type":"x86_64h", + "cpu_subtype":"Intel x86-64h Haswell", + "cpu_brand":"Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz", + "cpu_physical_cores":"4", + "cpu_logical_cores":"8", + "cpu_microcode":"", + "physical_memory":"17179869184", + "hardware_vendor":"Apple Inc.", + "hardware_model":"MacBookPro11,4", + "hardware_version":"1.0", + "hardware_serial":"C02R262BM8LN", + "computer_name":"{{ .CachedString "hostname" }}", + "local_hostname":"{{ .CachedString "hostname" }}" + } +] +{{- end }} +{{ define "fleet_detail_query_uptime" -}} +[ + { + "days":"0", + "hours":"4", + "minutes":"38", + "seconds":"11", + "total_seconds":"16691" + } +] +{{- end }} + +{{ define "fleet_detail_query_users" -}} +[ + {{ range $index, $item := .HostUsersMacOS }} + {{if $index}},{{end}} + { + "uid": "{{ .Uid }}", + "username": "{{ .Username }}", + "type": "{{ .Type }}", + "groupname": "{{ .GroupName }}", + "shell": "{{ .Shell }}" + } + {{- end }} +] +{{- end }} + +{{/* all hosts */}} +{{ define "fleet_label_query_6" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All macOS hosts */}} +{{ define "fleet_label_query_7" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All Ubuntu hosts */}} +{{ define "fleet_label_query_8" -}} +[] +{{- end }} + +{{/* All CentOS hosts */}} +{{ define "fleet_label_query_9" -}} +[] +{{- end }} + +{{/* All Windows hosts */}} +{{ define "fleet_label_query_10" -}} +[] +{{- end }} + +{{/* All Red Hat hosts */}} +{{ define "fleet_label_query_11" -}} +[] +{{- end }} + +{{/* All Linux distributions */}} +{{ define "fleet_label_query_12" -}} +[] +{{- end }} + +{{ define "fleet_detail_query_software_linux" -}} +[ + {{ range $index, $item := .SoftwareUbuntu1604 }} + {{if $index}},{{end}} + { + "name": "{{ .Name }}", + "version": "{{ .Version }}", + "type": "Application", + "bundle_identifier": "{{ .BundleIdentifier }}", + "source": "apps", + {{/* Note that in Go < 1.18, `{{ or (and .LastOpendedAt .LastOpenedAt.Unix) "" }}` won't work as expected because "and" and "or" don't short circuit. This was changed in Go 1.18 */}} + {{if .LastOpenedAt}} + "last_opened_at": "{{ .LastOpenedAt.Unix }}" + {{else}} + "last_opened_at": "-1" + {{end}} + } + {{- end }} +] +{{- end }} diff --git a/cmd/osquery-perf/ubuntu_1604-vulnerable_software.json b/cmd/osquery-perf/ubuntu_1604-vulnerable_software.json new file mode 100644 index 0000000000..461286da59 --- /dev/null +++ b/cmd/osquery-perf/ubuntu_1604-vulnerable_software.json @@ -0,0 +1,7126 @@ +[ + { + "name": "defer", + "version": "1.0.6" + }, + { + "name": "grub-gfxpayload-lists", + "version": "0.7" + }, + { + "name": "language-selector", + "version": "0.1" + }, + { + "name": "ubuntu-drivers-common", + "version": "0.0.0" + }, + { + "name": "unattended-upgrades", + "version": "0.1" + }, + { + "name": "osquery", + "version": "5.2.3-1.linux" + }, + { + "name": "libjpeg8", + "version": "8c-2ubuntu8" + }, + { + "name": "Firefox Screenshots", + "version": "39.0.0" + }, + { + "name": "Form Autofill", + "version": "1.0" + }, + { + "name": "libxcb-image0", + "version": "0.4.0-1build1" + }, + { + "name": "alsa-base", + "version": "1.0.25+dfsg-0ubuntu5" + }, + { + "name": "fonts-guru", + "version": "2:1.2" + }, + { + "name": "fonts-khmeros-core", + "version": "5.0-7ubuntu1" + }, + { + "name": "fonts-lklug-sinhala", + "version": "0.6-3" + }, + { + "name": "fonts-tibetan-machine", + "version": "1.901b-5" + }, + { + "name": "libauthen-sasl-perl", + "version": "2.1600-1" + }, + { + "name": "libencode-locale-perl", + "version": "1.05-1" + }, + { + "name": "libfile-desktopentry-perl", + "version": "0.22-1" + }, + { + "name": "libfile-listing-perl", + "version": "6.04-1" + }, + { + "name": "libio-html-perl", + "version": "1.001-1" + }, + { + "name": "libtie-ixhash-perl", + "version": "1.23-2" + }, + { + "name": "libx11-protocol-perl", + "version": "0.56-7" + }, + { + "name": "libxaw7", + "version": "2:1.0.13-1" + }, + { + "name": "libxcb-util1", + "version": "0.4.0-0ubuntu3" + }, + { + "name": "linux-sound-base", + "version": "1.0.25+dfsg-0ubuntu5" + }, + { + "name": "xbitmaps", + "version": "1.1.1-2" + }, + { + "name": "xfonts-scalable", + "version": "1:1.0.3-1.1" + }, + { + "name": "acpi-support", + "version": "0.142" + }, + { + "name": "app-install-data-partner", + "version": "16.04" + }, + { + "name": "apport-symptoms", + "version": "0.20" + }, + { + "name": "emacsen-common", + "version": "2.0.8" + }, + { + "name": "fonts-sil-abyssinica", + "version": "1.500-1" + }, + { + "name": "intltool-debian", + "version": "0.35.0+20060710.4" + }, + { + "name": "libdaemon0", + "version": "0.14-6" + }, + { + "name": "libdigest-hmac-perl", + "version": "1.03+dfsg-1" + }, + { + "name": "libfile-basedir-perl", + "version": "0.07-1" + }, + { + "name": "libfontenc1", + "version": "1:1.1.3-1" + }, + { + "name": "libhtml-form-perl", + "version": "6.03-1" + }, + { + "name": "libhttp-daemon-perl", + "version": "6.01-1" + }, + { + "name": "libhttp-date-perl", + "version": "6.02-1" + }, + { + "name": "libhttp-negotiate-perl", + "version": "6.00-2" + }, + { + "name": "libilmbase12", + "version": "2.2.0-11ubuntu2" + }, + { + "name": "libio-socket-inet6-perl", + "version": "2.72-2" + }, + { + "name": "libio-string-perl", + "version": "1.08-3" + }, + { + "name": "liblwp-mediatypes-perl", + "version": "6.02-1" + }, + { + "name": "liblzo2-2", + "version": "2.08-1.2" + }, + { + "name": "libnet-ip-perl", + "version": "1.26-1" + }, + { + "name": "libnfnetlink0", + "version": "1.0.1-3" + }, + { + "name": "libogg0", + "version": "1.3.2-1" + }, + { + "name": "libopus0", + "version": "1.1.2-1ubuntu1" + }, + { + "name": "libsm6", + "version": "2:1.2.2-1" + }, + { + "name": "libtext-levenshtein-perl", + "version": "0.13-1" + }, + { + "name": "libtext-wrapi18n-perl", + "version": "0.06-7.1" + }, + { + "name": "libtimedate-perl", + "version": "2.3000-2" + }, + { + "name": "libwww-robotrules-perl", + "version": "6.01-1" + }, + { + "name": "libxcb-icccm4", + "version": "0.4.1-1ubuntu1" + }, + { + "name": "libxcb-keysyms1", + "version": "0.4.0-1" + }, + { + "name": "libxcb-render-util0", + "version": "0.3.9-1" + }, + { + "name": "libxext6", + "version": "2:1.3.3-1" + }, + { + "name": "libxft2", + "version": "2.3.2-1" + }, + { + "name": "libxinerama1", + "version": "2:1.1.3-1" + }, + { + "name": "libxmu6", + "version": "2:1.1.2-2" + }, + { + "name": "libxmuu1", + "version": "2:1.1.2-2" + }, + { + "name": "libxss1", + "version": "1:1.2.2-1" + }, + { + "name": "libxxf86dga1", + "version": "2:1.1.4-1" + }, + { + "name": "libxxf86vm1", + "version": "1:1.1.4-1" + }, + { + "name": "lsof", + "version": "4.89+dfsg-0.1" + }, + { + "name": "memtest86+", + "version": "5.01-3ubuntu2" + }, + { + "name": "pppoeconf", + "version": "1.21ubuntu1" + }, + { + "name": "python3-defer", + "version": "1.0.6-2build1" + }, + { + "name": "python3-xkit", + "version": "0.5.0ubuntu2" + }, + { + "name": "ubuntu-sounds", + "version": "0.13" + }, + { + "name": "xcursor-themes", + "version": "1.0.4-1" + }, + { + "name": "xfonts-base", + "version": "1:1.0.4+nmu1" + }, + { + "name": "xfonts-encodings", + "version": "1:1.0.4-2" + }, + { + "name": "Amazon.com", + "version": "1.1" + }, + { + "name": "Bing", + "version": "1.1" + }, + { + "name": "Dark", + "version": "1.0" + }, + { + "name": "Default", + "version": "1.0" + }, + { + "name": "DoH Roll-Out", + "version": "1.3.0" + }, + { + "name": "DuckDuckGo", + "version": "1.0" + }, + { + "name": "English (CA) Language Pack", + "version": "79.0buildid20200720193547" + }, + { + "name": "English (GB) Language Pack", + "version": "79.0buildid20200720193547" + }, + { + "name": "Google", + "version": "1.0" + }, + { + "name": "Jinja2", + "version": "2.8" + }, + { + "name": "Light", + "version": "1.0" + }, + { + "name": "Mako", + "version": "1.0.3" + }, + { + "name": "MarkupSafe", + "version": "0.23" + }, + { + "name": "Pillow", + "version": "3.1.2" + }, + { + "name": "PyJWT", + "version": "1.3.0" + }, + { + "name": "Web Compat", + "version": "12.0.0" + }, + { + "name": "WebCompat Reporter", + "version": "1.3.0" + }, + { + "name": "Wikipedia (en)", + "version": "1.0" + }, + { + "name": "a11y-profile-manager-indicator", + "version": "0.1.10-0ubuntu3" + }, + { + "name": "account-plugin-facebook", + "version": "0.12+16.04.20160126-0ubuntu1" + }, + { + "name": "account-plugin-flickr", + "version": "0.12+16.04.20160126-0ubuntu1" + }, + { + "name": "account-plugin-google", + "version": "0.12+16.04.20160126-0ubuntu1" + }, + { + "name": "accountsservice", + "version": "0.6.40-2ubuntu11.3" + }, + { + "name": "acl", + "version": "2.2.52-3" + }, + { + "name": "acpid", + "version": "1:2.0.26-1ubuntu2" + }, + { + "name": "activity-log-manager", + "version": "0.9.7-0ubuntu23.16.04.1" + }, + { + "name": "adduser", + "version": "3.113+nmu3ubuntu4" + }, + { + "name": "adium-theme-ubuntu", + "version": "0.3.4-0ubuntu1.1" + }, + { + "name": "adwaita-icon-theme", + "version": "3.18.0-2ubuntu3.1" + }, + { + "name": "aisleriot", + "version": "1:3.18.2-1ubuntu1" + }, + { + "name": "alsa-utils", + "version": "1.1.0-0ubuntu5" + }, + { + "name": "amd64-microcode", + "version": "3.20191021.1+really3.20180524.1~ubuntu0.16.04.2" + }, + { + "name": "anacron", + "version": "2.3-23" + }, + { + "name": "apg", + "version": "2.2.3.dfsg.1-2ubuntu1" + }, + { + "name": "app-install-data", + "version": "15.10" + }, + { + "name": "apparmor", + "version": "2.10.95-0ubuntu2.11" + }, + { + "name": "appmenu-qt", + "version": "0.2.7+14.04.20140305-0ubuntu2" + }, + { + "name": "appmenu-qt5", + "version": "0.3.0+16.04.20170216-0ubuntu1" + }, + { + "name": "apport", + "version": "2.20.1-0ubuntu2.24" + }, + { + "name": "apport-gtk", + "version": "2.20.1-0ubuntu2.24" + }, + { + "name": "appstream", + "version": "0.9.4-1ubuntu4" + }, + { + "name": "apt", + "version": "1.2.32ubuntu0.1" + }, + { + "name": "apt-transport-https", + "version": "1.2.32ubuntu0.1" + }, + { + "name": "apt-utils", + "version": "1.2.32ubuntu0.1" + }, + { + "name": "aptdaemon", + "version": "1.1.1+bzr982-0ubuntu14.3" + }, + { + "name": "aptdaemon-data", + "version": "1.1.1+bzr982-0ubuntu14.3" + }, + { + "name": "apturl", + "version": "0.5.2ubuntu11.2" + }, + { + "name": "apturl-common", + "version": "0.5.2ubuntu11.2" + }, + { + "name": "aspell", + "version": "0.60.7~20110707-3ubuntu0.1" + }, + { + "name": "aspell-en", + "version": "7.1-0-1.1" + }, + { + "name": "at-spi2-core", + "version": "2.18.3-4ubuntu1" + }, + { + "name": "avahi-autoipd", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "avahi-daemon", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "avahi-utils", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "bamfdaemon", + "version": "0.5.3~bzr0+16.04.20180209-0ubuntu1" + }, + { + "name": "baobab", + "version": "3.18.1-1ubuntu1" + }, + { + "name": "base-files", + "version": "9.4ubuntu4.12" + }, + { + "name": "base-passwd", + "version": "3.5.39" + }, + { + "name": "bash", + "version": "4.3-14ubuntu1.4" + }, + { + "name": "bash-completion", + "version": "1:2.1-4.2ubuntu1.1" + }, + { + "name": "bc", + "version": "1.06.95-9build1" + }, + { + "name": "beautifulsoup4", + "version": "4.4.1" + }, + { + "name": "bind9-host", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "binutils", + "version": "2.26.1-1ubuntu1~16.04.8" + }, + { + "name": "bluez", + "version": "5.37-0ubuntu5.3" + }, + { + "name": "bluez-cups", + "version": "5.37-0ubuntu5.3" + }, + { + "name": "bluez-obexd", + "version": "5.37-0ubuntu5.3" + }, + { + "name": "branding-ubuntu", + "version": "0.8" + }, + { + "name": "brltty", + "version": "5.3.1-2ubuntu2.1" + }, + { + "name": "bsdmainutils", + "version": "9.0.6ubuntu3" + }, + { + "name": "bsdutils", + "version": "1:2.27.1-6ubuntu3.10" + }, + { + "name": "build-essential", + "version": "12.1ubuntu2" + }, + { + "name": "busybox-initramfs", + "version": "1:1.22.0-15ubuntu1.4" + }, + { + "name": "busybox-static", + "version": "1:1.22.0-15ubuntu1.4" + }, + { + "name": "bzip2", + "version": "1.0.6-8ubuntu0.2" + }, + { + "name": "ca-certificates", + "version": "20190110~16.04.1" + }, + { + "name": "chardet", + "version": "2.3.0" + }, + { + "name": "checkbox-converged", + "version": "1.2.4-0ubuntu1" + }, + { + "name": "checkbox-gui", + "version": "1.2.4-0ubuntu1" + }, + { + "name": "checkbox-support", + "version": "0.22" + }, + { + "name": "cheese", + "version": "3.18.1-2ubuntu3" + }, + { + "name": "cheese-common", + "version": "3.18.1-2ubuntu3" + }, + { + "name": "colord", + "version": "1.2.12-1ubuntu1" + }, + { + "name": "colord-data", + "version": "1.2.12-1ubuntu1" + }, + { + "name": "command-not-found", + "version": "0.3ubuntu16.04.2" + }, + { + "name": "command-not-found-data", + "version": "0.3ubuntu16.04.2" + }, + { + "name": "compiz", + "version": "1:0.9.12.3+16.04.20180221-0ubuntu1" + }, + { + "name": "compiz-core", + "version": "1:0.9.12.3+16.04.20180221-0ubuntu1" + }, + { + "name": "compiz-gnome", + "version": "1:0.9.12.3+16.04.20180221-0ubuntu1" + }, + { + "name": "compiz-plugins-default", + "version": "1:0.9.12.3+16.04.20180221-0ubuntu1" + }, + { + "name": "console-setup", + "version": "1.108ubuntu15.5" + }, + { + "name": "console-setup-linux", + "version": "1.108ubuntu15.5" + }, + { + "name": "coreutils", + "version": "8.25-2ubuntu3~16.04" + }, + { + "name": "cpio", + "version": "2.11+dfsg-5ubuntu1.1" + }, + { + "name": "cpp", + "version": "4:5.3.1-1ubuntu1" + }, + { + "name": "cpp-5", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "cracklib-runtime", + "version": "2.9.2-1ubuntu1" + }, + { + "name": "crda", + "version": "3.13-1" + }, + { + "name": "cron", + "version": "3.0pl1-128ubuntu2" + }, + { + "name": "cryptography", + "version": "1.2.3" + }, + { + "name": "cups", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "cups-browsed", + "version": "1.8.3-2ubuntu3.5" + }, + { + "name": "cups-bsd", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "cups-client", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "cups-common", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "cups-core-drivers", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "cups-daemon", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "cups-filters", + "version": "1.8.3-2ubuntu3.5" + }, + { + "name": "cups-filters-core-drivers", + "version": "1.8.3-2ubuntu3.5" + }, + { + "name": "cups-pk-helper", + "version": "0.2.5-2ubuntu2" + }, + { + "name": "cups-ppdc", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "cups-server-common", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "dash", + "version": "0.5.8-2.1ubuntu2" + }, + { + "name": "dbus", + "version": "1.10.6-1ubuntu3.6" + }, + { + "name": "dbus-x11", + "version": "1.10.6-1ubuntu3.6" + }, + { + "name": "dc", + "version": "1.06.95-9build1" + }, + { + "name": "dconf-cli", + "version": "0.24.0-2" + }, + { + "name": "dconf-gsettings-backend", + "version": "0.24.0-2" + }, + { + "name": "dconf-service", + "version": "0.24.0-2" + }, + { + "name": "debconf", + "version": "1.5.58ubuntu2" + }, + { + "name": "debconf-i18n", + "version": "1.5.58ubuntu2" + }, + { + "name": "debianutils", + "version": "4.7" + }, + { + "name": "deja-dup", + "version": "34.2-0ubuntu1.1" + }, + { + "name": "desktop-file-utils", + "version": "0.22-1ubuntu5.2" + }, + { + "name": "dh-python", + "version": "2.20151103ubuntu1.2" + }, + { + "name": "dictionaries-common", + "version": "1.26.3" + }, + { + "name": "diffstat", + "version": "1.61-1" + }, + { + "name": "diffutils", + "version": "1:3.3-3" + }, + { + "name": "dirmngr", + "version": "2.1.11-6ubuntu2.1" + }, + { + "name": "distro-info-data", + "version": "0.28ubuntu0.14" + }, + { + "name": "dmidecode", + "version": "3.0-2ubuntu0.2" + }, + { + "name": "dmz-cursor-theme", + "version": "0.4.4ubuntu1" + }, + { + "name": "dns-root-data", + "version": "2018013001~16.04.1" + }, + { + "name": "dnsmasq-base", + "version": "2.75-1ubuntu0.16.04.5" + }, + { + "name": "dnsutils", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "doc-base", + "version": "0.10.7" + }, + { + "name": "dosfstools", + "version": "3.0.28-2ubuntu0.1" + }, + { + "name": "dpkg", + "version": "1.18.4ubuntu1.6" + }, + { + "name": "dpkg-dev", + "version": "1.18.4ubuntu1.6" + }, + { + "name": "e2fslibs", + "version": "1.42.13-1ubuntu1.2" + }, + { + "name": "e2fsprogs", + "version": "1.42.13-1ubuntu1.2" + }, + { + "name": "ed", + "version": "1.10-2" + }, + { + "name": "efibootmgr", + "version": "0.12-4" + }, + { + "name": "eject", + "version": "2.1.5+deb1+cvs20081104-13.1ubuntu0.16.04.1" + }, + { + "name": "enchant", + "version": "1.6.0-10.1build2" + }, + { + "name": "eog", + "version": "3.18.2-1ubuntu2.1" + }, + { + "name": "espeak-data", + "version": "1.48.04+dfsg-2" + }, + { + "name": "ethtool", + "version": "1:4.5-1" + }, + { + "name": "evince", + "version": "3.18.2-1ubuntu4.6" + }, + { + "name": "evince-common", + "version": "3.18.2-1ubuntu4.6" + }, + { + "name": "evolution-data-server", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "evolution-data-server-common", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "evolution-data-server-online-accounts", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "example-content", + "version": "49" + }, + { + "name": "fakeroot", + "version": "1.20.2-1ubuntu1" + }, + { + "name": "feedparser", + "version": "5.1.3" + }, + { + "name": "file", + "version": "1:5.25-2ubuntu1.4" + }, + { + "name": "file-roller", + "version": "3.16.5-0ubuntu1.4" + }, + { + "name": "findutils", + "version": "4.6.0+git+20160126-2" + }, + { + "name": "firefox", + "version": "79.0+build1-0ubuntu0.16.04.2" + }, + { + "name": "firefox-locale-en", + "version": "79.0+build1-0ubuntu0.16.04.2" + }, + { + "name": "fontconfig", + "version": "2.11.94-0ubuntu1.1" + }, + { + "name": "fontconfig-config", + "version": "2.11.94-0ubuntu1.1" + }, + { + "name": "fonts-dejavu-core", + "version": "2.35-1" + }, + { + "name": "fonts-freefont-ttf", + "version": "20120503-4" + }, + { + "name": "fonts-guru-extra", + "version": "2.0-3" + }, + { + "name": "fonts-kacst", + "version": "2.01+mry-12" + }, + { + "name": "fonts-kacst-one", + "version": "5.0+svn11846-7" + }, + { + "name": "fonts-lao", + "version": "0.0.20060226-9" + }, + { + "name": "fonts-liberation", + "version": "1.07.4-1" + }, + { + "name": "fonts-lohit-guru", + "version": "2.5.3-2" + }, + { + "name": "fonts-nanum", + "version": "20140930-1" + }, + { + "name": "fonts-noto-cjk", + "version": "1:1.004+repack2-1~ubuntu1" + }, + { + "name": "fonts-opensymbol", + "version": "2:102.7+LibO5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "fonts-sil-padauk", + "version": "2.80-2" + }, + { + "name": "fonts-stix", + "version": "1.1.1-4" + }, + { + "name": "fonts-symbola", + "version": "2.59-1" + }, + { + "name": "fonts-takao-pgothic", + "version": "003.02.01-9ubuntu3" + }, + { + "name": "fonts-thai-tlwg", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-garuda", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-garuda-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-kinnari", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-kinnari-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-laksaman", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-laksaman-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-loma", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-loma-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-mono", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-mono-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-norasi", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-norasi-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-purisa", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-purisa-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-sawasdee", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-sawasdee-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-typewriter", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-typewriter-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-typist", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-typist-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-typo", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-typo-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-umpush", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-umpush-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-waree", + "version": "1:0.6.2-2.1" + }, + { + "name": "fonts-tlwg-waree-ttf", + "version": "1:0.6.2-2.1" + }, + { + "name": "foomatic-db-compressed-ppds", + "version": "20160212-0ubuntu1" + }, + { + "name": "friendly-recovery", + "version": "0.2.31ubuntu2.1" + }, + { + "name": "ftp", + "version": "0.17-33" + }, + { + "name": "fuse", + "version": "2.9.4-1ubuntu3.1" + }, + { + "name": "fwupd", + "version": "0.8.3-0ubuntu5.1" + }, + { + "name": "fwupdate", + "version": "0.5-2ubuntu7" + }, + { + "name": "fwupdate-signed", + "version": "1.11.3+0.5-2ubuntu7" + }, + { + "name": "g++", + "version": "4:5.3.1-1ubuntu1" + }, + { + "name": "g++-5", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "gcc", + "version": "4:5.3.1-1ubuntu1" + }, + { + "name": "gcc-5", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "gcc-5-base", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "gcc-6-base", + "version": "6.0.1-0ubuntu1" + }, + { + "name": "gconf-service", + "version": "3.2.6-3ubuntu6" + }, + { + "name": "gconf-service-backend", + "version": "3.2.6-3ubuntu6" + }, + { + "name": "gconf2", + "version": "3.2.6-3ubuntu6" + }, + { + "name": "gconf2-common", + "version": "3.2.6-3ubuntu6" + }, + { + "name": "gcr", + "version": "3.18.0-1ubuntu1" + }, + { + "name": "gdb", + "version": "7.11.1-0ubuntu1~16.5" + }, + { + "name": "gdbserver", + "version": "7.11.1-0ubuntu1~16.5" + }, + { + "name": "gdisk", + "version": "1.0.1-1build1" + }, + { + "name": "gedit", + "version": "3.18.3-0ubuntu4" + }, + { + "name": "gedit-common", + "version": "3.18.3-0ubuntu4" + }, + { + "name": "genisoimage", + "version": "9:1.1.11-3ubuntu1" + }, + { + "name": "geoclue", + "version": "0.12.99-4ubuntu1" + }, + { + "name": "geoclue-ubuntu-geoip", + "version": "1.0.2+14.04.20131125-0ubuntu2.16.04.1" + }, + { + "name": "geoip-database", + "version": "20160408-1" + }, + { + "name": "gettext", + "version": "0.19.7-2ubuntu3.1" + }, + { + "name": "gettext-base", + "version": "0.19.7-2ubuntu3.1" + }, + { + "name": "ghostscript", + "version": "9.26~dfsg+0-0ubuntu0.16.04.12" + }, + { + "name": "ghostscript-x", + "version": "9.26~dfsg+0-0ubuntu0.16.04.12" + }, + { + "name": "gir1.2-accounts-1.0", + "version": "1.21+16.04.20160222-0ubuntu1" + }, + { + "name": "gir1.2-appindicator3-0.1", + "version": "12.10.1+16.04.20170215-0ubuntu1" + }, + { + "name": "gir1.2-atk-1.0", + "version": "2.18.0-1" + }, + { + "name": "gir1.2-atspi-2.0", + "version": "2.18.3-4ubuntu1" + }, + { + "name": "gir1.2-dbusmenu-glib-0.4", + "version": "16.04.1+16.04.20160927-0ubuntu1" + }, + { + "name": "gir1.2-dee-1.0", + "version": "1.2.7+15.04.20150304-0ubuntu2" + }, + { + "name": "gir1.2-freedesktop", + "version": "1.46.0-3ubuntu1" + }, + { + "name": "gir1.2-gdata-0.0", + "version": "0.17.4-1" + }, + { + "name": "gir1.2-gdkpixbuf-2.0", + "version": "2.32.2-1ubuntu1.6" + }, + { + "name": "gir1.2-glib-2.0", + "version": "1.46.0-3ubuntu1" + }, + { + "name": "gir1.2-gnomekeyring-1.0", + "version": "3.12.0-1build1" + }, + { + "name": "gir1.2-goa-1.0", + "version": "3.18.3-1ubuntu2" + }, + { + "name": "gir1.2-gst-plugins-base-1.0", + "version": "1.8.3-1ubuntu0.3" + }, + { + "name": "gir1.2-gstreamer-1.0", + "version": "1.8.3-1~ubuntu0.1" + }, + { + "name": "gir1.2-gtk-3.0", + "version": "3.18.9-1ubuntu3.3" + }, + { + "name": "gir1.2-gtksource-3.0", + "version": "3.18.2-1" + }, + { + "name": "gir1.2-gudev-1.0", + "version": "1:230-2" + }, + { + "name": "gir1.2-ibus-1.0", + "version": "1.5.11-1ubuntu2.4" + }, + { + "name": "gir1.2-javascriptcoregtk-4.0", + "version": "2.20.5-0ubuntu0.16.04.1" + }, + { + "name": "gir1.2-json-1.0", + "version": "1.1.2-0ubuntu1" + }, + { + "name": "gir1.2-notify-0.7", + "version": "0.7.6-2svn1" + }, + { + "name": "gir1.2-packagekitglib-1.0", + "version": "0.8.17-4ubuntu6~gcc5.4ubuntu1.4" + }, + { + "name": "gir1.2-pango-1.0", + "version": "1.38.1-1" + }, + { + "name": "gir1.2-peas-1.0", + "version": "1.16.0-1ubuntu2" + }, + { + "name": "gir1.2-rb-3.0", + "version": "3.3-1ubuntu7" + }, + { + "name": "gir1.2-secret-1", + "version": "0.18.4-1ubuntu2" + }, + { + "name": "gir1.2-signon-1.0", + "version": "1.13+16.04.20151209.1-0ubuntu1" + }, + { + "name": "gir1.2-soup-2.4", + "version": "2.52.2-1ubuntu0.3" + }, + { + "name": "gir1.2-totem-1.0", + "version": "3.18.1-1ubuntu4" + }, + { + "name": "gir1.2-totem-plparser-1.0", + "version": "3.10.6-1ubuntu1" + }, + { + "name": "gir1.2-udisks-2.0", + "version": "2.1.7-1ubuntu1" + }, + { + "name": "gir1.2-unity-5.0", + "version": "7.1.4+16.04.20180209.1-0ubuntu1" + }, + { + "name": "gir1.2-vte-2.91", + "version": "0.42.5-1ubuntu1" + }, + { + "name": "gir1.2-webkit2-4.0", + "version": "2.20.5-0ubuntu0.16.04.1" + }, + { + "name": "gir1.2-wnck-3.0", + "version": "3.14.1-2" + }, + { + "name": "gkbd-capplet", + "version": "3.6.0-1ubuntu2" + }, + { + "name": "glib-networking", + "version": "2.48.2-1~ubuntu16.04.2" + }, + { + "name": "glib-networking-common", + "version": "2.48.2-1~ubuntu16.04.2" + }, + { + "name": "glib-networking-services", + "version": "2.48.2-1~ubuntu16.04.2" + }, + { + "name": "gnome-accessibility-themes", + "version": "3.18.0-2ubuntu2" + }, + { + "name": "gnome-bluetooth", + "version": "3.18.2-1ubuntu2" + }, + { + "name": "gnome-calculator", + "version": "1:3.18.3-0ubuntu1.16.04.1" + }, + { + "name": "gnome-calendar", + "version": "3.20.4-0ubuntu0.1" + }, + { + "name": "gnome-desktop3-data", + "version": "3.18.2-1ubuntu1" + }, + { + "name": "gnome-disk-utility", + "version": "3.18.3.1-1ubuntu1.1" + }, + { + "name": "gnome-font-viewer", + "version": "3.16.2-1ubuntu1" + }, + { + "name": "gnome-keyring", + "version": "3.18.3-0ubuntu2.1" + }, + { + "name": "gnome-mahjongg", + "version": "1:3.18.0-1" + }, + { + "name": "gnome-menus", + "version": "3.13.3-6ubuntu3.1" + }, + { + "name": "gnome-mines", + "version": "1:3.18.2-2" + }, + { + "name": "gnome-orca", + "version": "3.18.2-1ubuntu3" + }, + { + "name": "gnome-power-manager", + "version": "3.18.0-1ubuntu1" + }, + { + "name": "gnome-screensaver", + "version": "3.6.1-7ubuntu4" + }, + { + "name": "gnome-screenshot", + "version": "3.18.0-1ubuntu2" + }, + { + "name": "gnome-session-bin", + "version": "3.18.1.2-1ubuntu1.16.04.2" + }, + { + "name": "gnome-session-canberra", + "version": "0.30-2.1ubuntu1" + }, + { + "name": "gnome-session-common", + "version": "3.18.1.2-1ubuntu1.16.04.2" + }, + { + "name": "gnome-settings-daemon-schemas", + "version": "3.18.2-0ubuntu3.1" + }, + { + "name": "gnome-software", + "version": "3.20.5-0ubuntu0.16.04.13" + }, + { + "name": "gnome-software-common", + "version": "3.20.5-0ubuntu0.16.04.13" + }, + { + "name": "gnome-sudoku", + "version": "1:3.18.4-0ubuntu2" + }, + { + "name": "gnome-system-log", + "version": "3.9.90-4" + }, + { + "name": "gnome-system-monitor", + "version": "3.18.2-1ubuntu1" + }, + { + "name": "gnome-terminal", + "version": "3.18.3-1ubuntu1" + }, + { + "name": "gnome-terminal-data", + "version": "3.18.3-1ubuntu1" + }, + { + "name": "gnome-user-guide", + "version": "3.18.1-1" + }, + { + "name": "gnome-user-share", + "version": "3.14.2-2ubuntu4" + }, + { + "name": "gnome-video-effects", + "version": "0.4.1-3ubuntu1" + }, + { + "name": "gnupg", + "version": "1.4.20-1ubuntu3.3" + }, + { + "name": "gnupg-agent", + "version": "2.1.11-6ubuntu2.1" + }, + { + "name": "gnupg2", + "version": "2.1.11-6ubuntu2.1" + }, + { + "name": "gpgv", + "version": "1.4.20-1ubuntu3.3" + }, + { + "name": "grep", + "version": "2.25-1~16.04.1" + }, + { + "name": "grilo-plugins-0.2-base", + "version": "0.2.17-0ubuntu2" + }, + { + "name": "groff-base", + "version": "1.22.3-7" + }, + { + "name": "grub-common", + "version": "2.02~beta2-36ubuntu3.27" + }, + { + "name": "grub-pc", + "version": "2.02~beta2-36ubuntu3.27" + }, + { + "name": "grub-pc-bin", + "version": "2.02~beta2-36ubuntu3.27" + }, + { + "name": "grub2-common", + "version": "2.02~beta2-36ubuntu3.27" + }, + { + "name": "gsettings-desktop-schemas", + "version": "3.18.1-1ubuntu1" + }, + { + "name": "gsettings-ubuntu-schemas", + "version": "0.0.5+16.04.20160307-0ubuntu1" + }, + { + "name": "gsfonts", + "version": "1:8.11+urwcyr1.0.7~pre44-4.2ubuntu1" + }, + { + "name": "gstreamer1.0-alsa", + "version": "1.8.3-1ubuntu0.3" + }, + { + "name": "gstreamer1.0-clutter-3.0", + "version": "3.0.18-1" + }, + { + "name": "gstreamer1.0-plugins-base", + "version": "1.8.3-1ubuntu0.3" + }, + { + "name": "gstreamer1.0-plugins-base-apps", + "version": "1.8.3-1ubuntu0.3" + }, + { + "name": "gstreamer1.0-plugins-good", + "version": "1.8.3-1ubuntu0.4" + }, + { + "name": "gstreamer1.0-pulseaudio", + "version": "1.8.3-1ubuntu0.4" + }, + { + "name": "gstreamer1.0-tools", + "version": "1.8.3-1~ubuntu0.1" + }, + { + "name": "gstreamer1.0-x", + "version": "1.8.3-1ubuntu0.3" + }, + { + "name": "gtk2-engines-murrine", + "version": "0.98.2-0ubuntu2.2" + }, + { + "name": "guacamole", + "version": "0.9.2" + }, + { + "name": "gucharmap", + "version": "1:3.18.2-1ubuntu1" + }, + { + "name": "guile-2.0-libs", + "version": "2.0.11+1-10ubuntu0.1" + }, + { + "name": "gvfs", + "version": "1.28.2-1ubuntu1~16.04.3" + }, + { + "name": "gvfs-backends", + "version": "1.28.2-1ubuntu1~16.04.3" + }, + { + "name": "gvfs-bin", + "version": "1.28.2-1ubuntu1~16.04.3" + }, + { + "name": "gvfs-common", + "version": "1.28.2-1ubuntu1~16.04.3" + }, + { + "name": "gvfs-daemons", + "version": "1.28.2-1ubuntu1~16.04.3" + }, + { + "name": "gvfs-fuse", + "version": "1.28.2-1ubuntu1~16.04.3" + }, + { + "name": "gvfs-libs", + "version": "1.28.2-1ubuntu1~16.04.3" + }, + { + "name": "gzip", + "version": "1.6-4ubuntu1" + }, + { + "name": "hardening-includes", + "version": "2.7ubuntu2" + }, + { + "name": "hdparm", + "version": "9.48+ds-1ubuntu0.1" + }, + { + "name": "hicolor-icon-theme", + "version": "0.15-0ubuntu1.1" + }, + { + "name": "hostname", + "version": "3.16ubuntu2" + }, + { + "name": "hplip", + "version": "3.16.3+repack0-1" + }, + { + "name": "hplip-data", + "version": "3.16.3+repack0-1" + }, + { + "name": "html5lib", + "version": "0.999" + }, + { + "name": "hud", + "version": "14.10+16.04.20160415-0ubuntu1" + }, + { + "name": "humanity-icon-theme", + "version": "0.6.10.1" + }, + { + "name": "hunspell-en-us", + "version": "20070829-6ubuntu3" + }, + { + "name": "hwdata", + "version": "0.267-1ubuntu2" + }, + { + "name": "hyphen-en-us", + "version": "2.8.8-2ubuntu1" + }, + { + "name": "ibus", + "version": "1.5.11-1ubuntu2.4" + }, + { + "name": "ibus-gtk", + "version": "1.5.11-1ubuntu2.4" + }, + { + "name": "ibus-gtk3", + "version": "1.5.11-1ubuntu2.4" + }, + { + "name": "ibus-table", + "version": "1.9.1-3ubuntu2" + }, + { + "name": "idna", + "version": "2.0" + }, + { + "name": "ifupdown", + "version": "0.8.10ubuntu1.4" + }, + { + "name": "im-config", + "version": "0.29-1ubuntu12.4" + }, + { + "name": "imagemagick", + "version": "8:6.8.9.9-7ubuntu5.15" + }, + { + "name": "imagemagick-6.q16", + "version": "8:6.8.9.9-7ubuntu5.15" + }, + { + "name": "imagemagick-common", + "version": "8:6.8.9.9-7ubuntu5.15" + }, + { + "name": "indicator-application", + "version": "12.10.1+16.04.20170120-0ubuntu1" + }, + { + "name": "indicator-appmenu", + "version": "15.02.0+16.04.20151104-0ubuntu1" + }, + { + "name": "indicator-bluetooth", + "version": "0.0.6+16.04.20160526-0ubuntu1" + }, + { + "name": "indicator-datetime", + "version": "15.10+16.04.20160406-0ubuntu1" + }, + { + "name": "indicator-keyboard", + "version": "0.0.0+16.04.20151125-0ubuntu1" + }, + { + "name": "indicator-messages", + "version": "13.10.1+15.10.20150505-0ubuntu1" + }, + { + "name": "indicator-power", + "version": "12.10.6+16.04.20160105-0ubuntu1" + }, + { + "name": "indicator-printers", + "version": "0.1.7+15.04.20150220-0ubuntu2" + }, + { + "name": "indicator-session", + "version": "12.10.5+16.04.20160412-0ubuntu1" + }, + { + "name": "indicator-sound", + "version": "12.10.2+16.04.20160406-0ubuntu1" + }, + { + "name": "info", + "version": "6.1.0.dfsg.1-5" + }, + { + "name": "init", + "version": "1.29ubuntu4" + }, + { + "name": "init-system-helpers", + "version": "1.29ubuntu4" + }, + { + "name": "initramfs-tools", + "version": "0.122ubuntu8.16" + }, + { + "name": "initramfs-tools-bin", + "version": "0.122ubuntu8.16" + }, + { + "name": "initramfs-tools-core", + "version": "0.122ubuntu8.16" + }, + { + "name": "initscripts", + "version": "2.88dsf-59.3ubuntu2" + }, + { + "name": "inputattach", + "version": "1:1.4.9-1" + }, + { + "name": "insserv", + "version": "1.14.0-5ubuntu3" + }, + { + "name": "install-info", + "version": "6.1.0.dfsg.1-5" + }, + { + "name": "intel-gpu-tools", + "version": "1.14-1" + }, + { + "name": "intel-microcode", + "version": "3.20200609.0ubuntu0.16.04.1" + }, + { + "name": "ippusbxd", + "version": "1.23-1" + }, + { + "name": "iproute2", + "version": "4.3.0-1ubuntu3.16.04.5" + }, + { + "name": "iptables", + "version": "1.6.0-2ubuntu3" + }, + { + "name": "iputils-arping", + "version": "3:20121221-5ubuntu2" + }, + { + "name": "iputils-ping", + "version": "3:20121221-5ubuntu2" + }, + { + "name": "iputils-tracepath", + "version": "3:20121221-5ubuntu2" + }, + { + "name": "irqbalance", + "version": "1.1.0-2ubuntu1" + }, + { + "name": "isc-dhcp-client", + "version": "4.3.3-5ubuntu12.10" + }, + { + "name": "isc-dhcp-common", + "version": "4.3.3-5ubuntu12.10" + }, + { + "name": "iso-codes", + "version": "3.65-1" + }, + { + "name": "iucode-tool", + "version": "1.5.1-1ubuntu0.1" + }, + { + "name": "iw", + "version": "3.17-1" + }, + { + "name": "jayatana", + "version": "2.7-0ubuntu5" + }, + { + "name": "kbd", + "version": "1.15.5-1ubuntu5" + }, + { + "name": "kerneloops-daemon", + "version": "0.12+git20140509-2ubuntu1" + }, + { + "name": "keyboard-configuration", + "version": "1.108ubuntu15.5" + }, + { + "name": "klibc-utils", + "version": "2.0.4-8ubuntu1.16.04.4" + }, + { + "name": "kmod", + "version": "22-1ubuntu5.2" + }, + { + "name": "krb5-locales", + "version": "1.13.2+dfsg-5ubuntu2.1" + }, + { + "name": "language-pack-en", + "version": "1:16.04+20161009" + }, + { + "name": "language-pack-en-base", + "version": "1:16.04+20160627" + }, + { + "name": "language-pack-gnome-en", + "version": "1:16.04+20161009" + }, + { + "name": "language-pack-gnome-en-base", + "version": "1:16.04+20160627" + }, + { + "name": "language-selector-common", + "version": "0.165.4" + }, + { + "name": "language-selector-gnome", + "version": "0.165.4" + }, + { + "name": "laptop-detect", + "version": "0.13.7ubuntu2" + }, + { + "name": "less", + "version": "481-2.1ubuntu0.2" + }, + { + "name": "liba11y-profile-manager-0.1-0", + "version": "0.1.10-0ubuntu3" + }, + { + "name": "liba11y-profile-manager-data", + "version": "0.1.10-0ubuntu3" + }, + { + "name": "libaa1", + "version": "1.4p5-44build1" + }, + { + "name": "libabw-0.1-1v5", + "version": "0.1.1-2ubuntu2" + }, + { + "name": "libaccount-plugin-1.0-0", + "version": "0.1.8+16.04.20160201-0ubuntu1" + }, + { + "name": "libaccount-plugin-generic-oauth", + "version": "0.12+16.04.20160126-0ubuntu1" + }, + { + "name": "libaccount-plugin-google", + "version": "0.12+16.04.20160126-0ubuntu1" + }, + { + "name": "libaccounts-glib0", + "version": "1.21+16.04.20160222-0ubuntu1" + }, + { + "name": "libaccounts-qt5-1", + "version": "1.14+16.04.20151106.1-0ubuntu1" + }, + { + "name": "libaccountsservice0", + "version": "0.6.40-2ubuntu11.3" + }, + { + "name": "libacl1", + "version": "2.2.52-3" + }, + { + "name": "libalgorithm-diff-perl", + "version": "1.19.03-1" + }, + { + "name": "libalgorithm-diff-xs-perl", + "version": "0.04-4build1" + }, + { + "name": "libalgorithm-merge-perl", + "version": "0.08-3" + }, + { + "name": "libandroid-properties1", + "version": "0.1.0+git20151016+6d424c9-0ubuntu7" + }, + { + "name": "libao-common", + "version": "1.1.0-3ubuntu1" + }, + { + "name": "libao4", + "version": "1.1.0-3ubuntu1" + }, + { + "name": "libapparmor-perl", + "version": "2.10.95-0ubuntu2.11" + }, + { + "name": "libapparmor1", + "version": "2.10.95-0ubuntu2.11" + }, + { + "name": "libappindicator3-1", + "version": "12.10.1+16.04.20170215-0ubuntu1" + }, + { + "name": "libappstream-glib8", + "version": "0.5.13-1ubuntu6" + }, + { + "name": "libappstream3", + "version": "0.9.4-1ubuntu4" + }, + { + "name": "libapt-inst2.0", + "version": "1.2.32ubuntu0.1" + }, + { + "name": "libapt-pkg-perl", + "version": "0.1.29build7" + }, + { + "name": "libapt-pkg5.0", + "version": "1.2.32ubuntu0.1" + }, + { + "name": "libarchive-zip-perl", + "version": "1.56-2ubuntu0.1" + }, + { + "name": "libarchive13", + "version": "3.1.2-11ubuntu0.16.04.8" + }, + { + "name": "libart-2.0-2", + "version": "2.3.21-2" + }, + { + "name": "libasan2", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libasn1-8-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "libasound2", + "version": "1.1.0-0ubuntu1" + }, + { + "name": "libasound2-data", + "version": "1.1.0-0ubuntu1" + }, + { + "name": "libasound2-plugins", + "version": "1.1.0-0ubuntu1" + }, + { + "name": "libaspell15", + "version": "0.60.7~20110707-3ubuntu0.1" + }, + { + "name": "libasprintf-dev", + "version": "0.19.7-2ubuntu3.1" + }, + { + "name": "libasprintf0v5", + "version": "0.19.7-2ubuntu3.1" + }, + { + "name": "libassuan0", + "version": "2.4.2-2" + }, + { + "name": "libasyncns0", + "version": "0.8-5build1" + }, + { + "name": "libatasmart4", + "version": "0.19-3" + }, + { + "name": "libatk-adaptor", + "version": "2.18.1-2ubuntu1" + }, + { + "name": "libatk-bridge2.0-0", + "version": "2.18.1-2ubuntu1" + }, + { + "name": "libatk1.0-0", + "version": "2.18.0-1" + }, + { + "name": "libatk1.0-data", + "version": "2.18.0-1" + }, + { + "name": "libatkmm-1.6-1v5", + "version": "2.24.2-1" + }, + { + "name": "libatm1", + "version": "1:2.5.1-1.5" + }, + { + "name": "libatomic1", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libatspi2.0-0", + "version": "2.18.3-4ubuntu1" + }, + { + "name": "libattr1", + "version": "1:2.4.47-2" + }, + { + "name": "libaudio2", + "version": "1.9.4-4" + }, + { + "name": "libaudit-common", + "version": "1:2.4.5-1ubuntu2.1" + }, + { + "name": "libaudit1", + "version": "1:2.4.5-1ubuntu2.1" + }, + { + "name": "libavahi-client3", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "libavahi-common-data", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "libavahi-common3", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "libavahi-core7", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "libavahi-glib1", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "libavahi-ui-gtk3-0", + "version": "0.6.32~rc+dfsg-1ubuntu2.3" + }, + { + "name": "libavc1394-0", + "version": "0.5.4-4" + }, + { + "name": "libbabeltrace-ctf1", + "version": "1.3.2-1" + }, + { + "name": "libbabeltrace1", + "version": "1.3.2-1" + }, + { + "name": "libbamf3-2", + "version": "0.5.3~bzr0+16.04.20180209-0ubuntu1" + }, + { + "name": "libbind9-140", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "libblkid1", + "version": "2.27.1-6ubuntu3.10" + }, + { + "name": "libbluetooth3", + "version": "5.37-0ubuntu5.3" + }, + { + "name": "libboost-date-time1.58.0", + "version": "1.58.0+dfsg-5ubuntu3.1" + }, + { + "name": "libboost-filesystem1.58.0", + "version": "1.58.0+dfsg-5ubuntu3.1" + }, + { + "name": "libboost-iostreams1.58.0", + "version": "1.58.0+dfsg-5ubuntu3.1" + }, + { + "name": "libboost-system1.58.0", + "version": "1.58.0+dfsg-5ubuntu3.1" + }, + { + "name": "libbrlapi0.6", + "version": "5.3.1-2ubuntu2.1" + }, + { + "name": "libbsd0", + "version": "0.8.2-1ubuntu0.1" + }, + { + "name": "libbz2-1.0", + "version": "1.0.6-8ubuntu0.2" + }, + { + "name": "libc-bin", + "version": "2.23-0ubuntu11.2" + }, + { + "name": "libc-dev-bin", + "version": "2.23-0ubuntu11.2" + }, + { + "name": "libc6", + "version": "2.23-0ubuntu11.2" + }, + { + "name": "libc6-dbg", + "version": "2.23-0ubuntu11.2" + }, + { + "name": "libc6-dev", + "version": "2.23-0ubuntu11.2" + }, + { + "name": "libcaca0", + "version": "0.99.beta19-2ubuntu0.16.04.1" + }, + { + "name": "libcairo-gobject2", + "version": "1.14.6-1" + }, + { + "name": "libcairo-perl", + "version": "1.106-1build1" + }, + { + "name": "libcairo2", + "version": "1.14.6-1" + }, + { + "name": "libcairomm-1.0-1v5", + "version": "1.12.0-1" + }, + { + "name": "libcamel-1.2-54", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libcanberra-gtk-module", + "version": "0.30-2.1ubuntu1" + }, + { + "name": "libcanberra-gtk0", + "version": "0.30-2.1ubuntu1" + }, + { + "name": "libcanberra-gtk3-0", + "version": "0.30-2.1ubuntu1" + }, + { + "name": "libcanberra-gtk3-module", + "version": "0.30-2.1ubuntu1" + }, + { + "name": "libcanberra-pulse", + "version": "0.30-2.1ubuntu1" + }, + { + "name": "libcanberra0", + "version": "0.30-2.1ubuntu1" + }, + { + "name": "libcap-ng0", + "version": "0.7.7-1" + }, + { + "name": "libcap2", + "version": "1:2.24-12" + }, + { + "name": "libcap2-bin", + "version": "1:2.24-12" + }, + { + "name": "libcapnp-0.5.3", + "version": "0.5.3-2ubuntu1.1" + }, + { + "name": "libcc1-0", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libcdio-cdda1", + "version": "0.83-4.2ubuntu1" + }, + { + "name": "libcdio-paranoia1", + "version": "0.83-4.2ubuntu1" + }, + { + "name": "libcdio13", + "version": "0.83-4.2ubuntu1" + }, + { + "name": "libcdparanoia0", + "version": "3.10.2+debian-11" + }, + { + "name": "libcdr-0.1-1", + "version": "0.1.2-2ubuntu2" + }, + { + "name": "libcgi-fast-perl", + "version": "1:2.10-1" + }, + { + "name": "libcgi-pm-perl", + "version": "4.26-1" + }, + { + "name": "libcgmanager0", + "version": "0.39-2ubuntu5" + }, + { + "name": "libcheese-gtk25", + "version": "3.18.1-2ubuntu3" + }, + { + "name": "libcheese8", + "version": "3.18.1-2ubuntu3" + }, + { + "name": "libcilkrts5", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libclass-accessor-perl", + "version": "0.34-1" + }, + { + "name": "libclone-perl", + "version": "0.38-1build1" + }, + { + "name": "libclucene-contribs1v5", + "version": "2.3.3.4-4.1" + }, + { + "name": "libclucene-core1v5", + "version": "2.3.3.4-4.1" + }, + { + "name": "libclutter-1.0-0", + "version": "1.24.2-1" + }, + { + "name": "libclutter-1.0-common", + "version": "1.24.2-1" + }, + { + "name": "libclutter-gst-3.0-0", + "version": "3.0.18-1" + }, + { + "name": "libclutter-gtk-1.0-0", + "version": "1.6.6-1" + }, + { + "name": "libcmis-0.5-5v5", + "version": "0.5.1-2ubuntu2" + }, + { + "name": "libcogl-common", + "version": "1.22.0-2" + }, + { + "name": "libcogl-pango20", + "version": "1.22.0-2" + }, + { + "name": "libcogl-path20", + "version": "1.22.0-2" + }, + { + "name": "libcogl20", + "version": "1.22.0-2" + }, + { + "name": "libcolamd2.9.1", + "version": "1:4.4.6-1" + }, + { + "name": "libcolord2", + "version": "1.2.12-1ubuntu1" + }, + { + "name": "libcolorhug2", + "version": "1.2.12-1ubuntu1" + }, + { + "name": "libcolumbus1-common", + "version": "1.1.0+15.10.20150806-0ubuntu4" + }, + { + "name": "libcolumbus1v5", + "version": "1.1.0+15.10.20150806-0ubuntu4" + }, + { + "name": "libcomerr2", + "version": "1.42.13-1ubuntu1.2" + }, + { + "name": "libcompizconfig0", + "version": "1:0.9.12.3+16.04.20180221-0ubuntu1" + }, + { + "name": "libcrack2", + "version": "2.9.2-1ubuntu1" + }, + { + "name": "libcroco3", + "version": "0.6.11-1" + }, + { + "name": "libcryptsetup4", + "version": "2:1.6.6-5ubuntu2.1" + }, + { + "name": "libcups2", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "libcupscgi1", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "libcupsfilters1", + "version": "1.8.3-2ubuntu3.5" + }, + { + "name": "libcupsimage2", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "libcupsmime1", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "libcupsppdc1", + "version": "2.1.3-4ubuntu0.11" + }, + { + "name": "libcurl3", + "version": "7.47.0-1ubuntu2.15" + }, + { + "name": "libcurl3-gnutls", + "version": "7.47.0-1ubuntu2.15" + }, + { + "name": "libdata-alias-perl", + "version": "1.20-1build1" + }, + { + "name": "libdatrie1", + "version": "0.2.10-2" + }, + { + "name": "libdb5.3", + "version": "5.3.28-11ubuntu0.2" + }, + { + "name": "libdbus-1-3", + "version": "1.10.6-1ubuntu3.6" + }, + { + "name": "libdbus-glib-1-2", + "version": "0.106-1" + }, + { + "name": "libdbusmenu-glib4", + "version": "16.04.1+16.04.20160927-0ubuntu1" + }, + { + "name": "libdbusmenu-gtk3-4", + "version": "16.04.1+16.04.20160927-0ubuntu1" + }, + { + "name": "libdbusmenu-gtk4", + "version": "16.04.1+16.04.20160927-0ubuntu1" + }, + { + "name": "libdbusmenu-qt2", + "version": "0.9.3+16.04.20160218-0ubuntu1" + }, + { + "name": "libdbusmenu-qt5", + "version": "0.9.3+16.04.20160218-0ubuntu1" + }, + { + "name": "libdconf1", + "version": "0.24.0-2" + }, + { + "name": "libdebconfclient0", + "version": "0.198ubuntu1" + }, + { + "name": "libdecoration0", + "version": "1:0.9.12.3+16.04.20180221-0ubuntu1" + }, + { + "name": "libdee-1.0-4", + "version": "1.2.7+15.04.20150304-0ubuntu2" + }, + { + "name": "libdevmapper1.02.1", + "version": "2:1.02.110-1ubuntu10" + }, + { + "name": "libdfu1", + "version": "0.8.3-0ubuntu5.1" + }, + { + "name": "libdjvulibre-text", + "version": "3.5.27.1-5ubuntu0.1" + }, + { + "name": "libdjvulibre21", + "version": "3.5.27.1-5ubuntu0.1" + }, + { + "name": "libdmapsharing-3.0-2", + "version": "2.9.34-1" + }, + { + "name": "libdns-export162", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "libdns162", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "libdotconf0", + "version": "1.3-0.2" + }, + { + "name": "libdouble-conversion1v5", + "version": "2.0.1-3ubuntu2" + }, + { + "name": "libdpkg-perl", + "version": "1.18.4ubuntu1.6" + }, + { + "name": "libdrm-amdgpu1", + "version": "2.4.91-2~16.04.1" + }, + { + "name": "libdrm-common", + "version": "2.4.91-2~16.04.1" + }, + { + "name": "libdrm-intel1", + "version": "2.4.91-2~16.04.1" + }, + { + "name": "libdrm-nouveau2", + "version": "2.4.91-2~16.04.1" + }, + { + "name": "libdrm-radeon1", + "version": "2.4.91-2~16.04.1" + }, + { + "name": "libdrm2", + "version": "2.4.91-2~16.04.1" + }, + { + "name": "libdv4", + "version": "1.0.0-7" + }, + { + "name": "libe-book-0.1-1", + "version": "0.1.2-2ubuntu1" + }, + { + "name": "libebackend-1.2-10", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libebook-1.2-16", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libebook-contacts-1.2-2", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libecal-1.2-19", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libedata-book-1.2-25", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libedata-cal-1.2-28", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libedataserver-1.2-21", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libedataserverui-1.2-1", + "version": "3.18.5-1ubuntu1.3" + }, + { + "name": "libedit2", + "version": "3.1-20150325-1ubuntu2" + }, + { + "name": "libefivar0", + "version": "0.23-2" + }, + { + "name": "libegl1-mesa", + "version": "18.0.5-0ubuntu0~16.04.1" + }, + { + "name": "libelf1", + "version": "0.165-3ubuntu1.2" + }, + { + "name": "libemail-valid-perl", + "version": "1.198-1" + }, + { + "name": "libenchant1c2a", + "version": "1.6.0-10.1build2" + }, + { + "name": "libeot0", + "version": "0.01-3ubuntu1" + }, + { + "name": "libepoxy0", + "version": "1.3.1-1ubuntu0.16.04.2" + }, + { + "name": "libespeak1", + "version": "1.48.04+dfsg-2" + }, + { + "name": "libestr0", + "version": "0.1.10-1" + }, + { + "name": "libetonyek-0.1-1", + "version": "0.1.6-1ubuntu1" + }, + { + "name": "libevdev2", + "version": "1.4.6+dfsg-1" + }, + { + "name": "libevdocument3-4", + "version": "3.18.2-1ubuntu4.6" + }, + { + "name": "libevent-2.0-5", + "version": "2.0.21-stable-2ubuntu0.16.04.1" + }, + { + "name": "libevview3-3", + "version": "3.18.2-1ubuntu4.6" + }, + { + "name": "libexempi3", + "version": "2.2.2-2ubuntu0.1" + }, + { + "name": "libexif12", + "version": "0.6.21-2ubuntu0.5" + }, + { + "name": "libexiv2-14", + "version": "0.25-2.1ubuntu16.04.6" + }, + { + "name": "libexpat1", + "version": "2.1.0-7ubuntu0.16.04.5" + }, + { + "name": "libexporter-tiny-perl", + "version": "0.042-1" + }, + { + "name": "libexttextcat-2.0-0", + "version": "3.4.4-1ubuntu3" + }, + { + "name": "libexttextcat-data", + "version": "3.4.4-1ubuntu3" + }, + { + "name": "libfakeroot", + "version": "1.20.2-1ubuntu1" + }, + { + "name": "libfcgi-perl", + "version": "0.77-1build1" + }, + { + "name": "libfcitx-config4", + "version": "1:4.2.9.1-1ubuntu1.16.04.2" + }, + { + "name": "libfcitx-gclient0", + "version": "1:4.2.9.1-1ubuntu1.16.04.2" + }, + { + "name": "libfcitx-utils0", + "version": "1:4.2.9.1-1ubuntu1.16.04.2" + }, + { + "name": "libfdisk1", + "version": "2.27.1-6ubuntu3.10" + }, + { + "name": "libffi6", + "version": "3.2.1-4" + }, + { + "name": "libfftw3-double3", + "version": "3.3.4-2ubuntu1" + }, + { + "name": "libfftw3-single3", + "version": "3.3.4-2ubuntu1" + }, + { + "name": "libfile-copy-recursive-perl", + "version": "0.38-1" + }, + { + "name": "libfile-fcntllock-perl", + "version": "0.22-3" + }, + { + "name": "libfile-mimeinfo-perl", + "version": "0.27-1" + }, + { + "name": "libflac8", + "version": "1.3.1-4" + }, + { + "name": "libfont-afm-perl", + "version": "1.20-1" + }, + { + "name": "libfontconfig1", + "version": "2.11.94-0ubuntu1.1" + }, + { + "name": "libfontembed1", + "version": "1.8.3-2ubuntu3.5" + }, + { + "name": "libframe6", + "version": "2.5.0daily13.06.05+16.04.20160809-0ubuntu1" + }, + { + "name": "libfreehand-0.1-1", + "version": "0.1.1-1ubuntu1" + }, + { + "name": "libfreerdp-cache1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-client1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-codec1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-common1.1.0", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-core1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-crypto1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-gdi1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-locale1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-plugins-standard", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-primitives1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreerdp-utils1.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libfreetype6", + "version": "2.6.1-0.1ubuntu2.4" + }, + { + "name": "libfribidi0", + "version": "0.19.7-1" + }, + { + "name": "libfuse2", + "version": "2.9.4-1ubuntu3.1" + }, + { + "name": "libfwup0", + "version": "0.5-2ubuntu7" + }, + { + "name": "libfwupd1", + "version": "0.8.3-0ubuntu5.1" + }, + { + "name": "libgail-3-0", + "version": "3.18.9-1ubuntu3.3" + }, + { + "name": "libgail-common", + "version": "2.24.30-1ubuntu1.16.04.2" + }, + { + "name": "libgail18", + "version": "2.24.30-1ubuntu1.16.04.2" + }, + { + "name": "libgbm1", + "version": "18.0.5-0ubuntu0~16.04.1" + }, + { + "name": "libgc1c2", + "version": "1:7.4.2-7.3ubuntu0.1" + }, + { + "name": "libgcab-1.0-0", + "version": "0.7-1ubuntu0.1" + }, + { + "name": "libgcc-5-dev", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libgcc1", + "version": "1:6.0.1-0ubuntu1" + }, + { + "name": "libgck-1-0", + "version": "3.18.0-1ubuntu1" + }, + { + "name": "libgconf-2-4", + "version": "3.2.6-3ubuntu6" + }, + { + "name": "libgcr-3-common", + "version": "3.18.0-1ubuntu1" + }, + { + "name": "libgcr-base-3-1", + "version": "3.18.0-1ubuntu1" + }, + { + "name": "libgcr-ui-3-1", + "version": "3.18.0-1ubuntu1" + }, + { + "name": "libgcrypt20", + "version": "1.6.5-2ubuntu0.6" + }, + { + "name": "libgd3", + "version": "2.1.1-4ubuntu0.16.04.12" + }, + { + "name": "libgdata-common", + "version": "0.17.4-1" + }, + { + "name": "libgdata22", + "version": "0.17.4-1" + }, + { + "name": "libgdbm3", + "version": "1.8.3-13.1" + }, + { + "name": "libgdk-pixbuf2.0-0", + "version": "2.32.2-1ubuntu1.6" + }, + { + "name": "libgdk-pixbuf2.0-common", + "version": "2.32.2-1ubuntu1.6" + }, + { + "name": "libgee-0.8-2", + "version": "0.18.0-1" + }, + { + "name": "libgeis1", + "version": "2.2.17+16.04.20160126-0ubuntu1" + }, + { + "name": "libgeoclue0", + "version": "0.12.99-4ubuntu1" + }, + { + "name": "libgeocode-glib0", + "version": "3.18.2-1" + }, + { + "name": "libgeoip1", + "version": "1.6.9-1" + }, + { + "name": "libgeonames0", + "version": "0.2+16.04.20160321-0ubuntu1" + }, + { + "name": "libgettextpo-dev", + "version": "0.19.7-2ubuntu3.1" + }, + { + "name": "libgettextpo0", + "version": "0.19.7-2ubuntu3.1" + }, + { + "name": "libgexiv2-2", + "version": "0.10.3-2" + }, + { + "name": "libgirepository-1.0-1", + "version": "1.46.0-3ubuntu1" + }, + { + "name": "libgl1-mesa-dri", + "version": "18.0.5-0ubuntu0~16.04.1" + }, + { + "name": "libgl1-mesa-glx", + "version": "18.0.5-0ubuntu0~16.04.1" + }, + { + "name": "libglapi-mesa", + "version": "18.0.5-0ubuntu0~16.04.1" + }, + { + "name": "libglew1.13", + "version": "1.13.0-2" + }, + { + "name": "libglewmx1.13", + "version": "1.13.0-2" + }, + { + "name": "libglib-perl", + "version": "3:1.320-2" + }, + { + "name": "libglib2.0-0", + "version": "2.48.2-0ubuntu4.6" + }, + { + "name": "libglib2.0-bin", + "version": "2.48.2-0ubuntu4.6" + }, + { + "name": "libglib2.0-data", + "version": "2.48.2-0ubuntu4.6" + }, + { + "name": "libglibmm-2.4-1v5", + "version": "2.46.3-1" + }, + { + "name": "libglu1-mesa", + "version": "9.0.0-2.1" + }, + { + "name": "libgmime-2.6-0", + "version": "2.6.20-1" + }, + { + "name": "libgmp10", + "version": "2:6.1.0+dfsg-2" + }, + { + "name": "libgnome-bluetooth13", + "version": "3.18.2-1ubuntu2" + }, + { + "name": "libgnome-desktop-3-12", + "version": "3.18.2-1ubuntu1" + }, + { + "name": "libgnome-keyring-common", + "version": "3.12.0-1build1" + }, + { + "name": "libgnome-keyring0", + "version": "3.12.0-1build1" + }, + { + "name": "libgnome-menu-3-0", + "version": "3.13.3-6ubuntu3.1" + }, + { + "name": "libgnomekbd-common", + "version": "3.6.0-1ubuntu2" + }, + { + "name": "libgnomekbd8", + "version": "3.6.0-1ubuntu2" + }, + { + "name": "libgnutls-openssl27", + "version": "3.4.10-4ubuntu1.8" + }, + { + "name": "libgnutls30", + "version": "3.4.10-4ubuntu1.8" + }, + { + "name": "libgoa-1.0-0b", + "version": "3.18.3-1ubuntu2" + }, + { + "name": "libgoa-1.0-common", + "version": "3.18.3-1ubuntu2" + }, + { + "name": "libgom-1.0-0", + "version": "0.3.1-1" + }, + { + "name": "libgom-1.0-common", + "version": "0.3.1-1" + }, + { + "name": "libgomp1", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libgpg-error0", + "version": "1.21-2ubuntu1" + }, + { + "name": "libgpgme11", + "version": "1.6.0-1" + }, + { + "name": "libgphoto2-6", + "version": "2.5.9-3" + }, + { + "name": "libgphoto2-l10n", + "version": "2.5.9-3" + }, + { + "name": "libgphoto2-port12", + "version": "2.5.9-3" + }, + { + "name": "libgpm2", + "version": "1.20.4-6.1" + }, + { + "name": "libgpod-common", + "version": "0.8.3-6ubuntu2" + }, + { + "name": "libgpod4", + "version": "0.8.3-6ubuntu2" + }, + { + "name": "libgrail6", + "version": "3.1.0+16.04.20160125-0ubuntu1" + }, + { + "name": "libgraphite2-3", + "version": "1.3.10-0ubuntu0.16.04.1" + }, + { + "name": "libgrilo-0.2-1", + "version": "0.2.15-1" + }, + { + "name": "libgs9", + "version": "9.26~dfsg+0-0ubuntu0.16.04.12" + }, + { + "name": "libgs9-common", + "version": "9.26~dfsg+0-0ubuntu0.16.04.12" + }, + { + "name": "libgsettings-qt1", + "version": "0.1+16.04.20160329-0ubuntu1" + }, + { + "name": "libgssapi-krb5-2", + "version": "1.13.2+dfsg-5ubuntu2.1" + }, + { + "name": "libgssapi3-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "libgstreamer-plugins-base1.0-0", + "version": "1.8.3-1ubuntu0.3" + }, + { + "name": "libgstreamer-plugins-good1.0-0", + "version": "1.8.3-1ubuntu0.4" + }, + { + "name": "libgstreamer1.0-0", + "version": "1.8.3-1~ubuntu0.1" + }, + { + "name": "libgtk-3-0", + "version": "3.18.9-1ubuntu3.3" + }, + { + "name": "libgtk-3-bin", + "version": "3.18.9-1ubuntu3.3" + }, + { + "name": "libgtk-3-common", + "version": "3.18.9-1ubuntu3.3" + }, + { + "name": "libgtk2-perl", + "version": "2:1.2498-1" + }, + { + "name": "libgtk2.0-0", + "version": "2.24.30-1ubuntu1.16.04.2" + }, + { + "name": "libgtk2.0-bin", + "version": "2.24.30-1ubuntu1.16.04.2" + }, + { + "name": "libgtk2.0-common", + "version": "2.24.30-1ubuntu1.16.04.2" + }, + { + "name": "libgtkmm-3.0-1v5", + "version": "3.18.0-1" + }, + { + "name": "libgtksourceview-3.0-1", + "version": "3.18.2-1" + }, + { + "name": "libgtksourceview-3.0-common", + "version": "3.18.2-1" + }, + { + "name": "libgtkspell3-3-0", + "version": "3.0.7-2" + }, + { + "name": "libgtop-2.0-10", + "version": "2.32.0-1" + }, + { + "name": "libgtop2-common", + "version": "2.32.0-1" + }, + { + "name": "libgucharmap-2-90-7", + "version": "1:3.18.2-1ubuntu1" + }, + { + "name": "libgudev-1.0-0", + "version": "1:230-2" + }, + { + "name": "libgusb2", + "version": "0.2.9-0ubuntu1" + }, + { + "name": "libgutenprint2", + "version": "5.2.11-1" + }, + { + "name": "libgweather-3-6", + "version": "3.18.2-0ubuntu0.2" + }, + { + "name": "libgweather-common", + "version": "3.18.2-0ubuntu0.2" + }, + { + "name": "libgxps2", + "version": "0.2.3.2-1" + }, + { + "name": "libhardware2", + "version": "0.1.0+git20151016+6d424c9-0ubuntu7" + }, + { + "name": "libharfbuzz-icu0", + "version": "1.0.1-1ubuntu0.1" + }, + { + "name": "libharfbuzz0b", + "version": "1.0.1-1ubuntu0.1" + }, + { + "name": "libhcrypto4-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "libheimbase1-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "libheimntlm0-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "libhogweed4", + "version": "3.2-1ubuntu0.16.04.1" + }, + { + "name": "libhpmud0", + "version": "3.16.3+repack0-1" + }, + { + "name": "libhtml-format-perl", + "version": "2.11-2" + }, + { + "name": "libhtml-parser-perl", + "version": "3.72-1" + }, + { + "name": "libhtml-tagset-perl", + "version": "3.20-2" + }, + { + "name": "libhtml-tree-perl", + "version": "5.03-2" + }, + { + "name": "libhttp-cookies-perl", + "version": "6.01-1" + }, + { + "name": "libhttp-message-perl", + "version": "6.11-1" + }, + { + "name": "libhud2", + "version": "14.10+16.04.20160415-0ubuntu1" + }, + { + "name": "libhunspell-1.3-0", + "version": "1.3.3-4ubuntu1" + }, + { + "name": "libhx509-5-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "libhybris", + "version": "0.1.0+git20151016+6d424c9-0ubuntu7" + }, + { + "name": "libhybris-common1", + "version": "0.1.0+git20151016+6d424c9-0ubuntu7" + }, + { + "name": "libhyphen0", + "version": "2.8.8-2ubuntu1" + }, + { + "name": "libibus-1.0-5", + "version": "1.5.11-1ubuntu2.4" + }, + { + "name": "libical1a", + "version": "1.0.1-0ubuntu2" + }, + { + "name": "libice6", + "version": "2:1.0.9-1" + }, + { + "name": "libicu55", + "version": "55.1-7ubuntu0.5" + }, + { + "name": "libidn11", + "version": "1.32-3ubuntu1.2" + }, + { + "name": "libido3-0.1-0", + "version": "13.10.0+16.04.20161028-0ubuntu1" + }, + { + "name": "libiec61883-0", + "version": "1.2.0-0.2" + }, + { + "name": "libieee1284-3", + "version": "0.2.11-12" + }, + { + "name": "libijs-0.35", + "version": "0.35-12" + }, + { + "name": "libimobiledevice6", + "version": "1.2.0+dfsg-3~ubuntu0.2" + }, + { + "name": "libindicator3-7", + "version": "12.10.2+16.04.20151208-0ubuntu1" + }, + { + "name": "libinput-bin", + "version": "1.6.3-1ubuntu1~16.04.1" + }, + { + "name": "libinput10", + "version": "1.6.3-1ubuntu1~16.04.1" + }, + { + "name": "libio-pty-perl", + "version": "1:1.08-1.1build1" + }, + { + "name": "libio-socket-ssl-perl", + "version": "2.024-1" + }, + { + "name": "libipc-run-perl", + "version": "0.94-1" + }, + { + "name": "libipc-system-simple-perl", + "version": "1.25-3" + }, + { + "name": "libisc-export160", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "libisc160", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "libisccc140", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "libisccfg140", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "libisl15", + "version": "0.16.1-1" + }, + { + "name": "libitm1", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libiw30", + "version": "30~pre9-8ubuntu1" + }, + { + "name": "libjack-jackd2-0", + "version": "1.9.10+20150825git1ed50c92~dfsg-1ubuntu1" + }, + { + "name": "libjasper1", + "version": "1.900.1-debian1-2.4ubuntu1.2" + }, + { + "name": "libjavascriptcoregtk-4.0-18", + "version": "2.20.5-0ubuntu0.16.04.1" + }, + { + "name": "libjbig0", + "version": "2.1-3.1" + }, + { + "name": "libjbig2dec0", + "version": "0.12+20150918-1ubuntu0.1" + }, + { + "name": "libjpeg-turbo8", + "version": "1.4.2-0ubuntu3.4" + }, + { + "name": "libjson-c2", + "version": "0.11-4ubuntu2.6" + }, + { + "name": "libjson-glib-1.0-0", + "version": "1.1.2-0ubuntu1" + }, + { + "name": "libjson-glib-1.0-common", + "version": "1.1.2-0ubuntu1" + }, + { + "name": "libk5crypto3", + "version": "1.13.2+dfsg-5ubuntu2.1" + }, + { + "name": "libkeyutils1", + "version": "1.5.9-8ubuntu1" + }, + { + "name": "libklibc", + "version": "2.0.4-8ubuntu1.16.04.4" + }, + { + "name": "libkmod2", + "version": "22-1ubuntu5.2" + }, + { + "name": "libkpathsea6", + "version": "2015.20160222.37495-1ubuntu0.1" + }, + { + "name": "libkrb5-26-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "libkrb5-3", + "version": "1.13.2+dfsg-5ubuntu2.1" + }, + { + "name": "libkrb5support0", + "version": "1.13.2+dfsg-5ubuntu2.1" + }, + { + "name": "libksba8", + "version": "1.3.3-1ubuntu0.16.04.1" + }, + { + "name": "liblangtag-common", + "version": "0.5.7-2ubuntu1" + }, + { + "name": "liblangtag1", + "version": "0.5.7-2ubuntu1" + }, + { + "name": "liblcms2-2", + "version": "2.6-3ubuntu2.1" + }, + { + "name": "liblcms2-utils", + "version": "2.6-3ubuntu2.1" + }, + { + "name": "libldap-2.4-2", + "version": "2.4.42+dfsg-2ubuntu3.9" + }, + { + "name": "libldb1", + "version": "2:1.1.24-1ubuntu3.1" + }, + { + "name": "liblightdm-gobject-1-0", + "version": "1.18.3-0ubuntu1.1" + }, + { + "name": "liblircclient0", + "version": "0.9.0-0ubuntu6" + }, + { + "name": "liblist-moreutils-perl", + "version": "0.413-1build1" + }, + { + "name": "libllvm3.8", + "version": "1:3.8-2ubuntu4" + }, + { + "name": "libllvm6.0", + "version": "1:6.0-1ubuntu2~16.04.1" + }, + { + "name": "liblocale-gettext-perl", + "version": "1.07-1build1" + }, + { + "name": "liblouis-data", + "version": "2.6.4-2ubuntu0.4" + }, + { + "name": "liblouis9", + "version": "2.6.4-2ubuntu0.4" + }, + { + "name": "liblouisutdml-bin", + "version": "2.5.0-3" + }, + { + "name": "liblouisutdml-data", + "version": "2.5.0-3" + }, + { + "name": "liblouisutdml6", + "version": "2.5.0-3" + }, + { + "name": "liblqr-1-0", + "version": "0.4.2-2" + }, + { + "name": "liblsan0", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libltdl7", + "version": "2.4.6-0.1" + }, + { + "name": "liblua5.2-0", + "version": "5.2.4-1ubuntu1" + }, + { + "name": "liblwp-protocol-https-perl", + "version": "6.06-2" + }, + { + "name": "liblwres141", + "version": "1:9.10.3.dfsg.P4-8ubuntu1.16" + }, + { + "name": "liblz4-1", + "version": "0.0~r131-2ubuntu2" + }, + { + "name": "liblzma5", + "version": "5.1.1alpha+20120614-2ubuntu2" + }, + { + "name": "libmagic1", + "version": "1:5.25-2ubuntu1.4" + }, + { + "name": "libmagickcore-6.q16-2", + "version": "8:6.8.9.9-7ubuntu5.15" + }, + { + "name": "libmagickcore-6.q16-2-extra", + "version": "8:6.8.9.9-7ubuntu5.15" + }, + { + "name": "libmagickwand-6.q16-2", + "version": "8:6.8.9.9-7ubuntu5.15" + }, + { + "name": "libmailtools-perl", + "version": "2.13-1" + }, + { + "name": "libmbim-glib4", + "version": "1.14.0-1ubuntu0.16.04.1" + }, + { + "name": "libmbim-proxy", + "version": "1.14.0-1ubuntu0.16.04.1" + }, + { + "name": "libmedia1", + "version": "0.1.0+git20151016+6d424c9-0ubuntu7" + }, + { + "name": "libmediaart-2.0-0", + "version": "1.9.0-2" + }, + { + "name": "libmessaging-menu0", + "version": "13.10.1+15.10.20150505-0ubuntu1" + }, + { + "name": "libmetacity-private3a", + "version": "1:3.18.7-0ubuntu0.3" + }, + { + "name": "libmhash2", + "version": "0.9.9.9-7" + }, + { + "name": "libminiupnpc10", + "version": "1.9.20140610-2ubuntu2.16.04.2" + }, + { + "name": "libmirclient9", + "version": "0.26.3+16.04.20170605-0ubuntu1.1" + }, + { + "name": "libmircommon5", + "version": "0.21.0+16.04.20160330-0ubuntu1" + }, + { + "name": "libmircommon7", + "version": "0.26.3+16.04.20170605-0ubuntu1.1" + }, + { + "name": "libmircore1", + "version": "0.26.3+16.04.20170605-0ubuntu1.1" + }, + { + "name": "libmirprotobuf3", + "version": "0.26.3+16.04.20170605-0ubuntu1.1" + }, + { + "name": "libmm-glib0", + "version": "1.6.4-1ubuntu0.16.04.1" + }, + { + "name": "libmng2", + "version": "2.0.2-0ubuntu3" + }, + { + "name": "libmnl0", + "version": "1.0.3-5" + }, + { + "name": "libmount1", + "version": "2.27.1-6ubuntu3.10" + }, + { + "name": "libmpc3", + "version": "1.0.3-1" + }, + { + "name": "libmpdec2", + "version": "2.4.2-1" + }, + { + "name": "libmpfr4", + "version": "3.1.4-1" + }, + { + "name": "libmpx0", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libmspub-0.1-1", + "version": "0.1.2-2ubuntu1" + }, + { + "name": "libmtdev1", + "version": "1.1.5-1ubuntu2" + }, + { + "name": "libmtp-common", + "version": "1.1.10-2ubuntu1" + }, + { + "name": "libmtp-runtime", + "version": "1.1.10-2ubuntu1" + }, + { + "name": "libmtp9", + "version": "1.1.10-2ubuntu1" + }, + { + "name": "libmwaw-0.3-3", + "version": "0.3.7-1ubuntu2.1" + }, + { + "name": "libmythes-1.2-0", + "version": "2:1.2.4-1ubuntu3" + }, + { + "name": "libnatpmp1", + "version": "20110808-4" + }, + { + "name": "libnautilus-extension1a", + "version": "1:3.18.4.is.3.14.3-0ubuntu6" + }, + { + "name": "libncurses5", + "version": "6.0+20160213-1ubuntu1" + }, + { + "name": "libncursesw5", + "version": "6.0+20160213-1ubuntu1" + }, + { + "name": "libndp0", + "version": "1.4-2ubuntu0.16.04.1" + }, + { + "name": "libneon27-gnutls", + "version": "0.30.1-3build1" + }, + { + "name": "libnet-dbus-perl", + "version": "1.1.0-3build1" + }, + { + "name": "libnet-dns-perl", + "version": "0.81-2build1" + }, + { + "name": "libnet-domain-tld-perl", + "version": "1.73-1" + }, + { + "name": "libnet-http-perl", + "version": "6.09-1" + }, + { + "name": "libnet-libidn-perl", + "version": "0.12.ds-2build2" + }, + { + "name": "libnet-smtp-ssl-perl", + "version": "1.03-1" + }, + { + "name": "libnet-ssleay-perl", + "version": "1.72-1build1" + }, + { + "name": "libnetfilter-conntrack3", + "version": "1.0.5-1" + }, + { + "name": "libnetpbm10", + "version": "2:10.0-15.3" + }, + { + "name": "libnettle6", + "version": "3.2-1ubuntu0.16.04.1" + }, + { + "name": "libnewt0.52", + "version": "0.52.18-1ubuntu2" + }, + { + "name": "libnih-dbus1", + "version": "1.0.3-4.3ubuntu1" + }, + { + "name": "libnih1", + "version": "1.0.3-4.3ubuntu1" + }, + { + "name": "libnl-3-200", + "version": "3.2.27-1ubuntu0.16.04.1" + }, + { + "name": "libnl-genl-3-200", + "version": "3.2.27-1ubuntu0.16.04.1" + }, + { + "name": "libnm-glib-vpn1", + "version": "1.2.6-0ubuntu0.16.04.3" + }, + { + "name": "libnm-glib4", + "version": "1.2.6-0ubuntu0.16.04.3" + }, + { + "name": "libnm-gtk-common", + "version": "1.2.6-0ubuntu0.16.04.4" + }, + { + "name": "libnm-gtk0", + "version": "1.2.6-0ubuntu0.16.04.4" + }, + { + "name": "libnm-util2", + "version": "1.2.6-0ubuntu0.16.04.3" + }, + { + "name": "libnm0", + "version": "1.2.6-0ubuntu0.16.04.3" + }, + { + "name": "libnma-common", + "version": "1.2.6-0ubuntu0.16.04.4" + }, + { + "name": "libnma0", + "version": "1.2.6-0ubuntu0.16.04.4" + }, + { + "name": "libnotify-bin", + "version": "0.7.6-2svn1" + }, + { + "name": "libnotify4", + "version": "0.7.6-2svn1" + }, + { + "name": "libnpth0", + "version": "1.2-3" + }, + { + "name": "libnspr4", + "version": "2:4.13.1-0ubuntu0.16.04.1" + }, + { + "name": "libnss-mdns", + "version": "0.10-7" + }, + { + "name": "libnss3", + "version": "2:3.28.4-0ubuntu0.16.04.12" + }, + { + "name": "libnss3-nssdb", + "version": "2:3.28.4-0ubuntu0.16.04.12" + }, + { + "name": "libnuma1", + "version": "2.0.11-1ubuntu1.1" + }, + { + "name": "libnux-4.0-0", + "version": "4.0.8+16.04.20180622.2-0ubuntu1" + }, + { + "name": "libnux-4.0-common", + "version": "4.0.8+16.04.20180622.2-0ubuntu1" + }, + { + "name": "liboauth0", + "version": "1.0.3-0ubuntu2" + }, + { + "name": "libodfgen-0.1-1", + "version": "0.1.6-1ubuntu2" + }, + { + "name": "libopenexr22", + "version": "2.2.0-10ubuntu2.3" + }, + { + "name": "libopenscap8", + "version": "1.2.8-1" + }, + { + "name": "liborc-0.4-0", + "version": "1:0.4.25-1" + }, + { + "name": "liborcus-0.10-0v5", + "version": "0.9.2-4ubuntu2" + }, + { + "name": "liboxideqt-qmlplugin", + "version": "1.21.5-0ubuntu0.16.04.1" + }, + { + "name": "liboxideqtcore0", + "version": "1.21.5-0ubuntu0.16.04.1" + }, + { + "name": "liboxideqtquick0", + "version": "1.21.5-0ubuntu0.16.04.1" + }, + { + "name": "libp11-kit-gnome-keyring", + "version": "3.18.3-0ubuntu2.1" + }, + { + "name": "libp11-kit0", + "version": "0.23.2-5~ubuntu16.04.1" + }, + { + "name": "libpackagekit-glib2-16", + "version": "0.8.17-4ubuntu6~gcc5.4ubuntu1.4" + }, + { + "name": "libpagemaker-0.0-0", + "version": "0.0.3-1ubuntu1" + }, + { + "name": "libpam-gnome-keyring", + "version": "3.18.3-0ubuntu2.1" + }, + { + "name": "libpam-modules", + "version": "1.1.8-3.2ubuntu2.1" + }, + { + "name": "libpam-modules-bin", + "version": "1.1.8-3.2ubuntu2.1" + }, + { + "name": "libpam-runtime", + "version": "1.1.8-3.2ubuntu2.1" + }, + { + "name": "libpam-systemd", + "version": "229-4ubuntu21.28" + }, + { + "name": "libpam0g", + "version": "1.1.8-3.2ubuntu2.1" + }, + { + "name": "libpango-1.0-0", + "version": "1.38.1-1" + }, + { + "name": "libpango-perl", + "version": "1.227-1" + }, + { + "name": "libpango1.0-0", + "version": "1.38.1-1" + }, + { + "name": "libpangocairo-1.0-0", + "version": "1.38.1-1" + }, + { + "name": "libpangoft2-1.0-0", + "version": "1.38.1-1" + }, + { + "name": "libpangomm-1.4-1v5", + "version": "2.38.1-1" + }, + { + "name": "libpangox-1.0-0", + "version": "0.0.2-5" + }, + { + "name": "libpangoxft-1.0-0", + "version": "1.38.1-1" + }, + { + "name": "libpaper-utils", + "version": "1.1.24+nmu4ubuntu1" + }, + { + "name": "libpaper1", + "version": "1.1.24+nmu4ubuntu1" + }, + { + "name": "libparse-debianchangelog-perl", + "version": "1.2.0-8" + }, + { + "name": "libparted2", + "version": "3.2-15ubuntu0.1" + }, + { + "name": "libpcap0.8", + "version": "1.7.4-2ubuntu0.1" + }, + { + "name": "libpci3", + "version": "1:3.3.1-1.1ubuntu1.3" + }, + { + "name": "libpciaccess0", + "version": "0.13.4-1" + }, + { + "name": "libpcre16-3", + "version": "2:8.38-3.1" + }, + { + "name": "libpcre3", + "version": "2:8.38-3.1" + }, + { + "name": "libpcsclite1", + "version": "1.8.14-1ubuntu1.16.04.1" + }, + { + "name": "libpeas-1.0-0", + "version": "1.16.0-1ubuntu2" + }, + { + "name": "libpeas-1.0-0-python3loader", + "version": "1.16.0-1ubuntu2" + }, + { + "name": "libpeas-common", + "version": "1.16.0-1ubuntu2" + }, + { + "name": "libperl5.22", + "version": "5.22.1-9ubuntu0.6" + }, + { + "name": "libperlio-gzip-perl", + "version": "0.19-1build1" + }, + { + "name": "libpipeline1", + "version": "1.4.1-2" + }, + { + "name": "libpixman-1-0", + "version": "0.33.6-1" + }, + { + "name": "libplist3", + "version": "1.12-3.1ubuntu0.16.04.1" + }, + { + "name": "libplymouth4", + "version": "0.9.2-3ubuntu13.5" + }, + { + "name": "libpng12-0", + "version": "1.2.54-1ubuntu1.1" + }, + { + "name": "libpolkit-agent-1-0", + "version": "0.105-14.1ubuntu0.5" + }, + { + "name": "libpolkit-backend-1-0", + "version": "0.105-14.1ubuntu0.5" + }, + { + "name": "libpolkit-gobject-1-0", + "version": "0.105-14.1ubuntu0.5" + }, + { + "name": "libpoppler-glib8", + "version": "0.41.0-0ubuntu1.14" + }, + { + "name": "libpoppler58", + "version": "0.41.0-0ubuntu1.14" + }, + { + "name": "libpopt0", + "version": "1.16-10" + }, + { + "name": "libportaudio2", + "version": "19+svn20140130-1build1" + }, + { + "name": "libprocps4", + "version": "2:3.3.10-4ubuntu2.5" + }, + { + "name": "libprotobuf-lite9v5", + "version": "2.6.1-1.3" + }, + { + "name": "libprotobuf9v5", + "version": "2.6.1-1.3" + }, + { + "name": "libproxy1-plugin-gsettings", + "version": "0.4.11-5ubuntu1" + }, + { + "name": "libproxy1-plugin-networkmanager", + "version": "0.4.11-5ubuntu1" + }, + { + "name": "libproxy1v5", + "version": "0.4.11-5ubuntu1" + }, + { + "name": "libpulse-mainloop-glib0", + "version": "1:8.0-0ubuntu3.12" + }, + { + "name": "libpulse0", + "version": "1:8.0-0ubuntu3.12" + }, + { + "name": "libpulsedsp", + "version": "1:8.0-0ubuntu3.12" + }, + { + "name": "libpwquality-common", + "version": "1.3.0-0ubuntu1" + }, + { + "name": "libpwquality1", + "version": "1.3.0-0ubuntu1" + }, + { + "name": "libpython-stdlib", + "version": "2.7.12-1~16.04" + }, + { + "name": "libpython2.7", + "version": "2.7.12-1ubuntu0~16.04.12" + }, + { + "name": "libpython2.7-minimal", + "version": "2.7.12-1ubuntu0~16.04.12" + }, + { + "name": "libpython2.7-stdlib", + "version": "2.7.12-1ubuntu0~16.04.12" + }, + { + "name": "libpython3-stdlib", + "version": "3.5.1-3" + }, + { + "name": "libpython3.5", + "version": "3.5.2-2ubuntu0~16.04.11" + }, + { + "name": "libpython3.5-minimal", + "version": "3.5.2-2ubuntu0~16.04.11" + }, + { + "name": "libpython3.5-stdlib", + "version": "3.5.2-2ubuntu0~16.04.11" + }, + { + "name": "libqmi-glib1", + "version": "1.12.6-1" + }, + { + "name": "libqmi-glib5", + "version": "1.16.2-1ubuntu0.16.04.1" + }, + { + "name": "libqmi-proxy", + "version": "1.16.2-1ubuntu0.16.04.1" + }, + { + "name": "libqpdf17", + "version": "6.0.0-2" + }, + { + "name": "libqpdf21", + "version": "8.0.2-3~16.04.1" + }, + { + "name": "libqqwing2v5", + "version": "1.3.4-1" + }, + { + "name": "libqt4-dbus", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqt4-declarative", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqt4-network", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqt4-script", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqt4-sql", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqt4-sql-sqlite", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqt4-xml", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqt4-xmlpatterns", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqt5core5a", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5dbus5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5feedback5", + "version": "5.0~git20130529-0ubuntu13" + }, + { + "name": "libqt5gui5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5multimedia5", + "version": "5.5.1-4ubuntu2" + }, + { + "name": "libqt5network5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5opengl5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5organizer5", + "version": "5.0~git20140515~29475884-0ubuntu20" + }, + { + "name": "libqt5positioning5", + "version": "5.5.1-3ubuntu1" + }, + { + "name": "libqt5printsupport5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5qml5", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "libqt5quick5", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "libqt5quicktest5", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "libqt5sql5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5sql5-sqlite", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5svg5", + "version": "5.5.1-2build1" + }, + { + "name": "libqt5test5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5webkit5", + "version": "5.5.1+dfsg-2ubuntu1" + }, + { + "name": "libqt5widgets5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqt5xml5", + "version": "5.5.1+dfsg-16ubuntu7.7" + }, + { + "name": "libqtcore4", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqtdbus4", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libqtgui4", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "libquadmath0", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libquvi-scripts", + "version": "0.4.21-2" + }, + { + "name": "libquvi7", + "version": "0.4.1-3" + }, + { + "name": "libraptor2-0", + "version": "2.0.14-1" + }, + { + "name": "librasqal3", + "version": "0.9.32-1" + }, + { + "name": "libraw1394-11", + "version": "2.1.1-2" + }, + { + "name": "libraw15", + "version": "0.17.1-1ubuntu0.5" + }, + { + "name": "librdf0", + "version": "1.0.17-1build1" + }, + { + "name": "libreadline6", + "version": "6.3-8ubuntu2" + }, + { + "name": "libreoffice-avmedia-backend-gstreamer", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-base-core", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-calc", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-common", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-core", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-draw", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-gnome", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-gtk", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-help-en-us", + "version": "1:5.1.4-0ubuntu1" + }, + { + "name": "libreoffice-impress", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-math", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-ogltrans", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-pdfimport", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-style-breeze", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-style-galaxy", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "libreoffice-writer", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "librest-0.7-0", + "version": "0.7.93-1" + }, + { + "name": "librevenge-0.0-0", + "version": "0.0.4-4ubuntu1" + }, + { + "name": "librhythmbox-core9", + "version": "3.3-1ubuntu7" + }, + { + "name": "libroken18-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "librsvg2-2", + "version": "2.40.13-3ubuntu0.2" + }, + { + "name": "librsvg2-common", + "version": "2.40.13-3ubuntu0.2" + }, + { + "name": "librtmp1", + "version": "2.4+20151223.gitfa8646d-1ubuntu0.1" + }, + { + "name": "libsamplerate0", + "version": "0.1.8-8" + }, + { + "name": "libsane", + "version": "1.0.25+git20150528-1ubuntu2.16.04.1" + }, + { + "name": "libsane-common", + "version": "1.0.25+git20150528-1ubuntu2.16.04.1" + }, + { + "name": "libsane-hpaio", + "version": "3.16.3+repack0-1" + }, + { + "name": "libsasl2-2", + "version": "2.1.26.dfsg1-14ubuntu0.2" + }, + { + "name": "libsasl2-modules", + "version": "2.1.26.dfsg1-14ubuntu0.2" + }, + { + "name": "libsasl2-modules-db", + "version": "2.1.26.dfsg1-14ubuntu0.2" + }, + { + "name": "libsbc1", + "version": "1.3-1" + }, + { + "name": "libseccomp2", + "version": "2.4.3-1ubuntu3.16.04.3" + }, + { + "name": "libsecret-1-0", + "version": "0.18.4-1ubuntu2" + }, + { + "name": "libsecret-common", + "version": "0.18.4-1ubuntu2" + }, + { + "name": "libselinux1", + "version": "2.4-3build2" + }, + { + "name": "libsemanage-common", + "version": "2.3-1build3" + }, + { + "name": "libsemanage1", + "version": "2.3-1build3" + }, + { + "name": "libsensors4", + "version": "1:3.4.0-2" + }, + { + "name": "libsepol1", + "version": "2.4-2" + }, + { + "name": "libsgutils2-2", + "version": "1.40-0ubuntu1" + }, + { + "name": "libshout3", + "version": "2.3.1-3" + }, + { + "name": "libsigc++-2.0-0v5", + "version": "2.6.2-1" + }, + { + "name": "libsignon-extension1", + "version": "8.58+16.04.20151106-0ubuntu1" + }, + { + "name": "libsignon-glib1", + "version": "1.13+16.04.20151209.1-0ubuntu1" + }, + { + "name": "libsignon-plugins-common1", + "version": "8.58+16.04.20151106-0ubuntu1" + }, + { + "name": "libsignon-qt5-1", + "version": "8.58+16.04.20151106-0ubuntu1" + }, + { + "name": "libslang2", + "version": "2.3.0-2ubuntu1.1" + }, + { + "name": "libsmartcols1", + "version": "2.27.1-6ubuntu3.10" + }, + { + "name": "libsmbclient", + "version": "2:4.3.11+dfsg-0ubuntu0.16.04.28" + }, + { + "name": "libsnapd-glib1", + "version": "1.49-0ubuntu0.16.04.2" + }, + { + "name": "libsndfile1", + "version": "1.0.25-10ubuntu0.16.04.2" + }, + { + "name": "libsnmp-base", + "version": "5.7.3+dfsg-1ubuntu4.4" + }, + { + "name": "libsnmp30", + "version": "5.7.3+dfsg-1ubuntu4.4" + }, + { + "name": "libsocket6-perl", + "version": "0.25-1build2" + }, + { + "name": "libsonic0", + "version": "0.2.0-3" + }, + { + "name": "libsoup-gnome2.4-1", + "version": "2.52.2-1ubuntu0.3" + }, + { + "name": "libsoup2.4-1", + "version": "2.52.2-1ubuntu0.3" + }, + { + "name": "libspectre1", + "version": "0.2.7-3ubuntu2" + }, + { + "name": "libspeechd2", + "version": "0.8.3-1ubuntu3" + }, + { + "name": "libspeex1", + "version": "1.2~rc1.2-1ubuntu1" + }, + { + "name": "libspeexdsp1", + "version": "1.2~rc1.2-1ubuntu1" + }, + { + "name": "libsqlite3-0", + "version": "3.11.0-1ubuntu1.5" + }, + { + "name": "libss2", + "version": "1.42.13-1ubuntu1.2" + }, + { + "name": "libssh-4", + "version": "0.6.3-4.3ubuntu0.6" + }, + { + "name": "libssl1.0.0", + "version": "1.0.2g-1ubuntu4.16" + }, + { + "name": "libstartup-notification0", + "version": "0.12-4build1" + }, + { + "name": "libstdc++-5-dev", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libstdc++6", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libsub-name-perl", + "version": "0.14-1build1" + }, + { + "name": "libsuitesparseconfig4.4.6", + "version": "1:4.4.6-1" + }, + { + "name": "libsystemd0", + "version": "229-4ubuntu21.28" + }, + { + "name": "libtag1v5", + "version": "1.9.1-2.4ubuntu1" + }, + { + "name": "libtag1v5-vanilla", + "version": "1.9.1-2.4ubuntu1" + }, + { + "name": "libtalloc2", + "version": "2.1.5-2" + }, + { + "name": "libtasn1-6", + "version": "4.7-3ubuntu0.16.04.3" + }, + { + "name": "libtcl8.6", + "version": "8.6.5+dfsg-2" + }, + { + "name": "libtdb1", + "version": "1.3.8-2" + }, + { + "name": "libtelepathy-glib0", + "version": "0.24.1-1.1" + }, + { + "name": "libtevent0", + "version": "0.9.28-0ubuntu0.16.04.1" + }, + { + "name": "libtext-charwidth-perl", + "version": "0.04-7build5" + }, + { + "name": "libtext-iconv-perl", + "version": "1.7-5build4" + }, + { + "name": "libthai-data", + "version": "0.1.24-2" + }, + { + "name": "libthai0", + "version": "0.1.24-2" + }, + { + "name": "libtheora0", + "version": "1.1.1+dfsg.1-8" + }, + { + "name": "libtiff5", + "version": "4.0.6-1ubuntu0.7" + }, + { + "name": "libtimezonemap-data", + "version": "0.4.5" + }, + { + "name": "libtimezonemap1", + "version": "0.4.5" + }, + { + "name": "libtinfo5", + "version": "6.0+20160213-1ubuntu1" + }, + { + "name": "libtk8.6", + "version": "8.6.5-1" + }, + { + "name": "libtotem-plparser-common", + "version": "3.10.6-1ubuntu1" + }, + { + "name": "libtotem-plparser18", + "version": "3.10.6-1ubuntu1" + }, + { + "name": "libtotem0", + "version": "3.18.1-1ubuntu4" + }, + { + "name": "libtracker-sparql-1.0-0", + "version": "1.6.2-0ubuntu1.1" + }, + { + "name": "libtsan0", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libtxc-dxtn-s2tc0", + "version": "0~git20131104-1.1" + }, + { + "name": "libubsan0", + "version": "5.4.0-6ubuntu1~16.04.12" + }, + { + "name": "libubuntugestures5", + "version": "1.3.1918+16.04.20160404-0ubuntu1" + }, + { + "name": "libubuntutoolkit5", + "version": "1.3.1918+16.04.20160404-0ubuntu1" + }, + { + "name": "libudev1", + "version": "229-4ubuntu21.28" + }, + { + "name": "libudisks2-0", + "version": "2.1.7-1ubuntu1" + }, + { + "name": "libunistring0", + "version": "0.9.3-5.2ubuntu1" + }, + { + "name": "libunity-action-qt1", + "version": "1.1.0+14.04.20140304-0ubuntu2~gcc5.1" + }, + { + "name": "libunity-control-center1", + "version": "15.04.0+16.04.20171130-0ubuntu1" + }, + { + "name": "libunity-core-6.0-9", + "version": "7.4.5+16.04.20190312-0ubuntu1" + }, + { + "name": "libunity-gtk2-parser0", + "version": "0.0.0+15.04.20150118-0ubuntu2" + }, + { + "name": "libunity-gtk3-parser0", + "version": "0.0.0+15.04.20150118-0ubuntu2" + }, + { + "name": "libunity-misc4", + "version": "4.0.5+14.04.20140115-0ubuntu1" + }, + { + "name": "libunity-protocol-private0", + "version": "7.1.4+16.04.20180209.1-0ubuntu1" + }, + { + "name": "libunity-scopes-json-def-desktop", + "version": "7.1.4+16.04.20180209.1-0ubuntu1" + }, + { + "name": "libunity-settings-daemon1", + "version": "15.04.1+16.04.20160701-0ubuntu3" + }, + { + "name": "libunity-webapps0", + "version": "2.5.0~+16.04.20160201-0ubuntu1" + }, + { + "name": "libunity9", + "version": "7.1.4+16.04.20180209.1-0ubuntu1" + }, + { + "name": "libunwind8", + "version": "1.1-4.1" + }, + { + "name": "libupower-glib3", + "version": "0.99.4-2ubuntu0.3" + }, + { + "name": "liburi-perl", + "version": "1.71-1" + }, + { + "name": "liburl-dispatcher1", + "version": "0.1+16.04.20151110-0ubuntu2" + }, + { + "name": "libusb-0.1-4", + "version": "2:0.1.12-28" + }, + { + "name": "libusb-1.0-0", + "version": "2:1.0.20-1" + }, + { + "name": "libusbmuxd4", + "version": "1.0.10-2ubuntu0.1" + }, + { + "name": "libustr-1.0-1", + "version": "1.0.4-5" + }, + { + "name": "libutempter0", + "version": "1.1.6-3" + }, + { + "name": "libuuid-perl", + "version": "0.24-1build1" + }, + { + "name": "libuuid1", + "version": "2.27.1-6ubuntu3.10" + }, + { + "name": "libv4l-0", + "version": "1.10.0-1" + }, + { + "name": "libv4lconvert0", + "version": "1.10.0-1" + }, + { + "name": "libvisio-0.1-1", + "version": "0.1.5-1ubuntu1" + }, + { + "name": "libvisual-0.4-0", + "version": "0.4.0-8" + }, + { + "name": "libvncclient1", + "version": "0.9.10+dfsg-3ubuntu0.16.04.5" + }, + { + "name": "libvorbis0a", + "version": "1.3.5-3ubuntu0.2" + }, + { + "name": "libvorbisenc2", + "version": "1.3.5-3ubuntu0.2" + }, + { + "name": "libvorbisfile3", + "version": "1.3.5-3ubuntu0.2" + }, + { + "name": "libvpx3", + "version": "1.5.0-2ubuntu1.1" + }, + { + "name": "libvte-2.91-0", + "version": "0.42.5-1ubuntu1" + }, + { + "name": "libvte-2.91-common", + "version": "0.42.5-1ubuntu1" + }, + { + "name": "libwacom-bin", + "version": "0.22-1~ubuntu16.04.1" + }, + { + "name": "libwacom-common", + "version": "0.22-1~ubuntu16.04.1" + }, + { + "name": "libwacom2", + "version": "0.22-1~ubuntu16.04.1" + }, + { + "name": "libwavpack1", + "version": "4.75.2-2ubuntu0.2" + }, + { + "name": "libwayland-client0", + "version": "1.12.0-1~ubuntu16.04.3" + }, + { + "name": "libwayland-cursor0", + "version": "1.12.0-1~ubuntu16.04.3" + }, + { + "name": "libwayland-egl1-mesa", + "version": "18.0.5-0ubuntu0~16.04.1" + }, + { + "name": "libwayland-server0", + "version": "1.12.0-1~ubuntu16.04.3" + }, + { + "name": "libwbclient0", + "version": "2:4.3.11+dfsg-0ubuntu0.16.04.28" + }, + { + "name": "libwebkit2gtk-4.0-37", + "version": "2.20.5-0ubuntu0.16.04.1" + }, + { + "name": "libwebkit2gtk-4.0-37-gtk2", + "version": "2.20.5-0ubuntu0.16.04.1" + }, + { + "name": "libwebp5", + "version": "0.4.4-1" + }, + { + "name": "libwebpdemux1", + "version": "0.4.4-1" + }, + { + "name": "libwebpmux1", + "version": "0.4.4-1" + }, + { + "name": "libwebrtc-audio-processing-0", + "version": "0.1-3ubuntu1~gcc5.1" + }, + { + "name": "libwhoopsie-preferences0", + "version": "0.18" + }, + { + "name": "libwhoopsie0", + "version": "0.2.52.5ubuntu0.5" + }, + { + "name": "libwind0-heimdal", + "version": "1.7~git20150920+dfsg-4ubuntu1.16.04.1" + }, + { + "name": "libwinpr-crt0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-dsparse0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-environment0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-file0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-handle0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-heap0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-input0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-interlocked0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-library0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-path0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-pool0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-registry0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-rpc0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-sspi0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-synch0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-sysinfo0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-thread0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwinpr-utils0.1", + "version": "1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1.4" + }, + { + "name": "libwmf0.2-7", + "version": "0.2.8.4-10.5ubuntu1" + }, + { + "name": "libwmf0.2-7-gtk", + "version": "0.2.8.4-10.5ubuntu1" + }, + { + "name": "libwnck-3-0", + "version": "3.14.1-2" + }, + { + "name": "libwnck-3-common", + "version": "3.14.1-2" + }, + { + "name": "libwpd-0.10-10", + "version": "0.10.1-1ubuntu1" + }, + { + "name": "libwpg-0.3-3", + "version": "0.3.1-1ubuntu1" + }, + { + "name": "libwps-0.4-4", + "version": "0.4.3-1ubuntu1" + }, + { + "name": "libwrap0", + "version": "7.6.q-25" + }, + { + "name": "libwww-perl", + "version": "6.15-1" + }, + { + "name": "libx11-6", + "version": "2:1.6.3-1ubuntu2.1" + }, + { + "name": "libx11-data", + "version": "2:1.6.3-1ubuntu2.1" + }, + { + "name": "libx11-xcb1", + "version": "2:1.6.3-1ubuntu2.1" + }, + { + "name": "libx86-1", + "version": "1.1+ds1-10" + }, + { + "name": "libxapian22v5", + "version": "1.2.22-2" + }, + { + "name": "libxatracker2", + "version": "18.0.5-0ubuntu0~16.04.1" + }, + { + "name": "libxau6", + "version": "1:1.0.8-1" + }, + { + "name": "libxcb-dri2-0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-dri3-0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-glx0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-present0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-randr0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-render0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-shape0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-shm0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-sync1", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-xfixes0", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb-xkb1", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcb1", + "version": "1.11.1-1ubuntu1" + }, + { + "name": "libxcomposite1", + "version": "1:0.4.4-1" + }, + { + "name": "libxcursor1", + "version": "1:1.1.14-1ubuntu0.16.04.2" + }, + { + "name": "libxdamage1", + "version": "1:1.1.4-2" + }, + { + "name": "libxdmcp6", + "version": "1:1.1.2-1.1" + }, + { + "name": "libxfixes3", + "version": "1:5.0.1-2" + }, + { + "name": "libxfont1", + "version": "1:1.5.1-1ubuntu0.16.04.4" + }, + { + "name": "libxfont2", + "version": "1:2.0.1-3~ubuntu16.04.3" + }, + { + "name": "libxi6", + "version": "2:1.7.6-1" + }, + { + "name": "libxkbcommon-x11-0", + "version": "0.5.0-1ubuntu2.1" + }, + { + "name": "libxkbcommon0", + "version": "0.5.0-1ubuntu2.1" + }, + { + "name": "libxkbfile1", + "version": "1:1.0.9-0ubuntu1" + }, + { + "name": "libxklavier16", + "version": "5.4-0ubuntu2" + }, + { + "name": "libxml-parser-perl", + "version": "2.44-1build1" + }, + { + "name": "libxml-twig-perl", + "version": "1:3.48-1" + }, + { + "name": "libxml-xpathengine-perl", + "version": "0.13-1" + }, + { + "name": "libxml2", + "version": "2.9.3+dfsg1-1ubuntu0.7" + }, + { + "name": "libxpm4", + "version": "1:3.5.11-1ubuntu0.16.04.1" + }, + { + "name": "libxrandr2", + "version": "2:1.5.0-1" + }, + { + "name": "libxrender1", + "version": "1:0.9.9-0ubuntu1" + }, + { + "name": "libxres1", + "version": "2:1.0.7-1" + }, + { + "name": "libxshmfence1", + "version": "1.2-1" + }, + { + "name": "libxslt1.1", + "version": "1.1.28-2.1ubuntu0.3" + }, + { + "name": "libxt6", + "version": "1:1.1.5-0ubuntu1" + }, + { + "name": "libxtables11", + "version": "1.6.0-2ubuntu3" + }, + { + "name": "libxtst6", + "version": "2:1.2.2-1" + }, + { + "name": "libxv1", + "version": "2:1.0.10-1" + }, + { + "name": "libxvmc1", + "version": "2:1.0.9-1ubuntu1" + }, + { + "name": "libyajl2", + "version": "2.1.0-2" + }, + { + "name": "libyaml-0-2", + "version": "0.1.6-3" + }, + { + "name": "libyaml-libyaml-perl", + "version": "0.41-6build1" + }, + { + "name": "libyaml-tiny-perl", + "version": "1.69-1" + }, + { + "name": "libyelp0", + "version": "3.18.1-1ubuntu4" + }, + { + "name": "libzeitgeist-1.0-1", + "version": "0.3.18-1ubuntu3" + }, + { + "name": "libzeitgeist-2.0-0", + "version": "0.9.16-0ubuntu4" + }, + { + "name": "light-themes", + "version": "14.04+16.04.20180326-0ubuntu1" + }, + { + "name": "lightdm", + "version": "1.18.3-0ubuntu1.1" + }, + { + "name": "lintian", + "version": "2.5.43ubuntu0.1" + }, + { + "name": "linux-base", + "version": "4.5ubuntu1.2~16.04.1" + }, + { + "name": "linux-firmware", + "version": "1.157.23" + }, + { + "name": "linux-generic-hwe-16.04", + "version": "4.15.0.112.114" + }, + { + "name": "linux-headers-4.15.0-112", + "version": "4.15.0-112.113~16.04.1" + }, + { + "name": "linux-headers-4.15.0-112-generic", + "version": "4.15.0-112.113~16.04.1" + }, + { + "name": "linux-headers-generic-hwe-16.04", + "version": "4.15.0.112.114" + }, + { + "name": "linux-image-4.15.0-112-generic", + "version": "4.15.0-112.113~16.04.1" + }, + { + "name": "linux-image-generic-hwe-16.04", + "version": "4.15.0.112.114" + }, + { + "name": "linux-libc-dev", + "version": "4.4.0-186.216" + }, + { + "name": "linux-modules-4.15.0-112-generic", + "version": "4.15.0-112.113~16.04.1" + }, + { + "name": "linux-modules-extra-4.15.0-112-generic", + "version": "4.15.0-112.113~16.04.1" + }, + { + "name": "locales", + "version": "2.23-0ubuntu11.2" + }, + { + "name": "login", + "version": "1:4.2-3.1ubuntu5.4" + }, + { + "name": "logrotate", + "version": "3.8.7-2ubuntu2.16.04.2" + }, + { + "name": "lp-solve", + "version": "5.5.0.13-7build2" + }, + { + "name": "lsb-base", + "version": "9.20160110ubuntu0.2" + }, + { + "name": "lsb-release", + "version": "9.20160110ubuntu0.2" + }, + { + "name": "lshw", + "version": "02.17-1.1ubuntu3.6" + }, + { + "name": "ltrace", + "version": "0.7.3-5.1ubuntu4" + }, + { + "name": "lxml", + "version": "3.5.0" + }, + { + "name": "make", + "version": "4.1-6" + }, + { + "name": "makedev", + "version": "2.3.1-93ubuntu2~ubuntu16.04.1" + }, + { + "name": "man-db", + "version": "2.7.5-1" + }, + { + "name": "manpages", + "version": "4.04-2" + }, + { + "name": "manpages-dev", + "version": "4.04-2" + }, + { + "name": "mawk", + "version": "1.3.3-17ubuntu2" + }, + { + "name": "media-player-info", + "version": "22-2" + }, + { + "name": "metacity-common", + "version": "1:3.18.7-0ubuntu0.3" + }, + { + "name": "mime-support", + "version": "3.59ubuntu1" + }, + { + "name": "mlocate", + "version": "0.26-1ubuntu2" + }, + { + "name": "mobile-broadband-provider-info", + "version": "20140317-1" + }, + { + "name": "modemmanager", + "version": "1.6.4-1ubuntu0.16.04.1" + }, + { + "name": "mount", + "version": "2.27.1-6ubuntu3.10" + }, + { + "name": "mountall", + "version": "2.54ubuntu1" + }, + { + "name": "mousetweaks", + "version": "3.12.0-1ubuntu2" + }, + { + "name": "mscompress", + "version": "0.4-3" + }, + { + "name": "mtools", + "version": "4.0.18-2ubuntu0.16.04" + }, + { + "name": "mtr-tiny", + "version": "0.86-1ubuntu0.1" + }, + { + "name": "multiarch-support", + "version": "2.23-0ubuntu11.2" + }, + { + "name": "mythes-en-us", + "version": "1:5.1.0-1ubuntu2.2" + }, + { + "name": "nano", + "version": "2.5.3-2ubuntu2" + }, + { + "name": "nautilus", + "version": "1:3.18.4.is.3.14.3-0ubuntu6" + }, + { + "name": "nautilus-data", + "version": "1:3.18.4.is.3.14.3-0ubuntu6" + }, + { + "name": "nautilus-sendto", + "version": "3.8.2-1ubuntu1" + }, + { + "name": "nautilus-share", + "version": "0.7.3-2ubuntu1" + }, + { + "name": "ncurses-base", + "version": "6.0+20160213-1ubuntu1" + }, + { + "name": "ncurses-bin", + "version": "6.0+20160213-1ubuntu1" + }, + { + "name": "net-tools", + "version": "1.60-26ubuntu1" + }, + { + "name": "netbase", + "version": "5.3" + }, + { + "name": "netcat-openbsd", + "version": "1.105-7ubuntu1" + }, + { + "name": "netpbm", + "version": "2:10.0-15.3" + }, + { + "name": "network-manager", + "version": "1.2.6-0ubuntu0.16.04.3" + }, + { + "name": "network-manager-gnome", + "version": "1.2.6-0ubuntu0.16.04.4" + }, + { + "name": "network-manager-pptp", + "version": "1.1.93-1ubuntu1" + }, + { + "name": "network-manager-pptp-gnome", + "version": "1.1.93-1ubuntu1" + }, + { + "name": "notify-osd", + "version": "0.9.35+16.04.20160415-0ubuntu1" + }, + { + "name": "notify-osd-icons", + "version": "0.8+15.10.20151016.2-0ubuntu1" + }, + { + "name": "ntfs-3g", + "version": "1:2015.3.14AR.1-1ubuntu0.3" + }, + { + "name": "nux-tools", + "version": "4.0.8+16.04.20180622.2-0ubuntu1" + }, + { + "name": "oauthlib", + "version": "1.0.3" + }, + { + "name": "onboard", + "version": "1.2.0-0ubuntu5" + }, + { + "name": "onboard-data", + "version": "1.2.0-0ubuntu5" + }, + { + "name": "openoffice.org-hyphenation", + "version": "0.9" + }, + { + "name": "openprinting-ppds", + "version": "20160212-0ubuntu1" + }, + { + "name": "openssh-client", + "version": "1:7.2p2-4ubuntu2.10" + }, + { + "name": "openssl", + "version": "1.0.2g-1ubuntu4.16" + }, + { + "name": "os-prober", + "version": "1.70ubuntu3.3" + }, + { + "name": "overlay-scrollbar", + "version": "0.2.17.1+16.04.20151117-0ubuntu1.16.04.1" + }, + { + "name": "overlay-scrollbar-gtk2", + "version": "0.2.17.1+16.04.20151117-0ubuntu1.16.04.1" + }, + { + "name": "oxideqt-codecs", + "version": "1.21.5-0ubuntu0.16.04.1" + }, + { + "name": "p11-kit", + "version": "0.23.2-5~ubuntu16.04.1" + }, + { + "name": "p11-kit-modules", + "version": "0.23.2-5~ubuntu16.04.1" + }, + { + "name": "padme", + "version": "1.1.1" + }, + { + "name": "parted", + "version": "3.2-15ubuntu0.1" + }, + { + "name": "passwd", + "version": "1:4.2-3.1ubuntu5.4" + }, + { + "name": "patch", + "version": "2.7.5-1ubuntu0.16.04.2" + }, + { + "name": "patchutils", + "version": "0.3.4-1" + }, + { + "name": "pciutils", + "version": "1:3.3.1-1.1ubuntu1.3" + }, + { + "name": "pcmciautils", + "version": "018-8" + }, + { + "name": "perl", + "version": "5.22.1-9ubuntu0.6" + }, + { + "name": "perl-base", + "version": "5.22.1-9ubuntu0.6" + }, + { + "name": "perl-modules-5.22", + "version": "5.22.1-9ubuntu0.6" + }, + { + "name": "pinentry-curses", + "version": "0.9.7-3" + }, + { + "name": "pinentry-gnome3", + "version": "0.9.7-3" + }, + { + "name": "pkg-config", + "version": "0.29.1-0ubuntu1" + }, + { + "name": "plainbox", + "version": "0.25" + }, + { + "name": "plainbox-provider-checkbox", + "version": "0.25-1" + }, + { + "name": "plainbox-provider-resource-generic", + "version": "0.23-1" + }, + { + "name": "plainbox-secure-policy", + "version": "0.25-1" + }, + { + "name": "plymouth", + "version": "0.9.2-3ubuntu13.5" + }, + { + "name": "plymouth-label", + "version": "0.9.2-3ubuntu13.5" + }, + { + "name": "plymouth-theme-ubuntu-logo", + "version": "0.9.2-3ubuntu13.5" + }, + { + "name": "plymouth-theme-ubuntu-text", + "version": "0.9.2-3ubuntu13.5" + }, + { + "name": "pm-utils", + "version": "1.4.1-16" + }, + { + "name": "policykit-1", + "version": "0.105-14.1ubuntu0.5" + }, + { + "name": "policykit-1-gnome", + "version": "0.105-2ubuntu2" + }, + { + "name": "policykit-desktop-privileges", + "version": "0.20ubuntu16.04.1" + }, + { + "name": "poppler-data", + "version": "0.4.7-7" + }, + { + "name": "poppler-utils", + "version": "0.41.0-0ubuntu1.14" + }, + { + "name": "popularity-contest", + "version": "1.64ubuntu2" + }, + { + "name": "powermgmt-base", + "version": "1.31+nmu1" + }, + { + "name": "ppp", + "version": "2.4.7-1+2ubuntu1.16.04.3" + }, + { + "name": "pppconfig", + "version": "2.3.22" + }, + { + "name": "pptp-linux", + "version": "1.8.0-1" + }, + { + "name": "printer-driver-brlaser", + "version": "3-5~ubuntu1" + }, + { + "name": "printer-driver-c2esp", + "version": "27-2" + }, + { + "name": "printer-driver-foo2zjs", + "version": "20151024dfsg0-1ubuntu1" + }, + { + "name": "printer-driver-foo2zjs-common", + "version": "20151024dfsg0-1ubuntu1" + }, + { + "name": "printer-driver-gutenprint", + "version": "5.2.11-1" + }, + { + "name": "printer-driver-hpcups", + "version": "3.16.3+repack0-1" + }, + { + "name": "printer-driver-min12xxw", + "version": "0.0.9-9" + }, + { + "name": "printer-driver-pnm2ppa", + "version": "1.13+nondbs-0ubuntu5" + }, + { + "name": "printer-driver-postscript-hp", + "version": "3.16.3+repack0-1" + }, + { + "name": "printer-driver-ptouch", + "version": "1.4-1" + }, + { + "name": "printer-driver-pxljr", + "version": "1.4+repack0-4" + }, + { + "name": "printer-driver-sag-gdi", + "version": "0.1-4ubuntu1" + }, + { + "name": "printer-driver-splix", + "version": "2.0.0+svn315-4fakesync1" + }, + { + "name": "procps", + "version": "2:3.3.10-4ubuntu2.5" + }, + { + "name": "psmisc", + "version": "22.21-2.1ubuntu0.1" + }, + { + "name": "pulseaudio", + "version": "1:8.0-0ubuntu3.12" + }, + { + "name": "pulseaudio-module-bluetooth", + "version": "1:8.0-0ubuntu3.12" + }, + { + "name": "pulseaudio-module-x11", + "version": "1:8.0-0ubuntu3.12" + }, + { + "name": "pulseaudio-utils", + "version": "1:8.0-0ubuntu3.12" + }, + { + "name": "pyasn1", + "version": "0.1.9" + }, + { + "name": "pyotherside", + "version": "1.4.0-2" + }, + { + "name": "pyparsing", + "version": "2.0.3" + }, + { + "name": "python", + "version": "2.7.12-1~16.04" + }, + { + "name": "python-apt-common", + "version": "1.1.0~beta1ubuntu0.16.04.9" + }, + { + "name": "python-debian", + "version": "0.1.27" + }, + { + "name": "python-minimal", + "version": "2.7.12-1~16.04" + }, + { + "name": "python-talloc", + "version": "2.1.5-2" + }, + { + "name": "python2.7", + "version": "2.7.12-1ubuntu0~16.04.12" + }, + { + "name": "python2.7-minimal", + "version": "2.7.12-1ubuntu0~16.04.12" + }, + { + "name": "python3", + "version": "3.5.1-3" + }, + { + "name": "python3-apport", + "version": "2.20.1-0ubuntu2.24" + }, + { + "name": "python3-apt", + "version": "1.1.0~beta1ubuntu0.16.04.9" + }, + { + "name": "python3-aptdaemon", + "version": "1.1.1+bzr982-0ubuntu14.3" + }, + { + "name": "python3-aptdaemon.gtk3widgets", + "version": "1.1.1+bzr982-0ubuntu14.3" + }, + { + "name": "python3-aptdaemon.pkcompat", + "version": "1.1.1+bzr982-0ubuntu14.3" + }, + { + "name": "python3-blinker", + "version": "1.3.dfsg2-1build1" + }, + { + "name": "python3-brlapi", + "version": "5.3.1-2ubuntu2.1" + }, + { + "name": "python3-bs4", + "version": "4.4.1-1" + }, + { + "name": "python3-cairo", + "version": "1.10.0+dfsg-5build1" + }, + { + "name": "python3-cffi-backend", + "version": "1.5.2-1ubuntu1" + }, + { + "name": "python3-chardet", + "version": "2.3.0-2" + }, + { + "name": "python3-checkbox-support", + "version": "0.22-1" + }, + { + "name": "python3-commandnotfound", + "version": "0.3ubuntu16.04.2" + }, + { + "name": "python3-cryptography", + "version": "1.2.3-1ubuntu0.2" + }, + { + "name": "python3-cups", + "version": "1.9.73-0ubuntu2" + }, + { + "name": "python3-cupshelpers", + "version": "1.5.7+20160212-0ubuntu2" + }, + { + "name": "python3-dbus", + "version": "1.2.0-3" + }, + { + "name": "python3-debian", + "version": "0.1.27ubuntu2" + }, + { + "name": "python3-distupgrade", + "version": "1:16.04.30" + }, + { + "name": "python3-feedparser", + "version": "5.1.3-3build1" + }, + { + "name": "python3-gdbm", + "version": "3.5.1-1" + }, + { + "name": "python3-gi", + "version": "3.20.0-0ubuntu1" + }, + { + "name": "python3-gi-cairo", + "version": "3.20.0-0ubuntu1" + }, + { + "name": "python3-guacamole", + "version": "0.9.2-1" + }, + { + "name": "python3-html5lib", + "version": "0.999-4" + }, + { + "name": "python3-httplib2", + "version": "0.9.1+dfsg-1" + }, + { + "name": "python3-idna", + "version": "2.0-3" + }, + { + "name": "python3-jinja2", + "version": "2.8-1ubuntu0.1" + }, + { + "name": "python3-jwt", + "version": "1.3.0-1ubuntu0.1" + }, + { + "name": "python3-louis", + "version": "2.6.4-2ubuntu0.4" + }, + { + "name": "python3-lxml", + "version": "3.5.0-1ubuntu0.1" + }, + { + "name": "python3-mako", + "version": "1.0.3+ds1-1ubuntu1" + }, + { + "name": "python3-markupsafe", + "version": "0.23-2build2" + }, + { + "name": "python3-minimal", + "version": "3.5.1-3" + }, + { + "name": "python3-oauthlib", + "version": "1.0.3-1" + }, + { + "name": "python3-padme", + "version": "1.1.1-2" + }, + { + "name": "python3-pexpect", + "version": "4.0.1-1" + }, + { + "name": "python3-pil", + "version": "3.1.2-0ubuntu1.4" + }, + { + "name": "python3-pkg-resources", + "version": "20.7.0-1" + }, + { + "name": "python3-plainbox", + "version": "0.25-1" + }, + { + "name": "python3-problem-report", + "version": "2.20.1-0ubuntu2.24" + }, + { + "name": "python3-ptyprocess", + "version": "0.5-1" + }, + { + "name": "python3-pyasn1", + "version": "0.1.9-1" + }, + { + "name": "python3-pyatspi", + "version": "2.18.0+dfsg-3" + }, + { + "name": "python3-pycurl", + "version": "7.43.0-1ubuntu1" + }, + { + "name": "python3-pyparsing", + "version": "2.0.3+dfsg1-1ubuntu0.1" + }, + { + "name": "python3-renderpm", + "version": "3.3.0-1ubuntu0.1" + }, + { + "name": "python3-reportlab", + "version": "3.3.0-1ubuntu0.1" + }, + { + "name": "python3-reportlab-accel", + "version": "3.3.0-1ubuntu0.1" + }, + { + "name": "python3-requests", + "version": "2.9.1-3ubuntu0.1" + }, + { + "name": "python3-six", + "version": "1.10.0-3" + }, + { + "name": "python3-software-properties", + "version": "0.96.20.9" + }, + { + "name": "python3-speechd", + "version": "0.8.3-1ubuntu3" + }, + { + "name": "python3-systemd", + "version": "231-2build1" + }, + { + "name": "python3-uno", + "version": "1:5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "python3-update-manager", + "version": "1:16.04.17" + }, + { + "name": "python3-urllib3", + "version": "1.13.1-2ubuntu0.16.04.3" + }, + { + "name": "python3-xdg", + "version": "0.25-4" + }, + { + "name": "python3-xlsxwriter", + "version": "0.7.3-1" + }, + { + "name": "python3.5", + "version": "3.5.2-2ubuntu0~16.04.11" + }, + { + "name": "python3.5-minimal", + "version": "3.5.2-2ubuntu0~16.04.11" + }, + { + "name": "qdbus", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "qml-module-io-thp-pyotherside", + "version": "1.4.0-2" + }, + { + "name": "qml-module-qt-labs-folderlistmodel", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qml-module-qt-labs-settings", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qml-module-qtfeedback", + "version": "5.0~git20130529-0ubuntu13" + }, + { + "name": "qml-module-qtgraphicaleffects", + "version": "5.5.1-1ubuntu1" + }, + { + "name": "qml-module-qtquick-layouts", + "version": "5.5.1-1ubuntu1" + }, + { + "name": "qml-module-qtquick-window2", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qml-module-qtquick2", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qml-module-qttest", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qml-module-ubuntu-components", + "version": "1.3.1918+16.04.20160404-0ubuntu1" + }, + { + "name": "qml-module-ubuntu-layouts", + "version": "1.3.1918+16.04.20160404-0ubuntu1" + }, + { + "name": "qml-module-ubuntu-onlineaccounts", + "version": "0.6+16.04.20151106-0ubuntu1" + }, + { + "name": "qml-module-ubuntu-performancemetrics", + "version": "1.3.1918+16.04.20160404-0ubuntu1" + }, + { + "name": "qml-module-ubuntu-test", + "version": "1.3.1918+16.04.20160404-0ubuntu1" + }, + { + "name": "qml-module-ubuntu-web", + "version": "0.23+16.04.20161028-0ubuntu2" + }, + { + "name": "qmlscene", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qpdf", + "version": "8.0.2-3~16.04.1" + }, + { + "name": "qt-at-spi", + "version": "0.4.0-3" + }, + { + "name": "qtchooser", + "version": "52-gae5eeef-2build1~gcc5.2" + }, + { + "name": "qtcore4-l10n", + "version": "4:4.8.7+dfsg-5ubuntu2" + }, + { + "name": "qtdeclarative5-accounts-plugin", + "version": "0.6+16.04.20151106-0ubuntu1" + }, + { + "name": "qtdeclarative5-dev-tools", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qtdeclarative5-qtquick2-plugin", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qtdeclarative5-test-plugin", + "version": "5.5.1-2ubuntu6" + }, + { + "name": "qtdeclarative5-ubuntu-ui-toolkit-plugin", + "version": "1.3.1918+16.04.20160404-0ubuntu1" + }, + { + "name": "qtdeclarative5-unity-action-plugin", + "version": "1.1.0+14.04.20140304-0ubuntu2~gcc5.1" + }, + { + "name": "qttranslations5-l10n", + "version": "5.5.1-2build1" + }, + { + "name": "readline-common", + "version": "6.3-8ubuntu2" + }, + { + "name": "remmina", + "version": "1.1.2-3ubuntu1" + }, + { + "name": "remmina-common", + "version": "1.1.2-3ubuntu1" + }, + { + "name": "remmina-plugin-rdp", + "version": "1.1.2-3ubuntu1" + }, + { + "name": "remmina-plugin-vnc", + "version": "1.1.2-3ubuntu1" + }, + { + "name": "rename", + "version": "0.20-4" + }, + { + "name": "requests", + "version": "2.9.1" + }, + { + "name": "resolvconf", + "version": "1.78ubuntu7" + }, + { + "name": "rfkill", + "version": "0.5-1ubuntu3.1" + }, + { + "name": "rhythmbox", + "version": "3.3-1ubuntu7" + }, + { + "name": "rhythmbox-data", + "version": "3.3-1ubuntu7" + }, + { + "name": "rhythmbox-plugin-zeitgeist", + "version": "3.3-1ubuntu7" + }, + { + "name": "rhythmbox-plugins", + "version": "3.3-1ubuntu7" + }, + { + "name": "rsync", + "version": "3.1.1-3ubuntu1.3" + }, + { + "name": "rsyslog", + "version": "8.16.0-1ubuntu3.1" + }, + { + "name": "rtkit", + "version": "0.11-4" + }, + { + "name": "samba-libs", + "version": "2:4.3.11+dfsg-0ubuntu0.16.04.28" + }, + { + "name": "sane-utils", + "version": "1.0.25+git20150528-1ubuntu2.16.04.1" + }, + { + "name": "sbsigntool", + "version": "0.6-0ubuntu10.1" + }, + { + "name": "seahorse", + "version": "3.18.0-2ubuntu1" + }, + { + "name": "secureboot-db", + "version": "1.4~ubuntu0.16.04.1" + }, + { + "name": "sed", + "version": "4.2.2-7" + }, + { + "name": "sensible-utils", + "version": "0.0.9ubuntu0.16.04.1" + }, + { + "name": "session-migration", + "version": "0.2.3" + }, + { + "name": "session-shortcuts", + "version": "1.2ubuntu0.16.04.1" + }, + { + "name": "sessioninstaller", + "version": "0.20+bzr150-0ubuntu4.1" + }, + { + "name": "sgml-base", + "version": "1.26+nmu4ubuntu1" + }, + { + "name": "shared-mime-info", + "version": "1.5-2ubuntu0.2" + }, + { + "name": "shotwell", + "version": "0.22.0+git20160108.r1.f2fb1f7-0ubuntu1.1" + }, + { + "name": "shotwell-common", + "version": "0.22.0+git20160108.r1.f2fb1f7-0ubuntu1.1" + }, + { + "name": "signon-keyring-extension", + "version": "0.6+14.10.20140513-0ubuntu2" + }, + { + "name": "signon-plugin-oauth2", + "version": "0.23+16.04.20151209-0ubuntu1" + }, + { + "name": "signon-plugin-password", + "version": "8.58+16.04.20151106-0ubuntu1" + }, + { + "name": "signon-ui", + "version": "0.17+16.04.20151125-0ubuntu1" + }, + { + "name": "signon-ui-service", + "version": "0.17+16.04.20151125-0ubuntu1" + }, + { + "name": "signon-ui-x11", + "version": "0.17+16.04.20151125-0ubuntu1" + }, + { + "name": "signond", + "version": "8.58+16.04.20151106-0ubuntu1" + }, + { + "name": "simple-scan", + "version": "3.20.0-0ubuntu1" + }, + { + "name": "six", + "version": "1.10.0" + }, + { + "name": "snapd", + "version": "2.45.1ubuntu0.2" + }, + { + "name": "sni-qt", + "version": "0.2.7+16.04.20170217.1-0ubuntu1" + }, + { + "name": "software-properties-common", + "version": "0.96.20.9" + }, + { + "name": "software-properties-gtk", + "version": "0.96.20.9" + }, + { + "name": "sound-theme-freedesktop", + "version": "0.8-1" + }, + { + "name": "speech-dispatcher", + "version": "0.8.3-1ubuntu3" + }, + { + "name": "speech-dispatcher-audio-plugins", + "version": "0.8.3-1ubuntu3" + }, + { + "name": "squashfs-tools", + "version": "1:4.3-3ubuntu2.16.04.3" + }, + { + "name": "ssl-cert", + "version": "1.0.37" + }, + { + "name": "strace", + "version": "4.11-1ubuntu3" + }, + { + "name": "sudo", + "version": "1.8.16-0ubuntu1.9" + }, + { + "name": "suru-icon-theme", + "version": "14.04+16.04.20180326-0ubuntu1" + }, + { + "name": "syslinux", + "version": "3:6.03+dfsg-11ubuntu1" + }, + { + "name": "syslinux-common", + "version": "3:6.03+dfsg-11ubuntu1" + }, + { + "name": "syslinux-legacy", + "version": "2:3.63+dfsg-2ubuntu8" + }, + { + "name": "system-config-printer-common", + "version": "1.5.7+20160212-0ubuntu2" + }, + { + "name": "system-config-printer-gnome", + "version": "1.5.7+20160212-0ubuntu2" + }, + { + "name": "system-config-printer-udev", + "version": "1.5.7+20160212-0ubuntu2" + }, + { + "name": "systemd", + "version": "229-4ubuntu21.28" + }, + { + "name": "systemd-sysv", + "version": "229-4ubuntu21.28" + }, + { + "name": "sysv-rc", + "version": "2.88dsf-59.3ubuntu2" + }, + { + "name": "sysvinit-utils", + "version": "2.88dsf-59.3ubuntu2" + }, + { + "name": "t1utils", + "version": "1.39-2" + }, + { + "name": "tar", + "version": "1.28-2.1ubuntu0.1" + }, + { + "name": "tcl", + "version": "8.6.0+9" + }, + { + "name": "tcl8.6", + "version": "8.6.5+dfsg-2" + }, + { + "name": "tcpd", + "version": "7.6.q-25" + }, + { + "name": "tcpdump", + "version": "4.9.3-0ubuntu0.16.04.1" + }, + { + "name": "telnet", + "version": "0.17-40" + }, + { + "name": "thermald", + "version": "1.5-2ubuntu4" + }, + { + "name": "thunderbird", + "version": "1:68.10.0+build1-0ubuntu0.16.04.1" + }, + { + "name": "thunderbird-gnome-support", + "version": "1:68.10.0+build1-0ubuntu0.16.04.1" + }, + { + "name": "thunderbird-locale-en", + "version": "1:68.10.0+build1-0ubuntu0.16.04.1" + }, + { + "name": "thunderbird-locale-en-us", + "version": "1:68.10.0+build1-0ubuntu0.16.04.1" + }, + { + "name": "time", + "version": "1.7-25.1" + }, + { + "name": "tk", + "version": "8.6.0+9" + }, + { + "name": "tk8.6", + "version": "8.6.5-1" + }, + { + "name": "toshset", + "version": "1.76-4" + }, + { + "name": "totem", + "version": "3.18.1-1ubuntu4" + }, + { + "name": "totem-common", + "version": "3.18.1-1ubuntu4" + }, + { + "name": "totem-plugins", + "version": "3.18.1-1ubuntu4" + }, + { + "name": "transmission-common", + "version": "2.84-3ubuntu3.1" + }, + { + "name": "transmission-gtk", + "version": "2.84-3ubuntu3.1" + }, + { + "name": "ttf-ancient-fonts-symbola", + "version": "2.59-1" + }, + { + "name": "ttf-ubuntu-font-family", + "version": "1:0.83-0ubuntu2" + }, + { + "name": "tzdata", + "version": "2020a-0ubuntu0.16.04" + }, + { + "name": "ubuntu-advantage-tools", + "version": "10ubuntu0.16.04.1" + }, + { + "name": "ubuntu-artwork", + "version": "1:14.04+16.04.20180326-0ubuntu1" + }, + { + "name": "ubuntu-core-launcher", + "version": "2.45.1ubuntu0.2" + }, + { + "name": "ubuntu-desktop", + "version": "1.361.4" + }, + { + "name": "ubuntu-docs", + "version": "16.04.4" + }, + { + "name": "ubuntu-drivers-common", + "version": "1:0.4.17.7" + }, + { + "name": "ubuntu-keyring", + "version": "2012.05.19.1" + }, + { + "name": "ubuntu-minimal", + "version": "1.361.4" + }, + { + "name": "ubuntu-mobile-icons", + "version": "14.04+16.04.20180326-0ubuntu1" + }, + { + "name": "ubuntu-mono", + "version": "14.04+16.04.20180326-0ubuntu1" + }, + { + "name": "ubuntu-release-upgrader-core", + "version": "1:16.04.30" + }, + { + "name": "ubuntu-release-upgrader-gtk", + "version": "1:16.04.30" + }, + { + "name": "ubuntu-session", + "version": "3.18.1.2-1ubuntu1.16.04.2" + }, + { + "name": "ubuntu-settings", + "version": "15.10.8" + }, + { + "name": "ubuntu-software", + "version": "3.20.5-0ubuntu0.16.04.13" + }, + { + "name": "ubuntu-standard", + "version": "1.361.4" + }, + { + "name": "ubuntu-system-service", + "version": "0.3" + }, + { + "name": "ubuntu-touch-sounds", + "version": "15.08" + }, + { + "name": "ubuntu-ui-toolkit-theme", + "version": "1.3.1918+16.04.20160404-0ubuntu1" + }, + { + "name": "ubuntu-wallpapers", + "version": "16.04.1-0ubuntu1" + }, + { + "name": "ubuntu-wallpapers-xenial", + "version": "16.04.1-0ubuntu1" + }, + { + "name": "ucf", + "version": "3.0036" + }, + { + "name": "udev", + "version": "229-4ubuntu21.28" + }, + { + "name": "udisks2", + "version": "2.1.7-1ubuntu1" + }, + { + "name": "ufw", + "version": "0.35-0ubuntu2" + }, + { + "name": "unattended-upgrades", + "version": "1.1ubuntu1.18.04.7~16.04.6" + }, + { + "name": "unity", + "version": "7.4.5+16.04.20190312-0ubuntu1" + }, + { + "name": "unity-accessibility-profiles", + "version": "0.1.10-0ubuntu3" + }, + { + "name": "unity-asset-pool", + "version": "0.8.24+15.04.20141217-0ubuntu2" + }, + { + "name": "unity-control-center", + "version": "15.04.0+16.04.20171130-0ubuntu1" + }, + { + "name": "unity-control-center-faces", + "version": "15.04.0+16.04.20171130-0ubuntu1" + }, + { + "name": "unity-control-center-signon", + "version": "0.1.8+16.04.20160201-0ubuntu1" + }, + { + "name": "unity-greeter", + "version": "16.04.2-0ubuntu1" + }, + { + "name": "unity-gtk-module-common", + "version": "0.0.0+15.04.20150118-0ubuntu2" + }, + { + "name": "unity-gtk2-module", + "version": "0.0.0+15.04.20150118-0ubuntu2" + }, + { + "name": "unity-gtk3-module", + "version": "0.0.0+15.04.20150118-0ubuntu2" + }, + { + "name": "unity-lens-applications", + "version": "7.1.0+16.04.20160701-0ubuntu1" + }, + { + "name": "unity-lens-files", + "version": "7.1.0+16.04.20151217-0ubuntu1" + }, + { + "name": "unity-lens-music", + "version": "6.9.1+16.04-0ubuntu1" + }, + { + "name": "unity-lens-photos", + "version": "1.0+14.04.20140318-0ubuntu1" + }, + { + "name": "unity-lens-video", + "version": "0.3.15+16.04.20160212.1-0ubuntu1" + }, + { + "name": "unity-schemas", + "version": "7.4.5+16.04.20190312-0ubuntu1" + }, + { + "name": "unity-scope-calculator", + "version": "0.1+14.04.20140328-0ubuntu1" + }, + { + "name": "unity-scope-chromiumbookmarks", + "version": "0.1+13.10.20130723-0ubuntu1" + }, + { + "name": "unity-scope-colourlovers", + "version": "0.1+13.10.20130723-0ubuntu1" + }, + { + "name": "unity-scope-devhelp", + "version": "0.1+14.04.20140328-0ubuntu1" + }, + { + "name": "unity-scope-firefoxbookmarks", + "version": "0.1+13.10.20130809.1-0ubuntu1" + }, + { + "name": "unity-scope-gdrive", + "version": "0.9+16.04.20151125-0ubuntu1" + }, + { + "name": "unity-scope-home", + "version": "6.8.2+16.04.20160212.1-0ubuntu1" + }, + { + "name": "unity-scope-manpages", + "version": "3.0+14.04.20140324-0ubuntu1" + }, + { + "name": "unity-scope-openclipart", + "version": "0.1+13.10.20130723-0ubuntu1" + }, + { + "name": "unity-scope-texdoc", + "version": "0.1+14.04.20140328-0ubuntu1" + }, + { + "name": "unity-scope-tomboy", + "version": "0.1+13.10.20130723-0ubuntu1" + }, + { + "name": "unity-scope-video-remote", + "version": "0.3.15+16.04.20160212.1-0ubuntu1" + }, + { + "name": "unity-scope-virtualbox", + "version": "0.1+13.10.20130723-0ubuntu1" + }, + { + "name": "unity-scope-yelp", + "version": "0.1+13.10.20130723-0ubuntu1" + }, + { + "name": "unity-scope-zotero", + "version": "0.1+13.10.20130723-0ubuntu1" + }, + { + "name": "unity-scopes-master-default", + "version": "6.8.2+16.04.20160212.1-0ubuntu1" + }, + { + "name": "unity-scopes-runner", + "version": "7.1.4+16.04.20180209.1-0ubuntu1" + }, + { + "name": "unity-services", + "version": "7.4.5+16.04.20190312-0ubuntu1" + }, + { + "name": "unity-settings-daemon", + "version": "15.04.1+16.04.20160701-0ubuntu3" + }, + { + "name": "unity-webapps-common", + "version": "2.4.17+15.10.20150616-0ubuntu2" + }, + { + "name": "unity-webapps-qml", + "version": "0.1+16.04.20160114-0ubuntu1" + }, + { + "name": "unity-webapps-service", + "version": "2.5.0~+16.04.20160201-0ubuntu1" + }, + { + "name": "uno-libs3", + "version": "5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "unzip", + "version": "6.0-20ubuntu1" + }, + { + "name": "update-inetd", + "version": "4.43" + }, + { + "name": "update-manager", + "version": "1:16.04.17" + }, + { + "name": "update-manager-core", + "version": "1:16.04.17" + }, + { + "name": "update-notifier", + "version": "3.168.10" + }, + { + "name": "update-notifier-common", + "version": "3.168.10" + }, + { + "name": "upower", + "version": "0.99.4-2ubuntu0.3" + }, + { + "name": "upstart", + "version": "1.13.2-0ubuntu21.1" + }, + { + "name": "ure", + "version": "5.1.6~rc2-0ubuntu1~xenial10" + }, + { + "name": "ureadahead", + "version": "0.100.0-19.1" + }, + { + "name": "urllib3", + "version": "1.13.1" + }, + { + "name": "usb-creator-common", + "version": "0.3.2ubuntu16.04.2" + }, + { + "name": "usb-creator-gtk", + "version": "0.3.2ubuntu16.04.2" + }, + { + "name": "usb-modeswitch", + "version": "2.2.5+repack0-1ubuntu1" + }, + { + "name": "usb-modeswitch-data", + "version": "20151101-1" + }, + { + "name": "usbmuxd", + "version": "1.1.0-2" + }, + { + "name": "usbutils", + "version": "1:007-4" + }, + { + "name": "util-linux", + "version": "2.27.1-6ubuntu3.10" + }, + { + "name": "uuid-runtime", + "version": "2.27.1-6ubuntu3.10" + }, + { + "name": "vbetool", + "version": "1.1-3" + }, + { + "name": "vim-common", + "version": "2:7.4.1689-3ubuntu1.4" + }, + { + "name": "vim-tiny", + "version": "2:7.4.1689-3ubuntu1.4" + }, + { + "name": "vino", + "version": "3.8.1-0ubuntu9.2" + }, + { + "name": "wamerican", + "version": "7.1-1" + }, + { + "name": "wbritish", + "version": "7.1-1" + }, + { + "name": "webapp-container", + "version": "0.23+16.04.20161028-0ubuntu2" + }, + { + "name": "webbrowser-app", + "version": "0.23+16.04.20161028-0ubuntu2" + }, + { + "name": "wget", + "version": "1.17.1-1ubuntu1.5" + }, + { + "name": "whiptail", + "version": "0.52.18-1ubuntu2" + }, + { + "name": "whoopsie", + "version": "0.2.52.5ubuntu0.5" + }, + { + "name": "whoopsie-preferences", + "version": "0.18" + }, + { + "name": "wireless-regdb", + "version": "2018.05.09-0ubuntu1~16.04.1" + }, + { + "name": "wireless-tools", + "version": "30~pre9-8ubuntu1" + }, + { + "name": "wpasupplicant", + "version": "2.4-0ubuntu6.6" + }, + { + "name": "x11-apps", + "version": "7.7+5+nmu1ubuntu1" + }, + { + "name": "x11-common", + "version": "1:7.7+13ubuntu3.1" + }, + { + "name": "x11-session-utils", + "version": "7.7+2" + }, + { + "name": "x11-utils", + "version": "7.7+3" + }, + { + "name": "x11-xkb-utils", + "version": "7.7+2" + }, + { + "name": "x11-xserver-utils", + "version": "7.7+7" + }, + { + "name": "xauth", + "version": "1:1.0.9-1ubuntu2" + }, + { + "name": "xbrlapi", + "version": "5.3.1-2ubuntu2.1" + }, + { + "name": "xdg-desktop-portal", + "version": "1.0.3-0ubuntu0.0" + }, + { + "name": "xdg-desktop-portal-gtk", + "version": "1.0.2-0ubuntu0.0" + }, + { + "name": "xdg-user-dirs", + "version": "0.15-2ubuntu6.16.04.1" + }, + { + "name": "xdg-user-dirs-gtk", + "version": "0.10-1ubuntu1" + }, + { + "name": "xdg-utils", + "version": "1.1.1-1ubuntu1.16.04.3" + }, + { + "name": "xdiagnose", + "version": "3.8.4.1" + }, + { + "name": "xfonts-utils", + "version": "1:7.7+3ubuntu0.16.04.2" + }, + { + "name": "xinit", + "version": "1.3.4-3ubuntu0.1" + }, + { + "name": "xinput", + "version": "1.6.2-1" + }, + { + "name": "xkb-data", + "version": "2.16-1ubuntu1" + }, + { + "name": "xml-core", + "version": "0.13+nmu2" + }, + { + "name": "xorg", + "version": "1:7.7+13ubuntu3.1" + }, + { + "name": "xorg-docs-core", + "version": "1:1.7.1-1ubuntu1" + }, + { + "name": "xserver-common", + "version": "2:1.18.4-0ubuntu0.8" + }, + { + "name": "xserver-xorg-core-hwe-16.04", + "version": "2:1.19.6-1ubuntu4.1~16.04.2" + }, + { + "name": "xserver-xorg-hwe-16.04", + "version": "1:7.7+16ubuntu3~16.04.1" + }, + { + "name": "xserver-xorg-input-all-hwe-16.04", + "version": "1:7.7+16ubuntu3~16.04.1" + }, + { + "name": "xserver-xorg-input-evdev-hwe-16.04", + "version": "1:2.10.5-1ubuntu1~16.04.1" + }, + { + "name": "xserver-xorg-input-synaptics-hwe-16.04", + "version": "1.9.0-1ubuntu1~16.04.1" + }, + { + "name": "xserver-xorg-input-wacom-hwe-16.04", + "version": "1:0.34.0-0ubuntu2~16.04.1" + }, + { + "name": "xserver-xorg-legacy-hwe-16.04", + "version": "2:1.19.6-1ubuntu4.1~16.04.2" + }, + { + "name": "xserver-xorg-video-all-hwe-16.04", + "version": "1:7.7+16ubuntu3~16.04.1" + }, + { + "name": "xserver-xorg-video-amdgpu-hwe-16.04", + "version": "18.0.1-1~16.04.1" + }, + { + "name": "xserver-xorg-video-ati-hwe-16.04", + "version": "1:18.0.1-1~16.04.1" + }, + { + "name": "xserver-xorg-video-fbdev-hwe-16.04", + "version": "1:0.4.4-1build6~16.04.1" + }, + { + "name": "xserver-xorg-video-intel-hwe-16.04", + "version": "2:2.99.917+git20171229-1~16.04.1" + }, + { + "name": "xserver-xorg-video-nouveau-hwe-16.04", + "version": "1:1.0.15-2~16.04.1" + }, + { + "name": "xserver-xorg-video-qxl-hwe-16.04", + "version": "0.1.5-2build1~16.04.1" + }, + { + "name": "xserver-xorg-video-radeon-hwe-16.04", + "version": "1:18.0.1-1~16.04.1" + }, + { + "name": "xserver-xorg-video-vesa-hwe-16.04", + "version": "1:2.3.4-1build3~16.04.1" + }, + { + "name": "xserver-xorg-video-vmware-hwe-16.04", + "version": "1:13.2.1-1build1~16.04.1" + }, + { + "name": "xterm", + "version": "322-1ubuntu1" + }, + { + "name": "xul-ext-ubufox", + "version": "3.4-0ubuntu0.16.04.2" + }, + { + "name": "xz-utils", + "version": "5.1.1alpha+20120614-2ubuntu2" + }, + { + "name": "yelp", + "version": "3.18.1-1ubuntu4" + }, + { + "name": "yelp-xsl", + "version": "3.18.1-1" + }, + { + "name": "zeitgeist-core", + "version": "0.9.16-0ubuntu4" + }, + { + "name": "zeitgeist-datahub", + "version": "0.9.16-0ubuntu4" + }, + { + "name": "zenity", + "version": "3.18.1.1-1ubuntu2" + }, + { + "name": "zenity-common", + "version": "3.18.1.1-1ubuntu2" + }, + { + "name": "zip", + "version": "3.0-11" + }, + { + "name": "zlib1g", + "version": "1:1.2.8.dfsg-2ubuntu4.3" + } +] \ No newline at end of file diff --git a/cmd/osquery-perf/ubuntu_18.04.tmpl b/cmd/osquery-perf/ubuntu_18.04.tmpl new file mode 100644 index 0000000000..7c9c2b58ba --- /dev/null +++ b/cmd/osquery-perf/ubuntu_18.04.tmpl @@ -0,0 +1,364 @@ +{{ define "enroll" -}} +{ + "enroll_secret": "{{ .EnrollSecret }}", + "host_details": { + "os_version": { + "build": "", + "major": "", + "minor": "", + "name": "", + "patch": "", + "platform": "ubuntu", + "platform_like": "ubuntu", + "version": "Ubuntu 18.4.0" + }, + "osquery_info": { + "build_distro": "18.04", + "build_platform": "linux", + "config_hash": "", + "config_valid": "0", + "extensions": "inactive", + "instance_id": "{{ .UUID }}", + "pid": "12947", + "platform_mask": "21", + "start_time": "1580931224", + "uuid": "{{ .UUID }}", + "version": "4.6.0", + "watcher": "12946" + }, + "platform_info": { + "address": "0xff990000", + "date": "12/16/2019 ", + "extra": "MBP114; 196.0.0.0.0; root@xapp160; Mon Dec 16 15:55:18 PST 2019; 196 (B&I); F000_B00; Official Build, Release; Apple LLVM version 5.0 (clang-500.0.68) (based on LLVM 3.3svn)", + "revision": "196 (B&I)", + "size": "8388608", + "vendor": "Apple Inc. ", + "version": "196.0.0.0.0 ", + "volume_size": "1507328" + }, + "system_info": { + "computer_name": "{{ .CachedString "hostname" }}", + "cpu_brand": "Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "cpu_logical_cores": "8", + "cpu_physical_cores": "4", + "cpu_subtype": "Intel x86-64h Haswell", + "cpu_type": "x86_64h", + "hardware_model": "MacBookPro11,4", + "hardware_serial": "D02R835DG8WK", + "hardware_vendor": "Apple Inc.", + "hardware_version": "1.0", + "hostname": "{{ .CachedString "hostname" }}", + "local_hostname": "{{ .CachedString "hostname" }}", + "physical_memory": "17179869184", + "uuid": "{{ .UUID }}" + } + }, + "host_identifier": "{{ .CachedString "hostname" }}", + "platform_type": "16" +} +{{- end }} + +{{ define "fleet_detail_query_network_interface" -}} +[ + { + "point_to_point":"", + "address":"fe80::8cb:112d:ff51:1e5d%en0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"en0", + "mac":"f8:2d:88:93:56:5c", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"", + "address":"192.168.1.3", + "mask":"255.255.255.0", + "broadcast":"192.168.1.255", + "interface":"en0", + "mac":"f5:5a:80:92:52:5b", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"127.0.0.1", + "address":"127.0.0.1", + "mask":"255.0.0.0", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"::1", + "address":"::1", + "mask":"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::1%lo0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::3a:84ff:fe6b:bf75%awdl0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"awdl0", + "mac":"03:3b:94:5b:be:75", + "type":"6", + "mtu":"1484", + "metric":"0", + "ipackets":"0", + "opackets":"16", + "ibytes":"0", + "obytes":"3072", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582842892" + }, + { + "point_to_point":"", + "address":"fe80::6eaf:9721:3476:b691%utun0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"utun0", + "mac":"00:00:00:00:00:00", + "type":"1", + "mtu":"2000", + "metric":"0", + "ipackets":"0", + "opackets":"2", + "ibytes":"0", + "obytes":"0", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840897" + } +] +{{- end }} +{{ define "fleet_detail_query_os_version" -}} +[ + { + "name":"Ubuntu 18.4.0", + "version":"Ubuntu 18.4.0", + "major":"", + "minor":"", + "patch":"", + "build":"", + "platform":"ubuntu", + "platform_like":"ubuntu", + "codename":"" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_flags" -}} +[ + { + "name":"config_refresh", + "value":"{{ printf "%.0f" .ConfigInterval.Seconds }}" + }, + { + "name":"distributed_interval", + "value":"{{ printf "%.0f" .QueryInterval.Seconds }}" + }, + { + "name":"logger_tls_period", + "value":"99999" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_info" -}} +[ + { + "pid":"11287", + "uuid":"{{ .UUID }}", + "instance_id":"{{ .UUID }}", + "version":"4.1.2", + "config_hash":"b01efbf375ac6767f259ae98751154fef727ce35", + "config_valid":"1", + "extensions":"inactive", + "build_platform":"ubuntu", + "build_distro":"Ubuntu 18.4.0", + "start_time":"1582857555", + "watcher":"11286", + "platform_mask":"21" + } +] +{{- end }} +{{ define "fleet_detail_query_system_info" -}} +[ + { + "hostname":"{{ .CachedString "hostname" }}", + "uuid":"4740D59F-699E-5B29-960B-979AAF9BBEEB", + "cpu_type":"x86_64h", + "cpu_subtype":"Intel x86-64h Haswell", + "cpu_brand":"Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz", + "cpu_physical_cores":"4", + "cpu_logical_cores":"8", + "cpu_microcode":"", + "physical_memory":"17179869184", + "hardware_vendor":"Apple Inc.", + "hardware_model":"MacBookPro11,4", + "hardware_version":"1.0", + "hardware_serial":"C02R262BM8LN", + "computer_name":"{{ .CachedString "hostname" }}", + "local_hostname":"{{ .CachedString "hostname" }}" + } +] +{{- end }} +{{ define "fleet_detail_query_uptime" -}} +[ + { + "days":"0", + "hours":"4", + "minutes":"38", + "seconds":"11", + "total_seconds":"16691" + } +] +{{- end }} + +{{ define "fleet_detail_query_users" -}} +[ + {{ range $index, $item := .HostUsersMacOS }} + {{if $index}},{{end}} + { + "uid": "{{ .Uid }}", + "username": "{{ .Username }}", + "type": "{{ .Type }}", + "groupname": "{{ .GroupName }}", + "shell": "{{ .Shell }}" + } + {{- end }} +] +{{- end }} + +{{/* all hosts */}} +{{ define "fleet_label_query_6" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All macOS hosts */}} +{{ define "fleet_label_query_7" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All Ubuntu hosts */}} +{{ define "fleet_label_query_8" -}} +[] +{{- end }} + +{{/* All CentOS hosts */}} +{{ define "fleet_label_query_9" -}} +[] +{{- end }} + +{{/* All Windows hosts */}} +{{ define "fleet_label_query_10" -}} +[] +{{- end }} + +{{/* All Red Hat hosts */}} +{{ define "fleet_label_query_11" -}} +[] +{{- end }} + +{{/* All Linux distributions */}} +{{ define "fleet_label_query_12" -}} +[] +{{- end }} + +{{ define "fleet_detail_query_software_linux" -}} +[ + {{ range $index, $item := .SoftwareUbuntu1804 }} + {{if $index}},{{end}} + { + "name": "{{ .Name }}", + "version": "{{ .Version }}", + "type": "Application", + "bundle_identifier": "{{ .BundleIdentifier }}", + "source": "apps", + {{/* Note that in Go < 1.18, `{{ or (and .LastOpendedAt .LastOpenedAt.Unix) "" }}` won't work as expected because "and" and "or" don't short circuit. This was changed in Go 1.18 */}} + {{if .LastOpenedAt}} + "last_opened_at": "{{ .LastOpenedAt.Unix }}" + {{else}} + "last_opened_at": "-1" + {{end}} + } + {{- end }} +] +{{- end }} diff --git a/cmd/osquery-perf/ubuntu_1804-vulnerable_software.json b/cmd/osquery-perf/ubuntu_1804-vulnerable_software.json new file mode 100644 index 0000000000..9fb030d3c5 --- /dev/null +++ b/cmd/osquery-perf/ubuntu_1804-vulnerable_software.json @@ -0,0 +1,6214 @@ +[ + { + "name": "defer", + "version": "1.0.6" + }, + { + "name": "dmz-cursor-theme", + "version": "0.4.5ubuntu1" + }, + { + "name": "grub-gfxpayload-lists", + "version": "0.7" + }, + { + "name": "hicolor-icon-theme", + "version": "0.17-2" + }, + { + "name": "language-selector", + "version": "0.1" + }, + { + "name": "laptop-detect", + "version": "0.16" + }, + { + "name": "libnet-smtp-ssl-perl", + "version": "1.04-1" + }, + { + "name": "libxml-xpathengine-perl", + "version": "0.14-1" + }, + { + "name": "pymacaroons", + "version": "0.13.0" + }, + { + "name": "sound-theme-freedesktop", + "version": "0.8-2ubuntu1" + }, + { + "name": "ubuntu-drivers-common", + "version": "0.0.0" + }, + { + "name": "unattended-upgrades", + "version": "0.1" + }, + { + "name": "osquery", + "version": "5.2.3-1.linux" + }, + { + "name": "humanity-icon-theme", + "version": "0.6.15" + }, + { + "name": "libjbig0", + "version": "2.1-3.1build1" + }, + { + "name": "libjpeg8", + "version": "8c-2ubuntu8" + }, + { + "name": "libtry-tiny-perl", + "version": "0.30-1" + }, + { + "name": "libxpm4", + "version": "1:3.5.12-1" + }, + { + "name": "libxv1", + "version": "2:1.0.11-1" + }, + { + "name": "ubuntu-advantage-tools", + "version": "27.2" + }, + { + "name": "Amazon.com", + "version": "1.3" + }, + { + "name": "Bing", + "version": "1.3" + }, + { + "name": "DoH Roll-Out", + "version": "2.0.0" + }, + { + "name": "DuckDuckGo", + "version": "1.1" + }, + { + "name": "Google", + "version": "1.1" + }, + { + "name": "Proxy Failover", + "version": "1.0.1" + }, + { + "name": "Wikipedia (en)", + "version": "1.1" + }, + { + "name": "apg", + "version": "2.2.3.dfsg.1-5" + }, + { + "name": "gnome-accessibility-themes", + "version": "3.28-1ubuntu1" + }, + { + "name": "gnome-themes-extra", + "version": "3.28-1ubuntu1" + }, + { + "name": "gnome-themes-extra-data", + "version": "3.28-1ubuntu1" + }, + { + "name": "gsettings-ubuntu-schemas", + "version": "0.0.7+17.10.20170922-0ubuntu1" + }, + { + "name": "iucode-tool", + "version": "2.3.1-1" + }, + { + "name": "libao-common", + "version": "1.2.2+20180113-1ubuntu1" + }, + { + "name": "libao4", + "version": "1.2.2+20180113-1ubuntu1" + }, + { + "name": "libasyncns0", + "version": "0.8-6" + }, + { + "name": "libdotconf0", + "version": "1.3-0.3fakesync1" + }, + { + "name": "libxcb-image0", + "version": "0.4.0-1build1" + }, + { + "name": "nautilus-share", + "version": "0.7.3-2ubuntu3" + }, + { + "name": "printer-driver-pxljr", + "version": "1.4+repack0-5" + }, + { + "name": "xfonts-utils", + "version": "1:7.7+6" + }, + { + "name": "xul-ext-ubufox", + "version": "3.4-0ubuntu1.17.10.1" + }, + { + "name": "Dark", + "version": "1.2" + }, + { + "name": "Firefox Alpenglow", + "version": "1.4" + }, + { + "name": "Firefox Screenshots", + "version": "39.0.1" + }, + { + "name": "Form Autofill", + "version": "1.0.1" + }, + { + "name": "Light", + "version": "1.2" + }, + { + "name": "Picture-In-Picture", + "version": "1.0.0" + }, + { + "name": "SecretStorage", + "version": "2.3.1" + }, + { + "name": "WebCompat Reporter", + "version": "1.4.2" + }, + { + "name": "alsa-base", + "version": "1.0.25+dfsg-0ubuntu5" + }, + { + "name": "chardet", + "version": "3.0.4" + }, + { + "name": "crda", + "version": "3.18-1build1" + }, + { + "name": "fonts-beng", + "version": "2:1.2" + }, + { + "name": "fonts-dejavu-core", + "version": "2.37-1" + }, + { + "name": "fonts-deva", + "version": "2:1.2" + }, + { + "name": "fonts-droid-fallback", + "version": "1:6.0.1r16-1.1" + }, + { + "name": "fonts-gargi", + "version": "2.0-4" + }, + { + "name": "fonts-gubbi", + "version": "1.3-3" + }, + { + "name": "fonts-guru", + "version": "2:1.2" + }, + { + "name": "fonts-kacst", + "version": "2.01+mry-14" + }, + { + "name": "fonts-khmeros-core", + "version": "5.0-7ubuntu1" + }, + { + "name": "fonts-knda", + "version": "2:1.2" + }, + { + "name": "fonts-lao", + "version": "0.0.20060226-9ubuntu1" + }, + { + "name": "fonts-lklug-sinhala", + "version": "0.6-3" + }, + { + "name": "fonts-lohit-beng-assamese", + "version": "2.91.5-1" + }, + { + "name": "fonts-lohit-beng-bengali", + "version": "2.91.5-1" + }, + { + "name": "fonts-lohit-guru", + "version": "2.91.2-1" + }, + { + "name": "fonts-lohit-mlym", + "version": "2.92.2-1" + }, + { + "name": "fonts-lohit-orya", + "version": "2.91.2-1" + }, + { + "name": "fonts-lohit-taml", + "version": "2.91.3-1" + }, + { + "name": "fonts-lohit-taml-classical", + "version": "2.5.4-1" + }, + { + "name": "fonts-lohit-telu", + "version": "2.5.5-1" + }, + { + "name": "fonts-mlym", + "version": "2:1.2" + }, + { + "name": "fonts-nakula", + "version": "1.0-3" + }, + { + "name": "fonts-navilu", + "version": "1.2-2" + }, + { + "name": "fonts-orya", + "version": "2:1.2" + }, + { + "name": "fonts-pagul", + "version": "1.0-7" + }, + { + "name": "fonts-sahadeva", + "version": "1.0-4" + }, + { + "name": "fonts-samyak-deva", + "version": "1.2.2-4" + }, + { + "name": "fonts-samyak-gujr", + "version": "1.2.2-4" + }, + { + "name": "fonts-samyak-mlym", + "version": "1.2.2-4" + }, + { + "name": "fonts-samyak-taml", + "version": "1.2.2-4" + }, + { + "name": "fonts-sarai", + "version": "1.0-2" + }, + { + "name": "fonts-taml", + "version": "2:1.3" + }, + { + "name": "fonts-telu", + "version": "2:1.2" + }, + { + "name": "fonts-telu-extra", + "version": "2.0-4" + }, + { + "name": "fonts-tibetan-machine", + "version": "1.901b-5" + }, + { + "name": "kerneloops", + "version": "0.12+git20140509-6ubuntu2" + }, + { + "name": "lazr.uri", + "version": "1.0.3" + }, + { + "name": "libauthen-sasl-perl", + "version": "2.1600-1" + }, + { + "name": "libcdparanoia0", + "version": "3.10.2+debian-13" + }, + { + "name": "libdata-dump-perl", + "version": "1.23-1" + }, + { + "name": "libencode-locale-perl", + "version": "1.05-1" + }, + { + "name": "libestr0", + "version": "0.1.10-2.1" + }, + { + "name": "libfastjson4", + "version": "0.99.8-2" + }, + { + "name": "libfile-desktopentry-perl", + "version": "0.22-1" + }, + { + "name": "libfile-listing-perl", + "version": "6.04-1" + }, + { + "name": "libfont-afm-perl", + "version": "1.20-2" + }, + { + "name": "libgpm2", + "version": "1.20.7-5" + }, + { + "name": "libhtml-format-perl", + "version": "2.12-1" + }, + { + "name": "libio-html-perl", + "version": "1.001-1" + }, + { + "name": "libksba8", + "version": "1.3.5-2" + }, + { + "name": "libmnl0", + "version": "1.0.4-2" + }, + { + "name": "libmpc3", + "version": "1.1.0-1" + }, + { + "name": "libraw1394-11", + "version": "2.1.2-1" + }, + { + "name": "libtie-ixhash-perl", + "version": "1.23-2" + }, + { + "name": "libx11-protocol-perl", + "version": "0.56-7" + }, + { + "name": "libxaw7", + "version": "2:1.0.13-1" + }, + { + "name": "libxcb-util1", + "version": "0.4.0-0ubuntu3" + }, + { + "name": "libxfont2", + "version": "1:2.0.3-1" + }, + { + "name": "libxrender1", + "version": "1:0.9.10-1" + }, + { + "name": "libxshmfence1", + "version": "1.3-1" + }, + { + "name": "libxt6", + "version": "1:1.1.5-1" + }, + { + "name": "libxtst6", + "version": "2:1.2.3-1" + }, + { + "name": "linux-sound-base", + "version": "1.0.25+dfsg-0ubuntu5" + }, + { + "name": "netifaces", + "version": "0.10.4" + }, + { + "name": "printer-driver-pnm2ppa", + "version": "1.13+nondbs-0ubuntu6" + }, + { + "name": "printer-driver-ptouch", + "version": "1.4.2-3" + }, + { + "name": "ssl-cert", + "version": "1.0.39" + }, + { + "name": "time", + "version": "1.7-25.1build1" + }, + { + "name": "xbitmaps", + "version": "1.1.1-2" + }, + { + "name": "xfonts-scalable", + "version": "1:1.0.3-1.1" + }, + { + "name": "xorg-docs-core", + "version": "1:1.7.1-1.1" + }, + { + "name": "zip", + "version": "3.0-11build1" + }, + { + "name": "Add-ons Search Detection", + "version": "1.0.1" + }, + { + "name": "English (CA) Language Pack", + "version": "92.0buildid20210903235534" + }, + { + "name": "English (GB) Language Pack", + "version": "92.0buildid20210903235534" + }, + { + "name": "Mako", + "version": "1.0.7" + }, + { + "name": "MarkupSafe", + "version": "1.0" + }, + { + "name": "Pillow", + "version": "5.1.0" + }, + { + "name": "PyNaCl", + "version": "1.1.2" + }, + { + "name": "System theme", + "version": "1.2" + }, + { + "name": "Web Compatibility Interventions", + "version": "25.4.0" + }, + { + "name": "accountsservice", + "version": "0.6.45-1ubuntu1.3" + }, + { + "name": "acl", + "version": "2.2.52-3build1" + }, + { + "name": "acpi-support", + "version": "0.142" + }, + { + "name": "acpid", + "version": "1:2.0.28-1ubuntu1" + }, + { + "name": "adduser", + "version": "3.116ubuntu1" + }, + { + "name": "adium-theme-ubuntu", + "version": "0.3.4-0ubuntu4" + }, + { + "name": "adwaita-icon-theme", + "version": "3.28.0-1ubuntu1" + }, + { + "name": "alsa-utils", + "version": "1.1.3-1ubuntu1" + }, + { + "name": "amd64-microcode", + "version": "3.20191021.1+really3.20181128.1~ubuntu0.18.04.1" + }, + { + "name": "anacron", + "version": "2.3-24" + }, + { + "name": "app-install-data-partner", + "version": "16.04" + }, + { + "name": "apparmor", + "version": "2.12-4ubuntu5.1" + }, + { + "name": "apport", + "version": "2.20.9-0ubuntu7.26" + }, + { + "name": "apport-gtk", + "version": "2.20.9-0ubuntu7.26" + }, + { + "name": "apport-symptoms", + "version": "0.20" + }, + { + "name": "appstream", + "version": "0.12.0-3ubuntu1" + }, + { + "name": "apt", + "version": "1.6.14" + }, + { + "name": "apt-config-icons", + "version": "0.12.0-3ubuntu1" + }, + { + "name": "apt-utils", + "version": "1.6.14" + }, + { + "name": "aptdaemon", + "version": "1.1.1+bzr982-0ubuntu19.5" + }, + { + "name": "aptdaemon-data", + "version": "1.1.1+bzr982-0ubuntu19.5" + }, + { + "name": "apturl", + "version": "0.5.2ubuntu14.2" + }, + { + "name": "apturl-common", + "version": "0.5.2ubuntu14.2" + }, + { + "name": "asn1crypto", + "version": "0.24.0" + }, + { + "name": "aspell", + "version": "0.60.7~20110707-4ubuntu0.2" + }, + { + "name": "aspell-en", + "version": "2017.08.24-0-0.1" + }, + { + "name": "at-spi2-core", + "version": "2.28.0-1" + }, + { + "name": "avahi-autoipd", + "version": "0.7-3.1ubuntu1.3" + }, + { + "name": "avahi-daemon", + "version": "0.7-3.1ubuntu1.3" + }, + { + "name": "avahi-utils", + "version": "0.7-3.1ubuntu1.3" + }, + { + "name": "base-files", + "version": "10.1ubuntu2.11" + }, + { + "name": "base-passwd", + "version": "3.5.44" + }, + { + "name": "bash", + "version": "4.4.18-2ubuntu1.2" + }, + { + "name": "bash-completion", + "version": "1:2.8-1ubuntu1" + }, + { + "name": "bc", + "version": "1.07.1-2" + }, + { + "name": "bind9-host", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "binutils", + "version": "2.30-21ubuntu1~18.04.5" + }, + { + "name": "binutils-common", + "version": "2.30-21ubuntu1~18.04.5" + }, + { + "name": "binutils-x86-64-linux-gnu", + "version": "2.30-21ubuntu1~18.04.5" + }, + { + "name": "bluez", + "version": "5.48-0ubuntu3.5" + }, + { + "name": "bluez-cups", + "version": "5.48-0ubuntu3.5" + }, + { + "name": "bluez-obexd", + "version": "5.48-0ubuntu3.5" + }, + { + "name": "bolt", + "version": "0.5-0ubuntu0.18.04.1" + }, + { + "name": "brltty", + "version": "5.5-4ubuntu2.0.1" + }, + { + "name": "bsdmainutils", + "version": "11.1.2ubuntu1" + }, + { + "name": "bsdutils", + "version": "1:2.31.1-0.4ubuntu3.7" + }, + { + "name": "bubblewrap", + "version": "0.2.1-1ubuntu0.1" + }, + { + "name": "busybox-initramfs", + "version": "1:1.27.2-2ubuntu3.3" + }, + { + "name": "busybox-static", + "version": "1:1.27.2-2ubuntu3.3" + }, + { + "name": "bzip2", + "version": "1.0.6-8.1ubuntu0.2" + }, + { + "name": "ca-certificates", + "version": "20210119~18.04.1" + }, + { + "name": "certifi", + "version": "2018.1.18" + }, + { + "name": "cheese-common", + "version": "3.28.0-1ubuntu1" + }, + { + "name": "click", + "version": "6.7" + }, + { + "name": "colorama", + "version": "0.3.7" + }, + { + "name": "colord", + "version": "1.3.3-2build1" + }, + { + "name": "colord-data", + "version": "1.3.3-2build1" + }, + { + "name": "command-not-found", + "version": "18.04.5" + }, + { + "name": "command-not-found-data", + "version": "18.04.5" + }, + { + "name": "console-setup", + "version": "1.178ubuntu2.9" + }, + { + "name": "console-setup-linux", + "version": "1.178ubuntu2.9" + }, + { + "name": "coreutils", + "version": "8.28-1ubuntu1" + }, + { + "name": "cpio", + "version": "2.12+dfsg-6ubuntu0.18.04.4" + }, + { + "name": "cpp", + "version": "4:7.4.0-1ubuntu2.3" + }, + { + "name": "cpp-7", + "version": "7.5.0-3ubuntu1~18.04" + }, + { + "name": "cracklib-runtime", + "version": "2.9.2-5build1" + }, + { + "name": "cron", + "version": "3.0pl1-128.1ubuntu1" + }, + { + "name": "cryptography", + "version": "2.1.4" + }, + { + "name": "cups", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "cups-browsed", + "version": "1.20.2-0ubuntu3.1" + }, + { + "name": "cups-bsd", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "cups-client", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "cups-common", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "cups-core-drivers", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "cups-daemon", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "cups-filters", + "version": "1.20.2-0ubuntu3.1" + }, + { + "name": "cups-filters-core-drivers", + "version": "1.20.2-0ubuntu3.1" + }, + { + "name": "cups-ipp-utils", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "cups-pk-helper", + "version": "0.2.6-1ubuntu1.2" + }, + { + "name": "cups-ppdc", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "cups-server-common", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "dash", + "version": "0.5.8-2.10" + }, + { + "name": "dbus", + "version": "1.12.2-1ubuntu1.2" + }, + { + "name": "dbus-user-session", + "version": "1.12.2-1ubuntu1.2" + }, + { + "name": "dbus-x11", + "version": "1.12.2-1ubuntu1.2" + }, + { + "name": "dc", + "version": "1.07.1-2" + }, + { + "name": "dconf-cli", + "version": "0.26.0-2ubuntu3" + }, + { + "name": "dconf-gsettings-backend", + "version": "0.26.0-2ubuntu3" + }, + { + "name": "dconf-service", + "version": "0.26.0-2ubuntu3" + }, + { + "name": "debconf", + "version": "1.5.66ubuntu1" + }, + { + "name": "debconf-i18n", + "version": "1.5.66ubuntu1" + }, + { + "name": "debianutils", + "version": "4.8.4" + }, + { + "name": "desktop-file-utils", + "version": "0.23-1ubuntu3.18.04.2" + }, + { + "name": "dictionaries-common", + "version": "1.27.2" + }, + { + "name": "diffstat", + "version": "1.61-1build1" + }, + { + "name": "diffutils", + "version": "1:3.6-1" + }, + { + "name": "dirmngr", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "distro-info", + "version": "0.18ubuntu0.18.04.1" + }, + { + "name": "distro-info", + "version": "0.18ubuntu0.18.04.1" + }, + { + "name": "distro-info-data", + "version": "0.37ubuntu0.11" + }, + { + "name": "dmidecode", + "version": "3.1-1ubuntu0.1" + }, + { + "name": "dmsetup", + "version": "2:1.02.145-4.1ubuntu3.18.04.3" + }, + { + "name": "dns-root-data", + "version": "2018013001" + }, + { + "name": "dnsmasq-base", + "version": "2.79-1ubuntu0.4" + }, + { + "name": "dnsutils", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "dosfstools", + "version": "4.1-1" + }, + { + "name": "dpkg", + "version": "1.19.0.5ubuntu2.3" + }, + { + "name": "e2fsprogs", + "version": "1.44.1-1ubuntu1.3" + }, + { + "name": "ed", + "version": "1.10-2.1" + }, + { + "name": "efibootmgr", + "version": "15-1" + }, + { + "name": "eject", + "version": "2.1.5+deb1+cvs20081104-13.2" + }, + { + "name": "emacsen-common", + "version": "2.0.8" + }, + { + "name": "enchant", + "version": "1.6.0-11.1" + }, + { + "name": "eog", + "version": "3.28.1-1" + }, + { + "name": "espeak-ng-data", + "version": "1.49.2+dfsg-1" + }, + { + "name": "evince", + "version": "3.28.4-0ubuntu1.2" + }, + { + "name": "evince-common", + "version": "3.28.4-0ubuntu1.2" + }, + { + "name": "evolution-data-server", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "evolution-data-server-common", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "fdisk", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "file", + "version": "1:5.32-2ubuntu0.4" + }, + { + "name": "file-roller", + "version": "3.28.0-1ubuntu1.3" + }, + { + "name": "findutils", + "version": "4.6.0+git+20170828-2" + }, + { + "name": "firefox", + "version": "92.0+build3-0ubuntu0.18.04.1" + }, + { + "name": "firefox-locale-en", + "version": "92.0+build3-0ubuntu0.18.04.1" + }, + { + "name": "fontconfig", + "version": "2.12.6-0ubuntu2" + }, + { + "name": "fontconfig-config", + "version": "2.12.6-0ubuntu2" + }, + { + "name": "fonts-beng-extra", + "version": "1.0-6ubuntu0.1" + }, + { + "name": "fonts-deva-extra", + "version": "3.0-4ubuntu0.1" + }, + { + "name": "fonts-freefont-ttf", + "version": "20120503-7" + }, + { + "name": "fonts-gujr", + "version": "2:1.2" + }, + { + "name": "fonts-gujr-extra", + "version": "1.0-6ubuntu0.1" + }, + { + "name": "fonts-guru-extra", + "version": "2.0-4ubuntu0.1" + }, + { + "name": "fonts-indic", + "version": "2:1.2" + }, + { + "name": "fonts-kacst-one", + "version": "5.0+svn11846-9" + }, + { + "name": "fonts-kalapi", + "version": "1.0-2" + }, + { + "name": "fonts-liberation", + "version": "1:1.07.4-7~18.04.1" + }, + { + "name": "fonts-liberation2", + "version": "2.00.1-7~18.04.2" + }, + { + "name": "fonts-lohit-deva", + "version": "2.95.4-2" + }, + { + "name": "fonts-lohit-gujr", + "version": "2.92.4-2" + }, + { + "name": "fonts-lohit-knda", + "version": "2.5.4-1" + }, + { + "name": "fonts-noto-cjk", + "version": "1:20190409+repack1-0ubuntu0.18.04" + }, + { + "name": "fonts-noto-color-emoji", + "version": "0~20180810-0ubuntu1" + }, + { + "name": "fonts-noto-mono", + "version": "20171026-2" + }, + { + "name": "fonts-opensymbol", + "version": "2:102.10+LibO6.0.7-0ubuntu0.18.04.10" + }, + { + "name": "fonts-orya-extra", + "version": "2.0-5ubuntu0.1" + }, + { + "name": "fonts-sil-abyssinica", + "version": "1.500-1" + }, + { + "name": "fonts-sil-padauk", + "version": "3.003-1" + }, + { + "name": "fonts-smc", + "version": "1:7.0" + }, + { + "name": "fonts-smc-anjalioldlipi", + "version": "7.0-2" + }, + { + "name": "fonts-smc-chilanka", + "version": "1.2.0-2" + }, + { + "name": "fonts-smc-dyuthi", + "version": "2.0-1" + }, + { + "name": "fonts-smc-karumbi", + "version": "1.0-1" + }, + { + "name": "fonts-smc-keraleeyam", + "version": "2.0-1" + }, + { + "name": "fonts-smc-manjari", + "version": "1.5.1-1" + }, + { + "name": "fonts-smc-meera", + "version": "7.0-2" + }, + { + "name": "fonts-smc-rachana", + "version": "7.0-2" + }, + { + "name": "fonts-smc-raghumalayalamsans", + "version": "2.1.1-2" + }, + { + "name": "fonts-smc-suruma", + "version": "3.2.1-1" + }, + { + "name": "fonts-smc-uroob", + "version": "2.0-1" + }, + { + "name": "fonts-thai-tlwg", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-garuda", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-garuda-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-kinnari", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-kinnari-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-laksaman", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-laksaman-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-loma", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-loma-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-mono", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-mono-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-norasi", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-norasi-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-purisa", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-purisa-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-sawasdee", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-sawasdee-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-typewriter", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-typewriter-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-typist", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-typist-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-typo", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-typo-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-umpush", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-umpush-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-waree", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-tlwg-waree-ttf", + "version": "1:0.6.4-2" + }, + { + "name": "fonts-ubuntu", + "version": "0.83-2" + }, + { + "name": "foomatic-db-compressed-ppds", + "version": "20180306-1" + }, + { + "name": "friendly-recovery", + "version": "0.2.38ubuntu1.2" + }, + { + "name": "ftp", + "version": "0.17-34" + }, + { + "name": "fuse", + "version": "2.9.7-1ubuntu1" + }, + { + "name": "fwupd", + "version": "1.2.14-0~18.04.2" + }, + { + "name": "fwupd-signed", + "version": "1.10~ubuntu18.04.6+1.2.14-0~18.04.2" + }, + { + "name": "fwupdate", + "version": "12-7~ubuntu18.04.3" + }, + { + "name": "fwupdate-signed", + "version": "12-7~ubuntu18.04.3" + }, + { + "name": "gcc-7-base", + "version": "7.5.0-3ubuntu1~18.04" + }, + { + "name": "gcc-8-base", + "version": "8.4.0-1ubuntu1~18.04" + }, + { + "name": "gcr", + "version": "3.28.0-1" + }, + { + "name": "gdb", + "version": "8.1.1-0ubuntu1" + }, + { + "name": "gdbserver", + "version": "8.1.1-0ubuntu1" + }, + { + "name": "gdisk", + "version": "1.0.3-1" + }, + { + "name": "gdm3", + "version": "3.28.3-0ubuntu18.04.6" + }, + { + "name": "gedit", + "version": "3.28.1-1ubuntu1.2" + }, + { + "name": "gedit-common", + "version": "3.28.1-1ubuntu1.2" + }, + { + "name": "genisoimage", + "version": "9:1.1.11-3ubuntu2" + }, + { + "name": "geoclue-2.0", + "version": "2.4.7-1ubuntu1" + }, + { + "name": "geoip-database", + "version": "20180315-1" + }, + { + "name": "gettext", + "version": "0.19.8.1-6ubuntu0.3" + }, + { + "name": "gettext-base", + "version": "0.19.8.1-6ubuntu0.3" + }, + { + "name": "ghostscript", + "version": "9.26~dfsg+0-0ubuntu0.18.04.14" + }, + { + "name": "ghostscript-x", + "version": "9.26~dfsg+0-0ubuntu0.18.04.14" + }, + { + "name": "gir1.2-accountsservice-1.0", + "version": "0.6.45-1ubuntu1.3" + }, + { + "name": "gir1.2-atk-1.0", + "version": "2.28.1-1" + }, + { + "name": "gir1.2-atspi-2.0", + "version": "2.28.0-1" + }, + { + "name": "gir1.2-dbusmenu-glib-0.4", + "version": "16.04.1+18.04.20171206-0ubuntu2" + }, + { + "name": "gir1.2-dee-1.0", + "version": "1.2.7+17.10.20170616-0ubuntu4" + }, + { + "name": "gir1.2-freedesktop", + "version": "1.56.1-1" + }, + { + "name": "gir1.2-gck-1", + "version": "3.28.0-1" + }, + { + "name": "gir1.2-gcr-3", + "version": "3.28.0-1" + }, + { + "name": "gir1.2-gdesktopenums-3.0", + "version": "3.28.0-1ubuntu1" + }, + { + "name": "gir1.2-gdkpixbuf-2.0", + "version": "2.36.11-2" + }, + { + "name": "gir1.2-gdm-1.0", + "version": "3.28.3-0ubuntu18.04.6" + }, + { + "name": "gir1.2-geoclue-2.0", + "version": "2.4.7-1ubuntu1" + }, + { + "name": "gir1.2-geocodeglib-1.0", + "version": "3.25.4.1-4ubuntu0.18.04.1" + }, + { + "name": "gir1.2-glib-2.0", + "version": "1.56.1-1" + }, + { + "name": "gir1.2-gmenu-3.0", + "version": "3.13.3-11ubuntu1.1" + }, + { + "name": "gir1.2-gnomebluetooth-1.0", + "version": "3.28.0-2ubuntu0.2" + }, + { + "name": "gir1.2-gnomedesktop-3.0", + "version": "3.28.2-0ubuntu1.5" + }, + { + "name": "gir1.2-goa-1.0", + "version": "3.28.0-0ubuntu2.1" + }, + { + "name": "gir1.2-gst-plugins-base-1.0", + "version": "1.14.5-0ubuntu1~18.04.3" + }, + { + "name": "gir1.2-gstreamer-1.0", + "version": "1.14.5-0ubuntu1~18.04.2" + }, + { + "name": "gir1.2-gtk-3.0", + "version": "3.22.30-1ubuntu4" + }, + { + "name": "gir1.2-gtksource-3.0", + "version": "3.24.7-1" + }, + { + "name": "gir1.2-gudev-1.0", + "version": "1:232-2" + }, + { + "name": "gir1.2-gweather-3.0", + "version": "3.28.2-1~ubuntu18.04.1" + }, + { + "name": "gir1.2-ibus-1.0", + "version": "1.5.17-3ubuntu5.3" + }, + { + "name": "gir1.2-javascriptcoregtk-4.0", + "version": "2.32.3-0ubuntu0.18.04.1" + }, + { + "name": "gir1.2-json-1.0", + "version": "1.4.2-3ubuntu0.18.04.1" + }, + { + "name": "gir1.2-mutter-2", + "version": "3.28.4+git20200505-0ubuntu18.04.2" + }, + { + "name": "gir1.2-nm-1.0", + "version": "1.10.6-2ubuntu1.4" + }, + { + "name": "gir1.2-nma-1.0", + "version": "1.8.10-2ubuntu3" + }, + { + "name": "gir1.2-notify-0.7", + "version": "0.7.7-3" + }, + { + "name": "gir1.2-packagekitglib-1.0", + "version": "1.1.9-1ubuntu2.18.04.6" + }, + { + "name": "gir1.2-pango-1.0", + "version": "1.40.14-1ubuntu0.1" + }, + { + "name": "gir1.2-peas-1.0", + "version": "1.22.0-2" + }, + { + "name": "gir1.2-polkit-1.0", + "version": "0.105-20ubuntu0.18.04.5" + }, + { + "name": "gir1.2-rsvg-2.0", + "version": "2.40.20-2ubuntu0.2" + }, + { + "name": "gir1.2-secret-1", + "version": "0.18.6-1" + }, + { + "name": "gir1.2-snapd-1", + "version": "1.58-0ubuntu0.18.04.0" + }, + { + "name": "gir1.2-soup-2.4", + "version": "2.62.1-1ubuntu0.4" + }, + { + "name": "gir1.2-udisks-2.0", + "version": "2.7.6-3ubuntu0.2" + }, + { + "name": "gir1.2-unity-5.0", + "version": "7.1.4+18.04.20180209.1-0ubuntu2" + }, + { + "name": "gir1.2-upowerglib-1.0", + "version": "0.99.7-2ubuntu0.18.04.1" + }, + { + "name": "gir1.2-vte-2.91", + "version": "0.52.2-1ubuntu1~18.04.2" + }, + { + "name": "gir1.2-webkit2-4.0", + "version": "2.32.3-0ubuntu0.18.04.1" + }, + { + "name": "gir1.2-wnck-3.0", + "version": "3.24.1-2" + }, + { + "name": "gjs", + "version": "1.52.5-0ubuntu18.04.1" + }, + { + "name": "gkbd-capplet", + "version": "3.26.0-3ubuntu0.18.04.1" + }, + { + "name": "glib-networking", + "version": "2.56.0-1ubuntu0.1" + }, + { + "name": "glib-networking-common", + "version": "2.56.0-1ubuntu0.1" + }, + { + "name": "glib-networking-services", + "version": "2.56.0-1ubuntu0.1" + }, + { + "name": "gnome-bluetooth", + "version": "3.28.0-2ubuntu0.2" + }, + { + "name": "gnome-control-center", + "version": "1:3.28.2-0ubuntu0.18.04.6" + }, + { + "name": "gnome-control-center-data", + "version": "1:3.28.2-0ubuntu0.18.04.6" + }, + { + "name": "gnome-control-center-faces", + "version": "1:3.28.2-0ubuntu0.18.04.6" + }, + { + "name": "gnome-desktop3-data", + "version": "3.28.2-0ubuntu1.5" + }, + { + "name": "gnome-disk-utility", + "version": "3.28.3-0ubuntu1~18.04.1" + }, + { + "name": "gnome-font-viewer", + "version": "3.28.0-1" + }, + { + "name": "gnome-getting-started-docs", + "version": "3.28.2-0ubuntu0.1" + }, + { + "name": "gnome-initial-setup", + "version": "3.28.0-2ubuntu6.16.04.6" + }, + { + "name": "gnome-keyring", + "version": "3.28.0.2-1ubuntu1.18.04.1" + }, + { + "name": "gnome-keyring-pkcs11", + "version": "3.28.0.2-1ubuntu1.18.04.1" + }, + { + "name": "gnome-menus", + "version": "3.13.3-11ubuntu1.1" + }, + { + "name": "gnome-online-accounts", + "version": "3.28.0-0ubuntu2.1" + }, + { + "name": "gnome-power-manager", + "version": "3.26.0-1" + }, + { + "name": "gnome-screenshot", + "version": "3.25.0-0ubuntu2" + }, + { + "name": "gnome-session-bin", + "version": "3.28.1-0ubuntu3" + }, + { + "name": "gnome-session-canberra", + "version": "0.30-5ubuntu1" + }, + { + "name": "gnome-session-common", + "version": "3.28.1-0ubuntu3" + }, + { + "name": "gnome-settings-daemon", + "version": "3.28.1-0ubuntu1.3" + }, + { + "name": "gnome-settings-daemon-schemas", + "version": "3.28.1-0ubuntu1.3" + }, + { + "name": "gnome-shell", + "version": "3.28.4-0ubuntu18.04.7" + }, + { + "name": "gnome-shell-common", + "version": "3.28.4-0ubuntu18.04.7" + }, + { + "name": "gnome-shell-extension-appindicator", + "version": "18.04.1" + }, + { + "name": "gnome-shell-extension-ubuntu-dock", + "version": "0.9.1ubuntu18.04.3" + }, + { + "name": "gnome-software", + "version": "3.28.1-0ubuntu4.18.04.15" + }, + { + "name": "gnome-software-common", + "version": "3.28.1-0ubuntu4.18.04.15" + }, + { + "name": "gnome-software-plugin-snap", + "version": "3.28.1-0ubuntu4.18.04.15" + }, + { + "name": "gnome-startup-applications", + "version": "3.28.1-0ubuntu3" + }, + { + "name": "gnome-terminal", + "version": "3.28.2-1ubuntu1~18.04.1" + }, + { + "name": "gnome-terminal-data", + "version": "3.28.2-1ubuntu1~18.04.1" + }, + { + "name": "gnome-user-docs", + "version": "3.28.2+git20180715-0ubuntu0.1" + }, + { + "name": "gnome-user-guide", + "version": "3.28.2+git20180715-0ubuntu0.1" + }, + { + "name": "gnupg", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gnupg-l10n", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gnupg-utils", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gpg", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gpg-agent", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gpg-wks-client", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gpg-wks-server", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gpgconf", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gpgsm", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "gpgv", + "version": "2.2.4-1ubuntu1.4" + }, + { + "name": "grep", + "version": "3.1-2build1" + }, + { + "name": "grilo-plugins-0.3-base", + "version": "0.3.5-1ubuntu1" + }, + { + "name": "groff-base", + "version": "1.22.3-10" + }, + { + "name": "grub-common", + "version": "2.02-2ubuntu8.23" + }, + { + "name": "grub-pc", + "version": "2.02-2ubuntu8.23" + }, + { + "name": "grub-pc-bin", + "version": "2.02-2ubuntu8.23" + }, + { + "name": "grub2-common", + "version": "2.02-2ubuntu8.23" + }, + { + "name": "gsettings-desktop-schemas", + "version": "3.28.0-1ubuntu1" + }, + { + "name": "gsfonts", + "version": "1:8.11+urwcyr1.0.7~pre44-4.4" + }, + { + "name": "gstreamer1.0-alsa", + "version": "1.14.5-0ubuntu1~18.04.3" + }, + { + "name": "gstreamer1.0-clutter-3.0", + "version": "3.0.26-1" + }, + { + "name": "gstreamer1.0-gl", + "version": "1.14.5-0ubuntu1~18.04.3" + }, + { + "name": "gstreamer1.0-gtk3", + "version": "1.14.5-0ubuntu1~18.04.2" + }, + { + "name": "gstreamer1.0-packagekit", + "version": "1.1.9-1ubuntu2.18.04.6" + }, + { + "name": "gstreamer1.0-plugins-base", + "version": "1.14.5-0ubuntu1~18.04.3" + }, + { + "name": "gstreamer1.0-plugins-base-apps", + "version": "1.14.5-0ubuntu1~18.04.3" + }, + { + "name": "gstreamer1.0-plugins-good", + "version": "1.14.5-0ubuntu1~18.04.2" + }, + { + "name": "gstreamer1.0-pulseaudio", + "version": "1.14.5-0ubuntu1~18.04.2" + }, + { + "name": "gstreamer1.0-tools", + "version": "1.14.5-0ubuntu1~18.04.2" + }, + { + "name": "gstreamer1.0-x", + "version": "1.14.5-0ubuntu1~18.04.3" + }, + { + "name": "gtk-update-icon-cache", + "version": "3.22.30-1ubuntu4" + }, + { + "name": "gtk2-engines-murrine", + "version": "0.98.2-2ubuntu1" + }, + { + "name": "gtk2-engines-pixbuf", + "version": "2.24.32-1ubuntu1" + }, + { + "name": "gvfs", + "version": "1.36.1-0ubuntu1.3.3" + }, + { + "name": "gvfs-backends", + "version": "1.36.1-0ubuntu1.3.3" + }, + { + "name": "gvfs-bin", + "version": "1.36.1-0ubuntu1.3.3" + }, + { + "name": "gvfs-common", + "version": "1.36.1-0ubuntu1.3.3" + }, + { + "name": "gvfs-daemons", + "version": "1.36.1-0ubuntu1.3.3" + }, + { + "name": "gvfs-fuse", + "version": "1.36.1-0ubuntu1.3.3" + }, + { + "name": "gvfs-libs", + "version": "1.36.1-0ubuntu1.3.3" + }, + { + "name": "gzip", + "version": "1.6-5ubuntu1.1" + }, + { + "name": "hdparm", + "version": "9.54+ds-1" + }, + { + "name": "hostname", + "version": "3.20" + }, + { + "name": "hplip", + "version": "3.17.10+repack0-5" + }, + { + "name": "hplip-data", + "version": "3.17.10+repack0-5" + }, + { + "name": "hunspell-en-us", + "version": "1:2017.08.24" + }, + { + "name": "ibus", + "version": "1.5.17-3ubuntu5.3" + }, + { + "name": "ibus-gtk", + "version": "1.5.17-3ubuntu5.3" + }, + { + "name": "ibus-gtk3", + "version": "1.5.17-3ubuntu5.3" + }, + { + "name": "ibus-table", + "version": "1.9.14-3" + }, + { + "name": "idna", + "version": "2.6" + }, + { + "name": "ifupdown", + "version": "0.8.17ubuntu1.1" + }, + { + "name": "iio-sensor-proxy", + "version": "2.4-2" + }, + { + "name": "im-config", + "version": "0.34-1ubuntu1.3" + }, + { + "name": "imagemagick", + "version": "8:6.9.7.4+dfsg-16ubuntu6.11" + }, + { + "name": "imagemagick-6-common", + "version": "8:6.9.7.4+dfsg-16ubuntu6.11" + }, + { + "name": "imagemagick-6.q16", + "version": "8:6.9.7.4+dfsg-16ubuntu6.11" + }, + { + "name": "info", + "version": "6.5.0.dfsg.1-2" + }, + { + "name": "init", + "version": "1.51" + }, + { + "name": "init-system-helpers", + "version": "1.51" + }, + { + "name": "initramfs-tools", + "version": "0.130ubuntu3.13" + }, + { + "name": "initramfs-tools-bin", + "version": "0.130ubuntu3.13" + }, + { + "name": "initramfs-tools-core", + "version": "0.130ubuntu3.13" + }, + { + "name": "inputattach", + "version": "1:1.6.0-2" + }, + { + "name": "install-info", + "version": "6.5.0.dfsg.1-2" + }, + { + "name": "intel-microcode", + "version": "3.20210608.0ubuntu0.18.04.1" + }, + { + "name": "intltool-debian", + "version": "0.35.0+20060710.4" + }, + { + "name": "ippusbxd", + "version": "1.32-2" + }, + { + "name": "iproute2", + "version": "4.15.0-2ubuntu1.3" + }, + { + "name": "iptables", + "version": "1.6.1-2ubuntu2" + }, + { + "name": "iputils-arping", + "version": "3:20161105-1ubuntu3" + }, + { + "name": "iputils-ping", + "version": "3:20161105-1ubuntu3" + }, + { + "name": "iputils-tracepath", + "version": "3:20161105-1ubuntu3" + }, + { + "name": "irqbalance", + "version": "1.3.0-0.1ubuntu0.18.04.1" + }, + { + "name": "isc-dhcp-client", + "version": "4.3.5-3ubuntu7.3" + }, + { + "name": "isc-dhcp-common", + "version": "4.3.5-3ubuntu7.3" + }, + { + "name": "iso-codes", + "version": "3.79-1" + }, + { + "name": "iw", + "version": "4.14-0.1" + }, + { + "name": "kbd", + "version": "2.0.4-2ubuntu1" + }, + { + "name": "keyboard-configuration", + "version": "1.178ubuntu2.9" + }, + { + "name": "keyring", + "version": "10.6.0" + }, + { + "name": "keyrings.alt", + "version": "3.0" + }, + { + "name": "klibc-utils", + "version": "2.0.4-9ubuntu2" + }, + { + "name": "kmod", + "version": "24-1ubuntu3.5" + }, + { + "name": "krb5-locales", + "version": "1.16-2ubuntu0.2" + }, + { + "name": "language-pack-en", + "version": "1:18.04+20190718" + }, + { + "name": "language-pack-en-base", + "version": "1:18.04+20180712" + }, + { + "name": "language-pack-gnome-en", + "version": "1:18.04+20190718" + }, + { + "name": "language-pack-gnome-en-base", + "version": "1:18.04+20180712" + }, + { + "name": "language-selector-common", + "version": "0.188.3" + }, + { + "name": "language-selector-gnome", + "version": "0.188.3" + }, + { + "name": "launchpadlib", + "version": "1.10.6" + }, + { + "name": "lazr.restfulclient", + "version": "0.13.5" + }, + { + "name": "less", + "version": "487-0.1" + }, + { + "name": "libaa1", + "version": "1.4p5-44build2" + }, + { + "name": "libaccountsservice0", + "version": "0.6.45-1ubuntu1.3" + }, + { + "name": "libacl1", + "version": "2.2.52-3build1" + }, + { + "name": "libapparmor1", + "version": "2.12-4ubuntu5.1" + }, + { + "name": "libappindicator3-1", + "version": "12.10.1+18.04.20200408.1-0ubuntu1" + }, + { + "name": "libappstream-glib8", + "version": "0.7.7-2" + }, + { + "name": "libappstream4", + "version": "0.12.0-3ubuntu1" + }, + { + "name": "libapt-inst2.0", + "version": "1.6.14" + }, + { + "name": "libapt-pkg-perl", + "version": "0.1.33build1" + }, + { + "name": "libapt-pkg5.0", + "version": "1.6.14" + }, + { + "name": "libarchive-zip-perl", + "version": "1.60-1ubuntu0.1" + }, + { + "name": "libarchive13", + "version": "3.2.2-3.1ubuntu0.7" + }, + { + "name": "libargon2-0", + "version": "0~20161029-1.1" + }, + { + "name": "libart-2.0-2", + "version": "2.3.21-3" + }, + { + "name": "libasn1-8-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "libasound2", + "version": "1.1.3-5ubuntu0.6" + }, + { + "name": "libasound2-data", + "version": "1.1.3-5ubuntu0.6" + }, + { + "name": "libasound2-plugins", + "version": "1.1.1-1ubuntu1" + }, + { + "name": "libaspell15", + "version": "0.60.7~20110707-4ubuntu0.2" + }, + { + "name": "libassuan0", + "version": "2.5.1-2" + }, + { + "name": "libatasmart4", + "version": "0.19-4" + }, + { + "name": "libatk-adaptor", + "version": "2.26.2-1" + }, + { + "name": "libatk-bridge2.0-0", + "version": "2.26.2-1" + }, + { + "name": "libatk1.0-0", + "version": "2.28.1-1" + }, + { + "name": "libatk1.0-data", + "version": "2.28.1-1" + }, + { + "name": "libatm1", + "version": "1:2.5.1-2build1" + }, + { + "name": "libatspi2.0-0", + "version": "2.28.0-1" + }, + { + "name": "libattr1", + "version": "1:2.4.47-2build1" + }, + { + "name": "libaudio2", + "version": "1.9.4-6" + }, + { + "name": "libaudit-common", + "version": "1:2.8.2-1ubuntu1.1" + }, + { + "name": "libaudit1", + "version": "1:2.8.2-1ubuntu1.1" + }, + { + "name": "libavahi-client3", + "version": "0.7-3.1ubuntu1.3" + }, + { + "name": "libavahi-common-data", + "version": "0.7-3.1ubuntu1.3" + }, + { + "name": "libavahi-common3", + "version": "0.7-3.1ubuntu1.3" + }, + { + "name": "libavahi-core7", + "version": "0.7-3.1ubuntu1.3" + }, + { + "name": "libavahi-glib1", + "version": "0.7-3.1ubuntu1.3" + }, + { + "name": "libavc1394-0", + "version": "0.5.4-4build1" + }, + { + "name": "libbabeltrace1", + "version": "1.5.5-1" + }, + { + "name": "libbind9-160", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "libbinutils", + "version": "2.30-21ubuntu1~18.04.5" + }, + { + "name": "libblkid1", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "libblockdev-crypto2", + "version": "2.16-2" + }, + { + "name": "libblockdev-fs2", + "version": "2.16-2" + }, + { + "name": "libblockdev-loop2", + "version": "2.16-2" + }, + { + "name": "libblockdev-part-err2", + "version": "2.16-2" + }, + { + "name": "libblockdev-part2", + "version": "2.16-2" + }, + { + "name": "libblockdev-swap2", + "version": "2.16-2" + }, + { + "name": "libblockdev-utils2", + "version": "2.16-2" + }, + { + "name": "libblockdev2", + "version": "2.16-2" + }, + { + "name": "libbluetooth3", + "version": "5.48-0ubuntu3.5" + }, + { + "name": "libboost-date-time1.65.1", + "version": "1.65.1+dfsg-0ubuntu5" + }, + { + "name": "libboost-filesystem1.65.1", + "version": "1.65.1+dfsg-0ubuntu5" + }, + { + "name": "libboost-iostreams1.65.1", + "version": "1.65.1+dfsg-0ubuntu5" + }, + { + "name": "libboost-locale1.65.1", + "version": "1.65.1+dfsg-0ubuntu5" + }, + { + "name": "libboost-system1.65.1", + "version": "1.65.1+dfsg-0ubuntu5" + }, + { + "name": "libboost-thread1.65.1", + "version": "1.65.1+dfsg-0ubuntu5" + }, + { + "name": "libbrlapi0.6", + "version": "5.5-4ubuntu2.0.1" + }, + { + "name": "libbrotli1", + "version": "1.0.3-1ubuntu1.3" + }, + { + "name": "libbsd0", + "version": "0.8.7-1ubuntu0.1" + }, + { + "name": "libbz2-1.0", + "version": "1.0.6-8.1ubuntu0.2" + }, + { + "name": "libc-bin", + "version": "2.27-3ubuntu1.4" + }, + { + "name": "libc6", + "version": "2.27-3ubuntu1.4" + }, + { + "name": "libc6-dbg", + "version": "2.27-3ubuntu1.4" + }, + { + "name": "libcaca0", + "version": "0.99.beta19-2ubuntu0.18.04.2" + }, + { + "name": "libcairo-gobject-perl", + "version": "1.004-2build3" + }, + { + "name": "libcairo-gobject2", + "version": "1.15.10-2ubuntu0.1" + }, + { + "name": "libcairo-perl", + "version": "1.106-2build2" + }, + { + "name": "libcairo2", + "version": "1.15.10-2ubuntu0.1" + }, + { + "name": "libcamel-1.2-61", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libcanberra-gtk3-0", + "version": "0.30-5ubuntu1" + }, + { + "name": "libcanberra-gtk3-module", + "version": "0.30-5ubuntu1" + }, + { + "name": "libcanberra-pulse", + "version": "0.30-5ubuntu1" + }, + { + "name": "libcanberra0", + "version": "0.30-5ubuntu1" + }, + { + "name": "libcap-ng0", + "version": "0.7.7-3.1" + }, + { + "name": "libcap2", + "version": "1:2.25-1.2" + }, + { + "name": "libcap2-bin", + "version": "1:2.25-1.2" + }, + { + "name": "libcc1-0", + "version": "8.4.0-1ubuntu1~18.04" + }, + { + "name": "libcdio-cdda2", + "version": "10.2+0.94+2-2build1" + }, + { + "name": "libcdio-paranoia2", + "version": "10.2+0.94+2-2build1" + }, + { + "name": "libcdio17", + "version": "1.0.0-2ubuntu2" + }, + { + "name": "libcdr-0.1-1", + "version": "0.1.4-1build1" + }, + { + "name": "libcgi-fast-perl", + "version": "1:2.13-1" + }, + { + "name": "libcgi-pm-perl", + "version": "4.38-1" + }, + { + "name": "libcheese-gtk25", + "version": "3.28.0-1ubuntu1" + }, + { + "name": "libcheese8", + "version": "3.28.0-1ubuntu1" + }, + { + "name": "libclass-accessor-perl", + "version": "0.51-1" + }, + { + "name": "libclone-perl", + "version": "0.39-1" + }, + { + "name": "libclucene-contribs1v5", + "version": "2.3.3.4+dfsg-1" + }, + { + "name": "libclucene-core1v5", + "version": "2.3.3.4+dfsg-1" + }, + { + "name": "libclutter-1.0-0", + "version": "1.26.2+dfsg-4" + }, + { + "name": "libclutter-1.0-common", + "version": "1.26.2+dfsg-4" + }, + { + "name": "libclutter-gst-3.0-0", + "version": "3.0.26-1" + }, + { + "name": "libclutter-gtk-1.0-0", + "version": "1.8.4-3" + }, + { + "name": "libcmis-0.5-5v5", + "version": "0.5.1+git20160603-3build2" + }, + { + "name": "libcogl-common", + "version": "1.22.2-3ubuntu1" + }, + { + "name": "libcogl-pango20", + "version": "1.22.2-3ubuntu1" + }, + { + "name": "libcogl-path20", + "version": "1.22.2-3ubuntu1" + }, + { + "name": "libcogl20", + "version": "1.22.2-3ubuntu1" + }, + { + "name": "libcolamd2", + "version": "1:5.1.2-2" + }, + { + "name": "libcolord-gtk1", + "version": "0.1.26-2" + }, + { + "name": "libcolord2", + "version": "1.3.3-2build1" + }, + { + "name": "libcolorhug2", + "version": "1.3.3-2build1" + }, + { + "name": "libcom-err2", + "version": "1.44.1-1ubuntu1.3" + }, + { + "name": "libcrack2", + "version": "2.9.2-5build1" + }, + { + "name": "libcroco3", + "version": "0.6.12-2" + }, + { + "name": "libcryptsetup12", + "version": "2:2.0.2-1ubuntu1.2" + }, + { + "name": "libcups2", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "libcupscgi1", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "libcupsfilters1", + "version": "1.20.2-0ubuntu3.1" + }, + { + "name": "libcupsimage2", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "libcupsmime1", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "libcupsppdc1", + "version": "2.2.7-1ubuntu2.8" + }, + { + "name": "libcurl3-gnutls", + "version": "7.58.0-2ubuntu3.15" + }, + { + "name": "libcurl4", + "version": "7.58.0-2ubuntu3" + }, + { + "name": "libdaemon0", + "version": "0.14-6" + }, + { + "name": "libdatrie1", + "version": "0.2.10-7" + }, + { + "name": "libdazzle-1.0-0", + "version": "3.28.1-1" + }, + { + "name": "libdb5.3", + "version": "5.3.28-13.1ubuntu1.1" + }, + { + "name": "libdbus-1-3", + "version": "1.12.2-1ubuntu1.2" + }, + { + "name": "libdbus-glib-1-2", + "version": "0.110-2" + }, + { + "name": "libdbusmenu-glib4", + "version": "16.04.1+18.04.20171206-0ubuntu2" + }, + { + "name": "libdbusmenu-gtk3-4", + "version": "16.04.1+18.04.20171206-0ubuntu2" + }, + { + "name": "libdbusmenu-gtk4", + "version": "16.04.1+18.04.20171206-0ubuntu2" + }, + { + "name": "libdconf1", + "version": "0.26.0-2ubuntu3" + }, + { + "name": "libdebconfclient0", + "version": "0.213ubuntu1" + }, + { + "name": "libdee-1.0-4", + "version": "1.2.7+17.10.20170616-0ubuntu4" + }, + { + "name": "libdevmapper1.02.1", + "version": "2:1.02.145-4.1ubuntu3.18.04.3" + }, + { + "name": "libdigest-hmac-perl", + "version": "1.03+dfsg-1" + }, + { + "name": "libdjvulibre-text", + "version": "3.5.27.1-8ubuntu0.4" + }, + { + "name": "libdjvulibre21", + "version": "3.5.27.1-8ubuntu0.4" + }, + { + "name": "libdns-export1100", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "libdns1100", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "libdpkg-perl", + "version": "1.19.0.5ubuntu2.3" + }, + { + "name": "libdrm-amdgpu1", + "version": "2.4.101-2~18.04.1" + }, + { + "name": "libdrm-common", + "version": "2.4.101-2~18.04.1" + }, + { + "name": "libdrm-intel1", + "version": "2.4.101-2~18.04.1" + }, + { + "name": "libdrm-nouveau2", + "version": "2.4.101-2~18.04.1" + }, + { + "name": "libdrm-radeon1", + "version": "2.4.101-2~18.04.1" + }, + { + "name": "libdrm2", + "version": "2.4.101-2~18.04.1" + }, + { + "name": "libdv4", + "version": "1.0.0-11" + }, + { + "name": "libdw1", + "version": "0.170-0.4ubuntu0.1" + }, + { + "name": "libe-book-0.1-1", + "version": "0.1.3-1" + }, + { + "name": "libebackend-1.2-10", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libebook-1.2-19", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libebook-contacts-1.2-2", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libecal-1.2-19", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libedata-book-1.2-25", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libedata-cal-1.2-28", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libedataserver-1.2-23", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libedataserverui-1.2-2", + "version": "3.28.5-0ubuntu0.18.04.3" + }, + { + "name": "libedit2", + "version": "3.1-20170329-1" + }, + { + "name": "libefiboot1", + "version": "34-1" + }, + { + "name": "libefivar1", + "version": "34-1" + }, + { + "name": "libegl-mesa0", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libegl1", + "version": "1.0.0-2ubuntu2.3" + }, + { + "name": "libegl1-mesa", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libelf1", + "version": "0.170-0.4ubuntu0.1" + }, + { + "name": "libemail-valid-perl", + "version": "1.202-1" + }, + { + "name": "libenchant1c2a", + "version": "1.6.0-11.1" + }, + { + "name": "libeot0", + "version": "0.01-5" + }, + { + "name": "libepoxy0", + "version": "1.4.3-1" + }, + { + "name": "libepubgen-0.1-1", + "version": "0.1.0-2ubuntu1" + }, + { + "name": "libespeak-ng1", + "version": "1.49.2+dfsg-1" + }, + { + "name": "libetonyek-0.1-1", + "version": "0.1.7-3" + }, + { + "name": "libevdev2", + "version": "1.5.8+dfsg-1ubuntu0.1" + }, + { + "name": "libevdocument3-4", + "version": "3.28.4-0ubuntu1.2" + }, + { + "name": "libevent-2.1-6", + "version": "2.1.8-stable-4build1" + }, + { + "name": "libevview3-3", + "version": "3.28.4-0ubuntu1.2" + }, + { + "name": "libexempi3", + "version": "2.4.5-2" + }, + { + "name": "libexif12", + "version": "0.6.21-4ubuntu0.6" + }, + { + "name": "libexiv2-14", + "version": "0.25-3.1ubuntu0.18.04.11" + }, + { + "name": "libexpat1", + "version": "2.2.5-3ubuntu0.2" + }, + { + "name": "libexporter-tiny-perl", + "version": "1.000000-2" + }, + { + "name": "libext2fs2", + "version": "1.44.1-1ubuntu1.3" + }, + { + "name": "libfcgi-perl", + "version": "0.78-2build1" + }, + { + "name": "libfdisk1", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "libffi6", + "version": "3.2.1-8" + }, + { + "name": "libfftw3-double3", + "version": "3.3.7-1" + }, + { + "name": "libfftw3-single3", + "version": "3.3.7-1" + }, + { + "name": "libfile-basedir-perl", + "version": "0.07-1" + }, + { + "name": "libfile-copy-recursive-perl", + "version": "0.40-1" + }, + { + "name": "libfile-fcntllock-perl", + "version": "0.22-3build2" + }, + { + "name": "libfile-mimeinfo-perl", + "version": "0.28-1" + }, + { + "name": "libflac8", + "version": "1.3.2-1" + }, + { + "name": "libfontconfig1", + "version": "2.12.6-0ubuntu2" + }, + { + "name": "libfontembed1", + "version": "1.20.2-0ubuntu3.1" + }, + { + "name": "libfontenc1", + "version": "1:1.1.3-1" + }, + { + "name": "libfreerdp-client2-2", + "version": "2.2.0+dfsg1-0ubuntu0.18.04.1" + }, + { + "name": "libfreerdp2-2", + "version": "2.2.0+dfsg1-0ubuntu0.18.04.1" + }, + { + "name": "libfreetype6", + "version": "2.8.1-2ubuntu2.1" + }, + { + "name": "libfribidi0", + "version": "0.19.7-2" + }, + { + "name": "libfuse2", + "version": "2.9.7-1ubuntu1" + }, + { + "name": "libfwup1", + "version": "12-3bionic2" + }, + { + "name": "libfwupd2", + "version": "1.2.14-0~18.04.2" + }, + { + "name": "libgail-3-0", + "version": "3.22.30-1ubuntu4" + }, + { + "name": "libgail-common", + "version": "2.24.32-1ubuntu1" + }, + { + "name": "libgail18", + "version": "2.24.32-1ubuntu1" + }, + { + "name": "libgbm1", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libgc1c2", + "version": "1:7.4.2-8ubuntu1" + }, + { + "name": "libgcab-1.0-0", + "version": "1.1-2" + }, + { + "name": "libgcc1", + "version": "1:8.4.0-1ubuntu1~18.04" + }, + { + "name": "libgck-1-0", + "version": "3.28.0-1" + }, + { + "name": "libgcr-base-3-1", + "version": "3.28.0-1" + }, + { + "name": "libgcr-ui-3-1", + "version": "3.28.0-1" + }, + { + "name": "libgcrypt20", + "version": "1.8.1-4ubuntu1.2" + }, + { + "name": "libgd3", + "version": "2.2.5-4ubuntu0.5" + }, + { + "name": "libgdata-common", + "version": "0.17.9-2" + }, + { + "name": "libgdata22", + "version": "0.17.9-2" + }, + { + "name": "libgdbm-compat4", + "version": "1.14.1-6" + }, + { + "name": "libgdbm5", + "version": "1.14.1-6" + }, + { + "name": "libgdk-pixbuf2.0-0", + "version": "2.36.11-2" + }, + { + "name": "libgdk-pixbuf2.0-bin", + "version": "2.36.11-2" + }, + { + "name": "libgdk-pixbuf2.0-common", + "version": "2.36.11-2" + }, + { + "name": "libgdm1", + "version": "3.28.3-0ubuntu18.04.6" + }, + { + "name": "libgee-0.8-2", + "version": "0.20.1-1" + }, + { + "name": "libgeoclue-2-0", + "version": "2.4.7-1ubuntu1" + }, + { + "name": "libgeocode-glib0", + "version": "3.25.4.1-4ubuntu0.18.04.1" + }, + { + "name": "libgeoip1", + "version": "1.6.12-1" + }, + { + "name": "libgexiv2-2", + "version": "0.10.8-1" + }, + { + "name": "libgirepository-1.0-1", + "version": "1.56.1-1" + }, + { + "name": "libgjs0g", + "version": "1.52.5-0ubuntu18.04.1" + }, + { + "name": "libgl1", + "version": "1.0.0-2ubuntu2.3" + }, + { + "name": "libgl1-mesa-dri", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libgl1-mesa-glx", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libglapi-mesa", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libgles2", + "version": "1.0.0-2ubuntu2.3" + }, + { + "name": "libglib-object-introspection-perl", + "version": "0.044-2" + }, + { + "name": "libglib-perl", + "version": "3:1.326-1build1" + }, + { + "name": "libglib2.0-0", + "version": "2.56.4-0ubuntu0.18.04.8" + }, + { + "name": "libglib2.0-bin", + "version": "2.56.4-0ubuntu0.18.04.8" + }, + { + "name": "libglib2.0-data", + "version": "2.56.4-0ubuntu0.18.04.8" + }, + { + "name": "libglu1-mesa", + "version": "9.0.0-2.1build1" + }, + { + "name": "libglvnd0", + "version": "1.0.0-2ubuntu2.3" + }, + { + "name": "libglx-mesa0", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libglx0", + "version": "1.0.0-2ubuntu2.3" + }, + { + "name": "libgmime-3.0-0", + "version": "3.2.0-1" + }, + { + "name": "libgmp10", + "version": "2:6.1.2+dfsg-2" + }, + { + "name": "libgnome-autoar-0-0", + "version": "0.2.3-1ubuntu0.4" + }, + { + "name": "libgnome-bluetooth13", + "version": "3.28.0-2ubuntu0.2" + }, + { + "name": "libgnome-desktop-3-17", + "version": "3.28.2-0ubuntu1.5" + }, + { + "name": "libgnome-menu-3-0", + "version": "3.13.3-11ubuntu1.1" + }, + { + "name": "libgnomekbd-common", + "version": "3.26.0-3ubuntu0.18.04.1" + }, + { + "name": "libgnomekbd8", + "version": "3.26.0-3ubuntu0.18.04.1" + }, + { + "name": "libgnutls30", + "version": "3.5.18-1ubuntu1.5" + }, + { + "name": "libgoa-1.0-0b", + "version": "3.28.0-0ubuntu2.1" + }, + { + "name": "libgoa-1.0-common", + "version": "3.28.0-0ubuntu2.1" + }, + { + "name": "libgoa-backend-1.0-1", + "version": "3.28.0-0ubuntu2.1" + }, + { + "name": "libgom-1.0-0", + "version": "0.3.3-4" + }, + { + "name": "libgomp1", + "version": "8.4.0-1ubuntu1~18.04" + }, + { + "name": "libgpg-error0", + "version": "1.27-6" + }, + { + "name": "libgpgme11", + "version": "1.10.0-1ubuntu2" + }, + { + "name": "libgpgmepp6", + "version": "1.10.0-1ubuntu2" + }, + { + "name": "libgphoto2-6", + "version": "2.5.16-2" + }, + { + "name": "libgphoto2-l10n", + "version": "2.5.16-2" + }, + { + "name": "libgphoto2-port12", + "version": "2.5.16-2" + }, + { + "name": "libgpod-common", + "version": "0.8.3-11" + }, + { + "name": "libgpod4", + "version": "0.8.3-11" + }, + { + "name": "libgraphene-1.0-0", + "version": "1.8.0-1" + }, + { + "name": "libgraphite2-3", + "version": "1.3.11-2" + }, + { + "name": "libgrilo-0.3-0", + "version": "0.3.4-1ubuntu0.1" + }, + { + "name": "libgs9", + "version": "9.26~dfsg+0-0ubuntu0.18.04.14" + }, + { + "name": "libgs9-common", + "version": "9.26~dfsg+0-0ubuntu0.18.04.14" + }, + { + "name": "libgspell-1-1", + "version": "1.6.1-1" + }, + { + "name": "libgspell-1-common", + "version": "1.6.1-1" + }, + { + "name": "libgssapi-krb5-2", + "version": "1.16-2ubuntu0.2" + }, + { + "name": "libgssapi3-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "libgstreamer-gl1.0-0", + "version": "1.14.5-0ubuntu1~18.04.3" + }, + { + "name": "libgstreamer-plugins-base1.0-0", + "version": "1.14.5-0ubuntu1~18.04.3" + }, + { + "name": "libgstreamer-plugins-good1.0-0", + "version": "1.14.5-0ubuntu1~18.04.2" + }, + { + "name": "libgstreamer1.0-0", + "version": "1.14.5-0ubuntu1~18.04.2" + }, + { + "name": "libgtk-3-0", + "version": "3.22.30-1ubuntu4" + }, + { + "name": "libgtk-3-bin", + "version": "3.22.30-1ubuntu4" + }, + { + "name": "libgtk-3-common", + "version": "3.22.30-1ubuntu4" + }, + { + "name": "libgtk2.0-0", + "version": "2.24.32-1ubuntu1" + }, + { + "name": "libgtk2.0-bin", + "version": "2.24.32-1ubuntu1" + }, + { + "name": "libgtk2.0-common", + "version": "2.24.32-1ubuntu1" + }, + { + "name": "libgtk3-perl", + "version": "0.032-1" + }, + { + "name": "libgtksourceview-3.0-1", + "version": "3.24.7-1" + }, + { + "name": "libgtksourceview-3.0-common", + "version": "3.24.7-1" + }, + { + "name": "libgtop-2.0-11", + "version": "2.38.0-2ubuntu0.18.04.1" + }, + { + "name": "libgtop2-common", + "version": "2.38.0-2ubuntu0.18.04.1" + }, + { + "name": "libgudev-1.0-0", + "version": "1:232-2" + }, + { + "name": "libgusb2", + "version": "0.2.11-1" + }, + { + "name": "libgutenprint2", + "version": "5.2.13-2" + }, + { + "name": "libgweather-3-15", + "version": "3.28.2-1~ubuntu18.04.1" + }, + { + "name": "libgweather-common", + "version": "3.28.2-1~ubuntu18.04.1" + }, + { + "name": "libgxps2", + "version": "0.3.0-2" + }, + { + "name": "libharfbuzz-icu0", + "version": "1.7.2-1ubuntu1" + }, + { + "name": "libharfbuzz0b", + "version": "1.7.2-1ubuntu1" + }, + { + "name": "libhcrypto4-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "libheimbase1-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "libheimntlm0-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "libhogweed4", + "version": "3.4.1-0ubuntu0.18.04.1" + }, + { + "name": "libhpmud0", + "version": "3.17.10+repack0-5" + }, + { + "name": "libhtml-form-perl", + "version": "6.03-1" + }, + { + "name": "libhtml-parser-perl", + "version": "3.72-3build1" + }, + { + "name": "libhtml-tagset-perl", + "version": "3.20-3" + }, + { + "name": "libhtml-tree-perl", + "version": "5.07-1" + }, + { + "name": "libhttp-cookies-perl", + "version": "6.04-1" + }, + { + "name": "libhttp-daemon-perl", + "version": "6.01-1" + }, + { + "name": "libhttp-date-perl", + "version": "6.02-1" + }, + { + "name": "libhttp-message-perl", + "version": "6.14-1" + }, + { + "name": "libhttp-negotiate-perl", + "version": "6.00-2" + }, + { + "name": "libhunspell-1.6-0", + "version": "1.6.2-1" + }, + { + "name": "libhx509-5-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "libhyphen0", + "version": "2.8.8-5" + }, + { + "name": "libibus-1.0-5", + "version": "1.5.17-3ubuntu5.3" + }, + { + "name": "libical3", + "version": "3.0.1-5" + }, + { + "name": "libice6", + "version": "2:1.0.9-2" + }, + { + "name": "libicu60", + "version": "60.2-3ubuntu3.1" + }, + { + "name": "libidn11", + "version": "1.33-2.1ubuntu1.2" + }, + { + "name": "libidn2-0", + "version": "2.0.4-1.1ubuntu0.2" + }, + { + "name": "libiec61883-0", + "version": "1.2.0-2" + }, + { + "name": "libieee1284-3", + "version": "0.2.11-13" + }, + { + "name": "libijs-0.35", + "version": "0.35-13" + }, + { + "name": "libilmbase12", + "version": "2.2.0-11ubuntu2" + }, + { + "name": "libimobiledevice6", + "version": "1.2.1~git20171128.5a854327+dfsg-0.1" + }, + { + "name": "libindicator3-7", + "version": "16.10.0+18.04.20180321.1-0ubuntu1" + }, + { + "name": "libinput-bin", + "version": "1.10.4-1ubuntu0.18.04.2" + }, + { + "name": "libinput10", + "version": "1.10.4-1ubuntu0.18.04.2" + }, + { + "name": "libio-pty-perl", + "version": "1:1.08-1.1build4" + }, + { + "name": "libio-socket-inet6-perl", + "version": "2.72-2" + }, + { + "name": "libio-socket-ssl-perl", + "version": "2.060-3~ubuntu18.04.1" + }, + { + "name": "libio-string-perl", + "version": "1.08-3" + }, + { + "name": "libip4tc0", + "version": "1.6.1-2ubuntu2" + }, + { + "name": "libip6tc0", + "version": "1.6.1-2ubuntu2" + }, + { + "name": "libipc-run-perl", + "version": "0.96-1" + }, + { + "name": "libipc-system-simple-perl", + "version": "1.25-4" + }, + { + "name": "libiptc0", + "version": "1.6.1-2ubuntu2" + }, + { + "name": "libirs160", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "libisc-export169", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "libisc169", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "libisccc160", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "libisccfg160", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "libisl19", + "version": "0.19-1" + }, + { + "name": "libiw30", + "version": "30~pre9-12ubuntu1" + }, + { + "name": "libjack-jackd2-0", + "version": "1.9.12~dfsg-2" + }, + { + "name": "libjansson4", + "version": "2.11-1" + }, + { + "name": "libjavascriptcoregtk-4.0-18", + "version": "2.32.3-0ubuntu0.18.04.1" + }, + { + "name": "libjbig2dec0", + "version": "0.13-6" + }, + { + "name": "libjpeg-turbo8", + "version": "1.5.2-0ubuntu5.18.04.4" + }, + { + "name": "libjson-c3", + "version": "0.12.1-1.3ubuntu0.3" + }, + { + "name": "libjson-glib-1.0-0", + "version": "1.4.2-3ubuntu0.18.04.1" + }, + { + "name": "libjson-glib-1.0-common", + "version": "1.4.2-3ubuntu0.18.04.1" + }, + { + "name": "libk5crypto3", + "version": "1.16-2ubuntu0.2" + }, + { + "name": "libkeyutils1", + "version": "1.5.9-9.2ubuntu2" + }, + { + "name": "libklibc", + "version": "2.0.4-9ubuntu2" + }, + { + "name": "libkmod2", + "version": "24-1ubuntu3.5" + }, + { + "name": "libkpathsea6", + "version": "2017.20170613.44572-8ubuntu0.1" + }, + { + "name": "libkrb5-26-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "libkrb5-3", + "version": "1.16-2ubuntu0.2" + }, + { + "name": "libkrb5support0", + "version": "1.16-2ubuntu0.2" + }, + { + "name": "liblangtag-common", + "version": "0.6.2-1" + }, + { + "name": "liblangtag1", + "version": "0.6.2-1" + }, + { + "name": "liblcms2-2", + "version": "2.9-1ubuntu0.1" + }, + { + "name": "liblcms2-utils", + "version": "2.9-1ubuntu0.1" + }, + { + "name": "libldap-2.4-2", + "version": "2.4.45+dfsg-1ubuntu1.10" + }, + { + "name": "libldap-common", + "version": "2.4.45+dfsg-1ubuntu1.10" + }, + { + "name": "libldb1", + "version": "2:1.2.3-1ubuntu0.2" + }, + { + "name": "liblirc-client0", + "version": "0.10.0-2" + }, + { + "name": "liblist-moreutils-perl", + "version": "0.416-1build3" + }, + { + "name": "libllvm10", + "version": "1:10.0.0-4ubuntu1~18.04.2" + }, + { + "name": "libllvm6.0", + "version": "1:6.0-1ubuntu2" + }, + { + "name": "liblocale-gettext-perl", + "version": "1.07-3build2" + }, + { + "name": "liblouis-data", + "version": "3.5.0-1ubuntu0.3" + }, + { + "name": "liblouis14", + "version": "3.5.0-1ubuntu0.3" + }, + { + "name": "liblouisutdml-bin", + "version": "2.7.0-1" + }, + { + "name": "liblouisutdml-data", + "version": "2.7.0-1" + }, + { + "name": "liblouisutdml8", + "version": "2.7.0-1" + }, + { + "name": "liblqr-1-0", + "version": "0.4.2-2.1" + }, + { + "name": "libltdl7", + "version": "2.4.6-2" + }, + { + "name": "liblua5.3-0", + "version": "5.3.3-1ubuntu0.18.04.1" + }, + { + "name": "liblwp-mediatypes-perl", + "version": "6.02-1" + }, + { + "name": "liblwp-protocol-https-perl", + "version": "6.07-2" + }, + { + "name": "liblwres160", + "version": "1:9.11.3+dfsg-1ubuntu1.15" + }, + { + "name": "liblz4-1", + "version": "0.0~r131-2ubuntu3.1" + }, + { + "name": "liblzma5", + "version": "5.2.2-1.3" + }, + { + "name": "liblzo2-2", + "version": "2.08-1.2" + }, + { + "name": "libmagic-mgc", + "version": "1:5.32-2ubuntu0.4" + }, + { + "name": "libmagic1", + "version": "1:5.32-2ubuntu0.4" + }, + { + "name": "libmagickcore-6.q16-3", + "version": "8:6.9.7.4+dfsg-16ubuntu6.11" + }, + { + "name": "libmagickcore-6.q16-3-extra", + "version": "8:6.9.7.4+dfsg-16ubuntu6.11" + }, + { + "name": "libmagickwand-6.q16-3", + "version": "8:6.9.7.4+dfsg-16ubuntu6.11" + }, + { + "name": "libmailtools-perl", + "version": "2.18-1" + }, + { + "name": "libmbim-glib4", + "version": "1.18.0-1~ubuntu18.04.1" + }, + { + "name": "libmbim-proxy", + "version": "1.18.0-1~ubuntu18.04.1" + }, + { + "name": "libmediaart-2.0-0", + "version": "1.9.4-1" + }, + { + "name": "libmm-glib0", + "version": "1.10.0-1~ubuntu18.04.2" + }, + { + "name": "libmount1", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "libmozjs-52-0", + "version": "52.9.1-0ubuntu0.18.04.1" + }, + { + "name": "libmp3lame0", + "version": "3.100-2" + }, + { + "name": "libmpdec2", + "version": "2.4.2-1ubuntu1" + }, + { + "name": "libmpfr6", + "version": "4.0.1-1" + }, + { + "name": "libmpg123-0", + "version": "1.25.10-1" + }, + { + "name": "libmspub-0.1-1", + "version": "0.1.4-1" + }, + { + "name": "libmtdev1", + "version": "1.1.5-1ubuntu3" + }, + { + "name": "libmtp-common", + "version": "1.1.13-1" + }, + { + "name": "libmtp-runtime", + "version": "1.1.13-1" + }, + { + "name": "libmtp9", + "version": "1.1.13-1" + }, + { + "name": "libmutter-2-0", + "version": "3.28.4+git20200505-0ubuntu18.04.2" + }, + { + "name": "libnautilus-extension1a", + "version": "1:3.26.4-0~ubuntu18.04.5" + }, + { + "name": "libncurses5", + "version": "6.1-1ubuntu1.18.04" + }, + { + "name": "libncursesw5", + "version": "6.1-1ubuntu1.18.04" + }, + { + "name": "libndp0", + "version": "1.6-1" + }, + { + "name": "libnet-dbus-perl", + "version": "1.1.0-4build2" + }, + { + "name": "libnet-dns-perl", + "version": "1.10-2" + }, + { + "name": "libnet-domain-tld-perl", + "version": "1.75-1" + }, + { + "name": "libnet-http-perl", + "version": "6.17-1" + }, + { + "name": "libnet-ip-perl", + "version": "1.26-1" + }, + { + "name": "libnet-libidn-perl", + "version": "0.12.ds-2build4" + }, + { + "name": "libnet-ssleay-perl", + "version": "1.84-1ubuntu0.2" + }, + { + "name": "libnetfilter-conntrack3", + "version": "1.0.6-2" + }, + { + "name": "libnetpbm10", + "version": "2:10.0-15.3build1" + }, + { + "name": "libnetplan0", + "version": "0.99-0ubuntu3~18.04.4" + }, + { + "name": "libnettle6", + "version": "3.4.1-0ubuntu0.18.04.1" + }, + { + "name": "libnewt0.52", + "version": "0.52.20-1ubuntu1" + }, + { + "name": "libnfnetlink0", + "version": "1.0.1-3" + }, + { + "name": "libnghttp2-14", + "version": "1.30.0-1ubuntu1" + }, + { + "name": "libnih1", + "version": "1.0.3-6ubuntu2" + }, + { + "name": "libnl-3-200", + "version": "3.2.29-0ubuntu3" + }, + { + "name": "libnl-genl-3-200", + "version": "3.2.29-0ubuntu3" + }, + { + "name": "libnm0", + "version": "1.10.6-2ubuntu1.4" + }, + { + "name": "libnma0", + "version": "1.8.10-2ubuntu3" + }, + { + "name": "libnotify-bin", + "version": "0.7.7-3" + }, + { + "name": "libnotify4", + "version": "0.7.7-3" + }, + { + "name": "libnpth0", + "version": "1.5-3" + }, + { + "name": "libnspr4", + "version": "2:4.18-1ubuntu1" + }, + { + "name": "libnss-mdns", + "version": "0.10-8ubuntu1" + }, + { + "name": "libnss-myhostname", + "version": "237-3ubuntu10.52" + }, + { + "name": "libnss-systemd", + "version": "237-3ubuntu10.52" + }, + { + "name": "libnss3", + "version": "2:3.35-2ubuntu2.12" + }, + { + "name": "libntfs-3g88", + "version": "1:2017.3.23-2ubuntu0.18.04.3" + }, + { + "name": "libnuma1", + "version": "2.0.11-2.1ubuntu0.1" + }, + { + "name": "liboauth0", + "version": "1.0.3-1" + }, + { + "name": "libodfgen-0.1-1", + "version": "0.1.6-2" + }, + { + "name": "libogg0", + "version": "1.3.2-1" + }, + { + "name": "libopenexr22", + "version": "2.2.0-11.1ubuntu1.7" + }, + { + "name": "libopenscap8", + "version": "1.2.15-1build1" + }, + { + "name": "libopus0", + "version": "1.1.2-1ubuntu1" + }, + { + "name": "liborc-0.4-0", + "version": "1:0.4.28-1" + }, + { + "name": "libp11-kit0", + "version": "0.23.9-2ubuntu0.1" + }, + { + "name": "libpackagekit-glib2-18", + "version": "1.1.9-1ubuntu2.18.04.6" + }, + { + "name": "libpam-cap", + "version": "1:2.25-1.2" + }, + { + "name": "libpam-gnome-keyring", + "version": "3.28.0.2-1ubuntu1.18.04.1" + }, + { + "name": "libpam-modules", + "version": "1.1.8-3.6ubuntu2.18.04.3" + }, + { + "name": "libpam-modules-bin", + "version": "1.1.8-3.6ubuntu2.18.04.3" + }, + { + "name": "libpam-runtime", + "version": "1.1.8-3.6ubuntu2.18.04.3" + }, + { + "name": "libpam-systemd", + "version": "237-3ubuntu10.52" + }, + { + "name": "libpam0g", + "version": "1.1.8-3.6ubuntu2.18.04.3" + }, + { + "name": "libpango-1.0-0", + "version": "1.40.14-1ubuntu0.1" + }, + { + "name": "libpangocairo-1.0-0", + "version": "1.40.14-1ubuntu0.1" + }, + { + "name": "libpangoft2-1.0-0", + "version": "1.40.14-1ubuntu0.1" + }, + { + "name": "libpangoxft-1.0-0", + "version": "1.40.14-1ubuntu0.1" + }, + { + "name": "libpaper-utils", + "version": "1.1.24+nmu5ubuntu1" + }, + { + "name": "libpaper1", + "version": "1.1.24+nmu5ubuntu1" + }, + { + "name": "libparse-debianchangelog-perl", + "version": "1.2.0-12" + }, + { + "name": "libparted-fs-resize0", + "version": "3.2-20ubuntu0.2" + }, + { + "name": "libparted2", + "version": "3.2-20ubuntu0.2" + }, + { + "name": "libpcap0.8", + "version": "1.8.1-6ubuntu1.18.04.2" + }, + { + "name": "libpcaudio0", + "version": "1.0-1" + }, + { + "name": "libpci3", + "version": "1:3.5.2-1ubuntu1.1" + }, + { + "name": "libpciaccess0", + "version": "0.14-1" + }, + { + "name": "libpcre3", + "version": "2:8.39-9" + }, + { + "name": "libpcsclite1", + "version": "1.8.23-1" + }, + { + "name": "libpeas-1.0-0", + "version": "1.22.0-2" + }, + { + "name": "libpeas-common", + "version": "1.22.0-2" + }, + { + "name": "libperl5.26", + "version": "5.26.1-6ubuntu0.5" + }, + { + "name": "libperlio-gzip-perl", + "version": "0.19-1build3" + }, + { + "name": "libphonenumber7", + "version": "7.1.0-5ubuntu5" + }, + { + "name": "libpipeline1", + "version": "1.5.0-1" + }, + { + "name": "libpixman-1-0", + "version": "0.34.0-2" + }, + { + "name": "libplist3", + "version": "2.0.0-2ubuntu1" + }, + { + "name": "libplymouth4", + "version": "0.9.3-1ubuntu7.18.04.2" + }, + { + "name": "libpng16-16", + "version": "1.6.34-1ubuntu0.18.04.2" + }, + { + "name": "libpolkit-agent-1-0", + "version": "0.105-20ubuntu0.18.04.5" + }, + { + "name": "libpolkit-backend-1-0", + "version": "0.105-20ubuntu0.18.04.5" + }, + { + "name": "libpolkit-gobject-1-0", + "version": "0.105-20ubuntu0.18.04.5" + }, + { + "name": "libpoppler-glib8", + "version": "0.62.0-2ubuntu2.12" + }, + { + "name": "libpoppler73", + "version": "0.62.0-2ubuntu2.12" + }, + { + "name": "libpopt0", + "version": "1.16-11" + }, + { + "name": "libprocps6", + "version": "2:3.3.12-3ubuntu1.2" + }, + { + "name": "libprotobuf10", + "version": "3.0.0-9.1ubuntu1" + }, + { + "name": "libproxy1-plugin-gsettings", + "version": "0.4.15-1ubuntu0.2" + }, + { + "name": "libproxy1-plugin-networkmanager", + "version": "0.4.15-1ubuntu0.2" + }, + { + "name": "libproxy1v5", + "version": "0.4.15-1ubuntu0.2" + }, + { + "name": "libpsl5", + "version": "0.19.1-5build1" + }, + { + "name": "libpulse-mainloop-glib0", + "version": "1:11.1-1ubuntu7.11" + }, + { + "name": "libpulse0", + "version": "1:11.1-1ubuntu7.11" + }, + { + "name": "libpulsedsp", + "version": "1:11.1-1ubuntu7.11" + }, + { + "name": "libpwquality-common", + "version": "1.4.0-2" + }, + { + "name": "libpwquality1", + "version": "1.4.0-2" + }, + { + "name": "libpython2.7", + "version": "2.7.17-1~18.04ubuntu1.6" + }, + { + "name": "libpython2.7-minimal", + "version": "2.7.17-1~18.04ubuntu1.6" + }, + { + "name": "libpython2.7-stdlib", + "version": "2.7.17-1~18.04ubuntu1.6" + }, + { + "name": "libpython3-stdlib", + "version": "3.6.7-1~18.04" + }, + { + "name": "libpython3.6", + "version": "3.6.9-1~18.04ubuntu1.4" + }, + { + "name": "libpython3.6-minimal", + "version": "3.6.9-1~18.04ubuntu1.4" + }, + { + "name": "libpython3.6-stdlib", + "version": "3.6.9-1~18.04ubuntu1.4" + }, + { + "name": "libqmi-glib5", + "version": "1.22.0-1.2~ubuntu18.04.1" + }, + { + "name": "libqmi-proxy", + "version": "1.22.0-1.2~ubuntu18.04.1" + }, + { + "name": "libqpdf21", + "version": "8.0.2-3ubuntu0.1" + }, + { + "name": "libqqwing2v5", + "version": "1.3.4-1.1" + }, + { + "name": "libraw16", + "version": "0.18.8-1ubuntu0.3" + }, + { + "name": "libreadline7", + "version": "7.0-3" + }, + { + "name": "librest-0.7-0", + "version": "0.8.0-2" + }, + { + "name": "librevenge-0.0-0", + "version": "0.0.4-6ubuntu2" + }, + { + "name": "libroken18-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "librsvg2-2", + "version": "2.40.20-2ubuntu0.2" + }, + { + "name": "librsvg2-common", + "version": "2.40.20-2ubuntu0.2" + }, + { + "name": "librtmp1", + "version": "2.4+20151223.gitfa8646d.1-1" + }, + { + "name": "libsamplerate0", + "version": "0.1.9-1" + }, + { + "name": "libsane-common", + "version": "1.0.27-1~experimental3ubuntu2.4" + }, + { + "name": "libsane-hpaio", + "version": "3.17.10+repack0-5" + }, + { + "name": "libsane1", + "version": "1.0.27-1~experimental3ubuntu2.4" + }, + { + "name": "libsasl2-2", + "version": "2.1.27~101-g0780600+dfsg-3ubuntu2.3" + }, + { + "name": "libsasl2-modules", + "version": "2.1.27~101-g0780600+dfsg-3ubuntu2.3" + }, + { + "name": "libsasl2-modules-db", + "version": "2.1.27~101-g0780600+dfsg-3ubuntu2.3" + }, + { + "name": "libsbc1", + "version": "1.3-2" + }, + { + "name": "libseccomp2", + "version": "2.5.1-1ubuntu1~18.04.1" + }, + { + "name": "libsecret-1-0", + "version": "0.18.6-1" + }, + { + "name": "libsecret-common", + "version": "0.18.6-1" + }, + { + "name": "libselinux1", + "version": "2.7-2build2" + }, + { + "name": "libsemanage-common", + "version": "2.7-2build2" + }, + { + "name": "libsemanage1", + "version": "2.7-2build2" + }, + { + "name": "libsensors4", + "version": "1:3.4.0-4" + }, + { + "name": "libsepol1", + "version": "2.7-1" + }, + { + "name": "libsgutils2-2", + "version": "1.42-2ubuntu1.18.04.2" + }, + { + "name": "libshout3", + "version": "2.4.1-2build1" + }, + { + "name": "libslang2", + "version": "2.3.1a-3ubuntu1" + }, + { + "name": "libsm6", + "version": "2:1.2.2-1" + }, + { + "name": "libsmartcols1", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "libsmbclient", + "version": "2:4.7.6+dfsg~ubuntu-0ubuntu2.23" + }, + { + "name": "libsmbios-c2", + "version": "2.4.1-1" + }, + { + "name": "libsnapd-glib1", + "version": "1.58-0ubuntu0.18.04.0" + }, + { + "name": "libsndfile1", + "version": "1.0.28-4ubuntu0.18.04.2" + }, + { + "name": "libsnmp-base", + "version": "5.7.3+dfsg-1.8ubuntu3.6" + }, + { + "name": "libsnmp30", + "version": "5.7.3+dfsg-1.8ubuntu3.6" + }, + { + "name": "libsocket6-perl", + "version": "0.27-1build2" + }, + { + "name": "libsodium23", + "version": "1.0.16-2" + }, + { + "name": "libsonic0", + "version": "0.2.0-6" + }, + { + "name": "libsoup-gnome2.4-1", + "version": "2.62.1-1ubuntu0.4" + }, + { + "name": "libsoup2.4-1", + "version": "2.62.1-1ubuntu0.4" + }, + { + "name": "libspectre1", + "version": "0.2.8-1" + }, + { + "name": "libspeechd2", + "version": "0.8.8-1ubuntu1" + }, + { + "name": "libspeex1", + "version": "1.2~rc1.2-1ubuntu2" + }, + { + "name": "libspeexdsp1", + "version": "1.2~rc1.2-1ubuntu2" + }, + { + "name": "libsqlite3-0", + "version": "3.22.0-1ubuntu0.4" + }, + { + "name": "libss2", + "version": "1.44.1-1ubuntu1.3" + }, + { + "name": "libssh-4", + "version": "0.8.0~20170825.94fa1e38-1ubuntu0.7" + }, + { + "name": "libssl1.0.0", + "version": "1.0.2n-1ubuntu5.7" + }, + { + "name": "libssl1.1", + "version": "1.1.1-1ubuntu2.1~18.04.13" + }, + { + "name": "libstartup-notification0", + "version": "0.12-5" + }, + { + "name": "libstdc++6", + "version": "8.4.0-1ubuntu1~18.04" + }, + { + "name": "libstemmer0d", + "version": "0+svn585-1build1" + }, + { + "name": "libsub-name-perl", + "version": "0.21-1build1" + }, + { + "name": "libsuitesparseconfig5", + "version": "1:5.1.2-2" + }, + { + "name": "libsysmetrics1", + "version": "1.3.2" + }, + { + "name": "libsystemd0", + "version": "237-3ubuntu10.52" + }, + { + "name": "libtag1v5", + "version": "1.11.1+dfsg.1-0.2build2" + }, + { + "name": "libtag1v5-vanilla", + "version": "1.11.1+dfsg.1-0.2build2" + }, + { + "name": "libtalloc2", + "version": "2.1.10-2ubuntu1" + }, + { + "name": "libtasn1-6", + "version": "4.13-2" + }, + { + "name": "libtdb1", + "version": "1.3.15-2" + }, + { + "name": "libteamdctl0", + "version": "1.26-1" + }, + { + "name": "libtevent0", + "version": "0.9.34-1" + }, + { + "name": "libtext-charwidth-perl", + "version": "0.04-7.1" + }, + { + "name": "libtext-iconv-perl", + "version": "1.7-5build6" + }, + { + "name": "libtext-levenshtein-perl", + "version": "0.13-1" + }, + { + "name": "libtext-wrapi18n-perl", + "version": "0.06-7.1" + }, + { + "name": "libthai-data", + "version": "0.1.27-2" + }, + { + "name": "libthai0", + "version": "0.1.27-2" + }, + { + "name": "libtheora0", + "version": "1.1.1+dfsg.1-14" + }, + { + "name": "libtiff5", + "version": "4.0.9-5ubuntu0.4" + }, + { + "name": "libtimedate-perl", + "version": "2.3000-2" + }, + { + "name": "libtinfo5", + "version": "6.1-1ubuntu1.18.04" + }, + { + "name": "libtotem-plparser-common", + "version": "3.26.0-1ubuntu2" + }, + { + "name": "libtotem-plparser18", + "version": "3.26.0-1ubuntu2" + }, + { + "name": "libtracker-sparql-2.0-0", + "version": "2.0.3-1ubuntu4" + }, + { + "name": "libtwolame0", + "version": "0.3.13-3" + }, + { + "name": "libu2f-udev", + "version": "1.1.4-1ubuntu0.1" + }, + { + "name": "libudev1", + "version": "237-3ubuntu10.52" + }, + { + "name": "libudisks2-0", + "version": "2.7.6-3ubuntu0.2" + }, + { + "name": "libunistring2", + "version": "0.9.9-0ubuntu2" + }, + { + "name": "libunity-protocol-private0", + "version": "7.1.4+18.04.20180209.1-0ubuntu2" + }, + { + "name": "libunity-scopes-json-def-desktop", + "version": "7.1.4+18.04.20180209.1-0ubuntu2" + }, + { + "name": "libunity9", + "version": "7.1.4+18.04.20180209.1-0ubuntu2" + }, + { + "name": "libunwind8", + "version": "1.2.1-8" + }, + { + "name": "libupower-glib3", + "version": "0.99.7-2ubuntu0.18.04.1" + }, + { + "name": "liburi-perl", + "version": "1.73-1" + }, + { + "name": "libusb-1.0-0", + "version": "2:1.0.21-2" + }, + { + "name": "libusbmuxd4", + "version": "1.1.0~git20171206.c724e70f-0.1" + }, + { + "name": "libuuid1", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "libv4l-0", + "version": "1.14.2-1" + }, + { + "name": "libv4lconvert0", + "version": "1.14.2-1" + }, + { + "name": "libvisual-0.4-0", + "version": "0.4.0-11" + }, + { + "name": "libvncclient1", + "version": "0.9.11+dfsg-1ubuntu1.4" + }, + { + "name": "libvolume-key1", + "version": "0.3.9-4" + }, + { + "name": "libvorbis0a", + "version": "1.3.5-4.2" + }, + { + "name": "libvorbisenc2", + "version": "1.3.5-4.2" + }, + { + "name": "libvorbisfile3", + "version": "1.3.5-4.2" + }, + { + "name": "libvpx5", + "version": "1.7.0-3ubuntu0.18.04.1" + }, + { + "name": "libvte-2.91-0", + "version": "0.52.2-1ubuntu1~18.04.2" + }, + { + "name": "libvte-2.91-common", + "version": "0.52.2-1ubuntu1~18.04.2" + }, + { + "name": "libwacom-bin", + "version": "0.29-1" + }, + { + "name": "libwacom-common", + "version": "0.29-1" + }, + { + "name": "libwacom2", + "version": "0.29-1" + }, + { + "name": "libwavpack1", + "version": "5.1.0-2ubuntu1.5" + }, + { + "name": "libwayland-client0", + "version": "1.16.0-1ubuntu1.1~18.04.3" + }, + { + "name": "libwayland-cursor0", + "version": "1.16.0-1ubuntu1.1~18.04.3" + }, + { + "name": "libwayland-egl1", + "version": "1.16.0-1ubuntu1.1~18.04.3" + }, + { + "name": "libwayland-egl1-mesa", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libwayland-server0", + "version": "1.16.0-1ubuntu1.1~18.04.3" + }, + { + "name": "libwbclient0", + "version": "2:4.7.6+dfsg~ubuntu-0ubuntu2.23" + }, + { + "name": "libwebkit2gtk-4.0-37", + "version": "2.32.3-0ubuntu0.18.04.1" + }, + { + "name": "libwebp6", + "version": "0.6.1-2ubuntu0.18.04.1" + }, + { + "name": "libwebpdemux2", + "version": "0.6.1-2ubuntu0.18.04.1" + }, + { + "name": "libwebpmux3", + "version": "0.6.1-2ubuntu0.18.04.1" + }, + { + "name": "libwebrtc-audio-processing1", + "version": "0.3-1" + }, + { + "name": "libwhoopsie-preferences0", + "version": "0.19" + }, + { + "name": "libwhoopsie0", + "version": "0.2.62ubuntu0.6" + }, + { + "name": "libwind0-heimdal", + "version": "7.5.0+dfsg-1" + }, + { + "name": "libwinpr2-2", + "version": "2.2.0+dfsg1-0ubuntu0.18.04.1" + }, + { + "name": "libwmf0.2-7", + "version": "0.2.8.4-12" + }, + { + "name": "libwmf0.2-7-gtk", + "version": "0.2.8.4-12" + }, + { + "name": "libwnck-3-0", + "version": "3.24.1-2" + }, + { + "name": "libwnck-3-common", + "version": "3.24.1-2" + }, + { + "name": "libwoff1", + "version": "1.0.2-1build0.1" + }, + { + "name": "libwrap0", + "version": "7.6.q-27" + }, + { + "name": "libwww-perl", + "version": "6.31-1ubuntu0.1" + }, + { + "name": "libwww-robotrules-perl", + "version": "6.01-1" + }, + { + "name": "libx11-6", + "version": "2:1.6.4-3ubuntu0.4" + }, + { + "name": "libx11-data", + "version": "2:1.6.4-3ubuntu0.4" + }, + { + "name": "libx11-xcb1", + "version": "2:1.6.4-3ubuntu0.4" + }, + { + "name": "libxapian30", + "version": "1.4.5-1ubuntu0.1" + }, + { + "name": "libxatracker2", + "version": "20.0.8-0ubuntu1~18.04.1" + }, + { + "name": "libxau6", + "version": "1:1.0.8-1ubuntu1" + }, + { + "name": "libxcb-dri2-0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-dri3-0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-glx0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-icccm4", + "version": "0.4.1-1ubuntu1" + }, + { + "name": "libxcb-keysyms1", + "version": "0.4.0-1" + }, + { + "name": "libxcb-present0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-randr0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-render-util0", + "version": "0.3.9-1" + }, + { + "name": "libxcb-render0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-res0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-shape0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-shm0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-sync1", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-xfixes0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-xkb1", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb-xv0", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcb1", + "version": "1.13-2~ubuntu18.04" + }, + { + "name": "libxcomposite1", + "version": "1:0.4.4-2" + }, + { + "name": "libxcursor1", + "version": "1:1.1.15-1" + }, + { + "name": "libxdamage1", + "version": "1:1.1.4-3" + }, + { + "name": "libxdmcp6", + "version": "1:1.1.2-3" + }, + { + "name": "libxext6", + "version": "2:1.3.3-1" + }, + { + "name": "libxfixes3", + "version": "1:5.0.3-1" + }, + { + "name": "libxft2", + "version": "2.3.2-1" + }, + { + "name": "libxi6", + "version": "2:1.7.9-1" + }, + { + "name": "libxinerama1", + "version": "2:1.1.3-1" + }, + { + "name": "libxkbcommon-x11-0", + "version": "0.8.2-1~ubuntu18.04.1" + }, + { + "name": "libxkbcommon0", + "version": "0.8.2-1~ubuntu18.04.1" + }, + { + "name": "libxkbfile1", + "version": "1:1.0.9-2" + }, + { + "name": "libxklavier16", + "version": "5.4-3" + }, + { + "name": "libxml-libxml-perl", + "version": "2.0128+dfsg-5" + }, + { + "name": "libxml-namespacesupport-perl", + "version": "1.12-1" + }, + { + "name": "libxml-parser-perl", + "version": "2.44-2build3" + }, + { + "name": "libxml-sax-base-perl", + "version": "1.09-1" + }, + { + "name": "libxml-sax-expat-perl", + "version": "0.40-2" + }, + { + "name": "libxml-sax-perl", + "version": "0.99+dfsg-2ubuntu1" + }, + { + "name": "libxml-simple-perl", + "version": "2.24-1" + }, + { + "name": "libxml-twig-perl", + "version": "1:3.50-1" + }, + { + "name": "libxml2", + "version": "2.9.4+dfsg1-6.1ubuntu1.4" + }, + { + "name": "libxmlb1", + "version": "0.1.8-1~ubuntu18.04.2" + }, + { + "name": "libxmlsec1", + "version": "1.2.25-1build1" + }, + { + "name": "libxmlsec1-nss", + "version": "1.2.25-1build1" + }, + { + "name": "libxmu6", + "version": "2:1.1.2-2" + }, + { + "name": "libxmuu1", + "version": "2:1.1.2-2" + }, + { + "name": "libxrandr2", + "version": "2:1.5.1-1" + }, + { + "name": "libxres1", + "version": "2:1.2.0-2" + }, + { + "name": "libxslt1.1", + "version": "1.1.29-5ubuntu0.2" + }, + { + "name": "libxss1", + "version": "1:1.2.2-1" + }, + { + "name": "libxtables12", + "version": "1.6.1-2ubuntu2" + }, + { + "name": "libxvmc1", + "version": "2:1.0.10-1" + }, + { + "name": "libxxf86dga1", + "version": "2:1.1.4-1" + }, + { + "name": "libxxf86vm1", + "version": "1:1.1.4-1" + }, + { + "name": "libyaml-0-2", + "version": "0.1.7-2ubuntu3" + }, + { + "name": "libyaml-libyaml-perl", + "version": "0.69+repack-1" + }, + { + "name": "libyelp0", + "version": "3.26.0-1ubuntu2" + }, + { + "name": "libzeitgeist-2.0-0", + "version": "1.0-0.1ubuntu1" + }, + { + "name": "libzstd1", + "version": "1.3.3+dfsg-2ubuntu1.2" + }, + { + "name": "light-themes", + "version": "16.10+18.04.20181005-0ubuntu1" + }, + { + "name": "lintian", + "version": "2.5.81ubuntu1" + }, + { + "name": "linux-base", + "version": "4.5ubuntu1.6" + }, + { + "name": "linux-firmware", + "version": "1.173.20" + }, + { + "name": "linux-generic-hwe-18.04", + "version": "5.4.0.84.94~18.04.75" + }, + { + "name": "linux-headers-5.4.0-84-generic", + "version": "5.4.0-84.94~18.04.1" + }, + { + "name": "linux-headers-generic-hwe-18.04", + "version": "5.4.0.84.94~18.04.75" + }, + { + "name": "linux-hwe-5.4-headers-5.4.0-84", + "version": "5.4.0-84.94~18.04.1" + }, + { + "name": "linux-image-5.4.0-84-generic", + "version": "5.4.0-84.94~18.04.1" + }, + { + "name": "linux-image-generic-hwe-18.04", + "version": "5.4.0.84.94~18.04.75" + }, + { + "name": "linux-modules-5.4.0-84-generic", + "version": "5.4.0-84.94~18.04.1" + }, + { + "name": "linux-modules-extra-5.4.0-84-generic", + "version": "5.4.0-84.94~18.04.1" + }, + { + "name": "locales", + "version": "2.27-3ubuntu1.4" + }, + { + "name": "login", + "version": "1:4.5-1ubuntu2" + }, + { + "name": "logrotate", + "version": "3.11.0-0.1ubuntu1" + }, + { + "name": "lp-solve", + "version": "5.5.0.15-4build1" + }, + { + "name": "lsb-base", + "version": "9.20170808ubuntu1" + }, + { + "name": "lsb-release", + "version": "9.20170808ubuntu1" + }, + { + "name": "lshw", + "version": "02.18-0.1ubuntu6.18.04.2" + }, + { + "name": "lsof", + "version": "4.89+dfsg-0.1" + }, + { + "name": "ltrace", + "version": "0.7.3-6ubuntu1" + }, + { + "name": "macaroonbakery", + "version": "1.1.3" + }, + { + "name": "man-db", + "version": "2.8.3-2ubuntu0.1" + }, + { + "name": "manpages", + "version": "4.15-1" + }, + { + "name": "mawk", + "version": "1.3.3-17ubuntu3" + }, + { + "name": "media-player-info", + "version": "23-1" + }, + { + "name": "memtest86+", + "version": "5.01-3ubuntu2" + }, + { + "name": "mime-support", + "version": "3.60ubuntu1" + }, + { + "name": "mlocate", + "version": "0.26-2ubuntu3.1" + }, + { + "name": "mobile-broadband-provider-info", + "version": "20170903-1" + }, + { + "name": "modemmanager", + "version": "1.10.0-1~ubuntu18.04.2" + }, + { + "name": "mount", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "mousetweaks", + "version": "3.12.0-4" + }, + { + "name": "mscompress", + "version": "0.4-3build1" + }, + { + "name": "mtools", + "version": "4.0.18-2ubuntu1" + }, + { + "name": "mtr-tiny", + "version": "0.92-1" + }, + { + "name": "multiarch-support", + "version": "2.27-3ubuntu1.4" + }, + { + "name": "mutter", + "version": "3.28.4+git20200505-0ubuntu18.04.2" + }, + { + "name": "mutter-common", + "version": "3.28.4+git20200505-0ubuntu18.04.2" + }, + { + "name": "nano", + "version": "2.9.3-2" + }, + { + "name": "nautilus", + "version": "1:3.26.4-0~ubuntu18.04.5" + }, + { + "name": "nautilus-data", + "version": "1:3.26.4-0~ubuntu18.04.5" + }, + { + "name": "nautilus-extension-gnome-terminal", + "version": "3.28.2-1ubuntu1~18.04.1" + }, + { + "name": "nautilus-sendto", + "version": "3.8.6-2" + }, + { + "name": "ncurses-base", + "version": "6.1-1ubuntu1.18.04" + }, + { + "name": "ncurses-bin", + "version": "6.1-1ubuntu1.18.04" + }, + { + "name": "netbase", + "version": "5.4" + }, + { + "name": "netcat-openbsd", + "version": "1.187-1ubuntu0.1" + }, + { + "name": "netpbm", + "version": "2:10.0-15.3build1" + }, + { + "name": "netplan.io", + "version": "0.99-0ubuntu3~18.04.4" + }, + { + "name": "network-manager", + "version": "1.10.6-2ubuntu1.4" + }, + { + "name": "network-manager-config-connectivity-ubuntu", + "version": "1.10.6-2ubuntu1.4" + }, + { + "name": "network-manager-gnome", + "version": "1.8.10-2ubuntu3" + }, + { + "name": "network-manager-pptp", + "version": "1.2.6-1" + }, + { + "name": "network-manager-pptp-gnome", + "version": "1.2.6-1" + }, + { + "name": "networkd-dispatcher", + "version": "1.7-0ubuntu3.3" + }, + { + "name": "notification-daemon", + "version": "3.20.0-3" + }, + { + "name": "nplan", + "version": "0.99-0ubuntu3~18.04.4" + }, + { + "name": "ntfs-3g", + "version": "1:2017.3.23-2ubuntu0.18.04.3" + }, + { + "name": "oauth", + "version": "1.0.1" + }, + { + "name": "olefile", + "version": "0.45.1" + }, + { + "name": "openprinting-ppds", + "version": "20180306-1" + }, + { + "name": "openssh-client", + "version": "1:7.6p1-4ubuntu0.5" + }, + { + "name": "openssl", + "version": "1.1.1-1ubuntu2.1~18.04.13" + }, + { + "name": "orca", + "version": "3.28.0-3ubuntu1" + }, + { + "name": "os-prober", + "version": "1.74ubuntu1" + }, + { + "name": "p11-kit", + "version": "0.23.9-2ubuntu0.1" + }, + { + "name": "p11-kit-modules", + "version": "0.23.9-2ubuntu0.1" + }, + { + "name": "packagekit", + "version": "1.1.9-1ubuntu2.18.04.6" + }, + { + "name": "packagekit-tools", + "version": "1.1.9-1ubuntu2.18.04.6" + }, + { + "name": "parted", + "version": "3.2-20ubuntu0.2" + }, + { + "name": "passwd", + "version": "1:4.5-1ubuntu2" + }, + { + "name": "patch", + "version": "2.7.6-2ubuntu1.1" + }, + { + "name": "patchutils", + "version": "0.3.4-2" + }, + { + "name": "pciutils", + "version": "1:3.5.2-1ubuntu1.1" + }, + { + "name": "pcmciautils", + "version": "018-8build1" + }, + { + "name": "perl", + "version": "5.26.1-6ubuntu0.5" + }, + { + "name": "perl-base", + "version": "5.26.1-6ubuntu0.5" + }, + { + "name": "perl-modules-5.26", + "version": "5.26.1-6ubuntu0.5" + }, + { + "name": "perl-openssl-defaults", + "version": "3build1" + }, + { + "name": "pinentry-curses", + "version": "1.1.0-1" + }, + { + "name": "pinentry-gnome3", + "version": "1.1.0-1" + }, + { + "name": "plymouth", + "version": "0.9.3-1ubuntu7.18.04.2" + }, + { + "name": "plymouth-label", + "version": "0.9.3-1ubuntu7.18.04.2" + }, + { + "name": "plymouth-theme-ubuntu-logo", + "version": "0.9.3-1ubuntu7.18.04.2" + }, + { + "name": "plymouth-theme-ubuntu-text", + "version": "0.9.3-1ubuntu7.18.04.2" + }, + { + "name": "policykit-1", + "version": "0.105-20ubuntu0.18.04.5" + }, + { + "name": "policykit-desktop-privileges", + "version": "0.20ubuntu18.04.1" + }, + { + "name": "poppler-data", + "version": "0.4.8-2" + }, + { + "name": "poppler-utils", + "version": "0.62.0-2ubuntu2.12" + }, + { + "name": "popularity-contest", + "version": "1.66ubuntu1" + }, + { + "name": "powermgmt-base", + "version": "1.33" + }, + { + "name": "ppp", + "version": "2.4.7-2+2ubuntu1.3" + }, + { + "name": "pppconfig", + "version": "2.3.23" + }, + { + "name": "pppoeconf", + "version": "1.21ubuntu1" + }, + { + "name": "pptp-linux", + "version": "1.9.0+ds-2" + }, + { + "name": "printer-driver-brlaser", + "version": "4-1" + }, + { + "name": "printer-driver-c2esp", + "version": "27-4" + }, + { + "name": "printer-driver-foo2zjs", + "version": "20170320dfsg0-4" + }, + { + "name": "printer-driver-foo2zjs-common", + "version": "20170320dfsg0-4" + }, + { + "name": "printer-driver-gutenprint", + "version": "5.2.13-2" + }, + { + "name": "printer-driver-hpcups", + "version": "3.17.10+repack0-5" + }, + { + "name": "printer-driver-m2300w", + "version": "0.51-13" + }, + { + "name": "printer-driver-min12xxw", + "version": "0.0.9-10" + }, + { + "name": "printer-driver-postscript-hp", + "version": "3.17.10+repack0-5" + }, + { + "name": "printer-driver-sag-gdi", + "version": "0.1-5" + }, + { + "name": "printer-driver-splix", + "version": "2.0.0+svn315-6fakesync1" + }, + { + "name": "procps", + "version": "2:3.3.12-3ubuntu1.2" + }, + { + "name": "protobuf", + "version": "3.0.0" + }, + { + "name": "psmisc", + "version": "23.1-1ubuntu0.1" + }, + { + "name": "publicsuffix", + "version": "20180223.1310-1" + }, + { + "name": "pulseaudio", + "version": "1:11.1-1ubuntu7.11" + }, + { + "name": "pulseaudio-module-bluetooth", + "version": "1:11.1-1ubuntu7.11" + }, + { + "name": "pulseaudio-utils", + "version": "1:11.1-1ubuntu7.11" + }, + { + "name": "pyRFC3339", + "version": "1.0" + }, + { + "name": "python-apt-common", + "version": "1.6.5ubuntu0.7" + }, + { + "name": "python-dateutil", + "version": "2.6.1" + }, + { + "name": "python-debian", + "version": "0.1.32" + }, + { + "name": "python-talloc", + "version": "2.1.10-2ubuntu1" + }, + { + "name": "python3", + "version": "3.6.7-1~18.04" + }, + { + "name": "python3-apport", + "version": "2.20.9-0ubuntu7.26" + }, + { + "name": "python3-apt", + "version": "1.6.5ubuntu0.7" + }, + { + "name": "python3-aptdaemon", + "version": "1.1.1+bzr982-0ubuntu19.5" + }, + { + "name": "python3-aptdaemon.gtk3widgets", + "version": "1.1.1+bzr982-0ubuntu19.5" + }, + { + "name": "python3-asn1crypto", + "version": "0.24.0-1" + }, + { + "name": "python3-brlapi", + "version": "5.5-4ubuntu2.0.1" + }, + { + "name": "python3-cairo", + "version": "1.16.2-1" + }, + { + "name": "python3-certifi", + "version": "2018.1.18-2" + }, + { + "name": "python3-cffi-backend", + "version": "1.11.5-1" + }, + { + "name": "python3-chardet", + "version": "3.0.4-1" + }, + { + "name": "python3-click", + "version": "6.7-3" + }, + { + "name": "python3-colorama", + "version": "0.3.7-1" + }, + { + "name": "python3-commandnotfound", + "version": "18.04.5" + }, + { + "name": "python3-crypto", + "version": "2.6.1-8ubuntu2" + }, + { + "name": "python3-cryptography", + "version": "2.1.4-1ubuntu1.4" + }, + { + "name": "python3-cups", + "version": "1.9.73-2" + }, + { + "name": "python3-cupshelpers", + "version": "1.5.11-1ubuntu2" + }, + { + "name": "python3-dateutil", + "version": "2.6.1-1" + }, + { + "name": "python3-dbus", + "version": "1.2.6-1" + }, + { + "name": "python3-debconf", + "version": "1.5.66ubuntu1" + }, + { + "name": "python3-debian", + "version": "0.1.32" + }, + { + "name": "python3-defer", + "version": "1.0.6-2build1" + }, + { + "name": "python3-distro-info", + "version": "0.18ubuntu0.18.04.1" + }, + { + "name": "python3-distupgrade", + "version": "1:18.04.45" + }, + { + "name": "python3-gdbm", + "version": "3.6.9-1~18.04" + }, + { + "name": "python3-gi", + "version": "3.26.1-2ubuntu1" + }, + { + "name": "python3-gi-cairo", + "version": "3.26.1-2ubuntu1" + }, + { + "name": "python3-httplib2", + "version": "0.9.2+dfsg-1ubuntu0.3" + }, + { + "name": "python3-idna", + "version": "2.6-1" + }, + { + "name": "python3-keyring", + "version": "10.6.0-1" + }, + { + "name": "python3-keyrings.alt", + "version": "3.0-1" + }, + { + "name": "python3-launchpadlib", + "version": "1.10.6-1" + }, + { + "name": "python3-lazr.restfulclient", + "version": "0.13.5-1" + }, + { + "name": "python3-lazr.uri", + "version": "1.0.3-2build1" + }, + { + "name": "python3-louis", + "version": "3.5.0-1ubuntu0.3" + }, + { + "name": "python3-macaroonbakery", + "version": "1.1.3-1" + }, + { + "name": "python3-mako", + "version": "1.0.7+ds1-1" + }, + { + "name": "python3-markupsafe", + "version": "1.0-1build1" + }, + { + "name": "python3-minimal", + "version": "3.6.7-1~18.04" + }, + { + "name": "python3-nacl", + "version": "1.1.2-1build1" + }, + { + "name": "python3-netifaces", + "version": "0.10.4-0.1build4" + }, + { + "name": "python3-oauth", + "version": "1.0.1-5" + }, + { + "name": "python3-olefile", + "version": "0.45.1-1" + }, + { + "name": "python3-pexpect", + "version": "4.2.1-1" + }, + { + "name": "python3-pil", + "version": "5.1.0-1ubuntu0.6" + }, + { + "name": "python3-pkg-resources", + "version": "39.0.1-2" + }, + { + "name": "python3-problem-report", + "version": "2.20.9-0ubuntu7.26" + }, + { + "name": "python3-protobuf", + "version": "3.0.0-9.1ubuntu1" + }, + { + "name": "python3-ptyprocess", + "version": "0.5.2-1" + }, + { + "name": "python3-pyatspi", + "version": "2.26.0+dfsg-1" + }, + { + "name": "python3-pymacaroons", + "version": "0.13.0-1" + }, + { + "name": "python3-renderpm", + "version": "3.4.0-3ubuntu0.1" + }, + { + "name": "python3-reportlab", + "version": "3.4.0-3ubuntu0.1" + }, + { + "name": "python3-reportlab-accel", + "version": "3.4.0-3ubuntu0.1" + }, + { + "name": "python3-requests", + "version": "2.18.4-2ubuntu0.1" + }, + { + "name": "python3-requests-unixsocket", + "version": "0.1.5-3" + }, + { + "name": "python3-rfc3339", + "version": "1.0-4" + }, + { + "name": "python3-secretstorage", + "version": "2.3.1-2" + }, + { + "name": "python3-simplejson", + "version": "3.13.2-1" + }, + { + "name": "python3-six", + "version": "1.11.0-2" + }, + { + "name": "python3-software-properties", + "version": "0.96.24.32.14" + }, + { + "name": "python3-speechd", + "version": "0.8.8-1ubuntu1" + }, + { + "name": "python3-systemd", + "version": "234-1build1" + }, + { + "name": "python3-tz", + "version": "2018.3-2" + }, + { + "name": "python3-update-manager", + "version": "1:18.04.11.13" + }, + { + "name": "python3-urllib3", + "version": "1.22-1ubuntu0.18.04.2" + }, + { + "name": "python3-wadllib", + "version": "1.3.2-3ubuntu0.18.04.1" + }, + { + "name": "python3-xdg", + "version": "0.25-4ubuntu1.1" + }, + { + "name": "python3-xkit", + "version": "0.5.0ubuntu2" + }, + { + "name": "python3-yaml", + "version": "3.12-1build2" + }, + { + "name": "python3-zope.interface", + "version": "4.3.2-1build2" + }, + { + "name": "python3.6", + "version": "3.6.9-1~18.04ubuntu1.4" + }, + { + "name": "python3.6-minimal", + "version": "3.6.9-1~18.04ubuntu1.4" + }, + { + "name": "pytz", + "version": "2018.3" + }, + { + "name": "qpdf", + "version": "8.0.2-3ubuntu0.1" + }, + { + "name": "readline-common", + "version": "7.0-3" + }, + { + "name": "reportlab", + "version": "3.4.0" + }, + { + "name": "requests", + "version": "2.18.4" + }, + { + "name": "requests-unixsocket", + "version": "0.1.5" + }, + { + "name": "rfkill", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "rsync", + "version": "3.1.2-2.1ubuntu1.1" + }, + { + "name": "rsyslog", + "version": "8.32.0-1ubuntu4" + }, + { + "name": "rtkit", + "version": "0.11-6" + }, + { + "name": "samba-libs", + "version": "2:4.7.6+dfsg~ubuntu-0ubuntu2.23" + }, + { + "name": "sane-utils", + "version": "1.0.27-1~experimental3ubuntu2.4" + }, + { + "name": "sbsigntool", + "version": "0.9.2-2ubuntu1~18.04.1" + }, + { + "name": "seahorse", + "version": "3.20.0-5" + }, + { + "name": "secureboot-db", + "version": "1.4~ubuntu0.18.04.1" + }, + { + "name": "sed", + "version": "4.4-2" + }, + { + "name": "sensible-utils", + "version": "0.0.12" + }, + { + "name": "session-migration", + "version": "0.3.3" + }, + { + "name": "shared-mime-info", + "version": "1.9-2" + }, + { + "name": "six", + "version": "1.11.0" + }, + { + "name": "snapd", + "version": "2.49.2+18.04" + }, + { + "name": "software-properties-common", + "version": "0.96.24.32.14" + }, + { + "name": "software-properties-gtk", + "version": "0.96.24.32.14" + }, + { + "name": "sound-icons", + "version": "0.1-6" + }, + { + "name": "speech-dispatcher", + "version": "0.8.8-1ubuntu1" + }, + { + "name": "speech-dispatcher-audio-plugins", + "version": "0.8.8-1ubuntu1" + }, + { + "name": "speech-dispatcher-espeak-ng", + "version": "0.8.8-1ubuntu1" + }, + { + "name": "spice-vdagent", + "version": "0.17.0-1ubuntu2.2" + }, + { + "name": "squashfs-tools", + "version": "1:4.3-6ubuntu0.18.04.4" + }, + { + "name": "strace", + "version": "4.21-1ubuntu1" + }, + { + "name": "sudo", + "version": "1.8.21p2-3ubuntu1.4" + }, + { + "name": "syslinux", + "version": "3:6.03+dfsg1-2" + }, + { + "name": "syslinux-common", + "version": "3:6.03+dfsg1-2" + }, + { + "name": "syslinux-legacy", + "version": "2:3.63+dfsg-2ubuntu9" + }, + { + "name": "system-config-printer", + "version": "1.5.11-1ubuntu2" + }, + { + "name": "system-config-printer-common", + "version": "1.5.11-1ubuntu2" + }, + { + "name": "system-config-printer-udev", + "version": "1.5.11-1ubuntu2" + }, + { + "name": "systemd", + "version": "237-3ubuntu10.52" + }, + { + "name": "systemd-sysv", + "version": "237-3ubuntu10.52" + }, + { + "name": "sysvinit-utils", + "version": "2.88dsf-59.10ubuntu1" + }, + { + "name": "t1utils", + "version": "1.41-2" + }, + { + "name": "tar", + "version": "1.29b-2ubuntu0.2" + }, + { + "name": "tcpdump", + "version": "4.9.3-0ubuntu0.18.04.1" + }, + { + "name": "telnet", + "version": "0.17-41" + }, + { + "name": "thermald", + "version": "1.7.0-5ubuntu5" + }, + { + "name": "tzdata", + "version": "2021a-0ubuntu0.18.04" + }, + { + "name": "ubuntu-advantage-tools", + "version": "27.2.2~18.04.1" + }, + { + "name": "ubuntu-artwork", + "version": "1:16.10+18.04.20181005-0ubuntu1" + }, + { + "name": "ubuntu-desktop", + "version": "1.417.5" + }, + { + "name": "ubuntu-docs", + "version": "18.04.4" + }, + { + "name": "ubuntu-drivers-common", + "version": "1:0.8.6.3~0.18.04.2" + }, + { + "name": "ubuntu-keyring", + "version": "2018.09.18.1~18.04.2" + }, + { + "name": "ubuntu-minimal", + "version": "1.417.5" + }, + { + "name": "ubuntu-mono", + "version": "16.10+18.04.20181005-0ubuntu1" + }, + { + "name": "ubuntu-release-upgrader-core", + "version": "1:18.04.45" + }, + { + "name": "ubuntu-release-upgrader-gtk", + "version": "1:18.04.45" + }, + { + "name": "ubuntu-report", + "version": "1.3.2" + }, + { + "name": "ubuntu-session", + "version": "3.28.1-0ubuntu3" + }, + { + "name": "ubuntu-settings", + "version": "18.04.7" + }, + { + "name": "ubuntu-software", + "version": "3.28.1-0ubuntu4.18.04.15" + }, + { + "name": "ubuntu-sounds", + "version": "0.13" + }, + { + "name": "ubuntu-standard", + "version": "1.417.5" + }, + { + "name": "ubuntu-system-service", + "version": "0.3.1" + }, + { + "name": "ubuntu-wallpapers", + "version": "18.04.1-0ubuntu1" + }, + { + "name": "ubuntu-wallpapers-bionic", + "version": "18.04.1-0ubuntu1" + }, + { + "name": "ucf", + "version": "3.0038" + }, + { + "name": "udev", + "version": "237-3ubuntu10.52" + }, + { + "name": "udisks2", + "version": "2.7.6-3ubuntu0.2" + }, + { + "name": "ufw", + "version": "0.36-0ubuntu0.18.04.1" + }, + { + "name": "unattended-upgrades", + "version": "1.1ubuntu1.18.04.14" + }, + { + "name": "unzip", + "version": "6.0-21ubuntu1.1" + }, + { + "name": "update-inetd", + "version": "4.44" + }, + { + "name": "update-manager", + "version": "1:18.04.11.13" + }, + { + "name": "update-manager-core", + "version": "1:18.04.11.13" + }, + { + "name": "update-notifier", + "version": "3.192.1.12" + }, + { + "name": "update-notifier-common", + "version": "3.192.1.12" + }, + { + "name": "upower", + "version": "0.99.7-2ubuntu0.18.04.1" + }, + { + "name": "ureadahead", + "version": "0.100.0-21" + }, + { + "name": "urllib3", + "version": "1.22" + }, + { + "name": "usb-creator-common", + "version": "0.3.5ubuntu18.04.2" + }, + { + "name": "usb-modeswitch", + "version": "2.5.2+repack0-2ubuntu1" + }, + { + "name": "usb-modeswitch-data", + "version": "20170806-2" + }, + { + "name": "usbmuxd", + "version": "1.1.0-2ubuntu0.1" + }, + { + "name": "usbutils", + "version": "1:007-4build1" + }, + { + "name": "util-linux", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "uuid-runtime", + "version": "2.31.1-0.4ubuntu3.7" + }, + { + "name": "vim-common", + "version": "2:8.0.1453-1ubuntu1.4" + }, + { + "name": "vim-tiny", + "version": "2:8.0.1453-1ubuntu1.4" + }, + { + "name": "wadllib", + "version": "1.3.2" + }, + { + "name": "wamerican", + "version": "2017.08.24-1" + }, + { + "name": "wbritish", + "version": "2017.08.24-1" + }, + { + "name": "wget", + "version": "1.19.4-1ubuntu2.2" + }, + { + "name": "whiptail", + "version": "0.52.20-1ubuntu1" + }, + { + "name": "whoopsie", + "version": "0.2.62ubuntu0.6" + }, + { + "name": "whoopsie-preferences", + "version": "0.19" + }, + { + "name": "wireless-regdb", + "version": "2021.08.28-0ubuntu1~18.04.1" + }, + { + "name": "wireless-tools", + "version": "30~pre9-12ubuntu1" + }, + { + "name": "wpasupplicant", + "version": "2:2.6-15ubuntu2.8" + }, + { + "name": "x11-apps", + "version": "7.7+6ubuntu1" + }, + { + "name": "x11-common", + "version": "1:7.7+19ubuntu7.1" + }, + { + "name": "x11-session-utils", + "version": "7.7+2build1" + }, + { + "name": "x11-utils", + "version": "7.7+3build1" + }, + { + "name": "x11-xkb-utils", + "version": "7.7+3ubuntu0.18.04.1" + }, + { + "name": "x11-xserver-utils", + "version": "7.7+7build1" + }, + { + "name": "xauth", + "version": "1:1.0.10-1" + }, + { + "name": "xbrlapi", + "version": "5.5-4ubuntu2.0.1" + }, + { + "name": "xcursor-themes", + "version": "1.0.4-1" + }, + { + "name": "xdg-desktop-portal", + "version": "1.0.3-0ubuntu0.2" + }, + { + "name": "xdg-desktop-portal-gtk", + "version": "1.0.2-0ubuntu1.1" + }, + { + "name": "xdg-user-dirs", + "version": "0.17-1ubuntu1" + }, + { + "name": "xdg-user-dirs-gtk", + "version": "0.10-2" + }, + { + "name": "xdg-utils", + "version": "1.1.2-1ubuntu2.5" + }, + { + "name": "xfonts-base", + "version": "1:1.0.4+nmu1" + }, + { + "name": "xfonts-encodings", + "version": "1:1.0.4-2" + }, + { + "name": "xinit", + "version": "1.3.4-3ubuntu3" + }, + { + "name": "xinput", + "version": "1.6.2-1build1" + }, + { + "name": "xkb-data", + "version": "2.23.1-1ubuntu1.18.04.1" + }, + { + "name": "xorg", + "version": "1:7.7+19ubuntu7.1" + }, + { + "name": "xserver-common", + "version": "2:1.19.6-1ubuntu4.9" + }, + { + "name": "xserver-xephyr", + "version": "2:1.19.6-1ubuntu4.9" + }, + { + "name": "xserver-xorg-core-hwe-18.04", + "version": "2:1.20.8-2ubuntu2.2~18.04.5" + }, + { + "name": "xserver-xorg-hwe-18.04", + "version": "1:7.7+19ubuntu8~18.04.3" + }, + { + "name": "xserver-xorg-input-all-hwe-18.04", + "version": "1:7.7+19ubuntu8~18.04.3" + }, + { + "name": "xserver-xorg-input-libinput-hwe-18.04", + "version": "0.28.1-1~18.04.1" + }, + { + "name": "xserver-xorg-input-wacom-hwe-18.04", + "version": "1:0.36.1-0ubuntu1~18.04.1" + }, + { + "name": "xserver-xorg-legacy-hwe-18.04", + "version": "2:1.20.8-2ubuntu2.2~18.04.5" + }, + { + "name": "xserver-xorg-video-all-hwe-18.04", + "version": "1:7.7+19ubuntu8~18.04.3" + }, + { + "name": "xserver-xorg-video-amdgpu-hwe-18.04", + "version": "19.1.0-1~18.04.1" + }, + { + "name": "xserver-xorg-video-ati-hwe-18.04", + "version": "1:19.1.0-1~18.04.1" + }, + { + "name": "xserver-xorg-video-fbdev-hwe-18.04", + "version": "1:0.5.0-1ubuntu1~18.04.1" + }, + { + "name": "xserver-xorg-video-intel-hwe-18.04", + "version": "2:2.99.917+git20171229-1ubuntu1~18.04.1" + }, + { + "name": "xserver-xorg-video-nouveau-hwe-18.04", + "version": "1:1.0.16-1~18.04.1" + }, + { + "name": "xserver-xorg-video-qxl-hwe-18.04", + "version": "0.1.5-2build2~18.04.1" + }, + { + "name": "xserver-xorg-video-radeon-hwe-18.04", + "version": "1:19.1.0-1~18.04.1" + }, + { + "name": "xserver-xorg-video-vesa-hwe-18.04", + "version": "1:2.4.0-1~18.04.1" + }, + { + "name": "xserver-xorg-video-vmware-hwe-18.04", + "version": "1:13.3.0-2build1~18.04.1" + }, + { + "name": "xwayland", + "version": "2:1.19.6-1ubuntu4.9" + }, + { + "name": "xxd", + "version": "2:8.0.1453-1ubuntu1.4" + }, + { + "name": "xz-utils", + "version": "5.2.2-1.3" + }, + { + "name": "yelp", + "version": "3.26.0-1ubuntu2" + }, + { + "name": "yelp-xsl", + "version": "3.20.1-4" + }, + { + "name": "zenity", + "version": "3.28.1-1" + }, + { + "name": "zenity-common", + "version": "3.28.1-1" + }, + { + "name": "zlib1g", + "version": "1:1.2.11.dfsg-0ubuntu2" + }, + { + "name": "zope.interface", + "version": "4.3.2" + } +] \ No newline at end of file diff --git a/cmd/osquery-perf/ubuntu_20.04.tmpl b/cmd/osquery-perf/ubuntu_20.04.tmpl new file mode 100644 index 0000000000..1de7005e8c --- /dev/null +++ b/cmd/osquery-perf/ubuntu_20.04.tmpl @@ -0,0 +1,364 @@ +{{ define "enroll" -}} +{ + "enroll_secret": "{{ .EnrollSecret }}", + "host_details": { + "os_version": { + "build": "", + "major": "", + "minor": "", + "name": "", + "patch": "", + "platform": "ubuntu", + "platform_like": "ubuntu", + "version": "Ubuntu 20.4.0" + }, + "osquery_info": { + "build_distro": "20.4.0", + "build_platform": "linux", + "config_hash": "", + "config_valid": "0", + "extensions": "inactive", + "instance_id": "{{ .UUID }}", + "pid": "12947", + "platform_mask": "21", + "start_time": "1580931224", + "uuid": "{{ .UUID }}", + "version": "4.6.0", + "watcher": "12946" + }, + "platform_info": { + "address": "0xff990000", + "date": "12/16/2019 ", + "extra": "MBP114; 196.0.0.0.0; root@xapp160; Mon Dec 16 15:55:18 PST 2019; 196 (B&I); F000_B00; Official Build, Release; Apple LLVM version 5.0 (clang-500.0.68) (based on LLVM 3.3svn)", + "revision": "196 (B&I)", + "size": "8388608", + "vendor": "Apple Inc. ", + "version": "196.0.0.0.0 ", + "volume_size": "1507328" + }, + "system_info": { + "computer_name": "{{ .CachedString "hostname" }}", + "cpu_brand": "Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "cpu_logical_cores": "8", + "cpu_physical_cores": "4", + "cpu_subtype": "Intel x86-64h Haswell", + "cpu_type": "x86_64h", + "hardware_model": "MacBookPro11,4", + "hardware_serial": "D02R835DG8WK", + "hardware_vendor": "Apple Inc.", + "hardware_version": "1.0", + "hostname": "{{ .CachedString "hostname" }}", + "local_hostname": "{{ .CachedString "hostname" }}", + "physical_memory": "17179869184", + "uuid": "{{ .UUID }}" + } + }, + "host_identifier": "{{ .CachedString "hostname" }}", + "platform_type": "16" +} +{{- end }} + +{{ define "fleet_detail_query_network_interface" -}} +[ + { + "point_to_point":"", + "address":"fe80::8cb:112d:ff51:1e5d%en0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"en0", + "mac":"f8:2d:88:93:56:5c", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"", + "address":"192.168.1.3", + "mask":"255.255.255.0", + "broadcast":"192.168.1.255", + "interface":"en0", + "mac":"f5:5a:80:92:52:5b", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"127.0.0.1", + "address":"127.0.0.1", + "mask":"255.0.0.0", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"::1", + "address":"::1", + "mask":"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::1%lo0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::3a:84ff:fe6b:bf75%awdl0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"awdl0", + "mac":"03:3b:94:5b:be:75", + "type":"6", + "mtu":"1484", + "metric":"0", + "ipackets":"0", + "opackets":"16", + "ibytes":"0", + "obytes":"3072", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582842892" + }, + { + "point_to_point":"", + "address":"fe80::6eaf:9721:3476:b691%utun0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"utun0", + "mac":"00:00:00:00:00:00", + "type":"1", + "mtu":"2000", + "metric":"0", + "ipackets":"0", + "opackets":"2", + "ibytes":"0", + "obytes":"0", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840897" + } +] +{{- end }} +{{ define "fleet_detail_query_os_version" -}} +[ + { + "name":"Ubuntu 20.4.0", + "version":"Ubuntu 20.4.0", + "major":"", + "minor":"", + "patch":"", + "build":"", + "platform":"ubuntu", + "platform_like":"ubuntu", + "codename":"" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_flags" -}} +[ + { + "name":"config_refresh", + "value":"{{ printf "%.0f" .ConfigInterval.Seconds }}" + }, + { + "name":"distributed_interval", + "value":"{{ printf "%.0f" .QueryInterval.Seconds }}" + }, + { + "name":"logger_tls_period", + "value":"99999" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_info" -}} +[ + { + "pid":"11287", + "uuid":"{{ .UUID }}", + "instance_id":"{{ .UUID }}", + "version":"4.1.2", + "config_hash":"b01efbf375ac6767f259ae98751154fef727ce35", + "config_valid":"1", + "extensions":"inactive", + "build_platform":"ubuntu", + "build_distro":"20.4.0", + "start_time":"1582857555", + "watcher":"11286", + "platform_mask":"21" + } +] +{{- end }} +{{ define "fleet_detail_query_system_info" -}} +[ + { + "hostname":"{{ .CachedString "hostname" }}", + "uuid":"4740D59F-699E-5B29-960B-979AAF9BBEEB", + "cpu_type":"x86_64h", + "cpu_subtype":"Intel x86-64h Haswell", + "cpu_brand":"Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz", + "cpu_physical_cores":"4", + "cpu_logical_cores":"8", + "cpu_microcode":"", + "physical_memory":"17179869184", + "hardware_vendor":"Apple Inc.", + "hardware_model":"MacBookPro11,4", + "hardware_version":"1.0", + "hardware_serial":"C02R262BM8LN", + "computer_name":"{{ .CachedString "hostname" }}", + "local_hostname":"{{ .CachedString "hostname" }}" + } +] +{{- end }} +{{ define "fleet_detail_query_uptime" -}} +[ + { + "days":"0", + "hours":"4", + "minutes":"38", + "seconds":"11", + "total_seconds":"16691" + } +] +{{- end }} + +{{ define "fleet_detail_query_users" -}} +[ + {{ range $index, $item := .HostUsersMacOS }} + {{if $index}},{{end}} + { + "uid": "{{ .Uid }}", + "username": "{{ .Username }}", + "type": "{{ .Type }}", + "groupname": "{{ .GroupName }}", + "shell": "{{ .Shell }}" + } + {{- end }} +] +{{- end }} + +{{/* all hosts */}} +{{ define "fleet_label_query_6" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All macOS hosts */}} +{{ define "fleet_label_query_7" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All Ubuntu hosts */}} +{{ define "fleet_label_query_8" -}} +[] +{{- end }} + +{{/* All CentOS hosts */}} +{{ define "fleet_label_query_9" -}} +[] +{{- end }} + +{{/* All Windows hosts */}} +{{ define "fleet_label_query_10" -}} +[] +{{- end }} + +{{/* All Red Hat hosts */}} +{{ define "fleet_label_query_11" -}} +[] +{{- end }} + +{{/* All Linux distributions */}} +{{ define "fleet_label_query_12" -}} +[] +{{- end }} + +{{ define "fleet_detail_query_software_linux" -}} +[ + {{ range $index, $item := .SoftwareUbuntu2004 }} + {{if $index}},{{end}} + { + "name": "{{ .Name }}", + "version": "{{ .Version }}", + "type": "Application", + "bundle_identifier": "{{ .BundleIdentifier }}", + "source": "apps", + {{/* Note that in Go < 1.18, `{{ or (and .LastOpendedAt .LastOpenedAt.Unix) "" }}` won't work as expected because "and" and "or" don't short circuit. This was changed in Go 1.18 */}} + {{if .LastOpenedAt}} + "last_opened_at": "{{ .LastOpenedAt.Unix }}" + {{else}} + "last_opened_at": "-1" + {{end}} + } + {{- end }} +] +{{- end }} diff --git a/cmd/osquery-perf/ubuntu_2004-vulnerable_software.json b/cmd/osquery-perf/ubuntu_2004-vulnerable_software.json new file mode 100644 index 0000000000..cd8de439dd --- /dev/null +++ b/cmd/osquery-perf/ubuntu_2004-vulnerable_software.json @@ -0,0 +1,5974 @@ +[ + { + "name": "defer", + "version": "1.0.6" + }, + { + "name": "dmz-cursor-theme", + "version": "0.4.5ubuntu1" + }, + { + "name": "grub-gfxpayload-lists", + "version": "0.7" + }, + { + "name": "hicolor-icon-theme", + "version": "0.17-2" + }, + { + "name": "language-selector", + "version": "0.1" + }, + { + "name": "laptop-detect", + "version": "0.16" + }, + { + "name": "libnet-smtp-ssl-perl", + "version": "1.04-1" + }, + { + "name": "libxml-xpathengine-perl", + "version": "0.14-1" + }, + { + "name": "pymacaroons", + "version": "0.13.0" + }, + { + "name": "sound-theme-freedesktop", + "version": "0.8-2ubuntu1" + }, + { + "name": "ubuntu-drivers-common", + "version": "0.0.0" + }, + { + "name": "unattended-upgrades", + "version": "0.1" + }, + { + "name": "aspell-en", + "version": "2018.04.16-0-1" + }, + { + "name": "emacsen-common", + "version": "3.0.4" + }, + { + "name": "fonts-deva-extra", + "version": "3.0-5" + }, + { + "name": "fonts-gujr-extra", + "version": "1.0.1-1" + }, + { + "name": "fonts-guru-extra", + "version": "2.0-5" + }, + { + "name": "fonts-kacst-one", + "version": "5.0+svn11846-10" + }, + { + "name": "fonts-liberation", + "version": "1:1.07.4-11" + }, + { + "name": "fonts-lohit-deva", + "version": "2.95.4-4" + }, + { + "name": "fonts-lohit-gujr", + "version": "2.92.4-4" + }, + { + "name": "fonts-orya-extra", + "version": "2.0-6" + }, + { + "name": "fonts-smc-meera", + "version": "7.0.3-1" + }, + { + "name": "fonts-smc-raghumalayalamsans", + "version": "2.2.1-1" + }, + { + "name": "fonts-smc-suruma", + "version": "3.2.3-1" + }, + { + "name": "fonts-smc-uroob", + "version": "2.0.2-1" + }, + { + "name": "libhtml-form-perl", + "version": "6.07-1" + }, + { + "name": "libhtml-tagset-perl", + "version": "3.20-4" + }, + { + "name": "libhtml-tree-perl", + "version": "5.07-2" + }, + { + "name": "libhttp-date-perl", + "version": "6.05-1" + }, + { + "name": "libhttp-negotiate-perl", + "version": "6.01-1" + }, + { + "name": "libio-stringy-perl", + "version": "2.111-3" + }, + { + "name": "liblwp-mediatypes-perl", + "version": "6.04-1" + }, + { + "name": "libmailtools-perl", + "version": "2.21-1" + }, + { + "name": "libtext-wrapi18n-perl", + "version": "0.06-9" + }, + { + "name": "libwww-robotrules-perl", + "version": "6.02-1" + }, + { + "name": "macaroonbakery", + "version": "1.3.1" + }, + { + "name": "olefile", + "version": "0.46" + }, + { + "name": "osquery", + "version": "5.2.3-1.linux" + }, + { + "name": "policykit-desktop-privileges", + "version": "0.21" + }, + { + "name": "powermgmt-base", + "version": "1.36" + }, + { + "name": "pyRFC3339", + "version": "1.1" + }, + { + "name": "xcursor-themes", + "version": "1.0.6-0ubuntu1" + }, + { + "name": "xfonts-base", + "version": "1:1.0.5" + }, + { + "name": "xml-core", + "version": "0.18+nmu1" + }, + { + "name": "nessusagent", + "version": "10.1.3" + }, + { + "name": "PyJWT", + "version": "1.7.1" + }, + { + "name": "dbus-python", + "version": "1.2.16" + }, + { + "name": "docbook-xml", + "version": "4.5-9" + }, + { + "name": "fonts-beng-extra", + "version": "1.0-7" + }, + { + "name": "gir1.2-gmenu-3.0", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gnome-menus", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "humanity-icon-theme", + "version": "0.6.15" + }, + { + "name": "launchpadlib", + "version": "1.10.13" + }, + { + "name": "lazr.restfulclient", + "version": "0.14.2" + }, + { + "name": "libatasmart4", + "version": "0.19-5" + }, + { + "name": "libextutils-depends-perl", + "version": "0.8000-1" + }, + { + "name": "libfile-basedir-perl", + "version": "0.08-1" + }, + { + "name": "libglu1-mesa", + "version": "9.0.1-1build1" + }, + { + "name": "libgnome-menu-3-0", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "libhyphen0", + "version": "2.8.8-7" + }, + { + "name": "libjbig0", + "version": "2.1-3.1build1" + }, + { + "name": "libjpeg8", + "version": "8c-2ubuntu8" + }, + { + "name": "liblmdb0", + "version": "0.9.24-1" + }, + { + "name": "libnfnetlink0", + "version": "1.0.1-3build1" + }, + { + "name": "libnfs13", + "version": "4.0.0-1" + }, + { + "name": "libtasn1-6", + "version": "4.16.0-2" + }, + { + "name": "libtheora0", + "version": "1.1.1+dfsg.1-15ubuntu2" + }, + { + "name": "libtry-tiny-perl", + "version": "0.30-1" + }, + { + "name": "libxcomposite1", + "version": "1:0.4.5-1" + }, + { + "name": "libxdamage1", + "version": "1:1.1.5-2" + }, + { + "name": "libxmu6", + "version": "2:1.1.3-0ubuntu1" + }, + { + "name": "libxmuu1", + "version": "2:1.1.3-0ubuntu1" + }, + { + "name": "libxpm4", + "version": "1:3.5.12-1" + }, + { + "name": "libxrandr2", + "version": "2:1.5.2-0ubuntu1" + }, + { + "name": "libxslt1.1", + "version": "1.1.34-4" + }, + { + "name": "libxss1", + "version": "1:1.2.3-1" + }, + { + "name": "libxv1", + "version": "2:1.0.11-1" + }, + { + "name": "libxxf86vm1", + "version": "1:1.1.4-1build1" + }, + { + "name": "libyaml-0-2", + "version": "0.2.2-1" + }, + { + "name": "mawk", + "version": "1.3.4.20200120-2" + }, + { + "name": "oauthlib", + "version": "3.1.0" + }, + { + "name": "python3-defer", + "version": "1.0.6-2.1" + }, + { + "name": "python3-jwt", + "version": "1.7.1-2ubuntu2" + }, + { + "name": "python3-launchpadlib", + "version": "1.10.13-1" + }, + { + "name": "python3-lazr.restfulclient", + "version": "0.14.2-2build1" + }, + { + "name": "python3-macaroonbakery", + "version": "1.3.1-1" + }, + { + "name": "python3-rfc3339", + "version": "1.1-2" + }, + { + "name": "python3-xkit", + "version": "0.5.0ubuntu4" + }, + { + "name": "sound-icons", + "version": "0.1-7" + }, + { + "name": "usb-modeswitch-data", + "version": "20191128-3" + }, + { + "name": "x11-apps", + "version": "7.7+8" + }, + { + "name": "xfonts-encodings", + "version": "1:1.0.5-0ubuntu1" + }, + { + "name": "xserver-xorg-video-vmware", + "version": "1:13.3.0-3" + }, + { + "name": "Amazon.com", + "version": "1.3" + }, + { + "name": "Bing", + "version": "1.3" + }, + { + "name": "DoH Roll-Out", + "version": "2.0.0" + }, + { + "name": "DuckDuckGo", + "version": "1.1" + }, + { + "name": "Google", + "version": "1.1" + }, + { + "name": "Wikipedia (en)", + "version": "1.1" + }, + { + "name": "acpi-support", + "version": "0.143" + }, + { + "name": "acpid", + "version": "1:2.0.32-1ubuntu1" + }, + { + "name": "amd64-microcode", + "version": "3.20191218.1ubuntu1" + }, + { + "name": "apg", + "version": "2.2.3.dfsg.1-5" + }, + { + "name": "app-install-data-partner", + "version": "19.04" + }, + { + "name": "cups-pk-helper", + "version": "0.2.6-1ubuntu3" + }, + { + "name": "gir1.2-dbusmenu-glib-0.4", + "version": "16.04.1+18.10.20180917-0ubuntu6" + }, + { + "name": "gir1.2-wnck-3.0", + "version": "3.36.0-1" + }, + { + "name": "gkbd-capplet", + "version": "3.26.1-1" + }, + { + "name": "gnome-accessibility-themes", + "version": "3.28-1ubuntu1" + }, + { + "name": "gnome-keyring", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gnome-keyring-pkcs11", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gnome-power-manager", + "version": "3.32.0-2" + }, + { + "name": "gnome-themes-extra", + "version": "3.28-1ubuntu1" + }, + { + "name": "gnome-themes-extra-data", + "version": "3.28-1ubuntu1" + }, + { + "name": "gsettings-ubuntu-schemas", + "version": "0.0.7+17.10.20170922-0ubuntu1" + }, + { + "name": "gtk2-engines-murrine", + "version": "0.98.2-3" + }, + { + "name": "hostname", + "version": "3.23" + }, + { + "name": "iucode-tool", + "version": "2.3.1-1" + }, + { + "name": "libao-common", + "version": "1.2.2+20180113-1ubuntu1" + }, + { + "name": "libao4", + "version": "1.2.2+20180113-1ubuntu1" + }, + { + "name": "libasyncns0", + "version": "0.8-6" + }, + { + "name": "libatm1", + "version": "1:2.5.1-4" + }, + { + "name": "libavc1394-0", + "version": "0.5.4-5" + }, + { + "name": "libcairomm-1.0-1v5", + "version": "1.12.2-4build1" + }, + { + "name": "libclutter-gtk-1.0-0", + "version": "1.8.4-4" + }, + { + "name": "libcolord-gtk1", + "version": "0.2.0-0ubuntu1" + }, + { + "name": "libdbusmenu-glib4", + "version": "16.04.1+18.10.20180917-0ubuntu6" + }, + { + "name": "libdbusmenu-gtk3-4", + "version": "16.04.1+18.10.20180917-0ubuntu6" + }, + { + "name": "libdotconf0", + "version": "1.3-0.3fakesync1" + }, + { + "name": "libgeocode-glib0", + "version": "3.26.2-2" + }, + { + "name": "libgnomekbd-common", + "version": "3.26.1-1" + }, + { + "name": "libgnomekbd8", + "version": "3.26.1-1" + }, + { + "name": "libgupnp-av-1.0-2", + "version": "0.12.11-2" + }, + { + "name": "libgupnp-dlna-2.0-3", + "version": "0.10.5-4" + }, + { + "name": "libijs-0.35", + "version": "0.35-15" + }, + { + "name": "libimagequant0", + "version": "2.12.2-1.1" + }, + { + "name": "libmp3lame0", + "version": "3.100-3" + }, + { + "name": "libndp0", + "version": "1.7-0ubuntu1" + }, + { + "name": "libpam-gnome-keyring", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "libpaper-utils", + "version": "1.1.28" + }, + { + "name": "libpaper1", + "version": "1.1.28" + }, + { + "name": "libsm6", + "version": "2:1.2.3-1" + }, + { + "name": "libsmbios-c2", + "version": "2.4.3-1" + }, + { + "name": "libsodium23", + "version": "1.0.18-1" + }, + { + "name": "libstartup-notification0", + "version": "0.12-6" + }, + { + "name": "libtwolame0", + "version": "0.4.0-2" + }, + { + "name": "libvisual-0.4-0", + "version": "0.4.0-17" + }, + { + "name": "libwebrtc-audio-processing1", + "version": "0.3.1-0ubuntu3" + }, + { + "name": "libwhoopsie-preferences0", + "version": "22" + }, + { + "name": "libwmf0.2-7", + "version": "0.2.8.4-17ubuntu1" + }, + { + "name": "libwmf0.2-7-gtk", + "version": "0.2.8.4-17ubuntu1" + }, + { + "name": "libwnck-3-0", + "version": "3.36.0-1" + }, + { + "name": "libwnck-3-common", + "version": "3.36.0-1" + }, + { + "name": "libwoff1", + "version": "1.0.2-1build2" + }, + { + "name": "libxcb-icccm4", + "version": "0.4.1-1.1" + }, + { + "name": "libxcb-image0", + "version": "0.4.0-1build1" + }, + { + "name": "libxcb-keysyms1", + "version": "0.4.0-1build1" + }, + { + "name": "libxcb-render-util0", + "version": "0.3.9-1build1" + }, + { + "name": "libxklavier16", + "version": "5.4-4" + }, + { + "name": "libxres1", + "version": "2:1.2.0-4" + }, + { + "name": "libxvmc1", + "version": "2:1.0.12-2" + }, + { + "name": "libxxf86dga1", + "version": "2:1.1.5-0ubuntu1" + }, + { + "name": "lsb-base", + "version": "11.1.0ubuntu2" + }, + { + "name": "lsb-release", + "version": "11.1.0ubuntu2" + }, + { + "name": "nautilus-share", + "version": "0.7.3-2ubuntu3" + }, + { + "name": "pptp-linux", + "version": "1.10.0-1build1" + }, + { + "name": "printer-driver-brlaser", + "version": "6-1build1" + }, + { + "name": "printer-driver-m2300w", + "version": "0.51-14" + }, + { + "name": "printer-driver-min12xxw", + "version": "0.0.9-11" + }, + { + "name": "printer-driver-pxljr", + "version": "1.4+repack0-5" + }, + { + "name": "printer-driver-sag-gdi", + "version": "0.1-7" + }, + { + "name": "printer-driver-splix", + "version": "2.0.0+svn315-7fakesync1build1" + }, + { + "name": "session-migration", + "version": "0.3.5" + }, + { + "name": "whoopsie-preferences", + "version": "22" + }, + { + "name": "x11-session-utils", + "version": "7.7+4" + }, + { + "name": "x11-utils", + "version": "7.7+5" + }, + { + "name": "x11-xserver-utils", + "version": "7.7+8" + }, + { + "name": "xdg-user-dirs-gtk", + "version": "0.10-3" + }, + { + "name": "xfonts-utils", + "version": "1:7.7+6" + }, + { + "name": "xinit", + "version": "1.4.1-0ubuntu2" + }, + { + "name": "xinput", + "version": "1.6.3-1" + }, + { + "name": "xserver-xorg-input-wacom", + "version": "1:0.39.0-0ubuntu1" + }, + { + "name": "xserver-xorg-video-qxl", + "version": "0.1.5+git20200331-1" + }, + { + "name": "xul-ext-ubufox", + "version": "3.4-0ubuntu1.17.10.1" + }, + { + "name": "Add-ons Search Detection", + "version": "2.0.0" + }, + { + "name": "Click", + "version": "7.0" + }, + { + "name": "Dark", + "version": "1.2" + }, + { + "name": "English (CA) Language Pack", + "version": "97.0buildid20220202.182137" + }, + { + "name": "English (GB) Language Pack", + "version": "97.0buildid20220202.182137" + }, + { + "name": "Firefox Alpenglow", + "version": "1.4" + }, + { + "name": "Firefox Screenshots", + "version": "39.0.1" + }, + { + "name": "Form Autofill", + "version": "1.0.1" + }, + { + "name": "Light", + "version": "1.2" + }, + { + "name": "Picture-In-Picture", + "version": "1.0.0" + }, + { + "name": "Pillow", + "version": "7.0.0" + }, + { + "name": "PyGObject", + "version": "3.36.0" + }, + { + "name": "PyNaCl", + "version": "1.3.0" + }, + { + "name": "SecretStorage", + "version": "2.3.1" + }, + { + "name": "System theme — auto", + "version": "1.3" + }, + { + "name": "Web Compatibility Interventions", + "version": "29.7.0" + }, + { + "name": "WebCompat Reporter", + "version": "1.4.2" + }, + { + "name": "accountsservice", + "version": "0.6.55-0ubuntu12~20.04.5" + }, + { + "name": "acl", + "version": "2.2.53-6" + }, + { + "name": "adduser", + "version": "3.118ubuntu2" + }, + { + "name": "adwaita-icon-theme", + "version": "3.36.1-2ubuntu0.20.04.2" + }, + { + "name": "alsa-base", + "version": "1.0.25+dfsg-0ubuntu5" + }, + { + "name": "alsa-topology-conf", + "version": "1.2.2-1" + }, + { + "name": "alsa-ucm-conf", + "version": "1.2.2-1ubuntu0.11" + }, + { + "name": "alsa-utils", + "version": "1.2.2-1ubuntu2.1" + }, + { + "name": "anacron", + "version": "2.3-29" + }, + { + "name": "apparmor", + "version": "2.13.3-7ubuntu5.1" + }, + { + "name": "apport", + "version": "2.20.11-0ubuntu27.21" + }, + { + "name": "apport-gtk", + "version": "2.20.11-0ubuntu27.21" + }, + { + "name": "apport-symptoms", + "version": "0.23" + }, + { + "name": "appstream", + "version": "0.12.10-2" + }, + { + "name": "apt", + "version": "2.0.6" + }, + { + "name": "apt-config-icons", + "version": "0.12.10-2" + }, + { + "name": "apt-config-icons-hidpi", + "version": "0.12.10-2" + }, + { + "name": "apt-utils", + "version": "2.0.6" + }, + { + "name": "aptdaemon", + "version": "1.1.1+bzr982-0ubuntu32.3" + }, + { + "name": "aptdaemon-data", + "version": "1.1.1+bzr982-0ubuntu32.3" + }, + { + "name": "apturl", + "version": "0.5.2ubuntu19" + }, + { + "name": "apturl-common", + "version": "0.5.2ubuntu19" + }, + { + "name": "aspell", + "version": "0.60.8-1ubuntu0.1" + }, + { + "name": "at-spi2-core", + "version": "2.36.0-2" + }, + { + "name": "avahi-autoipd", + "version": "0.7-4ubuntu7.1" + }, + { + "name": "avahi-daemon", + "version": "0.7-4ubuntu7.1" + }, + { + "name": "avahi-utils", + "version": "0.7-4ubuntu7.1" + }, + { + "name": "base-files", + "version": "11ubuntu5.5" + }, + { + "name": "base-passwd", + "version": "3.5.47" + }, + { + "name": "bash", + "version": "5.0-6ubuntu1.1" + }, + { + "name": "bash-completion", + "version": "1:2.10-1ubuntu1" + }, + { + "name": "bc", + "version": "1.07.1-2build1" + }, + { + "name": "bind9-dnsutils", + "version": "1:9.16.1-0ubuntu2.9" + }, + { + "name": "bind9-host", + "version": "1:9.16.1-0ubuntu2.9" + }, + { + "name": "bind9-libs", + "version": "1:9.16.1-0ubuntu2.9" + }, + { + "name": "bluez", + "version": "5.53-0ubuntu3.5" + }, + { + "name": "bluez-cups", + "version": "5.53-0ubuntu3.5" + }, + { + "name": "bluez-obexd", + "version": "5.53-0ubuntu3.5" + }, + { + "name": "bolt", + "version": "0.8-4ubuntu1" + }, + { + "name": "brltty", + "version": "6.0+dfsg-4ubuntu6" + }, + { + "name": "bsdmainutils", + "version": "11.1.2ubuntu3" + }, + { + "name": "bsdutils", + "version": "1:2.34-0.1ubuntu9.3" + }, + { + "name": "bubblewrap", + "version": "0.4.0-1ubuntu4" + }, + { + "name": "busybox-initramfs", + "version": "1:1.30.1-4ubuntu6.4" + }, + { + "name": "busybox-static", + "version": "1:1.30.1-4ubuntu6.4" + }, + { + "name": "bzip2", + "version": "1.0.8-2" + }, + { + "name": "ca-certificates", + "version": "20210119~20.04.2" + }, + { + "name": "certifi", + "version": "2019.11.28" + }, + { + "name": "chardet", + "version": "3.0.4" + }, + { + "name": "cheese-common", + "version": "3.34.0-1ubuntu1" + }, + { + "name": "colorama", + "version": "0.4.3" + }, + { + "name": "colord", + "version": "1.4.4-2" + }, + { + "name": "colord-data", + "version": "1.4.4-2" + }, + { + "name": "command-not-found", + "version": "20.04.5" + }, + { + "name": "console-setup", + "version": "1.194ubuntu3" + }, + { + "name": "console-setup-linux", + "version": "1.194ubuntu3" + }, + { + "name": "coreutils", + "version": "8.30-3ubuntu2" + }, + { + "name": "cpio", + "version": "2.13+dfsg-2ubuntu0.3" + }, + { + "name": "cpp", + "version": "4:9.3.0-1ubuntu2" + }, + { + "name": "cpp-9", + "version": "9.3.0-17ubuntu1~20.04" + }, + { + "name": "cracklib-runtime", + "version": "2.9.6-3.2" + }, + { + "name": "crda", + "version": "3.18-1build1" + }, + { + "name": "cron", + "version": "3.0pl1-136ubuntu1" + }, + { + "name": "cryptography", + "version": "2.8" + }, + { + "name": "cups", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "cups-browsed", + "version": "1.27.4-1" + }, + { + "name": "cups-bsd", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "cups-client", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "cups-common", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "cups-core-drivers", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "cups-daemon", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "cups-filters", + "version": "1.27.4-1" + }, + { + "name": "cups-filters-core-drivers", + "version": "1.27.4-1" + }, + { + "name": "cups-ipp-utils", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "cups-ppdc", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "cups-server-common", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "dash", + "version": "0.5.10.2-6" + }, + { + "name": "dbus", + "version": "1.12.16-2ubuntu2.1" + }, + { + "name": "dbus-user-session", + "version": "1.12.16-2ubuntu2.1" + }, + { + "name": "dbus-x11", + "version": "1.12.16-2ubuntu2.1" + }, + { + "name": "dc", + "version": "1.07.1-2build1" + }, + { + "name": "dconf-cli", + "version": "0.36.0-1" + }, + { + "name": "dconf-gsettings-backend", + "version": "0.36.0-1" + }, + { + "name": "dconf-service", + "version": "0.36.0-1" + }, + { + "name": "debconf", + "version": "1.5.73" + }, + { + "name": "debconf-i18n", + "version": "1.5.73" + }, + { + "name": "debianutils", + "version": "4.9.1" + }, + { + "name": "desktop-file-utils", + "version": "0.24-1ubuntu3" + }, + { + "name": "dictionaries-common", + "version": "1.28.1" + }, + { + "name": "diffutils", + "version": "1:3.7-3" + }, + { + "name": "dirmngr", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "distro", + "version": "1.4.0" + }, + { + "name": "distro-info", + "version": "0.23ubuntu1" + }, + { + "name": "distro-info", + "version": "0.23ubuntu1" + }, + { + "name": "distro-info-data", + "version": "0.43ubuntu1.9" + }, + { + "name": "dmidecode", + "version": "3.2-3" + }, + { + "name": "dmsetup", + "version": "2:1.02.167-1ubuntu1" + }, + { + "name": "dns-root-data", + "version": "2019052802" + }, + { + "name": "dnsmasq-base", + "version": "2.80-1.1ubuntu1.4" + }, + { + "name": "dosfstools", + "version": "4.1-2" + }, + { + "name": "dpkg", + "version": "1.19.7ubuntu3" + }, + { + "name": "e2fsprogs", + "version": "1.45.5-2ubuntu1" + }, + { + "name": "ed", + "version": "1.16-1" + }, + { + "name": "eject", + "version": "2.1.5+deb1+cvs20081104-14" + }, + { + "name": "enchant-2", + "version": "2.2.8-1ubuntu0.20.04.1" + }, + { + "name": "eog", + "version": "3.36.3-0ubuntu1" + }, + { + "name": "espeak-ng-data", + "version": "1.50+dfsg-6" + }, + { + "name": "evince", + "version": "3.36.10-0ubuntu1" + }, + { + "name": "evince-common", + "version": "3.36.10-0ubuntu1" + }, + { + "name": "evolution-data-server", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "evolution-data-server-common", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "fdisk", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "file", + "version": "1:5.38-4" + }, + { + "name": "file-roller", + "version": "3.36.3-0ubuntu1.1" + }, + { + "name": "findutils", + "version": "4.7.0-1ubuntu1" + }, + { + "name": "firefox", + "version": "97.0+build2-0ubuntu0.20.04.1" + }, + { + "name": "firefox-locale-en", + "version": "97.0+build2-0ubuntu0.20.04.1" + }, + { + "name": "fontconfig", + "version": "2.13.1-2ubuntu3" + }, + { + "name": "fontconfig-config", + "version": "2.13.1-2ubuntu3" + }, + { + "name": "fonts-beng", + "version": "2:1.2" + }, + { + "name": "fonts-dejavu-core", + "version": "2.37-1" + }, + { + "name": "fonts-deva", + "version": "2:1.2" + }, + { + "name": "fonts-droid-fallback", + "version": "1:6.0.1r16-1.1" + }, + { + "name": "fonts-freefont-ttf", + "version": "20120503-10" + }, + { + "name": "fonts-gargi", + "version": "2.0-4" + }, + { + "name": "fonts-gubbi", + "version": "1.3-3" + }, + { + "name": "fonts-gujr", + "version": "2:1.3" + }, + { + "name": "fonts-guru", + "version": "2:1.2" + }, + { + "name": "fonts-indic", + "version": "2:1.3" + }, + { + "name": "fonts-kacst", + "version": "2.01+mry-14" + }, + { + "name": "fonts-kalapi", + "version": "1.0-3" + }, + { + "name": "fonts-khmeros-core", + "version": "5.0-7ubuntu1" + }, + { + "name": "fonts-knda", + "version": "2:1.2" + }, + { + "name": "fonts-lao", + "version": "0.0.20060226-9ubuntu1" + }, + { + "name": "fonts-liberation2", + "version": "2.1.0-1" + }, + { + "name": "fonts-lklug-sinhala", + "version": "0.6-3" + }, + { + "name": "fonts-lohit-beng-assamese", + "version": "2.91.5-1" + }, + { + "name": "fonts-lohit-beng-bengali", + "version": "2.91.5-1" + }, + { + "name": "fonts-lohit-guru", + "version": "2.91.2-1" + }, + { + "name": "fonts-lohit-knda", + "version": "2.5.4-2" + }, + { + "name": "fonts-lohit-mlym", + "version": "2.92.2-1" + }, + { + "name": "fonts-lohit-orya", + "version": "2.91.2-1" + }, + { + "name": "fonts-lohit-taml", + "version": "2.91.3-1" + }, + { + "name": "fonts-lohit-taml-classical", + "version": "2.5.4-1" + }, + { + "name": "fonts-lohit-telu", + "version": "2.5.5-1" + }, + { + "name": "fonts-mlym", + "version": "2:1.2" + }, + { + "name": "fonts-nakula", + "version": "1.0-3" + }, + { + "name": "fonts-navilu", + "version": "1.2-2" + }, + { + "name": "fonts-noto-cjk", + "version": "1:20190410+repack1-2" + }, + { + "name": "fonts-noto-color-emoji", + "version": "0~20200916-1~ubuntu20.04.1" + }, + { + "name": "fonts-noto-mono", + "version": "20200323-1build1~ubuntu20.04.1" + }, + { + "name": "fonts-opensymbol", + "version": "2:102.11+LibO6.4.7-0ubuntu0.20.04.2" + }, + { + "name": "fonts-orya", + "version": "2:1.2" + }, + { + "name": "fonts-pagul", + "version": "1.0-7" + }, + { + "name": "fonts-sahadeva", + "version": "1.0-4" + }, + { + "name": "fonts-samyak-deva", + "version": "1.2.2-4" + }, + { + "name": "fonts-samyak-gujr", + "version": "1.2.2-4" + }, + { + "name": "fonts-samyak-mlym", + "version": "1.2.2-4" + }, + { + "name": "fonts-samyak-taml", + "version": "1.2.2-4" + }, + { + "name": "fonts-sarai", + "version": "1.0-2" + }, + { + "name": "fonts-sil-abyssinica", + "version": "2.000-1" + }, + { + "name": "fonts-sil-padauk", + "version": "4.000-1" + }, + { + "name": "fonts-smc", + "version": "1:7.1" + }, + { + "name": "fonts-smc-anjalioldlipi", + "version": "7.1.2-1" + }, + { + "name": "fonts-smc-chilanka", + "version": "1.400-1" + }, + { + "name": "fonts-smc-dyuthi", + "version": "3.0.2-1" + }, + { + "name": "fonts-smc-gayathri", + "version": "1.100-1" + }, + { + "name": "fonts-smc-karumbi", + "version": "1.1.2-1" + }, + { + "name": "fonts-smc-keraleeyam", + "version": "3.0.2-1" + }, + { + "name": "fonts-smc-manjari", + "version": "1.710-1" + }, + { + "name": "fonts-smc-rachana", + "version": "7.0.2-1" + }, + { + "name": "fonts-taml", + "version": "2:1.3" + }, + { + "name": "fonts-telu", + "version": "2:1.2" + }, + { + "name": "fonts-telu-extra", + "version": "2.0-4" + }, + { + "name": "fonts-thai-tlwg", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tibetan-machine", + "version": "1.901b-5" + }, + { + "name": "fonts-tlwg-garuda", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-garuda-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-kinnari", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-kinnari-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-laksaman", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-laksaman-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-loma", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-loma-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-mono", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-mono-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-norasi", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-norasi-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-purisa", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-purisa-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-sawasdee", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-sawasdee-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-typewriter", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-typewriter-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-typist", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-typist-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-typo", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-typo-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-umpush", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-umpush-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-waree", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-tlwg-waree-ttf", + "version": "1:0.7.1-3" + }, + { + "name": "fonts-ubuntu", + "version": "0.83-4ubuntu1" + }, + { + "name": "fonts-urw-base35", + "version": "20170801.1-3" + }, + { + "name": "fonts-yrsa-rasa", + "version": "1.002-2" + }, + { + "name": "foomatic-db-compressed-ppds", + "version": "20200401-1" + }, + { + "name": "fprintd", + "version": "1.90.9-1~ubuntu20.04.1" + }, + { + "name": "friendly-recovery", + "version": "0.2.41ubuntu0.20.04.1" + }, + { + "name": "ftp", + "version": "0.17-34.1" + }, + { + "name": "fuse", + "version": "2.9.9-3" + }, + { + "name": "fwupd", + "version": "1.5.11-0ubuntu1~20.04.2" + }, + { + "name": "fwupd-signed", + "version": "1.27.1ubuntu5+1.5.11-0ubuntu1~20.04.2" + }, + { + "name": "gamemode", + "version": "1.5.1-0ubuntu3.1" + }, + { + "name": "gcc-10-base", + "version": "10.3.0-1ubuntu1~20.04" + }, + { + "name": "gcc-9-base", + "version": "9.3.0-17ubuntu1~20.04" + }, + { + "name": "gcr", + "version": "3.36.0-2build1" + }, + { + "name": "gdb", + "version": "9.2-0ubuntu1~20.04.1" + }, + { + "name": "gdbserver", + "version": "9.2-0ubuntu1~20.04.1" + }, + { + "name": "gdisk", + "version": "1.0.5-1" + }, + { + "name": "gdm3", + "version": "3.36.3-0ubuntu0.20.04.4" + }, + { + "name": "gedit", + "version": "3.36.2-0ubuntu1" + }, + { + "name": "gedit-common", + "version": "3.36.2-0ubuntu1" + }, + { + "name": "genisoimage", + "version": "9:1.1.11-3.1ubuntu1" + }, + { + "name": "geoclue-2.0", + "version": "2.5.6-0ubuntu1" + }, + { + "name": "gettext-base", + "version": "0.19.8.1-10build1" + }, + { + "name": "ghostscript", + "version": "9.50~dfsg-5ubuntu4.5" + }, + { + "name": "ghostscript-x", + "version": "9.50~dfsg-5ubuntu4.5" + }, + { + "name": "gir1.2-accountsservice-1.0", + "version": "0.6.55-0ubuntu12~20.04.5" + }, + { + "name": "gir1.2-atk-1.0", + "version": "2.35.1-1ubuntu2" + }, + { + "name": "gir1.2-atspi-2.0", + "version": "2.36.0-2" + }, + { + "name": "gir1.2-clutter-1.0", + "version": "1.26.4+dfsg-1" + }, + { + "name": "gir1.2-clutter-gst-3.0", + "version": "3.0.27-1" + }, + { + "name": "gir1.2-cogl-1.0", + "version": "1.22.6-1" + }, + { + "name": "gir1.2-coglpango-1.0", + "version": "1.22.6-1" + }, + { + "name": "gir1.2-dee-1.0", + "version": "1.2.7+17.10.20170616-4ubuntu6" + }, + { + "name": "gir1.2-freedesktop", + "version": "1.64.1-1~ubuntu20.04.1" + }, + { + "name": "gir1.2-gck-1", + "version": "3.36.0-2build1" + }, + { + "name": "gir1.2-gcr-3", + "version": "3.36.0-2build1" + }, + { + "name": "gir1.2-gdesktopenums-3.0", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gir1.2-gdkpixbuf-2.0", + "version": "2.40.0+dfsg-3ubuntu0.2" + }, + { + "name": "gir1.2-gdm-1.0", + "version": "3.36.3-0ubuntu0.20.04.4" + }, + { + "name": "gir1.2-geoclue-2.0", + "version": "2.5.6-0ubuntu1" + }, + { + "name": "gir1.2-glib-2.0", + "version": "1.64.1-1~ubuntu20.04.1" + }, + { + "name": "gir1.2-gnomebluetooth-1.0", + "version": "3.34.3-0ubuntu1" + }, + { + "name": "gir1.2-gnomedesktop-3.0", + "version": "3.36.8-0ubuntu1" + }, + { + "name": "gir1.2-goa-1.0", + "version": "3.36.1-0ubuntu1" + }, + { + "name": "gir1.2-graphene-1.0", + "version": "1.10.0-1build2" + }, + { + "name": "gir1.2-gst-plugins-base-1.0", + "version": "1.16.2-4ubuntu0.1" + }, + { + "name": "gir1.2-gstreamer-1.0", + "version": "1.16.2-2" + }, + { + "name": "gir1.2-gtk-3.0", + "version": "3.24.20-0ubuntu1" + }, + { + "name": "gir1.2-gtkclutter-1.0", + "version": "1.8.4-4" + }, + { + "name": "gir1.2-gtksource-4", + "version": "4.6.0-1" + }, + { + "name": "gir1.2-gweather-3.0", + "version": "3.36.1-1~ubuntu20.04.1" + }, + { + "name": "gir1.2-ibus-1.0", + "version": "1.5.22-2ubuntu2.1" + }, + { + "name": "gir1.2-javascriptcoregtk-4.0", + "version": "2.34.4-0ubuntu0.20.04.1" + }, + { + "name": "gir1.2-json-1.0", + "version": "1.4.4-2ubuntu2" + }, + { + "name": "gir1.2-mutter-6", + "version": "3.36.9-0ubuntu0.20.04.2" + }, + { + "name": "gir1.2-nm-1.0", + "version": "1.22.10-1ubuntu2.3" + }, + { + "name": "gir1.2-nma-1.0", + "version": "1.8.24-1ubuntu3" + }, + { + "name": "gir1.2-notify-0.7", + "version": "0.7.9-1ubuntu2" + }, + { + "name": "gir1.2-packagekitglib-1.0", + "version": "1.1.13-2ubuntu1.1" + }, + { + "name": "gir1.2-pango-1.0", + "version": "1.44.7-2ubuntu4" + }, + { + "name": "gir1.2-peas-1.0", + "version": "1.26.0-2" + }, + { + "name": "gir1.2-polkit-1.0", + "version": "0.105-26ubuntu1.2" + }, + { + "name": "gir1.2-rsvg-2.0", + "version": "2.48.9-1ubuntu0.20.04.1" + }, + { + "name": "gir1.2-secret-1", + "version": "0.20.4-0ubuntu1" + }, + { + "name": "gir1.2-snapd-1", + "version": "1.58-0ubuntu0.20.04.0" + }, + { + "name": "gir1.2-soup-2.4", + "version": "2.70.0-1" + }, + { + "name": "gir1.2-unity-5.0", + "version": "7.1.4+19.04.20190319-0ubuntu3" + }, + { + "name": "gir1.2-upowerglib-1.0", + "version": "0.99.11-1build2" + }, + { + "name": "gir1.2-vte-2.91", + "version": "0.60.3-0ubuntu1~20.04" + }, + { + "name": "gir1.2-webkit2-4.0", + "version": "2.34.4-0ubuntu0.20.04.1" + }, + { + "name": "gjs", + "version": "1.64.5-0ubuntu0.20.04.01" + }, + { + "name": "glib-networking", + "version": "2.64.2-1ubuntu0.1" + }, + { + "name": "glib-networking-common", + "version": "2.64.2-1ubuntu0.1" + }, + { + "name": "glib-networking-services", + "version": "2.64.2-1ubuntu0.1" + }, + { + "name": "gnome-bluetooth", + "version": "3.34.3-0ubuntu1" + }, + { + "name": "gnome-calculator", + "version": "1:3.36.0-1ubuntu1" + }, + { + "name": "gnome-characters", + "version": "3.34.0-1" + }, + { + "name": "gnome-control-center", + "version": "1:3.36.5-0ubuntu3" + }, + { + "name": "gnome-control-center-data", + "version": "1:3.36.5-0ubuntu3" + }, + { + "name": "gnome-control-center-faces", + "version": "1:3.36.5-0ubuntu3" + }, + { + "name": "gnome-desktop3-data", + "version": "3.36.8-0ubuntu1" + }, + { + "name": "gnome-disk-utility", + "version": "3.36.3-0ubuntu1" + }, + { + "name": "gnome-font-viewer", + "version": "3.34.0-2" + }, + { + "name": "gnome-getting-started-docs", + "version": "3.36.2-0ubuntu0.1" + }, + { + "name": "gnome-initial-setup", + "version": "3.36.2-0ubuntu2" + }, + { + "name": "gnome-logs", + "version": "3.34.0-1ubuntu1" + }, + { + "name": "gnome-online-accounts", + "version": "3.36.1-0ubuntu1" + }, + { + "name": "gnome-screenshot", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gnome-session-bin", + "version": "3.36.0-2ubuntu1" + }, + { + "name": "gnome-session-canberra", + "version": "0.30-7ubuntu1" + }, + { + "name": "gnome-session-common", + "version": "3.36.0-2ubuntu1" + }, + { + "name": "gnome-settings-daemon", + "version": "3.36.1-0ubuntu1.1" + }, + { + "name": "gnome-settings-daemon-common", + "version": "3.36.1-0ubuntu1.1" + }, + { + "name": "gnome-shell", + "version": "3.36.9-0ubuntu0.20.04.2" + }, + { + "name": "gnome-shell-common", + "version": "3.36.9-0ubuntu0.20.04.2" + }, + { + "name": "gnome-shell-extension-appindicator", + "version": "33.1-0ubuntu0.20.04.2" + }, + { + "name": "gnome-shell-extension-desktop-icons", + "version": "20.04.0-3~ubuntu20.04.6" + }, + { + "name": "gnome-shell-extension-ubuntu-dock", + "version": "68ubuntu1~20.04.1" + }, + { + "name": "gnome-startup-applications", + "version": "3.36.0-2ubuntu1" + }, + { + "name": "gnome-system-monitor", + "version": "3.36.1-0ubuntu0.20.04.1" + }, + { + "name": "gnome-terminal", + "version": "3.36.2-1ubuntu1~20.04" + }, + { + "name": "gnome-terminal-data", + "version": "3.36.2-1ubuntu1~20.04" + }, + { + "name": "gnome-user-docs", + "version": "3.36.2+git20200704-0ubuntu0.1" + }, + { + "name": "gnupg", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gnupg-l10n", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gnupg-utils", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gpg", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gpg-agent", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gpg-wks-client", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gpg-wks-server", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gpgconf", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gpgsm", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "gpgv", + "version": "2.2.19-3ubuntu2.1" + }, + { + "name": "grep", + "version": "3.4-1" + }, + { + "name": "groff-base", + "version": "1.22.4-4build1" + }, + { + "name": "grub-common", + "version": "2.04-1ubuntu26.13" + }, + { + "name": "grub-pc", + "version": "2.04-1ubuntu26.13" + }, + { + "name": "grub-pc-bin", + "version": "2.04-1ubuntu26.13" + }, + { + "name": "grub2-common", + "version": "2.04-1ubuntu26.13" + }, + { + "name": "gsettings-desktop-schemas", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gstreamer1.0-alsa", + "version": "1.16.2-4ubuntu0.1" + }, + { + "name": "gstreamer1.0-clutter-3.0", + "version": "3.0.27-1" + }, + { + "name": "gstreamer1.0-gl", + "version": "1.16.2-4ubuntu0.1" + }, + { + "name": "gstreamer1.0-packagekit", + "version": "1.1.13-2ubuntu1.1" + }, + { + "name": "gstreamer1.0-plugins-base", + "version": "1.16.2-4ubuntu0.1" + }, + { + "name": "gstreamer1.0-plugins-base-apps", + "version": "1.16.2-4ubuntu0.1" + }, + { + "name": "gstreamer1.0-plugins-good", + "version": "1.16.2-1ubuntu2.1" + }, + { + "name": "gstreamer1.0-pulseaudio", + "version": "1.16.2-1ubuntu2.1" + }, + { + "name": "gstreamer1.0-tools", + "version": "1.16.2-2" + }, + { + "name": "gstreamer1.0-x", + "version": "1.16.2-4ubuntu0.1" + }, + { + "name": "gtk-update-icon-cache", + "version": "3.24.20-0ubuntu1" + }, + { + "name": "gtk2-engines-pixbuf", + "version": "2.24.32-4ubuntu4" + }, + { + "name": "gvfs", + "version": "1.44.1-1ubuntu1" + }, + { + "name": "gvfs-backends", + "version": "1.44.1-1ubuntu1" + }, + { + "name": "gvfs-bin", + "version": "1.44.1-1ubuntu1" + }, + { + "name": "gvfs-common", + "version": "1.44.1-1ubuntu1" + }, + { + "name": "gvfs-daemons", + "version": "1.44.1-1ubuntu1" + }, + { + "name": "gvfs-fuse", + "version": "1.44.1-1ubuntu1" + }, + { + "name": "gvfs-libs", + "version": "1.44.1-1ubuntu1" + }, + { + "name": "gzip", + "version": "1.10-0ubuntu4" + }, + { + "name": "hdparm", + "version": "9.58+ds-4" + }, + { + "name": "hplip", + "version": "3.20.3+dfsg0-2" + }, + { + "name": "hplip-data", + "version": "3.20.3+dfsg0-2" + }, + { + "name": "httplib2", + "version": "0.14.0" + }, + { + "name": "hunspell-en-us", + "version": "1:2018.04.16-1" + }, + { + "name": "ibus", + "version": "1.5.22-2ubuntu2.1" + }, + { + "name": "ibus-data", + "version": "1.5.22-2ubuntu2.1" + }, + { + "name": "ibus-gtk", + "version": "1.5.22-2ubuntu2.1" + }, + { + "name": "ibus-gtk3", + "version": "1.5.22-2ubuntu2.1" + }, + { + "name": "ibus-table", + "version": "1.9.25-1" + }, + { + "name": "idna", + "version": "2.8" + }, + { + "name": "iio-sensor-proxy", + "version": "2.8-1ubuntu1" + }, + { + "name": "im-config", + "version": "0.44-1ubuntu1.3" + }, + { + "name": "info", + "version": "6.7.0.dfsg.2-5" + }, + { + "name": "init", + "version": "1.57" + }, + { + "name": "init-system-helpers", + "version": "1.57" + }, + { + "name": "initramfs-tools", + "version": "0.136ubuntu6.7" + }, + { + "name": "initramfs-tools-bin", + "version": "0.136ubuntu6.7" + }, + { + "name": "initramfs-tools-core", + "version": "0.136ubuntu6.7" + }, + { + "name": "inputattach", + "version": "1:1.7.0-1" + }, + { + "name": "install-info", + "version": "6.7.0.dfsg.2-5" + }, + { + "name": "intel-microcode", + "version": "3.20210608.0ubuntu0.20.04.1" + }, + { + "name": "ippusbxd", + "version": "1.34-2ubuntu1" + }, + { + "name": "iproute2", + "version": "5.5.0-1ubuntu1" + }, + { + "name": "iptables", + "version": "1.8.4-3ubuntu2" + }, + { + "name": "iputils-ping", + "version": "3:20190709-3" + }, + { + "name": "iputils-tracepath", + "version": "3:20190709-3" + }, + { + "name": "irqbalance", + "version": "1.6.0-3ubuntu1" + }, + { + "name": "isc-dhcp-client", + "version": "4.4.1-2.1ubuntu5.20.04.2" + }, + { + "name": "isc-dhcp-common", + "version": "4.4.1-2.1ubuntu5.20.04.2" + }, + { + "name": "iso-codes", + "version": "4.4-1" + }, + { + "name": "iw", + "version": "5.4-1" + }, + { + "name": "kbd", + "version": "2.0.4-4ubuntu2" + }, + { + "name": "kerneloops", + "version": "0.12+git20140509-6ubuntu2" + }, + { + "name": "keyboard-configuration", + "version": "1.194ubuntu3" + }, + { + "name": "keyring", + "version": "18.0.1" + }, + { + "name": "klibc-utils", + "version": "2.0.7-1ubuntu5" + }, + { + "name": "kmod", + "version": "27-1ubuntu2" + }, + { + "name": "krb5-locales", + "version": "1.17-6ubuntu4.1" + }, + { + "name": "language-pack-en", + "version": "1:20.04+20220211" + }, + { + "name": "language-pack-en-base", + "version": "1:20.04+20220211" + }, + { + "name": "language-pack-gnome-en", + "version": "1:20.04+20210802" + }, + { + "name": "language-pack-gnome-en-base", + "version": "1:20.04+20210802" + }, + { + "name": "language-selector-common", + "version": "0.204.2" + }, + { + "name": "language-selector-gnome", + "version": "0.204.2" + }, + { + "name": "lazr.uri", + "version": "1.0.3" + }, + { + "name": "less", + "version": "551-1ubuntu0.1" + }, + { + "name": "libaa1", + "version": "1.4p5-46" + }, + { + "name": "libaccountsservice0", + "version": "0.6.55-0ubuntu12~20.04.5" + }, + { + "name": "libacl1", + "version": "2.2.53-6" + }, + { + "name": "libamtk-5-0", + "version": "5.0.2-1build1" + }, + { + "name": "libamtk-5-common", + "version": "5.0.2-1build1" + }, + { + "name": "libapparmor1", + "version": "2.13.3-7ubuntu5.1" + }, + { + "name": "libappindicator3-1", + "version": "12.10.1+20.04.20200408.1-0ubuntu1" + }, + { + "name": "libappstream4", + "version": "0.12.10-2" + }, + { + "name": "libapt-pkg6.0", + "version": "2.0.6" + }, + { + "name": "libarchive13", + "version": "3.4.0-2ubuntu1.1" + }, + { + "name": "libargon2-1", + "version": "0~20171227-0.2" + }, + { + "name": "libasn1-8-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "libasound2", + "version": "1.2.2-2.1ubuntu2.5" + }, + { + "name": "libasound2-data", + "version": "1.2.2-2.1ubuntu2.5" + }, + { + "name": "libasound2-plugins", + "version": "1.2.2-1ubuntu1" + }, + { + "name": "libaspell15", + "version": "0.60.8-1ubuntu0.1" + }, + { + "name": "libassuan0", + "version": "2.5.3-7ubuntu2" + }, + { + "name": "libatk-adaptor", + "version": "2.34.2-0ubuntu2~20.04.1" + }, + { + "name": "libatk-bridge2.0-0", + "version": "2.34.2-0ubuntu2~20.04.1" + }, + { + "name": "libatk1.0-0", + "version": "2.35.1-1ubuntu2" + }, + { + "name": "libatk1.0-data", + "version": "2.35.1-1ubuntu2" + }, + { + "name": "libatkmm-1.6-1v5", + "version": "2.28.0-2build1" + }, + { + "name": "libatopology2", + "version": "1.2.2-2.1ubuntu2.5" + }, + { + "name": "libatspi2.0-0", + "version": "2.36.0-2" + }, + { + "name": "libattr1", + "version": "1:2.4.48-5" + }, + { + "name": "libaudit-common", + "version": "1:2.8.5-2ubuntu6" + }, + { + "name": "libaudit1", + "version": "1:2.8.5-2ubuntu6" + }, + { + "name": "libauthen-sasl-perl", + "version": "2.1600-1" + }, + { + "name": "libavahi-client3", + "version": "0.7-4ubuntu7.1" + }, + { + "name": "libavahi-common-data", + "version": "0.7-4ubuntu7.1" + }, + { + "name": "libavahi-common3", + "version": "0.7-4ubuntu7.1" + }, + { + "name": "libavahi-core7", + "version": "0.7-4ubuntu7.1" + }, + { + "name": "libavahi-glib1", + "version": "0.7-4ubuntu7.1" + }, + { + "name": "libbabeltrace1", + "version": "1.5.8-1build1" + }, + { + "name": "libblkid1", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "libblockdev-crypto2", + "version": "2.23-2ubuntu3" + }, + { + "name": "libblockdev-fs2", + "version": "2.23-2ubuntu3" + }, + { + "name": "libblockdev-loop2", + "version": "2.23-2ubuntu3" + }, + { + "name": "libblockdev-part-err2", + "version": "2.23-2ubuntu3" + }, + { + "name": "libblockdev-part2", + "version": "2.23-2ubuntu3" + }, + { + "name": "libblockdev-swap2", + "version": "2.23-2ubuntu3" + }, + { + "name": "libblockdev-utils2", + "version": "2.23-2ubuntu3" + }, + { + "name": "libblockdev2", + "version": "2.23-2ubuntu3" + }, + { + "name": "libbluetooth3", + "version": "5.53-0ubuntu3.5" + }, + { + "name": "libboost-thread1.71.0", + "version": "1.71.0-6ubuntu6" + }, + { + "name": "libbrlapi0.7", + "version": "6.0+dfsg-4ubuntu6" + }, + { + "name": "libbrotli1", + "version": "1.0.7-6ubuntu0.1" + }, + { + "name": "libbsd0", + "version": "0.10.0-1" + }, + { + "name": "libbz2-1.0", + "version": "1.0.8-2" + }, + { + "name": "libc-bin", + "version": "2.31-0ubuntu9.2" + }, + { + "name": "libc6", + "version": "2.31-0ubuntu9.2" + }, + { + "name": "libc6-dbg", + "version": "2.31-0ubuntu9.2" + }, + { + "name": "libcaca0", + "version": "0.99.beta19-2.1ubuntu1.20.04.2" + }, + { + "name": "libcairo-gobject-perl", + "version": "1.005-2" + }, + { + "name": "libcairo-gobject2", + "version": "1.16.0-4ubuntu1" + }, + { + "name": "libcairo-perl", + "version": "1.107-1" + }, + { + "name": "libcairo2", + "version": "1.16.0-4ubuntu1" + }, + { + "name": "libcamel-1.2-62", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libcanberra-gtk3-0", + "version": "0.30-7ubuntu1" + }, + { + "name": "libcanberra-gtk3-module", + "version": "0.30-7ubuntu1" + }, + { + "name": "libcanberra-pulse", + "version": "0.30-7ubuntu1" + }, + { + "name": "libcanberra0", + "version": "0.30-7ubuntu1" + }, + { + "name": "libcap-ng0", + "version": "0.7.9-2.1build1" + }, + { + "name": "libcap2", + "version": "1:2.32-1" + }, + { + "name": "libcap2-bin", + "version": "1:2.32-1" + }, + { + "name": "libcbor0.6", + "version": "0.6.0-0ubuntu1" + }, + { + "name": "libcc1-0", + "version": "10.3.0-1ubuntu1~20.04" + }, + { + "name": "libcdio-cdda2", + "version": "10.2+2.0.0-1" + }, + { + "name": "libcdio-paranoia2", + "version": "10.2+2.0.0-1" + }, + { + "name": "libcdio18", + "version": "2.0.0-2" + }, + { + "name": "libcdparanoia0", + "version": "3.10.2+debian-13" + }, + { + "name": "libcheese-gtk25", + "version": "3.34.0-1ubuntu1" + }, + { + "name": "libcheese8", + "version": "3.34.0-1ubuntu1" + }, + { + "name": "libclutter-1.0-0", + "version": "1.26.4+dfsg-1" + }, + { + "name": "libclutter-1.0-common", + "version": "1.26.4+dfsg-1" + }, + { + "name": "libclutter-gst-3.0-0", + "version": "3.0.27-1" + }, + { + "name": "libcogl-common", + "version": "1.22.6-1" + }, + { + "name": "libcogl-pango20", + "version": "1.22.6-1" + }, + { + "name": "libcogl-path20", + "version": "1.22.6-1" + }, + { + "name": "libcogl20", + "version": "1.22.6-1" + }, + { + "name": "libcolord2", + "version": "1.4.4-2" + }, + { + "name": "libcolorhug2", + "version": "1.4.4-2" + }, + { + "name": "libcom-err2", + "version": "1.45.5-2ubuntu1" + }, + { + "name": "libcrack2", + "version": "2.9.6-3.2" + }, + { + "name": "libcrypt1", + "version": "1:4.4.10-10ubuntu4" + }, + { + "name": "libcryptsetup12", + "version": "2:2.2.2-3ubuntu2.4" + }, + { + "name": "libcue2", + "version": "2.2.1-2" + }, + { + "name": "libcups2", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "libcupsfilters1", + "version": "1.27.4-1" + }, + { + "name": "libcupsimage2", + "version": "2.3.1-9ubuntu1.1" + }, + { + "name": "libcurl3-gnutls", + "version": "7.68.0-1ubuntu2.7" + }, + { + "name": "libcurl4", + "version": "7.68.0-1ubuntu2.11" + }, + { + "name": "libdaemon0", + "version": "0.14-7" + }, + { + "name": "libdata-dump-perl", + "version": "1.23-1" + }, + { + "name": "libdatrie1", + "version": "0.2.12-3" + }, + { + "name": "libdb5.3", + "version": "5.3.28+dfsg1-0.6ubuntu2" + }, + { + "name": "libdbus-1-3", + "version": "1.12.16-2ubuntu2.1" + }, + { + "name": "libdbus-glib-1-2", + "version": "0.110-5fakssync1" + }, + { + "name": "libdconf1", + "version": "0.36.0-1" + }, + { + "name": "libdebconfclient0", + "version": "0.251ubuntu1" + }, + { + "name": "libdee-1.0-4", + "version": "1.2.7+17.10.20170616-4ubuntu6" + }, + { + "name": "libdevmapper1.02.1", + "version": "2:1.02.167-1ubuntu1" + }, + { + "name": "libdjvulibre-text", + "version": "3.5.27.1-14ubuntu0.1" + }, + { + "name": "libdjvulibre21", + "version": "3.5.27.1-14ubuntu0.1" + }, + { + "name": "libdns-export1109", + "version": "1:9.11.16+dfsg-3~ubuntu1" + }, + { + "name": "libdpkg-perl", + "version": "1.19.7ubuntu3" + }, + { + "name": "libdrm-amdgpu1", + "version": "2.4.107-8ubuntu1~20.04.1" + }, + { + "name": "libdrm-common", + "version": "2.4.107-8ubuntu1~20.04.1" + }, + { + "name": "libdrm-intel1", + "version": "2.4.107-8ubuntu1~20.04.1" + }, + { + "name": "libdrm-nouveau2", + "version": "2.4.107-8ubuntu1~20.04.1" + }, + { + "name": "libdrm-radeon1", + "version": "2.4.107-8ubuntu1~20.04.1" + }, + { + "name": "libdrm2", + "version": "2.4.107-8ubuntu1~20.04.1" + }, + { + "name": "libdv4", + "version": "1.0.0-12" + }, + { + "name": "libdw1", + "version": "0.176-1.1build1" + }, + { + "name": "libebackend-1.2-10", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libebook-1.2-20", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libebook-contacts-1.2-3", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libecal-2.0-1", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libedata-book-1.2-26", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libedata-cal-2.0-1", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libedataserver-1.2-24", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libedataserverui-1.2-2", + "version": "3.36.5-0ubuntu1" + }, + { + "name": "libedit2", + "version": "3.1-20191231-1" + }, + { + "name": "libefiboot1", + "version": "37-2ubuntu2.2" + }, + { + "name": "libefivar1", + "version": "37-2ubuntu2.2" + }, + { + "name": "libegl-mesa0", + "version": "21.2.6-0ubuntu0.1~20.04.1" + }, + { + "name": "libegl1", + "version": "1.3.2-1~ubuntu0.20.04.1" + }, + { + "name": "libelf1", + "version": "0.176-1.1build1" + }, + { + "name": "libenchant-2-2", + "version": "2.2.8-1ubuntu0.20.04.1" + }, + { + "name": "libencode-locale-perl", + "version": "1.05-1" + }, + { + "name": "libepoxy0", + "version": "1.5.4-1" + }, + { + "name": "libespeak-ng1", + "version": "1.50+dfsg-6" + }, + { + "name": "libestr0", + "version": "0.1.10-2.1" + }, + { + "name": "libevdev2", + "version": "1.9.0+dfsg-1ubuntu0.1" + }, + { + "name": "libevdocument3-4", + "version": "3.36.10-0ubuntu1" + }, + { + "name": "libevview3-3", + "version": "3.36.10-0ubuntu1" + }, + { + "name": "libexempi8", + "version": "2.5.1-1build1" + }, + { + "name": "libexif12", + "version": "0.6.21-6ubuntu0.4" + }, + { + "name": "libexiv2-27", + "version": "0.27.2-8ubuntu2.7" + }, + { + "name": "libexpat1", + "version": "2.2.9-1ubuntu0.2" + }, + { + "name": "libext2fs2", + "version": "1.45.5-2ubuntu1" + }, + { + "name": "libextutils-pkgconfig-perl", + "version": "1.16-1" + }, + { + "name": "libfastjson4", + "version": "0.99.8-2" + }, + { + "name": "libfdisk1", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "libffi7", + "version": "3.3-4" + }, + { + "name": "libfftw3-single3", + "version": "3.3.8-2ubuntu1" + }, + { + "name": "libfido2-1", + "version": "1.3.1-1ubuntu2" + }, + { + "name": "libfile-desktopentry-perl", + "version": "0.22-1" + }, + { + "name": "libfile-fcntllock-perl", + "version": "0.22-3build4" + }, + { + "name": "libfile-listing-perl", + "version": "6.04-1" + }, + { + "name": "libfile-mimeinfo-perl", + "version": "0.29-1" + }, + { + "name": "libflac8", + "version": "1.3.3-1build1" + }, + { + "name": "libfont-afm-perl", + "version": "1.20-2" + }, + { + "name": "libfontconfig1", + "version": "2.13.1-2ubuntu3" + }, + { + "name": "libfontembed1", + "version": "1.27.4-1" + }, + { + "name": "libfontenc1", + "version": "1:1.1.4-0ubuntu1" + }, + { + "name": "libfprint-2-2", + "version": "1:1.90.2+tod1-0ubuntu1~20.04.6" + }, + { + "name": "libfprint-2-tod1", + "version": "1:1.90.2+tod1-0ubuntu1~20.04.6" + }, + { + "name": "libfreetype6", + "version": "2.10.1-2ubuntu0.1" + }, + { + "name": "libfribidi0", + "version": "1.0.8-2" + }, + { + "name": "libfuse2", + "version": "2.9.9-3" + }, + { + "name": "libfwupd2", + "version": "1.5.11-0ubuntu1~20.04.2" + }, + { + "name": "libfwupdplugin1", + "version": "1.5.11-0ubuntu1~20.04.2" + }, + { + "name": "libgail-common", + "version": "2.24.32-4ubuntu4" + }, + { + "name": "libgail18", + "version": "2.24.32-4ubuntu4" + }, + { + "name": "libgamemode0", + "version": "1.5.1-0ubuntu3.1" + }, + { + "name": "libgamemodeauto0", + "version": "1.5.1-0ubuntu3.1" + }, + { + "name": "libgbm1", + "version": "21.2.6-0ubuntu0.1~20.04.1" + }, + { + "name": "libgcab-1.0-0", + "version": "1.4-1" + }, + { + "name": "libgcc-s1", + "version": "10.3.0-1ubuntu1~20.04" + }, + { + "name": "libgck-1-0", + "version": "3.36.0-2build1" + }, + { + "name": "libgcr-base-3-1", + "version": "3.36.0-2build1" + }, + { + "name": "libgcr-ui-3-1", + "version": "3.36.0-2build1" + }, + { + "name": "libgcrypt20", + "version": "1.8.5-5ubuntu1.1" + }, + { + "name": "libgd3", + "version": "2.2.5-5.2ubuntu2.1" + }, + { + "name": "libgdata-common", + "version": "0.17.12-1" + }, + { + "name": "libgdata22", + "version": "0.17.12-1" + }, + { + "name": "libgdbm-compat4", + "version": "1.18.1-5" + }, + { + "name": "libgdbm6", + "version": "1.18.1-5" + }, + { + "name": "libgdk-pixbuf2.0-0", + "version": "2.40.0+dfsg-3ubuntu0.2" + }, + { + "name": "libgdk-pixbuf2.0-bin", + "version": "2.40.0+dfsg-3ubuntu0.2" + }, + { + "name": "libgdk-pixbuf2.0-common", + "version": "2.40.0+dfsg-3ubuntu0.2" + }, + { + "name": "libgdm1", + "version": "3.36.3-0ubuntu0.20.04.4" + }, + { + "name": "libgee-0.8-2", + "version": "0.20.3-1" + }, + { + "name": "libgeoclue-2-0", + "version": "2.5.6-0ubuntu1" + }, + { + "name": "libgexiv2-2", + "version": "0.12.0-2" + }, + { + "name": "libgif7", + "version": "5.1.9-1" + }, + { + "name": "libgirepository-1.0-1", + "version": "1.64.1-1~ubuntu20.04.1" + }, + { + "name": "libgjs0g", + "version": "1.64.5-0ubuntu0.20.04.01" + }, + { + "name": "libgl1", + "version": "1.3.2-1~ubuntu0.20.04.1" + }, + { + "name": "libgl1-mesa-dri", + "version": "21.2.6-0ubuntu0.1~20.04.1" + }, + { + "name": "libglapi-mesa", + "version": "21.2.6-0ubuntu0.1~20.04.1" + }, + { + "name": "libgles2", + "version": "1.3.2-1~ubuntu0.20.04.1" + }, + { + "name": "libglib-object-introspection-perl", + "version": "0.048-2build1" + }, + { + "name": "libglib-perl", + "version": "3:1.329.2-1" + }, + { + "name": "libglib2.0-0", + "version": "2.64.6-1~ubuntu20.04.4" + }, + { + "name": "libglib2.0-bin", + "version": "2.64.6-1~ubuntu20.04.4" + }, + { + "name": "libglib2.0-data", + "version": "2.64.6-1~ubuntu20.04.4" + }, + { + "name": "libglibmm-2.4-1v5", + "version": "2.64.2-1" + }, + { + "name": "libglvnd0", + "version": "1.3.2-1~ubuntu0.20.04.1" + }, + { + "name": "libglx-mesa0", + "version": "21.2.6-0ubuntu0.1~20.04.1" + }, + { + "name": "libglx0", + "version": "1.3.2-1~ubuntu0.20.04.1" + }, + { + "name": "libgmp10", + "version": "2:6.2.0+dfsg-4" + }, + { + "name": "libgnome-autoar-0-0", + "version": "0.2.3-2ubuntu0.4" + }, + { + "name": "libgnome-bluetooth13", + "version": "3.34.3-0ubuntu1" + }, + { + "name": "libgnome-desktop-3-19", + "version": "3.36.8-0ubuntu1" + }, + { + "name": "libgnutls30", + "version": "3.6.13-2ubuntu1.6" + }, + { + "name": "libgoa-1.0-0b", + "version": "3.36.1-0ubuntu1" + }, + { + "name": "libgoa-1.0-common", + "version": "3.36.1-0ubuntu1" + }, + { + "name": "libgoa-backend-1.0-1", + "version": "3.36.1-0ubuntu1" + }, + { + "name": "libgomp1", + "version": "10.3.0-1ubuntu1~20.04" + }, + { + "name": "libgpg-error0", + "version": "1.37-1" + }, + { + "name": "libgpgme11", + "version": "1.13.1-7ubuntu2" + }, + { + "name": "libgphoto2-6", + "version": "2.5.25-0ubuntu0.1" + }, + { + "name": "libgphoto2-l10n", + "version": "2.5.25-0ubuntu0.1" + }, + { + "name": "libgphoto2-port12", + "version": "2.5.25-0ubuntu0.1" + }, + { + "name": "libgpm2", + "version": "1.20.7-5" + }, + { + "name": "libgraphene-1.0-0", + "version": "1.10.0-1build2" + }, + { + "name": "libgraphite2-3", + "version": "1.3.13-11build1" + }, + { + "name": "libgs9", + "version": "9.50~dfsg-5ubuntu4.5" + }, + { + "name": "libgs9-common", + "version": "9.50~dfsg-5ubuntu4.5" + }, + { + "name": "libgsf-1-114", + "version": "1.14.46-1" + }, + { + "name": "libgsf-1-common", + "version": "1.14.46-1" + }, + { + "name": "libgsound0", + "version": "1.0.2-4" + }, + { + "name": "libgspell-1-2", + "version": "1.8.3-1" + }, + { + "name": "libgspell-1-common", + "version": "1.8.3-1" + }, + { + "name": "libgssapi-krb5-2", + "version": "1.17-6ubuntu4.1" + }, + { + "name": "libgssapi3-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "libgssdp-1.2-0", + "version": "1.2.3-0ubuntu0.20.04.1" + }, + { + "name": "libgstreamer-gl1.0-0", + "version": "1.16.2-4ubuntu0.1" + }, + { + "name": "libgstreamer-plugins-base1.0-0", + "version": "1.16.2-4ubuntu0.1" + }, + { + "name": "libgstreamer-plugins-good1.0-0", + "version": "1.16.2-1ubuntu2.1" + }, + { + "name": "libgstreamer1.0-0", + "version": "1.16.2-2" + }, + { + "name": "libgtk-3-0", + "version": "3.24.20-0ubuntu1" + }, + { + "name": "libgtk-3-bin", + "version": "3.24.20-0ubuntu1" + }, + { + "name": "libgtk-3-common", + "version": "3.24.20-0ubuntu1" + }, + { + "name": "libgtk2.0-0", + "version": "2.24.32-4ubuntu4" + }, + { + "name": "libgtk2.0-bin", + "version": "2.24.32-4ubuntu4" + }, + { + "name": "libgtk2.0-common", + "version": "2.24.32-4ubuntu4" + }, + { + "name": "libgtk3-perl", + "version": "0.037-1" + }, + { + "name": "libgtkmm-3.0-1v5", + "version": "3.24.2-1build1" + }, + { + "name": "libgtksourceview-4-0", + "version": "4.6.0-1" + }, + { + "name": "libgtksourceview-4-common", + "version": "4.6.0-1" + }, + { + "name": "libgtop-2.0-11", + "version": "2.40.0-2" + }, + { + "name": "libgtop2-common", + "version": "2.40.0-2" + }, + { + "name": "libgudev-1.0-0", + "version": "1:233-1" + }, + { + "name": "libgupnp-1.2-0", + "version": "1.2.4-0ubuntu1" + }, + { + "name": "libgusb2", + "version": "0.3.4-0.1" + }, + { + "name": "libgweather-3-16", + "version": "3.36.1-1~ubuntu20.04.1" + }, + { + "name": "libgweather-common", + "version": "3.36.1-1~ubuntu20.04.1" + }, + { + "name": "libgxps2", + "version": "0.3.1-1" + }, + { + "name": "libhandy-0.0-0", + "version": "0.0.13-1" + }, + { + "name": "libharfbuzz-icu0", + "version": "2.6.4-1ubuntu4" + }, + { + "name": "libharfbuzz0b", + "version": "2.6.4-1ubuntu4" + }, + { + "name": "libhcrypto4-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "libheimbase1-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "libheimntlm0-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "libhogweed5", + "version": "3.5.1+really3.5.1-2ubuntu0.2" + }, + { + "name": "libhpmud0", + "version": "3.20.3+dfsg0-2" + }, + { + "name": "libhtml-format-perl", + "version": "2.12-1" + }, + { + "name": "libhtml-parser-perl", + "version": "3.72-5" + }, + { + "name": "libhttp-cookies-perl", + "version": "6.08-1" + }, + { + "name": "libhttp-daemon-perl", + "version": "6.06-1" + }, + { + "name": "libhttp-message-perl", + "version": "6.22-1" + }, + { + "name": "libhunspell-1.7-0", + "version": "1.7.0-2build2" + }, + { + "name": "libhx509-5-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "libibus-1.0-5", + "version": "1.5.22-2ubuntu2.1" + }, + { + "name": "libical3", + "version": "3.0.8-1" + }, + { + "name": "libice6", + "version": "2:1.0.10-0ubuntu1" + }, + { + "name": "libicu66", + "version": "66.1-2ubuntu2.1" + }, + { + "name": "libidn11", + "version": "1.33-2.2ubuntu2" + }, + { + "name": "libidn2-0", + "version": "2.2.0-2" + }, + { + "name": "libiec61883-0", + "version": "1.2.0-3" + }, + { + "name": "libieee1284-3", + "version": "0.2.11-13build1" + }, + { + "name": "libimobiledevice6", + "version": "1.2.1~git20191129.9f79242-1build1" + }, + { + "name": "libinput-bin", + "version": "1.15.5-1ubuntu0.2" + }, + { + "name": "libinput10", + "version": "1.15.5-1ubuntu0.2" + }, + { + "name": "libio-html-perl", + "version": "1.001-1" + }, + { + "name": "libio-socket-ssl-perl", + "version": "2.067-1" + }, + { + "name": "libip4tc2", + "version": "1.8.4-3ubuntu2" + }, + { + "name": "libip6tc2", + "version": "1.8.4-3ubuntu2" + }, + { + "name": "libipc-system-simple-perl", + "version": "1.26-1" + }, + { + "name": "libisc-export1105", + "version": "1:9.11.16+dfsg-3~ubuntu1" + }, + { + "name": "libisl22", + "version": "0.22.1-1" + }, + { + "name": "libiw30", + "version": "30~pre9-13ubuntu1" + }, + { + "name": "libjack-jackd2-0", + "version": "1.9.12~dfsg-2ubuntu2" + }, + { + "name": "libjansson4", + "version": "2.12-1build1" + }, + { + "name": "libjavascriptcoregtk-4.0-18", + "version": "2.34.4-0ubuntu0.20.04.1" + }, + { + "name": "libjbig2dec0", + "version": "0.18-1ubuntu1" + }, + { + "name": "libjcat1", + "version": "0.1.3-2~ubuntu20.04.1" + }, + { + "name": "libjpeg-turbo8", + "version": "2.0.3-0ubuntu1.20.04.1" + }, + { + "name": "libjson-c4", + "version": "0.13.1+dfsg-7ubuntu0.3" + }, + { + "name": "libjson-glib-1.0-0", + "version": "1.4.4-2ubuntu2" + }, + { + "name": "libjson-glib-1.0-common", + "version": "1.4.4-2ubuntu2" + }, + { + "name": "libk5crypto3", + "version": "1.17-6ubuntu4.1" + }, + { + "name": "libkeyutils1", + "version": "1.6-6ubuntu1" + }, + { + "name": "libklibc", + "version": "2.0.7-1ubuntu5" + }, + { + "name": "libkmod2", + "version": "27-1ubuntu2" + }, + { + "name": "libkpathsea6", + "version": "2019.20190605.51237-3build2" + }, + { + "name": "libkrb5-26-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "libkrb5-3", + "version": "1.17-6ubuntu4.1" + }, + { + "name": "libkrb5support0", + "version": "1.17-6ubuntu4.1" + }, + { + "name": "libksba8", + "version": "1.3.5-2" + }, + { + "name": "liblcms2-2", + "version": "2.9-4" + }, + { + "name": "liblcms2-utils", + "version": "2.9-4" + }, + { + "name": "libldap-2.4-2", + "version": "2.4.49+dfsg-2ubuntu1.8" + }, + { + "name": "libldap-common", + "version": "2.4.49+dfsg-2ubuntu1.8" + }, + { + "name": "libldb2", + "version": "2:2.2.3-0ubuntu0.20.04.2" + }, + { + "name": "libllvm12", + "version": "1:12.0.0-3ubuntu1~20.04.4" + }, + { + "name": "libllvm9", + "version": "1:9.0.1-12" + }, + { + "name": "liblocale-gettext-perl", + "version": "1.07-4" + }, + { + "name": "liblouis-data", + "version": "3.12.0-3" + }, + { + "name": "liblouis20", + "version": "3.12.0-3" + }, + { + "name": "liblouisutdml-bin", + "version": "2.8.0-3" + }, + { + "name": "liblouisutdml-data", + "version": "2.8.0-3" + }, + { + "name": "liblouisutdml9", + "version": "2.8.0-3" + }, + { + "name": "libltdl7", + "version": "2.4.6-14" + }, + { + "name": "liblwp-protocol-https-perl", + "version": "6.07-2ubuntu2" + }, + { + "name": "liblz4-1", + "version": "1.9.2-2ubuntu0.20.04.1" + }, + { + "name": "liblzma5", + "version": "5.2.4-1ubuntu1" + }, + { + "name": "liblzo2-2", + "version": "2.10-2" + }, + { + "name": "libmagic-mgc", + "version": "1:5.38-4" + }, + { + "name": "libmagic1", + "version": "1:5.38-4" + }, + { + "name": "libmaxminddb0", + "version": "1.4.2-0ubuntu1.20.04.1" + }, + { + "name": "libmbim-glib4", + "version": "1.24.8-1~20.04" + }, + { + "name": "libmbim-proxy", + "version": "1.24.8-1~20.04" + }, + { + "name": "libmediaart-2.0-0", + "version": "1.9.4-2" + }, + { + "name": "libmm-glib0", + "version": "1.16.6-2~20.04.1" + }, + { + "name": "libmnl0", + "version": "1.0.4-2" + }, + { + "name": "libmount1", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "libmozjs-68-0", + "version": "68.6.0-1ubuntu1" + }, + { + "name": "libmpc3", + "version": "1.1.0-1" + }, + { + "name": "libmpdec2", + "version": "2.4.2-3" + }, + { + "name": "libmpfr6", + "version": "4.0.2-1" + }, + { + "name": "libmpg123-0", + "version": "1.25.13-1" + }, + { + "name": "libmtdev1", + "version": "1.1.5-1.1" + }, + { + "name": "libmtp-common", + "version": "1.1.17-3" + }, + { + "name": "libmtp-runtime", + "version": "1.1.17-3" + }, + { + "name": "libmtp9", + "version": "1.1.17-3" + }, + { + "name": "libmutter-6-0", + "version": "3.36.9-0ubuntu0.20.04.2" + }, + { + "name": "libmysqlclient21", + "version": "8.0.28-0ubuntu0.20.04.3" + }, + { + "name": "libnautilus-extension1a", + "version": "1:3.36.3-0ubuntu1.20.04.1" + }, + { + "name": "libncurses6", + "version": "6.2-0ubuntu2" + }, + { + "name": "libncursesw6", + "version": "6.2-0ubuntu2" + }, + { + "name": "libnet-dbus-perl", + "version": "1.2.0-1" + }, + { + "name": "libnet-http-perl", + "version": "6.19-1" + }, + { + "name": "libnet-ssleay-perl", + "version": "1.88-2ubuntu1" + }, + { + "name": "libnetfilter-conntrack3", + "version": "1.0.7-2" + }, + { + "name": "libnetplan0", + "version": "0.103-0ubuntu5~20.04.5" + }, + { + "name": "libnettle7", + "version": "3.5.1+really3.5.1-2ubuntu0.2" + }, + { + "name": "libnewt0.52", + "version": "0.52.21-4ubuntu2" + }, + { + "name": "libnftnl11", + "version": "1.1.5-1" + }, + { + "name": "libnghttp2-14", + "version": "1.40.0-1build1" + }, + { + "name": "libnl-3-200", + "version": "3.4.0-1" + }, + { + "name": "libnl-genl-3-200", + "version": "3.4.0-1" + }, + { + "name": "libnl-route-3-200", + "version": "3.4.0-1" + }, + { + "name": "libnm0", + "version": "1.22.10-1ubuntu2.3" + }, + { + "name": "libnma0", + "version": "1.8.24-1ubuntu3" + }, + { + "name": "libnotify-bin", + "version": "0.7.9-1ubuntu2" + }, + { + "name": "libnotify4", + "version": "0.7.9-1ubuntu2" + }, + { + "name": "libnpth0", + "version": "1.6-1" + }, + { + "name": "libnspr4", + "version": "2:4.25-1" + }, + { + "name": "libnss-mdns", + "version": "0.14.1-1ubuntu1" + }, + { + "name": "libnss-systemd", + "version": "245.4-4ubuntu3.15" + }, + { + "name": "libnss3", + "version": "2:3.49.1-1ubuntu1.6" + }, + { + "name": "libntfs-3g883", + "version": "1:2017.3.23AR.3-3ubuntu1.1" + }, + { + "name": "libnuma1", + "version": "2.0.12-1" + }, + { + "name": "libogg0", + "version": "1.3.4-0ubuntu1" + }, + { + "name": "libopenjp2-7", + "version": "2.3.1-1ubuntu4.20.04.1" + }, + { + "name": "libopenscap8", + "version": "1.2.16-2ubuntu3.2" + }, + { + "name": "libopus0", + "version": "1.3.1-0ubuntu1" + }, + { + "name": "liborc-0.4-0", + "version": "1:0.4.31-1" + }, + { + "name": "libp11-kit0", + "version": "0.23.20-1ubuntu0.1" + }, + { + "name": "libpackagekit-glib2-18", + "version": "1.1.13-2ubuntu1.1" + }, + { + "name": "libpam-cap", + "version": "1:2.32-1" + }, + { + "name": "libpam-fprintd", + "version": "1.90.9-1~ubuntu20.04.1" + }, + { + "name": "libpam-modules", + "version": "1.3.1-5ubuntu4.3" + }, + { + "name": "libpam-modules-bin", + "version": "1.3.1-5ubuntu4.3" + }, + { + "name": "libpam-runtime", + "version": "1.3.1-5ubuntu4.3" + }, + { + "name": "libpam-systemd", + "version": "245.4-4ubuntu3.15" + }, + { + "name": "libpam0g", + "version": "1.3.1-5ubuntu4.3" + }, + { + "name": "libpango-1.0-0", + "version": "1.44.7-2ubuntu4" + }, + { + "name": "libpangocairo-1.0-0", + "version": "1.44.7-2ubuntu4" + }, + { + "name": "libpangoft2-1.0-0", + "version": "1.44.7-2ubuntu4" + }, + { + "name": "libpangomm-1.4-1v5", + "version": "2.42.0-2build1" + }, + { + "name": "libpangoxft-1.0-0", + "version": "1.44.7-2ubuntu4" + }, + { + "name": "libparted-fs-resize0", + "version": "3.3-4ubuntu0.20.04.1" + }, + { + "name": "libparted2", + "version": "3.3-4ubuntu0.20.04.1" + }, + { + "name": "libpcap0.8", + "version": "1.9.1-3" + }, + { + "name": "libpcaudio0", + "version": "1.1-4" + }, + { + "name": "libpci3", + "version": "1:3.6.4-1ubuntu0.20.04.1" + }, + { + "name": "libpciaccess0", + "version": "0.16-0ubuntu1" + }, + { + "name": "libpcre2-32-0", + "version": "10.34-7" + }, + { + "name": "libpcre2-8-0", + "version": "10.34-7" + }, + { + "name": "libpcre3", + "version": "2:8.39-12build1" + }, + { + "name": "libpcsclite1", + "version": "1.8.26-3" + }, + { + "name": "libpeas-1.0-0", + "version": "1.26.0-2" + }, + { + "name": "libpeas-common", + "version": "1.26.0-2" + }, + { + "name": "libperl5.30", + "version": "5.30.0-9ubuntu0.2" + }, + { + "name": "libphonenumber7", + "version": "7.1.0-5ubuntu11" + }, + { + "name": "libpipeline1", + "version": "1.5.2-2build1" + }, + { + "name": "libpixman-1-0", + "version": "0.38.4-0ubuntu1" + }, + { + "name": "libpkcs11-helper1", + "version": "1.26-1" + }, + { + "name": "libplist3", + "version": "2.1.0-4build2" + }, + { + "name": "libplymouth5", + "version": "0.9.4git20200323-0ubuntu6.2" + }, + { + "name": "libpng16-16", + "version": "1.6.37-2" + }, + { + "name": "libpolkit-agent-1-0", + "version": "0.105-26ubuntu1.2" + }, + { + "name": "libpolkit-gobject-1-0", + "version": "0.105-26ubuntu1.2" + }, + { + "name": "libpoppler-cpp0v5", + "version": "0.86.1-0ubuntu1" + }, + { + "name": "libpoppler-glib8", + "version": "0.86.1-0ubuntu1" + }, + { + "name": "libpoppler97", + "version": "0.86.1-0ubuntu1" + }, + { + "name": "libpopt0", + "version": "1.16-14" + }, + { + "name": "libprocps8", + "version": "2:3.3.16-1ubuntu2.3" + }, + { + "name": "libprotobuf17", + "version": "3.6.1.3-2ubuntu5" + }, + { + "name": "libproxy1-plugin-gsettings", + "version": "0.4.15-10ubuntu1.2" + }, + { + "name": "libproxy1-plugin-networkmanager", + "version": "0.4.15-10ubuntu1.2" + }, + { + "name": "libproxy1v5", + "version": "0.4.15-10ubuntu1.2" + }, + { + "name": "libpsl5", + "version": "0.21.0-1ubuntu1" + }, + { + "name": "libpulse-mainloop-glib0", + "version": "1:13.99.1-1ubuntu3.13" + }, + { + "name": "libpulse0", + "version": "1:13.99.1-1ubuntu3.13" + }, + { + "name": "libpulsedsp", + "version": "1:13.99.1-1ubuntu3.13" + }, + { + "name": "libpwquality-common", + "version": "1.4.2-1build1" + }, + { + "name": "libpwquality1", + "version": "1.4.2-1build1" + }, + { + "name": "libpython3-stdlib", + "version": "3.8.2-0ubuntu2" + }, + { + "name": "libpython3.8", + "version": "3.8.10-0ubuntu1~20.04.2" + }, + { + "name": "libpython3.8-minimal", + "version": "3.8.10-0ubuntu1~20.04.2" + }, + { + "name": "libpython3.8-stdlib", + "version": "3.8.10-0ubuntu1~20.04.2" + }, + { + "name": "libqmi-glib5", + "version": "1.28.6-1~20.04.1" + }, + { + "name": "libqmi-proxy", + "version": "1.28.6-1~20.04.1" + }, + { + "name": "libqpdf26", + "version": "9.1.1-1ubuntu0.1" + }, + { + "name": "libraw1394-11", + "version": "2.1.2-1" + }, + { + "name": "libreadline8", + "version": "8.0-4" + }, + { + "name": "librest-0.7-0", + "version": "0.8.1-1" + }, + { + "name": "libroken18-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "librsvg2-2", + "version": "2.48.9-1ubuntu0.20.04.1" + }, + { + "name": "librsvg2-common", + "version": "2.48.9-1ubuntu0.20.04.1" + }, + { + "name": "librtmp1", + "version": "2.4+20151223.gitfa8646d.1-2build1" + }, + { + "name": "librygel-core-2.6-2", + "version": "0.38.3-1ubuntu1" + }, + { + "name": "librygel-db-2.6-2", + "version": "0.38.3-1ubuntu1" + }, + { + "name": "librygel-renderer-2.6-2", + "version": "0.38.3-1ubuntu1" + }, + { + "name": "librygel-server-2.6-2", + "version": "0.38.3-1ubuntu1" + }, + { + "name": "libsamplerate0", + "version": "0.1.9-2" + }, + { + "name": "libsane", + "version": "1.0.29-0ubuntu5.2" + }, + { + "name": "libsane-common", + "version": "1.0.29-0ubuntu5.2" + }, + { + "name": "libsane-hpaio", + "version": "3.20.3+dfsg0-2" + }, + { + "name": "libsasl2-2", + "version": "2.1.27+dfsg-2ubuntu0.1" + }, + { + "name": "libsasl2-modules", + "version": "2.1.27+dfsg-2ubuntu0.1" + }, + { + "name": "libsasl2-modules-db", + "version": "2.1.27+dfsg-2ubuntu0.1" + }, + { + "name": "libsbc1", + "version": "1.4-1" + }, + { + "name": "libseccomp2", + "version": "2.5.1-1ubuntu1~20.04.2" + }, + { + "name": "libsecret-1-0", + "version": "0.20.4-0ubuntu1" + }, + { + "name": "libsecret-common", + "version": "0.20.4-0ubuntu1" + }, + { + "name": "libselinux1", + "version": "3.0-1build2" + }, + { + "name": "libsemanage-common", + "version": "3.0-1build2" + }, + { + "name": "libsemanage1", + "version": "3.0-1build2" + }, + { + "name": "libsensors-config", + "version": "1:3.6.0-2ubuntu1" + }, + { + "name": "libsensors5", + "version": "1:3.6.0-2ubuntu1" + }, + { + "name": "libsepol1", + "version": "3.0-1" + }, + { + "name": "libshout3", + "version": "2.4.3-1" + }, + { + "name": "libsigc++-2.0-0v5", + "version": "2.10.2-1build1" + }, + { + "name": "libslang2", + "version": "2.3.2-4" + }, + { + "name": "libsmartcols1", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "libsmbclient", + "version": "2:4.13.17~dfsg-0ubuntu0.21.04.1" + }, + { + "name": "libsnapd-glib1", + "version": "1.58-0ubuntu0.20.04.0" + }, + { + "name": "libsndfile1", + "version": "1.0.28-7ubuntu0.1" + }, + { + "name": "libsnmp-base", + "version": "5.8+dfsg-2ubuntu2.3" + }, + { + "name": "libsnmp35", + "version": "5.8+dfsg-2ubuntu2.3" + }, + { + "name": "libsonic0", + "version": "0.2.0-8" + }, + { + "name": "libsoup-gnome2.4-1", + "version": "2.70.0-1" + }, + { + "name": "libsoup2.4-1", + "version": "2.70.0-1" + }, + { + "name": "libsoxr0", + "version": "0.1.3-2build1" + }, + { + "name": "libspectre1", + "version": "0.2.8-2" + }, + { + "name": "libspeechd2", + "version": "0.9.1-4" + }, + { + "name": "libspeex1", + "version": "1.2~rc1.2-1.1ubuntu1.20.04.1" + }, + { + "name": "libspeexdsp1", + "version": "1.2~rc1.2-1.1ubuntu1.20.04.1" + }, + { + "name": "libsqlite3-0", + "version": "3.31.1-4ubuntu0.2" + }, + { + "name": "libss2", + "version": "1.45.5-2ubuntu1" + }, + { + "name": "libssh-4", + "version": "0.9.3-2ubuntu2.2" + }, + { + "name": "libssl1.1", + "version": "1.1.1f-1ubuntu2.10" + }, + { + "name": "libstdc++6", + "version": "10.3.0-1ubuntu1~20.04" + }, + { + "name": "libstemmer0d", + "version": "0+svn585-2" + }, + { + "name": "libsynctex2", + "version": "2019.20190605.51237-3build2" + }, + { + "name": "libsysmetrics1", + "version": "1.6.1" + }, + { + "name": "libsystemd0", + "version": "245.4-4ubuntu3.15" + }, + { + "name": "libtag1v5", + "version": "1.11.1+dfsg.1-0.3ubuntu2" + }, + { + "name": "libtag1v5-vanilla", + "version": "1.11.1+dfsg.1-0.3ubuntu2" + }, + { + "name": "libtalloc2", + "version": "2.3.1-0ubuntu0.20.04.1" + }, + { + "name": "libtdb1", + "version": "1.4.3-0ubuntu0.20.04.1" + }, + { + "name": "libteamdctl0", + "version": "1.30-1" + }, + { + "name": "libtepl-4-0", + "version": "4.4.0-1" + }, + { + "name": "libtevent0", + "version": "0.10.2-0ubuntu0.20.04.1" + }, + { + "name": "libtext-charwidth-perl", + "version": "0.04-10" + }, + { + "name": "libtext-iconv-perl", + "version": "1.7-7" + }, + { + "name": "libthai-data", + "version": "0.1.28-3" + }, + { + "name": "libthai0", + "version": "0.1.28-3" + }, + { + "name": "libtie-ixhash-perl", + "version": "1.23-2" + }, + { + "name": "libtiff5", + "version": "4.1.0+git191117-2ubuntu0.20.04.2" + }, + { + "name": "libtimedate-perl", + "version": "2.3200-1" + }, + { + "name": "libtinfo6", + "version": "6.2-0ubuntu2" + }, + { + "name": "libtotem-plparser-common", + "version": "3.26.5-1ubuntu1" + }, + { + "name": "libtotem-plparser18", + "version": "3.26.5-1ubuntu1" + }, + { + "name": "libtracker-control-2.0-0", + "version": "2.3.6-0ubuntu1" + }, + { + "name": "libtracker-miner-2.0-0", + "version": "2.3.6-0ubuntu1" + }, + { + "name": "libtracker-sparql-2.0-0", + "version": "2.3.6-0ubuntu1" + }, + { + "name": "libtss2-esys0", + "version": "2.3.2-1" + }, + { + "name": "libu2f-udev", + "version": "1.1.10-1" + }, + { + "name": "libuchardet0", + "version": "0.0.6-3build1" + }, + { + "name": "libudev1", + "version": "245.4-4ubuntu3.15" + }, + { + "name": "libudisks2-0", + "version": "2.8.4-1ubuntu2" + }, + { + "name": "libunistring2", + "version": "0.9.10-2" + }, + { + "name": "libunity-protocol-private0", + "version": "7.1.4+19.04.20190319-0ubuntu3" + }, + { + "name": "libunity-scopes-json-def-desktop", + "version": "7.1.4+19.04.20190319-0ubuntu3" + }, + { + "name": "libunity9", + "version": "7.1.4+19.04.20190319-0ubuntu3" + }, + { + "name": "libunwind8", + "version": "1.2.1-9build1" + }, + { + "name": "libupower-glib3", + "version": "0.99.11-1build2" + }, + { + "name": "liburi-perl", + "version": "1.76-2" + }, + { + "name": "libusb-1.0-0", + "version": "2:1.0.23-2build1" + }, + { + "name": "libusbmuxd6", + "version": "2.0.1-2" + }, + { + "name": "libuuid1", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "libuv1", + "version": "1.34.2-1ubuntu1.3" + }, + { + "name": "libv4l-0", + "version": "1.18.0-2build1" + }, + { + "name": "libv4lconvert0", + "version": "1.18.0-2build1" + }, + { + "name": "libvolume-key1", + "version": "0.3.12-3.1" + }, + { + "name": "libvorbis0a", + "version": "1.3.6-2ubuntu1" + }, + { + "name": "libvorbisenc2", + "version": "1.3.6-2ubuntu1" + }, + { + "name": "libvorbisfile3", + "version": "1.3.6-2ubuntu1" + }, + { + "name": "libvpx6", + "version": "1.8.2-1build1" + }, + { + "name": "libvte-2.91-0", + "version": "0.60.3-0ubuntu1~20.04" + }, + { + "name": "libvte-2.91-common", + "version": "0.60.3-0ubuntu1~20.04" + }, + { + "name": "libvulkan1", + "version": "1.2.131.2-1" + }, + { + "name": "libwacom-bin", + "version": "1.3-2ubuntu3" + }, + { + "name": "libwacom-common", + "version": "1.3-2ubuntu3" + }, + { + "name": "libwacom2", + "version": "1.3-2ubuntu3" + }, + { + "name": "libwavpack1", + "version": "5.2.0-1ubuntu0.1" + }, + { + "name": "libwayland-client0", + "version": "1.18.0-1" + }, + { + "name": "libwayland-cursor0", + "version": "1.18.0-1" + }, + { + "name": "libwayland-egl1", + "version": "1.18.0-1" + }, + { + "name": "libwayland-server0", + "version": "1.18.0-1" + }, + { + "name": "libwbclient0", + "version": "2:4.13.17~dfsg-0ubuntu0.21.04.1" + }, + { + "name": "libwebkit2gtk-4.0-37", + "version": "2.34.4-0ubuntu0.20.04.1" + }, + { + "name": "libwebp6", + "version": "0.6.1-2ubuntu0.20.04.1" + }, + { + "name": "libwebpdemux2", + "version": "0.6.1-2ubuntu0.20.04.1" + }, + { + "name": "libwebpmux3", + "version": "0.6.1-2ubuntu0.20.04.1" + }, + { + "name": "libwhoopsie0", + "version": "0.2.69ubuntu0.3" + }, + { + "name": "libwind0-heimdal", + "version": "7.7.0+dfsg-1ubuntu1" + }, + { + "name": "libwrap0", + "version": "7.6.q-30" + }, + { + "name": "libwww-perl", + "version": "6.43-1" + }, + { + "name": "libx11-6", + "version": "2:1.6.9-2ubuntu1.2" + }, + { + "name": "libx11-data", + "version": "2:1.6.9-2ubuntu1.2" + }, + { + "name": "libx11-protocol-perl", + "version": "0.56-7" + }, + { + "name": "libx11-xcb1", + "version": "2:1.6.9-2ubuntu1.2" + }, + { + "name": "libxatracker2", + "version": "21.2.6-0ubuntu0.1~20.04.1" + }, + { + "name": "libxau6", + "version": "1:1.0.9-0ubuntu1" + }, + { + "name": "libxaw7", + "version": "2:1.0.13-1" + }, + { + "name": "libxcb-dri2-0", + "version": "1.14-2" + }, + { + "name": "libxcb-dri3-0", + "version": "1.14-2" + }, + { + "name": "libxcb-glx0", + "version": "1.14-2" + }, + { + "name": "libxcb-present0", + "version": "1.14-2" + }, + { + "name": "libxcb-randr0", + "version": "1.14-2" + }, + { + "name": "libxcb-render0", + "version": "1.14-2" + }, + { + "name": "libxcb-res0", + "version": "1.14-2" + }, + { + "name": "libxcb-shape0", + "version": "1.14-2" + }, + { + "name": "libxcb-shm0", + "version": "1.14-2" + }, + { + "name": "libxcb-sync1", + "version": "1.14-2" + }, + { + "name": "libxcb-util1", + "version": "0.4.0-0ubuntu3" + }, + { + "name": "libxcb-xfixes0", + "version": "1.14-2" + }, + { + "name": "libxcb-xkb1", + "version": "1.14-2" + }, + { + "name": "libxcb-xv0", + "version": "1.14-2" + }, + { + "name": "libxcb1", + "version": "1.14-2" + }, + { + "name": "libxcursor1", + "version": "1:1.2.0-2" + }, + { + "name": "libxdmcp6", + "version": "1:1.1.3-0ubuntu1" + }, + { + "name": "libxext6", + "version": "2:1.3.4-0ubuntu1" + }, + { + "name": "libxfixes3", + "version": "1:5.0.3-2" + }, + { + "name": "libxfont2", + "version": "1:2.0.3-1" + }, + { + "name": "libxft2", + "version": "2.3.3-0ubuntu1" + }, + { + "name": "libxi6", + "version": "2:1.7.10-0ubuntu1" + }, + { + "name": "libxinerama1", + "version": "2:1.1.4-2" + }, + { + "name": "libxkbcommon-x11-0", + "version": "0.10.0-1" + }, + { + "name": "libxkbcommon0", + "version": "0.10.0-1" + }, + { + "name": "libxkbfile1", + "version": "1:1.1.0-1" + }, + { + "name": "libxml-parser-perl", + "version": "2.46-1" + }, + { + "name": "libxml-twig-perl", + "version": "1:3.50-2" + }, + { + "name": "libxml2", + "version": "2.9.10+dfsg-5ubuntu0.20.04.1" + }, + { + "name": "libxmlb1", + "version": "0.1.15-2ubuntu1~20.04.1" + }, + { + "name": "libxrender1", + "version": "1:0.9.10-1" + }, + { + "name": "libxshmfence1", + "version": "1.3-1" + }, + { + "name": "libxt6", + "version": "1:1.1.5-1" + }, + { + "name": "libxtables12", + "version": "1.8.4-3ubuntu2" + }, + { + "name": "libxtst6", + "version": "2:1.2.3-1" + }, + { + "name": "libyelp0", + "version": "3.36.2-0ubuntu1" + }, + { + "name": "libzstd1", + "version": "1.4.4+dfsg-3ubuntu0.1" + }, + { + "name": "linux-base", + "version": "4.5ubuntu3.7" + }, + { + "name": "linux-firmware", + "version": "1.187.26" + }, + { + "name": "linux-generic-hwe-20.04", + "version": "5.13.0.30.33~20.04.17" + }, + { + "name": "linux-headers-5.13.0-30-generic", + "version": "5.13.0-30.33~20.04.1" + }, + { + "name": "linux-headers-generic-hwe-20.04", + "version": "5.13.0.30.33~20.04.17" + }, + { + "name": "linux-hwe-5.13-headers-5.13.0-30", + "version": "5.13.0-30.33~20.04.1" + }, + { + "name": "linux-image-5.13.0-30-generic", + "version": "5.13.0-30.33~20.04.1" + }, + { + "name": "linux-image-generic-hwe-20.04", + "version": "5.13.0.30.33~20.04.17" + }, + { + "name": "linux-modules-5.13.0-30-generic", + "version": "5.13.0-30.33~20.04.1" + }, + { + "name": "linux-modules-extra-5.13.0-30-generic", + "version": "5.13.0-30.33~20.04.1" + }, + { + "name": "linux-sound-base", + "version": "1.0.25+dfsg-0ubuntu5" + }, + { + "name": "locales", + "version": "2.31-0ubuntu9.2" + }, + { + "name": "login", + "version": "1:4.8.1-1ubuntu5.20.04.1" + }, + { + "name": "logrotate", + "version": "3.14.0-4ubuntu3" + }, + { + "name": "logsave", + "version": "1.45.5-2ubuntu1" + }, + { + "name": "lshw", + "version": "02.18.85-0.3ubuntu2.20.04.1" + }, + { + "name": "lsof", + "version": "4.93.2+dfsg-1ubuntu0.20.04.1" + }, + { + "name": "ltrace", + "version": "0.7.3-6.1ubuntu1" + }, + { + "name": "lz4", + "version": "1.9.2-2ubuntu0.20.04.1" + }, + { + "name": "man-db", + "version": "2.9.1-1" + }, + { + "name": "manpages", + "version": "5.05-1" + }, + { + "name": "memtest86+", + "version": "5.01-3.1ubuntu2.1" + }, + { + "name": "mesa-vulkan-drivers", + "version": "21.2.6-0ubuntu0.1~20.04.1" + }, + { + "name": "mime-support", + "version": "3.64ubuntu1" + }, + { + "name": "mobile-broadband-provider-info", + "version": "20190618-3" + }, + { + "name": "modemmanager", + "version": "1.16.6-2~20.04.1" + }, + { + "name": "mount", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "mousetweaks", + "version": "3.32.0-2" + }, + { + "name": "mscompress", + "version": "0.4-7" + }, + { + "name": "mtools", + "version": "4.0.24-1" + }, + { + "name": "mtr-tiny", + "version": "0.93-1" + }, + { + "name": "mutter", + "version": "3.36.9-0ubuntu0.20.04.2" + }, + { + "name": "mutter-common", + "version": "3.36.9-0ubuntu0.20.04.2" + }, + { + "name": "mysql-common", + "version": "5.8+1.0.5ubuntu2" + }, + { + "name": "nano", + "version": "4.8-1ubuntu1" + }, + { + "name": "nautilus", + "version": "1:3.36.3-0ubuntu1.20.04.1" + }, + { + "name": "nautilus-data", + "version": "1:3.36.3-0ubuntu1.20.04.1" + }, + { + "name": "nautilus-extension-gnome-terminal", + "version": "3.36.2-1ubuntu1~20.04" + }, + { + "name": "nautilus-sendto", + "version": "3.8.6-3ubuntu0.20.04.1" + }, + { + "name": "ncurses-base", + "version": "6.2-0ubuntu2" + }, + { + "name": "ncurses-bin", + "version": "6.2-0ubuntu2" + }, + { + "name": "netbase", + "version": "6.1" + }, + { + "name": "netcat-openbsd", + "version": "1.206-1ubuntu1" + }, + { + "name": "netifaces", + "version": "0.10.4" + }, + { + "name": "netplan.io", + "version": "0.103-0ubuntu5~20.04.5" + }, + { + "name": "network-manager", + "version": "1.22.10-1ubuntu2.3" + }, + { + "name": "network-manager-config-connectivity-ubuntu", + "version": "1.22.10-1ubuntu2.3" + }, + { + "name": "network-manager-gnome", + "version": "1.8.24-1ubuntu3" + }, + { + "name": "network-manager-openvpn", + "version": "1.8.12-1" + }, + { + "name": "network-manager-openvpn-gnome", + "version": "1.8.12-1" + }, + { + "name": "network-manager-pptp", + "version": "1.2.8-2" + }, + { + "name": "network-manager-pptp-gnome", + "version": "1.2.8-2" + }, + { + "name": "networkd-dispatcher", + "version": "2.1-2~ubuntu20.04.1" + }, + { + "name": "ntfs-3g", + "version": "1:2017.3.23AR.3-3ubuntu1.1" + }, + { + "name": "openprinting-ppds", + "version": "20200401-1" + }, + { + "name": "openssh-client", + "version": "1:8.2p1-4ubuntu0.4" + }, + { + "name": "openssl", + "version": "1.1.1f-1ubuntu2.10" + }, + { + "name": "openvpn", + "version": "2.4.7-1ubuntu2.20.04.3" + }, + { + "name": "orca", + "version": "3.36.2-1ubuntu1~20.04.1" + }, + { + "name": "os-prober", + "version": "1.74ubuntu2" + }, + { + "name": "p11-kit", + "version": "0.23.20-1ubuntu0.1" + }, + { + "name": "p11-kit-modules", + "version": "0.23.20-1ubuntu0.1" + }, + { + "name": "packagekit", + "version": "1.1.13-2ubuntu1.1" + }, + { + "name": "packagekit-tools", + "version": "1.1.13-2ubuntu1.1" + }, + { + "name": "parted", + "version": "3.3-4ubuntu0.20.04.1" + }, + { + "name": "passwd", + "version": "1:4.8.1-1ubuntu5.20.04.1" + }, + { + "name": "patch", + "version": "2.7.6-6" + }, + { + "name": "pci.ids", + "version": "0.0~2020.03.20-1" + }, + { + "name": "pciutils", + "version": "1:3.6.4-1ubuntu0.20.04.1" + }, + { + "name": "pcmciautils", + "version": "018-11" + }, + { + "name": "perl", + "version": "5.30.0-9ubuntu0.2" + }, + { + "name": "perl-base", + "version": "5.30.0-9ubuntu0.2" + }, + { + "name": "perl-modules-5.30", + "version": "5.30.0-9ubuntu0.2" + }, + { + "name": "perl-openssl-defaults", + "version": "4" + }, + { + "name": "pinentry-curses", + "version": "1.1.0-3build1" + }, + { + "name": "pinentry-gnome3", + "version": "1.1.0-3build1" + }, + { + "name": "pkg-config", + "version": "0.29.1-0ubuntu4" + }, + { + "name": "plymouth", + "version": "0.9.4git20200323-0ubuntu6.2" + }, + { + "name": "plymouth-label", + "version": "0.9.4git20200323-0ubuntu6.2" + }, + { + "name": "plymouth-theme-spinner", + "version": "0.9.4git20200323-0ubuntu6.2" + }, + { + "name": "plymouth-theme-ubuntu-text", + "version": "0.9.4git20200323-0ubuntu6.2" + }, + { + "name": "policykit-1", + "version": "0.105-26ubuntu1.2" + }, + { + "name": "poppler-data", + "version": "0.4.9-2" + }, + { + "name": "poppler-utils", + "version": "0.86.1-0ubuntu1" + }, + { + "name": "popularity-contest", + "version": "1.69ubuntu1" + }, + { + "name": "ppp", + "version": "2.4.7-2+4.1ubuntu5.1" + }, + { + "name": "printer-driver-c2esp", + "version": "27-6" + }, + { + "name": "printer-driver-foo2zjs", + "version": "20171202dfsg0-4" + }, + { + "name": "printer-driver-foo2zjs-common", + "version": "20171202dfsg0-4" + }, + { + "name": "printer-driver-hpcups", + "version": "3.20.3+dfsg0-2" + }, + { + "name": "printer-driver-pnm2ppa", + "version": "1.13+nondbs-0ubuntu6" + }, + { + "name": "printer-driver-postscript-hp", + "version": "3.20.3+dfsg0-2" + }, + { + "name": "printer-driver-ptouch", + "version": "1.4.2-3" + }, + { + "name": "procps", + "version": "2:3.3.16-1ubuntu2.3" + }, + { + "name": "protobuf", + "version": "3.6.1" + }, + { + "name": "psmisc", + "version": "23.3-1" + }, + { + "name": "publicsuffix", + "version": "20200303.0012-1" + }, + { + "name": "pulseaudio", + "version": "1:13.99.1-1ubuntu3.13" + }, + { + "name": "pulseaudio-module-bluetooth", + "version": "1:13.99.1-1ubuntu3.13" + }, + { + "name": "pulseaudio-utils", + "version": "1:13.99.1-1ubuntu3.13" + }, + { + "name": "python-apt", + "version": "2.0.0+ubuntu0.20.4.7" + }, + { + "name": "python-apt-common", + "version": "2.0.0ubuntu0.20.04.7" + }, + { + "name": "python-dateutil", + "version": "2.7.3" + }, + { + "name": "python-debian", + "version": "0.1.36ubuntu1" + }, + { + "name": "python3", + "version": "3.8.2-0ubuntu2" + }, + { + "name": "python3-apport", + "version": "2.20.11-0ubuntu27.21" + }, + { + "name": "python3-apt", + "version": "2.0.0ubuntu0.20.04.7" + }, + { + "name": "python3-aptdaemon", + "version": "1.1.1+bzr982-0ubuntu32.3" + }, + { + "name": "python3-aptdaemon.gtk3widgets", + "version": "1.1.1+bzr982-0ubuntu32.3" + }, + { + "name": "python3-blinker", + "version": "1.4+dfsg1-0.3ubuntu1" + }, + { + "name": "python3-brlapi", + "version": "6.0+dfsg-4ubuntu6" + }, + { + "name": "python3-cairo", + "version": "1.16.2-2ubuntu2" + }, + { + "name": "python3-certifi", + "version": "2019.11.28-1" + }, + { + "name": "python3-cffi-backend", + "version": "1.14.0-1build1" + }, + { + "name": "python3-chardet", + "version": "3.0.4-4build1" + }, + { + "name": "python3-click", + "version": "7.0-3" + }, + { + "name": "python3-colorama", + "version": "0.4.3-1build1" + }, + { + "name": "python3-commandnotfound", + "version": "20.04.5" + }, + { + "name": "python3-cryptography", + "version": "2.8-3ubuntu0.1" + }, + { + "name": "python3-cups", + "version": "1.9.73-3build1" + }, + { + "name": "python3-cupshelpers", + "version": "1.5.12-0ubuntu1.1" + }, + { + "name": "python3-dateutil", + "version": "2.7.3-3ubuntu1" + }, + { + "name": "python3-dbus", + "version": "1.2.16-1build1" + }, + { + "name": "python3-debconf", + "version": "1.5.73" + }, + { + "name": "python3-debian", + "version": "0.1.36ubuntu1" + }, + { + "name": "python3-distro", + "version": "1.4.0-1" + }, + { + "name": "python3-distro-info", + "version": "0.23ubuntu1" + }, + { + "name": "python3-distupgrade", + "version": "1:20.04.37" + }, + { + "name": "python3-entrypoints", + "version": "0.3-2ubuntu1" + }, + { + "name": "python3-gdbm", + "version": "3.8.10-0ubuntu1~20.04" + }, + { + "name": "python3-gi", + "version": "3.36.0-1" + }, + { + "name": "python3-gi-cairo", + "version": "3.36.0-1" + }, + { + "name": "python3-httplib2", + "version": "0.14.0-1ubuntu1" + }, + { + "name": "python3-ibus-1.0", + "version": "1.5.22-2ubuntu2.1" + }, + { + "name": "python3-idna", + "version": "2.8-1" + }, + { + "name": "python3-keyring", + "version": "18.0.1-2ubuntu1" + }, + { + "name": "python3-lazr.uri", + "version": "1.0.3-4build1" + }, + { + "name": "python3-ldb", + "version": "2:2.2.3-0ubuntu0.20.04.2" + }, + { + "name": "python3-louis", + "version": "3.12.0-3" + }, + { + "name": "python3-minimal", + "version": "3.8.2-0ubuntu2" + }, + { + "name": "python3-nacl", + "version": "1.3.0-5" + }, + { + "name": "python3-netifaces", + "version": "0.10.4-1ubuntu4" + }, + { + "name": "python3-oauthlib", + "version": "3.1.0-1ubuntu2" + }, + { + "name": "python3-olefile", + "version": "0.46-2" + }, + { + "name": "python3-pexpect", + "version": "4.6.0-1build1" + }, + { + "name": "python3-pil", + "version": "7.0.0-4ubuntu0.5" + }, + { + "name": "python3-pkg-resources", + "version": "45.2.0-1" + }, + { + "name": "python3-problem-report", + "version": "2.20.11-0ubuntu27.21" + }, + { + "name": "python3-protobuf", + "version": "3.6.1.3-2ubuntu5" + }, + { + "name": "python3-ptyprocess", + "version": "0.6.0-1ubuntu1" + }, + { + "name": "python3-pyatspi", + "version": "2.36.0-1" + }, + { + "name": "python3-pymacaroons", + "version": "0.13.0-3" + }, + { + "name": "python3-renderpm", + "version": "3.5.34-1ubuntu1" + }, + { + "name": "python3-reportlab", + "version": "3.5.34-1ubuntu1" + }, + { + "name": "python3-reportlab-accel", + "version": "3.5.34-1ubuntu1" + }, + { + "name": "python3-requests", + "version": "2.22.0-2ubuntu1" + }, + { + "name": "python3-requests-unixsocket", + "version": "0.2.0-2" + }, + { + "name": "python3-secretstorage", + "version": "2.3.1-2ubuntu1" + }, + { + "name": "python3-simplejson", + "version": "3.16.0-2ubuntu2" + }, + { + "name": "python3-six", + "version": "1.14.0-2" + }, + { + "name": "python3-software-properties", + "version": "0.99.9.8" + }, + { + "name": "python3-speechd", + "version": "0.9.1-4" + }, + { + "name": "python3-systemd", + "version": "234-3build2" + }, + { + "name": "python3-talloc", + "version": "2.3.1-0ubuntu0.20.04.1" + }, + { + "name": "python3-tz", + "version": "2019.3-1" + }, + { + "name": "python3-update-manager", + "version": "1:20.04.10.10" + }, + { + "name": "python3-urllib3", + "version": "1.25.8-2ubuntu0.1" + }, + { + "name": "python3-wadllib", + "version": "1.3.3-3build1" + }, + { + "name": "python3-xdg", + "version": "0.26-1ubuntu1" + }, + { + "name": "python3-yaml", + "version": "5.3.1-1ubuntu0.1" + }, + { + "name": "python3.8", + "version": "3.8.10-0ubuntu1~20.04.2" + }, + { + "name": "python3.8-minimal", + "version": "3.8.10-0ubuntu1~20.04.2" + }, + { + "name": "pytz", + "version": "2019.3" + }, + { + "name": "readline-common", + "version": "8.0-4" + }, + { + "name": "reportlab", + "version": "3.5.34" + }, + { + "name": "requests", + "version": "2.22.0" + }, + { + "name": "requests-unixsocket", + "version": "0.2.0" + }, + { + "name": "rfkill", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "rsync", + "version": "3.1.3-8ubuntu0.1" + }, + { + "name": "rsyslog", + "version": "8.2001.0-1ubuntu1.1" + }, + { + "name": "rtkit", + "version": "0.12-4" + }, + { + "name": "rygel", + "version": "0.38.3-1ubuntu1" + }, + { + "name": "samba-libs", + "version": "2:4.13.17~dfsg-0ubuntu0.21.04.1" + }, + { + "name": "sane-utils", + "version": "1.0.29-0ubuntu5.2" + }, + { + "name": "sbsigntool", + "version": "0.9.2-2ubuntu1" + }, + { + "name": "seahorse", + "version": "3.36-1" + }, + { + "name": "secureboot-db", + "version": "1.5" + }, + { + "name": "sed", + "version": "4.7-1" + }, + { + "name": "sensible-utils", + "version": "0.0.12+nmu1" + }, + { + "name": "sgml-base", + "version": "1.29.1" + }, + { + "name": "sgml-data", + "version": "2.0.11" + }, + { + "name": "shared-mime-info", + "version": "1.15-1" + }, + { + "name": "six", + "version": "1.14.0" + }, + { + "name": "snapd", + "version": "2.54.3+20.04.1ubuntu0.1" + }, + { + "name": "software-properties-common", + "version": "0.99.9.8" + }, + { + "name": "software-properties-gtk", + "version": "0.99.9.8" + }, + { + "name": "speech-dispatcher", + "version": "0.9.1-4" + }, + { + "name": "speech-dispatcher-audio-plugins", + "version": "0.9.1-4" + }, + { + "name": "speech-dispatcher-espeak-ng", + "version": "0.9.1-4" + }, + { + "name": "spice-vdagent", + "version": "0.19.0-2ubuntu0.2" + }, + { + "name": "squashfs-tools", + "version": "1:4.4-1ubuntu0.3" + }, + { + "name": "ssl-cert", + "version": "1.0.39" + }, + { + "name": "strace", + "version": "5.5-3ubuntu1" + }, + { + "name": "sudo", + "version": "1.8.31-1ubuntu1.2" + }, + { + "name": "switcheroo-control", + "version": "2.1-1" + }, + { + "name": "system-config-printer", + "version": "1.5.12-0ubuntu1.1" + }, + { + "name": "system-config-printer-common", + "version": "1.5.12-0ubuntu1.1" + }, + { + "name": "system-config-printer-udev", + "version": "1.5.12-0ubuntu1.1" + }, + { + "name": "systemd", + "version": "245.4-4ubuntu3.15" + }, + { + "name": "systemd-sysv", + "version": "245.4-4ubuntu3.15" + }, + { + "name": "systemd-timesyncd", + "version": "245.4-4ubuntu3.15" + }, + { + "name": "sysvinit-utils", + "version": "2.96-2.1ubuntu1" + }, + { + "name": "tar", + "version": "1.30+dfsg-7ubuntu0.20.04.1" + }, + { + "name": "tcpdump", + "version": "4.9.3-4" + }, + { + "name": "telnet", + "version": "0.17-41.2build1" + }, + { + "name": "thermald", + "version": "1.9.1-1ubuntu0.6" + }, + { + "name": "time", + "version": "1.7-25.1build1" + }, + { + "name": "tpm-udev", + "version": "0.4" + }, + { + "name": "tracker", + "version": "2.3.6-0ubuntu1" + }, + { + "name": "tracker-extract", + "version": "2.3.3-2" + }, + { + "name": "tracker-miner-fs", + "version": "2.3.3-2" + }, + { + "name": "tzdata", + "version": "2021e-0ubuntu0.20.04" + }, + { + "name": "ubuntu-advantage-tools", + "version": "27.6" + }, + { + "name": "ubuntu-advantage-tools", + "version": "27.6~20.04.1" + }, + { + "name": "ubuntu-desktop", + "version": "1.450.2" + }, + { + "name": "ubuntu-desktop-minimal", + "version": "1.450.2" + }, + { + "name": "ubuntu-docs", + "version": "20.04.3" + }, + { + "name": "ubuntu-drivers-common", + "version": "1:0.9.0~0.20.04.5" + }, + { + "name": "ubuntu-keyring", + "version": "2020.02.11.4" + }, + { + "name": "ubuntu-minimal", + "version": "1.450.2" + }, + { + "name": "ubuntu-mono", + "version": "19.04-0ubuntu3" + }, + { + "name": "ubuntu-release-upgrader-core", + "version": "1:20.04.37" + }, + { + "name": "ubuntu-release-upgrader-gtk", + "version": "1:20.04.37" + }, + { + "name": "ubuntu-report", + "version": "1.6.1" + }, + { + "name": "ubuntu-session", + "version": "3.36.0-2ubuntu1" + }, + { + "name": "ubuntu-settings", + "version": "20.04.6" + }, + { + "name": "ubuntu-standard", + "version": "1.450.2" + }, + { + "name": "ubuntu-wallpapers", + "version": "20.04.2-0ubuntu1" + }, + { + "name": "ubuntu-wallpapers-focal", + "version": "20.04.2-0ubuntu1" + }, + { + "name": "ucf", + "version": "3.0038+nmu1" + }, + { + "name": "udev", + "version": "245.4-4ubuntu3.15" + }, + { + "name": "udisks2", + "version": "2.8.4-1ubuntu2" + }, + { + "name": "ufw", + "version": "0.36-6ubuntu1" + }, + { + "name": "unattended-upgrades", + "version": "2.3ubuntu0.1" + }, + { + "name": "unzip", + "version": "6.0-25ubuntu1" + }, + { + "name": "update-inetd", + "version": "4.50" + }, + { + "name": "update-manager", + "version": "1:20.04.10.10" + }, + { + "name": "update-manager-core", + "version": "1:20.04.10.10" + }, + { + "name": "update-notifier", + "version": "3.192.30.10" + }, + { + "name": "update-notifier-common", + "version": "3.192.30.10" + }, + { + "name": "upower", + "version": "0.99.11-1build2" + }, + { + "name": "urllib3", + "version": "1.25.8" + }, + { + "name": "usb-modeswitch", + "version": "2.5.2+repack0-2ubuntu3" + }, + { + "name": "usb.ids", + "version": "2020.03.19-1" + }, + { + "name": "usbmuxd", + "version": "1.1.1~git20191130.9af2b12-1" + }, + { + "name": "usbutils", + "version": "1:012-2" + }, + { + "name": "util-linux", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "uuid-runtime", + "version": "2.34-0.1ubuntu9.3" + }, + { + "name": "vim-common", + "version": "2:8.1.2269-1ubuntu5.7" + }, + { + "name": "vim-tiny", + "version": "2:8.1.2269-1ubuntu5.7" + }, + { + "name": "wadllib", + "version": "1.3.3" + }, + { + "name": "wamerican", + "version": "2018.04.16-1" + }, + { + "name": "wbritish", + "version": "2018.04.16-1" + }, + { + "name": "wget", + "version": "1.20.3-1ubuntu2" + }, + { + "name": "whiptail", + "version": "0.52.21-4ubuntu2" + }, + { + "name": "whoopsie", + "version": "0.2.69ubuntu0.3" + }, + { + "name": "wireless-regdb", + "version": "2021.08.28-0ubuntu1~20.04.1" + }, + { + "name": "wireless-tools", + "version": "30~pre9-13ubuntu1" + }, + { + "name": "wpasupplicant", + "version": "2:2.9-1ubuntu4.3" + }, + { + "name": "x11-common", + "version": "1:7.7+19ubuntu14" + }, + { + "name": "x11-xkb-utils", + "version": "7.7+5" + }, + { + "name": "xauth", + "version": "1:1.1-0ubuntu1" + }, + { + "name": "xbitmaps", + "version": "1.1.1-2" + }, + { + "name": "xbrlapi", + "version": "6.0+dfsg-4ubuntu6" + }, + { + "name": "xdg-dbus-proxy", + "version": "0.1.2-1" + }, + { + "name": "xdg-desktop-portal", + "version": "1.6.0-1" + }, + { + "name": "xdg-desktop-portal-gtk", + "version": "1.6.0-1build1" + }, + { + "name": "xdg-user-dirs", + "version": "0.17-2ubuntu1" + }, + { + "name": "xdg-utils", + "version": "1.1.3-2ubuntu1.20.04.2" + }, + { + "name": "xfonts-scalable", + "version": "1:1.0.3-1.1" + }, + { + "name": "xkb-data", + "version": "2.29-2" + }, + { + "name": "xorg", + "version": "1:7.7+19ubuntu14" + }, + { + "name": "xorg-docs-core", + "version": "1:1.7.1-1.1" + }, + { + "name": "xserver-common", + "version": "2:1.20.13-1ubuntu1~20.04.2" + }, + { + "name": "xserver-xephyr", + "version": "2:1.20.13-1ubuntu1~20.04.2" + }, + { + "name": "xserver-xorg", + "version": "1:7.7+19ubuntu14" + }, + { + "name": "xserver-xorg-core", + "version": "2:1.20.13-1ubuntu1~20.04.2" + }, + { + "name": "xserver-xorg-input-all", + "version": "1:7.7+19ubuntu14" + }, + { + "name": "xserver-xorg-input-libinput", + "version": "0.29.0-1" + }, + { + "name": "xserver-xorg-legacy", + "version": "2:1.20.13-1ubuntu1~20.04.2" + }, + { + "name": "xserver-xorg-video-all", + "version": "1:7.7+19ubuntu14" + }, + { + "name": "xserver-xorg-video-amdgpu", + "version": "19.1.0-1" + }, + { + "name": "xserver-xorg-video-ati", + "version": "1:19.1.0-1" + }, + { + "name": "xserver-xorg-video-fbdev", + "version": "1:0.5.0-1ubuntu1" + }, + { + "name": "xserver-xorg-video-intel", + "version": "2:2.99.917+git20200226-1" + }, + { + "name": "xserver-xorg-video-nouveau", + "version": "1:1.0.16-1" + }, + { + "name": "xserver-xorg-video-radeon", + "version": "1:19.1.0-1" + }, + { + "name": "xserver-xorg-video-vesa", + "version": "1:2.4.0-2" + }, + { + "name": "xwayland", + "version": "2:1.20.13-1ubuntu1~20.04.2" + }, + { + "name": "xxd", + "version": "2:8.1.2269-1ubuntu5.7" + }, + { + "name": "xz-utils", + "version": "5.2.4-1ubuntu1" + }, + { + "name": "yaru-theme-gnome-shell", + "version": "20.04.11.1" + }, + { + "name": "yaru-theme-gtk", + "version": "20.04.11.1" + }, + { + "name": "yaru-theme-icon", + "version": "20.04.11.1" + }, + { + "name": "yaru-theme-sound", + "version": "20.04.11.1" + }, + { + "name": "yelp", + "version": "3.36.2-0ubuntu1" + }, + { + "name": "yelp-xsl", + "version": "3.36.0-1" + }, + { + "name": "zenity", + "version": "3.32.0-5" + }, + { + "name": "zenity-common", + "version": "3.32.0-5" + }, + { + "name": "zip", + "version": "3.0-11build1" + }, + { + "name": "zlib1g", + "version": "1:1.2.11.dfsg-2ubuntu1.2" + } +] \ No newline at end of file diff --git a/cmd/osquery-perf/ubuntu_21.04.tmpl b/cmd/osquery-perf/ubuntu_21.04.tmpl new file mode 100644 index 0000000000..c15a9a1d1e --- /dev/null +++ b/cmd/osquery-perf/ubuntu_21.04.tmpl @@ -0,0 +1,364 @@ +{{ define "enroll" -}} +{ + "enroll_secret": "{{ .EnrollSecret }}", + "host_details": { + "os_version": { + "build": "", + "major": "", + "minor": "", + "name": "", + "patch": "", + "platform": "ubuntu", + "platform_like": "ubuntu", + "version": "Ubuntu 21.4.0" + }, + "osquery_info": { + "build_distro": "21.4.0", + "build_platform": "linux", + "config_hash": "", + "config_valid": "0", + "extensions": "inactive", + "instance_id": "{{ .UUID }}", + "pid": "12947", + "platform_mask": "21", + "start_time": "1580931224", + "uuid": "{{ .UUID }}", + "version": "4.6.0", + "watcher": "12946" + }, + "platform_info": { + "address": "0xff990000", + "date": "12/16/2019 ", + "extra": "MBP114; 196.0.0.0.0; root@xapp160; Mon Dec 16 15:55:18 PST 2019; 196 (B&I); F000_B00; Official Build, Release; Apple LLVM version 5.0 (clang-500.0.68) (based on LLVM 3.3svn)", + "revision": "196 (B&I)", + "size": "8388608", + "vendor": "Apple Inc. ", + "version": "196.0.0.0.0 ", + "volume_size": "1507328" + }, + "system_info": { + "computer_name": "{{ .CachedString "hostname" }}", + "cpu_brand": "Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "cpu_logical_cores": "8", + "cpu_physical_cores": "4", + "cpu_subtype": "Intel x86-64h Haswell", + "cpu_type": "x86_64h", + "hardware_model": "MacBookPro11,4", + "hardware_serial": "D02R835DG8WK", + "hardware_vendor": "Apple Inc.", + "hardware_version": "1.0", + "hostname": "{{ .CachedString "hostname" }}", + "local_hostname": "{{ .CachedString "hostname" }}", + "physical_memory": "17179869184", + "uuid": "{{ .UUID }}" + } + }, + "host_identifier": "{{ .CachedString "hostname" }}", + "platform_type": "16" +} +{{- end }} + +{{ define "fleet_detail_query_network_interface" -}} +[ + { + "point_to_point":"", + "address":"fe80::8cb:112d:ff51:1e5d%en0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"en0", + "mac":"f8:2d:88:93:56:5c", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"", + "address":"192.168.1.3", + "mask":"255.255.255.0", + "broadcast":"192.168.1.255", + "interface":"en0", + "mac":"f5:5a:80:92:52:5b", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"127.0.0.1", + "address":"127.0.0.1", + "mask":"255.0.0.0", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"::1", + "address":"::1", + "mask":"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::1%lo0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::3a:84ff:fe6b:bf75%awdl0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"awdl0", + "mac":"03:3b:94:5b:be:75", + "type":"6", + "mtu":"1484", + "metric":"0", + "ipackets":"0", + "opackets":"16", + "ibytes":"0", + "obytes":"3072", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582842892" + }, + { + "point_to_point":"", + "address":"fe80::6eaf:9721:3476:b691%utun0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"utun0", + "mac":"00:00:00:00:00:00", + "type":"1", + "mtu":"2000", + "metric":"0", + "ipackets":"0", + "opackets":"2", + "ibytes":"0", + "obytes":"0", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840897" + } +] +{{- end }} +{{ define "fleet_detail_query_os_version" -}} +[ + { + "name":"Ubuntu 21.4.0", + "version":"Ubuntu 21.4.0", + "major":"", + "minor":"", + "patch":"", + "build":"", + "platform":"ubuntu", + "platform_like":"ubuntu", + "codename":"" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_flags" -}} +[ + { + "name":"config_refresh", + "value":"{{ printf "%.0f" .ConfigInterval.Seconds }}" + }, + { + "name":"distributed_interval", + "value":"{{ printf "%.0f" .QueryInterval.Seconds }}" + }, + { + "name":"logger_tls_period", + "value":"99999" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_info" -}} +[ + { + "pid":"11287", + "uuid":"{{ .UUID }}", + "instance_id":"{{ .UUID }}", + "version":"4.1.2", + "config_hash":"b01efbf375ac6767f259ae98751154fef727ce35", + "config_valid":"1", + "extensions":"inactive", + "build_platform":"ubuntu", + "build_distro":"10.12", + "start_time":"1582857555", + "watcher":"11286", + "platform_mask":"21" + } +] +{{- end }} +{{ define "fleet_detail_query_system_info" -}} +[ + { + "hostname":"{{ .CachedString "hostname" }}", + "uuid":"4740D59F-699E-5B29-960B-979AAF9BBEEB", + "cpu_type":"x86_64h", + "cpu_subtype":"Intel x86-64h Haswell", + "cpu_brand":"Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz", + "cpu_physical_cores":"4", + "cpu_logical_cores":"8", + "cpu_microcode":"", + "physical_memory":"17179869184", + "hardware_vendor":"Apple Inc.", + "hardware_model":"MacBookPro11,4", + "hardware_version":"1.0", + "hardware_serial":"C02R262BM8LN", + "computer_name":"{{ .CachedString "hostname" }}", + "local_hostname":"{{ .CachedString "hostname" }}" + } +] +{{- end }} +{{ define "fleet_detail_query_uptime" -}} +[ + { + "days":"0", + "hours":"4", + "minutes":"38", + "seconds":"11", + "total_seconds":"16691" + } +] +{{- end }} + +{{ define "fleet_detail_query_users" -}} +[ + {{ range $index, $item := .HostUsersMacOS }} + {{if $index}},{{end}} + { + "uid": "{{ .Uid }}", + "username": "{{ .Username }}", + "type": "{{ .Type }}", + "groupname": "{{ .GroupName }}", + "shell": "{{ .Shell }}" + } + {{- end }} +] +{{- end }} + +{{/* all hosts */}} +{{ define "fleet_label_query_6" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All macOS hosts */}} +{{ define "fleet_label_query_7" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All Ubuntu hosts */}} +{{ define "fleet_label_query_8" -}} +[] +{{- end }} + +{{/* All CentOS hosts */}} +{{ define "fleet_label_query_9" -}} +[] +{{- end }} + +{{/* All Windows hosts */}} +{{ define "fleet_label_query_10" -}} +[] +{{- end }} + +{{/* All Red Hat hosts */}} +{{ define "fleet_label_query_11" -}} +[] +{{- end }} + +{{/* All Linux distributions */}} +{{ define "fleet_label_query_12" -}} +[] +{{- end }} + +{{ define "fleet_detail_query_software_linux" -}} +[ + {{ range $index, $item := .SoftwareUbuntu2104 }} + {{if $index}},{{end}} + { + "name": "{{ .Name }}", + "version": "{{ .Version }}", + "type": "Application", + "bundle_identifier": "{{ .BundleIdentifier }}", + "source": "apps", + {{/* Note that in Go < 1.18, `{{ or (and .LastOpendedAt .LastOpenedAt.Unix) "" }}` won't work as expected because "and" and "or" don't short circuit. This was changed in Go 1.18 */}} + {{if .LastOpenedAt}} + "last_opened_at": "{{ .LastOpenedAt.Unix }}" + {{else}} + "last_opened_at": "-1" + {{end}} + } + {{- end }} +] +{{- end }} diff --git a/cmd/osquery-perf/ubuntu_21.10.tmpl b/cmd/osquery-perf/ubuntu_21.10.tmpl new file mode 100644 index 0000000000..ea0e1e38b5 --- /dev/null +++ b/cmd/osquery-perf/ubuntu_21.10.tmpl @@ -0,0 +1,364 @@ +{{ define "enroll" -}} +{ + "enroll_secret": "{{ .EnrollSecret }}", + "host_details": { + "os_version": { + "build": "", + "major": "", + "minor": "", + "name": "Ubuntu 21.10.0", + "patch": "", + "platform": "ubuntu", + "platform_like": "ubuntu", + "version": "Ubuntu 21.10.0" + }, + "osquery_info": { + "build_distro": "21.10.0", + "build_platform": "ubuntu", + "config_hash": "", + "config_valid": "0", + "extensions": "inactive", + "instance_id": "{{ .UUID }}", + "pid": "12947", + "platform_mask": "21", + "start_time": "1580931224", + "uuid": "{{ .UUID }}", + "version": "4.6.0", + "watcher": "12946" + }, + "platform_info": { + "address": "0xff990000", + "date": "12/16/2019 ", + "extra": "MBP114; 196.0.0.0.0; root@xapp160; Mon Dec 16 15:55:18 PST 2019; 196 (B&I); F000_B00; Official Build, Release; Apple LLVM version 5.0 (clang-500.0.68) (based on LLVM 3.3svn)", + "revision": "196 (B&I)", + "size": "8388608", + "vendor": "Apple Inc. ", + "version": "196.0.0.0.0 ", + "volume_size": "1507328" + }, + "system_info": { + "computer_name": "{{ .CachedString "hostname" }}", + "cpu_brand": "Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "cpu_logical_cores": "8", + "cpu_physical_cores": "4", + "cpu_subtype": "Intel x86-64h Haswell", + "cpu_type": "x86_64h", + "hardware_model": "MacBookPro11,4", + "hardware_serial": "D02R835DG8WK", + "hardware_vendor": "Apple Inc.", + "hardware_version": "1.0", + "hostname": "{{ .CachedString "hostname" }}", + "local_hostname": "{{ .CachedString "hostname" }}", + "physical_memory": "17179869184", + "uuid": "{{ .UUID }}" + } + }, + "host_identifier": "{{ .CachedString "hostname" }}", + "platform_type": "16" +} +{{- end }} + +{{ define "fleet_detail_query_network_interface" -}} +[ + { + "point_to_point":"", + "address":"fe80::8cb:112d:ff51:1e5d%en0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"en0", + "mac":"f8:2d:88:93:56:5c", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"", + "address":"192.168.1.3", + "mask":"255.255.255.0", + "broadcast":"192.168.1.255", + "interface":"en0", + "mac":"f5:5a:80:92:52:5b", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"127.0.0.1", + "address":"127.0.0.1", + "mask":"255.0.0.0", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"::1", + "address":"::1", + "mask":"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::1%lo0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::3a:84ff:fe6b:bf75%awdl0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"awdl0", + "mac":"03:3b:94:5b:be:75", + "type":"6", + "mtu":"1484", + "metric":"0", + "ipackets":"0", + "opackets":"16", + "ibytes":"0", + "obytes":"3072", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582842892" + }, + { + "point_to_point":"", + "address":"fe80::6eaf:9721:3476:b691%utun0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"utun0", + "mac":"00:00:00:00:00:00", + "type":"1", + "mtu":"2000", + "metric":"0", + "ipackets":"0", + "opackets":"2", + "ibytes":"0", + "obytes":"0", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840897" + } +] +{{- end }} +{{ define "fleet_detail_query_os_version" -}} +[ + { + "name":"Ubuntu 21.10.0", + "version":"Ubuntu 21.10.0", + "major":"", + "minor":"", + "patch":"", + "build":"", + "platform":"ubuntu", + "platform_like":"ubuntu", + "codename":"" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_flags" -}} +[ + { + "name":"config_refresh", + "value":"{{ printf "%.0f" .ConfigInterval.Seconds }}" + }, + { + "name":"distributed_interval", + "value":"{{ printf "%.0f" .QueryInterval.Seconds }}" + }, + { + "name":"logger_tls_period", + "value":"99999" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_info" -}} +[ + { + "pid":"11287", + "uuid":"{{ .UUID }}", + "instance_id":"{{ .UUID }}", + "version":"4.1.2", + "config_hash":"b01efbf375ac6767f259ae98751154fef727ce35", + "config_valid":"1", + "extensions":"inactive", + "build_platform":"ubuntu", + "build_distro":"21.10.0", + "start_time":"1582857555", + "watcher":"11286", + "platform_mask":"21" + } +] +{{- end }} +{{ define "fleet_detail_query_system_info" -}} +[ + { + "hostname":"{{ .CachedString "hostname" }}", + "uuid":"4740D59F-699E-5B29-960B-979AAF9BBEEB", + "cpu_type":"x86_64h", + "cpu_subtype":"Intel x86-64h Haswell", + "cpu_brand":"Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz", + "cpu_physical_cores":"4", + "cpu_logical_cores":"8", + "cpu_microcode":"", + "physical_memory":"17179869184", + "hardware_vendor":"Apple Inc.", + "hardware_model":"MacBookPro11,4", + "hardware_version":"1.0", + "hardware_serial":"C02R262BM8LN", + "computer_name":"{{ .CachedString "hostname" }}", + "local_hostname":"{{ .CachedString "hostname" }}" + } +] +{{- end }} +{{ define "fleet_detail_query_uptime" -}} +[ + { + "days":"0", + "hours":"4", + "minutes":"38", + "seconds":"11", + "total_seconds":"16691" + } +] +{{- end }} + +{{ define "fleet_detail_query_users" -}} +[ + {{ range $index, $item := .HostUsersMacOS }} + {{if $index}},{{end}} + { + "uid": "{{ .Uid }}", + "username": "{{ .Username }}", + "type": "{{ .Type }}", + "groupname": "{{ .GroupName }}", + "shell": "{{ .Shell }}" + } + {{- end }} +] +{{- end }} + +{{/* all hosts */}} +{{ define "fleet_label_query_6" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All macOS hosts */}} +{{ define "fleet_label_query_7" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All Ubuntu hosts */}} +{{ define "fleet_label_query_8" -}} +[] +{{- end }} + +{{/* All CentOS hosts */}} +{{ define "fleet_label_query_9" -}} +[] +{{- end }} + +{{/* All Windows hosts */}} +{{ define "fleet_label_query_10" -}} +[] +{{- end }} + +{{/* All Red Hat hosts */}} +{{ define "fleet_label_query_11" -}} +[] +{{- end }} + +{{/* All Linux distributions */}} +{{ define "fleet_label_query_12" -}} +[] +{{- end }} + +{{ define "fleet_detail_query_software_linux" -}} +[ + {{ range $index, $item := .SoftwareUbuntu2110 }} + {{if $index}},{{end}} + { + "name": "{{ .Name }}", + "version": "{{ .Version }}", + "type": "Application", + "bundle_identifier": "{{ .BundleIdentifier }}", + "source": "apps", + {{/* Note that in Go < 1.18, `{{ or (and .LastOpendedAt .LastOpenedAt.Unix) "" }}` won't work as expected because "and" and "or" don't short circuit. This was changed in Go 1.18 */}} + {{if .LastOpenedAt}} + "last_opened_at": "{{ .LastOpenedAt.Unix }}" + {{else}} + "last_opened_at": "-1" + {{end}} + } + {{- end }} +] +{{- end }} diff --git a/cmd/osquery-perf/ubuntu_2104-vulnerable_software.json b/cmd/osquery-perf/ubuntu_2104-vulnerable_software.json new file mode 100644 index 0000000000..37d37e6643 --- /dev/null +++ b/cmd/osquery-perf/ubuntu_2104-vulnerable_software.json @@ -0,0 +1,6098 @@ +[ + { + "name": "defer", + "version": "1.0.6" + }, + { + "name": "dmz-cursor-theme", + "version": "0.4.5ubuntu1" + }, + { + "name": "grub-gfxpayload-lists", + "version": "0.7" + }, + { + "name": "hicolor-icon-theme", + "version": "0.17-2" + }, + { + "name": "language-selector", + "version": "0.1" + }, + { + "name": "laptop-detect", + "version": "0.16" + }, + { + "name": "libnet-smtp-ssl-perl", + "version": "1.04-1" + }, + { + "name": "libxml-xpathengine-perl", + "version": "0.14-1" + }, + { + "name": "pymacaroons", + "version": "0.13.0" + }, + { + "name": "sound-theme-freedesktop", + "version": "0.8-2ubuntu1" + }, + { + "name": "ubuntu-drivers-common", + "version": "0.0.0" + }, + { + "name": "unattended-upgrades", + "version": "0.1" + }, + { + "name": "aspell-en", + "version": "2018.04.16-0-1" + }, + { + "name": "emacsen-common", + "version": "3.0.4" + }, + { + "name": "fonts-deva-extra", + "version": "3.0-5" + }, + { + "name": "fonts-gujr-extra", + "version": "1.0.1-1" + }, + { + "name": "fonts-guru-extra", + "version": "2.0-5" + }, + { + "name": "fonts-kacst-one", + "version": "5.0+svn11846-10" + }, + { + "name": "fonts-liberation", + "version": "1:1.07.4-11" + }, + { + "name": "fonts-lohit-deva", + "version": "2.95.4-4" + }, + { + "name": "fonts-lohit-gujr", + "version": "2.92.4-4" + }, + { + "name": "fonts-orya-extra", + "version": "2.0-6" + }, + { + "name": "fonts-smc-meera", + "version": "7.0.3-1" + }, + { + "name": "fonts-smc-raghumalayalamsans", + "version": "2.2.1-1" + }, + { + "name": "fonts-smc-suruma", + "version": "3.2.3-1" + }, + { + "name": "fonts-smc-uroob", + "version": "2.0.2-1" + }, + { + "name": "libhtml-form-perl", + "version": "6.07-1" + }, + { + "name": "libhtml-tagset-perl", + "version": "3.20-4" + }, + { + "name": "libhtml-tree-perl", + "version": "5.07-2" + }, + { + "name": "libhttp-date-perl", + "version": "6.05-1" + }, + { + "name": "libhttp-negotiate-perl", + "version": "6.01-1" + }, + { + "name": "libio-stringy-perl", + "version": "2.111-3" + }, + { + "name": "liblwp-mediatypes-perl", + "version": "6.04-1" + }, + { + "name": "libmailtools-perl", + "version": "2.21-1" + }, + { + "name": "libtext-wrapi18n-perl", + "version": "0.06-9" + }, + { + "name": "libwww-robotrules-perl", + "version": "6.02-1" + }, + { + "name": "macaroonbakery", + "version": "1.3.1" + }, + { + "name": "olefile", + "version": "0.46" + }, + { + "name": "osquery", + "version": "5.2.3-1.linux" + }, + { + "name": "policykit-desktop-privileges", + "version": "0.21" + }, + { + "name": "powermgmt-base", + "version": "1.36" + }, + { + "name": "pyRFC3339", + "version": "1.1" + }, + { + "name": "xcursor-themes", + "version": "1.0.6-0ubuntu1" + }, + { + "name": "xfonts-base", + "version": "1:1.0.5" + }, + { + "name": "xml-core", + "version": "0.18+nmu1" + }, + { + "name": "SecretStorage", + "version": "3.3.1" + }, + { + "name": "adduser", + "version": "3.118ubuntu5" + }, + { + "name": "alsa-base", + "version": "1.0.25+dfsg-0ubuntu7" + }, + { + "name": "apport-symptoms", + "version": "0.24" + }, + { + "name": "certifi", + "version": "2020.6.20" + }, + { + "name": "chardet", + "version": "4.0.0" + }, + { + "name": "colorama", + "version": "0.4.4" + }, + { + "name": "dns-root-data", + "version": "2021011101" + }, + { + "name": "fonts-beng", + "version": "2:1.3" + }, + { + "name": "fonts-dejavu-core", + "version": "2.37-2build1" + }, + { + "name": "fonts-deva", + "version": "2:1.3" + }, + { + "name": "fonts-droid-fallback", + "version": "1:6.0.1r16-1.1build1" + }, + { + "name": "fonts-freefont-ttf", + "version": "20120503-10build1" + }, + { + "name": "fonts-gargi", + "version": "2.0-5" + }, + { + "name": "fonts-gubbi", + "version": "1.3-5build1" + }, + { + "name": "fonts-gujr", + "version": "2:1.4" + }, + { + "name": "fonts-guru", + "version": "2:1.3" + }, + { + "name": "fonts-indic", + "version": "2:1.4" + }, + { + "name": "fonts-kacst", + "version": "2.01+mry-15" + }, + { + "name": "fonts-kalapi", + "version": "1.0-4" + }, + { + "name": "fonts-knda", + "version": "2:1.3" + }, + { + "name": "fonts-lao", + "version": "0.0.20060226-10ubuntu2" + }, + { + "name": "fonts-lohit-beng-assamese", + "version": "2.91.5-2" + }, + { + "name": "fonts-lohit-beng-bengali", + "version": "2.91.5-2" + }, + { + "name": "fonts-lohit-guru", + "version": "2.91.2-2build1" + }, + { + "name": "fonts-lohit-knda", + "version": "2.5.4-3" + }, + { + "name": "fonts-lohit-mlym", + "version": "2.92.2-2" + }, + { + "name": "fonts-lohit-orya", + "version": "2.91.2-2" + }, + { + "name": "fonts-lohit-taml", + "version": "2.91.3-2" + }, + { + "name": "fonts-lohit-taml-classical", + "version": "2.5.4-2" + }, + { + "name": "fonts-lohit-telu", + "version": "2.5.5-2build1" + }, + { + "name": "fonts-mlym", + "version": "2:1.3" + }, + { + "name": "fonts-nakula", + "version": "1.0-4" + }, + { + "name": "fonts-navilu", + "version": "1.2-3" + }, + { + "name": "fonts-noto-mono", + "version": "20201225-1build1" + }, + { + "name": "fonts-orya", + "version": "2:1.3" + }, + { + "name": "fonts-pagul", + "version": "1.0-8" + }, + { + "name": "fonts-sahadeva", + "version": "1.0-5" + }, + { + "name": "fonts-samyak-deva", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-gujr", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-mlym", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-taml", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-sarai", + "version": "1.0-3" + }, + { + "name": "fonts-smc", + "version": "1:7.2" + }, + { + "name": "fonts-smc-anjalioldlipi", + "version": "7.1.2-2" + }, + { + "name": "fonts-smc-dyuthi", + "version": "3.0.2-2" + }, + { + "name": "fonts-smc-karumbi", + "version": "1.1.2-2" + }, + { + "name": "fonts-smc-keraleeyam", + "version": "3.0.2-2" + }, + { + "name": "fonts-smc-rachana", + "version": "7.0.2-1build1" + }, + { + "name": "fonts-taml", + "version": "2:1.4" + }, + { + "name": "fonts-telu", + "version": "2:1.3" + }, + { + "name": "fonts-telu-extra", + "version": "2.0-5" + }, + { + "name": "fonts-teluguvijayam", + "version": "2.1-1" + }, + { + "name": "fonts-urw-base35", + "version": "20200910-1" + }, + { + "name": "friendly-recovery", + "version": "0.2.42" + }, + { + "name": "libauthen-sasl-perl", + "version": "2.1600-1.1" + }, + { + "name": "libencode-locale-perl", + "version": "1.05-1.1" + }, + { + "name": "libfile-desktopentry-perl", + "version": "0.22-2" + }, + { + "name": "libfile-listing-perl", + "version": "6.14-1" + }, + { + "name": "libfont-afm-perl", + "version": "1.20-3" + }, + { + "name": "libgtk3-perl", + "version": "0.038-1" + }, + { + "name": "libhtml-format-perl", + "version": "2.12-1.1" + }, + { + "name": "libhttp-cookies-perl", + "version": "6.10-1" + }, + { + "name": "libio-html-perl", + "version": "1.004-2" + }, + { + "name": "libipc-system-simple-perl", + "version": "1.30-1" + }, + { + "name": "liblwp-protocol-https-perl", + "version": "6.10-1" + }, + { + "name": "libtie-ixhash-perl", + "version": "1.23-2.1" + }, + { + "name": "libtimedate-perl", + "version": "2.3300-2" + }, + { + "name": "libx11-protocol-perl", + "version": "0.56-7.1" + }, + { + "name": "libxml-twig-perl", + "version": "1:3.52-1" + }, + { + "name": "linux-sound-base", + "version": "1.0.25+dfsg-0ubuntu7" + }, + { + "name": "mime-support", + "version": "3.66" + }, + { + "name": "nessusagent", + "version": "10.1.3" + }, + { + "name": "protobuf", + "version": "3.12.4" + }, + { + "name": "python-dateutil", + "version": "2.8.1" + }, + { + "name": "python3-certifi", + "version": "2020.6.20-1" + }, + { + "name": "python3-chardet", + "version": "4.0.0-1" + }, + { + "name": "python3-colorama", + "version": "0.4.4-1" + }, + { + "name": "python3-olefile", + "version": "0.46-3" + }, + { + "name": "python3-pymacaroons", + "version": "0.13.0-4" + }, + { + "name": "python3-requests", + "version": "2.25.1+dfsg-2" + }, + { + "name": "python3-secretstorage", + "version": "3.3.1-1" + }, + { + "name": "python3-xdg", + "version": "0.27-2" + }, + { + "name": "pyxdg", + "version": "0.27" + }, + { + "name": "requests", + "version": "2.25.1" + }, + { + "name": "secureboot-db", + "version": "1.8" + }, + { + "name": "sgml-base", + "version": "1.30" + }, + { + "name": "sgml-data", + "version": "2.0.11+nmu1" + }, + { + "name": "ubuntu-keyring", + "version": "2021.03.26" + }, + { + "name": "ucf", + "version": "3.0043" + }, + { + "name": "update-inetd", + "version": "4.51" + }, + { + "name": "xorg-docs-core", + "version": "1:1.7.1-1.2" + }, + { + "name": "Pillow", + "version": "8.1.2" + }, + { + "name": "PyJWT", + "version": "1.7.1" + }, + { + "name": "PyNaCl", + "version": "1.4.0" + }, + { + "name": "aptdaemon", + "version": "1.1.1+bzr982-0ubuntu36" + }, + { + "name": "aptdaemon-data", + "version": "1.1.1+bzr982-0ubuntu36" + }, + { + "name": "bash-completion", + "version": "1:2.11-2ubuntu1" + }, + { + "name": "bzip2", + "version": "1.0.8-4ubuntu3" + }, + { + "name": "click", + "version": "7.1.2" + }, + { + "name": "coreutils", + "version": "8.32-4ubuntu2" + }, + { + "name": "cracklib-runtime", + "version": "2.9.6-3.4build1" + }, + { + "name": "cryptography", + "version": "3.3.2" + }, + { + "name": "dbus-python", + "version": "1.2.16" + }, + { + "name": "debianutils", + "version": "4.11.2" + }, + { + "name": "dictionaries-common", + "version": "1.28.4" + }, + { + "name": "distro", + "version": "1.5.0" + }, + { + "name": "distro-info", + "version": "1.0" + }, + { + "name": "docbook-xml", + "version": "4.5-9" + }, + { + "name": "ed", + "version": "1.17-1" + }, + { + "name": "file", + "version": "1:5.39-3" + }, + { + "name": "fontconfig", + "version": "2.13.1-4.2ubuntu3" + }, + { + "name": "fontconfig-config", + "version": "2.13.1-4.2ubuntu3" + }, + { + "name": "fonts-beng-extra", + "version": "1.0-7" + }, + { + "name": "fonts-noto-cjk", + "version": "1:20201206-cjk+repack1-1" + }, + { + "name": "fonts-sil-abyssinica", + "version": "2.000-1build1" + }, + { + "name": "fonts-sil-padauk", + "version": "4.000-1build1" + }, + { + "name": "fonts-smc-chilanka", + "version": "1.530-1" + }, + { + "name": "fonts-smc-gayathri", + "version": "1.100-2" + }, + { + "name": "fonts-smc-manjari", + "version": "1.920-1" + }, + { + "name": "fonts-thai-tlwg", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tibetan-machine", + "version": "1.901b-5.1build1" + }, + { + "name": "fonts-tlwg-garuda", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-garuda-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-kinnari", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-kinnari-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-laksaman", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-laksaman-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-loma", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-loma-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-mono", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-mono-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-norasi", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-norasi-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-purisa", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-purisa-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-sawasdee", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-sawasdee-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typewriter", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typewriter-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typist", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typist-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typo", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typo-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-umpush", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-umpush-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-waree", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-waree-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-ubuntu", + "version": "0.83-4ubuntu2" + }, + { + "name": "ftp", + "version": "0.17-34.1.1" + }, + { + "name": "gamemode", + "version": "1.6.1-1" + }, + { + "name": "gamemode-daemon", + "version": "1.6.1-1" + }, + { + "name": "gir1.2-gmenu-3.0", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gir1.2-harfbuzz-0.0", + "version": "2.7.4-1ubuntu1" + }, + { + "name": "gir1.2-json-1.0", + "version": "1.6.2-1" + }, + { + "name": "gir1.2-secret-1", + "version": "0.20.4-2" + }, + { + "name": "gir1.2-snapd-1", + "version": "1.58-0ubuntu2" + }, + { + "name": "gir1.2-unity-7.0", + "version": "7.1.4+19.04.20190319-5" + }, + { + "name": "gnome-menus", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gnome-session-canberra", + "version": "0.30-7ubuntu2" + }, + { + "name": "gvfs", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-backends", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-common", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-daemons", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-fuse", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-libs", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "httplib2", + "version": "0.18.1" + }, + { + "name": "humanity-icon-theme", + "version": "0.6.15" + }, + { + "name": "hunspell-en-us", + "version": "1:2019.10.06-1" + }, + { + "name": "ibus-table", + "version": "1.12.4-1" + }, + { + "name": "idna", + "version": "2.10" + }, + { + "name": "info", + "version": "6.7.0.dfsg.2-6" + }, + { + "name": "install-info", + "version": "6.7.0.dfsg.2-6" + }, + { + "name": "iproute2", + "version": "5.10.0-4ubuntu1" + }, + { + "name": "iptables", + "version": "1.8.7-1ubuntu2" + }, + { + "name": "iputils-ping", + "version": "3:20210202-1" + }, + { + "name": "iputils-tracepath", + "version": "3:20210202-1" + }, + { + "name": "iso-codes", + "version": "4.6.0-1" + }, + { + "name": "iw", + "version": "5.9-3" + }, + { + "name": "launchpadlib", + "version": "1.10.13" + }, + { + "name": "lazr.restfulclient", + "version": "0.14.2" + }, + { + "name": "lazr.uri", + "version": "1.0.5" + }, + { + "name": "less", + "version": "551-2" + }, + { + "name": "libarchive13", + "version": "3.4.3-2" + }, + { + "name": "libargon2-1", + "version": "0~20171227-0.2build21.04.0" + }, + { + "name": "libatasmart4", + "version": "0.19-5" + }, + { + "name": "libbsd0", + "version": "0.11.3-1ubuntu2" + }, + { + "name": "libbz2-1.0", + "version": "1.0.8-4ubuntu3" + }, + { + "name": "libcairo-gobject2", + "version": "1.16.0-5ubuntu1" + }, + { + "name": "libcairo-perl", + "version": "1.109-1" + }, + { + "name": "libcairo2", + "version": "1.16.0-5ubuntu1" + }, + { + "name": "libcanberra-gtk3-0", + "version": "0.30-7ubuntu2" + }, + { + "name": "libcanberra-gtk3-module", + "version": "0.30-7ubuntu2" + }, + { + "name": "libcanberra-pulse", + "version": "0.30-7ubuntu2" + }, + { + "name": "libcanberra0", + "version": "0.30-7ubuntu2" + }, + { + "name": "libcap-ng0", + "version": "0.7.9-2.2build1" + }, + { + "name": "libcap2", + "version": "1:2.44-1build1" + }, + { + "name": "libcap2-bin", + "version": "1:2.44-1build1" + }, + { + "name": "libcbor0.6", + "version": "0.6.0-0ubuntu3" + }, + { + "name": "libcdio19", + "version": "2.1.0-2" + }, + { + "name": "libclone-perl", + "version": "0.45-1build1" + }, + { + "name": "libcrack2", + "version": "2.9.6-3.4build1" + }, + { + "name": "libdata-dump-perl", + "version": "1.23-1.1" + }, + { + "name": "libdatrie1", + "version": "0.2.13-1ubuntu2" + }, + { + "name": "libdebconfclient0", + "version": "0.256ubuntu3" + }, + { + "name": "libevdev2", + "version": "1.11.0+dfsg-1build1" + }, + { + "name": "libexif12", + "version": "0.6.22-3" + }, + { + "name": "libextutils-depends-perl", + "version": "0.8000-1" + }, + { + "name": "libextutils-pkgconfig-perl", + "version": "1.16-1.1" + }, + { + "name": "libfile-basedir-perl", + "version": "0.08-1" + }, + { + "name": "libfile-fcntllock-perl", + "version": "0.22-3build5" + }, + { + "name": "libfile-mimeinfo-perl", + "version": "0.30-1" + }, + { + "name": "libflac8", + "version": "1.3.3-2" + }, + { + "name": "libfontconfig1", + "version": "2.13.1-4.2ubuntu3" + }, + { + "name": "libfreetype6", + "version": "2.10.4+dfsg-1build1" + }, + { + "name": "libgamemode0", + "version": "1.6.1-1" + }, + { + "name": "libgamemodeauto0", + "version": "1.6.1-1" + }, + { + "name": "libgdbm-compat4", + "version": "1.19-2" + }, + { + "name": "libgdbm6", + "version": "1.19-2" + }, + { + "name": "libglib-perl", + "version": "3:1.329.3-1build1" + }, + { + "name": "libglu1-mesa", + "version": "9.0.1-1build1" + }, + { + "name": "libgmp10", + "version": "2:6.2.1+dfsg-1ubuntu2" + }, + { + "name": "libgnome-menu-3-0", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "libgpg-error0", + "version": "1.38-2build1" + }, + { + "name": "libgraphite2-3", + "version": "1.3.14-1" + }, + { + "name": "libharfbuzz-icu0", + "version": "2.7.4-1ubuntu1" + }, + { + "name": "libharfbuzz0b", + "version": "2.7.4-1ubuntu1" + }, + { + "name": "libhttp-daemon-perl", + "version": "6.12-1" + }, + { + "name": "libhunspell-1.7-0", + "version": "1.7.0-3" + }, + { + "name": "libhyphen0", + "version": "2.8.8-7" + }, + { + "name": "libidn11", + "version": "1.33-3" + }, + { + "name": "libimobiledevice6", + "version": "1.3.0-6" + }, + { + "name": "libio-socket-ssl-perl", + "version": "2.069-1" + }, + { + "name": "libip4tc2", + "version": "1.8.7-1ubuntu2" + }, + { + "name": "libip6tc2", + "version": "1.8.7-1ubuntu2" + }, + { + "name": "libjansson4", + "version": "2.13.1-1.1build1" + }, + { + "name": "libjbig0", + "version": "2.1-3.1build1" + }, + { + "name": "libjpeg-turbo8", + "version": "2.0.6-0ubuntu2" + }, + { + "name": "libjpeg8", + "version": "8c-2ubuntu8" + }, + { + "name": "libjson-c5", + "version": "0.15-2build2" + }, + { + "name": "libjson-glib-1.0-0", + "version": "1.6.2-1" + }, + { + "name": "libjson-glib-1.0-common", + "version": "1.6.2-1" + }, + { + "name": "libkeyutils1", + "version": "1.6.1-2ubuntu1" + }, + { + "name": "libkpathsea6", + "version": "2020.20200327.54578-7" + }, + { + "name": "liblcms2-2", + "version": "2.12~rc1-2" + }, + { + "name": "liblcms2-utils", + "version": "2.12~rc1-2" + }, + { + "name": "liblmdb0", + "version": "0.9.24-1" + }, + { + "name": "liblocale-gettext-perl", + "version": "1.07-4build1" + }, + { + "name": "libltdl7", + "version": "2.4.6-15" + }, + { + "name": "liblzo2-2", + "version": "2.10-2build1" + }, + { + "name": "libmagic-mgc", + "version": "1:5.39-3" + }, + { + "name": "libmagic1", + "version": "1:5.39-3" + }, + { + "name": "libmaxminddb0", + "version": "1.5.2-1" + }, + { + "name": "libmd0", + "version": "1.0.3-3build1" + }, + { + "name": "libmnl0", + "version": "1.0.4-3" + }, + { + "name": "libmpc3", + "version": "1.2.0-1build1" + }, + { + "name": "libmpfr6", + "version": "4.1.0-3build1" + }, + { + "name": "libmtp-common", + "version": "1.1.18-1" + }, + { + "name": "libmtp-runtime", + "version": "1.1.18-1" + }, + { + "name": "libmtp9", + "version": "1.1.18-1" + }, + { + "name": "libncurses6", + "version": "6.2+20201114-2build1" + }, + { + "name": "libncursesw6", + "version": "6.2+20201114-2build1" + }, + { + "name": "libnet-dbus-perl", + "version": "1.2.0-1build1" + }, + { + "name": "libnet-http-perl", + "version": "6.20-1" + }, + { + "name": "libnet-ssleay-perl", + "version": "1.88-3ubuntu1" + }, + { + "name": "libnetfilter-conntrack3", + "version": "1.0.8-3" + }, + { + "name": "libnfnetlink0", + "version": "1.0.1-3build1" + }, + { + "name": "libnfs13", + "version": "4.0.0-1" + }, + { + "name": "libnftnl11", + "version": "1.1.9-1" + }, + { + "name": "libnghttp2-14", + "version": "1.43.0-1" + }, + { + "name": "libnl-3-200", + "version": "3.4.0-1build2" + }, + { + "name": "libnl-genl-3-200", + "version": "3.4.0-1build2" + }, + { + "name": "libnl-route-3-200", + "version": "3.4.0-1build2" + }, + { + "name": "libnpth0", + "version": "1.6-3" + }, + { + "name": "libnuma1", + "version": "2.0.14-0ubuntu2" + }, + { + "name": "libopenjp2-7", + "version": "2.3.1-1ubuntu5" + }, + { + "name": "libopus0", + "version": "1.3.1-0.1" + }, + { + "name": "liborc-0.4-0", + "version": "1:0.4.32-1" + }, + { + "name": "libpam-cap", + "version": "1:2.44-1build1" + }, + { + "name": "libpam-pwquality", + "version": "1.4.4-1" + }, + { + "name": "libparted-fs-resize0", + "version": "3.4-1" + }, + { + "name": "libparted2", + "version": "3.4-1" + }, + { + "name": "libpci3", + "version": "1:3.7.0-5ubuntu2" + }, + { + "name": "libpcre3", + "version": "2:8.39-13build3" + }, + { + "name": "libpixman-1-0", + "version": "0.40.0-1build2" + }, + { + "name": "libpkcs11-helper1", + "version": "1.27-1" + }, + { + "name": "libpopt0", + "version": "1.18-2build2" + }, + { + "name": "libproxy1-plugin-gsettings", + "version": "0.4.17-1" + }, + { + "name": "libproxy1-plugin-networkmanager", + "version": "0.4.17-1" + }, + { + "name": "libproxy1v5", + "version": "0.4.17-1" + }, + { + "name": "libpsl5", + "version": "0.21.0-1.2" + }, + { + "name": "libpwquality-common", + "version": "1.4.4-1" + }, + { + "name": "libpwquality1", + "version": "1.4.4-1" + }, + { + "name": "libsamplerate0", + "version": "0.2.1+ds0-1" + }, + { + "name": "libseccomp2", + "version": "2.5.1-1ubuntu1" + }, + { + "name": "libsecret-1-0", + "version": "0.20.4-2" + }, + { + "name": "libsecret-common", + "version": "0.20.4-2" + }, + { + "name": "libsensors-config", + "version": "1:3.6.0-7" + }, + { + "name": "libsensors5", + "version": "1:3.6.0-7" + }, + { + "name": "libslang2", + "version": "2.3.2-5build2" + }, + { + "name": "libsnapd-glib1", + "version": "1.58-0ubuntu2" + }, + { + "name": "libsonic0", + "version": "0.2.0-10" + }, + { + "name": "libspeex1", + "version": "1.2~rc1.2-1.1ubuntu1" + }, + { + "name": "libspeexdsp1", + "version": "1.2~rc1.2-1.1ubuntu1" + }, + { + "name": "libstemmer0d", + "version": "2.1.0-1" + }, + { + "name": "libsynctex2", + "version": "2020.20200327.54578-7" + }, + { + "name": "libtasn1-6", + "version": "4.16.0-2" + }, + { + "name": "libtcl8.6", + "version": "8.6.11+dfsg-1" + }, + { + "name": "libtdb1", + "version": "1.4.3-1build1" + }, + { + "name": "libtext-charwidth-perl", + "version": "0.04-10build1" + }, + { + "name": "libtext-iconv-perl", + "version": "1.7-7build1" + }, + { + "name": "libtheora0", + "version": "1.1.1+dfsg.1-15ubuntu2" + }, + { + "name": "libtinfo6", + "version": "6.2+20201114-2build1" + }, + { + "name": "libtry-tiny-perl", + "version": "0.30-1" + }, + { + "name": "libtss2-esys-3.0.2-0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-mu0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-sys1", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-tcti-cmd0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-tcti-device0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-tcti-mssim0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-tcti-swtpm0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libunity-protocol-private0", + "version": "7.1.4+19.04.20190319-5" + }, + { + "name": "libunity-scopes-json-def-desktop", + "version": "7.1.4+19.04.20190319-5" + }, + { + "name": "libunity9", + "version": "7.1.4+19.04.20190319-5" + }, + { + "name": "libunwind8", + "version": "1.3.2-2" + }, + { + "name": "libusb-1.0-0", + "version": "2:1.0.24-3" + }, + { + "name": "libvorbis0a", + "version": "1.3.7-1" + }, + { + "name": "libvorbisenc2", + "version": "1.3.7-1" + }, + { + "name": "libvorbisfile3", + "version": "1.3.7-1" + }, + { + "name": "libwrap0", + "version": "7.6.q-31" + }, + { + "name": "libxau6", + "version": "1:1.0.9-1build3" + }, + { + "name": "libxaw7", + "version": "2:1.0.13-1.1" + }, + { + "name": "libxcb-dri2-0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-dri3-0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-glx0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-present0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-randr0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-render0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-res0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-shape0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-shm0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-sync1", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-xfixes0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-xkb1", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-xv0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb1", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcomposite1", + "version": "1:0.4.5-1" + }, + { + "name": "libxcursor1", + "version": "1:1.2.0-2build2" + }, + { + "name": "libxdamage1", + "version": "1:1.1.5-2" + }, + { + "name": "libxext6", + "version": "2:1.3.4-0ubuntu3" + }, + { + "name": "libxfixes3", + "version": "1:5.0.3-2build1" + }, + { + "name": "libxi6", + "version": "2:1.7.10-1build2" + }, + { + "name": "libxinerama1", + "version": "2:1.1.4-2build2" + }, + { + "name": "libxkbfile1", + "version": "1:1.1.0-1build1" + }, + { + "name": "libxml-parser-perl", + "version": "2.46-2" + }, + { + "name": "libxmlb1", + "version": "0.1.15-2ubuntu1" + }, + { + "name": "libxmu6", + "version": "2:1.1.3-0ubuntu1" + }, + { + "name": "libxmuu1", + "version": "2:1.1.3-0ubuntu1" + }, + { + "name": "libxpm4", + "version": "1:3.5.12-1" + }, + { + "name": "libxrandr2", + "version": "2:1.5.2-0ubuntu1" + }, + { + "name": "libxrender1", + "version": "1:0.9.10-1build2" + }, + { + "name": "libxslt1.1", + "version": "1.1.34-4" + }, + { + "name": "libxss1", + "version": "1:1.2.3-1" + }, + { + "name": "libxt6", + "version": "1:1.2.0-1" + }, + { + "name": "libxtables12", + "version": "1.8.7-1ubuntu2" + }, + { + "name": "libxtst6", + "version": "2:1.2.3-1build2" + }, + { + "name": "libxv1", + "version": "2:1.0.11-1" + }, + { + "name": "libxxf86vm1", + "version": "1:1.1.4-1build1" + }, + { + "name": "libyaml-0-2", + "version": "0.2.2-1" + }, + { + "name": "lsof", + "version": "4.93.2+dfsg-1.1" + }, + { + "name": "man-db", + "version": "2.9.4-2" + }, + { + "name": "mawk", + "version": "1.3.4.20200120-2" + }, + { + "name": "media-types", + "version": "4.0.0" + }, + { + "name": "ncurses-base", + "version": "6.2+20201114-2build1" + }, + { + "name": "ncurses-bin", + "version": "6.2+20201114-2build1" + }, + { + "name": "netcat-openbsd", + "version": "1.217-3ubuntu1" + }, + { + "name": "netifaces", + "version": "0.10.9" + }, + { + "name": "oauthlib", + "version": "3.1.0" + }, + { + "name": "parted", + "version": "3.4-1" + }, + { + "name": "patch", + "version": "2.7.6-7" + }, + { + "name": "pciutils", + "version": "1:3.7.0-5ubuntu2" + }, + { + "name": "perl-openssl-defaults", + "version": "5" + }, + { + "name": "pkg-config", + "version": "0.29.2-1ubuntu1" + }, + { + "name": "psmisc", + "version": "23.4-2build1" + }, + { + "name": "publicsuffix", + "version": "20210108.1309-1" + }, + { + "name": "python3-aptdaemon", + "version": "1.1.1+bzr982-0ubuntu36" + }, + { + "name": "python3-aptdaemon.gtk3widgets", + "version": "1.1.1+bzr982-0ubuntu36" + }, + { + "name": "python3-blinker", + "version": "1.4+dfsg1-0.3ubuntu2" + }, + { + "name": "python3-cairo", + "version": "1.16.2-4build2" + }, + { + "name": "python3-click", + "version": "7.1.2-1" + }, + { + "name": "python3-cryptography", + "version": "3.3.2-1" + }, + { + "name": "python3-cups", + "version": "2.0.1-4build1" + }, + { + "name": "python3-dbus", + "version": "1.2.16-5" + }, + { + "name": "python3-defer", + "version": "1.0.6-2.1" + }, + { + "name": "python3-distro", + "version": "1.5.0-1" + }, + { + "name": "python3-distro-info", + "version": "1.0" + }, + { + "name": "python3-idna", + "version": "2.10-1" + }, + { + "name": "python3-jwt", + "version": "1.7.1-2ubuntu2" + }, + { + "name": "python3-launchpadlib", + "version": "1.10.13-1" + }, + { + "name": "python3-lazr.restfulclient", + "version": "0.14.2-2build1" + }, + { + "name": "python3-lazr.uri", + "version": "1.0.5-1" + }, + { + "name": "python3-macaroonbakery", + "version": "1.3.1-1" + }, + { + "name": "python3-nacl", + "version": "1.4.0-1build1" + }, + { + "name": "python3-netifaces", + "version": "0.10.9-0.2" + }, + { + "name": "python3-oauthlib", + "version": "3.1.0-2" + }, + { + "name": "python3-ptyprocess", + "version": "0.7.0-1" + }, + { + "name": "python3-pyatspi", + "version": "2.38.1-1" + }, + { + "name": "python3-renderpm", + "version": "3.5.66-1" + }, + { + "name": "python3-reportlab", + "version": "3.5.66-1" + }, + { + "name": "python3-reportlab-accel", + "version": "3.5.66-1" + }, + { + "name": "python3-rfc3339", + "version": "1.1-2" + }, + { + "name": "python3-simplejson", + "version": "3.17.2-1" + }, + { + "name": "python3-systemd", + "version": "234-3build4" + }, + { + "name": "python3-tz", + "version": "2021.1-1" + }, + { + "name": "python3-wadllib", + "version": "1.3.5-1" + }, + { + "name": "python3-xkit", + "version": "0.5.0ubuntu4" + }, + { + "name": "pytz", + "version": "2021.1" + }, + { + "name": "reportlab", + "version": "3.5.66" + }, + { + "name": "rtkit", + "version": "0.13-4" + }, + { + "name": "sed", + "version": "4.7-1ubuntu1" + }, + { + "name": "sensible-utils", + "version": "0.0.14" + }, + { + "name": "sound-icons", + "version": "0.1-7" + }, + { + "name": "tar", + "version": "1.34+dfsg-1build1" + }, + { + "name": "tcl8.6", + "version": "8.6.11+dfsg-1" + }, + { + "name": "telnet", + "version": "0.17-42" + }, + { + "name": "time", + "version": "1.9-0.1" + }, + { + "name": "tpm-udev", + "version": "0.5" + }, + { + "name": "ubuntu-mono", + "version": "20.10-0ubuntu1" + }, + { + "name": "unattended-upgrades", + "version": "2.8" + }, + { + "name": "unzip", + "version": "6.0-26ubuntu1" + }, + { + "name": "usb-modeswitch-data", + "version": "20191128-3" + }, + { + "name": "wadllib", + "version": "1.3.5" + }, + { + "name": "wamerican", + "version": "2019.10.06-1" + }, + { + "name": "wbritish", + "version": "2019.10.06-1" + }, + { + "name": "wget", + "version": "1.21-1ubuntu3" + }, + { + "name": "x11-apps", + "version": "7.7+8" + }, + { + "name": "xauth", + "version": "1:1.1-1" + }, + { + "name": "xbitmaps", + "version": "1.1.1-2.1" + }, + { + "name": "xdg-utils", + "version": "1.1.3-2ubuntu2" + }, + { + "name": "xfonts-encodings", + "version": "1:1.0.5-0ubuntu1" + }, + { + "name": "xfonts-scalable", + "version": "1:1.0.3-1.2" + }, + { + "name": "xkb-data", + "version": "2.29-2build1" + }, + { + "name": "xserver-xorg-video-vmware", + "version": "1:13.3.0-3" + }, + { + "name": "Amazon.com", + "version": "1.3" + }, + { + "name": "Bing", + "version": "1.3" + }, + { + "name": "Dark", + "version": "1.1" + }, + { + "name": "Default", + "version": "1.1" + }, + { + "name": "DoH Roll-Out", + "version": "2.0.0" + }, + { + "name": "DuckDuckGo", + "version": "1.1" + }, + { + "name": "English (CA) Language Pack", + "version": "87.0buildid20210318103112" + }, + { + "name": "English (GB) Language Pack", + "version": "87.0buildid20210318103112" + }, + { + "name": "Firefox Alpenglow", + "version": "1.2" + }, + { + "name": "Firefox Screenshots", + "version": "39.0.0" + }, + { + "name": "Form Autofill", + "version": "1.0" + }, + { + "name": "Google", + "version": "1.1" + }, + { + "name": "Light", + "version": "1.1" + }, + { + "name": "Proxy Failover", + "version": "1.0.1" + }, + { + "name": "PyGObject", + "version": "3.38.0" + }, + { + "name": "Web Compatibility Interventions", + "version": "20.1.0" + }, + { + "name": "WebCompat Reporter", + "version": "1.4.0" + }, + { + "name": "Wikipedia (en)", + "version": "1.1" + }, + { + "name": "accountsservice", + "version": "0.6.55-0ubuntu13.2" + }, + { + "name": "acl", + "version": "2.2.53-10ubuntu1" + }, + { + "name": "acpi-support", + "version": "0.143" + }, + { + "name": "acpid", + "version": "1:2.0.32-1ubuntu1" + }, + { + "name": "adwaita-icon-theme", + "version": "3.38.0-1ubuntu2" + }, + { + "name": "alsa-topology-conf", + "version": "1.2.4-1" + }, + { + "name": "alsa-ucm-conf", + "version": "1.2.4-2ubuntu1" + }, + { + "name": "alsa-utils", + "version": "1.2.4-1ubuntu3" + }, + { + "name": "amd64-microcode", + "version": "3.20191218.1ubuntu1" + }, + { + "name": "anacron", + "version": "2.3-30ubuntu2" + }, + { + "name": "apg", + "version": "2.2.3.dfsg.1-5" + }, + { + "name": "app-install-data-partner", + "version": "19.04" + }, + { + "name": "apparmor", + "version": "3.0.0-0ubuntu7" + }, + { + "name": "apport", + "version": "2.20.11-0ubuntu65" + }, + { + "name": "apport-gtk", + "version": "2.20.11-0ubuntu65" + }, + { + "name": "appstream", + "version": "0.14.1-1" + }, + { + "name": "apt", + "version": "2.2.3" + }, + { + "name": "apt-config-icons", + "version": "0.14.1-1" + }, + { + "name": "apt-config-icons-hidpi", + "version": "0.14.1-1" + }, + { + "name": "apt-utils", + "version": "2.2.3" + }, + { + "name": "apturl", + "version": "0.5.2ubuntu20" + }, + { + "name": "apturl-common", + "version": "0.5.2ubuntu20" + }, + { + "name": "aspell", + "version": "0.60.8-2" + }, + { + "name": "at-spi2-core", + "version": "2.40.0-1" + }, + { + "name": "avahi-autoipd", + "version": "0.8-5ubuntu3" + }, + { + "name": "avahi-daemon", + "version": "0.8-5ubuntu3" + }, + { + "name": "avahi-utils", + "version": "0.8-5ubuntu3" + }, + { + "name": "base-files", + "version": "11ubuntu19" + }, + { + "name": "base-passwd", + "version": "3.5.49" + }, + { + "name": "bash", + "version": "5.1-2ubuntu1" + }, + { + "name": "bc", + "version": "1.07.1-2build2" + }, + { + "name": "bind9-dnsutils", + "version": "1:9.16.8-1ubuntu3" + }, + { + "name": "bind9-host", + "version": "1:9.16.8-1ubuntu3" + }, + { + "name": "bind9-libs", + "version": "1:9.16.8-1ubuntu3" + }, + { + "name": "bluez", + "version": "5.56-0ubuntu4" + }, + { + "name": "bluez-cups", + "version": "5.56-0ubuntu4" + }, + { + "name": "bluez-obexd", + "version": "5.56-0ubuntu4" + }, + { + "name": "bolt", + "version": "0.9.1-1" + }, + { + "name": "brltty", + "version": "6.3+dfsg-1ubuntu1" + }, + { + "name": "bsdextrautils", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "bsdutils", + "version": "1:2.36.1-7ubuntu2" + }, + { + "name": "bubblewrap", + "version": "0.4.1-3" + }, + { + "name": "busybox-initramfs", + "version": "1:1.30.1-6ubuntu2" + }, + { + "name": "busybox-static", + "version": "1:1.30.1-6ubuntu2" + }, + { + "name": "ca-certificates", + "version": "20210119build1" + }, + { + "name": "cheese-common", + "version": "3.38.0-3" + }, + { + "name": "colord", + "version": "1.4.5-3" + }, + { + "name": "colord-data", + "version": "1.4.5-3" + }, + { + "name": "command-not-found", + "version": "20.10.1" + }, + { + "name": "console-setup", + "version": "1.201ubuntu2" + }, + { + "name": "console-setup-linux", + "version": "1.201ubuntu2" + }, + { + "name": "cpio", + "version": "2.13+dfsg-4" + }, + { + "name": "cpp", + "version": "4:10.3.0-1ubuntu1" + }, + { + "name": "cpp-10", + "version": "10.3.0-1ubuntu1" + }, + { + "name": "crda", + "version": "4.14+git20191112.9856751-1" + }, + { + "name": "cron", + "version": "3.0pl1-136ubuntu2" + }, + { + "name": "cups", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "cups-browsed", + "version": "1.28.8-0ubuntu1" + }, + { + "name": "cups-bsd", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "cups-client", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "cups-common", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "cups-core-drivers", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "cups-daemon", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "cups-filters", + "version": "1.28.8-0ubuntu1" + }, + { + "name": "cups-filters-core-drivers", + "version": "1.28.8-0ubuntu1" + }, + { + "name": "cups-ipp-utils", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "cups-pk-helper", + "version": "0.2.6-1ubuntu3" + }, + { + "name": "cups-ppdc", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "cups-server-common", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "dash", + "version": "0.5.11+git20200708+dd9ef66+really0.5.11+git20200708+dd9ef66-5ubuntu1" + }, + { + "name": "dbus", + "version": "1.12.20-1ubuntu3" + }, + { + "name": "dbus-user-session", + "version": "1.12.20-1ubuntu3" + }, + { + "name": "dbus-x11", + "version": "1.12.20-1ubuntu3" + }, + { + "name": "dc", + "version": "1.07.1-2build2" + }, + { + "name": "dconf-cli", + "version": "0.38.0-2" + }, + { + "name": "dconf-gsettings-backend", + "version": "0.38.0-2" + }, + { + "name": "dconf-service", + "version": "0.38.0-2" + }, + { + "name": "debconf", + "version": "1.5.74" + }, + { + "name": "debconf-i18n", + "version": "1.5.74" + }, + { + "name": "desktop-file-utils", + "version": "0.26-1ubuntu1" + }, + { + "name": "diffutils", + "version": "1:3.7-3ubuntu1" + }, + { + "name": "dirmngr", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "distro-info-data", + "version": "0.46" + }, + { + "name": "dmidecode", + "version": "3.3-1build1" + }, + { + "name": "dmsetup", + "version": "2:1.02.175-2ubuntu4" + }, + { + "name": "dnsmasq-base", + "version": "2.84-1ubuntu2" + }, + { + "name": "dosfstools", + "version": "4.2-1build1" + }, + { + "name": "dpkg", + "version": "1.20.9ubuntu1" + }, + { + "name": "e2fsprogs", + "version": "1.45.7-1ubuntu2" + }, + { + "name": "efibootmgr", + "version": "17-1" + }, + { + "name": "eject", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "enchant-2", + "version": "2.2.15-1" + }, + { + "name": "eog", + "version": "40.0-1" + }, + { + "name": "espeak-ng-data", + "version": "1.50+dfsg-7build1" + }, + { + "name": "evince", + "version": "40.1-1" + }, + { + "name": "evince-common", + "version": "40.1-1" + }, + { + "name": "evolution-data-server", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "evolution-data-server-common", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "fdisk", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "file-roller", + "version": "3.38.1-1" + }, + { + "name": "findutils", + "version": "4.8.0-1ubuntu1" + }, + { + "name": "firefox", + "version": "87.0+build3-0ubuntu4" + }, + { + "name": "firefox-locale-en", + "version": "87.0+build3-0ubuntu4" + }, + { + "name": "fonts-khmeros-core", + "version": "5.0-7.1ubuntu2" + }, + { + "name": "fonts-liberation2", + "version": "2.1.2-2" + }, + { + "name": "fonts-lklug-sinhala", + "version": "0.6-3.1build1" + }, + { + "name": "fonts-noto-color-emoji", + "version": "0~20200916-1" + }, + { + "name": "fonts-opensymbol", + "version": "2:102.12+LibO7.1.2~rc2-0ubuntu2" + }, + { + "name": "fonts-yrsa-rasa", + "version": "1.002-3" + }, + { + "name": "foomatic-db-compressed-ppds", + "version": "20200820-1" + }, + { + "name": "fprintd", + "version": "1.90.9-1" + }, + { + "name": "fuse", + "version": "2.9.9-4ubuntu2" + }, + { + "name": "fwupd", + "version": "1.5.8-0ubuntu1" + }, + { + "name": "fwupd-signed", + "version": "1.38+1.5.8-0ubuntu1" + }, + { + "name": "gcc-10-base", + "version": "10.3.0-1ubuntu1" + }, + { + "name": "gcc-11-base", + "version": "11-20210417-1ubuntu1" + }, + { + "name": "gcr", + "version": "3.38.1-2" + }, + { + "name": "gdb", + "version": "10.1-2ubuntu2" + }, + { + "name": "gdisk", + "version": "1.0.6-1.1" + }, + { + "name": "gdm3", + "version": "3.38.2.1-2ubuntu1" + }, + { + "name": "gedit", + "version": "3.38.1-1" + }, + { + "name": "gedit-common", + "version": "3.38.1-1" + }, + { + "name": "geoclue-2.0", + "version": "2.5.7-2ubuntu1" + }, + { + "name": "gettext-base", + "version": "0.21-3ubuntu2" + }, + { + "name": "ghostscript", + "version": "9.53.3~dfsg-7" + }, + { + "name": "ghostscript-x", + "version": "9.53.3~dfsg-7" + }, + { + "name": "gir1.2-accountsservice-1.0", + "version": "0.6.55-0ubuntu13.2" + }, + { + "name": "gir1.2-atk-1.0", + "version": "2.36.0-0ubuntu2" + }, + { + "name": "gir1.2-atspi-2.0", + "version": "2.40.0-1" + }, + { + "name": "gir1.2-dbusmenu-glib-0.4", + "version": "16.04.1+18.10.20180917-0ubuntu6" + }, + { + "name": "gir1.2-dee-1.0", + "version": "1.2.7+17.10.20170616-6ubuntu1" + }, + { + "name": "gir1.2-freedesktop", + "version": "1.66.1-1build1" + }, + { + "name": "gir1.2-gck-1", + "version": "3.38.1-2" + }, + { + "name": "gir1.2-gcr-3", + "version": "3.38.1-2" + }, + { + "name": "gir1.2-gdesktopenums-3.0", + "version": "3.38.0-1ubuntu1" + }, + { + "name": "gir1.2-gdkpixbuf-2.0", + "version": "2.42.2+dfsg-1build1" + }, + { + "name": "gir1.2-gdm-1.0", + "version": "3.38.2.1-2ubuntu1" + }, + { + "name": "gir1.2-geoclue-2.0", + "version": "2.5.7-2ubuntu1" + }, + { + "name": "gir1.2-glib-2.0", + "version": "1.66.1-1build1" + }, + { + "name": "gir1.2-gnomebluetooth-1.0", + "version": "3.34.5-1" + }, + { + "name": "gir1.2-gnomedesktop-3.0", + "version": "3.38.5-1ubuntu1" + }, + { + "name": "gir1.2-goa-1.0", + "version": "3.38.1-1ubuntu1" + }, + { + "name": "gir1.2-graphene-1.0", + "version": "1.10.4+dfsg1-1" + }, + { + "name": "gir1.2-gstreamer-1.0", + "version": "1.18.4-1" + }, + { + "name": "gir1.2-gtk-3.0", + "version": "3.24.25-1ubuntu4" + }, + { + "name": "gir1.2-gtksource-4", + "version": "4.8.1-1" + }, + { + "name": "gir1.2-gweather-3.0", + "version": "3.36.1-2" + }, + { + "name": "gir1.2-handy-1", + "version": "1.2.0-1" + }, + { + "name": "gir1.2-ibus-1.0", + "version": "1.5.24-1" + }, + { + "name": "gir1.2-javascriptcoregtk-4.0", + "version": "2.32.0-1ubuntu3" + }, + { + "name": "gir1.2-mutter-7", + "version": "3.38.4-1ubuntu2" + }, + { + "name": "gir1.2-nm-1.0", + "version": "1.30.0-1ubuntu3" + }, + { + "name": "gir1.2-nma-1.0", + "version": "1.8.30-1" + }, + { + "name": "gir1.2-notify-0.7", + "version": "0.7.9-3ubuntu2" + }, + { + "name": "gir1.2-packagekitglib-1.0", + "version": "1.2.2-2ubuntu1" + }, + { + "name": "gir1.2-pango-1.0", + "version": "1.48.2-1build2" + }, + { + "name": "gir1.2-peas-1.0", + "version": "1.30.0-1" + }, + { + "name": "gir1.2-polkit-1.0", + "version": "0.105-30" + }, + { + "name": "gir1.2-rsvg-2.0", + "version": "2.50.3+dfsg-1" + }, + { + "name": "gir1.2-soup-2.4", + "version": "2.72.0-3" + }, + { + "name": "gir1.2-upowerglib-1.0", + "version": "0.99.11-2" + }, + { + "name": "gir1.2-vte-2.91", + "version": "0.62.3-1ubuntu1" + }, + { + "name": "gir1.2-webkit2-4.0", + "version": "2.32.0-1ubuntu3" + }, + { + "name": "gir1.2-wnck-3.0", + "version": "3.36.0-1" + }, + { + "name": "gjs", + "version": "1.67.2-2ubuntu1" + }, + { + "name": "gkbd-capplet", + "version": "3.26.1-1" + }, + { + "name": "glib-networking", + "version": "2.66.0-2" + }, + { + "name": "glib-networking-common", + "version": "2.66.0-2" + }, + { + "name": "glib-networking-services", + "version": "2.66.0-2" + }, + { + "name": "gnome-accessibility-themes", + "version": "3.28-1ubuntu1" + }, + { + "name": "gnome-bluetooth", + "version": "3.34.5-1" + }, + { + "name": "gnome-calculator", + "version": "1:40.0-2ubuntu1" + }, + { + "name": "gnome-characters", + "version": "40.0-1" + }, + { + "name": "gnome-control-center", + "version": "1:3.38.5-1ubuntu1" + }, + { + "name": "gnome-control-center-data", + "version": "1:3.38.5-1ubuntu1" + }, + { + "name": "gnome-control-center-faces", + "version": "1:3.38.5-1ubuntu1" + }, + { + "name": "gnome-desktop3-data", + "version": "3.38.5-1ubuntu1" + }, + { + "name": "gnome-disk-utility", + "version": "40.0-1ubuntu1" + }, + { + "name": "gnome-font-viewer", + "version": "40.0-1" + }, + { + "name": "gnome-getting-started-docs", + "version": "3.36.2+git20201004.1-0ubuntu1" + }, + { + "name": "gnome-initial-setup", + "version": "3.38.4-1ubuntu1" + }, + { + "name": "gnome-keyring", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gnome-keyring-pkcs11", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gnome-logs", + "version": "3.36.0-2" + }, + { + "name": "gnome-online-accounts", + "version": "3.38.1-1ubuntu1" + }, + { + "name": "gnome-power-manager", + "version": "3.32.0-2" + }, + { + "name": "gnome-screenshot", + "version": "3.38.0-1ubuntu1" + }, + { + "name": "gnome-session-bin", + "version": "3.38.0-3ubuntu2" + }, + { + "name": "gnome-session-common", + "version": "3.38.0-3ubuntu2" + }, + { + "name": "gnome-settings-daemon", + "version": "3.38.1-3ubuntu3" + }, + { + "name": "gnome-settings-daemon-common", + "version": "3.38.1-3ubuntu3" + }, + { + "name": "gnome-shell", + "version": "3.38.4-1ubuntu2" + }, + { + "name": "gnome-shell-common", + "version": "3.38.4-1ubuntu2" + }, + { + "name": "gnome-shell-extension-appindicator", + "version": "35-1" + }, + { + "name": "gnome-shell-extension-desktop-icons-ng", + "version": "0.15.0-0ubuntu4" + }, + { + "name": "gnome-shell-extension-ubuntu-dock", + "version": "69ubuntu1" + }, + { + "name": "gnome-startup-applications", + "version": "3.38.0-3ubuntu2" + }, + { + "name": "gnome-system-monitor", + "version": "40.0-2" + }, + { + "name": "gnome-terminal", + "version": "3.38.1-1ubuntu1" + }, + { + "name": "gnome-terminal-data", + "version": "3.38.1-1ubuntu1" + }, + { + "name": "gnome-themes-extra", + "version": "3.28-1ubuntu1" + }, + { + "name": "gnome-themes-extra-data", + "version": "3.28-1ubuntu1" + }, + { + "name": "gnome-user-docs", + "version": "3.38.2+git20210212-0ubuntu1" + }, + { + "name": "gnupg", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gnupg-l10n", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gnupg-utils", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gpg", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gpg-agent", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gpg-wks-client", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gpg-wks-server", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gpgconf", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gpgsm", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "gpgv", + "version": "2.2.20-1ubuntu3" + }, + { + "name": "grep", + "version": "3.6-1" + }, + { + "name": "groff-base", + "version": "1.22.4-6" + }, + { + "name": "grub-common", + "version": "2.04-1ubuntu45" + }, + { + "name": "grub-efi-amd64-bin", + "version": "2.04-1ubuntu45" + }, + { + "name": "grub-efi-amd64-signed", + "version": "1.169+2.04-1ubuntu45" + }, + { + "name": "grub-pc", + "version": "2.04-1ubuntu45" + }, + { + "name": "grub-pc-bin", + "version": "2.04-1ubuntu45" + }, + { + "name": "grub2-common", + "version": "2.04-1ubuntu45" + }, + { + "name": "gsettings-desktop-schemas", + "version": "3.38.0-1ubuntu1" + }, + { + "name": "gsettings-ubuntu-schemas", + "version": "0.0.7+17.10.20170922-0ubuntu1" + }, + { + "name": "gstreamer1.0-alsa", + "version": "1.18.4-1" + }, + { + "name": "gstreamer1.0-clutter-3.0", + "version": "3.0.27-2" + }, + { + "name": "gstreamer1.0-gl", + "version": "1.18.4-1" + }, + { + "name": "gstreamer1.0-packagekit", + "version": "1.2.2-2ubuntu1" + }, + { + "name": "gstreamer1.0-pipewire", + "version": "0.3.24-3" + }, + { + "name": "gstreamer1.0-plugins-base", + "version": "1.18.4-1" + }, + { + "name": "gstreamer1.0-plugins-base-apps", + "version": "1.18.4-1" + }, + { + "name": "gstreamer1.0-plugins-good", + "version": "1.18.4-1ubuntu1" + }, + { + "name": "gstreamer1.0-pulseaudio", + "version": "1.18.4-1ubuntu1" + }, + { + "name": "gstreamer1.0-tools", + "version": "1.18.4-1" + }, + { + "name": "gstreamer1.0-x", + "version": "1.18.4-1" + }, + { + "name": "gtk-update-icon-cache", + "version": "3.24.25-1ubuntu4" + }, + { + "name": "gtk2-engines-murrine", + "version": "0.98.2-3" + }, + { + "name": "gtk2-engines-pixbuf", + "version": "2.24.33-1ubuntu2" + }, + { + "name": "gzip", + "version": "1.10-2ubuntu3" + }, + { + "name": "hdparm", + "version": "9.60+ds-1build1" + }, + { + "name": "hostname", + "version": "3.23" + }, + { + "name": "hplip", + "version": "3.21.2+dfsg1-2" + }, + { + "name": "hplip-data", + "version": "3.21.2+dfsg1-2" + }, + { + "name": "ibus", + "version": "1.5.24-1" + }, + { + "name": "ibus-data", + "version": "1.5.24-1" + }, + { + "name": "ibus-gtk", + "version": "1.5.24-1" + }, + { + "name": "ibus-gtk3", + "version": "1.5.24-1" + }, + { + "name": "iio-sensor-proxy", + "version": "3.0-2" + }, + { + "name": "im-config", + "version": "0.46-1" + }, + { + "name": "init", + "version": "1.60" + }, + { + "name": "init-system-helpers", + "version": "1.60" + }, + { + "name": "initramfs-tools", + "version": "0.139ubuntu3" + }, + { + "name": "initramfs-tools-bin", + "version": "0.139ubuntu3" + }, + { + "name": "initramfs-tools-core", + "version": "0.139ubuntu3" + }, + { + "name": "inputattach", + "version": "1:1.7.1-1" + }, + { + "name": "intel-microcode", + "version": "3.20201110.0ubuntu1" + }, + { + "name": "ipp-usb", + "version": "0.9.17-3ubuntu1" + }, + { + "name": "irqbalance", + "version": "1.7.0-1" + }, + { + "name": "isc-dhcp-client", + "version": "4.4.1-2.2ubuntu6" + }, + { + "name": "isc-dhcp-common", + "version": "4.4.1-2.2ubuntu6" + }, + { + "name": "iucode-tool", + "version": "2.3.1-1" + }, + { + "name": "jeepney", + "version": "0.6.0" + }, + { + "name": "kbd", + "version": "2.3.0-3ubuntu2" + }, + { + "name": "kerneloops", + "version": "0.12+git20140509-6ubuntu3" + }, + { + "name": "keyboard-configuration", + "version": "1.201ubuntu2" + }, + { + "name": "keyring", + "version": "22.2.0" + }, + { + "name": "klibc-utils", + "version": "2.0.8-5ubuntu1" + }, + { + "name": "kmod", + "version": "28-1ubuntu2" + }, + { + "name": "krb5-locales", + "version": "1.18.3-4" + }, + { + "name": "language-pack-en", + "version": "1:21.04+20210415" + }, + { + "name": "language-pack-en-base", + "version": "1:21.04+20210415" + }, + { + "name": "language-pack-gnome-en", + "version": "1:21.04+20210415" + }, + { + "name": "language-pack-gnome-en-base", + "version": "1:21.04+20210415" + }, + { + "name": "language-selector-common", + "version": "0.211" + }, + { + "name": "language-selector-gnome", + "version": "0.211" + }, + { + "name": "libaa1", + "version": "1.4p5-48" + }, + { + "name": "libaccountsservice0", + "version": "0.6.55-0ubuntu13.2" + }, + { + "name": "libacl1", + "version": "2.2.53-10ubuntu1" + }, + { + "name": "libamtk-5-0", + "version": "5.2.0-1" + }, + { + "name": "libamtk-5-common", + "version": "5.2.0-1" + }, + { + "name": "libao-common", + "version": "1.2.2+20180113-1ubuntu1" + }, + { + "name": "libao4", + "version": "1.2.2+20180113-1ubuntu1" + }, + { + "name": "libapparmor1", + "version": "3.0.0-0ubuntu7" + }, + { + "name": "libappindicator3-1", + "version": "12.10.1+20.10.20200706.1-0ubuntu1" + }, + { + "name": "libappstream4", + "version": "0.14.1-1" + }, + { + "name": "libapt-pkg6.0", + "version": "2.2.3" + }, + { + "name": "libasn1-8-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "libasound2", + "version": "1.2.4-1.1ubuntu2" + }, + { + "name": "libasound2-data", + "version": "1.2.4-1.1ubuntu2" + }, + { + "name": "libasound2-plugins", + "version": "1.2.2-2" + }, + { + "name": "libaspell15", + "version": "0.60.8-2" + }, + { + "name": "libassuan0", + "version": "2.5.4-1ubuntu1" + }, + { + "name": "libasyncns0", + "version": "0.8-6" + }, + { + "name": "libatk-adaptor", + "version": "2.38.0-1build1" + }, + { + "name": "libatk-bridge2.0-0", + "version": "2.38.0-1build1" + }, + { + "name": "libatk1.0-0", + "version": "2.36.0-0ubuntu2" + }, + { + "name": "libatk1.0-data", + "version": "2.36.0-0ubuntu2" + }, + { + "name": "libatkmm-1.6-1v5", + "version": "2.28.0-3" + }, + { + "name": "libatm1", + "version": "1:2.5.1-4" + }, + { + "name": "libatopology2", + "version": "1.2.4-1.1ubuntu2" + }, + { + "name": "libatspi2.0-0", + "version": "2.40.0-1" + }, + { + "name": "libattr1", + "version": "1:2.4.48-6build1" + }, + { + "name": "libaudit-common", + "version": "1:3.0-2ubuntu1" + }, + { + "name": "libaudit1", + "version": "1:3.0-2ubuntu1" + }, + { + "name": "libavahi-client3", + "version": "0.8-5ubuntu3" + }, + { + "name": "libavahi-common-data", + "version": "0.8-5ubuntu3" + }, + { + "name": "libavahi-common3", + "version": "0.8-5ubuntu3" + }, + { + "name": "libavahi-core7", + "version": "0.8-5ubuntu3" + }, + { + "name": "libavahi-glib1", + "version": "0.8-5ubuntu3" + }, + { + "name": "libavc1394-0", + "version": "0.5.4-5" + }, + { + "name": "libbabeltrace1", + "version": "1.5.8-1build3" + }, + { + "name": "libblkid1", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "libblockdev-crypto2", + "version": "2.25-2" + }, + { + "name": "libblockdev-fs2", + "version": "2.25-2" + }, + { + "name": "libblockdev-loop2", + "version": "2.25-2" + }, + { + "name": "libblockdev-part-err2", + "version": "2.25-2" + }, + { + "name": "libblockdev-part2", + "version": "2.25-2" + }, + { + "name": "libblockdev-swap2", + "version": "2.25-2" + }, + { + "name": "libblockdev-utils2", + "version": "2.25-2" + }, + { + "name": "libblockdev2", + "version": "2.25-2" + }, + { + "name": "libbluetooth3", + "version": "5.56-0ubuntu4" + }, + { + "name": "libboost-regex1.74.0", + "version": "1.74.0-8ubuntu2" + }, + { + "name": "libbpf0", + "version": "1:0.3-2ubuntu1" + }, + { + "name": "libbrlapi0.8", + "version": "6.3+dfsg-1ubuntu1" + }, + { + "name": "libbrotli1", + "version": "1.0.9-2build2" + }, + { + "name": "libc-bin", + "version": "2.33-0ubuntu5" + }, + { + "name": "libc6", + "version": "2.33-0ubuntu5" + }, + { + "name": "libc6-dbg", + "version": "2.33-0ubuntu5" + }, + { + "name": "libcaca0", + "version": "0.99.beta19-2.2ubuntu1" + }, + { + "name": "libcairo-gobject-perl", + "version": "1.005-2build1" + }, + { + "name": "libcairomm-1.0-1v5", + "version": "1.12.2-4build1" + }, + { + "name": "libcamel-1.2-62", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libcdio-cdda2", + "version": "10.2+2.0.0-1build1" + }, + { + "name": "libcdio-paranoia2", + "version": "10.2+2.0.0-1build1" + }, + { + "name": "libcdparanoia0", + "version": "3.10.2+debian-13.1" + }, + { + "name": "libcheese-gtk25", + "version": "3.38.0-3" + }, + { + "name": "libcheese8", + "version": "3.38.0-3" + }, + { + "name": "libclutter-1.0-0", + "version": "1.26.4+dfsg-2" + }, + { + "name": "libclutter-1.0-common", + "version": "1.26.4+dfsg-2" + }, + { + "name": "libclutter-gst-3.0-0", + "version": "3.0.27-2" + }, + { + "name": "libclutter-gtk-1.0-0", + "version": "1.8.4-4" + }, + { + "name": "libcogl-common", + "version": "1.22.8-2" + }, + { + "name": "libcogl-pango20", + "version": "1.22.8-2" + }, + { + "name": "libcogl-path20", + "version": "1.22.8-2" + }, + { + "name": "libcogl20", + "version": "1.22.8-2" + }, + { + "name": "libcolord-gtk1", + "version": "0.2.0-0ubuntu1" + }, + { + "name": "libcolord2", + "version": "1.4.5-3" + }, + { + "name": "libcolorhug2", + "version": "1.4.5-3" + }, + { + "name": "libcom-err2", + "version": "1.45.7-1ubuntu2" + }, + { + "name": "libcrypt1", + "version": "1:4.4.17-1ubuntu3" + }, + { + "name": "libcryptsetup12", + "version": "2:2.3.4-1ubuntu3" + }, + { + "name": "libcue2", + "version": "2.2.1-3build1" + }, + { + "name": "libcups2", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "libcupsfilters1", + "version": "1.28.8-0ubuntu1" + }, + { + "name": "libcupsimage2", + "version": "2.3.3op2-3ubuntu3" + }, + { + "name": "libcurl3-gnutls", + "version": "7.74.0-1ubuntu2" + }, + { + "name": "libcurl4", + "version": "7.74.0-1ubuntu2" + }, + { + "name": "libdaemon0", + "version": "0.14-7.1ubuntu1" + }, + { + "name": "libdb5.3", + "version": "5.3.28+dfsg1-0.6ubuntu4" + }, + { + "name": "libdbus-1-3", + "version": "1.12.20-1ubuntu3" + }, + { + "name": "libdbus-glib-1-2", + "version": "0.110-6fakesync1" + }, + { + "name": "libdbusmenu-glib4", + "version": "16.04.1+18.10.20180917-0ubuntu6" + }, + { + "name": "libdbusmenu-gtk3-4", + "version": "16.04.1+18.10.20180917-0ubuntu6" + }, + { + "name": "libdconf1", + "version": "0.38.0-2" + }, + { + "name": "libdebuginfod-common", + "version": "0.183-8" + }, + { + "name": "libdebuginfod1", + "version": "0.183-8" + }, + { + "name": "libdee-1.0-4", + "version": "1.2.7+17.10.20170616-6ubuntu1" + }, + { + "name": "libdeflate0", + "version": "1.7-1ubuntu1" + }, + { + "name": "libdevmapper1.02.1", + "version": "2:1.02.175-2ubuntu4" + }, + { + "name": "libdjvulibre-text", + "version": "3.5.28-1" + }, + { + "name": "libdjvulibre21", + "version": "3.5.28-1" + }, + { + "name": "libdns-export1110", + "version": "1:9.11.19+dfsg-2ubuntu2" + }, + { + "name": "libdotconf0", + "version": "1.3-0.3fakesync1" + }, + { + "name": "libdpkg-perl", + "version": "1.20.9ubuntu1" + }, + { + "name": "libdrm-amdgpu1", + "version": "2.4.104-1build1" + }, + { + "name": "libdrm-common", + "version": "2.4.104-1build1" + }, + { + "name": "libdrm-intel1", + "version": "2.4.104-1build1" + }, + { + "name": "libdrm-nouveau2", + "version": "2.4.104-1build1" + }, + { + "name": "libdrm-radeon1", + "version": "2.4.104-1build1" + }, + { + "name": "libdrm2", + "version": "2.4.104-1build1" + }, + { + "name": "libdv4", + "version": "1.0.0-13" + }, + { + "name": "libdw1", + "version": "0.183-8" + }, + { + "name": "libebackend-1.2-10", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libebook-1.2-20", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libebook-contacts-1.2-3", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libecal-2.0-1", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libedata-book-1.2-26", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libedata-cal-2.0-1", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libedataserver-1.2-26", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libedataserverui-1.2-3", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libedit2", + "version": "3.1-20191231-2" + }, + { + "name": "libefiboot1", + "version": "37-6ubuntu1" + }, + { + "name": "libefivar1", + "version": "37-6ubuntu1" + }, + { + "name": "libegl-mesa0", + "version": "21.0.1-2" + }, + { + "name": "libegl1", + "version": "1.3.2-1" + }, + { + "name": "libelf1", + "version": "0.183-8" + }, + { + "name": "libenchant-2-2", + "version": "2.2.15-1" + }, + { + "name": "libepoxy0", + "version": "1.5.5-1build1" + }, + { + "name": "libespeak-ng1", + "version": "1.50+dfsg-7build1" + }, + { + "name": "libestr0", + "version": "0.1.10-2.1build1" + }, + { + "name": "libevdocument3-4", + "version": "40.1-1" + }, + { + "name": "libevview3-3", + "version": "40.1-1" + }, + { + "name": "libexempi8", + "version": "2.5.2-1" + }, + { + "name": "libexiv2-27", + "version": "0.27.3-3ubuntu1" + }, + { + "name": "libexpat1", + "version": "2.2.10-2" + }, + { + "name": "libext2fs2", + "version": "1.45.7-1ubuntu2" + }, + { + "name": "libfastjson4", + "version": "0.99.9-1" + }, + { + "name": "libfdisk1", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "libffi8ubuntu1", + "version": "3.4~20200819gead65ca871-0ubuntu5" + }, + { + "name": "libfftw3-single3", + "version": "3.3.8-2ubuntu6" + }, + { + "name": "libfido2-1", + "version": "1.6.0-2" + }, + { + "name": "libfontembed1", + "version": "1.28.8-0ubuntu1" + }, + { + "name": "libfontenc1", + "version": "1:1.1.4-1build1" + }, + { + "name": "libfprint-2-2", + "version": "1:1.90.7+git20210222+tod1-0ubuntu2" + }, + { + "name": "libfribidi0", + "version": "1.0.8-2ubuntu1" + }, + { + "name": "libfuse2", + "version": "2.9.9-4ubuntu2" + }, + { + "name": "libfwupd2", + "version": "1.5.8-0ubuntu1" + }, + { + "name": "libfwupdplugin1", + "version": "1.5.8-0ubuntu1" + }, + { + "name": "libgail-common", + "version": "2.24.33-1ubuntu2" + }, + { + "name": "libgail18", + "version": "2.24.33-1ubuntu2" + }, + { + "name": "libgbm1", + "version": "21.0.1-2" + }, + { + "name": "libgcab-1.0-0", + "version": "1.4-3" + }, + { + "name": "libgcc-s1", + "version": "11-20210417-1ubuntu1" + }, + { + "name": "libgck-1-0", + "version": "3.38.1-2" + }, + { + "name": "libgcr-base-3-1", + "version": "3.38.1-2" + }, + { + "name": "libgcr-ui-3-1", + "version": "3.38.1-2" + }, + { + "name": "libgcrypt20", + "version": "1.8.7-2ubuntu2" + }, + { + "name": "libgd3", + "version": "2.3.0-2" + }, + { + "name": "libgdata-common", + "version": "0.18.1-1" + }, + { + "name": "libgdata22", + "version": "0.18.1-1" + }, + { + "name": "libgdk-pixbuf-2.0-0", + "version": "2.42.2+dfsg-1build1" + }, + { + "name": "libgdk-pixbuf-xlib-2.0-0", + "version": "2.40.2-2build2" + }, + { + "name": "libgdk-pixbuf2.0-0", + "version": "2.40.2-2build2" + }, + { + "name": "libgdk-pixbuf2.0-bin", + "version": "2.42.2+dfsg-1build1" + }, + { + "name": "libgdk-pixbuf2.0-common", + "version": "2.42.2+dfsg-1build1" + }, + { + "name": "libgdm1", + "version": "3.38.2.1-2ubuntu1" + }, + { + "name": "libgee-0.8-2", + "version": "0.20.4-1" + }, + { + "name": "libgeoclue-2-0", + "version": "2.5.7-2ubuntu1" + }, + { + "name": "libgeocode-glib0", + "version": "3.26.2-2" + }, + { + "name": "libgexiv2-2", + "version": "0.12.1-1" + }, + { + "name": "libgif7", + "version": "5.1.9-2" + }, + { + "name": "libgirepository-1.0-1", + "version": "1.66.1-1build1" + }, + { + "name": "libgjs0g", + "version": "1.67.2-2ubuntu1" + }, + { + "name": "libgl1", + "version": "1.3.2-1" + }, + { + "name": "libgl1-mesa-dri", + "version": "21.0.1-2" + }, + { + "name": "libglapi-mesa", + "version": "21.0.1-2" + }, + { + "name": "libgles2", + "version": "1.3.2-1" + }, + { + "name": "libglib-object-introspection-perl", + "version": "0.049-1build1" + }, + { + "name": "libglib2.0-0", + "version": "2.68.0-1" + }, + { + "name": "libglib2.0-bin", + "version": "2.68.0-1" + }, + { + "name": "libglib2.0-data", + "version": "2.68.0-1" + }, + { + "name": "libglibmm-2.4-1v5", + "version": "2.64.2-2" + }, + { + "name": "libglvnd0", + "version": "1.3.2-1" + }, + { + "name": "libglx-mesa0", + "version": "21.0.1-2" + }, + { + "name": "libglx0", + "version": "1.3.2-1" + }, + { + "name": "libgnome-autoar-0-0", + "version": "0.3.1-1" + }, + { + "name": "libgnome-bluetooth13", + "version": "3.34.5-1" + }, + { + "name": "libgnome-desktop-3-19", + "version": "3.38.5-1ubuntu1" + }, + { + "name": "libgnomekbd-common", + "version": "3.26.1-1" + }, + { + "name": "libgnomekbd8", + "version": "3.26.1-1" + }, + { + "name": "libgnutls30", + "version": "3.7.1-3ubuntu1" + }, + { + "name": "libgoa-1.0-0b", + "version": "3.38.1-1ubuntu1" + }, + { + "name": "libgoa-1.0-common", + "version": "3.38.1-1ubuntu1" + }, + { + "name": "libgoa-backend-1.0-1", + "version": "3.38.1-1ubuntu1" + }, + { + "name": "libgomp1", + "version": "11-20210417-1ubuntu1" + }, + { + "name": "libgpgme11", + "version": "1.14.0-1ubuntu3" + }, + { + "name": "libgphoto2-6", + "version": "2.5.26-2" + }, + { + "name": "libgphoto2-l10n", + "version": "2.5.26-2" + }, + { + "name": "libgphoto2-port12", + "version": "2.5.26-2" + }, + { + "name": "libgpm2", + "version": "1.20.7-8" + }, + { + "name": "libgraphene-1.0-0", + "version": "1.10.4+dfsg1-1" + }, + { + "name": "libgs9", + "version": "9.53.3~dfsg-7" + }, + { + "name": "libgs9-common", + "version": "9.53.3~dfsg-7" + }, + { + "name": "libgsf-1-114", + "version": "1.14.47-1" + }, + { + "name": "libgsf-1-common", + "version": "1.14.47-1" + }, + { + "name": "libgsound0", + "version": "1.0.2-5" + }, + { + "name": "libgspell-1-2", + "version": "1.8.4-1" + }, + { + "name": "libgspell-1-common", + "version": "1.8.4-1" + }, + { + "name": "libgssapi-krb5-2", + "version": "1.18.3-4" + }, + { + "name": "libgssapi3-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "libgssdp-1.2-0", + "version": "1.2.3-2" + }, + { + "name": "libgstreamer-gl1.0-0", + "version": "1.18.4-1" + }, + { + "name": "libgstreamer-plugins-base1.0-0", + "version": "1.18.4-1" + }, + { + "name": "libgstreamer-plugins-good1.0-0", + "version": "1.18.4-1ubuntu1" + }, + { + "name": "libgstreamer1.0-0", + "version": "1.18.4-1" + }, + { + "name": "libgtk-3-0", + "version": "3.24.25-1ubuntu4" + }, + { + "name": "libgtk-3-bin", + "version": "3.24.25-1ubuntu4" + }, + { + "name": "libgtk-3-common", + "version": "3.24.25-1ubuntu4" + }, + { + "name": "libgtk2.0-0", + "version": "2.24.33-1ubuntu2" + }, + { + "name": "libgtk2.0-bin", + "version": "2.24.33-1ubuntu2" + }, + { + "name": "libgtk2.0-common", + "version": "2.24.33-1ubuntu2" + }, + { + "name": "libgtkmm-3.0-1v5", + "version": "3.24.2-2" + }, + { + "name": "libgtksourceview-4-0", + "version": "4.8.1-1" + }, + { + "name": "libgtksourceview-4-common", + "version": "4.8.1-1" + }, + { + "name": "libgtop-2.0-11", + "version": "2.40.0-2build1" + }, + { + "name": "libgtop2-common", + "version": "2.40.0-2build1" + }, + { + "name": "libgudev-1.0-0", + "version": "1:234-1" + }, + { + "name": "libgupnp-1.2-0", + "version": "1.2.4-1" + }, + { + "name": "libgupnp-av-1.0-2", + "version": "0.12.11-2" + }, + { + "name": "libgupnp-dlna-2.0-3", + "version": "0.10.5-4" + }, + { + "name": "libgusb2", + "version": "0.3.5-1" + }, + { + "name": "libgweather-3-16", + "version": "3.36.1-2" + }, + { + "name": "libgweather-common", + "version": "3.36.1-2" + }, + { + "name": "libgxps2", + "version": "0.3.2-1" + }, + { + "name": "libhandy-1-0", + "version": "1.2.0-1" + }, + { + "name": "libhcrypto4-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "libheimbase1-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "libheimntlm0-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "libhogweed6", + "version": "3.7-2.1ubuntu1" + }, + { + "name": "libhpmud0", + "version": "3.21.2+dfsg1-2" + }, + { + "name": "libhtml-parser-perl", + "version": "3.75-1build1" + }, + { + "name": "libhttp-message-perl", + "version": "6.28-1" + }, + { + "name": "libhx509-5-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "libibus-1.0-5", + "version": "1.5.24-1" + }, + { + "name": "libical3", + "version": "3.0.9-2" + }, + { + "name": "libice6", + "version": "2:1.0.10-1" + }, + { + "name": "libicu67", + "version": "67.1-6ubuntu2" + }, + { + "name": "libidn2-0", + "version": "2.3.0-5" + }, + { + "name": "libiec61883-0", + "version": "1.2.0-4build1" + }, + { + "name": "libieee1284-3", + "version": "0.2.11-14" + }, + { + "name": "libijs-0.35", + "version": "0.35-15" + }, + { + "name": "libimagequant0", + "version": "2.12.2-1.1" + }, + { + "name": "libinih1", + "version": "50-1ubuntu4" + }, + { + "name": "libinput-bin", + "version": "1.16.4-3ubuntu2" + }, + { + "name": "libinput10", + "version": "1.16.4-3ubuntu2" + }, + { + "name": "libipt2", + "version": "2.0.3-1" + }, + { + "name": "libisc-export1105", + "version": "1:9.11.19+dfsg-2ubuntu2" + }, + { + "name": "libisl23", + "version": "0.23-1build1" + }, + { + "name": "libiw30", + "version": "30~pre9-13.1ubuntu2" + }, + { + "name": "libjack-jackd2-0", + "version": "1.9.17~dfsg-1" + }, + { + "name": "libjavascriptcoregtk-4.0-18", + "version": "2.32.0-1ubuntu3" + }, + { + "name": "libjbig2dec0", + "version": "0.19-2" + }, + { + "name": "libjcat1", + "version": "0.1.3-2" + }, + { + "name": "libk5crypto3", + "version": "1.18.3-4" + }, + { + "name": "libklibc", + "version": "2.0.8-5ubuntu1" + }, + { + "name": "libkmod2", + "version": "28-1ubuntu2" + }, + { + "name": "libkrb5-26-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "libkrb5-3", + "version": "1.18.3-4" + }, + { + "name": "libkrb5support0", + "version": "1.18.3-4" + }, + { + "name": "libksba8", + "version": "1.5.0-3" + }, + { + "name": "libldap-2.4-2", + "version": "2.4.57+dfsg-2ubuntu1" + }, + { + "name": "libldap-common", + "version": "2.4.57+dfsg-2ubuntu1" + }, + { + "name": "libldb2", + "version": "2:2.2.0-3ubuntu2" + }, + { + "name": "libllvm11", + "version": "1:11.0.1-2ubuntu4" + }, + { + "name": "liblouis-data", + "version": "3.16.0-1" + }, + { + "name": "liblouis20", + "version": "3.16.0-1" + }, + { + "name": "liblouisutdml-bin", + "version": "2.9.0-1" + }, + { + "name": "liblouisutdml-data", + "version": "2.9.0-1" + }, + { + "name": "liblouisutdml9", + "version": "2.9.0-1" + }, + { + "name": "liblz4-1", + "version": "1.9.3-1build1" + }, + { + "name": "liblzma5", + "version": "5.2.5-1.0build2" + }, + { + "name": "libmbim-glib4", + "version": "1.24.6-0.1" + }, + { + "name": "libmbim-proxy", + "version": "1.24.6-0.1" + }, + { + "name": "libmediaart-2.0-0", + "version": "1.9.4-3" + }, + { + "name": "libmm-glib0", + "version": "1.14.10-0.1" + }, + { + "name": "libmount1", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "libmozjs-78-0", + "version": "78.4.0-2" + }, + { + "name": "libmp3lame0", + "version": "3.100-3" + }, + { + "name": "libmpdec3", + "version": "2.5.1-2" + }, + { + "name": "libmpg123-0", + "version": "1.26.4-1" + }, + { + "name": "libmtdev1", + "version": "1.1.6-1build2" + }, + { + "name": "libmutter-7-0", + "version": "3.38.4-1ubuntu2" + }, + { + "name": "libnautilus-extension1a", + "version": "1:3.38.2-1ubuntu1" + }, + { + "name": "libndp0", + "version": "1.7-0ubuntu1" + }, + { + "name": "libnetplan0", + "version": "0.102-0ubuntu2" + }, + { + "name": "libnettle8", + "version": "3.7-2.1ubuntu1" + }, + { + "name": "libnewt0.52", + "version": "0.52.21-4ubuntu6" + }, + { + "name": "libnm0", + "version": "1.30.0-1ubuntu3" + }, + { + "name": "libnma-common", + "version": "1.8.30-1" + }, + { + "name": "libnma0", + "version": "1.8.30-1" + }, + { + "name": "libnotify-bin", + "version": "0.7.9-3ubuntu2" + }, + { + "name": "libnotify4", + "version": "0.7.9-3ubuntu2" + }, + { + "name": "libnsl2", + "version": "1.3.0-0ubuntu3" + }, + { + "name": "libnspr4", + "version": "2:4.29-1" + }, + { + "name": "libnss-mdns", + "version": "0.14.1-2" + }, + { + "name": "libnss-systemd", + "version": "247.3-3ubuntu3" + }, + { + "name": "libnss3", + "version": "2:3.61-1ubuntu2" + }, + { + "name": "libntfs-3g883", + "version": "1:2017.3.23AR.3-3ubuntu4" + }, + { + "name": "libogg0", + "version": "1.3.4-0.1" + }, + { + "name": "libopenscap8", + "version": "1.2.17-0.1ubuntu4" + }, + { + "name": "libp11-kit0", + "version": "0.23.22-1" + }, + { + "name": "libpackagekit-glib2-18", + "version": "1.2.2-2ubuntu1" + }, + { + "name": "libpam-fprintd", + "version": "1.90.9-1" + }, + { + "name": "libpam-gnome-keyring", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "libpam-modules", + "version": "1.3.1-5ubuntu6" + }, + { + "name": "libpam-modules-bin", + "version": "1.3.1-5ubuntu6" + }, + { + "name": "libpam-runtime", + "version": "1.3.1-5ubuntu6" + }, + { + "name": "libpam-sss", + "version": "2.4.0-1ubuntu6" + }, + { + "name": "libpam-systemd", + "version": "247.3-3ubuntu3" + }, + { + "name": "libpam0g", + "version": "1.3.1-5ubuntu6" + }, + { + "name": "libpango-1.0-0", + "version": "1.48.2-1build2" + }, + { + "name": "libpangocairo-1.0-0", + "version": "1.48.2-1build2" + }, + { + "name": "libpangoft2-1.0-0", + "version": "1.48.2-1build2" + }, + { + "name": "libpangomm-1.4-1v5", + "version": "2.42.1-1" + }, + { + "name": "libpangoxft-1.0-0", + "version": "1.48.2-1build2" + }, + { + "name": "libpaper-utils", + "version": "1.1.28" + }, + { + "name": "libpaper1", + "version": "1.1.28" + }, + { + "name": "libpcap0.8", + "version": "1.10.0-2" + }, + { + "name": "libpcaudio0", + "version": "1.1-6" + }, + { + "name": "libpciaccess0", + "version": "0.16-1build2" + }, + { + "name": "libpcre2-32-0", + "version": "10.36-2ubuntu5" + }, + { + "name": "libpcre2-8-0", + "version": "10.36-2ubuntu5" + }, + { + "name": "libpcsclite1", + "version": "1.9.1-1" + }, + { + "name": "libpeas-1.0-0", + "version": "1.30.0-1" + }, + { + "name": "libpeas-common", + "version": "1.30.0-1" + }, + { + "name": "libperl5.32", + "version": "5.32.1-3ubuntu2" + }, + { + "name": "libphonenumber8", + "version": "8.12.16-4build1" + }, + { + "name": "libpipeline1", + "version": "1.5.3-1" + }, + { + "name": "libpipewire-0.3-0", + "version": "0.3.24-3" + }, + { + "name": "libpipewire-0.3-modules", + "version": "0.3.24-3" + }, + { + "name": "libplist3", + "version": "2.2.0-6" + }, + { + "name": "libplymouth5", + "version": "0.9.5-0ubuntu3" + }, + { + "name": "libpng16-16", + "version": "1.6.37-3build3" + }, + { + "name": "libpolkit-agent-1-0", + "version": "0.105-30" + }, + { + "name": "libpolkit-gobject-1-0", + "version": "0.105-30" + }, + { + "name": "libpoppler-cpp0v5", + "version": "21.02.0-1" + }, + { + "name": "libpoppler-glib8", + "version": "21.02.0-1" + }, + { + "name": "libpoppler107", + "version": "21.02.0-1" + }, + { + "name": "libprocps8", + "version": "2:3.3.16-5ubuntu3" + }, + { + "name": "libprotobuf23", + "version": "3.12.4-1ubuntu2" + }, + { + "name": "libpulse-mainloop-glib0", + "version": "1:14.2-1ubuntu1" + }, + { + "name": "libpulse0", + "version": "1:14.2-1ubuntu1" + }, + { + "name": "libpulsedsp", + "version": "1:14.2-1ubuntu1" + }, + { + "name": "libpython3-stdlib", + "version": "3.9.4-1" + }, + { + "name": "libpython3.9", + "version": "3.9.4-1" + }, + { + "name": "libpython3.9-minimal", + "version": "3.9.4-1" + }, + { + "name": "libpython3.9-stdlib", + "version": "3.9.4-1" + }, + { + "name": "libqmi-glib5", + "version": "1.26.10-0.1" + }, + { + "name": "libqmi-proxy", + "version": "1.26.10-0.1" + }, + { + "name": "libqpdf28", + "version": "10.3.1-1" + }, + { + "name": "libraw1394-11", + "version": "2.1.2-2" + }, + { + "name": "libreadline8", + "version": "8.1-1" + }, + { + "name": "librest-0.7-0", + "version": "0.8.1-1.1" + }, + { + "name": "libroken18-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "librsvg2-2", + "version": "2.50.3+dfsg-1" + }, + { + "name": "librsvg2-common", + "version": "2.50.3+dfsg-1" + }, + { + "name": "librtmp1", + "version": "2.4+20151223.gitfa8646d.1-2build2" + }, + { + "name": "librygel-core-2.6-2", + "version": "0.40.0-1ubuntu1" + }, + { + "name": "librygel-db-2.6-2", + "version": "0.40.0-1ubuntu1" + }, + { + "name": "librygel-renderer-2.6-2", + "version": "0.40.0-1ubuntu1" + }, + { + "name": "librygel-server-2.6-2", + "version": "0.40.0-1ubuntu1" + }, + { + "name": "libsane-common", + "version": "1.0.32-0ubuntu2" + }, + { + "name": "libsane-hpaio", + "version": "3.21.2+dfsg1-2" + }, + { + "name": "libsane1", + "version": "1.0.32-0ubuntu2" + }, + { + "name": "libsasl2-2", + "version": "2.1.27+dfsg-2ubuntu1" + }, + { + "name": "libsasl2-modules", + "version": "2.1.27+dfsg-2ubuntu1" + }, + { + "name": "libsasl2-modules-db", + "version": "2.1.27+dfsg-2ubuntu1" + }, + { + "name": "libsasl2-modules-gssapi-mit", + "version": "2.1.27+dfsg-2ubuntu1" + }, + { + "name": "libsbc1", + "version": "1.5-3" + }, + { + "name": "libselinux1", + "version": "3.1-3build1" + }, + { + "name": "libsemanage-common", + "version": "3.1-1ubuntu1" + }, + { + "name": "libsemanage1", + "version": "3.1-1ubuntu1" + }, + { + "name": "libsepol1", + "version": "3.1-1ubuntu1" + }, + { + "name": "libshout3", + "version": "2.4.5-1" + }, + { + "name": "libsigc++-2.0-0v5", + "version": "2.10.4-2ubuntu1" + }, + { + "name": "libsm6", + "version": "2:1.2.3-1" + }, + { + "name": "libsmartcols1", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "libsmbclient", + "version": "2:4.13.3+dfsg-1ubuntu2" + }, + { + "name": "libsmbios-c2", + "version": "2.4.3-1" + }, + { + "name": "libsndfile1", + "version": "1.0.31-1ubuntu1" + }, + { + "name": "libsnmp-base", + "version": "5.9+dfsg-3ubuntu1" + }, + { + "name": "libsnmp40", + "version": "5.9+dfsg-3ubuntu1" + }, + { + "name": "libsodium23", + "version": "1.0.18-1" + }, + { + "name": "libsoup-gnome2.4-1", + "version": "2.72.0-3" + }, + { + "name": "libsoup2.4-1", + "version": "2.72.0-3" + }, + { + "name": "libsource-highlight-common", + "version": "3.1.9-3build1" + }, + { + "name": "libsource-highlight4v5", + "version": "3.1.9-3build1" + }, + { + "name": "libsoxr0", + "version": "0.1.3-4" + }, + { + "name": "libspa-0.2-modules", + "version": "0.3.24-3" + }, + { + "name": "libspectre1", + "version": "0.2.9-1" + }, + { + "name": "libspeechd2", + "version": "0.10.2-2" + }, + { + "name": "libsqlite3-0", + "version": "3.34.1-3" + }, + { + "name": "libss2", + "version": "1.45.7-1ubuntu2" + }, + { + "name": "libssh-4", + "version": "0.9.5-1" + }, + { + "name": "libssl1.1", + "version": "1.1.1j-1ubuntu3" + }, + { + "name": "libstartup-notification0", + "version": "0.12-6" + }, + { + "name": "libstdc++6", + "version": "11-20210417-1ubuntu1" + }, + { + "name": "libsysmetrics1", + "version": "1.6.4" + }, + { + "name": "libsystemd0", + "version": "247.3-3ubuntu3" + }, + { + "name": "libtag1v5", + "version": "1.11.1+dfsg.1-3ubuntu1" + }, + { + "name": "libtag1v5-vanilla", + "version": "1.11.1+dfsg.1-3ubuntu1" + }, + { + "name": "libtalloc2", + "version": "2.3.1-2ubuntu1" + }, + { + "name": "libteamdctl0", + "version": "1.31-1" + }, + { + "name": "libtepl-5-0", + "version": "5.0.1-1" + }, + { + "name": "libtevent0", + "version": "0.10.2-1" + }, + { + "name": "libthai-data", + "version": "0.1.28-4" + }, + { + "name": "libthai0", + "version": "0.1.28-4" + }, + { + "name": "libtiff5", + "version": "4.2.0-1build1" + }, + { + "name": "libtirpc-common", + "version": "1.3.1-1build1" + }, + { + "name": "libtirpc3", + "version": "1.3.1-1build1" + }, + { + "name": "libtotem-plparser-common", + "version": "3.26.5-5ubuntu1" + }, + { + "name": "libtotem-plparser18", + "version": "3.26.5-5ubuntu1" + }, + { + "name": "libtracker-control-2.0-0", + "version": "2.3.6-2" + }, + { + "name": "libtracker-miner-2.0-0", + "version": "2.3.6-2" + }, + { + "name": "libtracker-sparql-2.0-0", + "version": "2.3.6-2" + }, + { + "name": "libtwolame0", + "version": "0.4.0-2" + }, + { + "name": "libu2f-udev", + "version": "1.1.10-3" + }, + { + "name": "libuchardet0", + "version": "0.0.7-1" + }, + { + "name": "libudev1", + "version": "247.3-3ubuntu3" + }, + { + "name": "libudisks2-0", + "version": "2.9.2-1" + }, + { + "name": "libunistring2", + "version": "0.9.10-4" + }, + { + "name": "libupower-glib3", + "version": "0.99.11-2" + }, + { + "name": "liburi-perl", + "version": "5.07-1" + }, + { + "name": "libusbmuxd6", + "version": "2.0.2-3" + }, + { + "name": "libuuid1", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "libuv1", + "version": "1.40.0-1" + }, + { + "name": "libv4l-0", + "version": "1.20.0-3" + }, + { + "name": "libv4lconvert0", + "version": "1.20.0-3" + }, + { + "name": "libvisual-0.4-0", + "version": "0.4.0-17" + }, + { + "name": "libvolume-key1", + "version": "0.3.12-3.1build1" + }, + { + "name": "libvpx6", + "version": "1.9.0-1" + }, + { + "name": "libvte-2.91-0", + "version": "0.62.3-1ubuntu1" + }, + { + "name": "libvte-2.91-common", + "version": "0.62.3-1ubuntu1" + }, + { + "name": "libvulkan1", + "version": "1.2.162.0-1" + }, + { + "name": "libwacom-bin", + "version": "1.8-2ubuntu1" + }, + { + "name": "libwacom-common", + "version": "1.8-2ubuntu1" + }, + { + "name": "libwacom2", + "version": "1.8-2ubuntu1" + }, + { + "name": "libwavpack1", + "version": "5.4.0-1" + }, + { + "name": "libwayland-client0", + "version": "1.18.0-2~exp1.1" + }, + { + "name": "libwayland-cursor0", + "version": "1.18.0-2~exp1.1" + }, + { + "name": "libwayland-egl1", + "version": "1.18.0-2~exp1.1" + }, + { + "name": "libwayland-server0", + "version": "1.18.0-2~exp1.1" + }, + { + "name": "libwbclient0", + "version": "2:4.13.3+dfsg-1ubuntu2" + }, + { + "name": "libwebkit2gtk-4.0-37", + "version": "2.32.0-1ubuntu3" + }, + { + "name": "libwebp6", + "version": "0.6.1-2" + }, + { + "name": "libwebpdemux2", + "version": "0.6.1-2" + }, + { + "name": "libwebpmux3", + "version": "0.6.1-2" + }, + { + "name": "libwebrtc-audio-processing1", + "version": "0.3.1-0ubuntu3" + }, + { + "name": "libwhoopsie-preferences0", + "version": "22" + }, + { + "name": "libwhoopsie0", + "version": "0.2.76" + }, + { + "name": "libwind0-heimdal", + "version": "7.7.0+dfsg-2" + }, + { + "name": "libwmf0.2-7", + "version": "0.2.8.4-17ubuntu1" + }, + { + "name": "libwmf0.2-7-gtk", + "version": "0.2.8.4-17ubuntu1" + }, + { + "name": "libwnck-3-0", + "version": "3.36.0-1" + }, + { + "name": "libwnck-3-common", + "version": "3.36.0-1" + }, + { + "name": "libwoff1", + "version": "1.0.2-1build2" + }, + { + "name": "libwww-perl", + "version": "6.52-1" + }, + { + "name": "libx11-6", + "version": "2:1.7.0-2build2" + }, + { + "name": "libx11-data", + "version": "2:1.7.0-2build2" + }, + { + "name": "libx11-xcb1", + "version": "2:1.7.0-2build2" + }, + { + "name": "libxatracker2", + "version": "21.0.1-2" + }, + { + "name": "libxcb-icccm4", + "version": "0.4.1-1.1" + }, + { + "name": "libxcb-image0", + "version": "0.4.0-1build1" + }, + { + "name": "libxcb-keysyms1", + "version": "0.4.0-1build1" + }, + { + "name": "libxcb-render-util0", + "version": "0.3.9-1build1" + }, + { + "name": "libxcb-util1", + "version": "0.4.0-1" + }, + { + "name": "libxdmcp6", + "version": "1:1.1.3-0ubuntu3" + }, + { + "name": "libxfont2", + "version": "1:2.0.4-1build2" + }, + { + "name": "libxft2", + "version": "2.3.3-0ubuntu3" + }, + { + "name": "libxkbcommon-x11-0", + "version": "1.0.3-2" + }, + { + "name": "libxkbcommon0", + "version": "1.0.3-2" + }, + { + "name": "libxkbregistry0", + "version": "1.0.3-2" + }, + { + "name": "libxklavier16", + "version": "5.4-4" + }, + { + "name": "libxml2", + "version": "2.9.10+dfsg-6.3build2" + }, + { + "name": "libxres1", + "version": "2:1.2.0-4" + }, + { + "name": "libxshmfence1", + "version": "1.3-1build2" + }, + { + "name": "libxvmc1", + "version": "2:1.0.12-2" + }, + { + "name": "libxxf86dga1", + "version": "2:1.1.5-0ubuntu1" + }, + { + "name": "libxxhash0", + "version": "0.8.0-2" + }, + { + "name": "libyelp0", + "version": "40.stable-1" + }, + { + "name": "libzstd1", + "version": "1.4.8+dfsg-2build2" + }, + { + "name": "linux-base", + "version": "4.5ubuntu5" + }, + { + "name": "linux-firmware", + "version": "1.197" + }, + { + "name": "linux-generic-hwe-20.04", + "version": "5.11.0.16.17" + }, + { + "name": "linux-headers-5.11.0-16", + "version": "5.11.0-16.17" + }, + { + "name": "linux-headers-5.11.0-16-generic", + "version": "5.11.0-16.17" + }, + { + "name": "linux-headers-generic-hwe-20.04", + "version": "5.11.0.16.17" + }, + { + "name": "linux-image-5.11.0-16-generic", + "version": "5.11.0-16.17" + }, + { + "name": "linux-image-generic-hwe-20.04", + "version": "5.11.0.16.17" + }, + { + "name": "linux-modules-5.11.0-16-generic", + "version": "5.11.0-16.17" + }, + { + "name": "linux-modules-extra-5.11.0-16-generic", + "version": "5.11.0-16.17" + }, + { + "name": "locales", + "version": "2.33-0ubuntu5" + }, + { + "name": "login", + "version": "1:4.8.1-1ubuntu8" + }, + { + "name": "logrotate", + "version": "3.18.0-1ubuntu1" + }, + { + "name": "logsave", + "version": "1.45.7-1ubuntu2" + }, + { + "name": "lsb-base", + "version": "11.1.0ubuntu2" + }, + { + "name": "lsb-release", + "version": "11.1.0ubuntu2" + }, + { + "name": "lshw", + "version": "02.18.85-0.6ubuntu1" + }, + { + "name": "ltrace", + "version": "0.7.3-6.1ubuntu2" + }, + { + "name": "lz4", + "version": "1.9.3-1build1" + }, + { + "name": "mailcap", + "version": "3.68ubuntu1" + }, + { + "name": "manpages", + "version": "5.10-1" + }, + { + "name": "memtest86+", + "version": "5.01-3.1ubuntu4" + }, + { + "name": "mesa-vulkan-drivers", + "version": "21.0.1-2" + }, + { + "name": "mobile-broadband-provider-info", + "version": "20201225-1" + }, + { + "name": "modemmanager", + "version": "1.14.10-0.1" + }, + { + "name": "mokutil", + "version": "0.3.0+1538710437.fb6250f-1" + }, + { + "name": "mount", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "mousetweaks", + "version": "3.32.0-3" + }, + { + "name": "mscompress", + "version": "0.4-8" + }, + { + "name": "mtr-tiny", + "version": "0.94-1" + }, + { + "name": "mutter-common", + "version": "3.38.4-1ubuntu2" + }, + { + "name": "nano", + "version": "5.4-2build1" + }, + { + "name": "nautilus", + "version": "1:3.38.2-1ubuntu1" + }, + { + "name": "nautilus-data", + "version": "1:3.38.2-1ubuntu1" + }, + { + "name": "nautilus-extension-gnome-terminal", + "version": "3.38.1-1ubuntu1" + }, + { + "name": "nautilus-sendto", + "version": "3.8.6-3.1" + }, + { + "name": "nautilus-share", + "version": "0.7.3-2ubuntu3" + }, + { + "name": "netbase", + "version": "6.2" + }, + { + "name": "netplan.io", + "version": "0.102-0ubuntu2" + }, + { + "name": "network-manager", + "version": "1.30.0-1ubuntu3" + }, + { + "name": "network-manager-config-connectivity-ubuntu", + "version": "1.30.0-1ubuntu3" + }, + { + "name": "network-manager-gnome", + "version": "1.18.0-1ubuntu2" + }, + { + "name": "network-manager-openvpn", + "version": "1.8.12-2ubuntu1" + }, + { + "name": "network-manager-openvpn-gnome", + "version": "1.8.12-2ubuntu1" + }, + { + "name": "network-manager-pptp", + "version": "1.2.8-3" + }, + { + "name": "network-manager-pptp-gnome", + "version": "1.2.8-3" + }, + { + "name": "networkd-dispatcher", + "version": "2.1-1" + }, + { + "name": "ntfs-3g", + "version": "1:2017.3.23AR.3-3ubuntu4" + }, + { + "name": "openprinting-ppds", + "version": "20200820-1" + }, + { + "name": "openssh-client", + "version": "1:8.4p1-5ubuntu1" + }, + { + "name": "openssl", + "version": "1.1.1j-1ubuntu3" + }, + { + "name": "openvpn", + "version": "2.5.1-1ubuntu1" + }, + { + "name": "orca", + "version": "3.38.0-1ubuntu1" + }, + { + "name": "os-prober", + "version": "1.77ubuntu3" + }, + { + "name": "p11-kit", + "version": "0.23.22-1" + }, + { + "name": "p11-kit-modules", + "version": "0.23.22-1" + }, + { + "name": "packagekit", + "version": "1.2.2-2ubuntu1" + }, + { + "name": "packagekit-tools", + "version": "1.2.2-2ubuntu1" + }, + { + "name": "passwd", + "version": "1:4.8.1-1ubuntu8" + }, + { + "name": "pci.ids", + "version": "0.0~2021.02.08-1" + }, + { + "name": "pcmciautils", + "version": "018-12build1" + }, + { + "name": "perl", + "version": "5.32.1-3ubuntu2" + }, + { + "name": "perl-base", + "version": "5.32.1-3ubuntu2" + }, + { + "name": "perl-modules-5.32", + "version": "5.32.1-3ubuntu2" + }, + { + "name": "pinentry-curses", + "version": "1.1.0-4build1" + }, + { + "name": "pinentry-gnome3", + "version": "1.1.0-4build1" + }, + { + "name": "pipewire", + "version": "0.3.24-3" + }, + { + "name": "pipewire-bin", + "version": "0.3.24-3" + }, + { + "name": "plymouth", + "version": "0.9.5-0ubuntu3" + }, + { + "name": "plymouth-label", + "version": "0.9.5-0ubuntu3" + }, + { + "name": "plymouth-theme-spinner", + "version": "0.9.5-0ubuntu3" + }, + { + "name": "plymouth-theme-ubuntu-text", + "version": "0.9.5-0ubuntu3" + }, + { + "name": "policykit-1", + "version": "0.105-30" + }, + { + "name": "poppler-data", + "version": "0.4.10-1" + }, + { + "name": "poppler-utils", + "version": "21.02.0-1" + }, + { + "name": "power-profiles-daemon", + "version": "0.1-5" + }, + { + "name": "ppp", + "version": "2.4.7-2+4.1ubuntu8" + }, + { + "name": "pptp-linux", + "version": "1.10.0-1build1" + }, + { + "name": "printer-driver-brlaser", + "version": "6-1build1" + }, + { + "name": "printer-driver-c2esp", + "version": "27-8" + }, + { + "name": "printer-driver-foo2zjs", + "version": "20200505dfsg0-1" + }, + { + "name": "printer-driver-foo2zjs-common", + "version": "20200505dfsg0-1" + }, + { + "name": "printer-driver-hpcups", + "version": "3.21.2+dfsg1-2" + }, + { + "name": "printer-driver-m2300w", + "version": "0.51-14" + }, + { + "name": "printer-driver-min12xxw", + "version": "0.0.9-11" + }, + { + "name": "printer-driver-pnm2ppa", + "version": "1.13+nondbs-0ubuntu7" + }, + { + "name": "printer-driver-postscript-hp", + "version": "3.21.2+dfsg1-2" + }, + { + "name": "printer-driver-ptouch", + "version": "1.5.1-2" + }, + { + "name": "printer-driver-pxljr", + "version": "1.4+repack0-5" + }, + { + "name": "printer-driver-sag-gdi", + "version": "0.1-7" + }, + { + "name": "printer-driver-splix", + "version": "2.0.0+svn315-7fakesync1build1" + }, + { + "name": "procps", + "version": "2:3.3.16-5ubuntu3" + }, + { + "name": "pulseaudio", + "version": "1:14.2-1ubuntu1" + }, + { + "name": "pulseaudio-module-bluetooth", + "version": "1:14.2-1ubuntu1" + }, + { + "name": "pulseaudio-utils", + "version": "1:14.2-1ubuntu1" + }, + { + "name": "python-apt", + "version": "2.1.7+ubuntu2" + }, + { + "name": "python-apt-common", + "version": "2.1.7ubuntu2" + }, + { + "name": "python-debian", + "version": "0.1.39" + }, + { + "name": "python3", + "version": "3.9.4-1" + }, + { + "name": "python3-apport", + "version": "2.20.11-0ubuntu65" + }, + { + "name": "python3-apt", + "version": "2.1.7ubuntu2" + }, + { + "name": "python3-brlapi", + "version": "6.3+dfsg-1ubuntu1" + }, + { + "name": "python3-cffi-backend", + "version": "1.14.5-1" + }, + { + "name": "python3-commandnotfound", + "version": "20.10.1" + }, + { + "name": "python3-cupshelpers", + "version": "1.5.15-0ubuntu1" + }, + { + "name": "python3-dateutil", + "version": "2.8.1-5" + }, + { + "name": "python3-debconf", + "version": "1.5.74" + }, + { + "name": "python3-debian", + "version": "0.1.39" + }, + { + "name": "python3-distupgrade", + "version": "1:21.04.10" + }, + { + "name": "python3-gdbm", + "version": "3.9.4-0ubuntu1" + }, + { + "name": "python3-gi", + "version": "3.38.0-4" + }, + { + "name": "python3-gi-cairo", + "version": "3.38.0-4" + }, + { + "name": "python3-httplib2", + "version": "0.18.1-3" + }, + { + "name": "python3-ibus-1.0", + "version": "1.5.24-1" + }, + { + "name": "python3-jeepney", + "version": "0.6.0-1" + }, + { + "name": "python3-keyring", + "version": "22.2.0-1" + }, + { + "name": "python3-ldb", + "version": "2:2.2.0-3ubuntu2" + }, + { + "name": "python3-louis", + "version": "3.16.0-1" + }, + { + "name": "python3-minimal", + "version": "3.9.4-1" + }, + { + "name": "python3-pexpect", + "version": "4.8.0-1ubuntu1" + }, + { + "name": "python3-pil", + "version": "8.1.2-1" + }, + { + "name": "python3-pkg-resources", + "version": "52.0.0-3" + }, + { + "name": "python3-problem-report", + "version": "2.20.11-0ubuntu65" + }, + { + "name": "python3-protobuf", + "version": "3.12.4-1ubuntu2" + }, + { + "name": "python3-six", + "version": "1.15.0-2" + }, + { + "name": "python3-software-properties", + "version": "0.99.10" + }, + { + "name": "python3-speechd", + "version": "0.10.2-2" + }, + { + "name": "python3-talloc", + "version": "2.3.1-2ubuntu1" + }, + { + "name": "python3-update-manager", + "version": "1:21.04.8" + }, + { + "name": "python3-urllib3", + "version": "1.26.2-1ubuntu1" + }, + { + "name": "python3-yaml", + "version": "5.3.1-3ubuntu1" + }, + { + "name": "python3.9", + "version": "3.9.4-1" + }, + { + "name": "python3.9-minimal", + "version": "3.9.4-1" + }, + { + "name": "readline-common", + "version": "8.1-1" + }, + { + "name": "rfkill", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "rsync", + "version": "3.2.3-3ubuntu1" + }, + { + "name": "rsyslog", + "version": "8.2102.0-2ubuntu1" + }, + { + "name": "rygel", + "version": "0.40.0-1ubuntu1" + }, + { + "name": "samba-libs", + "version": "2:4.13.3+dfsg-1ubuntu2" + }, + { + "name": "sane-airscan", + "version": "0.99.25-0ubuntu1" + }, + { + "name": "sane-utils", + "version": "1.0.32-0ubuntu2" + }, + { + "name": "sbsigntool", + "version": "0.9.2-2ubuntu4" + }, + { + "name": "seahorse", + "version": "40.0-1" + }, + { + "name": "session-migration", + "version": "0.3.5" + }, + { + "name": "shared-mime-info", + "version": "2.0-1" + }, + { + "name": "shim-signed", + "version": "1.46+15.4-0ubuntu1" + }, + { + "name": "six", + "version": "1.15.0" + }, + { + "name": "snapd", + "version": "2.49.2+21.04ubuntu1" + }, + { + "name": "software-properties-common", + "version": "0.99.10" + }, + { + "name": "software-properties-gtk", + "version": "0.99.10" + }, + { + "name": "speech-dispatcher", + "version": "0.10.2-2" + }, + { + "name": "speech-dispatcher-audio-plugins", + "version": "0.10.2-2" + }, + { + "name": "speech-dispatcher-espeak-ng", + "version": "0.10.2-2" + }, + { + "name": "spice-vdagent", + "version": "0.20.0-2" + }, + { + "name": "squashfs-tools", + "version": "1:4.4-2" + }, + { + "name": "ssl-cert", + "version": "1.1.0" + }, + { + "name": "strace", + "version": "5.11-0ubuntu1" + }, + { + "name": "sudo", + "version": "1.9.5p2-2ubuntu3" + }, + { + "name": "switcheroo-control", + "version": "2.4-3" + }, + { + "name": "system-config-printer", + "version": "1.5.15-0ubuntu1" + }, + { + "name": "system-config-printer-common", + "version": "1.5.15-0ubuntu1" + }, + { + "name": "system-config-printer-udev", + "version": "1.5.15-0ubuntu1" + }, + { + "name": "systemd", + "version": "247.3-3ubuntu3" + }, + { + "name": "systemd-sysv", + "version": "247.3-3ubuntu3" + }, + { + "name": "systemd-timesyncd", + "version": "247.3-3ubuntu3" + }, + { + "name": "sysvinit-utils", + "version": "2.96-6ubuntu1" + }, + { + "name": "tcl", + "version": "8.6.11" + }, + { + "name": "tcpdump", + "version": "4.9.3-7" + }, + { + "name": "thermald", + "version": "2.4.3-1" + }, + { + "name": "tracker", + "version": "2.3.6-2" + }, + { + "name": "tracker-extract", + "version": "2.3.5-2ubuntu1" + }, + { + "name": "tracker-miner-fs", + "version": "2.3.5-2ubuntu1" + }, + { + "name": "tzdata", + "version": "2021a-1ubuntu1" + }, + { + "name": "ubuntu-advantage-tools", + "version": "24.4" + }, + { + "name": "ubuntu-advantage-tools", + "version": "26.2" + }, + { + "name": "ubuntu-desktop", + "version": "1.469" + }, + { + "name": "ubuntu-desktop-minimal", + "version": "1.469" + }, + { + "name": "ubuntu-docs", + "version": "21.04.1" + }, + { + "name": "ubuntu-drivers-common", + "version": "1:0.8.9.1" + }, + { + "name": "ubuntu-minimal", + "version": "1.469" + }, + { + "name": "ubuntu-release-upgrader-core", + "version": "1:21.04.10" + }, + { + "name": "ubuntu-release-upgrader-gtk", + "version": "1:21.04.10" + }, + { + "name": "ubuntu-report", + "version": "1.6.4" + }, + { + "name": "ubuntu-session", + "version": "3.38.0-3ubuntu2" + }, + { + "name": "ubuntu-settings", + "version": "21.04.3" + }, + { + "name": "ubuntu-standard", + "version": "1.469" + }, + { + "name": "ubuntu-wallpapers", + "version": "21.04.1-0ubuntu1" + }, + { + "name": "ubuntu-wallpapers-hirsute", + "version": "21.04.1-0ubuntu1" + }, + { + "name": "udev", + "version": "247.3-3ubuntu3" + }, + { + "name": "udisks2", + "version": "2.9.2-1" + }, + { + "name": "ufw", + "version": "0.36-7.1" + }, + { + "name": "update-manager", + "version": "1:21.04.8" + }, + { + "name": "update-manager-core", + "version": "1:21.04.8" + }, + { + "name": "update-notifier", + "version": "3.192.40" + }, + { + "name": "update-notifier-common", + "version": "3.192.40" + }, + { + "name": "upower", + "version": "0.99.11-2" + }, + { + "name": "urllib3", + "version": "1.26.2" + }, + { + "name": "usb-modeswitch", + "version": "2.6.1-1ubuntu3" + }, + { + "name": "usb.ids", + "version": "2021.01.29-1" + }, + { + "name": "usbmuxd", + "version": "1.1.1-2" + }, + { + "name": "usbutils", + "version": "1:013-3" + }, + { + "name": "usrmerge", + "version": "24ubuntu3" + }, + { + "name": "util-linux", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "uuid-runtime", + "version": "2.36.1-7ubuntu2" + }, + { + "name": "vim-common", + "version": "2:8.2.2434-1ubuntu1" + }, + { + "name": "vim-tiny", + "version": "2:8.2.2434-1ubuntu1" + }, + { + "name": "whiptail", + "version": "0.52.21-4ubuntu6" + }, + { + "name": "whoopsie", + "version": "0.2.76" + }, + { + "name": "whoopsie-preferences", + "version": "22" + }, + { + "name": "wireless-regdb", + "version": "2020.11.20-0ubuntu1" + }, + { + "name": "wireless-tools", + "version": "30~pre9-13.1ubuntu2" + }, + { + "name": "wpasupplicant", + "version": "2:2.9.0-21" + }, + { + "name": "x11-common", + "version": "1:7.7+22ubuntu1" + }, + { + "name": "x11-session-utils", + "version": "7.7+4" + }, + { + "name": "x11-utils", + "version": "7.7+5" + }, + { + "name": "x11-xkb-utils", + "version": "7.7+5build2" + }, + { + "name": "x11-xserver-utils", + "version": "7.7+8" + }, + { + "name": "xbrlapi", + "version": "6.3+dfsg-1ubuntu1" + }, + { + "name": "xdg-dbus-proxy", + "version": "0.1.2-2" + }, + { + "name": "xdg-desktop-portal", + "version": "1.8.1-1" + }, + { + "name": "xdg-desktop-portal-gtk", + "version": "1.8.0-1" + }, + { + "name": "xdg-user-dirs", + "version": "0.17-2ubuntu2" + }, + { + "name": "xdg-user-dirs-gtk", + "version": "0.10-3" + }, + { + "name": "xfonts-utils", + "version": "1:7.7+6" + }, + { + "name": "xinit", + "version": "1.4.1-0ubuntu2" + }, + { + "name": "xinput", + "version": "1.6.3-1" + }, + { + "name": "xorg", + "version": "1:7.7+22ubuntu1" + }, + { + "name": "xserver-common", + "version": "2:1.20.11-1ubuntu1" + }, + { + "name": "xserver-xephyr", + "version": "2:1.20.11-1ubuntu1" + }, + { + "name": "xserver-xorg", + "version": "1:7.7+22ubuntu1" + }, + { + "name": "xserver-xorg-core", + "version": "2:1.20.11-1ubuntu1" + }, + { + "name": "xserver-xorg-input-all", + "version": "1:7.7+22ubuntu1" + }, + { + "name": "xserver-xorg-input-libinput", + "version": "0.30.0-1build1" + }, + { + "name": "xserver-xorg-input-wacom", + "version": "1:0.39.0-0ubuntu1" + }, + { + "name": "xserver-xorg-legacy", + "version": "2:1.20.11-1ubuntu1" + }, + { + "name": "xserver-xorg-video-all", + "version": "1:7.7+22ubuntu1" + }, + { + "name": "xserver-xorg-video-amdgpu", + "version": "19.1.0-2" + }, + { + "name": "xserver-xorg-video-ati", + "version": "1:19.1.0-2" + }, + { + "name": "xserver-xorg-video-fbdev", + "version": "1:0.5.0-1ubuntu2" + }, + { + "name": "xserver-xorg-video-intel", + "version": "2:2.99.917+git20200714-1ubuntu1" + }, + { + "name": "xserver-xorg-video-nouveau", + "version": "1:1.0.17-1" + }, + { + "name": "xserver-xorg-video-qxl", + "version": "0.1.5+git20200331-1" + }, + { + "name": "xserver-xorg-video-radeon", + "version": "1:19.1.0-2" + }, + { + "name": "xserver-xorg-video-vesa", + "version": "1:2.5.0-1build1" + }, + { + "name": "xul-ext-ubufox", + "version": "3.4-0ubuntu1.17.10.1" + }, + { + "name": "xwayland", + "version": "2:21.1.1-0ubuntu1" + }, + { + "name": "xxd", + "version": "2:8.2.2434-1ubuntu1" + }, + { + "name": "xz-utils", + "version": "5.2.5-1.0build2" + }, + { + "name": "yaru-theme-gnome-shell", + "version": "21.04.1" + }, + { + "name": "yaru-theme-gtk", + "version": "21.04.1" + }, + { + "name": "yaru-theme-icon", + "version": "21.04.1" + }, + { + "name": "yaru-theme-sound", + "version": "21.04.1" + }, + { + "name": "yelp", + "version": "40.stable-1" + }, + { + "name": "yelp-xsl", + "version": "40.0-1" + }, + { + "name": "zenity", + "version": "3.32.0-6" + }, + { + "name": "zenity-common", + "version": "3.32.0-6" + }, + { + "name": "zip", + "version": "3.0-12" + }, + { + "name": "zlib1g", + "version": "1:1.2.11.dfsg-2ubuntu6" + } +] \ No newline at end of file diff --git a/cmd/osquery-perf/ubuntu_2110-vulnerable_software.json b/cmd/osquery-perf/ubuntu_2110-vulnerable_software.json new file mode 100644 index 0000000000..02a0168f7b --- /dev/null +++ b/cmd/osquery-perf/ubuntu_2110-vulnerable_software.json @@ -0,0 +1,6022 @@ +[ + { + "name": "defer", + "version": "1.0.6" + }, + { + "name": "dmz-cursor-theme", + "version": "0.4.5ubuntu1" + }, + { + "name": "grub-gfxpayload-lists", + "version": "0.7" + }, + { + "name": "hicolor-icon-theme", + "version": "0.17-2" + }, + { + "name": "language-selector", + "version": "0.1" + }, + { + "name": "laptop-detect", + "version": "0.16" + }, + { + "name": "libnet-smtp-ssl-perl", + "version": "1.04-1" + }, + { + "name": "libxml-xpathengine-perl", + "version": "0.14-1" + }, + { + "name": "pymacaroons", + "version": "0.13.0" + }, + { + "name": "sound-theme-freedesktop", + "version": "0.8-2ubuntu1" + }, + { + "name": "ubuntu-drivers-common", + "version": "0.0.0" + }, + { + "name": "unattended-upgrades", + "version": "0.1" + }, + { + "name": "aspell-en", + "version": "2018.04.16-0-1" + }, + { + "name": "emacsen-common", + "version": "3.0.4" + }, + { + "name": "fonts-deva-extra", + "version": "3.0-5" + }, + { + "name": "fonts-gujr-extra", + "version": "1.0.1-1" + }, + { + "name": "fonts-guru-extra", + "version": "2.0-5" + }, + { + "name": "fonts-kacst-one", + "version": "5.0+svn11846-10" + }, + { + "name": "fonts-liberation", + "version": "1:1.07.4-11" + }, + { + "name": "fonts-lohit-deva", + "version": "2.95.4-4" + }, + { + "name": "fonts-lohit-gujr", + "version": "2.92.4-4" + }, + { + "name": "fonts-orya-extra", + "version": "2.0-6" + }, + { + "name": "fonts-smc-meera", + "version": "7.0.3-1" + }, + { + "name": "fonts-smc-raghumalayalamsans", + "version": "2.2.1-1" + }, + { + "name": "fonts-smc-suruma", + "version": "3.2.3-1" + }, + { + "name": "fonts-smc-uroob", + "version": "2.0.2-1" + }, + { + "name": "libhtml-form-perl", + "version": "6.07-1" + }, + { + "name": "libhtml-tagset-perl", + "version": "3.20-4" + }, + { + "name": "libhtml-tree-perl", + "version": "5.07-2" + }, + { + "name": "libhttp-date-perl", + "version": "6.05-1" + }, + { + "name": "libhttp-negotiate-perl", + "version": "6.01-1" + }, + { + "name": "libio-stringy-perl", + "version": "2.111-3" + }, + { + "name": "liblwp-mediatypes-perl", + "version": "6.04-1" + }, + { + "name": "libmailtools-perl", + "version": "2.21-1" + }, + { + "name": "libtext-wrapi18n-perl", + "version": "0.06-9" + }, + { + "name": "libwww-robotrules-perl", + "version": "6.02-1" + }, + { + "name": "macaroonbakery", + "version": "1.3.1" + }, + { + "name": "olefile", + "version": "0.46" + }, + { + "name": "osquery", + "version": "5.2.3-1.linux" + }, + { + "name": "policykit-desktop-privileges", + "version": "0.21" + }, + { + "name": "powermgmt-base", + "version": "1.36" + }, + { + "name": "pyRFC3339", + "version": "1.1" + }, + { + "name": "xcursor-themes", + "version": "1.0.6-0ubuntu1" + }, + { + "name": "xfonts-base", + "version": "1:1.0.5" + }, + { + "name": "xml-core", + "version": "0.18+nmu1" + }, + { + "name": "SecretStorage", + "version": "3.3.1" + }, + { + "name": "adduser", + "version": "3.118ubuntu5" + }, + { + "name": "alsa-base", + "version": "1.0.25+dfsg-0ubuntu7" + }, + { + "name": "alsa-topology-conf", + "version": "1.2.5.1-2" + }, + { + "name": "amd64-microcode", + "version": "3.20191218.1ubuntu2" + }, + { + "name": "apport-symptoms", + "version": "0.24" + }, + { + "name": "certifi", + "version": "2020.6.20" + }, + { + "name": "chardet", + "version": "4.0.0" + }, + { + "name": "colorama", + "version": "0.4.4" + }, + { + "name": "cpp", + "version": "4:11.2.0-1ubuntu1" + }, + { + "name": "dmidecode", + "version": "3.3-3" + }, + { + "name": "dns-root-data", + "version": "2021011101" + }, + { + "name": "efibootmgr", + "version": "17-1ubuntu2" + }, + { + "name": "fonts-beng", + "version": "2:1.3" + }, + { + "name": "fonts-dejavu-core", + "version": "2.37-2build1" + }, + { + "name": "fonts-deva", + "version": "2:1.3" + }, + { + "name": "fonts-droid-fallback", + "version": "1:6.0.1r16-1.1build1" + }, + { + "name": "fonts-freefont-ttf", + "version": "20120503-10build1" + }, + { + "name": "fonts-gargi", + "version": "2.0-5" + }, + { + "name": "fonts-gubbi", + "version": "1.3-5build1" + }, + { + "name": "fonts-gujr", + "version": "2:1.4" + }, + { + "name": "fonts-guru", + "version": "2:1.3" + }, + { + "name": "fonts-indic", + "version": "2:1.4" + }, + { + "name": "fonts-kacst", + "version": "2.01+mry-15" + }, + { + "name": "fonts-kalapi", + "version": "1.0-4" + }, + { + "name": "fonts-khmeros-core", + "version": "5.0-9ubuntu1" + }, + { + "name": "fonts-knda", + "version": "2:1.3" + }, + { + "name": "fonts-lao", + "version": "0.0.20060226-10ubuntu2" + }, + { + "name": "fonts-lklug-sinhala", + "version": "0.6-4" + }, + { + "name": "fonts-lohit-beng-assamese", + "version": "2.91.5-2" + }, + { + "name": "fonts-lohit-beng-bengali", + "version": "2.91.5-2" + }, + { + "name": "fonts-lohit-guru", + "version": "2.91.2-2build1" + }, + { + "name": "fonts-lohit-knda", + "version": "2.5.4-3" + }, + { + "name": "fonts-lohit-mlym", + "version": "2.92.2-2" + }, + { + "name": "fonts-lohit-orya", + "version": "2.91.2-2" + }, + { + "name": "fonts-lohit-taml", + "version": "2.91.3-2" + }, + { + "name": "fonts-lohit-taml-classical", + "version": "2.5.4-2" + }, + { + "name": "fonts-lohit-telu", + "version": "2.5.5-2build1" + }, + { + "name": "fonts-mlym", + "version": "2:1.3" + }, + { + "name": "fonts-nakula", + "version": "1.0-4" + }, + { + "name": "fonts-navilu", + "version": "1.2-3" + }, + { + "name": "fonts-noto-mono", + "version": "20201225-1build1" + }, + { + "name": "fonts-orya", + "version": "2:1.3" + }, + { + "name": "fonts-pagul", + "version": "1.0-8" + }, + { + "name": "fonts-sahadeva", + "version": "1.0-5" + }, + { + "name": "fonts-samyak-deva", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-gujr", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-mlym", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-taml", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-sarai", + "version": "1.0-3" + }, + { + "name": "fonts-smc", + "version": "1:7.2" + }, + { + "name": "fonts-smc-anjalioldlipi", + "version": "7.1.2-2" + }, + { + "name": "fonts-smc-dyuthi", + "version": "3.0.2-2" + }, + { + "name": "fonts-smc-karumbi", + "version": "1.1.2-2" + }, + { + "name": "fonts-smc-keraleeyam", + "version": "3.0.2-2" + }, + { + "name": "fonts-smc-rachana", + "version": "7.0.2-1build1" + }, + { + "name": "fonts-taml", + "version": "2:1.4" + }, + { + "name": "fonts-telu", + "version": "2:1.3" + }, + { + "name": "fonts-telu-extra", + "version": "2.0-5" + }, + { + "name": "fonts-teluguvijayam", + "version": "2.1-1" + }, + { + "name": "fonts-urw-base35", + "version": "20200910-1" + }, + { + "name": "friendly-recovery", + "version": "0.2.42" + }, + { + "name": "intel-microcode", + "version": "3.20210608.2ubuntu1" + }, + { + "name": "iucode-tool", + "version": "2.3.1-1build1" + }, + { + "name": "jeepney", + "version": "0.7.1" + }, + { + "name": "libauthen-sasl-perl", + "version": "2.1600-1.1" + }, + { + "name": "libefiboot1", + "version": "37-6ubuntu2" + }, + { + "name": "libefivar1", + "version": "37-6ubuntu2" + }, + { + "name": "libencode-locale-perl", + "version": "1.05-1.1" + }, + { + "name": "libexempi8", + "version": "2.5.2-1build1" + }, + { + "name": "libfile-desktopentry-perl", + "version": "0.22-2" + }, + { + "name": "libfile-listing-perl", + "version": "6.14-1" + }, + { + "name": "libfont-afm-perl", + "version": "1.20-3" + }, + { + "name": "libgtk3-perl", + "version": "0.038-1" + }, + { + "name": "libhtml-format-perl", + "version": "2.12-1.1" + }, + { + "name": "libhttp-cookies-perl", + "version": "6.10-1" + }, + { + "name": "libio-html-perl", + "version": "1.004-2" + }, + { + "name": "libipc-system-simple-perl", + "version": "1.30-1" + }, + { + "name": "liblwp-protocol-https-perl", + "version": "6.10-1" + }, + { + "name": "libsmbios-c2", + "version": "2.4.3-1build1" + }, + { + "name": "libtie-ixhash-perl", + "version": "1.23-2.1" + }, + { + "name": "libtimedate-perl", + "version": "2.3300-2" + }, + { + "name": "libx11-protocol-perl", + "version": "0.56-7.1" + }, + { + "name": "libxml-twig-perl", + "version": "1:3.52-1" + }, + { + "name": "linux-base", + "version": "4.5ubuntu9" + }, + { + "name": "linux-sound-base", + "version": "1.0.25+dfsg-0ubuntu7" + }, + { + "name": "manpages", + "version": "5.10-1ubuntu1" + }, + { + "name": "mime-support", + "version": "3.66" + }, + { + "name": "nessusagent", + "version": "10.1.3" + }, + { + "name": "netbase", + "version": "6.3" + }, + { + "name": "networkd-dispatcher", + "version": "2.1-2" + }, + { + "name": "poppler-data", + "version": "0.4.11-1" + }, + { + "name": "printer-driver-sag-gdi", + "version": "0.1-8" + }, + { + "name": "protobuf", + "version": "3.12.4" + }, + { + "name": "python-dateutil", + "version": "2.8.1" + }, + { + "name": "python3-certifi", + "version": "2020.6.20-1" + }, + { + "name": "python3-chardet", + "version": "4.0.0-1" + }, + { + "name": "python3-colorama", + "version": "0.4.4-1" + }, + { + "name": "python3-dateutil", + "version": "2.8.1-6" + }, + { + "name": "python3-olefile", + "version": "0.46-3" + }, + { + "name": "python3-pexpect", + "version": "4.8.0-2ubuntu1" + }, + { + "name": "python3-pymacaroons", + "version": "0.13.0-4" + }, + { + "name": "python3-requests", + "version": "2.25.1+dfsg-2" + }, + { + "name": "python3-secretstorage", + "version": "3.3.1-1" + }, + { + "name": "python3-urllib3", + "version": "1.26.5-1~exp1" + }, + { + "name": "python3-xdg", + "version": "0.27-2" + }, + { + "name": "python3-zipp", + "version": "1.0.0-3" + }, + { + "name": "pyxdg", + "version": "0.27" + }, + { + "name": "requests", + "version": "2.25.1" + }, + { + "name": "secureboot-db", + "version": "1.8" + }, + { + "name": "sgml-base", + "version": "1.30" + }, + { + "name": "sgml-data", + "version": "2.0.11+nmu1" + }, + { + "name": "shim-signed", + "version": "1.51+15.4-0ubuntu9" + }, + { + "name": "six", + "version": "1.16.0" + }, + { + "name": "ubuntu-keyring", + "version": "2021.03.26" + }, + { + "name": "ucf", + "version": "3.0043" + }, + { + "name": "update-inetd", + "version": "4.51" + }, + { + "name": "urllib3", + "version": "1.26.5" + }, + { + "name": "wireless-regdb", + "version": "2021.08.28-0ubuntu1" + }, + { + "name": "xorg-docs-core", + "version": "1:1.7.1-1.2" + }, + { + "name": "zipp", + "version": "1.0.0" + }, + { + "name": "Pillow", + "version": "8.1.2" + }, + { + "name": "PyGObject", + "version": "3.40.1" + }, + { + "name": "PyJWT", + "version": "1.7.1" + }, + { + "name": "PyNaCl", + "version": "1.4.0" + }, + { + "name": "accountsservice", + "version": "0.6.55-0ubuntu14" + }, + { + "name": "acl", + "version": "2.2.53-10ubuntu2" + }, + { + "name": "acpi-support", + "version": "0.143build1" + }, + { + "name": "acpid", + "version": "1:2.0.32-1ubuntu2" + }, + { + "name": "adwaita-icon-theme", + "version": "40.1.1-1ubuntu1" + }, + { + "name": "alsa-ucm-conf", + "version": "1.2.4-2ubuntu4" + }, + { + "name": "alsa-utils", + "version": "1.2.4-1ubuntu4" + }, + { + "name": "anacron", + "version": "2.3-30ubuntu3" + }, + { + "name": "apg", + "version": "2.2.3.dfsg.1-5build1" + }, + { + "name": "app-install-data-partner", + "version": "21.10" + }, + { + "name": "apparmor", + "version": "3.0.3-0ubuntu1" + }, + { + "name": "apport", + "version": "2.20.11-0ubuntu70" + }, + { + "name": "apport-gtk", + "version": "2.20.11-0ubuntu70" + }, + { + "name": "appstream", + "version": "0.14.5-1" + }, + { + "name": "apt", + "version": "2.3.9" + }, + { + "name": "apt-config-icons", + "version": "0.14.5-1" + }, + { + "name": "apt-config-icons-hidpi", + "version": "0.14.5-1" + }, + { + "name": "apt-utils", + "version": "2.3.9" + }, + { + "name": "aptdaemon", + "version": "1.1.1+bzr982-0ubuntu36" + }, + { + "name": "aptdaemon-data", + "version": "1.1.1+bzr982-0ubuntu36" + }, + { + "name": "apturl", + "version": "0.5.2ubuntu21" + }, + { + "name": "apturl-common", + "version": "0.5.2ubuntu21" + }, + { + "name": "aspell", + "version": "0.60.8-3" + }, + { + "name": "at-spi2-core", + "version": "2.42.0-1" + }, + { + "name": "avahi-autoipd", + "version": "0.8-5ubuntu4" + }, + { + "name": "avahi-daemon", + "version": "0.8-5ubuntu4" + }, + { + "name": "avahi-utils", + "version": "0.8-5ubuntu4" + }, + { + "name": "base-files", + "version": "11.1ubuntu5" + }, + { + "name": "base-passwd", + "version": "3.5.51" + }, + { + "name": "bash", + "version": "5.1-3ubuntu2" + }, + { + "name": "bash-completion", + "version": "1:2.11-2ubuntu1" + }, + { + "name": "bc", + "version": "1.07.1-2build3" + }, + { + "name": "bind9-dnsutils", + "version": "1:9.16.15-1ubuntu1" + }, + { + "name": "bind9-host", + "version": "1:9.16.15-1ubuntu1" + }, + { + "name": "bind9-libs", + "version": "1:9.16.15-1ubuntu1" + }, + { + "name": "bluez", + "version": "5.60-0ubuntu2" + }, + { + "name": "bluez-cups", + "version": "5.60-0ubuntu2" + }, + { + "name": "bluez-obexd", + "version": "5.60-0ubuntu2" + }, + { + "name": "bolt", + "version": "0.9.1-2" + }, + { + "name": "brltty", + "version": "6.3+dfsg-1ubuntu2" + }, + { + "name": "bsdextrautils", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "bsdutils", + "version": "1:2.36.1-8ubuntu1" + }, + { + "name": "bubblewrap", + "version": "0.4.1-3build1" + }, + { + "name": "busybox-initramfs", + "version": "1:1.30.1-6ubuntu3" + }, + { + "name": "busybox-static", + "version": "1:1.30.1-6ubuntu3" + }, + { + "name": "bzip2", + "version": "1.0.8-4ubuntu3" + }, + { + "name": "ca-certificates", + "version": "20210119ubuntu1" + }, + { + "name": "cheese-common", + "version": "3.38.0-4" + }, + { + "name": "click", + "version": "7.1.2" + }, + { + "name": "colord", + "version": "1.4.5-3build1" + }, + { + "name": "colord-data", + "version": "1.4.5-3build1" + }, + { + "name": "command-not-found", + "version": "21.10.0" + }, + { + "name": "console-setup", + "version": "1.205ubuntu1" + }, + { + "name": "console-setup-linux", + "version": "1.205ubuntu1" + }, + { + "name": "coreutils", + "version": "8.32-4ubuntu2" + }, + { + "name": "cpio", + "version": "2.13+dfsg-4ubuntu4" + }, + { + "name": "cpp-11", + "version": "11.2.0-7ubuntu2" + }, + { + "name": "cracklib-runtime", + "version": "2.9.6-3.4build1" + }, + { + "name": "crda", + "version": "4.14+git20191112.9856751-1build1" + }, + { + "name": "cron", + "version": "3.0pl1-137ubuntu2" + }, + { + "name": "cryptography", + "version": "3.3.2" + }, + { + "name": "cups", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "cups-browsed", + "version": "1.28.10-2" + }, + { + "name": "cups-bsd", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "cups-client", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "cups-common", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "cups-core-drivers", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "cups-daemon", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "cups-filters", + "version": "1.28.10-2" + }, + { + "name": "cups-filters-core-drivers", + "version": "1.28.10-2" + }, + { + "name": "cups-ipp-utils", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "cups-pk-helper", + "version": "0.2.6-1ubuntu4" + }, + { + "name": "cups-ppdc", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "cups-server-common", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "dash", + "version": "0.5.11+git20210120+802ebd4-1build1" + }, + { + "name": "dbus", + "version": "1.12.20-2ubuntu2" + }, + { + "name": "dbus-python", + "version": "1.2.16" + }, + { + "name": "dbus-user-session", + "version": "1.12.20-2ubuntu2" + }, + { + "name": "dbus-x11", + "version": "1.12.20-2ubuntu2" + }, + { + "name": "dc", + "version": "1.07.1-2build3" + }, + { + "name": "dconf-cli", + "version": "0.40.0-1" + }, + { + "name": "dconf-gsettings-backend", + "version": "0.40.0-1" + }, + { + "name": "dconf-service", + "version": "0.40.0-1" + }, + { + "name": "debconf", + "version": "1.5.77" + }, + { + "name": "debconf-i18n", + "version": "1.5.77" + }, + { + "name": "debianutils", + "version": "4.11.2" + }, + { + "name": "desktop-file-utils", + "version": "0.26-1ubuntu2" + }, + { + "name": "dictionaries-common", + "version": "1.28.4" + }, + { + "name": "diffutils", + "version": "1:3.8-0ubuntu1" + }, + { + "name": "dirmngr", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "distro", + "version": "1.5.0" + }, + { + "name": "distro-info", + "version": "1.0" + }, + { + "name": "distro-info", + "version": "1.0" + }, + { + "name": "distro-info-data", + "version": "0.51ubuntu1" + }, + { + "name": "dmsetup", + "version": "2:1.02.175-2.1ubuntu3" + }, + { + "name": "dnsmasq-base", + "version": "2.85-1ubuntu2" + }, + { + "name": "docbook-xml", + "version": "4.5-9" + }, + { + "name": "dosfstools", + "version": "4.2-1build2" + }, + { + "name": "dpkg", + "version": "1.20.9ubuntu2" + }, + { + "name": "e2fsprogs", + "version": "1.46.3-1ubuntu3" + }, + { + "name": "ed", + "version": "1.17-1" + }, + { + "name": "eject", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "enchant-2", + "version": "2.3.1-1" + }, + { + "name": "eog", + "version": "41.0-1" + }, + { + "name": "espeak-ng-data", + "version": "1.50+dfsg-7build2" + }, + { + "name": "evince", + "version": "40.4-2" + }, + { + "name": "evince-common", + "version": "40.4-2" + }, + { + "name": "evolution-data-server", + "version": "3.40.4-1" + }, + { + "name": "evolution-data-server-common", + "version": "3.40.4-1" + }, + { + "name": "fdisk", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "file", + "version": "1:5.39-3" + }, + { + "name": "file-roller", + "version": "3.40.0-2" + }, + { + "name": "findutils", + "version": "4.8.0-1ubuntu2" + }, + { + "name": "fontconfig", + "version": "2.13.1-4.2ubuntu3" + }, + { + "name": "fontconfig-config", + "version": "2.13.1-4.2ubuntu3" + }, + { + "name": "fonts-beng-extra", + "version": "1.0-7" + }, + { + "name": "fonts-liberation2", + "version": "2.1.3-1" + }, + { + "name": "fonts-noto-cjk", + "version": "1:20201206-cjk+repack1-1" + }, + { + "name": "fonts-noto-color-emoji", + "version": "2.028-1" + }, + { + "name": "fonts-opensymbol", + "version": "2:102.12+LibO7.2.1-0ubuntu3" + }, + { + "name": "fonts-sil-abyssinica", + "version": "2.000-1build1" + }, + { + "name": "fonts-sil-padauk", + "version": "4.000-1build1" + }, + { + "name": "fonts-smc-chilanka", + "version": "1.530-1" + }, + { + "name": "fonts-smc-gayathri", + "version": "1.100-2" + }, + { + "name": "fonts-smc-manjari", + "version": "1.920-1" + }, + { + "name": "fonts-thai-tlwg", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tibetan-machine", + "version": "1.901b-5.1build1" + }, + { + "name": "fonts-tlwg-garuda", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-garuda-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-kinnari", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-kinnari-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-laksaman", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-laksaman-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-loma", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-loma-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-mono", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-mono-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-norasi", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-norasi-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-purisa", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-purisa-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-sawasdee", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-sawasdee-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typewriter", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typewriter-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typist", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typist-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typo", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-typo-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-umpush", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-umpush-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-waree", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-tlwg-waree-ttf", + "version": "1:0.7.2-1build1" + }, + { + "name": "fonts-ubuntu", + "version": "0.83-4ubuntu2" + }, + { + "name": "fonts-yrsa-rasa", + "version": "2.001-1" + }, + { + "name": "foomatic-db-compressed-ppds", + "version": "20210824-1" + }, + { + "name": "fprintd", + "version": "1.90.9-1build1" + }, + { + "name": "ftp", + "version": "0.17-34.1.1" + }, + { + "name": "fuse", + "version": "2.9.9-5ubuntu2" + }, + { + "name": "fwupd", + "version": "1.5.11-0ubuntu2" + }, + { + "name": "fwupd-signed", + "version": "1.40+1.5.11-0ubuntu2" + }, + { + "name": "gamemode", + "version": "1.6.1-1" + }, + { + "name": "gamemode-daemon", + "version": "1.6.1-1" + }, + { + "name": "gcc-11-base", + "version": "11.2.0-7ubuntu2" + }, + { + "name": "gcr", + "version": "3.40.0-3" + }, + { + "name": "gdb", + "version": "11.1-0ubuntu2" + }, + { + "name": "gdisk", + "version": "1.0.8-1" + }, + { + "name": "gdm3", + "version": "41~rc-0ubuntu2" + }, + { + "name": "gedit", + "version": "40.1-1" + }, + { + "name": "gedit-common", + "version": "40.1-1" + }, + { + "name": "geoclue-2.0", + "version": "2.5.7-3ubuntu2" + }, + { + "name": "gettext-base", + "version": "0.21-4ubuntu3" + }, + { + "name": "ghostscript", + "version": "9.54.0~dfsg1-0ubuntu2" + }, + { + "name": "ghostscript-x", + "version": "9.54.0~dfsg1-0ubuntu2" + }, + { + "name": "gir1.2-accountsservice-1.0", + "version": "0.6.55-0ubuntu14" + }, + { + "name": "gir1.2-atk-1.0", + "version": "2.36.0-0ubuntu3" + }, + { + "name": "gir1.2-atspi-2.0", + "version": "2.42.0-1" + }, + { + "name": "gir1.2-dbusmenu-glib-0.4", + "version": "16.04.1+18.10.20180917-0ubuntu7" + }, + { + "name": "gir1.2-dee-1.0", + "version": "1.2.7+17.10.20170616-6ubuntu2" + }, + { + "name": "gir1.2-freedesktop", + "version": "1.68.0-1build2" + }, + { + "name": "gir1.2-gck-1", + "version": "3.40.0-3" + }, + { + "name": "gir1.2-gcr-3", + "version": "3.40.0-3" + }, + { + "name": "gir1.2-gdesktopenums-3.0", + "version": "40.0-1ubuntu1" + }, + { + "name": "gir1.2-gdkpixbuf-2.0", + "version": "2.42.6+dfsg-1build2" + }, + { + "name": "gir1.2-gdm-1.0", + "version": "41~rc-0ubuntu2" + }, + { + "name": "gir1.2-geoclue-2.0", + "version": "2.5.7-3ubuntu2" + }, + { + "name": "gir1.2-glib-2.0", + "version": "1.68.0-1build2" + }, + { + "name": "gir1.2-gmenu-3.0", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gir1.2-gnomebluetooth-1.0", + "version": "3.34.5-3" + }, + { + "name": "gir1.2-gnomedesktop-3.0", + "version": "40.4-2ubuntu1" + }, + { + "name": "gir1.2-goa-1.0", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "gir1.2-graphene-1.0", + "version": "1.10.4+dfsg1-1build1" + }, + { + "name": "gir1.2-gstreamer-1.0", + "version": "1.18.5-1" + }, + { + "name": "gir1.2-gtk-3.0", + "version": "3.24.30-1ubuntu1" + }, + { + "name": "gir1.2-gtk-4.0", + "version": "4.4.0+ds1-5" + }, + { + "name": "gir1.2-gtksource-4", + "version": "4.8.2-1" + }, + { + "name": "gir1.2-gweather-3.0", + "version": "40.0-3" + }, + { + "name": "gir1.2-handy-1", + "version": "1.2.3-1" + }, + { + "name": "gir1.2-harfbuzz-0.0", + "version": "2.7.4-1ubuntu1" + }, + { + "name": "gir1.2-ibus-1.0", + "version": "1.5.25-2build1" + }, + { + "name": "gir1.2-javascriptcoregtk-4.0", + "version": "2.34.0-1ubuntu1" + }, + { + "name": "gir1.2-json-1.0", + "version": "1.6.2-1" + }, + { + "name": "gir1.2-mutter-8", + "version": "40.5-1ubuntu2" + }, + { + "name": "gir1.2-nm-1.0", + "version": "1.32.12-0ubuntu1" + }, + { + "name": "gir1.2-nma-1.0", + "version": "1.8.32-1" + }, + { + "name": "gir1.2-notify-0.7", + "version": "0.7.9-3ubuntu3" + }, + { + "name": "gir1.2-packagekitglib-1.0", + "version": "1.2.2-2ubuntu3" + }, + { + "name": "gir1.2-pango-1.0", + "version": "1.48.10+ds1-1" + }, + { + "name": "gir1.2-peas-1.0", + "version": "1.30.0-3" + }, + { + "name": "gir1.2-polkit-1.0", + "version": "0.105-31" + }, + { + "name": "gir1.2-rsvg-2.0", + "version": "2.50.7+dfsg-1" + }, + { + "name": "gir1.2-secret-1", + "version": "0.20.4-2" + }, + { + "name": "gir1.2-snapd-1", + "version": "1.58-0ubuntu2" + }, + { + "name": "gir1.2-soup-2.4", + "version": "2.72.0-3ubuntu3" + }, + { + "name": "gir1.2-unity-7.0", + "version": "7.1.4+19.04.20190319-5" + }, + { + "name": "gir1.2-upowerglib-1.0", + "version": "0.99.11-2build1" + }, + { + "name": "gir1.2-vte-2.91", + "version": "0.64.2-1ubuntu1" + }, + { + "name": "gir1.2-webkit2-4.0", + "version": "2.34.0-1ubuntu1" + }, + { + "name": "gir1.2-wnck-3.0", + "version": "40.0-1" + }, + { + "name": "gjs", + "version": "1.68.4-1" + }, + { + "name": "gkbd-capplet", + "version": "3.26.1-1build1" + }, + { + "name": "glib-networking", + "version": "2.68.2-2" + }, + { + "name": "glib-networking-common", + "version": "2.68.2-2" + }, + { + "name": "glib-networking-services", + "version": "2.68.2-2" + }, + { + "name": "gnome-accessibility-themes", + "version": "3.28-1ubuntu2" + }, + { + "name": "gnome-bluetooth", + "version": "3.34.5-3" + }, + { + "name": "gnome-calculator", + "version": "1:40.1-1ubuntu2" + }, + { + "name": "gnome-characters", + "version": "41.0-1" + }, + { + "name": "gnome-control-center", + "version": "1:40.0-1ubuntu5" + }, + { + "name": "gnome-control-center-data", + "version": "1:40.0-1ubuntu5" + }, + { + "name": "gnome-control-center-faces", + "version": "1:40.0-1ubuntu5" + }, + { + "name": "gnome-desktop3-data", + "version": "40.4-2ubuntu1" + }, + { + "name": "gnome-disk-utility", + "version": "41.0-1ubuntu1" + }, + { + "name": "gnome-font-viewer", + "version": "41.0-1" + }, + { + "name": "gnome-initial-setup", + "version": "40.4-1ubuntu1" + }, + { + "name": "gnome-keyring", + "version": "40.0-1ubuntu1" + }, + { + "name": "gnome-keyring-pkcs11", + "version": "40.0-1ubuntu1" + }, + { + "name": "gnome-logs", + "version": "3.36.0-2build1" + }, + { + "name": "gnome-menus", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "gnome-online-accounts", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "gnome-power-manager", + "version": "3.32.0-2build1" + }, + { + "name": "gnome-screenshot", + "version": "40~beta-1ubuntu1" + }, + { + "name": "gnome-session-bin", + "version": "40.1.1-1ubuntu1" + }, + { + "name": "gnome-session-canberra", + "version": "0.30-7ubuntu2" + }, + { + "name": "gnome-session-common", + "version": "40.1.1-1ubuntu1" + }, + { + "name": "gnome-settings-daemon", + "version": "40.0.1-1ubuntu3" + }, + { + "name": "gnome-settings-daemon-common", + "version": "40.0.1-1ubuntu3" + }, + { + "name": "gnome-shell", + "version": "40.5-1ubuntu2" + }, + { + "name": "gnome-shell-common", + "version": "40.5-1ubuntu2" + }, + { + "name": "gnome-shell-extension-appindicator", + "version": "40-1" + }, + { + "name": "gnome-shell-extension-desktop-icons-ng", + "version": "20-0ubuntu3" + }, + { + "name": "gnome-shell-extension-ubuntu-dock", + "version": "70~ubuntu3" + }, + { + "name": "gnome-startup-applications", + "version": "40.1.1-1ubuntu1" + }, + { + "name": "gnome-system-monitor", + "version": "41.0-1" + }, + { + "name": "gnome-terminal", + "version": "3.38.1-1ubuntu2" + }, + { + "name": "gnome-terminal-data", + "version": "3.38.1-1ubuntu2" + }, + { + "name": "gnome-themes-extra", + "version": "3.28-1ubuntu2" + }, + { + "name": "gnome-themes-extra-data", + "version": "3.28-1ubuntu2" + }, + { + "name": "gnome-user-docs", + "version": "40.5-1ubuntu1" + }, + { + "name": "gnupg", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gnupg-l10n", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gnupg-utils", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gpg", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gpg-agent", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gpg-wks-client", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gpg-wks-server", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gpgconf", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gpgsm", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "gpgv", + "version": "2.2.20-1ubuntu4" + }, + { + "name": "grep", + "version": "3.7-0ubuntu1" + }, + { + "name": "groff-base", + "version": "1.22.4-7" + }, + { + "name": "grub-common", + "version": "2.04-1ubuntu47" + }, + { + "name": "grub-efi-amd64-bin", + "version": "2.04-1ubuntu47" + }, + { + "name": "grub-efi-amd64-signed", + "version": "1.173+2.04-1ubuntu47" + }, + { + "name": "grub-pc", + "version": "2.04-1ubuntu47" + }, + { + "name": "grub-pc-bin", + "version": "2.04-1ubuntu47" + }, + { + "name": "grub2-common", + "version": "2.04-1ubuntu47" + }, + { + "name": "gsettings-desktop-schemas", + "version": "40.0-1ubuntu1" + }, + { + "name": "gsettings-ubuntu-schemas", + "version": "0.0.7+21.10.20210712-0ubuntu1" + }, + { + "name": "gstreamer1.0-alsa", + "version": "1.18.5-1" + }, + { + "name": "gstreamer1.0-clutter-3.0", + "version": "3.0.27-2build1" + }, + { + "name": "gstreamer1.0-gl", + "version": "1.18.5-1" + }, + { + "name": "gstreamer1.0-packagekit", + "version": "1.2.2-2ubuntu3" + }, + { + "name": "gstreamer1.0-pipewire", + "version": "0.3.32-1" + }, + { + "name": "gstreamer1.0-plugins-base", + "version": "1.18.5-1" + }, + { + "name": "gstreamer1.0-plugins-base-apps", + "version": "1.18.5-1" + }, + { + "name": "gstreamer1.0-plugins-good", + "version": "1.18.5-1ubuntu2" + }, + { + "name": "gstreamer1.0-pulseaudio", + "version": "1.18.5-1ubuntu2" + }, + { + "name": "gstreamer1.0-tools", + "version": "1.18.5-1" + }, + { + "name": "gstreamer1.0-x", + "version": "1.18.5-1" + }, + { + "name": "gtk-update-icon-cache", + "version": "3.24.30-1ubuntu1" + }, + { + "name": "gtk2-engines-murrine", + "version": "0.98.2-3build1" + }, + { + "name": "gtk2-engines-pixbuf", + "version": "2.24.33-2ubuntu1" + }, + { + "name": "gvfs", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-backends", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-common", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-daemons", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-fuse", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gvfs-libs", + "version": "1.47.91-1ubuntu1" + }, + { + "name": "gzip", + "version": "1.10-4ubuntu1" + }, + { + "name": "hdparm", + "version": "9.60+ds-1build2" + }, + { + "name": "hostname", + "version": "3.23ubuntu1" + }, + { + "name": "hplip", + "version": "3.21.6+dfsg0-0ubuntu1" + }, + { + "name": "hplip-data", + "version": "3.21.6+dfsg0-0ubuntu1" + }, + { + "name": "httplib2", + "version": "0.18.1" + }, + { + "name": "humanity-icon-theme", + "version": "0.6.15" + }, + { + "name": "hunspell-en-us", + "version": "1:2019.10.06-1" + }, + { + "name": "ibus", + "version": "1.5.25-2build1" + }, + { + "name": "ibus-data", + "version": "1.5.25-2build1" + }, + { + "name": "ibus-gtk", + "version": "1.5.25-2build1" + }, + { + "name": "ibus-gtk3", + "version": "1.5.25-2build1" + }, + { + "name": "ibus-gtk4", + "version": "1.5.25-2build1" + }, + { + "name": "ibus-table", + "version": "1.12.4-1" + }, + { + "name": "idna", + "version": "2.10" + }, + { + "name": "iio-sensor-proxy", + "version": "3.3-0ubuntu3.2" + }, + { + "name": "im-config", + "version": "0.47-1" + }, + { + "name": "importlib-metadata", + "version": "4.0.1" + }, + { + "name": "info", + "version": "6.7.0.dfsg.2-6" + }, + { + "name": "init", + "version": "1.60build1" + }, + { + "name": "init-system-helpers", + "version": "1.60build1" + }, + { + "name": "initramfs-tools", + "version": "0.140ubuntu6" + }, + { + "name": "initramfs-tools-bin", + "version": "0.140ubuntu6" + }, + { + "name": "initramfs-tools-core", + "version": "0.140ubuntu6" + }, + { + "name": "inputattach", + "version": "1:1.7.1-1build1" + }, + { + "name": "install-info", + "version": "6.7.0.dfsg.2-6" + }, + { + "name": "ipp-usb", + "version": "0.9.19-2ubuntu1" + }, + { + "name": "iproute2", + "version": "5.10.0-4ubuntu1" + }, + { + "name": "iptables", + "version": "1.8.7-1ubuntu2" + }, + { + "name": "iputils-ping", + "version": "3:20210202-1" + }, + { + "name": "iputils-tracepath", + "version": "3:20210202-1" + }, + { + "name": "irqbalance", + "version": "1.7.0-1build1" + }, + { + "name": "isc-dhcp-client", + "version": "4.4.1-2.3ubuntu1" + }, + { + "name": "isc-dhcp-common", + "version": "4.4.1-2.3ubuntu1" + }, + { + "name": "iso-codes", + "version": "4.6.0-1" + }, + { + "name": "iw", + "version": "5.9-3" + }, + { + "name": "kbd", + "version": "2.3.0-3ubuntu3" + }, + { + "name": "kerneloops", + "version": "0.12+git20140509-6ubuntu4" + }, + { + "name": "keyboard-configuration", + "version": "1.205ubuntu1" + }, + { + "name": "keyring", + "version": "23.0.1" + }, + { + "name": "klibc-utils", + "version": "2.0.8-6.1ubuntu2" + }, + { + "name": "kmod", + "version": "28-1ubuntu4" + }, + { + "name": "language-pack-en", + "version": "1:21.10+20211008" + }, + { + "name": "language-pack-en-base", + "version": "1:21.10+20211008" + }, + { + "name": "language-pack-gnome-en", + "version": "1:21.10+20211008" + }, + { + "name": "language-pack-gnome-en-base", + "version": "1:21.10+20211008" + }, + { + "name": "language-selector-common", + "version": "0.216" + }, + { + "name": "language-selector-gnome", + "version": "0.216" + }, + { + "name": "launchpadlib", + "version": "1.10.13" + }, + { + "name": "lazr.restfulclient", + "version": "0.14.2" + }, + { + "name": "lazr.uri", + "version": "1.0.5" + }, + { + "name": "less", + "version": "551-2" + }, + { + "name": "libaa1", + "version": "1.4p5-48build1" + }, + { + "name": "libaccountsservice0", + "version": "0.6.55-0ubuntu14" + }, + { + "name": "libacl1", + "version": "2.2.53-10ubuntu2" + }, + { + "name": "libao-common", + "version": "1.2.2+20180113-1.1ubuntu1" + }, + { + "name": "libao4", + "version": "1.2.2+20180113-1.1ubuntu1" + }, + { + "name": "libapparmor1", + "version": "3.0.3-0ubuntu1" + }, + { + "name": "libappstream4", + "version": "0.14.5-1" + }, + { + "name": "libapt-pkg6.0", + "version": "2.3.9" + }, + { + "name": "libarchive13", + "version": "3.4.3-2" + }, + { + "name": "libargon2-1", + "version": "0~20171227-0.2build21.04.0" + }, + { + "name": "libasound2", + "version": "1.2.4-1.1ubuntu3" + }, + { + "name": "libasound2-data", + "version": "1.2.4-1.1ubuntu3" + }, + { + "name": "libasound2-plugins", + "version": "1.2.2-2ubuntu1" + }, + { + "name": "libaspell15", + "version": "0.60.8-3" + }, + { + "name": "libassuan0", + "version": "2.5.5-1" + }, + { + "name": "libasyncns0", + "version": "0.8-6build1" + }, + { + "name": "libatasmart4", + "version": "0.19-5" + }, + { + "name": "libatk-adaptor", + "version": "2.38.0-2" + }, + { + "name": "libatk-bridge2.0-0", + "version": "2.38.0-2" + }, + { + "name": "libatk1.0-0", + "version": "2.36.0-0ubuntu3" + }, + { + "name": "libatk1.0-data", + "version": "2.36.0-0ubuntu3" + }, + { + "name": "libatkmm-1.6-1v5", + "version": "2.28.2-1" + }, + { + "name": "libatm1", + "version": "1:2.5.1-4build1" + }, + { + "name": "libatopology2", + "version": "1.2.4-1.1ubuntu3" + }, + { + "name": "libatspi2.0-0", + "version": "2.42.0-1" + }, + { + "name": "libattr1", + "version": "1:2.4.48-6build2" + }, + { + "name": "libaudit-common", + "version": "1:3.0-2ubuntu2" + }, + { + "name": "libaudit1", + "version": "1:3.0-2ubuntu2" + }, + { + "name": "libavahi-client3", + "version": "0.8-5ubuntu4" + }, + { + "name": "libavahi-common-data", + "version": "0.8-5ubuntu4" + }, + { + "name": "libavahi-common3", + "version": "0.8-5ubuntu4" + }, + { + "name": "libavahi-core7", + "version": "0.8-5ubuntu4" + }, + { + "name": "libavahi-glib1", + "version": "0.8-5ubuntu4" + }, + { + "name": "libavc1394-0", + "version": "0.5.4-5build1" + }, + { + "name": "libayatana-appindicator3-1", + "version": "0.5.5-3" + }, + { + "name": "libayatana-ido3-0.4-0", + "version": "0.8.2-2build1" + }, + { + "name": "libayatana-indicator3-7", + "version": "0.8.4-1build1" + }, + { + "name": "libbabeltrace1", + "version": "1.5.8-1build4" + }, + { + "name": "libblkid1", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "libblockdev-crypto2", + "version": "2.25-2build1" + }, + { + "name": "libblockdev-fs2", + "version": "2.25-2build1" + }, + { + "name": "libblockdev-loop2", + "version": "2.25-2build1" + }, + { + "name": "libblockdev-part-err2", + "version": "2.25-2build1" + }, + { + "name": "libblockdev-part2", + "version": "2.25-2build1" + }, + { + "name": "libblockdev-swap2", + "version": "2.25-2build1" + }, + { + "name": "libblockdev-utils2", + "version": "2.25-2build1" + }, + { + "name": "libblockdev2", + "version": "2.25-2build1" + }, + { + "name": "libbluetooth3", + "version": "5.60-0ubuntu2" + }, + { + "name": "libboost-regex1.74.0", + "version": "1.74.0-8ubuntu6" + }, + { + "name": "libbpf0", + "version": "1:0.4.0-1ubuntu1" + }, + { + "name": "libbrlapi0.8", + "version": "6.3+dfsg-1ubuntu2" + }, + { + "name": "libbrotli1", + "version": "1.0.9-2build3" + }, + { + "name": "libbsd0", + "version": "0.11.3-1ubuntu2" + }, + { + "name": "libbz2-1.0", + "version": "1.0.8-4ubuntu3" + }, + { + "name": "libc-bin", + "version": "2.34-0ubuntu3" + }, + { + "name": "libc6", + "version": "2.34-0ubuntu3" + }, + { + "name": "libc6-dbg", + "version": "2.34-0ubuntu3" + }, + { + "name": "libcaca0", + "version": "0.99.beta19-2.2ubuntu2" + }, + { + "name": "libcairo-gobject-perl", + "version": "1.005-2build2" + }, + { + "name": "libcairo-gobject2", + "version": "1.16.0-5ubuntu1" + }, + { + "name": "libcairo-perl", + "version": "1.109-1" + }, + { + "name": "libcairo-script-interpreter2", + "version": "1.16.0-5ubuntu1" + }, + { + "name": "libcairo2", + "version": "1.16.0-5ubuntu1" + }, + { + "name": "libcairomm-1.0-1v5", + "version": "1.12.2-4build2" + }, + { + "name": "libcamel-1.2-62", + "version": "3.40.4-1" + }, + { + "name": "libcanberra-gtk3-0", + "version": "0.30-7ubuntu2" + }, + { + "name": "libcanberra-gtk3-module", + "version": "0.30-7ubuntu2" + }, + { + "name": "libcanberra-pulse", + "version": "0.30-7ubuntu2" + }, + { + "name": "libcanberra0", + "version": "0.30-7ubuntu2" + }, + { + "name": "libcap-ng0", + "version": "0.7.9-2.2build1" + }, + { + "name": "libcap2", + "version": "1:2.44-1build1" + }, + { + "name": "libcap2-bin", + "version": "1:2.44-1build1" + }, + { + "name": "libcbor0.6", + "version": "0.6.0-0ubuntu3" + }, + { + "name": "libcdio-cdda2", + "version": "10.2+2.0.0-1build2" + }, + { + "name": "libcdio-paranoia2", + "version": "10.2+2.0.0-1build2" + }, + { + "name": "libcdio19", + "version": "2.1.0-2" + }, + { + "name": "libcdparanoia0", + "version": "3.10.2+debian-14build1" + }, + { + "name": "libcheese-gtk25", + "version": "3.38.0-4" + }, + { + "name": "libcheese8", + "version": "3.38.0-4" + }, + { + "name": "libclone-perl", + "version": "0.45-1build1" + }, + { + "name": "libclutter-1.0-0", + "version": "1.26.4+dfsg-2build1" + }, + { + "name": "libclutter-1.0-common", + "version": "1.26.4+dfsg-2build1" + }, + { + "name": "libclutter-gst-3.0-0", + "version": "3.0.27-2build1" + }, + { + "name": "libclutter-gtk-1.0-0", + "version": "1.8.4-4build1" + }, + { + "name": "libcogl-common", + "version": "1.22.8-2build1" + }, + { + "name": "libcogl-pango20", + "version": "1.22.8-2build1" + }, + { + "name": "libcogl-path20", + "version": "1.22.8-2build1" + }, + { + "name": "libcogl20", + "version": "1.22.8-2build1" + }, + { + "name": "libcolord-gtk1", + "version": "0.2.0-0ubuntu2" + }, + { + "name": "libcolord2", + "version": "1.4.5-3build1" + }, + { + "name": "libcolorhug2", + "version": "1.4.5-3build1" + }, + { + "name": "libcom-err2", + "version": "1.46.3-1ubuntu3" + }, + { + "name": "libcrack2", + "version": "2.9.6-3.4build1" + }, + { + "name": "libcrypt1", + "version": "1:4.4.18-4ubuntu1" + }, + { + "name": "libcryptsetup12", + "version": "2:2.3.6-0ubuntu1" + }, + { + "name": "libcue2", + "version": "2.2.1-3build2" + }, + { + "name": "libcups2", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "libcupsfilters1", + "version": "1.28.10-2" + }, + { + "name": "libcupsimage2", + "version": "2.3.3op2-7ubuntu2" + }, + { + "name": "libcurl3-gnutls", + "version": "7.74.0-1.3ubuntu2" + }, + { + "name": "libcurl4", + "version": "7.74.0-1.3ubuntu2" + }, + { + "name": "libdaemon0", + "version": "0.14-7.1ubuntu2" + }, + { + "name": "libdata-dump-perl", + "version": "1.23-1.1" + }, + { + "name": "libdatrie1", + "version": "0.2.13-1ubuntu2" + }, + { + "name": "libdb5.3", + "version": "5.3.28+dfsg1-0.8ubuntu1" + }, + { + "name": "libdbus-1-3", + "version": "1.12.20-2ubuntu2" + }, + { + "name": "libdbus-glib-1-2", + "version": "0.112-1build1" + }, + { + "name": "libdbusmenu-glib4", + "version": "16.04.1+18.10.20180917-0ubuntu7" + }, + { + "name": "libdbusmenu-gtk3-4", + "version": "16.04.1+18.10.20180917-0ubuntu7" + }, + { + "name": "libdconf1", + "version": "0.40.0-1" + }, + { + "name": "libdebconfclient0", + "version": "0.256ubuntu3" + }, + { + "name": "libdebuginfod-common", + "version": "0.185-1build1" + }, + { + "name": "libdebuginfod1", + "version": "0.185-1build1" + }, + { + "name": "libdee-1.0-4", + "version": "1.2.7+17.10.20170616-6ubuntu2" + }, + { + "name": "libdeflate0", + "version": "1.7-2ubuntu2" + }, + { + "name": "libdevmapper1.02.1", + "version": "2:1.02.175-2.1ubuntu3" + }, + { + "name": "libdjvulibre-text", + "version": "3.5.28-2build1" + }, + { + "name": "libdjvulibre21", + "version": "3.5.28-2build1" + }, + { + "name": "libdns-export1110", + "version": "1:9.11.19+dfsg-2.1ubuntu1" + }, + { + "name": "libdotconf0", + "version": "1.3-0.3fakesync1build1" + }, + { + "name": "libdpkg-perl", + "version": "1.20.9ubuntu2" + }, + { + "name": "libdrm-amdgpu1", + "version": "2.4.107-8ubuntu1" + }, + { + "name": "libdrm-common", + "version": "2.4.107-8ubuntu1" + }, + { + "name": "libdrm-intel1", + "version": "2.4.107-8ubuntu1" + }, + { + "name": "libdrm-nouveau2", + "version": "2.4.107-8ubuntu1" + }, + { + "name": "libdrm-radeon1", + "version": "2.4.107-8ubuntu1" + }, + { + "name": "libdrm2", + "version": "2.4.107-8ubuntu1" + }, + { + "name": "libdv4", + "version": "1.0.0-13build1" + }, + { + "name": "libdw1", + "version": "0.185-1build1" + }, + { + "name": "libebackend-1.2-10", + "version": "3.40.4-1" + }, + { + "name": "libebook-1.2-20", + "version": "3.40.4-1" + }, + { + "name": "libebook-contacts-1.2-3", + "version": "3.40.4-1" + }, + { + "name": "libecal-2.0-1", + "version": "3.40.4-1" + }, + { + "name": "libedata-book-1.2-26", + "version": "3.40.4-1" + }, + { + "name": "libedata-cal-2.0-1", + "version": "3.40.4-1" + }, + { + "name": "libedataserver-1.2-26", + "version": "3.40.4-1" + }, + { + "name": "libedataserverui-1.2-3", + "version": "3.40.4-1" + }, + { + "name": "libedit2", + "version": "3.1-20191231-2build1" + }, + { + "name": "libegl-mesa0", + "version": "21.2.2-1ubuntu1" + }, + { + "name": "libegl1", + "version": "1.3.3-1" + }, + { + "name": "libelf1", + "version": "0.185-1build1" + }, + { + "name": "libenchant-2-2", + "version": "2.3.1-1" + }, + { + "name": "libepoxy0", + "version": "1.5.8-1" + }, + { + "name": "libespeak-ng1", + "version": "1.50+dfsg-7build2" + }, + { + "name": "libestr0", + "version": "0.1.10-2.1build2" + }, + { + "name": "libevdev2", + "version": "1.11.0+dfsg-1build1" + }, + { + "name": "libevdocument3-4", + "version": "40.4-2" + }, + { + "name": "libevview3-3", + "version": "40.4-2" + }, + { + "name": "libexif12", + "version": "0.6.22-3" + }, + { + "name": "libexiv2-27", + "version": "0.27.3-3ubuntu4" + }, + { + "name": "libexpat1", + "version": "2.4.1-2" + }, + { + "name": "libext2fs2", + "version": "1.46.3-1ubuntu3" + }, + { + "name": "libextutils-depends-perl", + "version": "0.8000-1" + }, + { + "name": "libextutils-pkgconfig-perl", + "version": "1.16-1.1" + }, + { + "name": "libfastjson4", + "version": "0.99.9-1build1" + }, + { + "name": "libfdisk1", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "libffi8", + "version": "3.4.2-1ubuntu5" + }, + { + "name": "libfftw3-single3", + "version": "3.3.8-2ubuntu7" + }, + { + "name": "libfido2-1", + "version": "1.6.0-2build1" + }, + { + "name": "libfile-basedir-perl", + "version": "0.08-1" + }, + { + "name": "libfile-fcntllock-perl", + "version": "0.22-3build5" + }, + { + "name": "libfile-mimeinfo-perl", + "version": "0.30-1" + }, + { + "name": "libflac8", + "version": "1.3.3-2" + }, + { + "name": "libflashrom1", + "version": "1.2-5" + }, + { + "name": "libfontconfig1", + "version": "2.13.1-4.2ubuntu3" + }, + { + "name": "libfontembed1", + "version": "1.28.10-2" + }, + { + "name": "libfontenc1", + "version": "1:1.1.4-1build2" + }, + { + "name": "libfprint-2-2", + "version": "1:1.90.7+git20210222+tod1-0ubuntu3" + }, + { + "name": "libfreetype6", + "version": "2.10.4+dfsg-1build1" + }, + { + "name": "libfribidi0", + "version": "1.0.8-2ubuntu2" + }, + { + "name": "libftdi1-2", + "version": "1.5-5build1" + }, + { + "name": "libfuse2", + "version": "2.9.9-5ubuntu2" + }, + { + "name": "libfwupd2", + "version": "1.5.11-0ubuntu2" + }, + { + "name": "libfwupdplugin1", + "version": "1.5.11-0ubuntu2" + }, + { + "name": "libgail-common", + "version": "2.24.33-2ubuntu1" + }, + { + "name": "libgail18", + "version": "2.24.33-2ubuntu1" + }, + { + "name": "libgamemode0", + "version": "1.6.1-1" + }, + { + "name": "libgamemodeauto0", + "version": "1.6.1-1" + }, + { + "name": "libgbm1", + "version": "21.2.2-1ubuntu1" + }, + { + "name": "libgcab-1.0-0", + "version": "1.4-3build1" + }, + { + "name": "libgcc-s1", + "version": "11.2.0-7ubuntu2" + }, + { + "name": "libgck-1-0", + "version": "3.40.0-3" + }, + { + "name": "libgcr-base-3-1", + "version": "3.40.0-3" + }, + { + "name": "libgcr-ui-3-1", + "version": "3.40.0-3" + }, + { + "name": "libgcrypt20", + "version": "1.8.7-5ubuntu2" + }, + { + "name": "libgd3", + "version": "2.3.0-2ubuntu1" + }, + { + "name": "libgdata-common", + "version": "0.18.1-1build1" + }, + { + "name": "libgdata22", + "version": "0.18.1-1build1" + }, + { + "name": "libgdbm-compat4", + "version": "1.19-2" + }, + { + "name": "libgdbm6", + "version": "1.19-2" + }, + { + "name": "libgdk-pixbuf-2.0-0", + "version": "2.42.6+dfsg-1build2" + }, + { + "name": "libgdk-pixbuf2.0-bin", + "version": "2.42.6+dfsg-1build2" + }, + { + "name": "libgdk-pixbuf2.0-common", + "version": "2.42.6+dfsg-1build2" + }, + { + "name": "libgdm1", + "version": "41~rc-0ubuntu2" + }, + { + "name": "libgee-0.8-2", + "version": "0.20.4-1build1" + }, + { + "name": "libgeoclue-2-0", + "version": "2.5.7-3ubuntu2" + }, + { + "name": "libgeocode-glib0", + "version": "3.26.2-2build1" + }, + { + "name": "libgexiv2-2", + "version": "0.12.1-1build1" + }, + { + "name": "libgif7", + "version": "5.1.9-2build1" + }, + { + "name": "libgirepository-1.0-1", + "version": "1.68.0-1build2" + }, + { + "name": "libgjs0g", + "version": "1.68.4-1" + }, + { + "name": "libgl1", + "version": "1.3.3-1" + }, + { + "name": "libgl1-mesa-dri", + "version": "21.2.2-1ubuntu1" + }, + { + "name": "libglapi-mesa", + "version": "21.2.2-1ubuntu1" + }, + { + "name": "libgles2", + "version": "1.3.3-1" + }, + { + "name": "libglib-object-introspection-perl", + "version": "0.049-1build1.1" + }, + { + "name": "libglib-perl", + "version": "3:1.329.3-1build1" + }, + { + "name": "libglib2.0-0", + "version": "2.68.4-1ubuntu1" + }, + { + "name": "libglib2.0-bin", + "version": "2.68.4-1ubuntu1" + }, + { + "name": "libglib2.0-data", + "version": "2.68.4-1ubuntu1" + }, + { + "name": "libglibmm-2.4-1v5", + "version": "2.64.2-2build1" + }, + { + "name": "libglu1-mesa", + "version": "9.0.1-1build1" + }, + { + "name": "libglvnd0", + "version": "1.3.3-1" + }, + { + "name": "libglx-mesa0", + "version": "21.2.2-1ubuntu1" + }, + { + "name": "libglx0", + "version": "1.3.3-1" + }, + { + "name": "libgmp10", + "version": "2:6.2.1+dfsg-1ubuntu2" + }, + { + "name": "libgnome-autoar-0-0", + "version": "0.4.0-1" + }, + { + "name": "libgnome-bluetooth13", + "version": "3.34.5-3" + }, + { + "name": "libgnome-desktop-3-19", + "version": "40.4-2ubuntu1" + }, + { + "name": "libgnome-menu-3-0", + "version": "3.36.0-1ubuntu1" + }, + { + "name": "libgnomekbd-common", + "version": "3.26.1-1build1" + }, + { + "name": "libgnomekbd8", + "version": "3.26.1-1build1" + }, + { + "name": "libgnutls30", + "version": "3.7.1-5ubuntu1" + }, + { + "name": "libgoa-1.0-0b", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libgoa-1.0-common", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libgoa-backend-1.0-1", + "version": "3.40.0-1ubuntu1" + }, + { + "name": "libgomp1", + "version": "11.2.0-7ubuntu2" + }, + { + "name": "libgpg-error0", + "version": "1.38-2build1" + }, + { + "name": "libgpgme11", + "version": "1.14.0-1ubuntu4" + }, + { + "name": "libgphoto2-6", + "version": "2.5.27-1" + }, + { + "name": "libgphoto2-l10n", + "version": "2.5.27-1" + }, + { + "name": "libgphoto2-port12", + "version": "2.5.27-1" + }, + { + "name": "libgpm2", + "version": "1.20.7-8build1" + }, + { + "name": "libgraphene-1.0-0", + "version": "1.10.4+dfsg1-1build1" + }, + { + "name": "libgraphite2-3", + "version": "1.3.14-1" + }, + { + "name": "libgs9", + "version": "9.54.0~dfsg1-0ubuntu2" + }, + { + "name": "libgs9-common", + "version": "9.54.0~dfsg1-0ubuntu2" + }, + { + "name": "libgsf-1-114", + "version": "1.14.47-1build1" + }, + { + "name": "libgsf-1-common", + "version": "1.14.47-1build1" + }, + { + "name": "libgsound0", + "version": "1.0.3-2" + }, + { + "name": "libgspell-1-2", + "version": "1.8.4-1build1" + }, + { + "name": "libgspell-1-common", + "version": "1.8.4-1build1" + }, + { + "name": "libgssapi-krb5-2", + "version": "1.18.3-6" + }, + { + "name": "libgssdp-1.2-0", + "version": "1.2.3-2build1" + }, + { + "name": "libgstreamer-gl1.0-0", + "version": "1.18.5-1" + }, + { + "name": "libgstreamer-plugins-base1.0-0", + "version": "1.18.5-1" + }, + { + "name": "libgstreamer-plugins-good1.0-0", + "version": "1.18.5-1ubuntu2" + }, + { + "name": "libgstreamer1.0-0", + "version": "1.18.5-1" + }, + { + "name": "libgtk-3-0", + "version": "3.24.30-1ubuntu1" + }, + { + "name": "libgtk-3-bin", + "version": "3.24.30-1ubuntu1" + }, + { + "name": "libgtk-3-common", + "version": "3.24.30-1ubuntu1" + }, + { + "name": "libgtk-4-1", + "version": "4.4.0+ds1-5" + }, + { + "name": "libgtk-4-bin", + "version": "4.4.0+ds1-5" + }, + { + "name": "libgtk-4-common", + "version": "4.4.0+ds1-5" + }, + { + "name": "libgtk2.0-0", + "version": "2.24.33-2ubuntu1" + }, + { + "name": "libgtk2.0-bin", + "version": "2.24.33-2ubuntu1" + }, + { + "name": "libgtk2.0-common", + "version": "2.24.33-2ubuntu1" + }, + { + "name": "libgtkmm-3.0-1v5", + "version": "3.24.5-1" + }, + { + "name": "libgtksourceview-4-0", + "version": "4.8.2-1" + }, + { + "name": "libgtksourceview-4-common", + "version": "4.8.2-1" + }, + { + "name": "libgtop-2.0-11", + "version": "2.40.0-2build2" + }, + { + "name": "libgtop2-common", + "version": "2.40.0-2build2" + }, + { + "name": "libgudev-1.0-0", + "version": "1:237-2" + }, + { + "name": "libgupnp-1.2-0", + "version": "1.2.7-1" + }, + { + "name": "libgupnp-av-1.0-2", + "version": "0.12.11-3" + }, + { + "name": "libgupnp-dlna-2.0-3", + "version": "0.10.5-4build1" + }, + { + "name": "libgusb2", + "version": "0.3.5-1build1" + }, + { + "name": "libgweather-3-16", + "version": "40.0-3" + }, + { + "name": "libgweather-common", + "version": "40.0-3" + }, + { + "name": "libgxps2", + "version": "0.3.2-1build1" + }, + { + "name": "libhandy-1-0", + "version": "1.2.3-1" + }, + { + "name": "libharfbuzz-icu0", + "version": "2.7.4-1ubuntu1" + }, + { + "name": "libharfbuzz0b", + "version": "2.7.4-1ubuntu1" + }, + { + "name": "libhogweed6", + "version": "3.7.3-1" + }, + { + "name": "libhpmud0", + "version": "3.21.6+dfsg0-0ubuntu1" + }, + { + "name": "libhtml-parser-perl", + "version": "3.76-1" + }, + { + "name": "libhttp-daemon-perl", + "version": "6.12-1" + }, + { + "name": "libhttp-message-perl", + "version": "6.29-1" + }, + { + "name": "libhunspell-1.7-0", + "version": "1.7.0-3" + }, + { + "name": "libhyphen0", + "version": "2.8.8-7" + }, + { + "name": "libibus-1.0-5", + "version": "1.5.25-2build1" + }, + { + "name": "libical3", + "version": "3.0.10-1" + }, + { + "name": "libice6", + "version": "2:1.0.10-1build1" + }, + { + "name": "libicu67", + "version": "67.1-7ubuntu1" + }, + { + "name": "libidn11", + "version": "1.33-3" + }, + { + "name": "libidn2-0", + "version": "2.3.1-1" + }, + { + "name": "libiec61883-0", + "version": "1.2.0-4build2" + }, + { + "name": "libieee1284-3", + "version": "0.2.11-14build1" + }, + { + "name": "libijs-0.35", + "version": "0.35-15build1" + }, + { + "name": "libimagequant0", + "version": "2.12.2-1.1build1" + }, + { + "name": "libimobiledevice6", + "version": "1.3.0-6" + }, + { + "name": "libinih1", + "version": "53-1ubuntu1" + }, + { + "name": "libinput-bin", + "version": "1.18.1-1" + }, + { + "name": "libinput10", + "version": "1.18.1-1" + }, + { + "name": "libio-socket-ssl-perl", + "version": "2.069-1" + }, + { + "name": "libip4tc2", + "version": "1.8.7-1ubuntu2" + }, + { + "name": "libip6tc2", + "version": "1.8.7-1ubuntu2" + }, + { + "name": "libipt2", + "version": "2.0.3-1build1" + }, + { + "name": "libisc-export1105", + "version": "1:9.11.19+dfsg-2.1ubuntu1" + }, + { + "name": "libisl23", + "version": "0.24-1" + }, + { + "name": "libiw30", + "version": "30~pre9-13.1ubuntu3" + }, + { + "name": "libjack-jackd2-0", + "version": "1.9.19~dfsg-2ubuntu1" + }, + { + "name": "libjansson4", + "version": "2.13.1-1.1build1" + }, + { + "name": "libjavascriptcoregtk-4.0-18", + "version": "2.34.0-1ubuntu1" + }, + { + "name": "libjbig0", + "version": "2.1-3.1build1" + }, + { + "name": "libjbig2dec0", + "version": "0.19-3" + }, + { + "name": "libjcat1", + "version": "0.1.3-2build1" + }, + { + "name": "libjpeg-turbo8", + "version": "2.0.6-0ubuntu2" + }, + { + "name": "libjpeg8", + "version": "8c-2ubuntu8" + }, + { + "name": "libjson-c5", + "version": "0.15-2build2" + }, + { + "name": "libjson-glib-1.0-0", + "version": "1.6.2-1" + }, + { + "name": "libjson-glib-1.0-common", + "version": "1.6.2-1" + }, + { + "name": "libk5crypto3", + "version": "1.18.3-6" + }, + { + "name": "libkeyutils1", + "version": "1.6.1-2ubuntu1" + }, + { + "name": "libklibc", + "version": "2.0.8-6.1ubuntu2" + }, + { + "name": "libkmod2", + "version": "28-1ubuntu4" + }, + { + "name": "libkpathsea6", + "version": "2020.20200327.54578-7" + }, + { + "name": "libkrb5-3", + "version": "1.18.3-6" + }, + { + "name": "libkrb5support0", + "version": "1.18.3-6" + }, + { + "name": "libksba8", + "version": "1.5.1-1" + }, + { + "name": "liblcms2-2", + "version": "2.12~rc1-2" + }, + { + "name": "liblcms2-utils", + "version": "2.12~rc1-2" + }, + { + "name": "libldap-2.5-0", + "version": "2.5.6+dfsg-1~exp1ubuntu1" + }, + { + "name": "libldap-common", + "version": "2.5.6+dfsg-1~exp1ubuntu1" + }, + { + "name": "libldb2", + "version": "2:2.2.0-3.1" + }, + { + "name": "libllvm12", + "version": "1:12.0.1-8build1" + }, + { + "name": "liblmdb0", + "version": "0.9.24-1" + }, + { + "name": "liblocale-gettext-perl", + "version": "1.07-4build1" + }, + { + "name": "liblouis-data", + "version": "3.18.0-1" + }, + { + "name": "liblouis20", + "version": "3.18.0-1" + }, + { + "name": "liblouisutdml-bin", + "version": "2.10.0-1" + }, + { + "name": "liblouisutdml-data", + "version": "2.10.0-1" + }, + { + "name": "liblouisutdml9", + "version": "2.10.0-1" + }, + { + "name": "libltdl7", + "version": "2.4.6-15" + }, + { + "name": "liblz4-1", + "version": "1.9.3-2" + }, + { + "name": "liblzma5", + "version": "5.2.5-2" + }, + { + "name": "liblzo2-2", + "version": "2.10-2build1" + }, + { + "name": "libmagic-mgc", + "version": "1:5.39-3" + }, + { + "name": "libmagic1", + "version": "1:5.39-3" + }, + { + "name": "libmanette-0.2-0", + "version": "0.2.6-2build1" + }, + { + "name": "libmaxminddb0", + "version": "1.5.2-1" + }, + { + "name": "libmbim-glib4", + "version": "1.24.8-1" + }, + { + "name": "libmbim-proxy", + "version": "1.24.8-1" + }, + { + "name": "libmd0", + "version": "1.0.3-3build1" + }, + { + "name": "libmediaart-2.0-0", + "version": "1.9.4-3build1" + }, + { + "name": "libmm-glib0", + "version": "1.16.6-2" + }, + { + "name": "libmnl0", + "version": "1.0.4-3" + }, + { + "name": "libmount1", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "libmozjs-78-0", + "version": "78.13.0-1" + }, + { + "name": "libmp3lame0", + "version": "3.100-3build1" + }, + { + "name": "libmpc3", + "version": "1.2.0-1build1" + }, + { + "name": "libmpdec3", + "version": "2.5.1-2build1" + }, + { + "name": "libmpfr6", + "version": "4.1.0-3build1" + }, + { + "name": "libmpg123-0", + "version": "1.28.2-2" + }, + { + "name": "libmtdev1", + "version": "1.1.6-1build3" + }, + { + "name": "libmtp-common", + "version": "1.1.18-1" + }, + { + "name": "libmtp-runtime", + "version": "1.1.18-1" + }, + { + "name": "libmtp9", + "version": "1.1.18-1" + }, + { + "name": "libmutter-8-0", + "version": "40.5-1ubuntu2" + }, + { + "name": "libnautilus-extension1a", + "version": "1:40.2-1ubuntu1" + }, + { + "name": "libncurses6", + "version": "6.2+20201114-2build1" + }, + { + "name": "libncursesw6", + "version": "6.2+20201114-2build1" + }, + { + "name": "libndp0", + "version": "1.8-0ubuntu2" + }, + { + "name": "libnet-dbus-perl", + "version": "1.2.0-1build1" + }, + { + "name": "libnet-http-perl", + "version": "6.20-1" + }, + { + "name": "libnet-ssleay-perl", + "version": "1.88-3ubuntu1" + }, + { + "name": "libnetfilter-conntrack3", + "version": "1.0.8-3" + }, + { + "name": "libnetplan0", + "version": "0.103-0ubuntu7" + }, + { + "name": "libnettle8", + "version": "3.7.3-1" + }, + { + "name": "libnewt0.52", + "version": "0.52.21-4ubuntu7" + }, + { + "name": "libnfnetlink0", + "version": "1.0.1-3build1" + }, + { + "name": "libnfs13", + "version": "4.0.0-1" + }, + { + "name": "libnftnl11", + "version": "1.1.9-1" + }, + { + "name": "libnghttp2-14", + "version": "1.43.0-1" + }, + { + "name": "libnl-3-200", + "version": "3.4.0-1build2" + }, + { + "name": "libnl-genl-3-200", + "version": "3.4.0-1build2" + }, + { + "name": "libnl-route-3-200", + "version": "3.4.0-1build2" + }, + { + "name": "libnm0", + "version": "1.32.12-0ubuntu1" + }, + { + "name": "libnma-common", + "version": "1.8.32-1" + }, + { + "name": "libnma0", + "version": "1.8.32-1" + }, + { + "name": "libnotify-bin", + "version": "0.7.9-3ubuntu3" + }, + { + "name": "libnotify4", + "version": "0.7.9-3ubuntu3" + }, + { + "name": "libnpth0", + "version": "1.6-3" + }, + { + "name": "libnsl2", + "version": "1.3.0-2build1" + }, + { + "name": "libnspr4", + "version": "2:4.32-1" + }, + { + "name": "libnss-mdns", + "version": "0.14.1-2build1" + }, + { + "name": "libnss-systemd", + "version": "248.3-1ubuntu8" + }, + { + "name": "libnss3", + "version": "2:3.68-1ubuntu1" + }, + { + "name": "libntfs-3g883", + "version": "1:2017.3.23AR.3-3ubuntu5" + }, + { + "name": "libnuma1", + "version": "2.0.14-0ubuntu2" + }, + { + "name": "libogg0", + "version": "1.3.5-0ubuntu1" + }, + { + "name": "libopenjp2-7", + "version": "2.3.1-1ubuntu5" + }, + { + "name": "libopenscap8", + "version": "1.2.17-0.1ubuntu5" + }, + { + "name": "libopus0", + "version": "1.3.1-0.1" + }, + { + "name": "liborc-0.4-0", + "version": "1:0.4.32-1" + }, + { + "name": "libp11-kit0", + "version": "0.23.22-1build1" + }, + { + "name": "libpackagekit-glib2-18", + "version": "1.2.2-2ubuntu3" + }, + { + "name": "libpam-cap", + "version": "1:2.44-1build1" + }, + { + "name": "libpam-fprintd", + "version": "1.90.9-1build1" + }, + { + "name": "libpam-gnome-keyring", + "version": "40.0-1ubuntu1" + }, + { + "name": "libpam-modules", + "version": "1.3.1-5ubuntu11" + }, + { + "name": "libpam-modules-bin", + "version": "1.3.1-5ubuntu11" + }, + { + "name": "libpam-pwquality", + "version": "1.4.4-1" + }, + { + "name": "libpam-runtime", + "version": "1.3.1-5ubuntu11" + }, + { + "name": "libpam-sss", + "version": "2.4.1-2ubuntu4" + }, + { + "name": "libpam-systemd", + "version": "248.3-1ubuntu8" + }, + { + "name": "libpam0g", + "version": "1.3.1-5ubuntu11" + }, + { + "name": "libpango-1.0-0", + "version": "1.48.10+ds1-1" + }, + { + "name": "libpangocairo-1.0-0", + "version": "1.48.10+ds1-1" + }, + { + "name": "libpangoft2-1.0-0", + "version": "1.48.10+ds1-1" + }, + { + "name": "libpangomm-1.4-1v5", + "version": "2.46.1-1" + }, + { + "name": "libpangoxft-1.0-0", + "version": "1.48.10+ds1-1" + }, + { + "name": "libpaper-utils", + "version": "1.1.28build1" + }, + { + "name": "libpaper1", + "version": "1.1.28build1" + }, + { + "name": "libparted-fs-resize0", + "version": "3.4-1" + }, + { + "name": "libparted2", + "version": "3.4-1" + }, + { + "name": "libpcap0.8", + "version": "1.10.0-2build1" + }, + { + "name": "libpcaudio0", + "version": "1.1-6build1" + }, + { + "name": "libpci3", + "version": "1:3.7.0-5ubuntu2" + }, + { + "name": "libpciaccess0", + "version": "0.16-1build3" + }, + { + "name": "libpcre2-32-0", + "version": "10.37-0ubuntu2" + }, + { + "name": "libpcre2-8-0", + "version": "10.37-0ubuntu2" + }, + { + "name": "libpcre3", + "version": "2:8.39-13build3" + }, + { + "name": "libpcsclite1", + "version": "1.9.3-2" + }, + { + "name": "libpeas-1.0-0", + "version": "1.30.0-3" + }, + { + "name": "libpeas-common", + "version": "1.30.0-3" + }, + { + "name": "libperl5.32", + "version": "5.32.1-3ubuntu3" + }, + { + "name": "libphonenumber8", + "version": "8.12.16-4build2" + }, + { + "name": "libpipeline1", + "version": "1.5.3-1build1" + }, + { + "name": "libpipewire-0.3-0", + "version": "0.3.32-1" + }, + { + "name": "libpipewire-0.3-common", + "version": "0.3.32-1" + }, + { + "name": "libpipewire-0.3-modules", + "version": "0.3.32-1" + }, + { + "name": "libpixman-1-0", + "version": "0.40.0-1build2" + }, + { + "name": "libpkcs11-helper1", + "version": "1.27-1" + }, + { + "name": "libplist3", + "version": "2.2.0-6build1" + }, + { + "name": "libplymouth5", + "version": "0.9.5git20210406-0ubuntu2" + }, + { + "name": "libpng16-16", + "version": "1.6.37-3build4" + }, + { + "name": "libpolkit-agent-1-0", + "version": "0.105-31" + }, + { + "name": "libpolkit-gobject-1-0", + "version": "0.105-31" + }, + { + "name": "libpoppler-cpp0v5", + "version": "21.06.1-1" + }, + { + "name": "libpoppler-glib8", + "version": "21.06.1-1" + }, + { + "name": "libpoppler111", + "version": "21.06.1-1" + }, + { + "name": "libpopt0", + "version": "1.18-2build2" + }, + { + "name": "libprocps8", + "version": "2:3.3.17-5ubuntu3" + }, + { + "name": "libprotobuf23", + "version": "3.12.4-1ubuntu3" + }, + { + "name": "libproxy1-plugin-gsettings", + "version": "0.4.17-1" + }, + { + "name": "libproxy1-plugin-networkmanager", + "version": "0.4.17-1" + }, + { + "name": "libproxy1v5", + "version": "0.4.17-1" + }, + { + "name": "libpsl5", + "version": "0.21.0-1.2" + }, + { + "name": "libpulse-mainloop-glib0", + "version": "1:15.0+dfsg1-1ubuntu2" + }, + { + "name": "libpulse0", + "version": "1:15.0+dfsg1-1ubuntu2" + }, + { + "name": "libpulsedsp", + "version": "1:15.0+dfsg1-1ubuntu2" + }, + { + "name": "libpwquality-common", + "version": "1.4.4-1" + }, + { + "name": "libpwquality1", + "version": "1.4.4-1" + }, + { + "name": "libpython3-stdlib", + "version": "3.9.4-1build1" + }, + { + "name": "libpython3.9", + "version": "3.9.7-2build1" + }, + { + "name": "libpython3.9-minimal", + "version": "3.9.7-2build1" + }, + { + "name": "libpython3.9-stdlib", + "version": "3.9.7-2build1" + }, + { + "name": "libqmi-glib5", + "version": "1.28.6-1" + }, + { + "name": "libqmi-proxy", + "version": "1.28.6-1" + }, + { + "name": "libqpdf28", + "version": "10.3.2-1" + }, + { + "name": "libraw1394-11", + "version": "2.1.2-2build1" + }, + { + "name": "libreadline8", + "version": "8.1-2" + }, + { + "name": "librest-0.7-0", + "version": "0.8.1-1.1build1" + }, + { + "name": "librsvg2-2", + "version": "2.50.7+dfsg-1" + }, + { + "name": "librsvg2-common", + "version": "2.50.7+dfsg-1" + }, + { + "name": "librtmp1", + "version": "2.4+20151223.gitfa8646d.1-2build3" + }, + { + "name": "librygel-core-2.6-2", + "version": "0.40.1-3ubuntu1" + }, + { + "name": "librygel-db-2.6-2", + "version": "0.40.1-3ubuntu1" + }, + { + "name": "librygel-renderer-2.6-2", + "version": "0.40.1-3ubuntu1" + }, + { + "name": "librygel-server-2.6-2", + "version": "0.40.1-3ubuntu1" + }, + { + "name": "libsamplerate0", + "version": "0.2.1+ds0-1" + }, + { + "name": "libsane-common", + "version": "1.0.32-3ubuntu1" + }, + { + "name": "libsane-hpaio", + "version": "3.21.6+dfsg0-0ubuntu1" + }, + { + "name": "libsane1", + "version": "1.0.32-3ubuntu1" + }, + { + "name": "libsasl2-2", + "version": "2.1.27+dfsg-2.1build1" + }, + { + "name": "libsasl2-modules", + "version": "2.1.27+dfsg-2.1build1" + }, + { + "name": "libsasl2-modules-db", + "version": "2.1.27+dfsg-2.1build1" + }, + { + "name": "libsasl2-modules-gssapi-mit", + "version": "2.1.27+dfsg-2.1build1" + }, + { + "name": "libsbc1", + "version": "1.5-3build1" + }, + { + "name": "libseccomp2", + "version": "2.5.1-1ubuntu1" + }, + { + "name": "libsecret-1-0", + "version": "0.20.4-2" + }, + { + "name": "libsecret-common", + "version": "0.20.4-2" + }, + { + "name": "libselinux1", + "version": "3.1-3build2" + }, + { + "name": "libsemanage-common", + "version": "3.1-1ubuntu2" + }, + { + "name": "libsemanage1", + "version": "3.1-1ubuntu2" + }, + { + "name": "libsensors-config", + "version": "1:3.6.0-7" + }, + { + "name": "libsensors5", + "version": "1:3.6.0-7" + }, + { + "name": "libsepol1", + "version": "3.1-1ubuntu2" + }, + { + "name": "libshout3", + "version": "2.4.5-1build1" + }, + { + "name": "libsigc++-2.0-0v5", + "version": "2.10.4-2ubuntu2" + }, + { + "name": "libslang2", + "version": "2.3.2-5build2" + }, + { + "name": "libsm6", + "version": "2:1.2.3-1build1" + }, + { + "name": "libsmartcols1", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "libsmbclient", + "version": "2:4.13.5+dfsg-2ubuntu2" + }, + { + "name": "libsnapd-glib1", + "version": "1.58-0ubuntu2" + }, + { + "name": "libsndfile1", + "version": "1.0.31-2" + }, + { + "name": "libsnmp-base", + "version": "5.9+dfsg-3ubuntu2" + }, + { + "name": "libsnmp40", + "version": "5.9+dfsg-3ubuntu2" + }, + { + "name": "libsodium23", + "version": "1.0.18-1build1" + }, + { + "name": "libsonic0", + "version": "0.2.0-10" + }, + { + "name": "libsoup-gnome2.4-1", + "version": "2.72.0-3ubuntu3" + }, + { + "name": "libsoup2.4-1", + "version": "2.72.0-3ubuntu3" + }, + { + "name": "libsource-highlight-common", + "version": "3.1.9-3ubuntu1" + }, + { + "name": "libsource-highlight4v5", + "version": "3.1.9-3ubuntu1" + }, + { + "name": "libsoxr0", + "version": "0.1.3-4build1" + }, + { + "name": "libspa-0.2-modules", + "version": "0.3.32-1" + }, + { + "name": "libspectre1", + "version": "0.2.9-1build1" + }, + { + "name": "libspeechd2", + "version": "0.10.2-2build1" + }, + { + "name": "libspeex1", + "version": "1.2~rc1.2-1.1ubuntu1" + }, + { + "name": "libspeexdsp1", + "version": "1.2~rc1.2-1.1ubuntu1" + }, + { + "name": "libsqlite3-0", + "version": "3.35.5-1" + }, + { + "name": "libss2", + "version": "1.46.3-1ubuntu3" + }, + { + "name": "libssh-4", + "version": "0.9.6-1" + }, + { + "name": "libssl1.1", + "version": "1.1.1l-1ubuntu1" + }, + { + "name": "libstartup-notification0", + "version": "0.12-6build1" + }, + { + "name": "libstdc++6", + "version": "11.2.0-7ubuntu2" + }, + { + "name": "libstemmer0d", + "version": "2.1.0-1" + }, + { + "name": "libsynctex2", + "version": "2020.20200327.54578-7" + }, + { + "name": "libsysmetrics1", + "version": "1.6.5" + }, + { + "name": "libsystemd0", + "version": "248.3-1ubuntu8" + }, + { + "name": "libtag1v5", + "version": "1.11.1+dfsg.1-3ubuntu2" + }, + { + "name": "libtag1v5-vanilla", + "version": "1.11.1+dfsg.1-3ubuntu2" + }, + { + "name": "libtalloc2", + "version": "2.3.1-2ubuntu2" + }, + { + "name": "libtasn1-6", + "version": "4.16.0-2" + }, + { + "name": "libtcl8.6", + "version": "8.6.11+dfsg-1" + }, + { + "name": "libtdb1", + "version": "1.4.3-1build1" + }, + { + "name": "libteamdctl0", + "version": "1.31-1build1" + }, + { + "name": "libtevent0", + "version": "0.10.2-1build1" + }, + { + "name": "libtext-charwidth-perl", + "version": "0.04-10build1" + }, + { + "name": "libtext-iconv-perl", + "version": "1.7-7build1" + }, + { + "name": "libthai-data", + "version": "0.1.28-4.1" + }, + { + "name": "libthai0", + "version": "0.1.28-4.1" + }, + { + "name": "libtheora0", + "version": "1.1.1+dfsg.1-15ubuntu2" + }, + { + "name": "libtiff5", + "version": "4.3.0-1" + }, + { + "name": "libtinfo6", + "version": "6.2+20201114-2build1" + }, + { + "name": "libtirpc-common", + "version": "1.3.2-2" + }, + { + "name": "libtirpc3", + "version": "1.3.2-2" + }, + { + "name": "libtotem-plparser-common", + "version": "3.26.6-1" + }, + { + "name": "libtotem-plparser18", + "version": "3.26.6-1" + }, + { + "name": "libtracker-sparql-3.0-0", + "version": "3.1.2-3" + }, + { + "name": "libtry-tiny-perl", + "version": "0.30-1" + }, + { + "name": "libtss2-esys-3.0.2-0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-mu0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-sys1", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-tcti-cmd0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-tcti-device0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-tcti-mssim0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtss2-tcti-swtpm0", + "version": "3.0.3-2ubuntu1" + }, + { + "name": "libtwolame0", + "version": "0.4.0-2build1" + }, + { + "name": "libu2f-udev", + "version": "1.1.10-3build1" + }, + { + "name": "libuchardet0", + "version": "0.0.7-1build1" + }, + { + "name": "libudev1", + "version": "248.3-1ubuntu8" + }, + { + "name": "libudisks2-0", + "version": "2.9.4-1" + }, + { + "name": "libunistring2", + "version": "0.9.10-6" + }, + { + "name": "libunity-protocol-private0", + "version": "7.1.4+19.04.20190319-5" + }, + { + "name": "libunity-scopes-json-def-desktop", + "version": "7.1.4+19.04.20190319-5" + }, + { + "name": "libunity9", + "version": "7.1.4+19.04.20190319-5" + }, + { + "name": "libunwind8", + "version": "1.3.2-2" + }, + { + "name": "libupower-glib3", + "version": "0.99.11-2build1" + }, + { + "name": "liburi-perl", + "version": "5.08-1" + }, + { + "name": "libusb-1.0-0", + "version": "2:1.0.24-3" + }, + { + "name": "libusbmuxd6", + "version": "2.0.2-3build1" + }, + { + "name": "libuuid1", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "libuv1", + "version": "1.40.0-2ubuntu1" + }, + { + "name": "libv4l-0", + "version": "1.20.0-4" + }, + { + "name": "libv4lconvert0", + "version": "1.20.0-4" + }, + { + "name": "libvisual-0.4-0", + "version": "0.4.0-17build1" + }, + { + "name": "libvolume-key1", + "version": "0.3.12-3.1build2" + }, + { + "name": "libvorbis0a", + "version": "1.3.7-1" + }, + { + "name": "libvorbisenc2", + "version": "1.3.7-1" + }, + { + "name": "libvorbisfile3", + "version": "1.3.7-1" + }, + { + "name": "libvpx6", + "version": "1.9.0-1ubuntu1" + }, + { + "name": "libvte-2.91-0", + "version": "0.64.2-1ubuntu1" + }, + { + "name": "libvte-2.91-common", + "version": "0.64.2-1ubuntu1" + }, + { + "name": "libvulkan1", + "version": "1.2.162.0-1build1" + }, + { + "name": "libwacom-bin", + "version": "1.8-2ubuntu2" + }, + { + "name": "libwacom-common", + "version": "1.8-2ubuntu2" + }, + { + "name": "libwacom2", + "version": "1.8-2ubuntu2" + }, + { + "name": "libwavpack1", + "version": "5.4.0-1build1" + }, + { + "name": "libwayland-client0", + "version": "1.19.0-2build1" + }, + { + "name": "libwayland-cursor0", + "version": "1.19.0-2build1" + }, + { + "name": "libwayland-egl1", + "version": "1.19.0-2build1" + }, + { + "name": "libwayland-server0", + "version": "1.19.0-2build1" + }, + { + "name": "libwbclient0", + "version": "2:4.13.5+dfsg-2ubuntu2" + }, + { + "name": "libwebkit2gtk-4.0-37", + "version": "2.34.0-1ubuntu1" + }, + { + "name": "libwebp6", + "version": "0.6.1-2.1" + }, + { + "name": "libwebpdemux2", + "version": "0.6.1-2.1" + }, + { + "name": "libwebpmux3", + "version": "0.6.1-2.1" + }, + { + "name": "libwebrtc-audio-processing1", + "version": "0.3.1-0ubuntu4" + }, + { + "name": "libwhoopsie-preferences0", + "version": "22build1" + }, + { + "name": "libwhoopsie0", + "version": "0.2.76build1" + }, + { + "name": "libwmf0.2-7", + "version": "0.2.8.4-17ubuntu2" + }, + { + "name": "libwmf0.2-7-gtk", + "version": "0.2.8.4-17ubuntu2" + }, + { + "name": "libwnck-3-0", + "version": "40.0-1" + }, + { + "name": "libwnck-3-common", + "version": "40.0-1" + }, + { + "name": "libwoff1", + "version": "1.0.2-1build3" + }, + { + "name": "libwrap0", + "version": "7.6.q-31" + }, + { + "name": "libwww-perl", + "version": "6.53-1" + }, + { + "name": "libx11-6", + "version": "2:1.7.2-1" + }, + { + "name": "libx11-data", + "version": "2:1.7.2-1" + }, + { + "name": "libx11-xcb1", + "version": "2:1.7.2-1" + }, + { + "name": "libxatracker2", + "version": "21.2.2-1ubuntu1" + }, + { + "name": "libxau6", + "version": "1:1.0.9-1build3" + }, + { + "name": "libxaw7", + "version": "2:1.0.13-1.1" + }, + { + "name": "libxcb-dri2-0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-dri3-0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-glx0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-icccm4", + "version": "0.4.1-1.1build1" + }, + { + "name": "libxcb-image0", + "version": "0.4.0-1build2" + }, + { + "name": "libxcb-keysyms1", + "version": "0.4.0-1build2" + }, + { + "name": "libxcb-present0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-randr0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-render-util0", + "version": "0.3.9-1build2" + }, + { + "name": "libxcb-render0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-res0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-shape0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-shm0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-sync1", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-util1", + "version": "0.4.0-1build1" + }, + { + "name": "libxcb-xfixes0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-xkb1", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb-xv0", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcb1", + "version": "1.14-3ubuntu1" + }, + { + "name": "libxcomposite1", + "version": "1:0.4.5-1" + }, + { + "name": "libxcursor1", + "version": "1:1.2.0-2build2" + }, + { + "name": "libxdamage1", + "version": "1:1.1.5-2" + }, + { + "name": "libxdmcp6", + "version": "1:1.1.3-0ubuntu4" + }, + { + "name": "libxext6", + "version": "2:1.3.4-0ubuntu3" + }, + { + "name": "libxfixes3", + "version": "1:5.0.3-2build1" + }, + { + "name": "libxfont2", + "version": "1:2.0.4-1build3" + }, + { + "name": "libxft2", + "version": "2.3.3-0ubuntu4" + }, + { + "name": "libxi6", + "version": "2:1.7.10-1build2" + }, + { + "name": "libxinerama1", + "version": "2:1.1.4-2build2" + }, + { + "name": "libxkbcommon-x11-0", + "version": "1.3.0-1" + }, + { + "name": "libxkbcommon0", + "version": "1.3.0-1" + }, + { + "name": "libxkbfile1", + "version": "1:1.1.0-1build1" + }, + { + "name": "libxkbregistry0", + "version": "1.3.0-1" + }, + { + "name": "libxklavier16", + "version": "5.4-4build1" + }, + { + "name": "libxml-parser-perl", + "version": "2.46-2" + }, + { + "name": "libxml2", + "version": "2.9.12+dfsg-4" + }, + { + "name": "libxmlb1", + "version": "0.1.15-2ubuntu1" + }, + { + "name": "libxmu6", + "version": "2:1.1.3-0ubuntu1" + }, + { + "name": "libxmuu1", + "version": "2:1.1.3-0ubuntu1" + }, + { + "name": "libxpm4", + "version": "1:3.5.12-1" + }, + { + "name": "libxrandr2", + "version": "2:1.5.2-0ubuntu1" + }, + { + "name": "libxrender1", + "version": "1:0.9.10-1build2" + }, + { + "name": "libxres1", + "version": "2:1.2.0-4build1" + }, + { + "name": "libxshmfence1", + "version": "1.3-1build3" + }, + { + "name": "libxslt1.1", + "version": "1.1.34-4" + }, + { + "name": "libxss1", + "version": "1:1.2.3-1" + }, + { + "name": "libxt6", + "version": "1:1.2.0-1" + }, + { + "name": "libxtables12", + "version": "1.8.7-1ubuntu2" + }, + { + "name": "libxtst6", + "version": "2:1.2.3-1build2" + }, + { + "name": "libxv1", + "version": "2:1.0.11-1" + }, + { + "name": "libxvmc1", + "version": "2:1.0.12-2build1" + }, + { + "name": "libxxf86dga1", + "version": "2:1.1.5-0ubuntu2" + }, + { + "name": "libxxf86vm1", + "version": "1:1.1.4-1build1" + }, + { + "name": "libxxhash0", + "version": "0.8.0-2build1" + }, + { + "name": "libyaml-0-2", + "version": "0.2.2-1" + }, + { + "name": "libyelp0", + "version": "40.stable-1build1" + }, + { + "name": "libzstd1", + "version": "1.4.8+dfsg-2.1" + }, + { + "name": "linux-firmware", + "version": "1.201" + }, + { + "name": "linux-generic-hwe-20.04", + "version": "5.13.0.19.30" + }, + { + "name": "linux-headers-5.13.0-19", + "version": "5.13.0-19.19" + }, + { + "name": "linux-headers-5.13.0-19-generic", + "version": "5.13.0-19.19" + }, + { + "name": "linux-headers-generic-hwe-20.04", + "version": "5.13.0.19.30" + }, + { + "name": "linux-image-5.13.0-19-generic", + "version": "5.13.0-19.19" + }, + { + "name": "linux-image-generic-hwe-20.04", + "version": "5.13.0.19.30" + }, + { + "name": "linux-modules-5.13.0-19-generic", + "version": "5.13.0-19.19" + }, + { + "name": "linux-modules-extra-5.13.0-19-generic", + "version": "5.13.0-19.19" + }, + { + "name": "locales", + "version": "2.34-0ubuntu3" + }, + { + "name": "login", + "version": "1:4.8.1-1ubuntu9" + }, + { + "name": "logrotate", + "version": "3.18.0-2ubuntu1" + }, + { + "name": "logsave", + "version": "1.46.3-1ubuntu3" + }, + { + "name": "lsb-base", + "version": "11.1.0ubuntu3" + }, + { + "name": "lsb-release", + "version": "11.1.0ubuntu3" + }, + { + "name": "lshw", + "version": "02.18.85-0.7ubuntu1" + }, + { + "name": "lsof", + "version": "4.93.2+dfsg-1.1" + }, + { + "name": "ltrace", + "version": "0.7.3-6.1ubuntu3" + }, + { + "name": "mailcap", + "version": "3.69ubuntu1" + }, + { + "name": "man-db", + "version": "2.9.4-2" + }, + { + "name": "mawk", + "version": "1.3.4.20200120-2" + }, + { + "name": "media-types", + "version": "4.0.0" + }, + { + "name": "memtest86+", + "version": "5.01-3.1ubuntu5" + }, + { + "name": "mesa-vulkan-drivers", + "version": "21.2.2-1ubuntu1" + }, + { + "name": "mobile-broadband-provider-info", + "version": "20210805-1" + }, + { + "name": "modemmanager", + "version": "1.16.6-2" + }, + { + "name": "mokutil", + "version": "0.4.0-1ubuntu1" + }, + { + "name": "more-itertools", + "version": "4.2.0" + }, + { + "name": "mount", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "mousetweaks", + "version": "3.32.0-3build1" + }, + { + "name": "mscompress", + "version": "0.4-8build1" + }, + { + "name": "mtr-tiny", + "version": "0.94-1build1" + }, + { + "name": "mutter-common", + "version": "40.5-1ubuntu2" + }, + { + "name": "nano", + "version": "5.6.1-1build1" + }, + { + "name": "nautilus", + "version": "1:40.2-1ubuntu1" + }, + { + "name": "nautilus-data", + "version": "1:40.2-1ubuntu1" + }, + { + "name": "nautilus-extension-gnome-terminal", + "version": "3.38.1-1ubuntu2" + }, + { + "name": "nautilus-sendto", + "version": "3.8.6-3.1build1" + }, + { + "name": "nautilus-share", + "version": "0.7.3-2ubuntu4" + }, + { + "name": "ncurses-base", + "version": "6.2+20201114-2build1" + }, + { + "name": "ncurses-bin", + "version": "6.2+20201114-2build1" + }, + { + "name": "netcat-openbsd", + "version": "1.217-3ubuntu1" + }, + { + "name": "netifaces", + "version": "0.10.9" + }, + { + "name": "netplan.io", + "version": "0.103-0ubuntu7" + }, + { + "name": "network-manager", + "version": "1.32.12-0ubuntu1" + }, + { + "name": "network-manager-config-connectivity-ubuntu", + "version": "1.32.12-0ubuntu1" + }, + { + "name": "network-manager-gnome", + "version": "1.24.0-1ubuntu1" + }, + { + "name": "network-manager-openvpn", + "version": "1.8.14-1" + }, + { + "name": "network-manager-openvpn-gnome", + "version": "1.8.14-1" + }, + { + "name": "network-manager-pptp", + "version": "1.2.8-3build1" + }, + { + "name": "network-manager-pptp-gnome", + "version": "1.2.8-3build1" + }, + { + "name": "ntfs-3g", + "version": "1:2017.3.23AR.3-3ubuntu5" + }, + { + "name": "oauthlib", + "version": "3.1.0" + }, + { + "name": "openprinting-ppds", + "version": "20210824-1" + }, + { + "name": "openssh-client", + "version": "1:8.4p1-6ubuntu2" + }, + { + "name": "openssl", + "version": "1.1.1l-1ubuntu1" + }, + { + "name": "openvpn", + "version": "2.5.1-3ubuntu1" + }, + { + "name": "orca", + "version": "40.0-1ubuntu1" + }, + { + "name": "os-prober", + "version": "1.79ubuntu1" + }, + { + "name": "p11-kit", + "version": "0.23.22-1build1" + }, + { + "name": "p11-kit-modules", + "version": "0.23.22-1build1" + }, + { + "name": "packagekit", + "version": "1.2.2-2ubuntu3" + }, + { + "name": "packagekit-tools", + "version": "1.2.2-2ubuntu3" + }, + { + "name": "parted", + "version": "3.4-1" + }, + { + "name": "passwd", + "version": "1:4.8.1-1ubuntu9" + }, + { + "name": "patch", + "version": "2.7.6-7" + }, + { + "name": "pci.ids", + "version": "0.0~2021.08.22-1" + }, + { + "name": "pciutils", + "version": "1:3.7.0-5ubuntu2" + }, + { + "name": "pcmciautils", + "version": "018-13" + }, + { + "name": "perl", + "version": "5.32.1-3ubuntu3" + }, + { + "name": "perl-base", + "version": "5.32.1-3ubuntu3" + }, + { + "name": "perl-modules-5.32", + "version": "5.32.1-3ubuntu3" + }, + { + "name": "perl-openssl-defaults", + "version": "5" + }, + { + "name": "pinentry-curses", + "version": "1.1.1-1" + }, + { + "name": "pinentry-gnome3", + "version": "1.1.1-1" + }, + { + "name": "pipewire", + "version": "0.3.32-1" + }, + { + "name": "pipewire-bin", + "version": "0.3.32-1" + }, + { + "name": "pipewire-media-session", + "version": "0.3.32-1" + }, + { + "name": "pkg-config", + "version": "0.29.2-1ubuntu1" + }, + { + "name": "plymouth", + "version": "0.9.5git20210406-0ubuntu2" + }, + { + "name": "plymouth-label", + "version": "0.9.5git20210406-0ubuntu2" + }, + { + "name": "plymouth-theme-spinner", + "version": "0.9.5git20210406-0ubuntu2" + }, + { + "name": "plymouth-theme-ubuntu-text", + "version": "0.9.5git20210406-0ubuntu2" + }, + { + "name": "policykit-1", + "version": "0.105-31" + }, + { + "name": "poppler-utils", + "version": "21.06.1-1" + }, + { + "name": "power-profiles-daemon", + "version": "0.8.1-1" + }, + { + "name": "ppp", + "version": "2.4.9-1+1ubuntu1" + }, + { + "name": "pptp-linux", + "version": "1.10.0-1build2" + }, + { + "name": "printer-driver-brlaser", + "version": "6-2" + }, + { + "name": "printer-driver-c2esp", + "version": "27-10" + }, + { + "name": "printer-driver-foo2zjs", + "version": "20200505dfsg0-2ubuntu1" + }, + { + "name": "printer-driver-foo2zjs-common", + "version": "20200505dfsg0-2ubuntu1" + }, + { + "name": "printer-driver-hpcups", + "version": "3.21.6+dfsg0-0ubuntu1" + }, + { + "name": "printer-driver-m2300w", + "version": "0.51-15" + }, + { + "name": "printer-driver-min12xxw", + "version": "0.0.9-11build1" + }, + { + "name": "printer-driver-pnm2ppa", + "version": "1.13+nondbs-0ubuntu8" + }, + { + "name": "printer-driver-postscript-hp", + "version": "3.21.6+dfsg0-0ubuntu1" + }, + { + "name": "printer-driver-ptouch", + "version": "1.6-2" + }, + { + "name": "printer-driver-pxljr", + "version": "1.4+repack0-6" + }, + { + "name": "printer-driver-splix", + "version": "2.0.0+svn315-7fakesync1build2" + }, + { + "name": "procps", + "version": "2:3.3.17-5ubuntu3" + }, + { + "name": "psmisc", + "version": "23.4-2build1" + }, + { + "name": "publicsuffix", + "version": "20210108.1309-1" + }, + { + "name": "pulseaudio", + "version": "1:15.0+dfsg1-1ubuntu2" + }, + { + "name": "pulseaudio-module-bluetooth", + "version": "1:15.0+dfsg1-1ubuntu2" + }, + { + "name": "pulseaudio-utils", + "version": "1:15.0+dfsg1-1ubuntu2" + }, + { + "name": "python-apt", + "version": "2.2.1" + }, + { + "name": "python-apt-common", + "version": "2.2.1" + }, + { + "name": "python-debian", + "version": "0.1.39ubuntu1" + }, + { + "name": "python3", + "version": "3.9.4-1build1" + }, + { + "name": "python3-apport", + "version": "2.20.11-0ubuntu70" + }, + { + "name": "python3-apt", + "version": "2.2.1" + }, + { + "name": "python3-aptdaemon", + "version": "1.1.1+bzr982-0ubuntu36" + }, + { + "name": "python3-aptdaemon.gtk3widgets", + "version": "1.1.1+bzr982-0ubuntu36" + }, + { + "name": "python3-blinker", + "version": "1.4+dfsg1-0.3ubuntu2" + }, + { + "name": "python3-brlapi", + "version": "6.3+dfsg-1ubuntu2" + }, + { + "name": "python3-cairo", + "version": "1.16.2-4build2" + }, + { + "name": "python3-cffi-backend", + "version": "1.14.6-1build1" + }, + { + "name": "python3-click", + "version": "7.1.2-1" + }, + { + "name": "python3-commandnotfound", + "version": "21.10.0" + }, + { + "name": "python3-cryptography", + "version": "3.3.2-1" + }, + { + "name": "python3-cups", + "version": "2.0.1-4build1" + }, + { + "name": "python3-cupshelpers", + "version": "1.5.15-0ubuntu2" + }, + { + "name": "python3-dbus", + "version": "1.2.16-5" + }, + { + "name": "python3-debconf", + "version": "1.5.77" + }, + { + "name": "python3-debian", + "version": "0.1.39ubuntu1" + }, + { + "name": "python3-defer", + "version": "1.0.6-2.1" + }, + { + "name": "python3-distro", + "version": "1.5.0-1" + }, + { + "name": "python3-distro-info", + "version": "1.0" + }, + { + "name": "python3-distupgrade", + "version": "1:21.10.8" + }, + { + "name": "python3-gdbm", + "version": "3.9.7-1" + }, + { + "name": "python3-gi", + "version": "3.40.1-1build1" + }, + { + "name": "python3-gi-cairo", + "version": "3.40.1-1build1" + }, + { + "name": "python3-httplib2", + "version": "0.18.1-3ubuntu1" + }, + { + "name": "python3-ibus-1.0", + "version": "1.5.25-2build1" + }, + { + "name": "python3-idna", + "version": "2.10-1" + }, + { + "name": "python3-importlib-metadata", + "version": "4.0.1-1" + }, + { + "name": "python3-jeepney", + "version": "0.7.1-1" + }, + { + "name": "python3-jwt", + "version": "1.7.1-2ubuntu2" + }, + { + "name": "python3-keyring", + "version": "23.0.1-1" + }, + { + "name": "python3-launchpadlib", + "version": "1.10.13-1" + }, + { + "name": "python3-lazr.restfulclient", + "version": "0.14.2-2build1" + }, + { + "name": "python3-lazr.uri", + "version": "1.0.5-1" + }, + { + "name": "python3-ldb", + "version": "2:2.2.0-3.1" + }, + { + "name": "python3-louis", + "version": "3.18.0-1" + }, + { + "name": "python3-macaroonbakery", + "version": "1.3.1-1" + }, + { + "name": "python3-minimal", + "version": "3.9.4-1build1" + }, + { + "name": "python3-more-itertools", + "version": "4.2.0-3" + }, + { + "name": "python3-nacl", + "version": "1.4.0-1build1" + }, + { + "name": "python3-netifaces", + "version": "0.10.9-0.2" + }, + { + "name": "python3-oauthlib", + "version": "3.1.0-2" + }, + { + "name": "python3-pil", + "version": "8.1.2+dfsg-0.3" + }, + { + "name": "python3-pkg-resources", + "version": "52.0.0-4" + }, + { + "name": "python3-problem-report", + "version": "2.20.11-0ubuntu70" + }, + { + "name": "python3-protobuf", + "version": "3.12.4-1ubuntu3" + }, + { + "name": "python3-ptyprocess", + "version": "0.7.0-1" + }, + { + "name": "python3-pyatspi", + "version": "2.38.1-1" + }, + { + "name": "python3-renderpm", + "version": "3.5.66-1" + }, + { + "name": "python3-reportlab", + "version": "3.5.66-1" + }, + { + "name": "python3-reportlab-accel", + "version": "3.5.66-1" + }, + { + "name": "python3-rfc3339", + "version": "1.1-2" + }, + { + "name": "python3-simplejson", + "version": "3.17.2-1" + }, + { + "name": "python3-six", + "version": "1.16.0-2" + }, + { + "name": "python3-software-properties", + "version": "0.99.13" + }, + { + "name": "python3-speechd", + "version": "0.10.2-2build1" + }, + { + "name": "python3-systemd", + "version": "234-3build4" + }, + { + "name": "python3-talloc", + "version": "2.3.1-2ubuntu2" + }, + { + "name": "python3-tz", + "version": "2021.1-1" + }, + { + "name": "python3-update-manager", + "version": "1:21.10.4" + }, + { + "name": "python3-wadllib", + "version": "1.3.5-1" + }, + { + "name": "python3-xkit", + "version": "0.5.0ubuntu4" + }, + { + "name": "python3-yaml", + "version": "5.3.1-5" + }, + { + "name": "python3.9", + "version": "3.9.7-2build1" + }, + { + "name": "python3.9-minimal", + "version": "3.9.7-2build1" + }, + { + "name": "pytz", + "version": "2021.1" + }, + { + "name": "readline-common", + "version": "8.1-2" + }, + { + "name": "reportlab", + "version": "3.5.66" + }, + { + "name": "rfkill", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "rsync", + "version": "3.2.3-4ubuntu1" + }, + { + "name": "rsyslog", + "version": "8.2102.0-2ubuntu2" + }, + { + "name": "rtkit", + "version": "0.13-4" + }, + { + "name": "rygel", + "version": "0.40.1-3ubuntu1" + }, + { + "name": "samba-libs", + "version": "2:4.13.5+dfsg-2ubuntu2" + }, + { + "name": "sane-airscan", + "version": "0.99.26-2ubuntu1" + }, + { + "name": "sane-utils", + "version": "1.0.32-3ubuntu1" + }, + { + "name": "sbsigntool", + "version": "0.9.4-2ubuntu1" + }, + { + "name": "seahorse", + "version": "40.0-2" + }, + { + "name": "sed", + "version": "4.7-1ubuntu1" + }, + { + "name": "sensible-utils", + "version": "0.0.14" + }, + { + "name": "session-migration", + "version": "0.3.5build1" + }, + { + "name": "shared-mime-info", + "version": "2.1-1" + }, + { + "name": "snapd", + "version": "2.53+21.10ubuntu1" + }, + { + "name": "software-properties-common", + "version": "0.99.13" + }, + { + "name": "software-properties-gtk", + "version": "0.99.13" + }, + { + "name": "sound-icons", + "version": "0.1-7" + }, + { + "name": "speech-dispatcher", + "version": "0.10.2-2build1" + }, + { + "name": "speech-dispatcher-audio-plugins", + "version": "0.10.2-2build1" + }, + { + "name": "speech-dispatcher-espeak-ng", + "version": "0.10.2-2build1" + }, + { + "name": "spice-vdagent", + "version": "0.20.0-2build1" + }, + { + "name": "squashfs-tools", + "version": "1:4.4-2ubuntu2" + }, + { + "name": "ssl-cert", + "version": "1.1.0+nmu1" + }, + { + "name": "strace", + "version": "5.13-0ubuntu1" + }, + { + "name": "sudo", + "version": "1.9.5p2-3ubuntu2" + }, + { + "name": "switcheroo-control", + "version": "2.4-3build1" + }, + { + "name": "system-config-printer", + "version": "1.5.15-0ubuntu2" + }, + { + "name": "system-config-printer-common", + "version": "1.5.15-0ubuntu2" + }, + { + "name": "system-config-printer-udev", + "version": "1.5.15-0ubuntu2" + }, + { + "name": "systemd", + "version": "248.3-1ubuntu8" + }, + { + "name": "systemd-sysv", + "version": "248.3-1ubuntu8" + }, + { + "name": "systemd-timesyncd", + "version": "248.3-1ubuntu8" + }, + { + "name": "sysvinit-utils", + "version": "2.96-7ubuntu1" + }, + { + "name": "tar", + "version": "1.34+dfsg-1build1" + }, + { + "name": "tcl", + "version": "8.6.11+1build1" + }, + { + "name": "tcl8.6", + "version": "8.6.11+dfsg-1" + }, + { + "name": "tcpdump", + "version": "4.99.0-2" + }, + { + "name": "telnet", + "version": "0.17-42" + }, + { + "name": "thermald", + "version": "2.4.6-3" + }, + { + "name": "time", + "version": "1.9-0.1" + }, + { + "name": "tpm-udev", + "version": "0.5" + }, + { + "name": "tracker", + "version": "3.1.2-3" + }, + { + "name": "tracker-extract", + "version": "3.1.3-1" + }, + { + "name": "tracker-miner-fs", + "version": "3.1.3-1" + }, + { + "name": "tzdata", + "version": "2021a-2ubuntu1" + }, + { + "name": "ubuntu-advantage-tools", + "version": "27.2" + }, + { + "name": "ubuntu-advantage-tools", + "version": "27.2.2~21.10.1" + }, + { + "name": "ubuntu-desktop", + "version": "1.472" + }, + { + "name": "ubuntu-desktop-minimal", + "version": "1.472" + }, + { + "name": "ubuntu-docs", + "version": "21.10.3" + }, + { + "name": "ubuntu-drivers-common", + "version": "1:0.9.2.2" + }, + { + "name": "ubuntu-minimal", + "version": "1.472" + }, + { + "name": "ubuntu-mono", + "version": "20.10-0ubuntu1" + }, + { + "name": "ubuntu-release-upgrader-core", + "version": "1:21.10.8" + }, + { + "name": "ubuntu-release-upgrader-gtk", + "version": "1:21.10.8" + }, + { + "name": "ubuntu-report", + "version": "1.6.5" + }, + { + "name": "ubuntu-session", + "version": "40.1.1-1ubuntu1" + }, + { + "name": "ubuntu-settings", + "version": "21.10.4" + }, + { + "name": "ubuntu-standard", + "version": "1.472" + }, + { + "name": "ubuntu-wallpapers", + "version": "21.10.1-0ubuntu1" + }, + { + "name": "ubuntu-wallpapers-impish", + "version": "21.10.1-0ubuntu1" + }, + { + "name": "udev", + "version": "248.3-1ubuntu8" + }, + { + "name": "udisks2", + "version": "2.9.4-1" + }, + { + "name": "ufw", + "version": "0.36.1-1" + }, + { + "name": "unattended-upgrades", + "version": "2.8" + }, + { + "name": "unzip", + "version": "6.0-26ubuntu1" + }, + { + "name": "update-manager", + "version": "1:21.10.4" + }, + { + "name": "update-manager-core", + "version": "1:21.10.4" + }, + { + "name": "update-notifier", + "version": "3.192.45" + }, + { + "name": "update-notifier-common", + "version": "3.192.45" + }, + { + "name": "upower", + "version": "0.99.11-2build1" + }, + { + "name": "usb-modeswitch", + "version": "2.6.1-1ubuntu4" + }, + { + "name": "usb-modeswitch-data", + "version": "20191128-3" + }, + { + "name": "usb.ids", + "version": "2021.07.19-1" + }, + { + "name": "usbmuxd", + "version": "1.1.1-2build1" + }, + { + "name": "usbutils", + "version": "1:013-3build1" + }, + { + "name": "usrmerge", + "version": "25ubuntu1" + }, + { + "name": "util-linux", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "uuid-runtime", + "version": "2.36.1-8ubuntu1" + }, + { + "name": "vim-common", + "version": "2:8.2.2434-3ubuntu3" + }, + { + "name": "vim-tiny", + "version": "2:8.2.2434-3ubuntu3" + }, + { + "name": "wadllib", + "version": "1.3.5" + }, + { + "name": "wamerican", + "version": "2019.10.06-1" + }, + { + "name": "wbritish", + "version": "2019.10.06-1" + }, + { + "name": "wget", + "version": "1.21-1ubuntu3" + }, + { + "name": "whiptail", + "version": "0.52.21-4ubuntu7" + }, + { + "name": "whoopsie", + "version": "0.2.76build1" + }, + { + "name": "whoopsie-preferences", + "version": "22build1" + }, + { + "name": "wireless-tools", + "version": "30~pre9-13.1ubuntu3" + }, + { + "name": "wpasupplicant", + "version": "2:2.9.0-21build1" + }, + { + "name": "x11-apps", + "version": "7.7+8" + }, + { + "name": "x11-common", + "version": "1:7.7+22ubuntu2" + }, + { + "name": "x11-session-utils", + "version": "7.7+4build1" + }, + { + "name": "x11-utils", + "version": "7.7+5build1" + }, + { + "name": "x11-xkb-utils", + "version": "7.7+5build3" + }, + { + "name": "x11-xserver-utils", + "version": "7.7+8build1" + }, + { + "name": "xauth", + "version": "1:1.1-1" + }, + { + "name": "xbitmaps", + "version": "1.1.1-2.1" + }, + { + "name": "xbrlapi", + "version": "6.3+dfsg-1ubuntu2" + }, + { + "name": "xdg-dbus-proxy", + "version": "0.1.2-2build1" + }, + { + "name": "xdg-desktop-portal", + "version": "1.8.1-1build1" + }, + { + "name": "xdg-desktop-portal-gtk", + "version": "1.8.0-1build1" + }, + { + "name": "xdg-user-dirs", + "version": "0.17-2ubuntu3" + }, + { + "name": "xdg-user-dirs-gtk", + "version": "0.10-3build1" + }, + { + "name": "xdg-utils", + "version": "1.1.3-2ubuntu2" + }, + { + "name": "xfonts-encodings", + "version": "1:1.0.5-0ubuntu1" + }, + { + "name": "xfonts-scalable", + "version": "1:1.0.3-1.2" + }, + { + "name": "xfonts-utils", + "version": "1:7.7+6build1" + }, + { + "name": "xinit", + "version": "1.4.1-0ubuntu3" + }, + { + "name": "xinput", + "version": "1.6.3-1build1" + }, + { + "name": "xkb-data", + "version": "2.29-2build1" + }, + { + "name": "xorg", + "version": "1:7.7+22ubuntu2" + }, + { + "name": "xserver-common", + "version": "2:1.20.13-1ubuntu1" + }, + { + "name": "xserver-xephyr", + "version": "2:1.20.13-1ubuntu1" + }, + { + "name": "xserver-xorg", + "version": "1:7.7+22ubuntu2" + }, + { + "name": "xserver-xorg-core", + "version": "2:1.20.13-1ubuntu1" + }, + { + "name": "xserver-xorg-input-all", + "version": "1:7.7+22ubuntu2" + }, + { + "name": "xserver-xorg-input-libinput", + "version": "1.1.0-1" + }, + { + "name": "xserver-xorg-input-wacom", + "version": "1:0.39.0-0ubuntu2" + }, + { + "name": "xserver-xorg-legacy", + "version": "2:1.20.13-1ubuntu1" + }, + { + "name": "xserver-xorg-video-all", + "version": "1:7.7+22ubuntu2" + }, + { + "name": "xserver-xorg-video-amdgpu", + "version": "21.0.0-1" + }, + { + "name": "xserver-xorg-video-ati", + "version": "1:19.1.0-2build1" + }, + { + "name": "xserver-xorg-video-fbdev", + "version": "1:0.5.0-1ubuntu3" + }, + { + "name": "xserver-xorg-video-intel", + "version": "2:2.99.917+git20200714-1ubuntu2" + }, + { + "name": "xserver-xorg-video-nouveau", + "version": "1:1.0.17-1build1" + }, + { + "name": "xserver-xorg-video-qxl", + "version": "0.1.5+git20200331-1build1" + }, + { + "name": "xserver-xorg-video-radeon", + "version": "1:19.1.0-2build1" + }, + { + "name": "xserver-xorg-video-vesa", + "version": "1:2.5.0-1build2" + }, + { + "name": "xserver-xorg-video-vmware", + "version": "1:13.3.0-3" + }, + { + "name": "xwayland", + "version": "2:21.1.2-0ubuntu1" + }, + { + "name": "xxd", + "version": "2:8.2.2434-3ubuntu3" + }, + { + "name": "xz-utils", + "version": "5.2.5-2" + }, + { + "name": "yaru-theme-gnome-shell", + "version": "21.10.2" + }, + { + "name": "yaru-theme-gtk", + "version": "21.10.2" + }, + { + "name": "yaru-theme-icon", + "version": "21.10.2" + }, + { + "name": "yaru-theme-sound", + "version": "21.10.2" + }, + { + "name": "yelp", + "version": "40.stable-1build1" + }, + { + "name": "yelp-xsl", + "version": "40.2-2" + }, + { + "name": "zenity", + "version": "3.32.0-7build1" + }, + { + "name": "zenity-common", + "version": "3.32.0-7build1" + }, + { + "name": "zip", + "version": "3.0-12build1" + }, + { + "name": "zlib1g", + "version": "1:1.2.11.dfsg-2ubuntu7" + }, + { + "name": "zstd", + "version": "1.4.8+dfsg-2.1" + } +] \ No newline at end of file diff --git a/cmd/osquery-perf/ubuntu_22.04.tmpl b/cmd/osquery-perf/ubuntu_22.04.tmpl new file mode 100644 index 0000000000..ee1768acce --- /dev/null +++ b/cmd/osquery-perf/ubuntu_22.04.tmpl @@ -0,0 +1,364 @@ +{{ define "enroll" -}} +{ + "enroll_secret": "{{ .EnrollSecret }}", + "host_details": { + "os_version": { + "build": "", + "major": "", + "minor": "", + "name": "Ubuntu 22.4.0", + "patch": "", + "platform": "ubuntu", + "platform_like": "ubuntu", + "version": "Ubuntu 22.4.0" + }, + "osquery_info": { + "build_distro": "22.4.0", + "build_platform": "linux", + "config_hash": "", + "config_valid": "0", + "extensions": "inactive", + "instance_id": "{{ .UUID }}", + "pid": "12947", + "platform_mask": "21", + "start_time": "1580931224", + "uuid": "{{ .UUID }}", + "version": "4.6.0", + "watcher": "12946" + }, + "platform_info": { + "address": "0xff990000", + "date": "12/16/2019 ", + "extra": "MBP114; 196.0.0.0.0; root@xapp160; Mon Dec 16 15:55:18 PST 2019; 196 (B&I); F000_B00; Official Build, Release; Apple LLVM version 5.0 (clang-500.0.68) (based on LLVM 3.3svn)", + "revision": "196 (B&I)", + "size": "8388608", + "vendor": "Apple Inc. ", + "version": "196.0.0.0.0 ", + "volume_size": "1507328" + }, + "system_info": { + "computer_name": "{{ .CachedString "hostname" }}", + "cpu_brand": "Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "cpu_logical_cores": "8", + "cpu_physical_cores": "4", + "cpu_subtype": "Intel x86-64h Haswell", + "cpu_type": "x86_64h", + "hardware_model": "MacBookPro11,4", + "hardware_serial": "D02R835DG8WK", + "hardware_vendor": "Apple Inc.", + "hardware_version": "1.0", + "hostname": "{{ .CachedString "hostname" }}", + "local_hostname": "{{ .CachedString "hostname" }}", + "physical_memory": "17179869184", + "uuid": "{{ .UUID }}" + } + }, + "host_identifier": "{{ .CachedString "hostname" }}", + "platform_type": "16" +} +{{- end }} + +{{ define "fleet_detail_query_network_interface" -}} +[ + { + "point_to_point":"", + "address":"fe80::8cb:112d:ff51:1e5d%en0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"en0", + "mac":"f8:2d:88:93:56:5c", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"", + "address":"192.168.1.3", + "mask":"255.255.255.0", + "broadcast":"192.168.1.255", + "interface":"en0", + "mac":"f5:5a:80:92:52:5b", + "type":"6", + "mtu":"1500", + "metric":"0", + "ipackets":"278493", + "opackets":"206238", + "ibytes":"275799040", + "obytes":"37720064", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582848084" + }, + { + "point_to_point":"127.0.0.1", + "address":"127.0.0.1", + "mask":"255.0.0.0", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"::1", + "address":"::1", + "mask":"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::1%lo0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"lo0", + "mac":"00:00:00:00:00:00", + "type":"24", + "mtu":"16384", + "metric":"0", + "ipackets":"132952", + "opackets":"132952", + "ibytes":"67053568", + "obytes":"67053568", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840871" + }, + { + "point_to_point":"", + "address":"fe80::3a:84ff:fe6b:bf75%awdl0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"awdl0", + "mac":"03:3b:94:5b:be:75", + "type":"6", + "mtu":"1484", + "metric":"0", + "ipackets":"0", + "opackets":"16", + "ibytes":"0", + "obytes":"3072", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582842892" + }, + { + "point_to_point":"", + "address":"fe80::6eaf:9721:3476:b691%utun0", + "mask":"ffff:ffff:ffff:ffff::", + "broadcast":"", + "interface":"utun0", + "mac":"00:00:00:00:00:00", + "type":"1", + "mtu":"2000", + "metric":"0", + "ipackets":"0", + "opackets":"2", + "ibytes":"0", + "obytes":"0", + "ierrors":"0", + "oerrors":"0", + "idrops":"0", + "odrops":"0", + "last_change":"1582840897" + } +] +{{- end }} +{{ define "fleet_detail_query_os_version" -}} +[ + { + "name":"Ubuntu 22.4.0", + "version":"Ubuntu 22.4.0", + "major":"", + "minor":"", + "patch":"", + "build":"", + "platform":"ubuntu", + "platform_like":"ubuntu", + "codename":"" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_flags" -}} +[ + { + "name":"config_refresh", + "value":"{{ printf "%.0f" .ConfigInterval.Seconds }}" + }, + { + "name":"distributed_interval", + "value":"{{ printf "%.0f" .QueryInterval.Seconds }}" + }, + { + "name":"logger_tls_period", + "value":"99999" + } +] +{{- end }} +{{ define "fleet_detail_query_osquery_info" -}} +[ + { + "pid":"11287", + "uuid":"{{ .UUID }}", + "instance_id":"{{ .UUID }}", + "version":"4.1.2", + "config_hash":"b01efbf375ac6767f259ae98751154fef727ce35", + "config_valid":"1", + "extensions":"inactive", + "build_platform":"linux", + "build_distro":"22.4.0", + "start_time":"1582857555", + "watcher":"11286", + "platform_mask":"21" + } +] +{{- end }} +{{ define "fleet_detail_query_system_info" -}} +[ + { + "hostname":"{{ .CachedString "hostname" }}", + "uuid":"4740D59F-699E-5B29-960B-979AAF9BBEEB", + "cpu_type":"x86_64h", + "cpu_subtype":"Intel x86-64h Haswell", + "cpu_brand":"Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz", + "cpu_physical_cores":"4", + "cpu_logical_cores":"8", + "cpu_microcode":"", + "physical_memory":"17179869184", + "hardware_vendor":"Apple Inc.", + "hardware_model":"MacBookPro11,4", + "hardware_version":"1.0", + "hardware_serial":"C02R262BM8LN", + "computer_name":"{{ .CachedString "hostname" }}", + "local_hostname":"{{ .CachedString "hostname" }}" + } +] +{{- end }} +{{ define "fleet_detail_query_uptime" -}} +[ + { + "days":"0", + "hours":"4", + "minutes":"38", + "seconds":"11", + "total_seconds":"16691" + } +] +{{- end }} + +{{ define "fleet_detail_query_users" -}} +[ + {{ range $index, $item := .HostUsersMacOS }} + {{if $index}},{{end}} + { + "uid": "{{ .Uid }}", + "username": "{{ .Username }}", + "type": "{{ .Type }}", + "groupname": "{{ .GroupName }}", + "shell": "{{ .Shell }}" + } + {{- end }} +] +{{- end }} + +{{/* all hosts */}} +{{ define "fleet_label_query_6" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All macOS hosts */}} +{{ define "fleet_label_query_7" -}} +[ + { + "1": "1" + } +] +{{- end }} + +{{/* All Ubuntu hosts */}} +{{ define "fleet_label_query_8" -}} +[] +{{- end }} + +{{/* All CentOS hosts */}} +{{ define "fleet_label_query_9" -}} +[] +{{- end }} + +{{/* All Windows hosts */}} +{{ define "fleet_label_query_10" -}} +[] +{{- end }} + +{{/* All Red Hat hosts */}} +{{ define "fleet_label_query_11" -}} +[] +{{- end }} + +{{/* All Linux distributions */}} +{{ define "fleet_label_query_12" -}} +[] +{{- end }} + +{{ define "fleet_detail_query_software_linux" -}} +[ + {{ range $index, $item := .SoftwareUbuntu2204 }} + {{if $index}},{{end}} + { + "name": "{{ .Name }}", + "version": "{{ .Version }}", + "type": "Application (macOS)", + "bundle_identifier": "{{ .BundleIdentifier }}", + "source": "apps", + {{/* Note that in Go < 1.18, `{{ or (and .LastOpendedAt .LastOpenedAt.Unix) "" }}` won't work as expected because "and" and "or" don't short circuit. This was changed in Go 1.18 */}} + {{if .LastOpenedAt}} + "last_opened_at": "{{ .LastOpenedAt.Unix }}" + {{else}} + "last_opened_at": "-1" + {{end}} + } + {{- end }} +] +{{- end }} diff --git a/cmd/osquery-perf/ubuntu_2204-vulnerable_software.json b/cmd/osquery-perf/ubuntu_2204-vulnerable_software.json new file mode 100644 index 0000000000..678b9deb6c --- /dev/null +++ b/cmd/osquery-perf/ubuntu_2204-vulnerable_software.json @@ -0,0 +1,6762 @@ +[ + { + "name": "branding-ubuntu", + "version": "0.10" + }, + { + "name": "defer", + "version": "1.0.6" + }, + { + "name": "dmz-cursor-theme", + "version": "0.4.5ubuntu1" + }, + { + "name": "grub-gfxpayload-lists", + "version": "0.7" + }, + { + "name": "hicolor-icon-theme", + "version": "0.17-2" + }, + { + "name": "language-selector", + "version": "0.1" + }, + { + "name": "laptop-detect", + "version": "0.16" + }, + { + "name": "libnet-smtp-ssl-perl", + "version": "1.04-1" + }, + { + "name": "libxml-xpathengine-perl", + "version": "0.14-1" + }, + { + "name": "pymacaroons", + "version": "0.13.0" + }, + { + "name": "sound-theme-freedesktop", + "version": "0.8-2ubuntu1" + }, + { + "name": "ubuntu-drivers-common", + "version": "0.0.0" + }, + { + "name": "unattended-upgrades", + "version": "0.1" + }, + { + "name": "aspell-en", + "version": "2018.04.16-0-1" + }, + { + "name": "emacsen-common", + "version": "3.0.4" + }, + { + "name": "fonts-deva-extra", + "version": "3.0-5" + }, + { + "name": "fonts-gujr-extra", + "version": "1.0.1-1" + }, + { + "name": "fonts-guru-extra", + "version": "2.0-5" + }, + { + "name": "fonts-kacst-one", + "version": "5.0+svn11846-10" + }, + { + "name": "fonts-liberation", + "version": "1:1.07.4-11" + }, + { + "name": "fonts-lohit-deva", + "version": "2.95.4-4" + }, + { + "name": "fonts-lohit-gujr", + "version": "2.92.4-4" + }, + { + "name": "fonts-orya-extra", + "version": "2.0-6" + }, + { + "name": "fonts-smc-meera", + "version": "7.0.3-1" + }, + { + "name": "fonts-smc-raghumalayalamsans", + "version": "2.2.1-1" + }, + { + "name": "fonts-smc-suruma", + "version": "3.2.3-1" + }, + { + "name": "fonts-smc-uroob", + "version": "2.0.2-1" + }, + { + "name": "libhtml-form-perl", + "version": "6.07-1" + }, + { + "name": "libhtml-tagset-perl", + "version": "3.20-4" + }, + { + "name": "libhtml-tree-perl", + "version": "5.07-2" + }, + { + "name": "libhttp-date-perl", + "version": "6.05-1" + }, + { + "name": "libhttp-negotiate-perl", + "version": "6.01-1" + }, + { + "name": "libio-stringy-perl", + "version": "2.111-3" + }, + { + "name": "liblwp-mediatypes-perl", + "version": "6.04-1" + }, + { + "name": "libmailtools-perl", + "version": "2.21-1" + }, + { + "name": "libtext-wrapi18n-perl", + "version": "0.06-9" + }, + { + "name": "libwww-robotrules-perl", + "version": "6.02-1" + }, + { + "name": "macaroonbakery", + "version": "1.3.1" + }, + { + "name": "olefile", + "version": "0.46" + }, + { + "name": "osquery", + "version": "5.2.3-1.linux" + }, + { + "name": "policykit-desktop-privileges", + "version": "0.21" + }, + { + "name": "powermgmt-base", + "version": "1.36" + }, + { + "name": "pyRFC3339", + "version": "1.1" + }, + { + "name": "xcursor-themes", + "version": "1.0.6-0ubuntu1" + }, + { + "name": "xfonts-base", + "version": "1:1.0.5" + }, + { + "name": "xml-core", + "version": "0.18+nmu1" + }, + { + "name": "Mako", + "version": "1.1.3" + }, + { + "name": "MarkupSafe", + "version": "2.0.1" + }, + { + "name": "Pillow", + "version": "9.0.1" + }, + { + "name": "PyGObject", + "version": "3.42.0" + }, + { + "name": "PyJWT", + "version": "2.3.0" + }, + { + "name": "PyNaCl", + "version": "1.5.0" + }, + { + "name": "PyYAML", + "version": "5.4.1" + }, + { + "name": "SecretStorage", + "version": "3.3.1" + }, + { + "name": "accountsservice", + "version": "22.07.5-2ubuntu1" + }, + { + "name": "acl", + "version": "2.3.1-1" + }, + { + "name": "acpi-support", + "version": "0.144" + }, + { + "name": "acpid", + "version": "1:2.0.33-1ubuntu1" + }, + { + "name": "adduser", + "version": "3.118ubuntu5" + }, + { + "name": "adwaita-icon-theme", + "version": "41.0-1ubuntu1" + }, + { + "name": "aisleriot", + "version": "1:3.22.22-1" + }, + { + "name": "alsa-base", + "version": "1.0.25+dfsg-0ubuntu7" + }, + { + "name": "alsa-topology-conf", + "version": "1.2.5.1-2" + }, + { + "name": "alsa-ucm-conf", + "version": "1.2.6.3-1ubuntu1" + }, + { + "name": "alsa-utils", + "version": "1.2.6-1ubuntu1" + }, + { + "name": "amd64-microcode", + "version": "3.20191218.1ubuntu2" + }, + { + "name": "anacron", + "version": "2.3-31ubuntu2" + }, + { + "name": "apg", + "version": "2.2.3.dfsg.1-5build2" + }, + { + "name": "apparmor", + "version": "3.0.4-2ubuntu2" + }, + { + "name": "apport", + "version": "2.20.11-0ubuntu82" + }, + { + "name": "apport-gtk", + "version": "2.20.11-0ubuntu82" + }, + { + "name": "apport-symptoms", + "version": "0.24" + }, + { + "name": "appstream", + "version": "0.15.2-2" + }, + { + "name": "apt", + "version": "2.4.5" + }, + { + "name": "apt-config-icons", + "version": "0.15.2-2" + }, + { + "name": "apt-config-icons-hidpi", + "version": "0.15.2-2" + }, + { + "name": "apt-utils", + "version": "2.4.5" + }, + { + "name": "aptdaemon", + "version": "1.1.1+bzr982-0ubuntu39" + }, + { + "name": "aptdaemon-data", + "version": "1.1.1+bzr982-0ubuntu39" + }, + { + "name": "apturl", + "version": "0.5.2ubuntu22" + }, + { + "name": "apturl-common", + "version": "0.5.2ubuntu22" + }, + { + "name": "aspell", + "version": "0.60.8-4build1" + }, + { + "name": "at-spi2-core", + "version": "2.44.0-3" + }, + { + "name": "avahi-autoipd", + "version": "0.8-5ubuntu5" + }, + { + "name": "avahi-daemon", + "version": "0.8-5ubuntu5" + }, + { + "name": "avahi-utils", + "version": "0.8-5ubuntu5" + }, + { + "name": "baobab", + "version": "41.0-2" + }, + { + "name": "base-files", + "version": "12ubuntu4" + }, + { + "name": "base-passwd", + "version": "3.5.52build1" + }, + { + "name": "bash", + "version": "5.1-6ubuntu1" + }, + { + "name": "bash-completion", + "version": "1:2.11-5ubuntu1" + }, + { + "name": "bc", + "version": "1.07.1-3build1" + }, + { + "name": "bcrypt", + "version": "3.2.0" + }, + { + "name": "bind9-dnsutils", + "version": "1:9.18.1-1ubuntu1" + }, + { + "name": "bind9-host", + "version": "1:9.18.1-1ubuntu1" + }, + { + "name": "bind9-libs", + "version": "1:9.18.1-1ubuntu1" + }, + { + "name": "bluez", + "version": "5.64-0ubuntu1" + }, + { + "name": "bluez-cups", + "version": "5.64-0ubuntu1" + }, + { + "name": "bluez-obexd", + "version": "5.64-0ubuntu1" + }, + { + "name": "bolt", + "version": "0.9.2-1" + }, + { + "name": "brltty", + "version": "6.4-4ubuntu2" + }, + { + "name": "bsdextrautils", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "bsdutils", + "version": "1:2.37.2-4ubuntu3" + }, + { + "name": "bubblewrap", + "version": "0.6.1-1" + }, + { + "name": "busybox-initramfs", + "version": "1:1.30.1-7ubuntu3" + }, + { + "name": "busybox-static", + "version": "1:1.30.1-7ubuntu3" + }, + { + "name": "bzip2", + "version": "1.0.8-5build1" + }, + { + "name": "ca-certificates", + "version": "20211016" + }, + { + "name": "certifi", + "version": "2020.6.20" + }, + { + "name": "chardet", + "version": "4.0.0" + }, + { + "name": "cheese", + "version": "41.1-1build1" + }, + { + "name": "cheese-common", + "version": "41.1-1build1" + }, + { + "name": "click", + "version": "8.0.3" + }, + { + "name": "colorama", + "version": "0.4.4" + }, + { + "name": "colord", + "version": "1.4.6-1" + }, + { + "name": "colord-data", + "version": "1.4.6-1" + }, + { + "name": "command-not-found", + "version": "22.04.0" + }, + { + "name": "console-setup", + "version": "1.205ubuntu3" + }, + { + "name": "console-setup-linux", + "version": "1.205ubuntu3" + }, + { + "name": "coreutils", + "version": "8.32-4.1ubuntu1" + }, + { + "name": "cpio", + "version": "2.13+dfsg-7" + }, + { + "name": "cpp", + "version": "4:11.2.0-1ubuntu1" + }, + { + "name": "cpp-11", + "version": "11.2.0-19ubuntu1" + }, + { + "name": "cracklib-runtime", + "version": "2.9.6-3.4build4" + }, + { + "name": "cron", + "version": "3.0pl1-137ubuntu3" + }, + { + "name": "cryptography", + "version": "3.4.8" + }, + { + "name": "cups", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "cups-browsed", + "version": "1.28.15-0ubuntu1" + }, + { + "name": "cups-bsd", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "cups-client", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "cups-common", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "cups-core-drivers", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "cups-daemon", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "cups-filters", + "version": "1.28.15-0ubuntu1" + }, + { + "name": "cups-filters-core-drivers", + "version": "1.28.15-0ubuntu1" + }, + { + "name": "cups-ipp-utils", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "cups-pk-helper", + "version": "0.2.6-1ubuntu5" + }, + { + "name": "cups-ppdc", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "cups-server-common", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "dash", + "version": "0.5.11+git20210903+057cd650a4ed-3build1" + }, + { + "name": "dbus", + "version": "1.12.20-2ubuntu4" + }, + { + "name": "dbus-python", + "version": "1.2.18" + }, + { + "name": "dbus-user-session", + "version": "1.12.20-2ubuntu4" + }, + { + "name": "dc", + "version": "1.07.1-3build1" + }, + { + "name": "dconf-cli", + "version": "0.40.0-3" + }, + { + "name": "dconf-gsettings-backend", + "version": "0.40.0-3" + }, + { + "name": "dconf-service", + "version": "0.40.0-3" + }, + { + "name": "debconf", + "version": "1.5.79ubuntu1" + }, + { + "name": "debconf-i18n", + "version": "1.5.79ubuntu1" + }, + { + "name": "debianutils", + "version": "5.5-1ubuntu2" + }, + { + "name": "deja-dup", + "version": "42.9-1ubuntu2" + }, + { + "name": "desktop-file-utils", + "version": "0.26-1ubuntu3" + }, + { + "name": "dictionaries-common", + "version": "1.28.14" + }, + { + "name": "diffutils", + "version": "1:3.8-0ubuntu2" + }, + { + "name": "dirmngr", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "distro", + "version": "1.7.0" + }, + { + "name": "distro-info", + "version": "1.1build1" + }, + { + "name": "distro-info", + "version": "1.1build1" + }, + { + "name": "distro-info-data", + "version": "0.52" + }, + { + "name": "dmidecode", + "version": "3.3-3" + }, + { + "name": "dmsetup", + "version": "2:1.02.175-2.1ubuntu4" + }, + { + "name": "dns-root-data", + "version": "2021011101" + }, + { + "name": "dnsmasq-base", + "version": "2.86-1.1" + }, + { + "name": "docbook-xml", + "version": "4.5-11" + }, + { + "name": "dosfstools", + "version": "4.2-1build3" + }, + { + "name": "dpkg", + "version": "1.21.1ubuntu2" + }, + { + "name": "duplicity", + "version": "0.8.21" + }, + { + "name": "duplicity", + "version": "0.8.21-1build1" + }, + { + "name": "e2fsprogs", + "version": "1.46.5-2ubuntu1" + }, + { + "name": "ed", + "version": "1.18-1" + }, + { + "name": "efibootmgr", + "version": "17-1ubuntu2" + }, + { + "name": "eject", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "enchant-2", + "version": "2.3.2-1ubuntu2" + }, + { + "name": "eog", + "version": "42.0-1" + }, + { + "name": "espeak-ng-data", + "version": "1.50+dfsg-10" + }, + { + "name": "evince", + "version": "42.1-3" + }, + { + "name": "evince-common", + "version": "42.1-3" + }, + { + "name": "evolution-data-server", + "version": "3.44.0-2" + }, + { + "name": "evolution-data-server-common", + "version": "3.44.0-2" + }, + { + "name": "fasteners", + "version": "0.14.1" + }, + { + "name": "fdisk", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "file", + "version": "1:5.41-3" + }, + { + "name": "file-roller", + "version": "3.42.0-1" + }, + { + "name": "findutils", + "version": "4.8.0-1ubuntu3" + }, + { + "name": "firmware-sof-signed", + "version": "2.0-1ubuntu2" + }, + { + "name": "fontconfig", + "version": "2.13.1-4.2ubuntu5" + }, + { + "name": "fontconfig-config", + "version": "2.13.1-4.2ubuntu5" + }, + { + "name": "fonts-beng", + "version": "2:1.3" + }, + { + "name": "fonts-beng-extra", + "version": "3.2.1-1" + }, + { + "name": "fonts-dejavu-core", + "version": "2.37-2build1" + }, + { + "name": "fonts-deva", + "version": "2:1.3" + }, + { + "name": "fonts-droid-fallback", + "version": "1:6.0.1r16-1.1build1" + }, + { + "name": "fonts-freefont-ttf", + "version": "20120503-10build1" + }, + { + "name": "fonts-gargi", + "version": "2.0-5" + }, + { + "name": "fonts-gubbi", + "version": "1.3-5build1" + }, + { + "name": "fonts-gujr", + "version": "2:1.4" + }, + { + "name": "fonts-guru", + "version": "2:1.3" + }, + { + "name": "fonts-indic", + "version": "2:1.4" + }, + { + "name": "fonts-kacst", + "version": "2.01+mry-15" + }, + { + "name": "fonts-kalapi", + "version": "1.0-4" + }, + { + "name": "fonts-khmeros-core", + "version": "5.0-9ubuntu1" + }, + { + "name": "fonts-knda", + "version": "2:1.3" + }, + { + "name": "fonts-lao", + "version": "0.0.20060226-10ubuntu2" + }, + { + "name": "fonts-liberation2", + "version": "2.1.5-1" + }, + { + "name": "fonts-lklug-sinhala", + "version": "0.6-4" + }, + { + "name": "fonts-lohit-beng-assamese", + "version": "2.91.5-2" + }, + { + "name": "fonts-lohit-beng-bengali", + "version": "2.91.5-2" + }, + { + "name": "fonts-lohit-guru", + "version": "2.91.2-2build1" + }, + { + "name": "fonts-lohit-knda", + "version": "2.5.4-3" + }, + { + "name": "fonts-lohit-mlym", + "version": "2.92.2-2" + }, + { + "name": "fonts-lohit-orya", + "version": "2.91.2-2" + }, + { + "name": "fonts-lohit-taml", + "version": "2.91.3-2" + }, + { + "name": "fonts-lohit-taml-classical", + "version": "2.5.4-2" + }, + { + "name": "fonts-lohit-telu", + "version": "2.5.5-2build1" + }, + { + "name": "fonts-mlym", + "version": "2:1.3" + }, + { + "name": "fonts-nakula", + "version": "1.0-4" + }, + { + "name": "fonts-navilu", + "version": "1.2-3" + }, + { + "name": "fonts-noto-cjk", + "version": "1:20220127+repack1-1" + }, + { + "name": "fonts-noto-color-emoji", + "version": "2.034-1" + }, + { + "name": "fonts-noto-mono", + "version": "20201225-1build1" + }, + { + "name": "fonts-opensymbol", + "version": "2:102.12+LibO7.3.2-0ubuntu2" + }, + { + "name": "fonts-orya", + "version": "2:1.3" + }, + { + "name": "fonts-pagul", + "version": "1.0-8" + }, + { + "name": "fonts-sahadeva", + "version": "1.0-5" + }, + { + "name": "fonts-samyak-deva", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-gujr", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-mlym", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-samyak-taml", + "version": "1.2.2-5build1" + }, + { + "name": "fonts-sarai", + "version": "1.0-3" + }, + { + "name": "fonts-sil-abyssinica", + "version": "2.100-3" + }, + { + "name": "fonts-sil-padauk", + "version": "5.000-3" + }, + { + "name": "fonts-smc", + "version": "1:7.2" + }, + { + "name": "fonts-smc-anjalioldlipi", + "version": "7.1.2-2" + }, + { + "name": "fonts-smc-chilanka", + "version": "1.540-1" + }, + { + "name": "fonts-smc-dyuthi", + "version": "3.0.2-2" + }, + { + "name": "fonts-smc-gayathri", + "version": "1.110-2-1" + }, + { + "name": "fonts-smc-karumbi", + "version": "1.1.2-2" + }, + { + "name": "fonts-smc-keraleeyam", + "version": "3.0.2-2" + }, + { + "name": "fonts-smc-manjari", + "version": "2.000-3" + }, + { + "name": "fonts-smc-rachana", + "version": "7.0.2-1build1" + }, + { + "name": "fonts-taml", + "version": "2:1.4" + }, + { + "name": "fonts-telu", + "version": "2:1.3" + }, + { + "name": "fonts-telu-extra", + "version": "2.0-5" + }, + { + "name": "fonts-teluguvijayam", + "version": "2.1-1" + }, + { + "name": "fonts-thai-tlwg", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tibetan-machine", + "version": "1.901b-6" + }, + { + "name": "fonts-tlwg-garuda", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-garuda-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-kinnari", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-kinnari-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-laksaman", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-laksaman-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-loma", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-loma-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-mono", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-mono-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-norasi", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-norasi-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-purisa", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-purisa-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-sawasdee", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-sawasdee-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-typewriter", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-typewriter-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-typist", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-typist-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-typo", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-typo-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-umpush", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-umpush-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-waree", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-tlwg-waree-ttf", + "version": "1:0.7.3-1" + }, + { + "name": "fonts-ubuntu", + "version": "0.83-6ubuntu1" + }, + { + "name": "fonts-urw-base35", + "version": "20200910-1" + }, + { + "name": "fonts-yrsa-rasa", + "version": "2.005-1" + }, + { + "name": "foomatic-db-compressed-ppds", + "version": "20220223-0ubuntu1" + }, + { + "name": "fprintd", + "version": "1.94.2-1" + }, + { + "name": "friendly-recovery", + "version": "0.2.42" + }, + { + "name": "ftp", + "version": "20210827-4build1" + }, + { + "name": "fuse3", + "version": "3.10.5-1build1" + }, + { + "name": "future", + "version": "0.18.2" + }, + { + "name": "fwupd", + "version": "1.7.5-3" + }, + { + "name": "fwupd-signed", + "version": "1.44+1.2-3" + }, + { + "name": "gamemode", + "version": "1.6.1-1build2" + }, + { + "name": "gamemode-daemon", + "version": "1.6.1-1build2" + }, + { + "name": "gcc-11-base", + "version": "11.2.0-19ubuntu1" + }, + { + "name": "gcc-12-base", + "version": "12-20220319-1ubuntu1" + }, + { + "name": "gcr", + "version": "3.40.0-4" + }, + { + "name": "gdb", + "version": "12.0.90-0ubuntu1" + }, + { + "name": "gdisk", + "version": "1.0.8-4build1" + }, + { + "name": "gdm3", + "version": "42.0-1ubuntu6" + }, + { + "name": "gedit", + "version": "41.0-3" + }, + { + "name": "gedit-common", + "version": "41.0-3" + }, + { + "name": "genisoimage", + "version": "9:1.1.11-3.2ubuntu1" + }, + { + "name": "geoclue-2.0", + "version": "2.5.7-3ubuntu3" + }, + { + "name": "gettext-base", + "version": "0.21-4ubuntu4" + }, + { + "name": "ghostscript", + "version": "9.55.0~dfsg1-0ubuntu5" + }, + { + "name": "ghostscript-x", + "version": "9.55.0~dfsg1-0ubuntu5" + }, + { + "name": "gir1.2-accountsservice-1.0", + "version": "22.07.5-2ubuntu1" + }, + { + "name": "gir1.2-adw-1", + "version": "1.1.0-1ubuntu2" + }, + { + "name": "gir1.2-atk-1.0", + "version": "2.36.0-3build1" + }, + { + "name": "gir1.2-atspi-2.0", + "version": "2.44.0-3" + }, + { + "name": "gir1.2-dbusmenu-glib-0.4", + "version": "16.04.1+18.10.20180917-0ubuntu8" + }, + { + "name": "gir1.2-dee-1.0", + "version": "1.2.7+17.10.20170616-6ubuntu4" + }, + { + "name": "gir1.2-freedesktop", + "version": "1.72.0-1" + }, + { + "name": "gir1.2-gck-1", + "version": "3.40.0-4" + }, + { + "name": "gir1.2-gcr-3", + "version": "3.40.0-4" + }, + { + "name": "gir1.2-gdesktopenums-3.0", + "version": "42.0-1ubuntu1" + }, + { + "name": "gir1.2-gdkpixbuf-2.0", + "version": "2.42.8+dfsg-1" + }, + { + "name": "gir1.2-gdm-1.0", + "version": "42.0-1ubuntu6" + }, + { + "name": "gir1.2-geoclue-2.0", + "version": "2.5.7-3ubuntu3" + }, + { + "name": "gir1.2-glib-2.0", + "version": "1.72.0-1" + }, + { + "name": "gir1.2-gmenu-3.0", + "version": "3.36.0-1ubuntu3" + }, + { + "name": "gir1.2-gnomebluetooth-3.0", + "version": "42.0-5" + }, + { + "name": "gir1.2-gnomedesktop-3.0", + "version": "42.0-1ubuntu1" + }, + { + "name": "gir1.2-goa-1.0", + "version": "3.44.0-1ubuntu1" + }, + { + "name": "gir1.2-graphene-1.0", + "version": "1.10.8-1" + }, + { + "name": "gir1.2-gst-plugins-base-1.0", + "version": "1.20.1-1" + }, + { + "name": "gir1.2-gstreamer-1.0", + "version": "1.20.1-1" + }, + { + "name": "gir1.2-gtk-3.0", + "version": "3.24.33-1ubuntu1" + }, + { + "name": "gir1.2-gtk-4.0", + "version": "4.6.2+ds-1ubuntu2" + }, + { + "name": "gir1.2-gtksource-4", + "version": "4.8.3-1" + }, + { + "name": "gir1.2-gudev-1.0", + "version": "1:237-2build1" + }, + { + "name": "gir1.2-gweather-3.0", + "version": "40.0-5build1" + }, + { + "name": "gir1.2-handy-1", + "version": "1.6.1-1" + }, + { + "name": "gir1.2-harfbuzz-0.0", + "version": "2.7.4-1ubuntu3" + }, + { + "name": "gir1.2-ibus-1.0", + "version": "1.5.26-4" + }, + { + "name": "gir1.2-javascriptcoregtk-4.0", + "version": "2.36.0-2ubuntu1" + }, + { + "name": "gir1.2-json-1.0", + "version": "1.6.6-1build1" + }, + { + "name": "gir1.2-mutter-10", + "version": "42.0-3ubuntu2" + }, + { + "name": "gir1.2-nm-1.0", + "version": "1.36.4-2ubuntu1" + }, + { + "name": "gir1.2-nma-1.0", + "version": "1.8.34-1ubuntu1" + }, + { + "name": "gir1.2-notify-0.7", + "version": "0.7.9-3ubuntu5" + }, + { + "name": "gir1.2-packagekitglib-1.0", + "version": "1.2.5-2ubuntu2" + }, + { + "name": "gir1.2-pango-1.0", + "version": "1.50.6+ds-2" + }, + { + "name": "gir1.2-peas-1.0", + "version": "1.32.0-1" + }, + { + "name": "gir1.2-polkit-1.0", + "version": "0.105-33" + }, + { + "name": "gir1.2-rb-3.0", + "version": "3.4.4-5ubuntu1" + }, + { + "name": "gir1.2-rsvg-2.0", + "version": "2.52.5+dfsg-3" + }, + { + "name": "gir1.2-secret-1", + "version": "0.20.5-2" + }, + { + "name": "gir1.2-snapd-1", + "version": "1.60-0ubuntu1" + }, + { + "name": "gir1.2-soup-2.4", + "version": "2.74.2-3" + }, + { + "name": "gir1.2-totem-1.0", + "version": "42.0-1ubuntu1" + }, + { + "name": "gir1.2-totemplparser-1.0", + "version": "3.26.6-1build1" + }, + { + "name": "gir1.2-udisks-2.0", + "version": "2.9.4-1ubuntu2" + }, + { + "name": "gir1.2-unity-7.0", + "version": "7.1.4+19.04.20190319-6build1" + }, + { + "name": "gir1.2-upowerglib-1.0", + "version": "0.99.17-1" + }, + { + "name": "gir1.2-vte-2.91", + "version": "0.68.0-1" + }, + { + "name": "gir1.2-webkit2-4.0", + "version": "2.36.0-2ubuntu1" + }, + { + "name": "gir1.2-wnck-3.0", + "version": "40.1-1" + }, + { + "name": "gjs", + "version": "1.72.0-1" + }, + { + "name": "gkbd-capplet", + "version": "3.26.1-2" + }, + { + "name": "glib-networking", + "version": "2.72.0-1" + }, + { + "name": "glib-networking-common", + "version": "2.72.0-1" + }, + { + "name": "glib-networking-services", + "version": "2.72.0-1" + }, + { + "name": "gnome-accessibility-themes", + "version": "3.28-1ubuntu3" + }, + { + "name": "gnome-bluetooth", + "version": "3.34.5-8" + }, + { + "name": "gnome-bluetooth-3-common", + "version": "42.0-5" + }, + { + "name": "gnome-bluetooth-common", + "version": "3.34.5-8" + }, + { + "name": "gnome-calculator", + "version": "1:41.1-2ubuntu2" + }, + { + "name": "gnome-calendar", + "version": "41.2-3" + }, + { + "name": "gnome-characters", + "version": "41.0-4" + }, + { + "name": "gnome-control-center", + "version": "1:41.4-1ubuntu12" + }, + { + "name": "gnome-control-center-data", + "version": "1:41.4-1ubuntu12" + }, + { + "name": "gnome-control-center-faces", + "version": "1:41.4-1ubuntu12" + }, + { + "name": "gnome-desktop3-data", + "version": "42.0-1ubuntu1" + }, + { + "name": "gnome-disk-utility", + "version": "42.0-1ubuntu1" + }, + { + "name": "gnome-font-viewer", + "version": "41.0-2" + }, + { + "name": "gnome-initial-setup", + "version": "42.0.1-1ubuntu2" + }, + { + "name": "gnome-keyring", + "version": "40.0-3ubuntu2" + }, + { + "name": "gnome-keyring-pkcs11", + "version": "40.0-3ubuntu2" + }, + { + "name": "gnome-logs", + "version": "42.0-1" + }, + { + "name": "gnome-mahjongg", + "version": "1:3.38.3-2" + }, + { + "name": "gnome-menus", + "version": "3.36.0-1ubuntu3" + }, + { + "name": "gnome-mines", + "version": "1:40.1-1" + }, + { + "name": "gnome-online-accounts", + "version": "3.44.0-1ubuntu1" + }, + { + "name": "gnome-power-manager", + "version": "3.32.0-2build2" + }, + { + "name": "gnome-remote-desktop", + "version": "42.0-4ubuntu1" + }, + { + "name": "gnome-session-bin", + "version": "42.0-1ubuntu2" + }, + { + "name": "gnome-session-canberra", + "version": "0.30-10ubuntu1" + }, + { + "name": "gnome-session-common", + "version": "42.0-1ubuntu2" + }, + { + "name": "gnome-settings-daemon", + "version": "42.1-1ubuntu2" + }, + { + "name": "gnome-settings-daemon-common", + "version": "42.1-1ubuntu2" + }, + { + "name": "gnome-shell", + "version": "42.0-2ubuntu1" + }, + { + "name": "gnome-shell-common", + "version": "42.0-2ubuntu1" + }, + { + "name": "gnome-shell-extension-appindicator", + "version": "42-2~fakesync1" + }, + { + "name": "gnome-shell-extension-desktop-icons-ng", + "version": "43-2" + }, + { + "name": "gnome-shell-extension-ubuntu-dock", + "version": "72~ubuntu5" + }, + { + "name": "gnome-startup-applications", + "version": "42.0-1ubuntu2" + }, + { + "name": "gnome-sudoku", + "version": "1:42.0-1" + }, + { + "name": "gnome-system-monitor", + "version": "42.0-1" + }, + { + "name": "gnome-terminal", + "version": "3.44.0-1ubuntu1" + }, + { + "name": "gnome-terminal-data", + "version": "3.44.0-1ubuntu1" + }, + { + "name": "gnome-themes-extra", + "version": "3.28-1ubuntu3" + }, + { + "name": "gnome-themes-extra-data", + "version": "3.28-1ubuntu3" + }, + { + "name": "gnome-todo", + "version": "3.28.1-6ubuntu1" + }, + { + "name": "gnome-todo-common", + "version": "3.28.1-6ubuntu1" + }, + { + "name": "gnome-user-docs", + "version": "41.5-1ubuntu2" + }, + { + "name": "gnome-video-effects", + "version": "0.5.0-1ubuntu1" + }, + { + "name": "gnupg", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gnupg-l10n", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gnupg-utils", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gpg", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gpg-agent", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gpg-wks-client", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gpg-wks-server", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gpgconf", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gpgsm", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "gpgv", + "version": "2.2.27-3ubuntu2" + }, + { + "name": "grep", + "version": "3.7-1build1" + }, + { + "name": "grilo-plugins-0.3-base", + "version": "0.3.14-1ubuntu2" + }, + { + "name": "groff-base", + "version": "1.22.4-8build1" + }, + { + "name": "grub-common", + "version": "2.06-2ubuntu7" + }, + { + "name": "grub-efi-amd64-bin", + "version": "2.06-2ubuntu7" + }, + { + "name": "grub-efi-amd64-signed", + "version": "1.180+2.06-2ubuntu7" + }, + { + "name": "grub-pc", + "version": "2.06-2ubuntu7" + }, + { + "name": "grub-pc-bin", + "version": "2.06-2ubuntu7" + }, + { + "name": "grub2-common", + "version": "2.06-2ubuntu7" + }, + { + "name": "gsettings-desktop-schemas", + "version": "42.0-1ubuntu1" + }, + { + "name": "gsettings-ubuntu-schemas", + "version": "0.0.7+21.10.20210712-0ubuntu2" + }, + { + "name": "gstreamer1.0-alsa", + "version": "1.20.1-1" + }, + { + "name": "gstreamer1.0-clutter-3.0", + "version": "3.0.27-2build2" + }, + { + "name": "gstreamer1.0-gl", + "version": "1.20.1-1" + }, + { + "name": "gstreamer1.0-gtk3", + "version": "1.20.1-1ubuntu1" + }, + { + "name": "gstreamer1.0-packagekit", + "version": "1.2.5-2ubuntu2" + }, + { + "name": "gstreamer1.0-pipewire", + "version": "0.3.48-1ubuntu1" + }, + { + "name": "gstreamer1.0-plugins-base", + "version": "1.20.1-1" + }, + { + "name": "gstreamer1.0-plugins-base-apps", + "version": "1.20.1-1" + }, + { + "name": "gstreamer1.0-plugins-good", + "version": "1.20.1-1ubuntu1" + }, + { + "name": "gstreamer1.0-pulseaudio", + "version": "1.20.1-1ubuntu1" + }, + { + "name": "gstreamer1.0-tools", + "version": "1.20.1-1" + }, + { + "name": "gstreamer1.0-x", + "version": "1.20.1-1" + }, + { + "name": "gtk-update-icon-cache", + "version": "3.24.33-1ubuntu1" + }, + { + "name": "gtk2-engines-murrine", + "version": "0.98.2-3build2" + }, + { + "name": "gtk2-engines-pixbuf", + "version": "2.24.33-2ubuntu2" + }, + { + "name": "guile-2.2-libs", + "version": "2.2.7+1-6build2" + }, + { + "name": "gvfs", + "version": "1.48.1-4" + }, + { + "name": "gvfs-backends", + "version": "1.48.1-4" + }, + { + "name": "gvfs-common", + "version": "1.48.1-4" + }, + { + "name": "gvfs-daemons", + "version": "1.48.1-4" + }, + { + "name": "gvfs-fuse", + "version": "1.48.1-4" + }, + { + "name": "gvfs-libs", + "version": "1.48.1-4" + }, + { + "name": "gzip", + "version": "1.10-4ubuntu4" + }, + { + "name": "hdparm", + "version": "9.60+ds-1build3" + }, + { + "name": "hostname", + "version": "3.23ubuntu2" + }, + { + "name": "hplip", + "version": "3.21.12+dfsg0-1" + }, + { + "name": "hplip-data", + "version": "3.21.12+dfsg0-1" + }, + { + "name": "httplib2", + "version": "0.20.2" + }, + { + "name": "humanity-icon-theme", + "version": "0.6.16" + }, + { + "name": "hunspell-en-us", + "version": "1:2020.12.07-2" + }, + { + "name": "hyphen-en-us", + "version": "2.8.8-7build2" + }, + { + "name": "ibus", + "version": "1.5.26-4" + }, + { + "name": "ibus-data", + "version": "1.5.26-4" + }, + { + "name": "ibus-gtk", + "version": "1.5.26-4" + }, + { + "name": "ibus-gtk3", + "version": "1.5.26-4" + }, + { + "name": "ibus-gtk4", + "version": "1.5.26-4" + }, + { + "name": "ibus-table", + "version": "1.16.7-1" + }, + { + "name": "idna", + "version": "3.3" + }, + { + "name": "iio-sensor-proxy", + "version": "3.3-0ubuntu6" + }, + { + "name": "im-config", + "version": "0.50-2" + }, + { + "name": "importlib-metadata", + "version": "4.6.4" + }, + { + "name": "info", + "version": "6.8-4build1" + }, + { + "name": "init", + "version": "1.62" + }, + { + "name": "init-system-helpers", + "version": "1.62" + }, + { + "name": "initramfs-tools", + "version": "0.140ubuntu13" + }, + { + "name": "initramfs-tools-bin", + "version": "0.140ubuntu13" + }, + { + "name": "initramfs-tools-core", + "version": "0.140ubuntu13" + }, + { + "name": "inputattach", + "version": "1:1.7.1-1build2" + }, + { + "name": "install-info", + "version": "6.8-4build1" + }, + { + "name": "intel-microcode", + "version": "3.20210608.2ubuntu1" + }, + { + "name": "ipp-usb", + "version": "0.9.20-1" + }, + { + "name": "iproute2", + "version": "5.15.0-1ubuntu2" + }, + { + "name": "iptables", + "version": "1.8.7-1ubuntu5" + }, + { + "name": "iputils-ping", + "version": "3:20211215-1" + }, + { + "name": "iputils-tracepath", + "version": "3:20211215-1" + }, + { + "name": "irqbalance", + "version": "1.8.0-1build1" + }, + { + "name": "isc-dhcp-client", + "version": "4.4.1-2.3ubuntu2" + }, + { + "name": "isc-dhcp-common", + "version": "4.4.1-2.3ubuntu2" + }, + { + "name": "iso-codes", + "version": "4.9.0-1" + }, + { + "name": "iucode-tool", + "version": "2.3.1-1build1" + }, + { + "name": "jeepney", + "version": "0.7.1" + }, + { + "name": "kbd", + "version": "2.3.0-3ubuntu4" + }, + { + "name": "kerneloops", + "version": "0.12+git20140509-6ubuntu5" + }, + { + "name": "keyboard-configuration", + "version": "1.205ubuntu3" + }, + { + "name": "keyring", + "version": "23.5.0" + }, + { + "name": "klibc-utils", + "version": "2.0.10-4" + }, + { + "name": "kmod", + "version": "29-1ubuntu1" + }, + { + "name": "language-pack-en", + "version": "1:22.04+20220415" + }, + { + "name": "language-pack-en-base", + "version": "1:22.04+20220415" + }, + { + "name": "language-pack-gnome-en", + "version": "1:22.04+20220415" + }, + { + "name": "language-pack-gnome-en-base", + "version": "1:22.04+20220415" + }, + { + "name": "language-selector-common", + "version": "0.219" + }, + { + "name": "language-selector-gnome", + "version": "0.219" + }, + { + "name": "launchpadlib", + "version": "1.10.16" + }, + { + "name": "lazr.restfulclient", + "version": "0.14.4" + }, + { + "name": "lazr.uri", + "version": "1.0.6" + }, + { + "name": "less", + "version": "590-1build1" + }, + { + "name": "libaa1", + "version": "1.4p5-50build1" + }, + { + "name": "libabsl20210324", + "version": "0~20210324.2-2" + }, + { + "name": "libabw-0.1-1", + "version": "0.1.3-1build3" + }, + { + "name": "libaccountsservice0", + "version": "22.07.5-2ubuntu1" + }, + { + "name": "libacl1", + "version": "2.3.1-1" + }, + { + "name": "libadwaita-1-0", + "version": "1.1.0-1ubuntu2" + }, + { + "name": "libao-common", + "version": "1.2.2+20180113-1.1ubuntu3" + }, + { + "name": "libao4", + "version": "1.2.2+20180113-1.1ubuntu3" + }, + { + "name": "libapparmor1", + "version": "3.0.4-2ubuntu2" + }, + { + "name": "libappstream4", + "version": "0.15.2-2" + }, + { + "name": "libapt-pkg6.0", + "version": "2.4.5" + }, + { + "name": "libarchive13", + "version": "3.6.0-1ubuntu1" + }, + { + "name": "libargon2-1", + "version": "0~20171227-0.3" + }, + { + "name": "libasound2", + "version": "1.2.6.1-1ubuntu1" + }, + { + "name": "libasound2-data", + "version": "1.2.6.1-1ubuntu1" + }, + { + "name": "libasound2-plugins", + "version": "1.2.6-1" + }, + { + "name": "libaspell15", + "version": "0.60.8-4build1" + }, + { + "name": "libassuan0", + "version": "2.5.5-1build1" + }, + { + "name": "libasyncns0", + "version": "0.8-6build2" + }, + { + "name": "libatasmart4", + "version": "0.19-5build2" + }, + { + "name": "libatk-adaptor", + "version": "2.38.0-3" + }, + { + "name": "libatk-bridge2.0-0", + "version": "2.38.0-3" + }, + { + "name": "libatk1.0-0", + "version": "2.36.0-3build1" + }, + { + "name": "libatk1.0-data", + "version": "2.36.0-3build1" + }, + { + "name": "libatkmm-1.6-1v5", + "version": "2.28.2-1build1" + }, + { + "name": "libatm1", + "version": "1:2.5.1-4build2" + }, + { + "name": "libatopology2", + "version": "1.2.6.1-1ubuntu1" + }, + { + "name": "libatspi2.0-0", + "version": "2.44.0-3" + }, + { + "name": "libattr1", + "version": "1:2.5.1-1build1" + }, + { + "name": "libaudit-common", + "version": "1:3.0.7-1build1" + }, + { + "name": "libaudit1", + "version": "1:3.0.7-1build1" + }, + { + "name": "libauthen-sasl-perl", + "version": "2.1600-1.1" + }, + { + "name": "libavahi-client3", + "version": "0.8-5ubuntu5" + }, + { + "name": "libavahi-common-data", + "version": "0.8-5ubuntu5" + }, + { + "name": "libavahi-common3", + "version": "0.8-5ubuntu5" + }, + { + "name": "libavahi-core7", + "version": "0.8-5ubuntu5" + }, + { + "name": "libavahi-glib1", + "version": "0.8-5ubuntu5" + }, + { + "name": "libavahi-ui-gtk3-0", + "version": "0.8-5ubuntu5" + }, + { + "name": "libavc1394-0", + "version": "0.5.4-5build2" + }, + { + "name": "libayatana-appindicator3-1", + "version": "0.5.90-7ubuntu2" + }, + { + "name": "libayatana-ido3-0.4-0", + "version": "0.9.1-1" + }, + { + "name": "libayatana-indicator3-7", + "version": "0.9.1-1" + }, + { + "name": "libbabeltrace1", + "version": "1.5.8-2build1" + }, + { + "name": "libblkid1", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "libblockdev-crypto2", + "version": "2.26-1" + }, + { + "name": "libblockdev-fs2", + "version": "2.26-1" + }, + { + "name": "libblockdev-loop2", + "version": "2.26-1" + }, + { + "name": "libblockdev-part-err2", + "version": "2.26-1" + }, + { + "name": "libblockdev-part2", + "version": "2.26-1" + }, + { + "name": "libblockdev-swap2", + "version": "2.26-1" + }, + { + "name": "libblockdev-utils2", + "version": "2.26-1" + }, + { + "name": "libblockdev2", + "version": "2.26-1" + }, + { + "name": "libbluetooth3", + "version": "5.64-0ubuntu1" + }, + { + "name": "libboost-filesystem1.74.0", + "version": "1.74.0-14ubuntu3" + }, + { + "name": "libboost-iostreams1.74.0", + "version": "1.74.0-14ubuntu3" + }, + { + "name": "libboost-locale1.74.0", + "version": "1.74.0-14ubuntu3" + }, + { + "name": "libboost-regex1.74.0", + "version": "1.74.0-14ubuntu3" + }, + { + "name": "libboost-thread1.74.0", + "version": "1.74.0-14ubuntu3" + }, + { + "name": "libbpf0", + "version": "1:0.5.0-1" + }, + { + "name": "libbrlapi0.8", + "version": "6.4-4ubuntu2" + }, + { + "name": "libbrotli1", + "version": "1.0.9-2build6" + }, + { + "name": "libbsd0", + "version": "0.11.5-1" + }, + { + "name": "libbz2-1.0", + "version": "1.0.8-5build1" + }, + { + "name": "libc-bin", + "version": "2.35-0ubuntu3" + }, + { + "name": "libc6", + "version": "2.35-0ubuntu3" + }, + { + "name": "libc6-dbg", + "version": "2.35-0ubuntu3" + }, + { + "name": "libcaca0", + "version": "0.99.beta19-2.2ubuntu4" + }, + { + "name": "libcairo-gobject-perl", + "version": "1.005-3build1" + }, + { + "name": "libcairo-gobject2", + "version": "1.16.0-5ubuntu2" + }, + { + "name": "libcairo-perl", + "version": "1.109-2build1" + }, + { + "name": "libcairo-script-interpreter2", + "version": "1.16.0-5ubuntu2" + }, + { + "name": "libcairo2", + "version": "1.16.0-5ubuntu2" + }, + { + "name": "libcairomm-1.0-1v5", + "version": "1.12.2-4build3" + }, + { + "name": "libcamel-1.2-63", + "version": "3.44.0-2" + }, + { + "name": "libcanberra-gtk3-0", + "version": "0.30-10ubuntu1" + }, + { + "name": "libcanberra-gtk3-module", + "version": "0.30-10ubuntu1" + }, + { + "name": "libcanberra-pulse", + "version": "0.30-10ubuntu1" + }, + { + "name": "libcanberra0", + "version": "0.30-10ubuntu1" + }, + { + "name": "libcap-ng0", + "version": "0.7.9-2.2build3" + }, + { + "name": "libcap2", + "version": "1:2.44-1build3" + }, + { + "name": "libcap2-bin", + "version": "1:2.44-1build3" + }, + { + "name": "libcbor0.8", + "version": "0.8.0-2ubuntu1" + }, + { + "name": "libcdio-cdda2", + "version": "10.2+2.0.0-1build3" + }, + { + "name": "libcdio-paranoia2", + "version": "10.2+2.0.0-1build3" + }, + { + "name": "libcdio19", + "version": "2.1.0-3build1" + }, + { + "name": "libcdparanoia0", + "version": "3.10.2+debian-14build2" + }, + { + "name": "libcdr-0.1-1", + "version": "0.1.6-2build2" + }, + { + "name": "libcheese-gtk25", + "version": "41.1-1build1" + }, + { + "name": "libcheese8", + "version": "41.1-1build1" + }, + { + "name": "libclone-perl", + "version": "0.45-1build3" + }, + { + "name": "libclucene-contribs1v5", + "version": "2.3.3.4+dfsg-1ubuntu5" + }, + { + "name": "libclucene-core1v5", + "version": "2.3.3.4+dfsg-1ubuntu5" + }, + { + "name": "libclutter-1.0-0", + "version": "1.26.4+dfsg-4build1" + }, + { + "name": "libclutter-1.0-common", + "version": "1.26.4+dfsg-4build1" + }, + { + "name": "libclutter-gst-3.0-0", + "version": "3.0.27-2build2" + }, + { + "name": "libclutter-gtk-1.0-0", + "version": "1.8.4-4build2" + }, + { + "name": "libcogl-common", + "version": "1.22.8-3build1" + }, + { + "name": "libcogl-pango20", + "version": "1.22.8-3build1" + }, + { + "name": "libcogl-path20", + "version": "1.22.8-3build1" + }, + { + "name": "libcogl20", + "version": "1.22.8-3build1" + }, + { + "name": "libcolamd2", + "version": "1:5.10.1+dfsg-4build1" + }, + { + "name": "libcolord-gtk1", + "version": "0.3.0-1" + }, + { + "name": "libcolord2", + "version": "1.4.6-1" + }, + { + "name": "libcolorhug2", + "version": "1.4.6-1" + }, + { + "name": "libcom-err2", + "version": "1.46.5-2ubuntu1" + }, + { + "name": "libcrack2", + "version": "2.9.6-3.4build4" + }, + { + "name": "libcrypt1", + "version": "1:4.4.27-1" + }, + { + "name": "libcryptsetup12", + "version": "2:2.4.3-1ubuntu1" + }, + { + "name": "libcue2", + "version": "2.2.1-3build3" + }, + { + "name": "libcups2", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "libcupsfilters1", + "version": "1.28.15-0ubuntu1" + }, + { + "name": "libcupsimage2", + "version": "2.4.1op1-1ubuntu4" + }, + { + "name": "libcurl3-gnutls", + "version": "7.81.0-1" + }, + { + "name": "libcurl4", + "version": "7.81.0-1" + }, + { + "name": "libdaemon0", + "version": "0.14-7.1ubuntu3" + }, + { + "name": "libdata-dump-perl", + "version": "1.25-1" + }, + { + "name": "libdatrie1", + "version": "0.2.13-2" + }, + { + "name": "libdazzle-1.0-0", + "version": "3.44.0-1" + }, + { + "name": "libdazzle-common", + "version": "3.44.0-1" + }, + { + "name": "libdb5.3", + "version": "5.3.28+dfsg1-0.8ubuntu3" + }, + { + "name": "libdbus-1-3", + "version": "1.12.20-2ubuntu4" + }, + { + "name": "libdbus-glib-1-2", + "version": "0.112-2build1" + }, + { + "name": "libdbusmenu-glib4", + "version": "16.04.1+18.10.20180917-0ubuntu8" + }, + { + "name": "libdbusmenu-gtk3-4", + "version": "16.04.1+18.10.20180917-0ubuntu8" + }, + { + "name": "libdconf1", + "version": "0.40.0-3" + }, + { + "name": "libdebconfclient0", + "version": "0.261ubuntu1" + }, + { + "name": "libdebuginfod-common", + "version": "0.186-1build1" + }, + { + "name": "libdebuginfod1", + "version": "0.186-1build1" + }, + { + "name": "libdee-1.0-4", + "version": "1.2.7+17.10.20170616-6ubuntu4" + }, + { + "name": "libdeflate0", + "version": "1.10-2" + }, + { + "name": "libdevmapper1.02.1", + "version": "2:1.02.175-2.1ubuntu4" + }, + { + "name": "libdjvulibre-text", + "version": "3.5.28-2build2" + }, + { + "name": "libdjvulibre21", + "version": "3.5.28-2build2" + }, + { + "name": "libdmapsharing-3.0-2", + "version": "2.9.41-3build2" + }, + { + "name": "libdns-export1110", + "version": "1:9.11.19+dfsg-2.1ubuntu3" + }, + { + "name": "libdotconf0", + "version": "1.3-0.3fakesync1build2" + }, + { + "name": "libdrm-amdgpu1", + "version": "2.4.110-1ubuntu1" + }, + { + "name": "libdrm-common", + "version": "2.4.110-1ubuntu1" + }, + { + "name": "libdrm-intel1", + "version": "2.4.110-1ubuntu1" + }, + { + "name": "libdrm-nouveau2", + "version": "2.4.110-1ubuntu1" + }, + { + "name": "libdrm-radeon1", + "version": "2.4.110-1ubuntu1" + }, + { + "name": "libdrm2", + "version": "2.4.110-1ubuntu1" + }, + { + "name": "libdv4", + "version": "1.0.0-14build1" + }, + { + "name": "libdw1", + "version": "0.186-1build1" + }, + { + "name": "libe-book-0.1-1", + "version": "0.1.3-2build2" + }, + { + "name": "libebackend-1.2-10", + "version": "3.44.0-2" + }, + { + "name": "libebook-1.2-20", + "version": "3.44.0-2" + }, + { + "name": "libebook-contacts-1.2-3", + "version": "3.44.0-2" + }, + { + "name": "libecal-2.0-1", + "version": "3.44.0-2" + }, + { + "name": "libedata-book-1.2-26", + "version": "3.44.0-2" + }, + { + "name": "libedata-cal-2.0-1", + "version": "3.44.0-2" + }, + { + "name": "libedataserver-1.2-26", + "version": "3.44.0-2" + }, + { + "name": "libedataserverui-1.2-3", + "version": "3.44.0-2" + }, + { + "name": "libedit2", + "version": "3.1-20210910-1build1" + }, + { + "name": "libefiboot1", + "version": "37-6ubuntu2" + }, + { + "name": "libefivar1", + "version": "37-6ubuntu2" + }, + { + "name": "libegl-mesa0", + "version": "22.0.1-1ubuntu2" + }, + { + "name": "libegl1", + "version": "1.4.0-1" + }, + { + "name": "libelf1", + "version": "0.186-1build1" + }, + { + "name": "libenchant-2-2", + "version": "2.3.2-1ubuntu2" + }, + { + "name": "libencode-locale-perl", + "version": "1.05-1.1" + }, + { + "name": "libeot0", + "version": "0.01-5build2" + }, + { + "name": "libepoxy0", + "version": "1.5.10-1" + }, + { + "name": "libepubgen-0.1-1", + "version": "0.1.1-1ubuntu5" + }, + { + "name": "libespeak-ng1", + "version": "1.50+dfsg-10" + }, + { + "name": "libestr0", + "version": "0.1.10-2.1build3" + }, + { + "name": "libetonyek-0.1-1", + "version": "0.1.10-3build1" + }, + { + "name": "libevdev2", + "version": "1.12.1+dfsg-1" + }, + { + "name": "libevdocument3-4", + "version": "42.1-3" + }, + { + "name": "libevent-2.1-7", + "version": "2.1.12-stable-1build3" + }, + { + "name": "libevview3-3", + "version": "42.1-3" + }, + { + "name": "libexempi8", + "version": "2.5.2-1build1" + }, + { + "name": "libexif12", + "version": "0.6.24-1build1" + }, + { + "name": "libexiv2-27", + "version": "0.27.5-3ubuntu1" + }, + { + "name": "libexpat1", + "version": "2.4.7-1" + }, + { + "name": "libext2fs2", + "version": "1.46.5-2ubuntu1" + }, + { + "name": "libexttextcat-2.0-0", + "version": "3.4.5-1build2" + }, + { + "name": "libexttextcat-data", + "version": "3.4.5-1build2" + }, + { + "name": "libextutils-depends-perl", + "version": "0.8001-1" + }, + { + "name": "libfastjson4", + "version": "0.99.9-1build2" + }, + { + "name": "libfdisk1", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "libffi8", + "version": "3.4.2-4" + }, + { + "name": "libfftw3-single3", + "version": "3.3.8-2ubuntu8" + }, + { + "name": "libfido2-1", + "version": "1.10.0-1" + }, + { + "name": "libfile-basedir-perl", + "version": "0.09-1" + }, + { + "name": "libfile-desktopentry-perl", + "version": "0.22-2" + }, + { + "name": "libfile-listing-perl", + "version": "6.14-1" + }, + { + "name": "libfile-mimeinfo-perl", + "version": "0.31-1" + }, + { + "name": "libflac8", + "version": "1.3.3-2build2" + }, + { + "name": "libflashrom1", + "version": "1.2-5build1" + }, + { + "name": "libfont-afm-perl", + "version": "1.20-3" + }, + { + "name": "libfontconfig1", + "version": "2.13.1-4.2ubuntu5" + }, + { + "name": "libfontembed1", + "version": "1.28.15-0ubuntu1" + }, + { + "name": "libfontenc1", + "version": "1:1.1.4-1build3" + }, + { + "name": "libfprint-2-2", + "version": "1:1.94.3+tod1-0ubuntu1" + }, + { + "name": "libfreehand-0.1-1", + "version": "0.1.2-3build2" + }, + { + "name": "libfreerdp-client2-2", + "version": "2.6.1+dfsg1-3ubuntu1" + }, + { + "name": "libfreerdp-server2-2", + "version": "2.6.1+dfsg1-3ubuntu1" + }, + { + "name": "libfreerdp2-2", + "version": "2.6.1+dfsg1-3ubuntu1" + }, + { + "name": "libfreetype6", + "version": "2.11.1+dfsg-1build1" + }, + { + "name": "libfribidi0", + "version": "1.0.8-2ubuntu3" + }, + { + "name": "libftdi1-2", + "version": "1.5-5build3" + }, + { + "name": "libfuse3-3", + "version": "3.10.5-1build1" + }, + { + "name": "libfwupd2", + "version": "1.7.5-3" + }, + { + "name": "libfwupdplugin5", + "version": "1.7.5-3" + }, + { + "name": "libgail-common", + "version": "2.24.33-2ubuntu2" + }, + { + "name": "libgail18", + "version": "2.24.33-2ubuntu2" + }, + { + "name": "libgamemode0", + "version": "1.6.1-1build2" + }, + { + "name": "libgamemodeauto0", + "version": "1.6.1-1build2" + }, + { + "name": "libgbm1", + "version": "22.0.1-1ubuntu2" + }, + { + "name": "libgc1", + "version": "1:8.0.6-1.1build1" + }, + { + "name": "libgcab-1.0-0", + "version": "1.4-3build2" + }, + { + "name": "libgcc-s1", + "version": "12-20220319-1ubuntu1" + }, + { + "name": "libgck-1-0", + "version": "3.40.0-4" + }, + { + "name": "libgcr-base-3-1", + "version": "3.40.0-4" + }, + { + "name": "libgcr-ui-3-1", + "version": "3.40.0-4" + }, + { + "name": "libgcrypt20", + "version": "1.9.4-3ubuntu3" + }, + { + "name": "libgd3", + "version": "2.3.0-2ubuntu2" + }, + { + "name": "libgdata-common", + "version": "0.18.1-2build1" + }, + { + "name": "libgdata22", + "version": "0.18.1-2build1" + }, + { + "name": "libgdbm-compat4", + "version": "1.23-1" + }, + { + "name": "libgdbm6", + "version": "1.23-1" + }, + { + "name": "libgdk-pixbuf-2.0-0", + "version": "2.42.8+dfsg-1" + }, + { + "name": "libgdk-pixbuf2.0-bin", + "version": "2.42.8+dfsg-1" + }, + { + "name": "libgdk-pixbuf2.0-common", + "version": "2.42.8+dfsg-1" + }, + { + "name": "libgdm1", + "version": "42.0-1ubuntu6" + }, + { + "name": "libgee-0.8-2", + "version": "0.20.5-2" + }, + { + "name": "libgeoclue-2-0", + "version": "2.5.7-3ubuntu3" + }, + { + "name": "libgeocode-glib0", + "version": "3.26.2-2build2" + }, + { + "name": "libgexiv2-2", + "version": "0.14.0-1build1" + }, + { + "name": "libgif7", + "version": "5.1.9-2build2" + }, + { + "name": "libgirepository-1.0-1", + "version": "1.72.0-1" + }, + { + "name": "libgjs0g", + "version": "1.72.0-1" + }, + { + "name": "libgl1", + "version": "1.4.0-1" + }, + { + "name": "libgl1-amber-dri", + "version": "21.3.7-0ubuntu1" + }, + { + "name": "libgl1-mesa-dri", + "version": "22.0.1-1ubuntu2" + }, + { + "name": "libglapi-mesa", + "version": "22.0.1-1ubuntu2" + }, + { + "name": "libgles2", + "version": "1.4.0-1" + }, + { + "name": "libglib-object-introspection-perl", + "version": "0.049-1+build2" + }, + { + "name": "libglib-perl", + "version": "3:1.329.3-2build1" + }, + { + "name": "libglib2.0-0", + "version": "2.72.1-1" + }, + { + "name": "libglib2.0-bin", + "version": "2.72.1-1" + }, + { + "name": "libglib2.0-data", + "version": "2.72.1-1" + }, + { + "name": "libglibmm-2.4-1v5", + "version": "2.66.2-2" + }, + { + "name": "libglu1-mesa", + "version": "9.0.2-1" + }, + { + "name": "libglvnd0", + "version": "1.4.0-1" + }, + { + "name": "libglx-mesa0", + "version": "22.0.1-1ubuntu2" + }, + { + "name": "libglx0", + "version": "1.4.0-1" + }, + { + "name": "libgmp10", + "version": "2:6.2.1+dfsg-3ubuntu1" + }, + { + "name": "libgnome-autoar-0-0", + "version": "0.4.3-1" + }, + { + "name": "libgnome-bg-4-1", + "version": "42.0-1ubuntu1" + }, + { + "name": "libgnome-bluetooth-3.0-13", + "version": "42.0-5" + }, + { + "name": "libgnome-bluetooth13", + "version": "3.34.5-8" + }, + { + "name": "libgnome-desktop-3-19", + "version": "42.0-1ubuntu1" + }, + { + "name": "libgnome-desktop-4-1", + "version": "42.0-1ubuntu1" + }, + { + "name": "libgnome-games-support-1-3", + "version": "1.8.2-1build1" + }, + { + "name": "libgnome-games-support-common", + "version": "1.8.2-1build1" + }, + { + "name": "libgnome-menu-3-0", + "version": "3.36.0-1ubuntu3" + }, + { + "name": "libgnome-todo", + "version": "3.28.1-6ubuntu1" + }, + { + "name": "libgnomekbd-common", + "version": "3.26.1-2" + }, + { + "name": "libgnomekbd8", + "version": "3.26.1-2" + }, + { + "name": "libgnutls30", + "version": "3.7.3-4ubuntu1" + }, + { + "name": "libgoa-1.0-0b", + "version": "3.44.0-1ubuntu1" + }, + { + "name": "libgoa-1.0-common", + "version": "3.44.0-1ubuntu1" + }, + { + "name": "libgoa-backend-1.0-1", + "version": "3.44.0-1ubuntu1" + }, + { + "name": "libgom-1.0-0", + "version": "0.4-1build2" + }, + { + "name": "libgomp1", + "version": "12-20220319-1ubuntu1" + }, + { + "name": "libgpg-error0", + "version": "1.43-3" + }, + { + "name": "libgpgme11", + "version": "1.16.0-1.2ubuntu4" + }, + { + "name": "libgpgmepp6", + "version": "1.16.0-1.2ubuntu4" + }, + { + "name": "libgphoto2-6", + "version": "2.5.27-1build2" + }, + { + "name": "libgphoto2-l10n", + "version": "2.5.27-1build2" + }, + { + "name": "libgphoto2-port12", + "version": "2.5.27-1build2" + }, + { + "name": "libgpm2", + "version": "1.20.7-10build1" + }, + { + "name": "libgpod-common", + "version": "0.8.3-16build2" + }, + { + "name": "libgpod4", + "version": "0.8.3-16build2" + }, + { + "name": "libgraphene-1.0-0", + "version": "1.10.8-1" + }, + { + "name": "libgraphite2-3", + "version": "1.3.14-1build2" + }, + { + "name": "libgrilo-0.3-0", + "version": "0.3.14-1build1" + }, + { + "name": "libgs9", + "version": "9.55.0~dfsg1-0ubuntu5" + }, + { + "name": "libgs9-common", + "version": "9.55.0~dfsg1-0ubuntu5" + }, + { + "name": "libgsf-1-114", + "version": "1.14.47-1build2" + }, + { + "name": "libgsf-1-common", + "version": "1.14.47-1build2" + }, + { + "name": "libgsound0", + "version": "1.0.3-2build1" + }, + { + "name": "libgspell-1-2", + "version": "1.9.1-4" + }, + { + "name": "libgspell-1-common", + "version": "1.9.1-4" + }, + { + "name": "libgssapi-krb5-2", + "version": "1.19.2-2" + }, + { + "name": "libgssdp-1.2-0", + "version": "1.4.0.1-2build1" + }, + { + "name": "libgstreamer-gl1.0-0", + "version": "1.20.1-1" + }, + { + "name": "libgstreamer-plugins-base1.0-0", + "version": "1.20.1-1" + }, + { + "name": "libgstreamer-plugins-good1.0-0", + "version": "1.20.1-1ubuntu1" + }, + { + "name": "libgstreamer1.0-0", + "version": "1.20.1-1" + }, + { + "name": "libgtk-3-0", + "version": "3.24.33-1ubuntu1" + }, + { + "name": "libgtk-3-bin", + "version": "3.24.33-1ubuntu1" + }, + { + "name": "libgtk-3-common", + "version": "3.24.33-1ubuntu1" + }, + { + "name": "libgtk-4-1", + "version": "4.6.2+ds-1ubuntu2" + }, + { + "name": "libgtk-4-bin", + "version": "4.6.2+ds-1ubuntu2" + }, + { + "name": "libgtk-4-common", + "version": "4.6.2+ds-1ubuntu2" + }, + { + "name": "libgtk2.0-0", + "version": "2.24.33-2ubuntu2" + }, + { + "name": "libgtk2.0-bin", + "version": "2.24.33-2ubuntu2" + }, + { + "name": "libgtk2.0-common", + "version": "2.24.33-2ubuntu2" + }, + { + "name": "libgtk3-perl", + "version": "0.038-1" + }, + { + "name": "libgtkmm-3.0-1v5", + "version": "3.24.5-1build1" + }, + { + "name": "libgtksourceview-4-0", + "version": "4.8.3-1" + }, + { + "name": "libgtksourceview-4-common", + "version": "4.8.3-1" + }, + { + "name": "libgtop-2.0-11", + "version": "2.40.0-2build3" + }, + { + "name": "libgtop2-common", + "version": "2.40.0-2build3" + }, + { + "name": "libgudev-1.0-0", + "version": "1:237-2build1" + }, + { + "name": "libgupnp-1.2-1", + "version": "1.4.3-1" + }, + { + "name": "libgupnp-av-1.0-3", + "version": "0.14.0-3" + }, + { + "name": "libgupnp-dlna-2.0-4", + "version": "0.12.0-3" + }, + { + "name": "libgusb2", + "version": "0.3.10-1" + }, + { + "name": "libgweather-3-16", + "version": "40.0-5build1" + }, + { + "name": "libgweather-common", + "version": "40.0-5build1" + }, + { + "name": "libgxps2", + "version": "0.3.2-2" + }, + { + "name": "libhandy-1-0", + "version": "1.6.1-1" + }, + { + "name": "libharfbuzz-icu0", + "version": "2.7.4-1ubuntu3" + }, + { + "name": "libharfbuzz0b", + "version": "2.7.4-1ubuntu3" + }, + { + "name": "libhogweed6", + "version": "3.7.3-1build2" + }, + { + "name": "libhpmud0", + "version": "3.21.12+dfsg0-1" + }, + { + "name": "libhtml-format-perl", + "version": "2.12-1.1" + }, + { + "name": "libhtml-parser-perl", + "version": "3.76-1build2" + }, + { + "name": "libhttp-cookies-perl", + "version": "6.10-1" + }, + { + "name": "libhttp-daemon-perl", + "version": "6.13-1" + }, + { + "name": "libhttp-message-perl", + "version": "6.36-1" + }, + { + "name": "libhunspell-1.7-0", + "version": "1.7.0-4build1" + }, + { + "name": "libhyphen0", + "version": "2.8.8-7build2" + }, + { + "name": "libibus-1.0-5", + "version": "1.5.26-4" + }, + { + "name": "libical3", + "version": "3.0.14-1build1" + }, + { + "name": "libice6", + "version": "2:1.0.10-1build2" + }, + { + "name": "libicu70", + "version": "70.1-2" + }, + { + "name": "libidn12", + "version": "1.38-4build1" + }, + { + "name": "libidn2-0", + "version": "2.3.2-2build1" + }, + { + "name": "libiec61883-0", + "version": "1.2.0-4build3" + }, + { + "name": "libieee1284-3", + "version": "0.2.11-14build2" + }, + { + "name": "libijs-0.35", + "version": "0.35-15build2" + }, + { + "name": "libimagequant0", + "version": "2.17.0-1" + }, + { + "name": "libimobiledevice6", + "version": "1.3.0-6build3" + }, + { + "name": "libinih1", + "version": "53-1ubuntu3" + }, + { + "name": "libinput-bin", + "version": "1.20.0-1" + }, + { + "name": "libinput10", + "version": "1.20.0-1" + }, + { + "name": "libio-html-perl", + "version": "1.004-2" + }, + { + "name": "libio-socket-ssl-perl", + "version": "2.074-2" + }, + { + "name": "libip4tc2", + "version": "1.8.7-1ubuntu5" + }, + { + "name": "libip6tc2", + "version": "1.8.7-1ubuntu5" + }, + { + "name": "libipc-system-simple-perl", + "version": "1.30-1" + }, + { + "name": "libipt2", + "version": "2.0.5-1" + }, + { + "name": "libisc-export1105", + "version": "1:9.11.19+dfsg-2.1ubuntu3" + }, + { + "name": "libisl23", + "version": "0.24-2build1" + }, + { + "name": "libiw30", + "version": "30~pre9-13.1ubuntu4" + }, + { + "name": "libjack-jackd2-0", + "version": "1.9.20~dfsg-1" + }, + { + "name": "libjansson4", + "version": "2.13.1-1.1build3" + }, + { + "name": "libjavascriptcoregtk-4.0-18", + "version": "2.36.0-2ubuntu1" + }, + { + "name": "libjbig0", + "version": "2.1-3.1build3" + }, + { + "name": "libjbig2dec0", + "version": "0.19-3build2" + }, + { + "name": "libjcat1", + "version": "0.1.9-1" + }, + { + "name": "libjpeg-turbo8", + "version": "2.1.2-0ubuntu1" + }, + { + "name": "libjpeg8", + "version": "8c-2ubuntu10" + }, + { + "name": "libjson-c5", + "version": "0.15-2build4" + }, + { + "name": "libjson-glib-1.0-0", + "version": "1.6.6-1build1" + }, + { + "name": "libjson-glib-1.0-common", + "version": "1.6.6-1build1" + }, + { + "name": "libk5crypto3", + "version": "1.19.2-2" + }, + { + "name": "libkeyutils1", + "version": "1.6.1-2ubuntu3" + }, + { + "name": "libklibc", + "version": "2.0.10-4" + }, + { + "name": "libkmod2", + "version": "29-1ubuntu1" + }, + { + "name": "libkpathsea6", + "version": "2021.20210626.59705-1build1" + }, + { + "name": "libkrb5-3", + "version": "1.19.2-2" + }, + { + "name": "libkrb5support0", + "version": "1.19.2-2" + }, + { + "name": "libksba8", + "version": "1.6.0-2build1" + }, + { + "name": "liblangtag-common", + "version": "0.6.3-2ubuntu1" + }, + { + "name": "liblangtag1", + "version": "0.6.3-2ubuntu1" + }, + { + "name": "liblcms2-2", + "version": "2.12~rc1-2build2" + }, + { + "name": "liblcms2-utils", + "version": "2.12~rc1-2build2" + }, + { + "name": "libldap-2.5-0", + "version": "2.5.11+dfsg-1~exp1ubuntu3" + }, + { + "name": "libldap-common", + "version": "2.5.11+dfsg-1~exp1ubuntu3" + }, + { + "name": "libldb2", + "version": "2:2.4.2-0ubuntu1" + }, + { + "name": "liblirc-client0", + "version": "0.10.1-6.3ubuntu1" + }, + { + "name": "libllvm13", + "version": "1:13.0.1-2ubuntu2" + }, + { + "name": "liblmdb0", + "version": "0.9.24-1build2" + }, + { + "name": "liblocale-gettext-perl", + "version": "1.07-4build3" + }, + { + "name": "liblouis-data", + "version": "3.20.0-2" + }, + { + "name": "liblouis20", + "version": "3.20.0-2" + }, + { + "name": "liblouisutdml-bin", + "version": "2.10.0-4" + }, + { + "name": "liblouisutdml-data", + "version": "2.10.0-4" + }, + { + "name": "liblouisutdml9", + "version": "2.10.0-4" + }, + { + "name": "libltdl7", + "version": "2.4.6-15build2" + }, + { + "name": "liblua5.3-0", + "version": "5.3.6-1build1" + }, + { + "name": "liblwp-protocol-https-perl", + "version": "6.10-1" + }, + { + "name": "liblz4-1", + "version": "1.9.3-2build2" + }, + { + "name": "liblzma5", + "version": "5.2.5-2ubuntu1" + }, + { + "name": "liblzo2-2", + "version": "2.10-2build3" + }, + { + "name": "libmagic-mgc", + "version": "1:5.41-3" + }, + { + "name": "libmagic1", + "version": "1:5.41-3" + }, + { + "name": "libmanette-0.2-0", + "version": "0.2.6-3build1" + }, + { + "name": "libmaxminddb0", + "version": "1.5.2-1build2" + }, + { + "name": "libmbim-glib4", + "version": "1.26.2-1build1" + }, + { + "name": "libmbim-proxy", + "version": "1.26.2-1build1" + }, + { + "name": "libmd0", + "version": "1.0.4-1build1" + }, + { + "name": "libmediaart-2.0-0", + "version": "1.9.5-2build1" + }, + { + "name": "libmessaging-menu0", + "version": "22.2.0-1" + }, + { + "name": "libmhash2", + "version": "0.9.9.9-9build2" + }, + { + "name": "libminiupnpc17", + "version": "2.2.3-1build1" + }, + { + "name": "libmm-glib0", + "version": "1.18.6-1" + }, + { + "name": "libmnl0", + "version": "1.0.4-3build2" + }, + { + "name": "libmount1", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "libmozjs-91-0", + "version": "91.7.0-2" + }, + { + "name": "libmp3lame0", + "version": "3.100-3build2" + }, + { + "name": "libmpc3", + "version": "1.2.1-2build1" + }, + { + "name": "libmpdec3", + "version": "2.5.1-2build2" + }, + { + "name": "libmpfr6", + "version": "4.1.0-3build3" + }, + { + "name": "libmpg123-0", + "version": "1.29.3-1build1" + }, + { + "name": "libmspub-0.1-1", + "version": "0.1.4-3build3" + }, + { + "name": "libmtdev1", + "version": "1.1.6-1build4" + }, + { + "name": "libmtp-common", + "version": "1.1.19-1build1" + }, + { + "name": "libmtp-runtime", + "version": "1.1.19-1build1" + }, + { + "name": "libmtp9", + "version": "1.1.19-1build1" + }, + { + "name": "libmutter-10-0", + "version": "42.0-3ubuntu2" + }, + { + "name": "libmwaw-0.3-3", + "version": "0.3.21-1build1" + }, + { + "name": "libmythes-1.2-0", + "version": "2:1.2.4-4build1" + }, + { + "name": "libnatpmp1", + "version": "20150609-7.1build2" + }, + { + "name": "libnautilus-extension1a", + "version": "1:42.0-1ubuntu2" + }, + { + "name": "libncurses6", + "version": "6.3-2" + }, + { + "name": "libncursesw6", + "version": "6.3-2" + }, + { + "name": "libndp0", + "version": "1.8-0ubuntu3" + }, + { + "name": "libnet-dbus-perl", + "version": "1.2.0-1build3" + }, + { + "name": "libnet-http-perl", + "version": "6.22-1" + }, + { + "name": "libnet-ssleay-perl", + "version": "1.92-1build2" + }, + { + "name": "libnetfilter-conntrack3", + "version": "1.0.9-1" + }, + { + "name": "libnetplan0", + "version": "0.104-0ubuntu2" + }, + { + "name": "libnettle8", + "version": "3.7.3-1build2" + }, + { + "name": "libnewt0.52", + "version": "0.52.21-5ubuntu2" + }, + { + "name": "libnfnetlink0", + "version": "1.0.1-3build3" + }, + { + "name": "libnfs13", + "version": "4.0.0-1build2" + }, + { + "name": "libnftables1", + "version": "1.0.2-1ubuntu2" + }, + { + "name": "libnftnl11", + "version": "1.2.1-1build1" + }, + { + "name": "libnghttp2-14", + "version": "1.43.0-1build3" + }, + { + "name": "libnl-3-200", + "version": "3.5.0-0.1" + }, + { + "name": "libnl-genl-3-200", + "version": "3.5.0-0.1" + }, + { + "name": "libnl-route-3-200", + "version": "3.5.0-0.1" + }, + { + "name": "libnm0", + "version": "1.36.4-2ubuntu1" + }, + { + "name": "libnma-common", + "version": "1.8.34-1ubuntu1" + }, + { + "name": "libnma0", + "version": "1.8.34-1ubuntu1" + }, + { + "name": "libnotify-bin", + "version": "0.7.9-3ubuntu5" + }, + { + "name": "libnotify4", + "version": "0.7.9-3ubuntu5" + }, + { + "name": "libnpth0", + "version": "1.6-3build2" + }, + { + "name": "libnsl2", + "version": "1.3.0-2build2" + }, + { + "name": "libnspr4", + "version": "2:4.32-3build1" + }, + { + "name": "libnss-mdns", + "version": "0.15.1-1ubuntu1" + }, + { + "name": "libnss-systemd", + "version": "249.11-0ubuntu3" + }, + { + "name": "libnss3", + "version": "2:3.68.2-0ubuntu1" + }, + { + "name": "libntfs-3g89", + "version": "1:2021.8.22-3ubuntu1" + }, + { + "name": "libnuma1", + "version": "2.0.14-3ubuntu2" + }, + { + "name": "libodfgen-0.1-1", + "version": "0.1.8-2build2" + }, + { + "name": "libogg0", + "version": "1.3.5-0ubuntu3" + }, + { + "name": "libopengl0", + "version": "1.4.0-1" + }, + { + "name": "libopenjp2-7", + "version": "2.4.0-6" + }, + { + "name": "libopenscap8", + "version": "1.2.17-0.1ubuntu7" + }, + { + "name": "libopus0", + "version": "1.3.1-0.1build2" + }, + { + "name": "liborc-0.4-0", + "version": "1:0.4.32-2" + }, + { + "name": "liborcus-0.17-0", + "version": "0.17.2-2" + }, + { + "name": "liborcus-parser-0.17-0", + "version": "0.17.2-2" + }, + { + "name": "libp11-kit0", + "version": "0.24.0-6build1" + }, + { + "name": "libpackagekit-glib2-18", + "version": "1.2.5-2ubuntu2" + }, + { + "name": "libpagemaker-0.0-0", + "version": "0.0.4-1build3" + }, + { + "name": "libpam-cap", + "version": "1:2.44-1build3" + }, + { + "name": "libpam-fprintd", + "version": "1.94.2-1" + }, + { + "name": "libpam-gnome-keyring", + "version": "40.0-3ubuntu2" + }, + { + "name": "libpam-modules", + "version": "1.4.0-11ubuntu2" + }, + { + "name": "libpam-modules-bin", + "version": "1.4.0-11ubuntu2" + }, + { + "name": "libpam-pwquality", + "version": "1.4.4-1build2" + }, + { + "name": "libpam-runtime", + "version": "1.4.0-11ubuntu2" + }, + { + "name": "libpam-sss", + "version": "2.6.3-1ubuntu3" + }, + { + "name": "libpam-systemd", + "version": "249.11-0ubuntu3" + }, + { + "name": "libpam0g", + "version": "1.4.0-11ubuntu2" + }, + { + "name": "libpango-1.0-0", + "version": "1.50.6+ds-2" + }, + { + "name": "libpangocairo-1.0-0", + "version": "1.50.6+ds-2" + }, + { + "name": "libpangoft2-1.0-0", + "version": "1.50.6+ds-2" + }, + { + "name": "libpangomm-1.4-1v5", + "version": "2.46.2-1" + }, + { + "name": "libpangoxft-1.0-0", + "version": "1.50.6+ds-2" + }, + { + "name": "libpaper-utils", + "version": "1.1.28build2" + }, + { + "name": "libpaper1", + "version": "1.1.28build2" + }, + { + "name": "libparted-fs-resize0", + "version": "3.4-2build1" + }, + { + "name": "libparted2", + "version": "3.4-2build1" + }, + { + "name": "libpcap0.8", + "version": "1.10.1-4build1" + }, + { + "name": "libpcaudio0", + "version": "1.1-6build2" + }, + { + "name": "libpci3", + "version": "1:3.7.0-6" + }, + { + "name": "libpciaccess0", + "version": "0.16-3" + }, + { + "name": "libpcre2-32-0", + "version": "10.39-3build1" + }, + { + "name": "libpcre2-8-0", + "version": "10.39-3build1" + }, + { + "name": "libpcsclite1", + "version": "1.9.5-3" + }, + { + "name": "libpeas-1.0-0", + "version": "1.32.0-1" + }, + { + "name": "libpeas-common", + "version": "1.32.0-1" + }, + { + "name": "libperl5.34", + "version": "5.34.0-3ubuntu1" + }, + { + "name": "libphonenumber8", + "version": "8.12.44-1" + }, + { + "name": "libpipeline1", + "version": "1.5.5-1" + }, + { + "name": "libpipewire-0.3-0", + "version": "0.3.48-1ubuntu1" + }, + { + "name": "libpipewire-0.3-common", + "version": "0.3.48-1ubuntu1" + }, + { + "name": "libpipewire-0.3-modules", + "version": "0.3.48-1ubuntu1" + }, + { + "name": "libpixman-1-0", + "version": "0.40.0-1build4" + }, + { + "name": "libpkcs11-helper1", + "version": "1.28-1" + }, + { + "name": "libplist3", + "version": "2.2.0-6build2" + }, + { + "name": "libplymouth5", + "version": "0.9.5+git20211018-1ubuntu3" + }, + { + "name": "libpng16-16", + "version": "1.6.37-3build5" + }, + { + "name": "libpolkit-agent-1-0", + "version": "0.105-33" + }, + { + "name": "libpolkit-gobject-1-0", + "version": "0.105-33" + }, + { + "name": "libpoppler-cpp0v5", + "version": "22.02.0-2" + }, + { + "name": "libpoppler-glib8", + "version": "22.02.0-2" + }, + { + "name": "libpoppler118", + "version": "22.02.0-2" + }, + { + "name": "libpopt0", + "version": "1.18-3build1" + }, + { + "name": "libprocps8", + "version": "2:3.3.17-6ubuntu2" + }, + { + "name": "libprotobuf23", + "version": "3.12.4-1ubuntu7" + }, + { + "name": "libproxy1-plugin-gsettings", + "version": "0.4.17-2" + }, + { + "name": "libproxy1-plugin-networkmanager", + "version": "0.4.17-2" + }, + { + "name": "libproxy1v5", + "version": "0.4.17-2" + }, + { + "name": "libpsl5", + "version": "0.21.0-1.2build2" + }, + { + "name": "libpulse-mainloop-glib0", + "version": "1:15.99.1+dfsg1-1ubuntu1" + }, + { + "name": "libpulse0", + "version": "1:15.99.1+dfsg1-1ubuntu1" + }, + { + "name": "libpulsedsp", + "version": "1:15.99.1+dfsg1-1ubuntu1" + }, + { + "name": "libpwquality-common", + "version": "1.4.4-1build2" + }, + { + "name": "libpwquality1", + "version": "1.4.4-1build2" + }, + { + "name": "libpython3-stdlib", + "version": "3.10.4-0ubuntu2" + }, + { + "name": "libpython3.10", + "version": "3.10.4-3" + }, + { + "name": "libpython3.10-minimal", + "version": "3.10.4-3" + }, + { + "name": "libpython3.10-stdlib", + "version": "3.10.4-3" + }, + { + "name": "libqmi-glib5", + "version": "1.30.4-1" + }, + { + "name": "libqmi-proxy", + "version": "1.30.4-1" + }, + { + "name": "libqpdf28", + "version": "10.6.3-1" + }, + { + "name": "libqqwing2v5", + "version": "1.3.4-1.1ubuntu3" + }, + { + "name": "libraptor2-0", + "version": "2.0.15-0ubuntu4" + }, + { + "name": "libraqm0", + "version": "0.7.0-4ubuntu1" + }, + { + "name": "librasqal3", + "version": "0.9.33-0.2ubuntu1" + }, + { + "name": "libraw1394-11", + "version": "2.1.2-2build2" + }, + { + "name": "libraw20", + "version": "0.20.2-2ubuntu2" + }, + { + "name": "librdf0", + "version": "1.0.17-1.1ubuntu3" + }, + { + "name": "libreadline8", + "version": "8.1.2-1" + }, + { + "name": "libreoffice-base-core", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-calc", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-common", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-core", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-draw", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-gnome", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-gtk3", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-help-common", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-help-en-us", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-impress", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-math", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-ogltrans", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-pdfimport", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-style-breeze", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-style-colibre", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-style-elementary", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-style-yaru", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libreoffice-writer", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "librest-0.7-0", + "version": "0.8.1-1.1build2" + }, + { + "name": "librevenge-0.0-0", + "version": "0.0.4-6ubuntu7" + }, + { + "name": "librhythmbox-core10", + "version": "3.4.4-5ubuntu1" + }, + { + "name": "librsvg2-2", + "version": "2.52.5+dfsg-3" + }, + { + "name": "librsvg2-common", + "version": "2.52.5+dfsg-3" + }, + { + "name": "librsync2", + "version": "2.3.2-1ubuntu1" + }, + { + "name": "librtmp1", + "version": "2.4+20151223.gitfa8646d.1-2build4" + }, + { + "name": "librygel-core-2.6-2", + "version": "0.40.3-1ubuntu2" + }, + { + "name": "librygel-db-2.6-2", + "version": "0.40.3-1ubuntu2" + }, + { + "name": "librygel-renderer-2.6-2", + "version": "0.40.3-1ubuntu2" + }, + { + "name": "librygel-server-2.6-2", + "version": "0.40.3-1ubuntu2" + }, + { + "name": "libsamplerate0", + "version": "0.2.2-1build1" + }, + { + "name": "libsane-common", + "version": "1.1.1-5" + }, + { + "name": "libsane-hpaio", + "version": "3.21.12+dfsg0-1" + }, + { + "name": "libsane1", + "version": "1.1.1-5" + }, + { + "name": "libsasl2-2", + "version": "2.1.27+dfsg2-3ubuntu1" + }, + { + "name": "libsasl2-modules", + "version": "2.1.27+dfsg2-3ubuntu1" + }, + { + "name": "libsasl2-modules-db", + "version": "2.1.27+dfsg2-3ubuntu1" + }, + { + "name": "libsasl2-modules-gssapi-mit", + "version": "2.1.27+dfsg2-3ubuntu1" + }, + { + "name": "libsbc1", + "version": "1.5-3build2" + }, + { + "name": "libseccomp2", + "version": "2.5.3-2ubuntu2" + }, + { + "name": "libsecret-1-0", + "version": "0.20.5-2" + }, + { + "name": "libsecret-common", + "version": "0.20.5-2" + }, + { + "name": "libselinux1", + "version": "3.3-1build2" + }, + { + "name": "libsemanage-common", + "version": "3.3-1build2" + }, + { + "name": "libsemanage2", + "version": "3.3-1build2" + }, + { + "name": "libsensors-config", + "version": "1:3.6.0-7ubuntu1" + }, + { + "name": "libsensors5", + "version": "1:3.6.0-7ubuntu1" + }, + { + "name": "libsepol2", + "version": "3.3-1build1" + }, + { + "name": "libsgutils2-2", + "version": "1.46-1build1" + }, + { + "name": "libshout3", + "version": "2.4.5-1build3" + }, + { + "name": "libsigc++-2.0-0v5", + "version": "2.10.4-2ubuntu3" + }, + { + "name": "libslang2", + "version": "2.3.2-5build4" + }, + { + "name": "libsm6", + "version": "2:1.2.3-1build2" + }, + { + "name": "libsmartcols1", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "libsmbclient", + "version": "2:4.15.5~dfsg-0ubuntu5" + }, + { + "name": "libsmbios-c2", + "version": "2.4.3-1build1" + }, + { + "name": "libsnapd-glib1", + "version": "1.60-0ubuntu1" + }, + { + "name": "libsndfile1", + "version": "1.0.31-2build1" + }, + { + "name": "libsnmp-base", + "version": "5.9.1+dfsg-1ubuntu2" + }, + { + "name": "libsnmp40", + "version": "5.9.1+dfsg-1ubuntu2" + }, + { + "name": "libsodium23", + "version": "1.0.18-1build2" + }, + { + "name": "libsonic0", + "version": "0.2.0-11build1" + }, + { + "name": "libsoup-gnome2.4-1", + "version": "2.74.2-3" + }, + { + "name": "libsoup2.4-1", + "version": "2.74.2-3" + }, + { + "name": "libsoup2.4-common", + "version": "2.74.2-3" + }, + { + "name": "libsource-highlight-common", + "version": "3.1.9-4.1build2" + }, + { + "name": "libsource-highlight4v5", + "version": "3.1.9-4.1build2" + }, + { + "name": "libsoxr0", + "version": "0.1.3-4build2" + }, + { + "name": "libspa-0.2-modules", + "version": "0.3.48-1ubuntu1" + }, + { + "name": "libspectre1", + "version": "0.2.10-1" + }, + { + "name": "libspeechd2", + "version": "0.11.1-1" + }, + { + "name": "libspeex1", + "version": "1.2~rc1.2-1.1ubuntu3" + }, + { + "name": "libspeexdsp1", + "version": "1.2~rc1.2-1.1ubuntu3" + }, + { + "name": "libsqlite3-0", + "version": "3.37.2-2" + }, + { + "name": "libss2", + "version": "1.46.5-2ubuntu1" + }, + { + "name": "libssh-4", + "version": "0.9.6-2build1" + }, + { + "name": "libssl3", + "version": "3.0.2-0ubuntu1" + }, + { + "name": "libstartup-notification0", + "version": "0.12-6build2" + }, + { + "name": "libstdc++6", + "version": "12-20220319-1ubuntu1" + }, + { + "name": "libstemmer0d", + "version": "2.2.0-1build1" + }, + { + "name": "libsuitesparseconfig5", + "version": "1:5.10.1+dfsg-4build1" + }, + { + "name": "libsynctex2", + "version": "2021.20210626.59705-1build1" + }, + { + "name": "libsysmetrics1", + "version": "1.7.1" + }, + { + "name": "libsystemd0", + "version": "249.11-0ubuntu3" + }, + { + "name": "libtag1v5", + "version": "1.11.1+dfsg.1-3ubuntu3" + }, + { + "name": "libtag1v5-vanilla", + "version": "1.11.1+dfsg.1-3ubuntu3" + }, + { + "name": "libtalloc2", + "version": "2.3.3-2build1" + }, + { + "name": "libtasn1-6", + "version": "4.18.0-4build1" + }, + { + "name": "libtcl8.6", + "version": "8.6.12+dfsg-1build1" + }, + { + "name": "libtdb1", + "version": "1.4.5-2build1" + }, + { + "name": "libteamdctl0", + "version": "1.31-1build2" + }, + { + "name": "libtevent0", + "version": "0.11.0-1build1" + }, + { + "name": "libtext-charwidth-perl", + "version": "0.04-10build3" + }, + { + "name": "libtext-iconv-perl", + "version": "1.7-7build3" + }, + { + "name": "libthai-data", + "version": "0.1.29-1build1" + }, + { + "name": "libthai0", + "version": "0.1.29-1build1" + }, + { + "name": "libtheora0", + "version": "1.1.1+dfsg.1-15ubuntu4" + }, + { + "name": "libtie-ixhash-perl", + "version": "1.23-2.1" + }, + { + "name": "libtiff5", + "version": "4.3.0-6" + }, + { + "name": "libtimedate-perl", + "version": "2.3300-2" + }, + { + "name": "libtinfo6", + "version": "6.3-2" + }, + { + "name": "libtirpc-common", + "version": "1.3.2-2build1" + }, + { + "name": "libtirpc3", + "version": "1.3.2-2build1" + }, + { + "name": "libtotem-plparser-common", + "version": "3.26.6-1build1" + }, + { + "name": "libtotem-plparser18", + "version": "3.26.6-1build1" + }, + { + "name": "libtotem0", + "version": "42.0-1ubuntu1" + }, + { + "name": "libtracker-sparql-3.0-0", + "version": "3.3.0-1" + }, + { + "name": "libtry-tiny-perl", + "version": "0.31-1" + }, + { + "name": "libtss2-esys-3.0.2-0", + "version": "3.2.0-1ubuntu1" + }, + { + "name": "libtss2-mu0", + "version": "3.2.0-1ubuntu1" + }, + { + "name": "libtss2-sys1", + "version": "3.2.0-1ubuntu1" + }, + { + "name": "libtss2-tcti-cmd0", + "version": "3.2.0-1ubuntu1" + }, + { + "name": "libtss2-tcti-device0", + "version": "3.2.0-1ubuntu1" + }, + { + "name": "libtss2-tcti-mssim0", + "version": "3.2.0-1ubuntu1" + }, + { + "name": "libtss2-tcti-swtpm0", + "version": "3.2.0-1ubuntu1" + }, + { + "name": "libtwolame0", + "version": "0.4.0-2build2" + }, + { + "name": "libu2f-udev", + "version": "1.1.10-3build2" + }, + { + "name": "libuchardet0", + "version": "0.0.7-1build2" + }, + { + "name": "libudev1", + "version": "249.11-0ubuntu3" + }, + { + "name": "libudisks2-0", + "version": "2.9.4-1ubuntu2" + }, + { + "name": "libunistring2", + "version": "1.0-1" + }, + { + "name": "libunity-protocol-private0", + "version": "7.1.4+19.04.20190319-6build1" + }, + { + "name": "libunity-scopes-json-def-desktop", + "version": "7.1.4+19.04.20190319-6build1" + }, + { + "name": "libunity9", + "version": "7.1.4+19.04.20190319-6build1" + }, + { + "name": "libuno-cppu3", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libuno-cppuhelpergcc3-3", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libuno-purpenvhelpergcc3-3", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libuno-sal3", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libuno-salhelpergcc3-3", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "libunwind8", + "version": "1.3.2-2build2" + }, + { + "name": "libupower-glib3", + "version": "0.99.17-1" + }, + { + "name": "liburi-perl", + "version": "5.10-1" + }, + { + "name": "libusb-1.0-0", + "version": "2:1.0.25-1ubuntu1" + }, + { + "name": "libusbmuxd6", + "version": "2.0.2-3build2" + }, + { + "name": "libuuid1", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "libuv1", + "version": "1.43.0-1" + }, + { + "name": "libv4l-0", + "version": "1.22.1-2build1" + }, + { + "name": "libv4lconvert0", + "version": "1.22.1-2build1" + }, + { + "name": "libvisio-0.1-1", + "version": "0.1.7-1build5" + }, + { + "name": "libvisual-0.4-0", + "version": "0.4.0-17build2" + }, + { + "name": "libvncclient1", + "version": "0.9.13+dfsg-3build2" + }, + { + "name": "libvncserver1", + "version": "0.9.13+dfsg-3build2" + }, + { + "name": "libvolume-key1", + "version": "0.3.12-3.1build3" + }, + { + "name": "libvorbis0a", + "version": "1.3.7-1build2" + }, + { + "name": "libvorbisenc2", + "version": "1.3.7-1build2" + }, + { + "name": "libvorbisfile3", + "version": "1.3.7-1build2" + }, + { + "name": "libvpx7", + "version": "1.11.0-2ubuntu2" + }, + { + "name": "libvte-2.91-0", + "version": "0.68.0-1" + }, + { + "name": "libvte-2.91-common", + "version": "0.68.0-1" + }, + { + "name": "libvulkan1", + "version": "1.3.204.1-2" + }, + { + "name": "libwacom-bin", + "version": "2.2.0-1" + }, + { + "name": "libwacom-common", + "version": "2.2.0-1" + }, + { + "name": "libwacom9", + "version": "2.2.0-1" + }, + { + "name": "libwavpack1", + "version": "5.4.0-1build2" + }, + { + "name": "libwayland-client0", + "version": "1.20.0-1" + }, + { + "name": "libwayland-cursor0", + "version": "1.20.0-1" + }, + { + "name": "libwayland-egl1", + "version": "1.20.0-1" + }, + { + "name": "libwayland-server0", + "version": "1.20.0-1" + }, + { + "name": "libwbclient0", + "version": "2:4.15.5~dfsg-0ubuntu5" + }, + { + "name": "libwebkit2gtk-4.0-37", + "version": "2.36.0-2ubuntu1" + }, + { + "name": "libwebp7", + "version": "1.2.2-2" + }, + { + "name": "libwebpdemux2", + "version": "1.2.2-2" + }, + { + "name": "libwebpmux3", + "version": "1.2.2-2" + }, + { + "name": "libwebrtc-audio-processing1", + "version": "0.3.1-0ubuntu5" + }, + { + "name": "libwhoopsie-preferences0", + "version": "23" + }, + { + "name": "libwhoopsie0", + "version": "0.2.77" + }, + { + "name": "libwinpr2-2", + "version": "2.6.1+dfsg1-3ubuntu1" + }, + { + "name": "libwmf-0.2-7", + "version": "0.2.12-5ubuntu1" + }, + { + "name": "libwmf-0.2-7-gtk", + "version": "0.2.12-5ubuntu1" + }, + { + "name": "libwmf0.2-7-gtk", + "version": "0.2.12-5ubuntu1" + }, + { + "name": "libwmflite-0.2-7", + "version": "0.2.12-5ubuntu1" + }, + { + "name": "libwnck-3-0", + "version": "40.1-1" + }, + { + "name": "libwnck-3-common", + "version": "40.1-1" + }, + { + "name": "libwoff1", + "version": "1.0.2-1build4" + }, + { + "name": "libwpd-0.10-10", + "version": "0.10.3-2build1" + }, + { + "name": "libwpg-0.3-3", + "version": "0.3.3-1build3" + }, + { + "name": "libwps-0.4-4", + "version": "0.4.12-2build1" + }, + { + "name": "libwrap0", + "version": "7.6.q-31build2" + }, + { + "name": "libwww-perl", + "version": "6.61-1" + }, + { + "name": "libx11-6", + "version": "2:1.7.5-1" + }, + { + "name": "libx11-data", + "version": "2:1.7.5-1" + }, + { + "name": "libx11-protocol-perl", + "version": "0.56-7.1" + }, + { + "name": "libx11-xcb1", + "version": "2:1.7.5-1" + }, + { + "name": "libxatracker2", + "version": "22.0.1-1ubuntu2" + }, + { + "name": "libxau6", + "version": "1:1.0.9-1build5" + }, + { + "name": "libxaw7", + "version": "2:1.0.14-1" + }, + { + "name": "libxcb-dri2-0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-dri3-0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-glx0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-icccm4", + "version": "0.4.1-1.1build2" + }, + { + "name": "libxcb-image0", + "version": "0.4.0-2" + }, + { + "name": "libxcb-keysyms1", + "version": "0.4.0-1build3" + }, + { + "name": "libxcb-present0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-randr0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-render-util0", + "version": "0.3.9-1build3" + }, + { + "name": "libxcb-render0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-res0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-shape0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-shm0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-sync1", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-util1", + "version": "0.4.0-1build2" + }, + { + "name": "libxcb-xfixes0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-xkb1", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb-xv0", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcb1", + "version": "1.14-3ubuntu3" + }, + { + "name": "libxcomposite1", + "version": "1:0.4.5-1build2" + }, + { + "name": "libxcursor1", + "version": "1:1.2.0-2build4" + }, + { + "name": "libxcvt0", + "version": "0.1.1-3" + }, + { + "name": "libxdamage1", + "version": "1:1.1.5-2build2" + }, + { + "name": "libxdmcp6", + "version": "1:1.1.3-0ubuntu5" + }, + { + "name": "libxext6", + "version": "2:1.3.4-1build1" + }, + { + "name": "libxfixes3", + "version": "1:6.0.0-1" + }, + { + "name": "libxfont2", + "version": "1:2.0.5-1build1" + }, + { + "name": "libxft2", + "version": "2.3.4-1" + }, + { + "name": "libxi6", + "version": "2:1.8-1build1" + }, + { + "name": "libxinerama1", + "version": "2:1.1.4-3" + }, + { + "name": "libxkbcommon-x11-0", + "version": "1.4.0-1" + }, + { + "name": "libxkbcommon0", + "version": "1.4.0-1" + }, + { + "name": "libxkbfile1", + "version": "1:1.1.0-1build3" + }, + { + "name": "libxkbregistry0", + "version": "1.4.0-1" + }, + { + "name": "libxklavier16", + "version": "5.4-4build2" + }, + { + "name": "libxml-parser-perl", + "version": "2.46-3build1" + }, + { + "name": "libxml-twig-perl", + "version": "1:3.52-1" + }, + { + "name": "libxml2", + "version": "2.9.13+dfsg-1build1" + }, + { + "name": "libxmlb2", + "version": "0.3.6-2build1" + }, + { + "name": "libxmlsec1", + "version": "1.2.33-1build2" + }, + { + "name": "libxmlsec1-nss", + "version": "1.2.33-1build2" + }, + { + "name": "libxmu6", + "version": "2:1.1.3-3" + }, + { + "name": "libxmuu1", + "version": "2:1.1.3-3" + }, + { + "name": "libxpm4", + "version": "1:3.5.12-1build2" + }, + { + "name": "libxrandr2", + "version": "2:1.5.2-1build1" + }, + { + "name": "libxrender1", + "version": "1:0.9.10-1build4" + }, + { + "name": "libxres1", + "version": "2:1.2.1-1" + }, + { + "name": "libxshmfence1", + "version": "1.3-1build4" + }, + { + "name": "libxslt1.1", + "version": "1.1.34-4build2" + }, + { + "name": "libxss1", + "version": "1:1.2.3-1build2" + }, + { + "name": "libxt6", + "version": "1:1.2.1-1" + }, + { + "name": "libxtables12", + "version": "1.8.7-1ubuntu5" + }, + { + "name": "libxtst6", + "version": "2:1.2.3-1build4" + }, + { + "name": "libxv1", + "version": "2:1.0.11-1build2" + }, + { + "name": "libxvmc1", + "version": "2:1.0.12-2build2" + }, + { + "name": "libxxf86dga1", + "version": "2:1.1.5-0ubuntu3" + }, + { + "name": "libxxf86vm1", + "version": "1:1.1.4-1build3" + }, + { + "name": "libxxhash0", + "version": "0.8.1-1" + }, + { + "name": "libyajl2", + "version": "2.1.0-3build2" + }, + { + "name": "libyaml-0-2", + "version": "0.2.2-1build2" + }, + { + "name": "libyelp0", + "version": "42.1-1" + }, + { + "name": "libzstd1", + "version": "1.4.8+dfsg-3build1" + }, + { + "name": "linux-base", + "version": "4.5ubuntu9" + }, + { + "name": "linux-firmware", + "version": "20220329.git681281e4-0ubuntu1" + }, + { + "name": "linux-generic-hwe-22.04", + "version": "5.15.0.25.27" + }, + { + "name": "linux-headers-5.15.0-25", + "version": "5.15.0-25.25" + }, + { + "name": "linux-headers-5.15.0-25-generic", + "version": "5.15.0-25.25" + }, + { + "name": "linux-headers-generic-hwe-22.04", + "version": "5.15.0.25.27" + }, + { + "name": "linux-image-5.15.0-25-generic", + "version": "5.15.0-25.25" + }, + { + "name": "linux-image-generic-hwe-22.04", + "version": "5.15.0.25.27" + }, + { + "name": "linux-modules-5.15.0-25-generic", + "version": "5.15.0-25.25" + }, + { + "name": "linux-modules-extra-5.15.0-25-generic", + "version": "5.15.0-25.25" + }, + { + "name": "linux-sound-base", + "version": "1.0.25+dfsg-0ubuntu7" + }, + { + "name": "locales", + "version": "2.35-0ubuntu3" + }, + { + "name": "lockfile", + "version": "0.12.2" + }, + { + "name": "login", + "version": "1:4.8.1-2ubuntu2" + }, + { + "name": "logrotate", + "version": "3.19.0-1ubuntu1" + }, + { + "name": "logsave", + "version": "1.46.5-2ubuntu1" + }, + { + "name": "lp-solve", + "version": "5.5.2.5-2build2" + }, + { + "name": "lsb-base", + "version": "11.1.0ubuntu4" + }, + { + "name": "lsb-release", + "version": "11.1.0ubuntu4" + }, + { + "name": "lshw", + "version": "02.19.git.2021.06.19.996aaad9c7-2build1" + }, + { + "name": "lsof", + "version": "4.93.2+dfsg-1.1build2" + }, + { + "name": "mailcap", + "version": "3.70+nmu1ubuntu1" + }, + { + "name": "man-db", + "version": "2.10.2-1" + }, + { + "name": "manpages", + "version": "5.10-1ubuntu1" + }, + { + "name": "mawk", + "version": "1.3.4.20200120-3" + }, + { + "name": "media-player-info", + "version": "24-2" + }, + { + "name": "media-types", + "version": "7.0.0" + }, + { + "name": "memtest86+", + "version": "5.31b+dfsg-4" + }, + { + "name": "mesa-vulkan-drivers", + "version": "22.0.1-1ubuntu2" + }, + { + "name": "mime-support", + "version": "3.66" + }, + { + "name": "mobile-broadband-provider-info", + "version": "20220315-1" + }, + { + "name": "modemmanager", + "version": "1.18.6-1" + }, + { + "name": "mokutil", + "version": "0.4.0-1ubuntu2" + }, + { + "name": "monotonic", + "version": "1.6" + }, + { + "name": "more-itertools", + "version": "8.10.0" + }, + { + "name": "mount", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "mousetweaks", + "version": "3.32.0-3build2" + }, + { + "name": "mscompress", + "version": "0.4-9build1" + }, + { + "name": "mtr-tiny", + "version": "0.95-1" + }, + { + "name": "mutter-common", + "version": "42.0-3ubuntu2" + }, + { + "name": "mythes-en-us", + "version": "1:7.2.0-2" + }, + { + "name": "nano", + "version": "6.2-1" + }, + { + "name": "nautilus", + "version": "1:42.0-1ubuntu2" + }, + { + "name": "nautilus-data", + "version": "1:42.0-1ubuntu2" + }, + { + "name": "nautilus-extension-gnome-terminal", + "version": "3.44.0-1ubuntu1" + }, + { + "name": "nautilus-sendto", + "version": "3.8.6-4" + }, + { + "name": "nautilus-share", + "version": "0.7.3-2ubuntu6" + }, + { + "name": "ncurses-base", + "version": "6.3-2" + }, + { + "name": "ncurses-bin", + "version": "6.3-2" + }, + { + "name": "nessusagent", + "version": "10.1.3" + }, + { + "name": "netbase", + "version": "6.3" + }, + { + "name": "netcat-openbsd", + "version": "1.218-4ubuntu1" + }, + { + "name": "netifaces", + "version": "0.11.0" + }, + { + "name": "netplan.io", + "version": "0.104-0ubuntu2" + }, + { + "name": "network-manager", + "version": "1.36.4-2ubuntu1" + }, + { + "name": "network-manager-config-connectivity-ubuntu", + "version": "1.36.4-2ubuntu1" + }, + { + "name": "network-manager-gnome", + "version": "1.24.0-1ubuntu3" + }, + { + "name": "network-manager-openvpn", + "version": "1.8.18-1" + }, + { + "name": "network-manager-openvpn-gnome", + "version": "1.8.18-1" + }, + { + "name": "network-manager-pptp", + "version": "1.2.10-1" + }, + { + "name": "network-manager-pptp-gnome", + "version": "1.2.10-1" + }, + { + "name": "networkd-dispatcher", + "version": "2.1-2" + }, + { + "name": "nftables", + "version": "1.0.2-1ubuntu2" + }, + { + "name": "ntfs-3g", + "version": "1:2021.8.22-3ubuntu1" + }, + { + "name": "oauthlib", + "version": "3.2.0" + }, + { + "name": "openprinting-ppds", + "version": "20220223-0ubuntu1" + }, + { + "name": "openssh-client", + "version": "1:8.9p1-3" + }, + { + "name": "openssl", + "version": "3.0.2-0ubuntu1" + }, + { + "name": "openvpn", + "version": "2.5.5-1ubuntu3" + }, + { + "name": "orca", + "version": "42.0-1ubuntu1" + }, + { + "name": "os-prober", + "version": "1.79ubuntu2" + }, + { + "name": "p11-kit", + "version": "0.24.0-6build1" + }, + { + "name": "p11-kit-modules", + "version": "0.24.0-6build1" + }, + { + "name": "packagekit", + "version": "1.2.5-2ubuntu2" + }, + { + "name": "packagekit-tools", + "version": "1.2.5-2ubuntu2" + }, + { + "name": "paramiko", + "version": "2.9.3" + }, + { + "name": "parted", + "version": "3.4-2build1" + }, + { + "name": "passwd", + "version": "1:4.8.1-2ubuntu2" + }, + { + "name": "patch", + "version": "2.7.6-7build2" + }, + { + "name": "pci.ids", + "version": "0.0~2022.01.22-1" + }, + { + "name": "pciutils", + "version": "1:3.7.0-6" + }, + { + "name": "pcmciautils", + "version": "018-13build1" + }, + { + "name": "perl", + "version": "5.34.0-3ubuntu1" + }, + { + "name": "perl-base", + "version": "5.34.0-3ubuntu1" + }, + { + "name": "perl-modules-5.34", + "version": "5.34.0-3ubuntu1" + }, + { + "name": "perl-openssl-defaults", + "version": "5build2" + }, + { + "name": "pinentry-curses", + "version": "1.1.1-1build2" + }, + { + "name": "pinentry-gnome3", + "version": "1.1.1-1build2" + }, + { + "name": "pipewire", + "version": "0.3.48-1ubuntu1" + }, + { + "name": "pipewire-bin", + "version": "0.3.48-1ubuntu1" + }, + { + "name": "pipewire-media-session", + "version": "0.4.1-2ubuntu1" + }, + { + "name": "pkexec", + "version": "0.105-33" + }, + { + "name": "plymouth", + "version": "0.9.5+git20211018-1ubuntu3" + }, + { + "name": "plymouth-label", + "version": "0.9.5+git20211018-1ubuntu3" + }, + { + "name": "plymouth-theme-spinner", + "version": "0.9.5+git20211018-1ubuntu3" + }, + { + "name": "plymouth-theme-ubuntu-text", + "version": "0.9.5+git20211018-1ubuntu3" + }, + { + "name": "policykit-1", + "version": "0.105-33" + }, + { + "name": "polkitd", + "version": "0.105-33" + }, + { + "name": "poppler-data", + "version": "0.4.11-1" + }, + { + "name": "poppler-utils", + "version": "22.02.0-2" + }, + { + "name": "power-profiles-daemon", + "version": "0.10.1-3" + }, + { + "name": "ppp", + "version": "2.4.9-1+1ubuntu3" + }, + { + "name": "pptp-linux", + "version": "1.10.0-1build3" + }, + { + "name": "printer-driver-brlaser", + "version": "6-3" + }, + { + "name": "printer-driver-c2esp", + "version": "27-11build1" + }, + { + "name": "printer-driver-foo2zjs", + "version": "20200505dfsg0-2ubuntu2" + }, + { + "name": "printer-driver-foo2zjs-common", + "version": "20200505dfsg0-2ubuntu2" + }, + { + "name": "printer-driver-hpcups", + "version": "3.21.12+dfsg0-1" + }, + { + "name": "printer-driver-m2300w", + "version": "0.51-15build1" + }, + { + "name": "printer-driver-min12xxw", + "version": "0.0.9-11build2" + }, + { + "name": "printer-driver-pnm2ppa", + "version": "1.13+nondbs-0ubuntu9" + }, + { + "name": "printer-driver-postscript-hp", + "version": "3.21.12+dfsg0-1" + }, + { + "name": "printer-driver-ptouch", + "version": "1.6-2build1" + }, + { + "name": "printer-driver-pxljr", + "version": "1.4+repack0-6build1" + }, + { + "name": "printer-driver-sag-gdi", + "version": "0.1-8" + }, + { + "name": "printer-driver-splix", + "version": "2.0.0+svn315-7fakesync1build3" + }, + { + "name": "procps", + "version": "2:3.3.17-6ubuntu2" + }, + { + "name": "protobuf", + "version": "3.12.4" + }, + { + "name": "psmisc", + "version": "23.4-2build3" + }, + { + "name": "ptyprocess", + "version": "0.7.0" + }, + { + "name": "publicsuffix", + "version": "20211207.1025-1" + }, + { + "name": "pulseaudio", + "version": "1:15.99.1+dfsg1-1ubuntu1" + }, + { + "name": "pulseaudio-module-bluetooth", + "version": "1:15.99.1+dfsg1-1ubuntu1" + }, + { + "name": "pulseaudio-utils", + "version": "1:15.99.1+dfsg1-1ubuntu1" + }, + { + "name": "pyparsing", + "version": "2.4.7" + }, + { + "name": "python-apt", + "version": "2.3.0+ubuntu2" + }, + { + "name": "python-apt-common", + "version": "2.3.0ubuntu2" + }, + { + "name": "python-dateutil", + "version": "2.8.1" + }, + { + "name": "python-debian", + "version": "0.1.43ubuntu1" + }, + { + "name": "python3", + "version": "3.10.4-0ubuntu2" + }, + { + "name": "python3-apport", + "version": "2.20.11-0ubuntu82" + }, + { + "name": "python3-apt", + "version": "2.3.0ubuntu2" + }, + { + "name": "python3-aptdaemon", + "version": "1.1.1+bzr982-0ubuntu39" + }, + { + "name": "python3-aptdaemon.gtk3widgets", + "version": "1.1.1+bzr982-0ubuntu39" + }, + { + "name": "python3-bcrypt", + "version": "3.2.0-1build1" + }, + { + "name": "python3-blinker", + "version": "1.4+dfsg1-0.4" + }, + { + "name": "python3-brlapi", + "version": "6.4-4ubuntu2" + }, + { + "name": "python3-cairo", + "version": "1.20.1-3build1" + }, + { + "name": "python3-certifi", + "version": "2020.6.20-1" + }, + { + "name": "python3-cffi-backend", + "version": "1.15.0-1build2" + }, + { + "name": "python3-chardet", + "version": "4.0.0-1" + }, + { + "name": "python3-click", + "version": "8.0.3-1" + }, + { + "name": "python3-colorama", + "version": "0.4.4-1" + }, + { + "name": "python3-commandnotfound", + "version": "22.04.0" + }, + { + "name": "python3-cryptography", + "version": "3.4.8-1ubuntu2" + }, + { + "name": "python3-cups", + "version": "2.0.1-5build1" + }, + { + "name": "python3-cupshelpers", + "version": "1.5.16-0ubuntu3" + }, + { + "name": "python3-dateutil", + "version": "2.8.1-6" + }, + { + "name": "python3-dbus", + "version": "1.2.18-3build1" + }, + { + "name": "python3-debconf", + "version": "1.5.79ubuntu1" + }, + { + "name": "python3-debian", + "version": "0.1.43ubuntu1" + }, + { + "name": "python3-defer", + "version": "1.0.6-2.1ubuntu1" + }, + { + "name": "python3-distro", + "version": "1.7.0-1" + }, + { + "name": "python3-distro-info", + "version": "1.1build1" + }, + { + "name": "python3-distupgrade", + "version": "1:22.04.10" + }, + { + "name": "python3-fasteners", + "version": "0.14.1-2" + }, + { + "name": "python3-future", + "version": "0.18.2-5" + }, + { + "name": "python3-gdbm", + "version": "3.10.4-0ubuntu1" + }, + { + "name": "python3-gi", + "version": "3.42.0-3build1" + }, + { + "name": "python3-gi-cairo", + "version": "3.42.0-3build1" + }, + { + "name": "python3-httplib2", + "version": "0.20.2-2" + }, + { + "name": "python3-ibus-1.0", + "version": "1.5.26-4" + }, + { + "name": "python3-idna", + "version": "3.3-1" + }, + { + "name": "python3-importlib-metadata", + "version": "4.6.4-1" + }, + { + "name": "python3-jeepney", + "version": "0.7.1-3" + }, + { + "name": "python3-jwt", + "version": "2.3.0-1" + }, + { + "name": "python3-keyring", + "version": "23.5.0-1" + }, + { + "name": "python3-launchpadlib", + "version": "1.10.16-1" + }, + { + "name": "python3-lazr.restfulclient", + "version": "0.14.4-1" + }, + { + "name": "python3-lazr.uri", + "version": "1.0.6-2" + }, + { + "name": "python3-ldb", + "version": "2:2.4.2-0ubuntu1" + }, + { + "name": "python3-lib2to3", + "version": "3.10.4-0ubuntu1" + }, + { + "name": "python3-lockfile", + "version": "1:0.12.2-2.2" + }, + { + "name": "python3-louis", + "version": "3.20.0-2" + }, + { + "name": "python3-macaroonbakery", + "version": "1.3.1-2" + }, + { + "name": "python3-mako", + "version": "1.1.3+ds1-2" + }, + { + "name": "python3-markupsafe", + "version": "2.0.1-2build1" + }, + { + "name": "python3-minimal", + "version": "3.10.4-0ubuntu2" + }, + { + "name": "python3-monotonic", + "version": "1.6-2" + }, + { + "name": "python3-more-itertools", + "version": "8.10.0-2" + }, + { + "name": "python3-nacl", + "version": "1.5.0-2" + }, + { + "name": "python3-netifaces", + "version": "0.11.0-1build2" + }, + { + "name": "python3-oauthlib", + "version": "3.2.0-1" + }, + { + "name": "python3-olefile", + "version": "0.46-3" + }, + { + "name": "python3-paramiko", + "version": "2.9.3-0ubuntu1" + }, + { + "name": "python3-pexpect", + "version": "4.8.0-2ubuntu1" + }, + { + "name": "python3-pil", + "version": "9.0.1-1build1" + }, + { + "name": "python3-pkg-resources", + "version": "59.6.0-1.2" + }, + { + "name": "python3-problem-report", + "version": "2.20.11-0ubuntu82" + }, + { + "name": "python3-protobuf", + "version": "3.12.4-1ubuntu7" + }, + { + "name": "python3-ptyprocess", + "version": "0.7.0-3" + }, + { + "name": "python3-pyatspi", + "version": "2.38.2-1" + }, + { + "name": "python3-pymacaroons", + "version": "0.13.0-4" + }, + { + "name": "python3-pyparsing", + "version": "2.4.7-1" + }, + { + "name": "python3-renderpm", + "version": "3.6.8-1" + }, + { + "name": "python3-reportlab", + "version": "3.6.8-1" + }, + { + "name": "python3-reportlab-accel", + "version": "3.6.8-1" + }, + { + "name": "python3-requests", + "version": "2.25.1+dfsg-2" + }, + { + "name": "python3-rfc3339", + "version": "1.1-3" + }, + { + "name": "python3-secretstorage", + "version": "3.3.1-1" + }, + { + "name": "python3-six", + "version": "1.16.0-3ubuntu1" + }, + { + "name": "python3-software-properties", + "version": "0.99.22" + }, + { + "name": "python3-speechd", + "version": "0.11.1-1" + }, + { + "name": "python3-systemd", + "version": "234-3ubuntu2" + }, + { + "name": "python3-talloc", + "version": "2.3.3-2build1" + }, + { + "name": "python3-tz", + "version": "2022.1-1" + }, + { + "name": "python3-uno", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "python3-update-manager", + "version": "1:22.04.9" + }, + { + "name": "python3-urllib3", + "version": "1.26.5-1~exp1" + }, + { + "name": "python3-wadllib", + "version": "1.3.6-1" + }, + { + "name": "python3-xdg", + "version": "0.27-2" + }, + { + "name": "python3-xkit", + "version": "0.5.0ubuntu5" + }, + { + "name": "python3-yaml", + "version": "5.4.1-1ubuntu1" + }, + { + "name": "python3-zipp", + "version": "1.0.0-3" + }, + { + "name": "python3.10", + "version": "3.10.4-3" + }, + { + "name": "python3.10-minimal", + "version": "3.10.4-3" + }, + { + "name": "pytz", + "version": "2022.1" + }, + { + "name": "pyxdg", + "version": "0.27" + }, + { + "name": "readline-common", + "version": "8.1.2-1" + }, + { + "name": "remmina", + "version": "1.4.25+dfsg-1" + }, + { + "name": "remmina-common", + "version": "1.4.25+dfsg-1" + }, + { + "name": "remmina-plugin-rdp", + "version": "1.4.25+dfsg-1" + }, + { + "name": "remmina-plugin-secret", + "version": "1.4.25+dfsg-1" + }, + { + "name": "remmina-plugin-vnc", + "version": "1.4.25+dfsg-1" + }, + { + "name": "reportlab", + "version": "3.6.8" + }, + { + "name": "requests", + "version": "2.25.1" + }, + { + "name": "rfkill", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "rhythmbox", + "version": "3.4.4-5ubuntu1" + }, + { + "name": "rhythmbox-data", + "version": "3.4.4-5ubuntu1" + }, + { + "name": "rhythmbox-plugin-alternative-toolbar", + "version": "0.20.2-1" + }, + { + "name": "rhythmbox-plugins", + "version": "3.4.4-5ubuntu1" + }, + { + "name": "rsync", + "version": "3.2.3-8ubuntu3" + }, + { + "name": "rsyslog", + "version": "8.2112.0-2ubuntu2" + }, + { + "name": "rtkit", + "version": "0.13-4build2" + }, + { + "name": "rygel", + "version": "0.40.3-1ubuntu2" + }, + { + "name": "samba-libs", + "version": "2:4.15.5~dfsg-0ubuntu5" + }, + { + "name": "sane-airscan", + "version": "0.99.27-1build1" + }, + { + "name": "sane-utils", + "version": "1.1.1-5" + }, + { + "name": "sbsigntool", + "version": "0.9.4-2ubuntu2" + }, + { + "name": "seahorse", + "version": "41.0-2" + }, + { + "name": "secureboot-db", + "version": "1.8" + }, + { + "name": "sed", + "version": "4.8-1ubuntu2" + }, + { + "name": "sensible-utils", + "version": "0.0.17" + }, + { + "name": "session-migration", + "version": "0.3.6" + }, + { + "name": "sgml-base", + "version": "1.30" + }, + { + "name": "sgml-data", + "version": "2.0.11+nmu1" + }, + { + "name": "shared-mime-info", + "version": "2.1-2" + }, + { + "name": "shim-signed", + "version": "1.51+15.4-0ubuntu9" + }, + { + "name": "shotwell", + "version": "0.30.14-1ubuntu5" + }, + { + "name": "shotwell-common", + "version": "0.30.14-1ubuntu5" + }, + { + "name": "simple-scan", + "version": "42.0-1" + }, + { + "name": "six", + "version": "1.16.0" + }, + { + "name": "snapd", + "version": "2.55.3+22.04" + }, + { + "name": "software-properties-common", + "version": "0.99.22" + }, + { + "name": "software-properties-gtk", + "version": "0.99.22" + }, + { + "name": "sound-icons", + "version": "0.1-8" + }, + { + "name": "speech-dispatcher", + "version": "0.11.1-1" + }, + { + "name": "speech-dispatcher-audio-plugins", + "version": "0.11.1-1" + }, + { + "name": "speech-dispatcher-espeak-ng", + "version": "0.11.1-1" + }, + { + "name": "spice-vdagent", + "version": "0.22.1-1" + }, + { + "name": "squashfs-tools", + "version": "1:4.5-3build1" + }, + { + "name": "ssl-cert", + "version": "1.1.2" + }, + { + "name": "strace", + "version": "5.16-0ubuntu3" + }, + { + "name": "sudo", + "version": "1.9.9-1ubuntu2" + }, + { + "name": "switcheroo-control", + "version": "2.4-3build2" + }, + { + "name": "system-config-printer", + "version": "1.5.16-0ubuntu3" + }, + { + "name": "system-config-printer-common", + "version": "1.5.16-0ubuntu3" + }, + { + "name": "system-config-printer-udev", + "version": "1.5.16-0ubuntu3" + }, + { + "name": "systemd", + "version": "249.11-0ubuntu3" + }, + { + "name": "systemd-oomd", + "version": "249.11-0ubuntu3" + }, + { + "name": "systemd-sysv", + "version": "249.11-0ubuntu3" + }, + { + "name": "systemd-timesyncd", + "version": "249.11-0ubuntu3" + }, + { + "name": "sysvinit-utils", + "version": "3.01-1ubuntu1" + }, + { + "name": "tar", + "version": "1.34+dfsg-1build3" + }, + { + "name": "tcl", + "version": "8.6.11+1build2" + }, + { + "name": "tcl8.6", + "version": "8.6.12+dfsg-1build1" + }, + { + "name": "tcpdump", + "version": "4.99.1-3build2" + }, + { + "name": "telnet", + "version": "0.17-44build1" + }, + { + "name": "thermald", + "version": "2.4.9-1" + }, + { + "name": "thunderbird", + "version": "1:91.8.0+build2-0ubuntu1" + }, + { + "name": "thunderbird-gnome-support", + "version": "1:91.8.0+build2-0ubuntu1" + }, + { + "name": "thunderbird-locale-en", + "version": "1:91.8.0+build2-0ubuntu1" + }, + { + "name": "thunderbird-locale-en-us", + "version": "1:91.8.0+build2-0ubuntu1" + }, + { + "name": "time", + "version": "1.9-0.1build2" + }, + { + "name": "tnftp", + "version": "20210827-4build1" + }, + { + "name": "totem", + "version": "42.0-1ubuntu1" + }, + { + "name": "totem-common", + "version": "42.0-1ubuntu1" + }, + { + "name": "totem-plugins", + "version": "42.0-1ubuntu1" + }, + { + "name": "tpm-udev", + "version": "0.6" + }, + { + "name": "tracker", + "version": "3.3.0-1" + }, + { + "name": "tracker-extract", + "version": "3.3.0-1" + }, + { + "name": "tracker-miner-fs", + "version": "3.3.0-1" + }, + { + "name": "transmission-common", + "version": "3.00-2ubuntu2" + }, + { + "name": "transmission-gtk", + "version": "3.00-2ubuntu2" + }, + { + "name": "tzdata", + "version": "2022a-0ubuntu1" + }, + { + "name": "ubuntu-advantage-desktop-daemon", + "version": "1.8" + }, + { + "name": "ubuntu-advantage-tools", + "version": "27.7" + }, + { + "name": "ubuntu-advantage-tools", + "version": "27.7~22.04.1" + }, + { + "name": "ubuntu-desktop", + "version": "1.481" + }, + { + "name": "ubuntu-desktop-minimal", + "version": "1.481" + }, + { + "name": "ubuntu-docs", + "version": "22.04.4" + }, + { + "name": "ubuntu-drivers-common", + "version": "1:0.9.6.1" + }, + { + "name": "ubuntu-keyring", + "version": "2021.03.26" + }, + { + "name": "ubuntu-minimal", + "version": "1.481" + }, + { + "name": "ubuntu-mono", + "version": "20.10-0ubuntu2" + }, + { + "name": "ubuntu-release-upgrader-core", + "version": "1:22.04.10" + }, + { + "name": "ubuntu-release-upgrader-gtk", + "version": "1:22.04.10" + }, + { + "name": "ubuntu-report", + "version": "1.7.1" + }, + { + "name": "ubuntu-session", + "version": "42.0-1ubuntu2" + }, + { + "name": "ubuntu-settings", + "version": "22.04.6" + }, + { + "name": "ubuntu-standard", + "version": "1.481" + }, + { + "name": "ubuntu-wallpapers", + "version": "22.04.4-0ubuntu1" + }, + { + "name": "ubuntu-wallpapers-jammy", + "version": "22.04.4-0ubuntu1" + }, + { + "name": "ucf", + "version": "3.0043" + }, + { + "name": "udev", + "version": "249.11-0ubuntu3" + }, + { + "name": "udisks2", + "version": "2.9.4-1ubuntu2" + }, + { + "name": "ufw", + "version": "0.36.1-4build1" + }, + { + "name": "unattended-upgrades", + "version": "2.8ubuntu1" + }, + { + "name": "uno-libs-private", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "unzip", + "version": "6.0-26ubuntu3" + }, + { + "name": "update-inetd", + "version": "4.51" + }, + { + "name": "update-manager", + "version": "1:22.04.9" + }, + { + "name": "update-manager-core", + "version": "1:22.04.9" + }, + { + "name": "update-notifier", + "version": "3.192.54" + }, + { + "name": "update-notifier-common", + "version": "3.192.54" + }, + { + "name": "upower", + "version": "0.99.17-1" + }, + { + "name": "ure", + "version": "1:7.3.2-0ubuntu2" + }, + { + "name": "urllib3", + "version": "1.26.5" + }, + { + "name": "usb-creator-common", + "version": "0.3.13" + }, + { + "name": "usb-creator-gtk", + "version": "0.3.13" + }, + { + "name": "usb-modeswitch", + "version": "2.6.1-3ubuntu2" + }, + { + "name": "usb-modeswitch-data", + "version": "20191128-4" + }, + { + "name": "usb.ids", + "version": "2022.04.02-1" + }, + { + "name": "usbmuxd", + "version": "1.1.1-2build2" + }, + { + "name": "usbutils", + "version": "1:014-1build1" + }, + { + "name": "usrmerge", + "version": "25ubuntu2" + }, + { + "name": "util-linux", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "uuid-runtime", + "version": "2.37.2-4ubuntu3" + }, + { + "name": "vim-common", + "version": "2:8.2.3995-1ubuntu2" + }, + { + "name": "vim-tiny", + "version": "2:8.2.3995-1ubuntu2" + }, + { + "name": "wadllib", + "version": "1.3.6" + }, + { + "name": "wamerican", + "version": "2020.12.07-2" + }, + { + "name": "wbritish", + "version": "2020.12.07-2" + }, + { + "name": "wget", + "version": "1.21.2-2ubuntu1" + }, + { + "name": "whiptail", + "version": "0.52.21-5ubuntu2" + }, + { + "name": "whoopsie", + "version": "0.2.77" + }, + { + "name": "whoopsie-preferences", + "version": "23" + }, + { + "name": "wireless-regdb", + "version": "2021.08.28-0ubuntu1" + }, + { + "name": "wireless-tools", + "version": "30~pre9-13.1ubuntu4" + }, + { + "name": "wpasupplicant", + "version": "2:2.10-6" + }, + { + "name": "x11-apps", + "version": "7.7+8build2" + }, + { + "name": "x11-common", + "version": "1:7.7+23ubuntu2" + }, + { + "name": "x11-session-utils", + "version": "7.7+4build2" + }, + { + "name": "x11-utils", + "version": "7.7+5build2" + }, + { + "name": "x11-xkb-utils", + "version": "7.7+5build4" + }, + { + "name": "x11-xserver-utils", + "version": "7.7+9build1" + }, + { + "name": "xauth", + "version": "1:1.1-1build2" + }, + { + "name": "xbitmaps", + "version": "1.1.1-2.1ubuntu1" + }, + { + "name": "xbrlapi", + "version": "6.4-4ubuntu2" + }, + { + "name": "xcvt", + "version": "0.1.1-3" + }, + { + "name": "xdg-dbus-proxy", + "version": "0.1.3-1" + }, + { + "name": "xdg-desktop-portal", + "version": "1.14.3-0ubuntu2" + }, + { + "name": "xdg-desktop-portal-gnome", + "version": "42.0.1-1ubuntu2" + }, + { + "name": "xdg-desktop-portal-gtk", + "version": "1.14.0-1build1" + }, + { + "name": "xdg-user-dirs", + "version": "0.17-2ubuntu4" + }, + { + "name": "xdg-user-dirs-gtk", + "version": "0.10-3build2" + }, + { + "name": "xdg-utils", + "version": "1.1.3-4.1ubuntu1" + }, + { + "name": "xfonts-encodings", + "version": "1:1.0.5-0ubuntu2" + }, + { + "name": "xfonts-scalable", + "version": "1:1.0.3-1.2ubuntu1" + }, + { + "name": "xfonts-utils", + "version": "1:7.7+6build2" + }, + { + "name": "xinit", + "version": "1.4.1-0ubuntu4" + }, + { + "name": "xinput", + "version": "1.6.3-1build2" + }, + { + "name": "xkb-data", + "version": "2.33-1" + }, + { + "name": "xorg", + "version": "1:7.7+23ubuntu2" + }, + { + "name": "xorg-docs-core", + "version": "1:1.7.1-1.2" + }, + { + "name": "xserver-common", + "version": "2:21.1.3-2ubuntu2" + }, + { + "name": "xserver-xephyr", + "version": "2:21.1.3-2ubuntu2" + }, + { + "name": "xserver-xorg", + "version": "1:7.7+23ubuntu2" + }, + { + "name": "xserver-xorg-core", + "version": "2:21.1.3-2ubuntu2" + }, + { + "name": "xserver-xorg-input-all", + "version": "1:7.7+23ubuntu2" + }, + { + "name": "xserver-xorg-input-libinput", + "version": "1.2.1-1" + }, + { + "name": "xserver-xorg-input-wacom", + "version": "1:1.0.0-3ubuntu1" + }, + { + "name": "xserver-xorg-legacy", + "version": "2:21.1.3-2ubuntu2" + }, + { + "name": "xserver-xorg-video-all", + "version": "1:7.7+23ubuntu2" + }, + { + "name": "xserver-xorg-video-amdgpu", + "version": "22.0.0-1build1" + }, + { + "name": "xserver-xorg-video-ati", + "version": "1:19.1.0-2build3" + }, + { + "name": "xserver-xorg-video-fbdev", + "version": "1:0.5.0-2build1" + }, + { + "name": "xserver-xorg-video-intel", + "version": "2:2.99.917+git20210115-1" + }, + { + "name": "xserver-xorg-video-nouveau", + "version": "1:1.0.17-2build1" + }, + { + "name": "xserver-xorg-video-qxl", + "version": "0.1.5+git20200331-3" + }, + { + "name": "xserver-xorg-video-radeon", + "version": "1:19.1.0-2build3" + }, + { + "name": "xserver-xorg-video-vesa", + "version": "1:2.5.0-1build4" + }, + { + "name": "xserver-xorg-video-vmware", + "version": "1:13.3.0-3build1" + }, + { + "name": "xwayland", + "version": "2:22.1.1-1" + }, + { + "name": "xxd", + "version": "2:8.2.3995-1ubuntu2" + }, + { + "name": "xz-utils", + "version": "5.2.5-2ubuntu1" + }, + { + "name": "yaru-theme-gnome-shell", + "version": "22.04.4" + }, + { + "name": "yaru-theme-gtk", + "version": "22.04.4" + }, + { + "name": "yaru-theme-icon", + "version": "22.04.4" + }, + { + "name": "yaru-theme-sound", + "version": "22.04.4" + }, + { + "name": "yelp", + "version": "42.1-1" + }, + { + "name": "yelp-xsl", + "version": "42.0-1" + }, + { + "name": "zenity", + "version": "3.42.0-1" + }, + { + "name": "zenity-common", + "version": "3.42.0-1" + }, + { + "name": "zip", + "version": "3.0-12build2" + }, + { + "name": "zipp", + "version": "1.0.0" + }, + { + "name": "zlib1g", + "version": "1:1.2.11.dfsg-2ubuntu9" + }, + { + "name": "zstd", + "version": "1.4.8+dfsg-3build1" + }, + { + "name": "libpcre3", + "version": "2:8.39-13ubuntu0.22.04.1" + }, + { + "name": "vim", + "version": "2:8.2.3995-1ubuntu2" + }, + { + "name": "vim-runtime", + "version": "2:8.2.3995-1ubuntu2" + } +] \ No newline at end of file diff --git a/go.mod b/go.mod index df70b51491..1901531c78 100644 --- a/go.mod +++ b/go.mod @@ -50,7 +50,7 @@ require ( github.com/kolide/launcher v0.11.25-0.20220321235155-c3e9480037d2 github.com/macadmins/osquery-extension v0.0.7 github.com/mattermost/xml-roundtrip-validator v0.0.0-20201213122252-bcd7e1b9601e - github.com/mattn/go-sqlite3 v1.14.8 + github.com/mattn/go-sqlite3 v1.14.13 github.com/mitchellh/go-ps v1.0.0 github.com/mitchellh/gon v0.2.3 github.com/mna/redisc v1.3.2 diff --git a/go.sum b/go.sum index 673ffff1e8..92d080306a 100644 --- a/go.sum +++ b/go.sum @@ -1237,6 +1237,8 @@ github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A github.com/mattn/go-sqlite3 v1.14.7/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.8 h1:gDp86IdQsN/xWjIEmr9MF6o9mpksUgh0fu+9ByFxzIU= github.com/mattn/go-sqlite3 v1.14.8/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.13 h1:1tj15ngiFfcZzii7yd82foL+ks+ouQcj8j/TPq3fk1I= +github.com/mattn/go-sqlite3 v1.14.13/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= @@ -1710,6 +1712,7 @@ github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go github.com/zclconf/go-cty v1.1.0 h1:uJwc9HiBOCpoKIObTQaLR+tsEXx1HBHnOsOOpcdhZgw= github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs= github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= github.com/zwass/kit v0.0.0-20210625184505-ec5b5c5cce9c h1:TWQ2UvXPkhPxI2KmApKBOCaV6yD2N4mlvqFQ/DlPtpQ= github.com/zwass/kit v0.0.0-20210625184505-ec5b5c5cce9c/go.mod h1:OYYulo9tUqRadRLwB0+LE914sa1ui2yL7OrcU3Q/1XY= diff --git a/orbit/pkg/execuser/execuser_linux.go b/orbit/pkg/execuser/execuser_linux.go index df245b40b6..050442c57b 100644 --- a/orbit/pkg/execuser/execuser_linux.go +++ b/orbit/pkg/execuser/execuser_linux.go @@ -106,7 +106,7 @@ func parseUsersOutput(s string) []string { // // Returns the parsed uid. func parseIDOutput(s string) (int64, error) { - uid, err := strconv.ParseInt(strings.TrimSpace(string(s)), 10, 0) + uid, err := strconv.ParseInt(strings.TrimSpace(s), 10, 0) if err != nil { return 0, fmt.Errorf("failed to parse uid: %w", err) } diff --git a/server/datastore/mysql/hosts.go b/server/datastore/mysql/hosts.go index 83a9bd1e4c..d019da8994 100644 --- a/server/datastore/mysql/hosts.go +++ b/server/datastore/mysql/hosts.go @@ -1742,3 +1742,32 @@ ON DUPLICATE KEY UPDATE return nil } + +func (ds *Datastore) HostIDsByOSVersion( + ctx context.Context, + osVersion fleet.OSVersion, + offset int, + limit int, +) ([]uint, error) { + var ids []uint + + stmt := dialect.From("hosts"). + Select("id"). + Where( + goqu.C("platform").Eq(osVersion.Platform), + goqu.C("os_version").Eq(osVersion.Name)). + Order(goqu.I("id").Desc()). + Offset(uint(offset)). + Limit(uint(limit)) + + sql, args, err := stmt.ToSQL() + if err != nil { + return nil, ctxerr.Wrap(ctx, err, "get host IDs") + } + + if err := sqlx.SelectContext(ctx, ds.reader, &ids, sql, args...); err != nil { + return nil, ctxerr.Wrap(ctx, err, "get host IDs") + } + + return ids, nil +} diff --git a/server/datastore/mysql/hosts_test.go b/server/datastore/mysql/hosts_test.go index 65ac20662e..67a506b040 100644 --- a/server/datastore/mysql/hosts_test.go +++ b/server/datastore/mysql/hosts_test.go @@ -116,6 +116,7 @@ func TestHosts(t *testing.T) { {"SetOrUpdateDeviceAuthToken", testHostsSetOrUpdateDeviceAuthToken}, {"OSVersions", testOSVersions}, {"DeleteHosts", testHostsDeleteHosts}, + {"HostIDsByOSVersion", testHostIDsByOSVersion}, {"ShouldCleanTeamPolicies", testShouldCleanTeamPolicies}, } for _, c := range cases { @@ -4209,3 +4210,50 @@ func testShouldCleanTeamPolicies(t *testing.T, ds *Datastore) { require.Equal(t, shouldCleanTeamPolicies(c.currentTeamID, c.newTeamID), c.out) } } + +func testHostIDsByOSVersion(t *testing.T, ds *Datastore) { + ctx := context.Background() + hosts := make([]*fleet.Host, 10) + getPlatform := func(i int) string { + if i < 5 { + return "ubuntu" + } + return "centos" + } + for i := range hosts { + h, err := ds.NewHost(context.Background(), &fleet.Host{ + DetailUpdatedAt: time.Now(), + LabelUpdatedAt: time.Now(), + PolicyUpdatedAt: time.Now(), + SeenTime: time.Now(), + OsqueryHostID: fmt.Sprintf("host%d", i), + NodeKey: fmt.Sprintf("%d", i), + UUID: fmt.Sprintf("%d", i), + Hostname: fmt.Sprintf("foo.%d.local", i), + Platform: getPlatform(i), + OSVersion: fmt.Sprintf("20.4.%d", i), + }) + require.NoError(t, err) + hosts[i] = h + } + + t.Run("no match", func(t *testing.T) { + osVersion := fleet.OSVersion{Platform: "ubuntu", Name: "sdfasw"} + none, err := ds.HostIDsByOSVersion(ctx, osVersion, 0, 1) + require.NoError(t, err) + require.Len(t, none, 0) + }) + + t.Run("filtering by os version", func(t *testing.T) { + osVersion := fleet.OSVersion{Platform: "ubuntu", Name: "20.4.0"} + result, err := ds.HostIDsByOSVersion(ctx, osVersion, 0, 1) + require.NoError(t, err) + require.Len(t, result, 1) + for _, id := range result { + r, err := ds.Host(ctx, id) + require.NoError(t, err) + require.Equal(t, r.Platform, "ubuntu") + require.Equal(t, r.OSVersion, "20.4.0") + } + }) +} diff --git a/server/datastore/mysql/migrations/tables/20220510110838_AddIdxOnHostsPlatform.go b/server/datastore/mysql/migrations/tables/20220510110838_AddIdxOnHostsPlatform.go new file mode 100644 index 0000000000..530e72eab9 --- /dev/null +++ b/server/datastore/mysql/migrations/tables/20220510110838_AddIdxOnHostsPlatform.go @@ -0,0 +1,25 @@ +package tables + +import ( + "database/sql" + + "github.com/pkg/errors" +) + +func init() { + MigrationClient.AddMigration(Up_20220510110838, Down_20220510110838) +} + +func Up_20220510110838(tx *sql.Tx) error { + stm := "CREATE INDEX hosts_platform_idx ON hosts (platform);" + + if _, err := tx.Exec(stm); err != nil { + return errors.Wrap(err, "creating hosts index") + } + + return nil +} + +func Down_20220510110838(tx *sql.Tx) error { + return nil +} diff --git a/server/datastore/mysql/migrations/tables/20220518124708_AddSourceToSoftwareCveTable.go b/server/datastore/mysql/migrations/tables/20220518124708_AddSourceToSoftwareCveTable.go new file mode 100644 index 0000000000..a3294f96d8 --- /dev/null +++ b/server/datastore/mysql/migrations/tables/20220518124708_AddSourceToSoftwareCveTable.go @@ -0,0 +1,24 @@ +package tables + +import ( + "database/sql" + "fmt" +) + +func init() { + MigrationClient.AddMigration(Up_20220518124708, Down_20220518124708) +} + +func Up_20220518124708(tx *sql.Tx) error { + _, err := tx.Exec( + "ALTER TABLE `software_cve` ADD COLUMN `source` int DEFAULT '0'", + ) + if err != nil { + return fmt.Errorf("add 'source' column to 'software_cve': %w", err) + } + return nil +} + +func Down_20220518124708(tx *sql.Tx) error { + return nil +} diff --git a/server/datastore/mysql/schema.sql b/server/datastore/mysql/schema.sql index 7e0ef641de..33a428346e 100644 --- a/server/datastore/mysql/schema.sql +++ b/server/datastore/mysql/schema.sql @@ -257,6 +257,7 @@ CREATE TABLE `hosts` ( UNIQUE KEY `idx_osquery_host_id` (`osquery_host_id`), UNIQUE KEY `idx_host_unique_nodekey` (`node_key`), KEY `fk_hosts_team_id` (`team_id`), + KEY `hosts_platform_idx` (`platform`), FULLTEXT KEY `hosts_search` (`hostname`,`uuid`), FULLTEXT KEY `host_ip_mac_search` (`primary_ip`,`primary_mac`), CONSTRAINT `hosts_ibfk_1` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE SET NULL @@ -354,9 +355,9 @@ CREATE TABLE `migration_status_tables` ( `tstamp` timestamp NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=136 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=138 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -INSERT INTO `migration_status_tables` VALUES (1,0,1,'2020-01-01 01:01:01'),(2,20161118193812,1,'2020-01-01 01:01:01'),(3,20161118211713,1,'2020-01-01 01:01:01'),(4,20161118212436,1,'2020-01-01 01:01:01'),(5,20161118212515,1,'2020-01-01 01:01:01'),(6,20161118212528,1,'2020-01-01 01:01:01'),(7,20161118212538,1,'2020-01-01 01:01:01'),(8,20161118212549,1,'2020-01-01 01:01:01'),(9,20161118212557,1,'2020-01-01 01:01:01'),(10,20161118212604,1,'2020-01-01 01:01:01'),(11,20161118212613,1,'2020-01-01 01:01:01'),(12,20161118212621,1,'2020-01-01 01:01:01'),(13,20161118212630,1,'2020-01-01 01:01:01'),(14,20161118212641,1,'2020-01-01 01:01:01'),(15,20161118212649,1,'2020-01-01 01:01:01'),(16,20161118212656,1,'2020-01-01 01:01:01'),(17,20161118212758,1,'2020-01-01 01:01:01'),(18,20161128234849,1,'2020-01-01 01:01:01'),(19,20161230162221,1,'2020-01-01 01:01:01'),(20,20170104113816,1,'2020-01-01 01:01:01'),(21,20170105151732,1,'2020-01-01 01:01:01'),(22,20170108191242,1,'2020-01-01 01:01:01'),(23,20170109094020,1,'2020-01-01 01:01:01'),(24,20170109130438,1,'2020-01-01 01:01:01'),(25,20170110202752,1,'2020-01-01 01:01:01'),(26,20170111133013,1,'2020-01-01 01:01:01'),(27,20170117025759,1,'2020-01-01 01:01:01'),(28,20170118191001,1,'2020-01-01 01:01:01'),(29,20170119234632,1,'2020-01-01 01:01:01'),(30,20170124230432,1,'2020-01-01 01:01:01'),(31,20170127014618,1,'2020-01-01 01:01:01'),(32,20170131232841,1,'2020-01-01 01:01:01'),(33,20170223094154,1,'2020-01-01 01:01:01'),(34,20170306075207,1,'2020-01-01 01:01:01'),(35,20170309100733,1,'2020-01-01 01:01:01'),(36,20170331111922,1,'2020-01-01 01:01:01'),(37,20170502143928,1,'2020-01-01 01:01:01'),(38,20170504130602,1,'2020-01-01 01:01:01'),(39,20170509132100,1,'2020-01-01 01:01:01'),(40,20170519105647,1,'2020-01-01 01:01:01'),(41,20170519105648,1,'2020-01-01 01:01:01'),(42,20170831234300,1,'2020-01-01 01:01:01'),(43,20170831234301,1,'2020-01-01 01:01:01'),(44,20170831234303,1,'2020-01-01 01:01:01'),(45,20171116163618,1,'2020-01-01 01:01:01'),(46,20171219164727,1,'2020-01-01 01:01:01'),(47,20180620164811,1,'2020-01-01 01:01:01'),(48,20180620175054,1,'2020-01-01 01:01:01'),(49,20180620175055,1,'2020-01-01 01:01:01'),(50,20191010101639,1,'2020-01-01 01:01:01'),(51,20191010155147,1,'2020-01-01 01:01:01'),(52,20191220130734,1,'2020-01-01 01:01:01'),(53,20200311140000,1,'2020-01-01 01:01:01'),(54,20200405120000,1,'2020-01-01 01:01:01'),(55,20200407120000,1,'2020-01-01 01:01:01'),(56,20200420120000,1,'2020-01-01 01:01:01'),(57,20200504120000,1,'2020-01-01 01:01:01'),(58,20200512120000,1,'2020-01-01 01:01:01'),(59,20200707120000,1,'2020-01-01 01:01:01'),(60,20201011162341,1,'2020-01-01 01:01:01'),(61,20201021104586,1,'2020-01-01 01:01:01'),(62,20201102112520,1,'2020-01-01 01:01:01'),(63,20201208121729,1,'2020-01-01 01:01:01'),(64,20201215091637,1,'2020-01-01 01:01:01'),(65,20210119174155,1,'2020-01-01 01:01:01'),(66,20210326182902,1,'2020-01-01 01:01:01'),(67,20210421112652,1,'2020-01-01 01:01:01'),(68,20210506095025,1,'2020-01-01 01:01:01'),(69,20210513115729,1,'2020-01-01 01:01:01'),(70,20210526113559,1,'2020-01-01 01:01:01'),(71,20210601000001,1,'2020-01-01 01:01:01'),(72,20210601000002,1,'2020-01-01 01:01:01'),(73,20210601000003,1,'2020-01-01 01:01:01'),(74,20210601000004,1,'2020-01-01 01:01:01'),(75,20210601000005,1,'2020-01-01 01:01:01'),(76,20210601000006,1,'2020-01-01 01:01:01'),(77,20210601000007,1,'2020-01-01 01:01:01'),(78,20210601000008,1,'2020-01-01 01:01:01'),(79,20210606151329,1,'2020-01-01 01:01:01'),(80,20210616163757,1,'2020-01-01 01:01:01'),(81,20210617174723,1,'2020-01-01 01:01:01'),(82,20210622160235,1,'2020-01-01 01:01:01'),(83,20210623100031,1,'2020-01-01 01:01:01'),(84,20210623133615,1,'2020-01-01 01:01:01'),(85,20210708143152,1,'2020-01-01 01:01:01'),(86,20210709124443,1,'2020-01-01 01:01:01'),(87,20210712155608,1,'2020-01-01 01:01:01'),(88,20210714102108,1,'2020-01-01 01:01:01'),(89,20210719153709,1,'2020-01-01 01:01:01'),(90,20210721171531,1,'2020-01-01 01:01:01'),(91,20210723135713,1,'2020-01-01 01:01:01'),(92,20210802135933,1,'2020-01-01 01:01:01'),(93,20210806112844,1,'2020-01-01 01:01:01'),(94,20210810095603,1,'2020-01-01 01:01:01'),(95,20210811150223,1,'2020-01-01 01:01:01'),(96,20210818151827,1,'2020-01-01 01:01:01'),(97,20210818151828,1,'2020-01-01 01:01:01'),(98,20210818182258,1,'2020-01-01 01:01:01'),(99,20210819131107,1,'2020-01-01 01:01:01'),(100,20210819143446,1,'2020-01-01 01:01:01'),(101,20210903132338,1,'2020-01-01 01:01:01'),(102,20210915144307,1,'2020-01-01 01:01:01'),(103,20210920155130,1,'2020-01-01 01:01:01'),(104,20210927143115,1,'2020-01-01 01:01:01'),(105,20210927143116,1,'2020-01-01 01:01:01'),(106,20211013133706,1,'2020-01-01 01:01:01'),(107,20211013133707,1,'2020-01-01 01:01:01'),(108,20211102135149,1,'2020-01-01 01:01:01'),(109,20211109121546,1,'2020-01-01 01:01:01'),(110,20211110163320,1,'2020-01-01 01:01:01'),(111,20211116184029,1,'2020-01-01 01:01:01'),(112,20211116184030,1,'2020-01-01 01:01:01'),(113,20211202092042,1,'2020-01-01 01:01:01'),(114,20211202181033,1,'2020-01-01 01:01:01'),(115,20211207161856,1,'2020-01-01 01:01:01'),(116,20211216131203,1,'2020-01-01 01:01:01'),(117,20211221110132,1,'2020-01-01 01:01:01'),(118,20220107155700,1,'2020-01-01 01:01:01'),(119,20220125105650,1,'2020-01-01 01:01:01'),(120,20220201084510,1,'2020-01-01 01:01:01'),(121,20220208144830,1,'2020-01-01 01:01:01'),(122,20220208144831,1,'2020-01-01 01:01:01'),(123,20220215152203,1,'2020-01-01 01:01:01'),(124,20220223113157,1,'2020-01-01 01:01:01'),(125,20220307104655,1,'2020-01-01 01:01:01'),(126,20220309133956,1,'2020-01-01 01:01:01'),(127,20220316155700,1,'2020-01-01 01:01:01'),(128,20220323152301,1,'2020-01-01 01:01:01'),(129,20220330100659,1,'2020-01-01 01:01:01'),(130,20220404091216,1,'2020-01-01 01:01:01'),(131,20220419140750,1,'2020-01-01 01:01:01'),(132,20220428140039,1,'2020-01-01 01:01:01'),(133,20220503134048,1,'2020-01-01 01:01:01'),(134,20220524102918,1,'2020-01-01 01:01:01'),(135,20220526123327,1,'2020-01-01 01:01:01'); +INSERT INTO `migration_status_tables` VALUES (1,0,1,'2020-01-01 01:01:01'),(2,20161118193812,1,'2020-01-01 01:01:01'),(3,20161118211713,1,'2020-01-01 01:01:01'),(4,20161118212436,1,'2020-01-01 01:01:01'),(5,20161118212515,1,'2020-01-01 01:01:01'),(6,20161118212528,1,'2020-01-01 01:01:01'),(7,20161118212538,1,'2020-01-01 01:01:01'),(8,20161118212549,1,'2020-01-01 01:01:01'),(9,20161118212557,1,'2020-01-01 01:01:01'),(10,20161118212604,1,'2020-01-01 01:01:01'),(11,20161118212613,1,'2020-01-01 01:01:01'),(12,20161118212621,1,'2020-01-01 01:01:01'),(13,20161118212630,1,'2020-01-01 01:01:01'),(14,20161118212641,1,'2020-01-01 01:01:01'),(15,20161118212649,1,'2020-01-01 01:01:01'),(16,20161118212656,1,'2020-01-01 01:01:01'),(17,20161118212758,1,'2020-01-01 01:01:01'),(18,20161128234849,1,'2020-01-01 01:01:01'),(19,20161230162221,1,'2020-01-01 01:01:01'),(20,20170104113816,1,'2020-01-01 01:01:01'),(21,20170105151732,1,'2020-01-01 01:01:01'),(22,20170108191242,1,'2020-01-01 01:01:01'),(23,20170109094020,1,'2020-01-01 01:01:01'),(24,20170109130438,1,'2020-01-01 01:01:01'),(25,20170110202752,1,'2020-01-01 01:01:01'),(26,20170111133013,1,'2020-01-01 01:01:01'),(27,20170117025759,1,'2020-01-01 01:01:01'),(28,20170118191001,1,'2020-01-01 01:01:01'),(29,20170119234632,1,'2020-01-01 01:01:01'),(30,20170124230432,1,'2020-01-01 01:01:01'),(31,20170127014618,1,'2020-01-01 01:01:01'),(32,20170131232841,1,'2020-01-01 01:01:01'),(33,20170223094154,1,'2020-01-01 01:01:01'),(34,20170306075207,1,'2020-01-01 01:01:01'),(35,20170309100733,1,'2020-01-01 01:01:01'),(36,20170331111922,1,'2020-01-01 01:01:01'),(37,20170502143928,1,'2020-01-01 01:01:01'),(38,20170504130602,1,'2020-01-01 01:01:01'),(39,20170509132100,1,'2020-01-01 01:01:01'),(40,20170519105647,1,'2020-01-01 01:01:01'),(41,20170519105648,1,'2020-01-01 01:01:01'),(42,20170831234300,1,'2020-01-01 01:01:01'),(43,20170831234301,1,'2020-01-01 01:01:01'),(44,20170831234303,1,'2020-01-01 01:01:01'),(45,20171116163618,1,'2020-01-01 01:01:01'),(46,20171219164727,1,'2020-01-01 01:01:01'),(47,20180620164811,1,'2020-01-01 01:01:01'),(48,20180620175054,1,'2020-01-01 01:01:01'),(49,20180620175055,1,'2020-01-01 01:01:01'),(50,20191010101639,1,'2020-01-01 01:01:01'),(51,20191010155147,1,'2020-01-01 01:01:01'),(52,20191220130734,1,'2020-01-01 01:01:01'),(53,20200311140000,1,'2020-01-01 01:01:01'),(54,20200405120000,1,'2020-01-01 01:01:01'),(55,20200407120000,1,'2020-01-01 01:01:01'),(56,20200420120000,1,'2020-01-01 01:01:01'),(57,20200504120000,1,'2020-01-01 01:01:01'),(58,20200512120000,1,'2020-01-01 01:01:01'),(59,20200707120000,1,'2020-01-01 01:01:01'),(60,20201011162341,1,'2020-01-01 01:01:01'),(61,20201021104586,1,'2020-01-01 01:01:01'),(62,20201102112520,1,'2020-01-01 01:01:01'),(63,20201208121729,1,'2020-01-01 01:01:01'),(64,20201215091637,1,'2020-01-01 01:01:01'),(65,20210119174155,1,'2020-01-01 01:01:01'),(66,20210326182902,1,'2020-01-01 01:01:01'),(67,20210421112652,1,'2020-01-01 01:01:01'),(68,20210506095025,1,'2020-01-01 01:01:01'),(69,20210513115729,1,'2020-01-01 01:01:01'),(70,20210526113559,1,'2020-01-01 01:01:01'),(71,20210601000001,1,'2020-01-01 01:01:01'),(72,20210601000002,1,'2020-01-01 01:01:01'),(73,20210601000003,1,'2020-01-01 01:01:01'),(74,20210601000004,1,'2020-01-01 01:01:01'),(75,20210601000005,1,'2020-01-01 01:01:01'),(76,20210601000006,1,'2020-01-01 01:01:01'),(77,20210601000007,1,'2020-01-01 01:01:01'),(78,20210601000008,1,'2020-01-01 01:01:01'),(79,20210606151329,1,'2020-01-01 01:01:01'),(80,20210616163757,1,'2020-01-01 01:01:01'),(81,20210617174723,1,'2020-01-01 01:01:01'),(82,20210622160235,1,'2020-01-01 01:01:01'),(83,20210623100031,1,'2020-01-01 01:01:01'),(84,20210623133615,1,'2020-01-01 01:01:01'),(85,20210708143152,1,'2020-01-01 01:01:01'),(86,20210709124443,1,'2020-01-01 01:01:01'),(87,20210712155608,1,'2020-01-01 01:01:01'),(88,20210714102108,1,'2020-01-01 01:01:01'),(89,20210719153709,1,'2020-01-01 01:01:01'),(90,20210721171531,1,'2020-01-01 01:01:01'),(91,20210723135713,1,'2020-01-01 01:01:01'),(92,20210802135933,1,'2020-01-01 01:01:01'),(93,20210806112844,1,'2020-01-01 01:01:01'),(94,20210810095603,1,'2020-01-01 01:01:01'),(95,20210811150223,1,'2020-01-01 01:01:01'),(96,20210818151827,1,'2020-01-01 01:01:01'),(97,20210818151828,1,'2020-01-01 01:01:01'),(98,20210818182258,1,'2020-01-01 01:01:01'),(99,20210819131107,1,'2020-01-01 01:01:01'),(100,20210819143446,1,'2020-01-01 01:01:01'),(101,20210903132338,1,'2020-01-01 01:01:01'),(102,20210915144307,1,'2020-01-01 01:01:01'),(103,20210920155130,1,'2020-01-01 01:01:01'),(104,20210927143115,1,'2020-01-01 01:01:01'),(105,20210927143116,1,'2020-01-01 01:01:01'),(106,20211013133706,1,'2020-01-01 01:01:01'),(107,20211013133707,1,'2020-01-01 01:01:01'),(108,20211102135149,1,'2020-01-01 01:01:01'),(109,20211109121546,1,'2020-01-01 01:01:01'),(110,20211110163320,1,'2020-01-01 01:01:01'),(111,20211116184029,1,'2020-01-01 01:01:01'),(112,20211116184030,1,'2020-01-01 01:01:01'),(113,20211202092042,1,'2020-01-01 01:01:01'),(114,20211202181033,1,'2020-01-01 01:01:01'),(115,20211207161856,1,'2020-01-01 01:01:01'),(116,20211216131203,1,'2020-01-01 01:01:01'),(117,20211221110132,1,'2020-01-01 01:01:01'),(118,20220107155700,1,'2020-01-01 01:01:01'),(119,20220125105650,1,'2020-01-01 01:01:01'),(120,20220201084510,1,'2020-01-01 01:01:01'),(121,20220208144830,1,'2020-01-01 01:01:01'),(122,20220208144831,1,'2020-01-01 01:01:01'),(123,20220215152203,1,'2020-01-01 01:01:01'),(124,20220223113157,1,'2020-01-01 01:01:01'),(125,20220307104655,1,'2020-01-01 01:01:01'),(126,20220309133956,1,'2020-01-01 01:01:01'),(127,20220316155700,1,'2020-01-01 01:01:01'),(128,20220323152301,1,'2020-01-01 01:01:01'),(129,20220330100659,1,'2020-01-01 01:01:01'),(130,20220404091216,1,'2020-01-01 01:01:01'),(131,20220419140750,1,'2020-01-01 01:01:01'),(132,20220428140039,1,'2020-01-01 01:01:01'),(133,20220503134048,1,'2020-01-01 01:01:01'),(134,20220510110838,1,'2020-01-01 01:01:01'),(135,20220518124708,1,'2020-01-01 01:01:01'),(136,20220524102918,1,'2020-01-01 01:01:01'),(137,20220526123327,1,'2020-01-01 01:01:01'); /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `network_interfaces` ( @@ -587,6 +588,7 @@ CREATE TABLE `software_cve` ( `cve` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `source` int(11) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `unique_cpe_cve` (`cpe_id`,`cve`), CONSTRAINT `software_cve_ibfk_1` FOREIGN KEY (`cpe_id`) REFERENCES `software_cpe` (`id`) ON DELETE CASCADE diff --git a/server/datastore/mysql/software.go b/server/datastore/mysql/software.go index c9646d9900..72e10989d0 100644 --- a/server/datastore/mysql/software.go +++ b/server/datastore/mysql/software.go @@ -415,6 +415,7 @@ func selectSoftwareSQL(opts fleet.SoftwareListOptions) (string, []interface{}, e "s.arch", "scv.cpe_id", // for join on sub query goqu.COALESCE(goqu.I("scp.cpe"), "").As("generated_cpe"), + goqu.COALESCE(goqu.I("scp.id"), 0).As("generated_cpe_id"), ). Join( // filter software that is not associated with any hosts goqu.I("host_software").As("hs"), @@ -515,6 +516,7 @@ func selectSoftwareSQL(opts fleet.SoftwareListOptions) (string, []interface{}, e "s.id", "scv.cpe_id", "generated_cpe", + "generated_cpe_id", ) // Pagination is a bit more complex here due to left join with software_cve table and aggregated columns from cve_meta table. @@ -533,7 +535,7 @@ func selectSoftwareSQL(opts fleet.SoftwareListOptions) (string, []interface{}, e "s.vendor", "s.arch", "s.generated_cpe", - // omit s.cpe_id + "s.generated_cpe_id", "scv.cve", ). LeftJoin( @@ -660,44 +662,33 @@ func addCPEForSoftwareDB(ctx context.Context, exec sqlx.ExecerContext, software return uint(id), nil } -func (ds *Datastore) AllCPEs(ctx context.Context) ([]string, error) { - sql := `SELECT cpe FROM software_cpe` - var cpes []string - err := sqlx.SelectContext(ctx, ds.reader, &cpes, sql) +func (ds *Datastore) ListSoftwareCPEs(ctx context.Context, excludedPlatforms []string) ([]fleet.SoftwareCPE, error) { + var result []fleet.SoftwareCPE + + var err error + var args []interface{} + + stmt := `SELECT id, software_id, cpe FROM software_cpe` + + if excludedPlatforms != nil { + stmt += ` WHERE software_id NOT IN ( + SELECT software_id + FROM host_software hs + INNER JOIN hosts h on hs.host_id = h.id + WHERE h.platform IN (?) + )` + + stmt, args, err = sqlx.In(stmt, excludedPlatforms) + if err != nil { + return nil, ctxerr.Wrap(ctx, err, "loads cpes") + } + } + err = sqlx.SelectContext(ctx, ds.reader, &result, stmt, args...) + if err != nil { return nil, ctxerr.Wrap(ctx, err, "loads cpes") } - return cpes, nil -} - -// InsertCVEForCPE inserts the cve into software_cve, linking it to all the -// provided cpes. It returns the number of new rows inserted or an error. If -// the CVE already existed for all CPEs, it would return 0, nil. -func (ds *Datastore) InsertCVEForCPE(ctx context.Context, cve string, cpes []string) (int64, error) { - var totalCount int64 - for _, cpe := range cpes { - var ids []uint - err := sqlx.Select(ds.writer, &ids, `SELECT id FROM software_cpe WHERE cpe = ?`, cpe) - if err != nil { - return 0, err - } - - values := strings.TrimSuffix(strings.Repeat("(?,?),", len(ids)), ",") - sql := fmt.Sprintf(`INSERT IGNORE INTO software_cve (cpe_id, cve) VALUES %s`, values) - - var args []interface{} - for _, id := range ids { - args = append(args, id, cve) - } - res, err := ds.writer.ExecContext(ctx, sql, args...) - if err != nil { - return 0, ctxerr.Wrap(ctx, err, "insert software cve") - } - count, _ := res.RowsAffected() - totalCount += count - } - - return totalCount, nil + return result, nil } func (ds *Datastore) ListSoftware(ctx context.Context, opt fleet.SoftwareListOptions) ([]fleet.Software, error) { @@ -979,12 +970,11 @@ func (ds *Datastore) CalculateHostsPerSoftware(ctx context.Context, updatedAt ti return nil } -// HostsByCPEs returns a list of all hosts that have the software corresponding -// to at least one of the CPEs installed. It returns a minimal represention of -// matching hosts. -func (ds *Datastore) HostsByCPEs(ctx context.Context, cpes []string) ([]*fleet.HostShort, error) { +// HostsBySoftwareIDs returns a list of all hosts that have at least one of the specified Software +// installed. It returns a minimal represention of matching hosts. +func (ds *Datastore) HostsBySoftwareIDs(ctx context.Context, softwareIDs []uint) ([]*fleet.HostShort, error) { queryStmt := ` - SELECT DISTINCT + SELECT h.id, h.hostname FROM @@ -993,22 +983,18 @@ func (ds *Datastore) HostsByCPEs(ctx context.Context, cpes []string) ([]*fleet.H host_software hs ON h.id = hs.host_id - INNER JOIN - software_cpe scp - ON - hs.software_id = scp.software_id WHERE - scp.cpe IN (?) + hs.software_id IN (?) + GROUP BY h.id, h.hostname ORDER BY h.id` - stmt, args, err := sqlx.In(queryStmt, cpes) + stmt, args, err := sqlx.In(queryStmt, softwareIDs) if err != nil { return nil, ctxerr.Wrap(ctx, err, "building query args") } var hosts []*fleet.HostShort if err := sqlx.SelectContext(ctx, ds.reader, &hosts, stmt, args...); err != nil { - return nil, ctxerr.Wrap(ctx, err, "select hosts by cpes") } return hosts, nil @@ -1072,3 +1058,147 @@ ON DUPLICATE KEY UPDATE return nil } + +func (ds *Datastore) InsertVulnerabilities( + ctx context.Context, + vulns []fleet.SoftwareVulnerability, + source fleet.VulnerabilitySource, +) (int64, error) { + var args []interface{} + + if len(vulns) == 0 { + return 0, nil + } + + values := strings.TrimSuffix(strings.Repeat("(?,?,?),", len(vulns)), ",") + sql := fmt.Sprintf(`INSERT IGNORE INTO software_cve (cpe_id, cve, source) VALUES %s`, values) + + for _, v := range vulns { + args = append(args, v.CPEID, v.CVE, source) + } + res, err := ds.writer.ExecContext(ctx, sql, args...) + if err != nil { + return 0, ctxerr.Wrap(ctx, err, "insert software vulnerabilities") + } + count, _ := res.RowsAffected() + + return count, nil +} + +func (ds *Datastore) ListSoftwareVulnerabilities( + ctx context.Context, + hostIDs []uint, +) (map[uint][]fleet.SoftwareVulnerability, error) { + result := make(map[uint][]fleet.SoftwareVulnerability) + + type softwareVulnerabilityWithHostId struct { + fleet.SoftwareVulnerability + HostId uint `db:"host_id"` + } + var queryR []softwareVulnerabilityWithHostId + + stmt := dialect. + From(goqu.T("software_cve").As("cve")). + Join( + goqu.T("software_cpe").As("cpe"), + goqu.On(goqu.Ex{ + "cve.cpe_id": goqu.I("cpe.id"), + }), + ). + Join( + goqu.T("host_software").As("hs"), + goqu.On(goqu.Ex{ + "cpe.software_id": goqu.I("hs.software_id"), + }), + ). + Select( + goqu.I("hs.host_id").As("host_id"), + goqu.I("cpe.software_id"), + goqu.C("cpe_id"), + goqu.C("cve"), + ). + Where(goqu.C("host_id").In(hostIDs)) + + sql, args, err := stmt.ToSQL() + if err != nil { + return nil, ctxerr.Wrap(ctx, err, "error generating SQL statement") + } + + if err := sqlx.SelectContext(ctx, ds.reader, &queryR, sql, args...); err != nil { + return nil, ctxerr.Wrap(ctx, err, "error executing SQL statement") + } + + for _, r := range queryR { + result[r.HostId] = append(result[r.HostId], r.SoftwareVulnerability) + } + + return result, nil +} + +func (ds *Datastore) ListSoftwareForVulnDetection( + ctx context.Context, + hostID uint, +) ([]fleet.Software, error) { + var result []fleet.Software + + stmt := dialect. + From(goqu.T("software").As("s")). + Join( + goqu.T("software_cpe").As("cpe"), + goqu.On(goqu.Ex{ + "s.id": goqu.I("cpe.software_id"), + }), + ). + Join( + goqu.T("host_software").As("hs"), + goqu.On(goqu.Ex{ + "s.id": goqu.I("hs.software_id"), + }), + ). + Select( + goqu.I("s.id"), + goqu.I("s.name"), + goqu.I("s.version"), + goqu.I("cpe.cpe").As("generated_cpe"), + goqu.I("cpe.id").As("generated_cpe_id"), + ). + Where(goqu.C("host_id").Eq(hostID)) + + sql, args, err := stmt.ToSQL() + if err != nil { + return nil, ctxerr.Wrap(ctx, err, "error generating SQL statement") + } + + if err := sqlx.SelectContext(ctx, ds.reader, &result, sql, args...); err != nil { + return nil, ctxerr.Wrap(ctx, err, "error executing SQL statement") + } + + return result, nil +} + +// ListCVEs returns all cve_meta rows published after 'maxAge' +func (ds *Datastore) ListCVEs(ctx context.Context, maxAge time.Duration) ([]fleet.CVEMeta, error) { + var result []fleet.CVEMeta + + maxAgeDate := time.Now().Add(-1 * maxAge) + stmt := dialect.From(goqu.T("cve_meta")). + Select( + goqu.C("cve"), + goqu.C("cvss_score"), + goqu.C("epss_probability"), + goqu.C("cisa_known_exploit"), + goqu.C("published"), + ). + Where(goqu.C("published").Gte(maxAgeDate)) + + sql, args, err := stmt.ToSQL() + if err != nil { + return nil, ctxerr.Wrap(ctx, err, "error generating SQL statement") + } + + if err := sqlx.SelectContext(ctx, ds.reader, &result, sql, args...); err != nil { + return nil, ctxerr.Wrap(ctx, err, "error executing SQL statement") + } + + return result, nil +} diff --git a/server/datastore/mysql/software_test.go b/server/datastore/mysql/software_test.go index d169bd6c6e..fa16e37ac3 100644 --- a/server/datastore/mysql/software_test.go +++ b/server/datastore/mysql/software_test.go @@ -25,10 +25,9 @@ func TestSoftware(t *testing.T) { }{ {"SaveHost", testSoftwareSaveHost}, {"CPE", testSoftwareCPE}, - {"InsertCVEs", testSoftwareInsertCVEs}, {"HostDuplicates", testSoftwareHostDuplicates}, {"LoadVulnerabilities", testSoftwareLoadVulnerabilities}, - {"AllCPEs", testSoftwareAllCPEs}, + {"ListSoftwareCPEs", testListSoftwareCPEs}, {"NothingChanged", testSoftwareNothingChanged}, {"LoadSupportsTonsOfCVEs", testSoftwareLoadSupportsTonsOfCVEs}, {"List", testSoftwareList}, @@ -36,9 +35,12 @@ func TestSoftware(t *testing.T) { {"ListVulnerableSoftwareBySource", testListVulnerableSoftwareBySource}, {"DeleteVulnerabilitiesByCPECVE", testDeleteVulnerabilitiesByCPECVE}, {"HostsByCVE", testHostsByCVE}, - {"HostsByCPEs", testHostsByCPEs}, + {"HostsBySoftwareIDs", testHostsBySoftwareIDs}, {"UpdateHostSoftware", testUpdateHostSoftware}, {"ListSoftwareByHostIDShort", testListSoftwareByHostIDShort}, + {"ListSoftwareVulnerabilities", testListSoftwareVulnerabilities}, + {"InsertVulnerabilities", testInsertVulnerabilities}, + {"ListCVEs", testListCVEs}, } for _, c := range cases { t.Run(c.name, func(t *testing.T) { @@ -190,30 +192,6 @@ func testSoftwareCPE(t *testing.T, ds *Datastore) { require.NoError(t, iterator.Close()) } -func testSoftwareInsertCVEs(t *testing.T, ds *Datastore) { - host := test.NewHost(t, ds, "host1", "", "host1key", "host1uuid", time.Now()) - - software := []fleet.Software{ - {Name: "foo", Version: "0.0.1", Source: "deb_packages", Release: "1"}, - {Name: "foo", Version: "0.0.1", Source: "deb_packages", Release: "2"}, - {Name: "foo", Version: "0.0.3", Source: "chrome_extensions"}, - } - require.NoError(t, ds.UpdateHostSoftware(context.Background(), host.ID, software)) - require.NoError(t, ds.LoadHostSoftware(context.Background(), host, false)) - - require.NoError(t, ds.AddCPEForSoftware(context.Background(), host.Software[0], "somecpe")) - require.NoError(t, ds.AddCPEForSoftware(context.Background(), host.Software[1], "somecpe")) - count, err := ds.InsertCVEForCPE(context.Background(), "CVE-123-123-132", []string{"somecpe"}) - require.NoError(t, err) - // inserts one per release - assert.Equal(t, int64(2), count) - - // run again for the same CPE, should not create any new row - count, err = ds.InsertCVEForCPE(context.Background(), "CVE-123-123-132", []string{"somecpe"}) - require.NoError(t, err) - assert.Equal(t, int64(0), count) -} - func testSoftwareHostDuplicates(t *testing.T, ds *Datastore) { host1 := test.NewHost(t, ds, "host1", "", "host1key", "host1uuid", time.Now()) @@ -261,9 +239,13 @@ func testSoftwareLoadVulnerabilities(t *testing.T, ds *Datastore) { require.NoError(t, ds.AddCPEForSoftware(context.Background(), host.Software[0], "somecpe")) require.NoError(t, ds.AddCPEForSoftware(context.Background(), host.Software[1], "someothercpewithoutvulns")) - _, err := ds.InsertCVEForCPE(context.Background(), "CVE-2022-0001", []string{"somecpe"}) - require.NoError(t, err) - _, err = ds.InsertCVEForCPE(context.Background(), "CVE-2022-0002", []string{"somecpe"}) + require.NoError(t, ds.LoadHostSoftware(context.Background(), host, false)) + + vulns := []fleet.SoftwareVulnerability{ + {SoftwareID: host.Software[0].ID, CPEID: host.Software[0].GeneratedCPEID, CVE: "CVE-2022-0001"}, + {SoftwareID: host.Software[0].ID, CPEID: host.Software[0].GeneratedCPEID, CVE: "CVE-2022-0002"}, + } + _, err := ds.InsertVulnerabilities(context.Background(), vulns, fleet.NVD) require.NoError(t, err) require.NoError(t, ds.LoadHostSoftware(context.Background(), host, false)) @@ -273,6 +255,7 @@ func testSoftwareLoadVulnerabilities(t *testing.T, ds *Datastore) { require.NotNil(t, softByID) require.Len(t, softByID.Vulnerabilities, 2) + require.NotZero(t, host.Software[0].GeneratedCPEID) assert.Equal(t, "somecpe", host.Software[0].GenerateCPE) require.Len(t, host.Software[0].Vulnerabilities, 2) assert.Equal(t, "CVE-2022-0001", host.Software[0].Vulnerabilities[0].CVE) @@ -282,27 +265,65 @@ func testSoftwareLoadVulnerabilities(t *testing.T, ds *Datastore) { assert.Equal(t, "https://nvd.nist.gov/vuln/detail/CVE-2022-0002", host.Software[0].Vulnerabilities[1].DetailsLink) + require.NotZero(t, host.Software[1].GeneratedCPEID) assert.Equal(t, "someothercpewithoutvulns", host.Software[1].GenerateCPE) require.Len(t, host.Software[1].Vulnerabilities, 0) } -func testSoftwareAllCPEs(t *testing.T, ds *Datastore) { - host := test.NewHost(t, ds, "host1", "", "host1key", "host1uuid", time.Now()) +func testListSoftwareCPEs(t *testing.T, ds *Datastore) { + ctx := context.Background() + + debian := test.NewHost(t, ds, "host3", "", "host3key", "host3uuid", time.Now()) + debian.Platform = "debian" + ds.UpdateHost(ctx, debian) + + ubuntu := test.NewHost(t, ds, "host4", "", "host4key", "host4uuid", time.Now()) + ubuntu.Platform = "ubuntu" + ds.UpdateHost(ctx, ubuntu) software := []fleet.Software{ {Name: "foo", Version: "0.0.1", Source: "chrome_extensions"}, {Name: "bar", Version: "0.0.3", Source: "apps"}, - {Name: "blah", Version: "1.0", Source: "apps"}, + {Name: "biz", Version: "0.0.1", Source: "deb_packages"}, + {Name: "baz", Version: "0.0.3", Source: "deb_packages"}, } - require.NoError(t, ds.UpdateHostSoftware(context.Background(), host.ID, software)) - require.NoError(t, ds.LoadHostSoftware(context.Background(), host, false)) + require.NoError(t, ds.UpdateHostSoftware(ctx, debian.ID, software[:2])) + require.NoError(t, ds.LoadHostSoftware(ctx, debian, false)) - require.NoError(t, ds.AddCPEForSoftware(context.Background(), host.Software[0], "somecpe")) - require.NoError(t, ds.AddCPEForSoftware(context.Background(), host.Software[1], "someothercpewithoutvulns")) + require.NoError(t, ds.UpdateHostSoftware(ctx, ubuntu.ID, software[2:])) + require.NoError(t, ds.LoadHostSoftware(ctx, ubuntu, false)) - cpes, err := ds.AllCPEs(context.Background()) - require.NoError(t, err) - assert.ElementsMatch(t, cpes, []string{"somecpe", "someothercpewithoutvulns"}) + require.NoError(t, ds.AddCPEForSoftware(ctx, debian.Software[0], "cpe1")) + require.NoError(t, ds.AddCPEForSoftware(ctx, debian.Software[1], "cpe2")) + + require.NoError(t, ds.AddCPEForSoftware(ctx, ubuntu.Software[0], "cpe3")) + require.NoError(t, ds.AddCPEForSoftware(ctx, ubuntu.Software[1], "cpe4")) + + t.Run("without excludedPlatforms", func(t *testing.T) { + cpes, err := ds.ListSoftwareCPEs(ctx, nil) + expected := []string{ + "cpe1", "cpe2", "cpe3", "cpe4", + } + var actual []string + for _, v := range cpes { + actual = append(actual, v.CPE) + } + require.NoError(t, err) + assert.ElementsMatch(t, actual, expected) + }) + + t.Run("with excludedPlatforms", func(t *testing.T) { + cpes, err := ds.ListSoftwareCPEs(ctx, []string{"ubuntu"}) + expected := []string{ + "cpe1", "cpe2", + } + var actual []string + for _, v := range cpes { + actual = append(actual, v.CPE) + } + require.NoError(t, err) + assert.ElementsMatch(t, actual, expected) + }) } func testSoftwareNothingChanged(t *testing.T, ds *Datastore) { @@ -472,22 +493,32 @@ func testSoftwareList(t *testing.T, ds *Datastore) { require.NoError(t, ds.UpdateHostSoftware(context.Background(), host1.ID, software1)) require.NoError(t, ds.UpdateHostSoftware(context.Background(), host2.ID, software2)) require.NoError(t, ds.UpdateHostSoftware(context.Background(), host3.ID, software3)) + require.NoError(t, ds.LoadHostSoftware(context.Background(), host1, false)) require.NoError(t, ds.LoadHostSoftware(context.Background(), host2, false)) require.NoError(t, ds.LoadHostSoftware(context.Background(), host3, false)) - sort.Slice(host1.Software, func(i, j int) bool { return host1.Software[i].Name+host1.Software[i].Version < host1.Software[j].Name+host1.Software[j].Version }) + require.NoError(t, ds.AddCPEForSoftware(context.Background(), host1.Software[0], "somecpe")) require.NoError(t, ds.AddCPEForSoftware(context.Background(), host1.Software[1], "someothercpewithoutvulns")) require.NoError(t, ds.AddCPEForSoftware(context.Background(), host3.Software[0], "somecpe2")) - _, err := ds.InsertCVEForCPE(context.Background(), "CVE-2022-0001", []string{"somecpe"}) - require.NoError(t, err) - _, err = ds.InsertCVEForCPE(context.Background(), "CVE-2022-0002", []string{"somecpe"}) - require.NoError(t, err) - _, err = ds.InsertCVEForCPE(context.Background(), "CVE-2022-0003", []string{"somecpe2"}) + require.NoError(t, ds.LoadHostSoftware(context.Background(), host1, false)) + require.NoError(t, ds.LoadHostSoftware(context.Background(), host2, false)) + require.NoError(t, ds.LoadHostSoftware(context.Background(), host3, false)) + sort.Slice(host1.Software, func(i, j int) bool { + return host1.Software[i].Name+host1.Software[i].Version < host1.Software[j].Name+host1.Software[j].Version + }) + + vulns := []fleet.SoftwareVulnerability{ + {SoftwareID: host1.Software[0].ID, CPEID: host1.Software[0].GeneratedCPEID, CVE: "CVE-2022-0001"}, + {SoftwareID: host1.Software[0].ID, CPEID: host1.Software[0].GeneratedCPEID, CVE: "CVE-2022-0002"}, + {SoftwareID: host3.Software[0].ID, CPEID: host3.Software[0].GeneratedCPEID, CVE: "CVE-2022-0003"}, + } + + _, err := ds.InsertVulnerabilities(context.Background(), vulns, fleet.NVD) require.NoError(t, err) cveMeta := []fleet.CVEMeta{ @@ -1001,36 +1032,60 @@ func insertVulnSoftwareForTest(t *testing.T, ds *Datastore) { software1 := []fleet.Software{ { - Name: "foo.rpm", Version: "0.0.1", Source: "rpm_packages", GenerateCPE: "cpe_foo_rpm", + Name: "foo.rpm", + Version: "0.0.1", + Source: "rpm_packages", + GenerateCPE: "cpe_foo_rpm", }, { - Name: "foo.chrome", Version: "0.0.3", Source: "chrome_extensions", GenerateCPE: "cpe_foo_chrome", + Name: "foo.chrome", + Version: "0.0.3", + Source: "chrome_extensions", + GenerateCPE: "cpe_foo_chrome", }, } software2 := []fleet.Software{ { - Name: "foo.chrome", Version: "v0.0.2", Source: "chrome_extensions", GenerateCPE: "cpe_foo_chrome2", + Name: "foo.chrome", + Version: "v0.0.2", + Source: "chrome_extensions", + GenerateCPE: "cpe_foo_chrome2", }, { - Name: "foo.chrome", Version: "0.0.3", Source: "chrome_extensions", GenerateCPE: "cpe_foo_chrome_3", + Name: "foo.chrome", + Version: "0.0.3", + Source: "chrome_extensions", + GenerateCPE: "cpe_foo_chrome_3", Vulnerabilities: fleet.Vulnerabilities{ - {CVE: "CVE-2022-0001", DetailsLink: "https://nvd.nist.gov/vuln/detail/CVE-2022-0001"}, + { + CVE: "CVE-2022-0001", + DetailsLink: "https://nvd.nist.gov/vuln/detail/CVE-2022-0001", + }, }, }, { - Name: "bar.rpm", Version: "0.0.3", Source: "rpm_packages", GenerateCPE: "cpe_bar_rpm", + Name: "bar.rpm", + Version: "0.0.3", + Source: "rpm_packages", + GenerateCPE: "cpe_bar_rpm", Vulnerabilities: fleet.Vulnerabilities{ - {CVE: "CVE-2022-0002", DetailsLink: "https://nvd.nist.gov/vuln/detail/CVE-2022-0002"}, - {CVE: "CVE-2022-0003", DetailsLink: "https://nvd.nist.gov/vuln/detail/CVE-333-444-555"}, + { + CVE: "CVE-2022-0002", + DetailsLink: "https://nvd.nist.gov/vuln/detail/CVE-2022-0002", + }, + { + CVE: "CVE-2022-0003", + DetailsLink: "https://nvd.nist.gov/vuln/detail/CVE-333-444-555", + }, }, }, } require.NoError(t, ds.UpdateHostSoftware(context.Background(), host1.ID, software1)) require.NoError(t, ds.UpdateHostSoftware(context.Background(), host2.ID, software2)) + require.NoError(t, ds.LoadHostSoftware(context.Background(), host1, false)) require.NoError(t, ds.LoadHostSoftware(context.Background(), host2, false)) - sort.Slice(host1.Software, func(i, j int) bool { return host1.Software[i].Name+host1.Software[i].Version < host1.Software[j].Name+host1.Software[j].Version }) @@ -1045,13 +1100,44 @@ func insertVulnSoftwareForTest(t *testing.T, ds *Datastore) { require.NoError(t, ds.AddCPEForSoftware(context.Background(), host2.Software[1], "cpe_foo_chrome_3")) require.NoError(t, ds.AddCPEForSoftware(context.Background(), host2.Software[2], "cpe_foo_chrome_2")) - _, err := ds.InsertCVEForCPE(context.Background(), "CVE-2022-0001", []string{"cpe_foo_chrome_3"}) - require.NoError(t, err) + require.NoError(t, ds.LoadHostSoftware(context.Background(), host1, false)) + require.NoError(t, ds.LoadHostSoftware(context.Background(), host2, false)) + sort.Slice(host1.Software, func(i, j int) bool { + return host1.Software[i].Name+host1.Software[i].Version < host1.Software[j].Name+host1.Software[j].Version + }) + sort.Slice(host2.Software, func(i, j int) bool { + return host2.Software[i].Name+host2.Software[i].Version < host2.Software[j].Name+host2.Software[j].Version + }) + + chrome3 := host2.Software[1] + n, err := ds.InsertVulnerabilities(context.Background(), []fleet.SoftwareVulnerability{ + { + SoftwareID: chrome3.ID, + CPEID: chrome3.GeneratedCPEID, + CVE: "CVE-2022-0001", + }, + }, fleet.NVD) - _, err = ds.InsertCVEForCPE(context.Background(), "CVE-2022-0002", []string{"cpe_bar_rpm"}) require.NoError(t, err) - _, err = ds.InsertCVEForCPE(context.Background(), "CVE-2022-0003", []string{"cpe_bar_rpm"}) + require.Equal(t, 1, int(n)) + + barRpm := host2.Software[0] + n, err = ds.InsertVulnerabilities(context.Background(), + []fleet.SoftwareVulnerability{ + { + SoftwareID: barRpm.ID, + CPEID: barRpm.GeneratedCPEID, + CVE: "CVE-2022-0002", + }, + { + SoftwareID: barRpm.ID, + CPEID: barRpm.GeneratedCPEID, + CVE: "CVE-2022-0003", + }, + }, fleet.NVD) + require.NoError(t, err) + require.Equal(t, 2, int(n)) } func testListVulnerableSoftwareBySource(t *testing.T, ds *Datastore) { @@ -1158,28 +1244,43 @@ func testHostsByCVE(t *testing.T, ds *Datastore) { require.Equal(t, hosts[0].Hostname, "host2") } -func testHostsByCPEs(t *testing.T, ds *Datastore) { +func testHostsBySoftwareIDs(t *testing.T, ds *Datastore) { ctx := context.Background() - hosts, err := ds.HostsByCPEs(ctx, []string{"cpe_foo_chrome_3"}) + hosts, err := ds.HostsBySoftwareIDs(ctx, []uint{0}) require.NoError(t, err) require.Len(t, hosts, 0) insertVulnSoftwareForTest(t, ds) - hosts, err = ds.HostsByCPEs(ctx, []string{"cpe_foo_chrome_3"}) + allSoftware, err := ds.ListSoftware(ctx, fleet.SoftwareListOptions{}) + + var chrome3 fleet.Software + var barRpm fleet.Software + + for _, s := range allSoftware { + if s.GenerateCPE == "cpe_foo_chrome_3" { + chrome3 = s + } + + if s.GenerateCPE == "cpe_bar_rpm" { + barRpm = s + } + } + + hosts, err = ds.HostsBySoftwareIDs(ctx, []uint{chrome3.ID}) require.NoError(t, err) require.Len(t, hosts, 2) require.Equal(t, hosts[0].Hostname, "host1") require.Equal(t, hosts[1].Hostname, "host2") - hosts, err = ds.HostsByCPEs(ctx, []string{"cpe_bar_rpm"}) + hosts, err = ds.HostsBySoftwareIDs(ctx, []uint{barRpm.ID}) require.NoError(t, err) require.Len(t, hosts, 1) require.Equal(t, hosts[0].Hostname, "host2") // Duplicates should not be returned if cpes are found on the same host ie host2 should only appear once - hosts, err = ds.HostsByCPEs(ctx, []string{"cpe_foo_chrome_3", "cpe_bar_rpm"}) + hosts, err = ds.HostsBySoftwareIDs(ctx, []uint{chrome3.ID, barRpm.ID}) require.NoError(t, err) require.Len(t, hosts, 2) require.Equal(t, hosts[0].Hostname, "host1") @@ -1302,3 +1403,169 @@ func testListSoftwareByHostIDShort(t *testing.T, ds *Datastore) { require.NoError(t, err) require.Len(t, software, 0) } + +func testListSoftwareVulnerabilities(t *testing.T, ds *Datastore) { + ctx := context.Background() + + host := test.NewHost(t, ds, "host1", "", "host1key", "host1uuid", time.Now()) + software := []fleet.Software{ + {Name: "foo", Version: "0.0.1", Source: "chrome_extensions"}, + {Name: "bar", Version: "0.0.3", Source: "apps"}, + {Name: "blah", Version: "1.0", Source: "apps"}, + } + require.NoError(t, ds.UpdateHostSoftware(ctx, host.ID, software)) + require.NoError(t, ds.LoadHostSoftware(ctx, host, false)) + + require.NoError(t, ds.AddCPEForSoftware(ctx, host.Software[0], "foo_cpe")) + require.NoError(t, ds.AddCPEForSoftware(ctx, host.Software[1], "bar_cpe")) + require.NoError(t, ds.AddCPEForSoftware(ctx, host.Software[2], "blah_cpe")) + require.NoError(t, ds.LoadHostSoftware(ctx, host, false)) + + cveMap := map[int]string{ + 0: "cve-123", + 1: "cve-456", + } + + var vulns []fleet.SoftwareVulnerability + for i, s := range host.Software { + cve, ok := cveMap[i] + if ok { + vulns = append(vulns, fleet.SoftwareVulnerability{ + SoftwareID: s.ID, + CPEID: s.GeneratedCPEID, + CVE: cve, + }) + } + + } + n, err := ds.InsertVulnerabilities(ctx, vulns, fleet.NVD) + require.NoError(t, err) + require.Equal(t, int(n), 2) + + expectedCVEs := []string{"cve-123", "cve-456"} + + actualCVEs := make([]string, 0) + result, err := ds.ListSoftwareVulnerabilities(ctx, []uint{host.ID}) + for _, r := range result[host.ID] { + actualCVEs = append(actualCVEs, r.CVE) + } + + require.NoError(t, err) + require.ElementsMatch(t, expectedCVEs, actualCVEs) + + for _, r := range result[host.ID] { + require.NotEqual(t, r.SoftwareID, 0) + require.NotEqual(t, r.CPEID, 0) + } +} + +func testInsertVulnerabilities(t *testing.T, ds *Datastore) { + ctx := context.Background() + + t.Run("no vulnerabilities to insert", func(t *testing.T) { + r, err := ds.InsertVulnerabilities(ctx, nil, fleet.OVAL) + require.Zero(t, r) + require.NoError(t, err) + }) + + t.Run("duplicated vulnerabilities", func(t *testing.T) { + host := test.NewHost(t, ds, "host1", "", "host1key", "host1uuid", time.Now()) + software := fleet.Software{ + Name: "foo", Version: "0.0.1", Source: "chrome_extensions", + } + + require.NoError(t, ds.UpdateHostSoftware(ctx, host.ID, []fleet.Software{software})) + require.NoError(t, ds.LoadHostSoftware(ctx, host, false)) + require.NoError(t, ds.AddCPEForSoftware(ctx, host.Software[0], "foo_cpe_1")) + + var vulns []fleet.SoftwareVulnerability + for _, s := range host.Software { + vulns = append(vulns, fleet.SoftwareVulnerability{ + SoftwareID: s.ID, CPEID: 1, CVE: "cve-1", + }) + vulns = append(vulns, fleet.SoftwareVulnerability{ + SoftwareID: s.ID, CPEID: 1, CVE: "cve-1", + }) + } + + n, err := ds.InsertVulnerabilities(ctx, vulns, fleet.OVAL) + require.NoError(t, err) + require.Equal(t, 1, int(n)) + + storedVulns, err := ds.ListSoftwareVulnerabilities(ctx, []uint{host.ID}) + require.NoError(t, err) + + occurrence := make(map[string]int) + for _, v := range storedVulns[host.ID] { + occurrence[v.CVE] = occurrence[v.CVE] + 1 + } + require.Equal(t, 1, occurrence["cve-1"]) + }) + + t.Run("a vulnerability already exists", func(t *testing.T) { + host := test.NewHost(t, ds, "host2", "", "host2key", "host2uuid", time.Now()) + software := fleet.Software{ + Name: "foo", Version: "0.0.1", Source: "chrome_extensions", + } + + require.NoError(t, ds.UpdateHostSoftware(ctx, host.ID, []fleet.Software{software})) + require.NoError(t, ds.LoadHostSoftware(ctx, host, false)) + require.NoError(t, ds.AddCPEForSoftware(ctx, host.Software[0], "foo_cpe_2")) + + var vulns []fleet.SoftwareVulnerability + for _, s := range host.Software { + vulns = append(vulns, fleet.SoftwareVulnerability{ + SoftwareID: s.ID, + CPEID: s.GeneratedCPEID, + CVE: "cve-2", + }) + } + + n, err := ds.InsertVulnerabilities(ctx, vulns, fleet.OVAL) + require.NoError(t, err) + require.Equal(t, 1, int(n)) + + n, err = ds.InsertVulnerabilities(ctx, vulns, fleet.OVAL) + require.NoError(t, err) + require.Equal(t, 0, int(n)) + + storedVulns, err := ds.ListSoftwareVulnerabilities(ctx, []uint{host.ID}) + + occurrence := make(map[string]int) + for _, v := range storedVulns[host.ID] { + occurrence[v.CVE] = occurrence[v.CVE] + 1 + } + require.Equal(t, 1, occurrence["cve-1"]) + require.Equal(t, 1, occurrence["cve-2"]) + }) +} + +func testListCVEs(t *testing.T, ds *Datastore) { + ctx := context.Background() + + now := time.Now().UTC() + threeDaysAgo := now.Add(-3 * 24 * time.Hour) + twoWeeksAgo := now.Add(-14 * 24 * time.Hour) + twoMonthsAgo := now.Add(-60 * 24 * time.Hour) + + testCases := []fleet.CVEMeta{ + {CVE: "cve-1", Published: &threeDaysAgo}, + {CVE: "cve-2", Published: &twoWeeksAgo}, + {CVE: "cve-3", Published: &twoMonthsAgo}, + {CVE: "cve-4"}, + } + + err := ds.InsertCVEMeta(ctx, testCases) + require.NoError(t, err) + + result, err := ds.ListCVEs(ctx, 30*24*time.Hour) + require.NoError(t, err) + + expected := []string{"cve-1", "cve-2"} + var actual []string + for _, r := range result { + actual = append(actual, r.CVE) + } + + require.ElementsMatch(t, expected, actual) +} diff --git a/server/fleet/datastore.go b/server/fleet/datastore.go index 507d89c43a..97e5eeadb6 100644 --- a/server/fleet/datastore.go +++ b/server/fleet/datastore.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "errors" - "fmt" "time" ) @@ -177,6 +176,7 @@ type Datastore interface { DeleteHost(ctx context.Context, hid uint) error Host(ctx context.Context, id uint) (*Host, error) ListHosts(ctx context.Context, filter TeamFilter, opt HostListOptions) ([]*Host, error) + MarkHostsSeen(ctx context.Context, hostIDs []uint, t time.Time) error SearchHosts(ctx context.Context, filter TeamFilter, query string, omit ...uint) ([]*Host, error) // CleanupIncomingHosts deletes hosts that have enrolled but never updated their status details. This clears dead @@ -188,6 +188,8 @@ type Datastore interface { GenerateHostStatusStatistics(ctx context.Context, filter TeamFilter, now time.Time, platform *string) (*HostSummary, error) // HostIDsByName Retrieve the IDs associated with the given hostnames HostIDsByName(ctx context.Context, filter TeamFilter, hostnames []string) ([]uint, error) + // HostIDsByOSVersion retrieves the IDs of all host matching osVersion + HostIDsByOSVersion(ctx context.Context, osVersion OSVersion, offset int, limit int) ([]uint, error) // HostByIdentifier returns one host matching the provided identifier. Possible matches can be on // osquery_host_identifier, node_key, UUID, or hostname. HostByIdentifier(ctx context.Context, identifier string) (*Host, error) @@ -337,12 +339,17 @@ type Datastore interface { /////////////////////////////////////////////////////////////////////////////// // SoftwareStore - + // ListSoftwareForVulnDetection returns all software for the given hostID with only the fields + // used for vulnerability detection populated (id, name, version, cpe_id, cpe) + ListSoftwareForVulnDetection(ctx context.Context, hostID uint) ([]Software, error) + ListSoftwareVulnerabilities(ctx context.Context, hostIDs []uint) (map[uint][]SoftwareVulnerability, error) LoadHostSoftware(ctx context.Context, host *Host, includeCVEScores bool) error AllSoftwareWithoutCPEIterator(ctx context.Context) (SoftwareIterator, error) AddCPEForSoftware(ctx context.Context, software Software, cpe string) error - AllCPEs(ctx context.Context) ([]string, error) - InsertCVEForCPE(ctx context.Context, cve string, cpes []string) (int64, error) + ListSoftwareCPEs(ctx context.Context, excludedPlatforms []string) ([]SoftwareCPE, error) + // InsertVulnerabilities inserts the given vulnerabilities in the datastore, returns the number + // of rows inserted. If a vulnerability already exists in the datastore, then it will be ignored. + InsertVulnerabilities(ctx context.Context, vulns []SoftwareVulnerability, source VulnerabilitySource) (int64, error) SoftwareByID(ctx context.Context, id uint, includeCVEScores bool) (*Software, error) // ListSoftwareByHostIDShort lists software by host ID, but does not include CPEs or vulnerabilites. // It is meant to be used when only minimal software fields are required eg when updating host software. @@ -354,9 +361,10 @@ type Datastore interface { // After aggregation, it cleans up unused software (e.g. software installed // on removed hosts, software uninstalled on hosts, etc.) CalculateHostsPerSoftware(ctx context.Context, updatedAt time.Time) error - HostsByCPEs(ctx context.Context, cpes []string) ([]*HostShort, error) + HostsBySoftwareIDs(ctx context.Context, softwareIDs []uint) ([]*HostShort, error) HostsByCVE(ctx context.Context, cve string) ([]*HostShort, error) InsertCVEMeta(ctx context.Context, cveMeta []CVEMeta) error + ListCVEs(ctx context.Context, maxAge time.Duration) ([]CVEMeta, error) /////////////////////////////////////////////////////////////////////////////// // ActivitiesStore @@ -596,26 +604,6 @@ const ( UnknownMigrations ) -// SoftwareVulnerability identifies a vulnerability on a specific software (CPE). -type SoftwareVulnerability struct { - // CPEID is the ID of the software CPE in the system. - CPEID uint - CVE string -} - -// String implements fmt.Stringer. -func (sv SoftwareVulnerability) String() string { - return fmt.Sprintf("{%d,%s}", sv.CPEID, sv.CVE) -} - -// SoftwareWithCPE holds a software piece alongside its CPE ID. -type SoftwareWithCPE struct { - // Software holds the software data. - Software - // CPEID is the ID of the software CPE in the system. - CPEID uint -} - // NotFoundError is returned when the datastore resource cannot be found. type NotFoundError interface { error diff --git a/server/fleet/software.go b/server/fleet/software.go index 4e2583109b..2461fc7f1d 100644 --- a/server/fleet/software.go +++ b/server/fleet/software.go @@ -1,6 +1,9 @@ package fleet -import "time" +import ( + "fmt" + "time" +) type CVE struct { CVE string `json:"cve" db:"cve"` @@ -53,6 +56,10 @@ type Software struct { // GenerateCPE is the CPE23 string that corresponds to the current software GenerateCPE string `json:"generated_cpe" db:"generated_cpe"` + + // GeneratedCPEID is the ID of the matched CPE + GeneratedCPEID uint `json:"-" db:"generated_cpe_id"` + // Vulnerabilities lists all the found CVEs for the CPE Vulnerabilities Vulnerabilities `json:"vulnerabilities"` // HostsCount indicates the number of hosts with that software, filled only @@ -111,3 +118,42 @@ type SoftwareListOptions struct { // a count of hosts > 0. WithHostCounts bool } + +// SoftwareCPE represents an entry in the `software_cpe` table +type SoftwareCPE struct { + ID uint `db:"id"` + SoftwareID uint `db:"software_id"` + CPE string `db:"cpe"` +} + +// SoftwareVulnerability identifies a vulnerability on a specific software. +type SoftwareVulnerability struct { + SoftwareID uint `db:"software_id"` + CPEID uint `db:"cpe_id"` + CVE string `db:"cve"` +} + +// String implements fmt.Stringer. +func (sv SoftwareVulnerability) String() string { + return fmt.Sprintf("{%d,%s}", sv.SoftwareID, sv.CVE) +} + +// Key returns a string representation of the SoftwareVulnerability +func (sv *SoftwareVulnerability) Key() string { + return fmt.Sprintf("%d:%s", sv.SoftwareID, sv.CVE) +} + +// SoftwareWithCPE holds a software piece alongside its CPE ID. +type SoftwareWithCPE struct { + // Software holds the software data. + Software + // CPEID is the ID of the software CPE in the system. + CPEID uint +} + +type VulnerabilitySource int + +const ( + NVD VulnerabilitySource = iota + OVAL +) diff --git a/server/mock/datastore_mock.go b/server/mock/datastore_mock.go index a6e7d31d63..973179effb 100644 --- a/server/mock/datastore_mock.go +++ b/server/mock/datastore_mock.go @@ -156,6 +156,8 @@ type GenerateHostStatusStatisticsFunc func(ctx context.Context, filter fleet.Tea type HostIDsByNameFunc func(ctx context.Context, filter fleet.TeamFilter, hostnames []string) ([]uint, error) +type HostIDsByOSVersionFunc func(ctx context.Context, osVersion fleet.OSVersion, offset int, limit int) ([]uint, error) + type HostByIdentifierFunc func(ctx context.Context, identifier string) (*fleet.Host, error) type AddHostsToTeamFunc func(ctx context.Context, teamID *uint, hostIDs []uint) error @@ -268,15 +270,19 @@ type SearchTeamsFunc func(ctx context.Context, filter fleet.TeamFilter, matchQue type TeamEnrollSecretsFunc func(ctx context.Context, teamID uint) ([]*fleet.EnrollSecret, error) +type ListSoftwareForVulnDetectionFunc func(ctx context.Context, hostID uint) ([]fleet.Software, error) + +type ListSoftwareVulnerabilitiesFunc func(ctx context.Context, hostIDs []uint) (map[uint][]fleet.SoftwareVulnerability, error) + type LoadHostSoftwareFunc func(ctx context.Context, host *fleet.Host, includeCVEScores bool) error type AllSoftwareWithoutCPEIteratorFunc func(ctx context.Context) (fleet.SoftwareIterator, error) type AddCPEForSoftwareFunc func(ctx context.Context, software fleet.Software, cpe string) error -type AllCPEsFunc func(ctx context.Context) ([]string, error) +type ListSoftwareCPEsFunc func(ctx context.Context, excludedPlatforms []string) ([]fleet.SoftwareCPE, error) -type InsertCVEForCPEFunc func(ctx context.Context, cve string, cpes []string) (int64, error) +type InsertVulnerabilitiesFunc func(ctx context.Context, vulns []fleet.SoftwareVulnerability, source fleet.VulnerabilitySource) (int64, error) type SoftwareByIDFunc func(ctx context.Context, id uint, includeCVEScores bool) (*fleet.Software, error) @@ -284,12 +290,14 @@ type ListSoftwareByHostIDShortFunc func(ctx context.Context, hostID uint) ([]fle type CalculateHostsPerSoftwareFunc func(ctx context.Context, updatedAt time.Time) error -type HostsByCPEsFunc func(ctx context.Context, cpes []string) ([]*fleet.HostShort, error) +type HostsBySoftwareIDsFunc func(ctx context.Context, softwareIDs []uint) ([]*fleet.HostShort, error) type HostsByCVEFunc func(ctx context.Context, cve string) ([]*fleet.HostShort, error) type InsertCVEMetaFunc func(ctx context.Context, cveMeta []fleet.CVEMeta) error +type ListCVEsFunc func(ctx context.Context, maxAge time.Duration) ([]fleet.CVEMeta, error) + type NewActivityFunc func(ctx context.Context, user *fleet.User, activityType string, details *map[string]interface{}) error type ListActivitiesFunc func(ctx context.Context, opt fleet.ListOptions) ([]*fleet.Activity, error) @@ -619,6 +627,9 @@ type DataStore struct { HostIDsByNameFunc HostIDsByNameFunc HostIDsByNameFuncInvoked bool + HostIDsByOSVersionFunc HostIDsByOSVersionFunc + HostIDsByOSVersionFuncInvoked bool + HostByIdentifierFunc HostByIdentifierFunc HostByIdentifierFuncInvoked bool @@ -787,6 +798,12 @@ type DataStore struct { TeamEnrollSecretsFunc TeamEnrollSecretsFunc TeamEnrollSecretsFuncInvoked bool + ListSoftwareForVulnDetectionFunc ListSoftwareForVulnDetectionFunc + ListSoftwareForVulnDetectionFuncInvoked bool + + ListSoftwareVulnerabilitiesFunc ListSoftwareVulnerabilitiesFunc + ListSoftwareVulnerabilitiesFuncInvoked bool + LoadHostSoftwareFunc LoadHostSoftwareFunc LoadHostSoftwareFuncInvoked bool @@ -796,11 +813,11 @@ type DataStore struct { AddCPEForSoftwareFunc AddCPEForSoftwareFunc AddCPEForSoftwareFuncInvoked bool - AllCPEsFunc AllCPEsFunc - AllCPEsFuncInvoked bool + ListSoftwareCPEsFunc ListSoftwareCPEsFunc + ListSoftwareCPEsFuncInvoked bool - InsertCVEForCPEFunc InsertCVEForCPEFunc - InsertCVEForCPEFuncInvoked bool + InsertVulnerabilitiesFunc InsertVulnerabilitiesFunc + InsertVulnerabilitiesFuncInvoked bool SoftwareByIDFunc SoftwareByIDFunc SoftwareByIDFuncInvoked bool @@ -811,8 +828,8 @@ type DataStore struct { CalculateHostsPerSoftwareFunc CalculateHostsPerSoftwareFunc CalculateHostsPerSoftwareFuncInvoked bool - HostsByCPEsFunc HostsByCPEsFunc - HostsByCPEsFuncInvoked bool + HostsBySoftwareIDsFunc HostsBySoftwareIDsFunc + HostsBySoftwareIDsFuncInvoked bool HostsByCVEFunc HostsByCVEFunc HostsByCVEFuncInvoked bool @@ -820,6 +837,9 @@ type DataStore struct { InsertCVEMetaFunc InsertCVEMetaFunc InsertCVEMetaFuncInvoked bool + ListCVEsFunc ListCVEsFunc + ListCVEsFuncInvoked bool + NewActivityFunc NewActivityFunc NewActivityFuncInvoked bool @@ -1349,6 +1369,11 @@ func (s *DataStore) HostIDsByName(ctx context.Context, filter fleet.TeamFilter, return s.HostIDsByNameFunc(ctx, filter, hostnames) } +func (s *DataStore) HostIDsByOSVersion(ctx context.Context, osVersion fleet.OSVersion, offset int, limit int) ([]uint, error) { + s.HostIDsByOSVersionFuncInvoked = true + return s.HostIDsByOSVersionFunc(ctx, osVersion, offset, limit) +} + func (s *DataStore) HostByIdentifier(ctx context.Context, identifier string) (*fleet.Host, error) { s.HostByIdentifierFuncInvoked = true return s.HostByIdentifierFunc(ctx, identifier) @@ -1629,6 +1654,16 @@ func (s *DataStore) TeamEnrollSecrets(ctx context.Context, teamID uint) ([]*flee return s.TeamEnrollSecretsFunc(ctx, teamID) } +func (s *DataStore) ListSoftwareForVulnDetection(ctx context.Context, hostID uint) ([]fleet.Software, error) { + s.ListSoftwareForVulnDetectionFuncInvoked = true + return s.ListSoftwareForVulnDetectionFunc(ctx, hostID) +} + +func (s *DataStore) ListSoftwareVulnerabilities(ctx context.Context, hostIDs []uint) (map[uint][]fleet.SoftwareVulnerability, error) { + s.ListSoftwareVulnerabilitiesFuncInvoked = true + return s.ListSoftwareVulnerabilitiesFunc(ctx, hostIDs) +} + func (s *DataStore) LoadHostSoftware(ctx context.Context, host *fleet.Host, includeCVEScores bool) error { s.LoadHostSoftwareFuncInvoked = true return s.LoadHostSoftwareFunc(ctx, host, includeCVEScores) @@ -1644,14 +1679,14 @@ func (s *DataStore) AddCPEForSoftware(ctx context.Context, software fleet.Softwa return s.AddCPEForSoftwareFunc(ctx, software, cpe) } -func (s *DataStore) AllCPEs(ctx context.Context) ([]string, error) { - s.AllCPEsFuncInvoked = true - return s.AllCPEsFunc(ctx) +func (s *DataStore) ListSoftwareCPEs(ctx context.Context, excludedPlatforms []string) ([]fleet.SoftwareCPE, error) { + s.ListSoftwareCPEsFuncInvoked = true + return s.ListSoftwareCPEsFunc(ctx, excludedPlatforms) } -func (s *DataStore) InsertCVEForCPE(ctx context.Context, cve string, cpes []string) (int64, error) { - s.InsertCVEForCPEFuncInvoked = true - return s.InsertCVEForCPEFunc(ctx, cve, cpes) +func (s *DataStore) InsertVulnerabilities(ctx context.Context, vulns []fleet.SoftwareVulnerability, source fleet.VulnerabilitySource) (int64, error) { + s.InsertVulnerabilitiesFuncInvoked = true + return s.InsertVulnerabilitiesFunc(ctx, vulns, source) } func (s *DataStore) SoftwareByID(ctx context.Context, id uint, includeCVEScores bool) (*fleet.Software, error) { @@ -1669,9 +1704,9 @@ func (s *DataStore) CalculateHostsPerSoftware(ctx context.Context, updatedAt tim return s.CalculateHostsPerSoftwareFunc(ctx, updatedAt) } -func (s *DataStore) HostsByCPEs(ctx context.Context, cpes []string) ([]*fleet.HostShort, error) { - s.HostsByCPEsFuncInvoked = true - return s.HostsByCPEsFunc(ctx, cpes) +func (s *DataStore) HostsBySoftwareIDs(ctx context.Context, softwareIDs []uint) ([]*fleet.HostShort, error) { + s.HostsBySoftwareIDsFuncInvoked = true + return s.HostsBySoftwareIDsFunc(ctx, softwareIDs) } func (s *DataStore) HostsByCVE(ctx context.Context, cve string) ([]*fleet.HostShort, error) { @@ -1684,6 +1719,11 @@ func (s *DataStore) InsertCVEMeta(ctx context.Context, cveMeta []fleet.CVEMeta) return s.InsertCVEMetaFunc(ctx, cveMeta) } +func (s *DataStore) ListCVEs(ctx context.Context, maxAge time.Duration) ([]fleet.CVEMeta, error) { + s.ListCVEsFuncInvoked = true + return s.ListCVEsFunc(ctx, maxAge) +} + func (s *DataStore) NewActivity(ctx context.Context, user *fleet.User, activityType string, details *map[string]interface{}) error { s.NewActivityFuncInvoked = true return s.NewActivityFunc(ctx, user, activityType, details) diff --git a/server/service/integration_core_test.go b/server/service/integration_core_test.go index e819730ac3..a70db25dd4 100644 --- a/server/service/integration_core_test.go +++ b/server/service/integration_core_test.go @@ -478,8 +478,25 @@ func (s *integrationTestSuite) TestVulnerableSoftware() { } require.NoError(t, s.ds.AddCPEForSoftware(context.Background(), soft1, "somecpe")) - _, err = s.ds.InsertCVEForCPE(context.Background(), "cve-123-123-132", []string{"somecpe"}) + + // Reload software so that 'GeneratedCPEID is set. + require.NoError(t, s.ds.LoadHostSoftware(context.Background(), host, false)) + soft1 = host.Software[0] + if soft1.Name != "bar" { + soft1 = host.Software[1] + } + + n, err := s.ds.InsertVulnerabilities( + context.Background(), []fleet.SoftwareVulnerability{ + { + SoftwareID: soft1.ID, + CPEID: soft1.GeneratedCPEID, + CVE: "cve-123-123-132", + }, + }, fleet.NVD, + ) require.NoError(t, err) + require.Equal(t, 1, int(n)) resp := s.Do("GET", fmt.Sprintf("/api/latest/fleet/hosts/%d", host.ID), nil, http.StatusOK) bodyBytes, err := ioutil.ReadAll(resp.Body) @@ -4036,14 +4053,24 @@ func (s *integrationTestSuite) TestPaginateListSoftware() { for i, sw := range sws { cpe := "somecpe" + strconv.Itoa(i) require.NoError(t, s.ds.AddCPEForSoftware(context.Background(), sw, cpe)) - - if i < 10 { - // add CVEs for the first 10 software, which are the least used (lower hosts_count) - _, err := s.ds.InsertCVEForCPE(context.Background(), fmt.Sprintf("cve-123-123-%03d", i), []string{cpe}) - require.NoError(t, err) - } } + // Reload software to load GeneratedCPEID + require.NoError(t, s.ds.LoadHostSoftware(context.Background(), hosts[0], false)) + var vulns []fleet.SoftwareVulnerability + for i, sw := range hosts[0].Software[:10] { + vulns = append(vulns, fleet.SoftwareVulnerability{ + SoftwareID: sw.ID, + CPEID: sw.GeneratedCPEID, + CVE: fmt.Sprintf("cve-123-123-%03d", i), + }) + } + + // add CVEs for the first 10 software, which are the least used (lower hosts_count) + n, err := s.ds.InsertVulnerabilities(context.Background(), vulns, fleet.NVD) + require.NoError(t, err) + require.Equal(t, 10, int(n)) + // create a team and make the last 3 hosts part of it (meaning 3 that use // sws[19], 2 for sws[18], and 1 for sws[17]) tm, err := s.ds.NewTeam(context.Background(), &fleet.Team{ diff --git a/server/test/comparisons.go b/server/test/comparisons.go index 1634ab5a18..1dc42ddabf 100644 --- a/server/test/comparisons.go +++ b/server/test/comparisons.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "reflect" + "strings" "github.com/davecgh/go-spew/spew" "github.com/google/go-cmp/cmp" @@ -24,7 +25,7 @@ func ElementsMatchSkipID(t TestingT, listA, listB interface{}, msgAndArgs ...int for _, ps := range p { switch ps := ps.(type) { case cmp.StructField: - if ps.Name() == "ID" { + if strings.HasSuffix(ps.Name(), "ID") { return true } } @@ -126,7 +127,6 @@ func ElementsMatchWithOptions(t TestingT, listA, listB interface{}, opts cmp.Opt // isEmpty gets whether the specified object is considered empty or not. func isEmpty(object interface{}) bool { - // get nil case out of the way if object == nil { return true diff --git a/server/vulnerabilities/cpe.go b/server/vulnerabilities/cpe.go index 91765779d4..f81bdb93e1 100644 --- a/server/vulnerabilities/cpe.go +++ b/server/vulnerabilities/cpe.go @@ -248,7 +248,11 @@ func TranslateSoftwareToCPE( continue } if cpe == "" { - continue + // The schema for storing CVEs requires that a CPE for every software exists, + // having that constraint in place works fine when the only source for vulnerabilities + // is the NVD dataset but breaks down when we look at other sources for vulnerabilities (like OVAL) - this is + // why we set a default value for CPEs. + cpe = fmt.Sprintf("none:%d", software.ID) } err = ds.AddCPEForSoftware(ctx, *software, cpe) if err != nil { diff --git a/server/vulnerabilities/cve.go b/server/vulnerabilities/cve.go index 751f074430..4e77cb856b 100644 --- a/server/vulnerabilities/cve.go +++ b/server/vulnerabilities/cve.go @@ -10,16 +10,17 @@ import ( "path/filepath" "regexp" "runtime" + "strings" "sync" "time" - "github.com/WatchBeam/clock" "github.com/facebookincubator/nvdtools/cvefeed" feednvd "github.com/facebookincubator/nvdtools/cvefeed/nvd" "github.com/facebookincubator/nvdtools/providers/nvd" "github.com/facebookincubator/nvdtools/wfn" "github.com/fleetdm/fleet/v4/server/config" "github.com/fleetdm/fleet/v4/server/fleet" + "github.com/fleetdm/fleet/v4/server/vulnerabilities/oval" kitlog "github.com/go-kit/kit/log" "github.com/go-kit/kit/log/level" ) @@ -62,13 +63,7 @@ func DownloadNVDCVEFeed(vulnPath string, cveFeedPrefixURL string) error { const publishedDateFmt = "2006-01-02T15:04Z" // not quite RFC3339 -var ( - rxNVDCVEArchive = regexp.MustCompile(`nvdcve.*\.gz$`) - - // this allows mocking the time package for tests, by default it is equivalent - // to the time functions, e.g. theClock.Now() == time.Now(). - theClock clock.Clock = clock.C -) +var rxNVDCVEArchive = regexp.MustCompile(`nvdcve.*\.gz$`) func getNVDCVEFeedFiles(vulnPath string) ([]string, error) { var files []string @@ -96,18 +91,21 @@ func getNVDCVEFeedFiles(vulnPath string) ([]string, error) { return files, nil } +type softwareCPEWithNVDMeta struct { + fleet.SoftwareCPE + meta *wfn.Attributes +} + // TranslateCPEToCVE maps the CVEs found in NVD archive files in the // vulnerabilities database folder to software CPEs in the fleet database. -// If collectRecentVulns is true, it also returns a mapping of recent CVEs -// to a list of CPEs affected by the CVE, otherwise that map is nil. +// If collectVulns is true, returns a list of any new software vulnerabilities found. func TranslateCPEToCVE( ctx context.Context, ds fleet.Datastore, vulnPath string, logger kitlog.Logger, - collectRecentVulns bool, - recentVulnerabilityMaxAge time.Duration, -) (map[string][]string, error) { + collectVulns bool, +) ([]fleet.SoftwareVulnerability, error) { files, err := getNVDCVEFeedFiles(vulnPath) if err != nil { return nil, err @@ -116,60 +114,67 @@ func TranslateCPEToCVE( return nil, nil } - cpeList, err := ds.AllCPEs(ctx) + // Skip entries from platforms supported by OVAL + CPEs, err := ds.ListSoftwareCPEs(ctx, oval.SupportedHostPlatforms) if err != nil { return nil, err } - cpes := make([]*wfn.Attributes, 0, len(cpeList)) - for _, uri := range cpeList { - attr, err := wfn.Parse(uri) + var parsed []softwareCPEWithNVDMeta + for _, CPE := range CPEs { + // Skip dummy CPEs + if strings.HasPrefix(CPE.CPE, "none") { + continue + } + + attr, err := wfn.Parse(CPE.CPE) if err != nil { return nil, err } - cpes = append(cpes, attr) + parsed = append(parsed, softwareCPEWithNVDMeta{ + SoftwareCPE: CPE, + meta: attr, + }) } - - if len(cpes) == 0 { + if len(parsed) == 0 { return nil, nil } - var recentVulns map[string][]string - if collectRecentVulns { - recentVulns = make(map[string][]string) - } + var vulns []fleet.SoftwareVulnerability for _, file := range files { - err := checkCVEs(ctx, ds, logger, cpes, file, recentVulns, recentVulnerabilityMaxAge) + r, err := checkCVEs(ctx, ds, logger, parsed, file, collectVulns) if err != nil { return nil, err } + vulns = append(vulns, r...) } - return recentVulns, nil + return vulns, nil } func checkCVEs( ctx context.Context, ds fleet.Datastore, logger kitlog.Logger, - cpes []*wfn.Attributes, + softwareCPEs []softwareCPEWithNVDMeta, file string, - recentVulns map[string][]string, - recentVulnMaxAge time.Duration, -) error { + collectVulns bool, +) ([]fleet.SoftwareVulnerability, error) { dict, err := cvefeed.LoadJSONDictionary(file) if err != nil { - return err + return nil, err } + cache := cvefeed.NewCache(dict).SetRequireVersion(true).SetMaxSize(-1) // This index consumes too much RAM // cache.Idx = cvefeed.NewIndex(dict) - cpeCh := make(chan *wfn.Attributes) - collectVulns := recentVulns != nil + softwareCPECh := make(chan softwareCPEWithNVDMeta) + var results []fleet.SoftwareVulnerability var wg sync.WaitGroup var mu sync.Mutex + for i := 0; i < runtime.NumCPU(); i++ { wg.Add(1) goRoutineKey := i @@ -181,70 +186,55 @@ func checkCVEs( for { select { - case cpe, more := <-cpeCh: + case softwareCPE, more := <-softwareCPECh: if !more { level.Debug(logger).Log(logKey, "done") return } - cacheHits := cache.Get([]*wfn.Attributes{cpe}) + + cacheHits := cache.Get([]*wfn.Attributes{softwareCPE.meta}) for _, matches := range cacheHits { ml := len(matches.CPEs) if ml == 0 { continue } + matchingVulns := make([]fleet.SoftwareVulnerability, 0, ml) cveID := matches.CVE.ID() - matchingCPEs := make([]string, 0, ml) for _, attr := range matches.CPEs { if attr == nil { level.Error(logger).Log("matches nil CPE", cveID) continue } - cpe := attr.BindToFmtString() - if len(cpe) == 0 { - continue - } - matchingCPEs = append(matchingCPEs, cpe) + matchingVulns = append(matchingVulns, fleet.SoftwareVulnerability{ + SoftwareID: softwareCPE.SoftwareID, + CPEID: softwareCPE.ID, + CVE: cveID, + }) } - newCount, err := ds.InsertCVEForCPE(ctx, cveID, matchingCPEs) + newCount, err := ds.InsertVulnerabilities(ctx, matchingVulns, fleet.NVD) if err != nil { level.Error(logger).Log("cpe processing", "error", "err", err) continue // do not report a recent vuln that failed to be inserted in the DB } - // collect as recent vuln only if newCount > 0, otherwise we would send + // collect vuln only if newCount > 0, otherwise we would send // webhook requests for the same vulnerability over and over again until // it is older than 2 days. if collectVulns && newCount > 0 { - vuln, ok := matches.CVE.(*feednvd.Vuln) + _, ok := matches.CVE.(*feednvd.Vuln) if !ok { - level.Error(logger).Log("recent vuln", "unexpected type for Vuln interface", "cve", cveID, + level.Error(logger).Log( + "recent vuln", "unexpected type for Vuln interface", + "cve", cveID, "type", fmt.Sprintf("%T", matches.CVE)) continue } - rawPubDate := vuln.Schema().PublishedDate - if rawPubDate == "" { - level.Error(logger).Log("recent vuln", "empty published date", "cve", cveID) - continue - } - - pubDate, err := time.Parse(publishedDateFmt, rawPubDate) - if err != nil { - level.Error(logger).Log("recent vuln", "unexpected published date format", "cve", cveID, - "published_date", rawPubDate, "err", err) - continue - } - - // the second condition should only affect tests - to ignore pubDates in the future - // when using a mocked current clock. When using the real clock, the published date - // should always be in the past. - if theClock.Since(pubDate) <= recentVulnMaxAge && theClock.Now().After(pubDate) { - mu.Lock() - recentVulns[cveID] = append(recentVulns[cveID], matchingCPEs...) - mu.Unlock() - } + mu.Lock() + results = append(results, matchingVulns...) + mu.Unlock() } } case <-ctx.Done(): @@ -256,17 +246,18 @@ func checkCVEs( } level.Debug(logger).Log("pushing cpes", "start") - for _, cpe := range cpes { - cpeCh <- cpe + for _, cpe := range softwareCPEs { + softwareCPECh <- cpe } - close(cpeCh) + close(softwareCPECh) level.Debug(logger).Log("pushing cpes", "done") wg.Wait() - return nil + return results, nil } +// TODO (juan): Remove this after OVAL centos // PostProcess performs additional processing over the results of // the main vulnerability processing run (TranslateSoftwareToCPE+TranslateCPEToCVE). func PostProcess( diff --git a/server/vulnerabilities/cve_test.go b/server/vulnerabilities/cve_test.go index b94e207523..e2add7ab65 100644 --- a/server/vulnerabilities/cve_test.go +++ b/server/vulnerabilities/cve_test.go @@ -12,8 +12,8 @@ import ( "testing" "time" - "github.com/WatchBeam/clock" "github.com/fleetdm/fleet/v4/pkg/nettest" + "github.com/fleetdm/fleet/v4/server/fleet" "github.com/fleetdm/fleet/v4/server/mock" kitlog "github.com/go-kit/kit/log" "github.com/stretchr/testify/assert" @@ -46,16 +46,16 @@ type threadSafeDSMock struct { *mock.Store } -func (d *threadSafeDSMock) AllCPEs(ctx context.Context) ([]string, error) { +func (d *threadSafeDSMock) ListSoftwareCPEs(ctx context.Context, excludedPlatforms []string) ([]fleet.SoftwareCPE, error) { d.mu.Lock() defer d.mu.Unlock() - return d.Store.AllCPEs(ctx) + return d.Store.ListSoftwareCPEs(ctx, excludedPlatforms) } -func (d *threadSafeDSMock) InsertCVEForCPE(ctx context.Context, cve string, cpes []string) (int64, error) { +func (d *threadSafeDSMock) InsertVulnerabilities(ctx context.Context, vulns []fleet.SoftwareVulnerability, src fleet.VulnerabilitySource) (int64, error) { d.mu.Lock() defer d.mu.Unlock() - return d.Store.InsertCVEForCPE(ctx, cve, cpes) + return d.Store.InsertVulnerabilities(ctx, vulns, src) } func withNetRetry(t *testing.T, fn func() error) error { @@ -84,76 +84,71 @@ func TestTranslateCPEToCVE(t *testing.T) { }) require.NoError(t, err) - recentVulnerabilityMaxAge := 365 * 24 * time.Hour - for _, tt := range cvetests { t.Run(tt.cpe, func(t *testing.T) { - ds.AllCPEsFunc = func(ctx context.Context) ([]string, error) { - return []string{tt.cpe}, nil + ds.ListSoftwareCPEsFunc = func(ctx context.Context, excludedPlatforms []string) ([]fleet.SoftwareCPE, error) { + return []fleet.SoftwareCPE{ + {CPE: tt.cpe}, + }, nil } cveLock := &sync.Mutex{} - cveToCPEs := make(map[string][]string) var cvesFound []string - ds.InsertCVEForCPEFunc = func(ctx context.Context, cve string, cpes []string) (int64, error) { + ds.InsertVulnerabilitiesFunc = func(ctx context.Context, vulns []fleet.SoftwareVulnerability, src fleet.VulnerabilitySource) (int64, error) { cveLock.Lock() defer cveLock.Unlock() - cveToCPEs[cve] = cpes - cvesFound = append(cvesFound, cve) + for _, v := range vulns { + cvesFound = append(cvesFound, v.CVE) + } + return 0, nil } - _, err := TranslateCPEToCVE(ctx, ds, tempDir, kitlog.NewLogfmtLogger(os.Stdout), false, 0) + _, err := TranslateCPEToCVE(ctx, ds, tempDir, kitlog.NewLogfmtLogger(os.Stdout), false) require.NoError(t, err) printMemUsage() require.Equal(t, []string{tt.cve}, cvesFound) - require.Equal(t, []string{tt.cpe}, cveToCPEs[tt.cve]) }) } t.Run("recent_vulns", func(t *testing.T) { - googleChromeCPE := "cpe:2.3:a:google:chrome:-:*:*:*:*:*:*:*" - mozillaFirefoxCPE := "cpe:2.3:a:mozilla:firefox:-:*:*:*:*:*:*:*" - curlCPE := "cpe:2.3:a:haxx:curl:-:*:*:*:*:*:*:*" - - // consider recent vulnerabilities to be anything published in 2018 - theClock = clock.NewMockClock(time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC)) - defer func() { theClock = clock.C }() - safeDS := &threadSafeDSMock{Store: ds} - ds.AllCPEsFunc = func(ctx context.Context) ([]string, error) { - return []string{googleChromeCPE, mozillaFirefoxCPE, curlCPE}, nil + softwareCPEs := []fleet.SoftwareCPE{ + {CPE: "cpe:2.3:a:google:chrome:-:*:*:*:*:*:*:*", ID: 1, SoftwareID: 1}, + {CPE: "cpe:2.3:a:mozilla:firefox:-:*:*:*:*:*:*:*", ID: 2, SoftwareID: 2}, + {CPE: "cpe:2.3:a:haxx:curl:-:*:*:*:*:*:*:*", ID: 3, SoftwareID: 3}, + } + ds.ListSoftwareCPEsFunc = func(ctx context.Context, excludedPlatforms []string) ([]fleet.SoftwareCPE, error) { + return softwareCPEs, nil } - ds.InsertCVEForCPEFunc = func(ctx context.Context, cve string, cpes []string) (int64, error) { + ds.InsertVulnerabilitiesFunc = func(ctx context.Context, vulns []fleet.SoftwareVulnerability, src fleet.VulnerabilitySource) (int64, error) { return 1, nil } - recent, err := TranslateCPEToCVE(ctx, safeDS, tempDir, kitlog.NewNopLogger(), true, recentVulnerabilityMaxAge) + recent, err := TranslateCPEToCVE(ctx, safeDS, tempDir, kitlog.NewNopLogger(), true) require.NoError(t, err) - byCPE := make(map[string]int) - for _, cpes := range recent { - for _, cpe := range cpes { - byCPE[cpe]++ - } + byCPE := make(map[uint]int) + for _, cpe := range recent { + byCPE[cpe.SoftwareID]++ } // even if it's somewhat far in the past, I've seen the exact numbers // change a bit between runs with different downloads, so allow for a bit // of wiggle room. - assert.Greater(t, byCPE[googleChromeCPE], 150, "google chrome CVEs") - assert.Greater(t, byCPE[mozillaFirefoxCPE], 280, "mozilla firefox CVEs") - assert.Greater(t, byCPE[curlCPE], 10, "curl CVEs") + assert.Greater(t, byCPE[softwareCPEs[0].SoftwareID], 150, "google chrome CVEs") + assert.Greater(t, byCPE[softwareCPEs[1].SoftwareID], 280, "mozilla firefox CVEs") + assert.Greater(t, byCPE[softwareCPEs[2].SoftwareID], 10, "curl CVEs") // call it again but now return 0 from this call, simulating CVE-CPE pairs // that already existed in the DB. - ds.InsertCVEForCPEFunc = func(ctx context.Context, cve string, cpes []string) (int64, error) { + ds.InsertVulnerabilitiesFunc = func(ctx context.Context, vulns []fleet.SoftwareVulnerability, src fleet.VulnerabilitySource) (int64, error) { return 0, nil } - recent, err = TranslateCPEToCVE(ctx, safeDS, tempDir, kitlog.NewNopLogger(), true, recentVulnerabilityMaxAge) + recent, err = TranslateCPEToCVE(ctx, safeDS, tempDir, kitlog.NewNopLogger(), true) require.NoError(t, err) // no recent vulnerability should be reported diff --git a/server/vulnerabilities/oval/analyzer.go b/server/vulnerabilities/oval/analyzer.go new file mode 100644 index 0000000000..3e70992fcd --- /dev/null +++ b/server/vulnerabilities/oval/analyzer.go @@ -0,0 +1,244 @@ +package oval + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "io/fs" + "io/ioutil" + "os" + "path/filepath" + "strings" + "time" + + "github.com/fleetdm/fleet/v4/server/fleet" + oval_parsed "github.com/fleetdm/fleet/v4/server/vulnerabilities/oval/parsed" +) + +const ( + hostsBatchSize = 500 + vulnBatchSize = 500 +) + +// Analyze scans all hosts for vulnerabilities based on the OVAL definitions for their platform, +// inserting any new vulnerabilities and deleting anything patched. +func Analyze( + ctx context.Context, + ds fleet.Datastore, + ver fleet.OSVersion, + vulnPath string, + collectVulns bool, +) ([]fleet.SoftwareVulnerability, error) { + platform := NewPlatform(ver.Platform, ver.Name) + + if !platform.IsSupported() { + return nil, nil + } + + defs, err := loadDef(platform, vulnPath) + if err != nil { + return nil, err + } + + // Since hosts and software have a M:N relationship, the following sets are used to + // avoid doing duplicated inserts/delete operations (a vulnerable software might be + // present in many hosts). + toInsertSet := make(map[string]fleet.SoftwareVulnerability) + toDeleteSet := make(map[string]fleet.SoftwareVulnerability) + + var offset int + for { + hIds, err := ds.HostIDsByOSVersion(ctx, ver, offset, hostsBatchSize) + offset += hostsBatchSize + + if err != nil { + return nil, err + } + + if len(hIds) == 0 { + break + } + + foundInBatch := make(map[uint][]fleet.SoftwareVulnerability) + for _, hId := range hIds { + software, err := ds.ListSoftwareForVulnDetection(ctx, hId) + if err != nil { + return nil, err + } + foundInBatch[hId] = defs.Eval(software) + } + + existingInBatch, err := ds.ListSoftwareVulnerabilities(ctx, hIds) + if err != nil { + return nil, err + } + + for _, hId := range hIds { + insrt, del := vulnsDelta(foundInBatch[hId], existingInBatch[hId]) + for _, i := range insrt { + toInsertSet[i.Key()] = i + } + for _, d := range del { + toDeleteSet[d.Key()] = d + } + } + } + + err = batchProcess(toDeleteSet, func(v []fleet.SoftwareVulnerability) error { + return ds.DeleteVulnerabilitiesByCPECVE(ctx, v) + }) + if err != nil { + return nil, err + } + + var inserted []fleet.SoftwareVulnerability + if collectVulns { + inserted = make([]fleet.SoftwareVulnerability, 0, len(toInsertSet)) + } + + err = batchProcess(toInsertSet, func(v []fleet.SoftwareVulnerability) error { + n, err := ds.InsertVulnerabilities(ctx, v, fleet.OVAL) + if err != nil { + return err + } + + if collectVulns && n > 0 { + inserted = append(inserted, v...) + } + + return nil + }) + if err != nil { + return nil, err + } + + return inserted, nil +} + +func batchProcess( + values map[string]fleet.SoftwareVulnerability, + dsFunc func(v []fleet.SoftwareVulnerability) error, +) error { + if len(values) == 0 { + return nil + } + + bSize := vulnBatchSize + if bSize > len(values) { + bSize = len(values) + } + + buffer := make([]fleet.SoftwareVulnerability, bSize) + var offset, i int + for _, v := range values { + buffer[offset] = v + offset++ + i++ + + // Consume buffer if full or if we are at the last iteration + if offset == bSize || i >= len(values) { + err := dsFunc(buffer[:offset]) + if err != nil { + return err + } + offset = 0 + } + } + return nil +} + +// vulnsDelta compares what vulnerabilities already exists with what new vulnerabilities were found +// and returns what to insert and what to delete. +func vulnsDelta( + found []fleet.SoftwareVulnerability, + existing []fleet.SoftwareVulnerability, +) (toInsert []fleet.SoftwareVulnerability, toDelete []fleet.SoftwareVulnerability) { + toDelete = make([]fleet.SoftwareVulnerability, 0) + toInsert = make([]fleet.SoftwareVulnerability, 0) + + existingSet := make(map[string]bool) + for _, e := range existing { + existingSet[e.Key()] = true + } + + foundSet := make(map[string]bool) + for _, f := range found { + foundSet[f.Key()] = true + } + + for _, e := range existing { + if _, ok := foundSet[e.Key()]; !ok { + toDelete = append(toDelete, e) + } + } + + for _, f := range found { + if _, ok := existingSet[f.Key()]; !ok { + toInsert = append(toInsert, f) + } + } + + return toInsert, toDelete +} + +// loadDef returns the latest oval Definition for the given platform. +func loadDef(platform Platform, vulnPath string) (oval_parsed.Result, error) { + if !platform.IsUbuntu() { + return nil, fmt.Errorf("don't know how to load OVAL file for '%s' platform", platform) + } + + latest, err := latestOvalDefFor(platform, vulnPath, time.Now()) + if err != nil { + return nil, err + } + payload, err := ioutil.ReadFile(latest) + if err != nil { + return nil, err + } + + result := oval_parsed.UbuntuResult{} + if err := json.Unmarshal(payload, &result); err != nil { + return nil, err + } + return result, nil +} + +// latestOvalDefFor returns the path of the OVAL definition for the given 'platform' in +// 'vulnPath' for the given 'date'. +// If not found, returns the most up to date OVAL definition for the given 'platform' +func latestOvalDefFor(platform Platform, vulnPath string, date time.Time) (string, error) { + ext := "json" + fileName := platform.ToFilename(date, ext) + target := filepath.Join(vulnPath, fileName) + + switch _, err := os.Stat(target); { + case err == nil: + return target, nil + case errors.Is(err, fs.ErrNotExist): + files, err := os.ReadDir(vulnPath) + if err != nil { + return "", err + } + + prefix := strings.Split(fileName, "-")[0] + var latest os.FileInfo + for _, f := range files { + if strings.HasPrefix(f.Name(), prefix) && strings.HasSuffix(f.Name(), ext) { + info, err := f.Info() + if err != nil { + continue + } + if latest == nil || info.ModTime().After(latest.ModTime()) { + latest = info + } + } + } + if latest == nil { + return "", fmt.Errorf("file not found for platform '%s' in '%s'", platform, vulnPath) + } + return filepath.Join(vulnPath, latest.Name()), nil + default: + return "", fmt.Errorf("failed to stat %q: %w", target, err) + } +} diff --git a/server/vulnerabilities/oval/analyzer_test.go b/server/vulnerabilities/oval/analyzer_test.go new file mode 100644 index 0000000000..22748acec5 --- /dev/null +++ b/server/vulnerabilities/oval/analyzer_test.go @@ -0,0 +1,369 @@ +package oval + +import ( + "compress/bzip2" + "context" + "encoding/csv" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "testing" + "time" + + "github.com/fleetdm/fleet/v4/server" + "github.com/fleetdm/fleet/v4/server/datastore/mysql" + "github.com/fleetdm/fleet/v4/server/fleet" + "github.com/stretchr/testify/require" +) + +func withTestFixture( + version fleet.OSVersion, + vulnPath string, + ds *mysql.Datastore, + afterLoad func(h *fleet.Host), + t require.TestingT, +) { + type softwareFixture struct { + Name string `json:"name"` + Version string `json:"version"` + } + + ctx := context.Background() + + extract := func(src, dst string) { + srcF, err := os.Open(src) + require.NoError(t, err) + defer srcF.Close() + + dstF, err := os.Create(dst) + require.NoError(t, err) + defer dstF.Close() + + r := bzip2.NewReader(srcF) + _, err = io.Copy(dstF, r) + require.NoError(t, err) + } + + extractFixtures := func(p Platform) { + fixtPath := "testdata/ubuntu" + + srcDefPath := filepath.Join(fixtPath, fmt.Sprintf("%s-oval_def.json.bz2", p)) + dstDefPath := filepath.Join(vulnPath, p.ToFilename(time.Now(), "json")) + extract(srcDefPath, dstDefPath) + + srcSoftPath := filepath.Join(fixtPath, "software", fmt.Sprintf("%s-software.json.bz2", p)) + dstSoftPath := filepath.Join(vulnPath, fmt.Sprintf("%s-software.json", p)) + extract(srcSoftPath, dstSoftPath) + + srcCvesPath := filepath.Join(fixtPath, "software", fmt.Sprintf("%s-software_cves.csv.bz2", p)) + dstCvesPath := filepath.Join(vulnPath, fmt.Sprintf("%s-software_cves.csv", p)) + extract(srcCvesPath, dstCvesPath) + } + + loadSoftware := func(p Platform, s fleet.OSVersion) *fleet.Host { + osqueryHostID, err := server.GenerateRandomText(10) + require.NoError(t, err) + + h, err := ds.NewHost(context.Background(), &fleet.Host{ + Hostname: string(p), + NodeKey: string(p), + UUID: string(p), + DetailUpdatedAt: time.Now(), + LabelUpdatedAt: time.Now(), + PolicyUpdatedAt: time.Now(), + SeenTime: time.Now(), + OsqueryHostID: osqueryHostID, + Platform: s.Platform, + OSVersion: s.Name, + }) + require.NoError(t, err) + + var fixtures []softwareFixture + contents, err := ioutil.ReadFile(filepath.Join(vulnPath, fmt.Sprintf("%s-software.json", p))) + require.NoError(t, err) + + err = json.Unmarshal(contents, &fixtures) + require.NoError(t, err) + + var software []fleet.Software + for _, fi := range fixtures { + software = append(software, fleet.Software{ + Name: fi.Name, + Version: fi.Version, + }) + } + err = ds.UpdateHostSoftware(ctx, h.ID, software) + require.NoError(t, err) + + err = ds.LoadHostSoftware(ctx, h, false) + require.NoError(t, err) + + for _, s := range h.Software { + err = ds.AddCPEForSoftware(ctx, s, fmt.Sprintf("%s-%s", s.Name, s.Version)) + require.NoError(t, err) + } + + return h + } + + p := NewPlatform(version.Platform, version.Name) + + extractFixtures(p) + h := loadSoftware(p, version) + + err := ds.UpdateOSVersions(ctx) + require.NoError(t, err) + + afterLoad(h) + + err = ds.DeleteHost(ctx, h.ID) + require.NoError(t, err) +} + +func BenchmarkTestOvalAnalyzer(b *testing.B) { + ds := mysql.CreateMySQLDS(b) + defer mysql.TruncateTables(b, ds) + + vulnPath, err := ioutil.TempDir("", "oval_analyzer_ubuntu") + defer os.RemoveAll(vulnPath) + require.NoError(b, err) + + systems := []fleet.OSVersion{ + {Platform: "ubuntu", Name: "Ubuntu 16.4.0"}, + {Platform: "ubuntu", Name: "Ubuntu 18.4.0"}, + {Platform: "ubuntu", Name: "Ubuntu 20.4.0"}, + {Platform: "ubuntu", Name: "Ubuntu 21.4.0"}, + {Platform: "ubuntu", Name: "Ubuntu 21.10.0"}, + {Platform: "ubuntu", Name: "Ubuntu 22.4.0"}, + } + + for _, v := range systems { + b.Run(fmt.Sprintf("for %s %s", v.Platform, v.Name), func(b *testing.B) { + withTestFixture(v, vulnPath, ds, func(h *fleet.Host) { + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err = Analyze(context.Background(), ds, v, vulnPath, true) + require.NoError(b, err) + } + }, b) + }) + } +} + +func TestOvalAnalyzer(t *testing.T) { + // For generating the vulnerability lists I used VMs and ran oscap (since it seems like oscap + // does not work with Docker) and extracted all installed software vulnerabilities, then I had + // the VMs join my local dev env, and extracted the installed software from the database. + t.Run("analyzing Ubuntu software", func(t *testing.T) { + ds := mysql.CreateMySQLDS(t) + defer mysql.TruncateTables(t, ds) + + vulnPath, err := ioutil.TempDir("", "oval_analyzer_ubuntu") + defer os.RemoveAll(vulnPath) + require.NoError(t, err) + + ctx := context.Background() + + systems := []fleet.OSVersion{ + {Platform: "ubuntu", Name: "Ubuntu 16.4.0"}, + {Platform: "ubuntu", Name: "Ubuntu 18.4.0"}, + {Platform: "ubuntu", Name: "Ubuntu 20.4.0"}, + {Platform: "ubuntu", Name: "Ubuntu 21.4.0"}, + {Platform: "ubuntu", Name: "Ubuntu 21.10.0"}, + {Platform: "ubuntu", Name: "Ubuntu 22.4.0"}, + } + + assertVulns := func(h *fleet.Host, p Platform) { + fPath := filepath.Join(vulnPath, fmt.Sprintf("%s-software_cves.csv", p)) + f, err := os.Open(fPath) + require.NoError(t, err) + defer f.Close() + + r := csv.NewReader(f) + var expected []string + for { + row, err := r.Read() + if err == io.EOF { + break + } + + if len(row) < 1 { + continue + } + + expected = append(expected, row[0]) + } + require.NotEmpty(t, expected) + + storedVulns, err := ds.ListSoftwareVulnerabilities(ctx, []uint{h.ID}) + require.NoError(t, err) + + uniq := make(map[string]bool) + for _, v := range storedVulns[h.ID] { + uniq[v.CVE] = true + } + actual := make([]string, 0, len(uniq)) + for k := range uniq { + actual = append(actual, k) + } + + require.ElementsMatch(t, actual, expected) + } + + for _, v := range systems { + withTestFixture(v, vulnPath, ds, func(h *fleet.Host) { + _, err = Analyze(ctx, ds, v, vulnPath, true) + require.NoError(t, err) + + p := NewPlatform(v.Platform, v.Name) + assertVulns(h, p) + }, t) + } + }) + + t.Run("#vulnsDelta", func(t *testing.T) { + t.Run("no existing vulnerabilities", func(t *testing.T) { + var found []fleet.SoftwareVulnerability + var existing []fleet.SoftwareVulnerability + + toInsert, toDelete := vulnsDelta(found, existing) + require.Empty(t, toInsert) + require.Empty(t, toDelete) + }) + + t.Run("existing match found", func(t *testing.T) { + found := []fleet.SoftwareVulnerability{ + {CPEID: 1, CVE: "cve_1"}, + {CPEID: 1, CVE: "cve_2"}, + {CPEID: 2, CVE: "cve_3"}, + {CPEID: 2, CVE: "cve_4"}, + } + + existing := []fleet.SoftwareVulnerability{ + {CPEID: 1, CVE: "cve_1"}, + {CPEID: 1, CVE: "cve_2"}, + {CPEID: 2, CVE: "cve_3"}, + {CPEID: 2, CVE: "cve_4"}, + } + + toInsert, toDelete := vulnsDelta(found, existing) + require.Empty(t, toInsert) + require.Empty(t, toDelete) + }) + + t.Run("existing differ from found", func(t *testing.T) { + found := []fleet.SoftwareVulnerability{ + {CPEID: 1, CVE: "cve_1"}, + {CPEID: 1, CVE: "cve_2"}, + {CPEID: 3, CVE: "cve_5"}, + {CPEID: 3, CVE: "cve_6"}, + } + + existing := []fleet.SoftwareVulnerability{ + {CPEID: 1, CVE: "cve_1"}, + {CPEID: 1, CVE: "cve_2"}, + {CPEID: 2, CVE: "cve_3"}, + {CPEID: 2, CVE: "cve_4"}, + } + + expectedToInsert := []fleet.SoftwareVulnerability{ + {CPEID: 3, CVE: "cve_5"}, + {CPEID: 3, CVE: "cve_6"}, + } + + expectedToDelete := []fleet.SoftwareVulnerability{ + {CPEID: 2, CVE: "cve_3"}, + {CPEID: 2, CVE: "cve_4"}, + } + + toInsert, toDelete := vulnsDelta(found, existing) + require.Equal(t, expectedToInsert, toInsert) + require.ElementsMatch(t, expectedToDelete, toDelete) + }) + + t.Run("nothing found but vulns exist", func(t *testing.T) { + var found []fleet.SoftwareVulnerability + + existing := []fleet.SoftwareVulnerability{ + {CPEID: 1, CVE: "cve_1"}, + {CPEID: 1, CVE: "cve_2"}, + {CPEID: 2, CVE: "cve_3"}, + {CPEID: 2, CVE: "cve_4"}, + } + + toInsert, toDelete := vulnsDelta(found, existing) + require.Empty(t, toInsert) + require.ElementsMatch(t, existing, toDelete) + }) + }) + + t.Run("#load", func(t *testing.T) { + t.Run("invalid vuln path", func(t *testing.T) { + platform := NewPlatform("ubuntu", "Ubuntu 20.4.0") + _, err := loadDef(platform, "") + require.Error(t, err, "invalid vulnerabity path") + }) + }) + + t.Run("#latestOvalDefFor", func(t *testing.T) { + t.Run("definition matching platform for date exists", func(t *testing.T) { + path, err := ioutil.TempDir("", "oval_test") + defer os.RemoveAll(path) + require.NoError(t, err) + + today := time.Now() + platform := NewPlatform("ubuntu", "Ubuntu 20.4.0") + def := filepath.Join(path, platform.ToFilename(today, "json")) + + f1, err := os.Create(def) + require.NoError(t, err) + f1.Close() + + result, err := latestOvalDefFor(platform, path, today) + require.NoError(t, err) + require.Equal(t, def, result) + }) + + t.Run("definition matching platform exists but not for date", func(t *testing.T) { + path, err := ioutil.TempDir("", "oval_test") + defer os.RemoveAll(path) + require.NoError(t, err) + + today := time.Now() + yesterday := today.Add(-24 * time.Hour) + + platform := NewPlatform("ubuntu", "Ubuntu 20.4.0") + def := filepath.Join(path, platform.ToFilename(yesterday, "json")) + + f1, err := os.Create(def) + require.NoError(t, err) + f1.Close() + + result, err := latestOvalDefFor(platform, path, today) + require.NoError(t, err) + require.Equal(t, def, result) + }) + + t.Run("definition does not exists for platform", func(t *testing.T) { + path, err := ioutil.TempDir("", "oval_test") + defer os.RemoveAll(path) + require.NoError(t, err) + + today := time.Now() + + platform1 := NewPlatform("ubuntu", "Ubuntu 20.4.0") + def1 := filepath.Join(path, platform1.ToFilename(today, "json")) + f1, err := os.Create(def1) + require.NoError(t, err) + f1.Close() + + platform2 := NewPlatform("ubuntu", "Ubuntu 18.4.0") + + _, err = latestOvalDefFor(platform2, path, today) + require.Error(t, err, "file not found for platform") + }) + }) +} diff --git a/server/vulnerabilities/oval/downloader.go b/server/vulnerabilities/oval/downloader.go new file mode 100644 index 0000000000..81693f9596 --- /dev/null +++ b/server/vulnerabilities/oval/downloader.go @@ -0,0 +1,63 @@ +package oval + +import ( + "encoding/json" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "time" +) + +const ( + ovalSourcesFileName = "oval_sources.json" +) + +// OvalSources represents a platform => web url dictionary +type OvalSources map[Platform]string + +// getOvalSources gets the 'oval sources' file. +// The 'oval sources' is a metadata file hosted in the NVD repo, it contains +// where to find the OVAL definitions for a given 'platform-major release' combination. +func getOvalSources(getter func(string) (io.ReadCloser, error)) (OvalSources, error) { + src, err := getter(ovalSourcesFileName) + if err != nil { + return nil, err + } + defer src.Close() + + contents, err := ioutil.ReadAll(src) + if err != nil { + return nil, err + } + + sources := make(OvalSources) + err = json.Unmarshal(contents, &sources) + if err != nil { + return nil, err + } + + return sources, nil +} + +// downloadDefinitions downloads the OVAL definitions for a given 'platform-major os version'. +// Returns the filepath to the downloaded oval definitions. +func downloadDefinitions( + sources OvalSources, + platform Platform, + downloader func(string, string) error, +) (string, error) { + url, ok := sources[platform] + if !ok { + return "", fmt.Errorf("could not find platform %s on oval sources", platform) + } + + dstPath := filepath.Join(os.TempDir(), platform.ToFilename(time.Now(), "xml")) + err := downloader(url, dstPath) + if err != nil { + return "", err + } + + return dstPath, nil +} diff --git a/server/vulnerabilities/oval/downloader_test.go b/server/vulnerabilities/oval/downloader_test.go new file mode 100644 index 0000000000..bfb799949a --- /dev/null +++ b/server/vulnerabilities/oval/downloader_test.go @@ -0,0 +1,36 @@ +package oval + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestOvalDownloadDefinitionsMatchingHostInfo(t *testing.T) { + ovalSources := map[Platform]string{ + "ubuntu-14": "", + "ubuntu-18": "", + } + cases := []struct { + platform Platform + expected string + }{ + {"ubuntu-14", "oval_ubuntu-14"}, + {"ubuntu-18", "oval_ubuntu-18"}, + } + + dw := func(a string, b string) error { return nil } + + for _, c := range cases { + r, err := downloadDefinitions(ovalSources, c.platform, dw) + require.Nil(t, err) + require.Contains(t, r, c.expected) + } +} + +func TestOvalDownloadDefinitionsPlatformNotFound(t *testing.T) { + ovalSources := map[Platform]string{"ubuntu-14": ""} + dw := func(a string, b string) error { return nil } + _, err := downloadDefinitions(ovalSources, "rhel-8", dw) + require.ErrorContains(t, err, "could not find platform") +} diff --git a/server/vulnerabilities/oval/input/constant_variable.go b/server/vulnerabilities/oval/input/constant_variable.go new file mode 100644 index 0000000000..758e9e59bf --- /dev/null +++ b/server/vulnerabilities/oval/input/constant_variable.go @@ -0,0 +1,8 @@ +package oval_input + +// ConstantVariableXML see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-definitions-schema.html#constant_variable. +type ConstantVariableXML struct { + Id string `xml:"id,attr"` + DataType string `xml:"datatype,attr"` + Values []string `xml:"value"` +} diff --git a/server/vulnerabilities/oval/input/definition.go b/server/vulnerabilities/oval/input/definition.go new file mode 100644 index 0000000000..f4257e0860 --- /dev/null +++ b/server/vulnerabilities/oval/input/definition.go @@ -0,0 +1,27 @@ +package oval_input + +// CriterionXML see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-definitions-schema.html#CriterionType. +type CriterionXML struct { + TestId string `xml:"test_ref,attr"` + Negate string `xml:"negate,attr"` +} + +// CriteriaXML see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-definitions-schema.html#CriteriaType. +type CriteriaXML struct { + Operator string `xml:"operator,attr"` + Negate string `xml:"negate,attr"` + Criteriums []CriterionXML `xml:"criterion"` + Criterias []CriteriaXML `xml:"criteria"` +} + +// ReferenceXML see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-definitions-schema.html#ReferenceType. +type ReferenceXML struct { + Id string `xml:"ref_id,attr"` +} + +// DefinitionXML see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-definitions-schema.html#definition. +type DefinitionXML struct { + Id string `xml:"id,attr"` + CVEs []ReferenceXML `xml:"metadata>reference"` + Criteria CriteriaXML `xml:"criteria"` +} diff --git a/server/vulnerabilities/oval/input/dpkg_object.go b/server/vulnerabilities/oval/input/dpkg_object.go new file mode 100644 index 0000000000..982320a619 --- /dev/null +++ b/server/vulnerabilities/oval/input/dpkg_object.go @@ -0,0 +1,11 @@ +package oval_input + +type dpkgObjectNameXML struct { + VarRef string `xml:"var_ref,attr"` +} + +// DpkgObjectXML see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/linux-definitions-schema.html#dpkginfo_object. +type DpkgObjectXML struct { + Id string `xml:"id,attr"` + Name dpkgObjectNameXML `xml:"name"` +} diff --git a/server/vulnerabilities/oval/input/dpkg_state.go b/server/vulnerabilities/oval/input/dpkg_state.go new file mode 100644 index 0000000000..a91fd26968 --- /dev/null +++ b/server/vulnerabilities/oval/input/dpkg_state.go @@ -0,0 +1,18 @@ +package oval_input + +type ovalSimpleTypeXML struct { + Datatype string `xml:"datatype"` + Value string `xml:",chardata"` + Op string `xml:"operation,attr"` +} + +// DpkgStateXML see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/linux-definitions-schema.html#dpkginfo_state. +type DpkgStateXML struct { + Id string `xml:"id,attr"` + Name *ovalSimpleTypeXML `xml:"name"` + Arch *ovalSimpleTypeXML `xml:"arch"` + Epoch *ovalSimpleTypeXML `xml:"epoch,omitempty"` + Release *ovalSimpleTypeXML `xml:"release,omitempty"` + Version *ovalSimpleTypeXML `xml:"version,omitempty"` + Evr *ovalSimpleTypeXML `xml:"evr"` +} diff --git a/server/vulnerabilities/oval/input/dpkgtest.go b/server/vulnerabilities/oval/input/dpkgtest.go new file mode 100644 index 0000000000..9e7a4dfe05 --- /dev/null +++ b/server/vulnerabilities/oval/input/dpkgtest.go @@ -0,0 +1,19 @@ +package oval_input + +type dpkgTestStateXML struct { + Id string `xml:"state_ref,attr"` +} + +type dpkgTestObjectXML struct { + Id string `xml:"object_ref,attr"` +} + +// DpkgInfoTestXML see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/linux-definitions-schema.html#dpkginfo_test +type DpkgInfoTestXML struct { + Id string `xml:"id,attr"` + CheckExistence string `xml:"check_existence,attr"` + Check string `xml:"check,attr"` + StateOperator string `xml:"state_operator,attr"` + Object dpkgTestObjectXML `xml:"object"` + States []dpkgTestStateXML `xml:"state"` +} diff --git a/server/vulnerabilities/oval/input/ubuntu_result.go b/server/vulnerabilities/oval/input/ubuntu_result.go new file mode 100644 index 0000000000..995ce274a5 --- /dev/null +++ b/server/vulnerabilities/oval/input/ubuntu_result.go @@ -0,0 +1,10 @@ +package oval_input + +// UbuntuResultXML groups together the different tokens produced from parsing an OVAL file make for Ubuntu. +type UbuntuResultXML struct { + Definitions []DefinitionXML + PackageTests []DpkgInfoTestXML + PackageStates []DpkgStateXML + PackageObjects []DpkgObjectXML + Variables map[string]ConstantVariableXML +} diff --git a/server/vulnerabilities/oval/mappers.go b/server/vulnerabilities/oval/mappers.go new file mode 100644 index 0000000000..584a0a69c2 --- /dev/null +++ b/server/vulnerabilities/oval/mappers.go @@ -0,0 +1,101 @@ +package oval + +import ( + "fmt" + "strconv" + "strings" + + oval_input "github.com/fleetdm/fleet/v4/server/vulnerabilities/oval/input" + oval_parsed "github.com/fleetdm/fleet/v4/server/vulnerabilities/oval/parsed" +) + +// Discards the Namespace part of an OVAL id attr, +// returning only the last numeric portion +func extractId(idStr string) (int, error) { + idParts := strings.Split(idStr, ":") + return strconv.Atoi(idParts[len(idParts)-1]) +} + +func mapDefinition(i oval_input.DefinitionXML) (*oval_parsed.Definition, error) { + r := oval_parsed.Definition{} + + for _, cve := range i.CVEs { + r.Vulnerabilities = append(r.Vulnerabilities, cve.Id) + } + + c, err := mapCriteria(i.Criteria) + if err != nil { + return nil, err + } + r.Criteria = c + + return &r, nil +} + +func mapCriteria(i oval_input.CriteriaXML) (*oval_parsed.Criteria, error) { + criteria := oval_parsed.Criteria{ + Operator: oval_parsed.NewOperatorType(i.Operator).Negate(i.Negate), + } + + for _, criterion := range i.Criteriums { + id, err := extractId(criterion.TestId) + if err != nil { + return nil, err + } + criteria.Criteriums = append(criteria.Criteriums, id) + } + + for _, ic := range i.Criterias { + mC, err := mapCriteria(ic) + if err != nil { + return nil, err + } + criteria.Criterias = append(criteria.Criterias, mC) + } + + return &criteria, nil +} + +func mapPackageTest(i oval_input.DpkgInfoTestXML) (int, *oval_parsed.DpkgInfoTest, error) { + id, err := extractId(i.Id) + if err != nil { + return 0, nil, err + } + + tst := oval_parsed.DpkgInfoTest{ + ObjectMatch: oval_parsed.NewObjectMatchType(i.CheckExistence), + StateMatch: oval_parsed.NewStateMatchType(i.Check), + StateOperator: oval_parsed.NewOperatorType(i.StateOperator), + } + + return id, &tst, nil +} + +func mapPackageState(sta oval_input.DpkgStateXML) ([]oval_parsed.ObjectStateEvrString, error) { + var r []oval_parsed.ObjectStateEvrString + + if sta.Name != nil || + sta.Arch != nil || + sta.Epoch != nil || + sta.Version != nil { + return nil, fmt.Errorf("only evr state definitions are supported") + } + + if sta.Evr != nil { + r = append(r, oval_parsed.NewObjectState(sta.Evr.Op, sta.Evr.Value)) + } + + return r, nil +} + +func mapPackageObject(obj oval_input.DpkgObjectXML, vars map[string]oval_input.ConstantVariableXML) ([]string, error) { + variable, ok := vars[obj.Name.VarRef] + if !ok { + return nil, fmt.Errorf("variable not found %s", obj.Name.VarRef) + } + + var r []string + r = append(r, variable.Values...) + + return r, nil +} diff --git a/server/vulnerabilities/oval/oval_platform.go b/server/vulnerabilities/oval/oval_platform.go new file mode 100644 index 0000000000..4bce214214 --- /dev/null +++ b/server/vulnerabilities/oval/oval_platform.go @@ -0,0 +1,79 @@ +package oval + +import ( + "fmt" + "regexp" + "strings" + "time" +) + +type Platform string + +// OvalFilePrefix is the file prefix used when saving an OVAL artifact. +const OvalFilePrefix = "fleet_oval" + +var SupportedHostPlatforms = []string{"ubuntu"} + +// getMajorMinorVer returns the major and minor version of an 'os_version'. +// ex: 'Ubuntu 20.4.0' => '2004' +func getMajorMinorVer(osVersion string) string { + re := regexp.MustCompile(` (?P\d+)\.?(?P\d+)?\.?(\*|\d+)?$`) + m := re.FindStringSubmatch(osVersion) + + if len(m) < 2 { + return "" + } + + maIdx := re.SubexpIndex("major") + miIdx := re.SubexpIndex("minor") + + if maIdx > 0 && miIdx > 0 { + major := m[maIdx] + if len(major) < 2 { + major = fmt.Sprintf("0%s", major) + } + minor := m[miIdx] + if len(minor) < 2 { + minor = fmt.Sprintf("0%s", minor) + } + return fmt.Sprintf("%s%s", major, minor) + } + return "" +} + +// NewPlatform combines the host platform and os version into 'platform-os major version' string. +// Ex: ('ubuntu', 'Ubuntu 20.4.0') => 'ubuntu-20'. +func NewPlatform(hostPlatform, hostOsVersion string) Platform { + nPlatform := strings.Trim(strings.ToLower(hostPlatform), " ") + majorVer := getMajorMinorVer(strings.Trim(hostOsVersion, " ")) + return Platform(fmt.Sprintf("%s_%s", nPlatform, majorVer)) +} + +// ToFilename combines 'date' with the contents of 'platform' to produce a 'standard' filename. +func (op Platform) ToFilename(date time.Time, extension string) string { + return fmt.Sprintf("%s_%s-%d_%02d_%02d.%s", OvalFilePrefix, op, date.Year(), date.Month(), date.Day(), extension) +} + +// IsSupported returns whether the given platform is currently supported or not. +func (op Platform) IsSupported() bool { + supported := []string{ + "ubuntu_1404", + "ubuntu_1604", + "ubuntu_1804", + "ubuntu_2004", + "ubuntu_2104", + "ubuntu_2110", + "ubuntu_2204", + } + for _, p := range supported { + if strings.HasPrefix(string(op), p) { + return true + } + } + return false +} + +// IsUbuntu checks whether the current Platform targets Ubuntu. +func (op Platform) IsUbuntu() bool { + return strings.HasPrefix(string(op), "ubuntu") +} diff --git a/server/vulnerabilities/oval/oval_platform_test.go b/server/vulnerabilities/oval/oval_platform_test.go new file mode 100644 index 0000000000..318dbc6e5f --- /dev/null +++ b/server/vulnerabilities/oval/oval_platform_test.go @@ -0,0 +1,47 @@ +package oval + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func TestOvalPlatform(t *testing.T) { + t.Run("NewPlatform", func(t *testing.T) { + cases := []struct { + platform string + osVersion string + expected string + }{ + {"centos", "CentOS Linux 8.3.2011", "centos_0803"}, + {"ubuntu", "Ubuntu 20.4.0", "ubuntu_2004"}, + {"centos", "CentOS 6.10.0", "centos_0610"}, + {"debian", "Debian GNU/Linux 9.0.0", "debian_0900"}, + {"debian", "Debian GNU/Linux 10.0.0", "debian_1000"}, + {"centos", "CentOS Linux 7.9.2009", "centos_0709"}, + {"ubuntu", "Ubuntu 16.4.0", "ubuntu_1604"}, + {"ubuntu", "Ubuntu 18.4.0", "ubuntu_1804"}, + {"ubuntu", "Ubuntu 18.4", "ubuntu_1804"}, + {"ubuntu", "Ubuntu 18.4.0 ", "ubuntu_1804"}, + } + + for _, c := range cases { + require.Equal(t, c.expected, string(NewPlatform(c.platform, c.osVersion))) + } + }) + + t.Run("ToFilename", func(t *testing.T) { + cases := []struct { + date time.Time + expected string + }{ + {time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC), "fleet_oval_ubuntu_2004-2020_01_01.json"}, + {time.Date(2020, 10, 10, 0, 0, 0, 0, time.UTC), "fleet_oval_ubuntu_2004-2020_10_10.json"}, + } + for _, c := range cases { + plat := NewPlatform("ubuntu", "Ubuntu 20.4.0") + require.Equal(t, c.expected, plat.ToFilename(c.date, "json")) + } + }) +} diff --git a/server/vulnerabilities/oval/parsed/data_type.go b/server/vulnerabilities/oval/parsed/data_type.go new file mode 100644 index 0000000000..29c071a1e0 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/data_type.go @@ -0,0 +1,48 @@ +package oval_parsed + +type DataType int + +const ( + Binary DataType = iota + Boolean + EvrString + FilesetRevision + Float + IosVersion + Int + Ipv4Address + Ipv6Address + String + Version +) + +// NewDataType encodes a 'SimpleDataTypeEnumeration' into an int. +// See: https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-common-schema.html#SimpleDatatypeEnumeration +func NewDataType(val string) DataType { + switch val { + case "binary": + return Binary + case "boolean": + return Boolean + case "evr_string": + return EvrString + case "fileset_revision": + return FilesetRevision + case "float": + return Float + case "ios_version": + return IosVersion + case "int": + return Int + case "ipv4_address": + return Ipv4Address + case "ipv6_address": + return Ipv6Address + case "string": + return String + case "version": + return Version + default: + return String + } +} diff --git a/server/vulnerabilities/oval/parsed/data_type_test.go b/server/vulnerabilities/oval/parsed/data_type_test.go new file mode 100644 index 0000000000..c1083331ac --- /dev/null +++ b/server/vulnerabilities/oval/parsed/data_type_test.go @@ -0,0 +1,32 @@ +package oval_parsed + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestNewDataType(t *testing.T) { + cases := []struct { + input string + expected DataType + }{ + {"binary", Binary}, + {"boolean", Boolean}, + {"evr_string", EvrString}, + {"fileset_revision", FilesetRevision}, + {"float", Float}, + {"ios_version", IosVersion}, + {"int", Int}, + {"ipv4_address", Ipv4Address}, + {"ipv6_address", Ipv6Address}, + {"string", String}, + {"version", Version}, + {"asdafasdf", String}, + {"", String}, + } + + for _, c := range cases { + require.Equal(t, c.expected, NewDataType(c.input)) + } +} diff --git a/server/vulnerabilities/oval/parsed/definition.go b/server/vulnerabilities/oval/parsed/definition.go new file mode 100644 index 0000000000..113791ca28 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/definition.go @@ -0,0 +1,63 @@ +package oval_parsed + +import "github.com/fleetdm/fleet/v4/server/fleet" + +// Criteria is used to express an arbitrary logic tree. +// Each node in the tree references a particular test. +type Criteria struct { + Operator OperatorType + Criteriums []int + Criterias []*Criteria +} + +// Definition is a container of one or more criteria and one or more vulnerabilities. +// If the logic tree expressed by the Criterias evaluates to true, then we say that +// a host is susceptible to `Vulnerabilities`. +type Definition struct { + Criteria *Criteria + Vulnerabilities []string +} + +// Eval evaluates the given definition using the provided test results. +func (r Definition) Eval(testResults map[int][]fleet.Software) bool { + if r.Criteria == nil || len(testResults) == 0 { + return false + } + + return evalCriteria(r.Criteria, testResults) +} + +func (r Definition) CollectTestIds() []int { + if r.Criteria == nil { + return nil + } + + var results []int + queue := []*Criteria{r.Criteria} + + for len(queue) > 0 { + next := queue[0] + queue = queue[1:] + results = append(results, next.Criteriums...) + queue = append(queue, next.Criterias...) + } + + return results +} + +func evalCriteria(c *Criteria, testResults map[int][]fleet.Software) bool { + var vals []bool + var result bool + + for _, co := range c.Criteriums { + r := len(testResults[co]) > 0 + vals = append(vals, r) + } + result = c.Operator.Eval(vals...) + + for _, ci := range c.Criterias { + return c.Operator.Eval(result, evalCriteria(ci, testResults)) + } + + return result +} diff --git a/server/vulnerabilities/oval/parsed/definition_test.go b/server/vulnerabilities/oval/parsed/definition_test.go new file mode 100644 index 0000000000..0159fd60df --- /dev/null +++ b/server/vulnerabilities/oval/parsed/definition_test.go @@ -0,0 +1,111 @@ +package oval_parsed + +import ( + "testing" + + "github.com/fleetdm/fleet/v4/server/fleet" + "github.com/stretchr/testify/require" +) + +func TestOvalParsedDefinition(t *testing.T) { + t.Run("#Eval", func(t *testing.T) { + t.Run("no root criteria", func(t *testing.T) { + sut := Definition{} + require.False(t, sut.Eval(nil)) + }) + + t.Run("with empty test results", func(t *testing.T) { + criteria := Criteria{ + And, + []int{1, 2, 3}, + nil, + } + sut := Definition{Criteria: &criteria} + require.False(t, sut.Eval(nil)) + require.False(t, sut.Eval(make(map[int][]fleet.Software))) + }) + + t.Run("with single level criteria", func(t *testing.T) { + cases := []struct { + op OperatorType + expected bool + }{ + {And, false}, + {Or, true}, + } + + for _, c := range cases { + criteria := Criteria{ + c.op, + []int{1, 2, 3}, + nil, + } + tests := map[int][]fleet.Software{ + 1: {{ID: 1}}, + 2: nil, + 3: {{ID: 2}}, + } + sut := Definition{ + &criteria, + nil, + } + + require.Equal(t, c.expected, sut.Eval(tests)) + } + }) + + t.Run("evaluating logic tree", func(t *testing.T) { + // OR + // / | \ + // F F AND + // / \ + // T T + + leaf := Criteria{ + And, + []int{3, 4}, + nil, + } + root := Criteria{ + Or, + []int{1, 2}, + []*Criteria{&leaf}, + } + + tests := map[int][]fleet.Software{ + 1: nil, + 2: nil, + 3: {{ID: 2}}, + 4: {{ID: 3}}, + } + + sut := Definition{ + &root, + nil, + } + + require.True(t, sut.Eval(tests)) + }) + }) + + t.Run("#CollectTestIds", func(t *testing.T) { + t.Run("with logic tree", func(t *testing.T) { + leaf := Criteria{ + And, + []int{30, 40}, + nil, + } + root := Criteria{ + Or, + []int{1, 2}, + []*Criteria{&leaf}, + } + sut := Definition{ + &root, + nil, + } + + require.ElementsMatch(t, sut.CollectTestIds(), []int{1, 2, 30, 40}) + }) + }) +} diff --git a/server/vulnerabilities/oval/parsed/dpkginfo_state_evr_string.go b/server/vulnerabilities/oval/parsed/dpkginfo_state_evr_string.go new file mode 100644 index 0000000000..2fabcb99dd --- /dev/null +++ b/server/vulnerabilities/oval/parsed/dpkginfo_state_evr_string.go @@ -0,0 +1,45 @@ +package oval_parsed + +import ( + "fmt" + "strings" +) + +type ObjectStateEvrString string + +// NewObjectState produces a string with 'op' and 'evr' encoded as op|evr +// This is just one possible children of , that said +// all deb package tests are written against evr strings +// see: https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-definitions-schema.html#EntityStateEVRStringType +func NewObjectState(op string, evr string) ObjectStateEvrString { + return ObjectStateEvrString(fmt.Sprintf("%s|%s", op, evr)) +} + +func (sta ObjectStateEvrString) unpack() (OperationType, string) { + parts := strings.Split(string(sta), "|") + return NewOperationType(parts[0]), parts[1] +} + +// Eval evaluates the evr object state against another evr string using 'cmp' +// for performing the comparison. +func (sta ObjectStateEvrString) Eval(ver string, cmp func(string, string) int) bool { + op, evr := sta.unpack() + + r := cmp(ver, evr) + switch op { + case LessThan: + return r == -1 + case Equals: + return r == 0 + case NotEqual: + return r != 0 + case GreaterThan: + return r == 1 + case GreaterThanOrEqual: + return r == 1 || r == 0 + case LessThanOrEqual: + return r == -1 || r == 0 + } + + return false +} diff --git a/server/vulnerabilities/oval/parsed/dpkginfo_state_evr_string_test.go b/server/vulnerabilities/oval/parsed/dpkginfo_state_evr_string_test.go new file mode 100644 index 0000000000..58a6e599a4 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/dpkginfo_state_evr_string_test.go @@ -0,0 +1,37 @@ +package oval_parsed + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestObjectStateEvrStringEval(t *testing.T) { + cases := []struct { + val string + other string + cmp func(string, string) int + expected bool + }{ + {"equals|1.1", "1.1", func(s1, s2 string) int { return 0 }, true}, + {"equals|1.1", "1.0", func(s1, s2 string) int { return 1 }, false}, + {"not equal|1.1", "2.1", func(s1, s2 string) int { return -1 }, true}, + {"not equal|1.1", "1.1", func(s1, s2 string) int { return 0 }, false}, + {"greater than|1.1", "2.1", func(s1, s2 string) int { return -1 }, false}, + {"greater than|1.1", "1.1", func(s1, s2 string) int { return 0 }, false}, + {"greater than|1.2", "1.1", func(s1, s2 string) int { return 1 }, true}, + {"greater than or equal|1.1", "2.1", func(s1, s2 string) int { return -1 }, false}, + {"greater than or equal|1.1", "1.1", func(s1, s2 string) int { return 0 }, true}, + {"greater than or equal|1.2", "1.1", func(s1, s2 string) int { return 1 }, true}, + {"less than|1.1", "2.1", func(s1, s2 string) int { return -1 }, true}, + {"less than|1.1", "1.1", func(s1, s2 string) int { return 0 }, false}, + {"less than|1.2", "1.1", func(s1, s2 string) int { return 1 }, false}, + {"less than or equal|1.1", "2.1", func(s1, s2 string) int { return -1 }, true}, + {"less than or equal|1.1", "1.1", func(s1, s2 string) int { return 0 }, true}, + {"less than or equal|1.2", "1.1", func(s1, s2 string) int { return 1 }, false}, + } + + for _, c := range cases { + require.Equal(t, c.expected, ObjectStateEvrString(c.val).Eval(c.other, c.cmp)) + } +} diff --git a/server/vulnerabilities/oval/parsed/dpkginfotest.go b/server/vulnerabilities/oval/parsed/dpkginfotest.go new file mode 100644 index 0000000000..927c670662 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/dpkginfotest.go @@ -0,0 +1,60 @@ +package oval_parsed + +import "github.com/fleetdm/fleet/v4/server/fleet" + +// DpkgInfoTest encapsulates a Dpkg info test. +// see https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/linux-definitions-schema.html#dpkginfo_test +type DpkgInfoTest struct { + Objects []string + States []ObjectStateEvrString + StateOperator OperatorType + ObjectMatch ObjectMatchType + StateMatch StateMatchType +} + +// Eval evaluates the given dpkg info test againts a host's installed packages. +// If test evaluates to true, returns all Software involved with the test match, otherwise will +// return nil. +func (t *DpkgInfoTest) Eval(packages []fleet.Software) []fleet.Software { + if len(packages) == 0 { + return nil + } + no, ns, m := t.matches(packages) + + oMatches := t.ObjectMatch.Eval(no, len(t.Objects)) + sMatches := t.StateMatch.Eval(no, ns) + + if oMatches && sMatches { + return m + } + return nil +} + +// Returns: +// nObjects: How many items in the set defined by the OVAL Object set exists in the system. +// nStates: How many items in the set defined by the OVAL Object set satisfy the state requirements. +// Slice with software matching both the object and state criteria. +func (t *DpkgInfoTest) matches(software []fleet.Software) (int, int, []fleet.Software) { + var nObjects int + var nState int + var matches []fleet.Software + + for _, p := range software { + for _, o := range t.Objects { + if p.Name == o { + nObjects++ + + r := make([]bool, 0) + for _, s := range t.States { + r = append(r, s.Eval(p.Version, Rpmvercmp)) + } + if t.StateOperator.Eval(r...) { + matches = append(matches, p) + nState++ + } + } + } + } + + return nObjects, nState, matches +} diff --git a/server/vulnerabilities/oval/parsed/dpkginfotest_test.go b/server/vulnerabilities/oval/parsed/dpkginfotest_test.go new file mode 100644 index 0000000000..989c737d22 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/dpkginfotest_test.go @@ -0,0 +1,76 @@ +package oval_parsed + +import ( + "testing" + + "github.com/fleetdm/fleet/v4/server/fleet" + "github.com/stretchr/testify/require" +) + +func TestDpkgInfoTestEvalNoHostList(t *testing.T) { + t.Run("#Eval", func(t *testing.T) { + t.Run("with no packages", func(t *testing.T) { + sut := DpkgInfoTest{} + + r := sut.Eval(nil) + require.Nil(t, r) + + r = sut.Eval(make([]fleet.Software, 0)) + require.Nil(t, r) + }) + + t.Run("test matches NObjects", func(t *testing.T) { + packages := []fleet.Software{ + { + Name: "firefox", + Version: "1.2", + }, + { + Name: "chrome", + Version: "1.2", + }, + { + Name: "paint", + Version: "1.2", + }, + } + + sut := DpkgInfoTest{ + Objects: []string{"firefox", "paint"}, + } + + nObjects, _, _ := sut.matches(packages) + require.Equal(t, 2, nObjects) + }) + + t.Run("test matches NStates", func(t *testing.T) { + packages := []fleet.Software{ + { + Name: "firefox", + Version: "1.2", + }, + { + Name: "firefox", + Version: "1.3", + }, + { + Name: "chrome", + Version: "1.2", + }, + { + Name: "paint", + Version: "1.2", + }, + } + + sut := DpkgInfoTest{ + Objects: []string{"firefox", "paint"}, + States: []ObjectStateEvrString{"equals|1.3", "equals|1.0"}, + StateOperator: Or, + } + + _, nStates, _ := sut.matches(packages) + require.Equal(t, 1, nStates) + }) + }) +} diff --git a/server/vulnerabilities/oval/parsed/host_package.go b/server/vulnerabilities/oval/parsed/host_package.go new file mode 100644 index 0000000000..5cd4cf4b1f --- /dev/null +++ b/server/vulnerabilities/oval/parsed/host_package.go @@ -0,0 +1,7 @@ +package oval_parsed + +// TODO Juan: REMOVE THIS +type HostPackage struct { + Name string `json:"name"` + Version string `json:"version"` +} diff --git a/server/vulnerabilities/oval/parsed/object_match_type.go b/server/vulnerabilities/oval/parsed/object_match_type.go new file mode 100644 index 0000000000..71bad9c62e --- /dev/null +++ b/server/vulnerabilities/oval/parsed/object_match_type.go @@ -0,0 +1,49 @@ +package oval_parsed + +type ObjectMatchType int + +const ( + AllExist ObjectMatchType = iota + AnyExist + AtLeastOneExists + NoneExist + OnlyOneExists +) + +// NewObjectMatchType encodes a 'ExistenceEnumeration' value (used in tests for object assertions) into an int. +// See https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-common-schema.html#ExistenceEnumeration. +func NewObjectMatchType(val string) ObjectMatchType { + switch val { + case "all_exist": + return AllExist + case "any_exist": + return AnyExist + case "at_least_one_exists": + return AtLeastOneExists + case "none_exist": + return NoneExist + case "only_one_exists": + return OnlyOneExists + default: + return AtLeastOneExists + } +} + +// Eval evalutes the given object match type according to the rules outlined in the OVAL spec. +// See https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-common-schema.html#ExistenceEnumeration. +func (op ObjectMatchType) Eval(matches int, total int) bool { + switch op { + case AllExist: + return matches == total + case AnyExist: + return matches >= 0 + case AtLeastOneExists: + return matches > 0 + case NoneExist: + return matches == 0 + case OnlyOneExists: + return matches == 1 + default: + return matches > 0 + } +} diff --git a/server/vulnerabilities/oval/parsed/object_match_type_test.go b/server/vulnerabilities/oval/parsed/object_match_type_test.go new file mode 100644 index 0000000000..9a9154942f --- /dev/null +++ b/server/vulnerabilities/oval/parsed/object_match_type_test.go @@ -0,0 +1,53 @@ +package oval_parsed + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestNewObjectMatchType(t *testing.T) { + cases := []struct { + input string + expected ObjectMatchType + }{ + {"all_exist", AllExist}, + {"any_exist", AnyExist}, + {"at_least_one_exists", AtLeastOneExists}, + {"none_exist", NoneExist}, + {"only_one_exists", OnlyOneExists}, + {"", AtLeastOneExists}, + } + + for _, c := range cases { + require.Equal(t, c.expected, NewObjectMatchType(c.input)) + } +} + +func TestObjectMatchTypeEval(t *testing.T) { + cases := []struct { + op ObjectMatchType + total int + matches int + expected bool + }{ + {AllExist, 1, 1, true}, + {AllExist, 5, 1, false}, + {AnyExist, 1, 0, true}, + {AnyExist, 1, 1, true}, + {AnyExist, 5, 1, true}, + {AtLeastOneExists, 1, 0, false}, + {AtLeastOneExists, 1, 1, true}, + {AtLeastOneExists, 5, 1, true}, + {NoneExist, 1, 1, false}, + {NoneExist, 5, 1, false}, + {NoneExist, 1, 0, true}, + {OnlyOneExists, 5, 1, true}, + {OnlyOneExists, 5, 0, false}, + {OnlyOneExists, 5, 5, false}, + } + + for _, c := range cases { + require.Equal(t, c.expected, c.op.Eval(c.matches, c.total)) + } +} diff --git a/server/vulnerabilities/oval/parsed/operation_type.go b/server/vulnerabilities/oval/parsed/operation_type.go new file mode 100644 index 0000000000..ed32bd3db6 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/operation_type.go @@ -0,0 +1,54 @@ +package oval_parsed + +type OperationType int + +const ( + Equals OperationType = iota + NotEqual + CaseInsensitiveEquals + CaseInsensitiveNotEqual + GreaterThan + LessThan + GreaterThanOrEqual + LessThanOrEqual + BitwiseAnd + BitwiseOr + PatternMatch + SubsetOf + SupersetOf +) + +// NewOperationType encodes an 'OperationEnumeration' into an int. +// See https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-common-schema.html#OperationEnumeration +func NewOperationType(val string) OperationType { + switch val { + case "equals": + return Equals + case "not equal": + return NotEqual + case "case insensitive equals": + return CaseInsensitiveEquals + case "case insensitive not equal": + return CaseInsensitiveNotEqual + case "greater than": + return GreaterThan + case "less than": + return LessThan + case "greater than or equal": + return GreaterThanOrEqual + case "less than or equal": + return LessThanOrEqual + case "bitwise and": + return BitwiseAnd + case "bitwise or": + return BitwiseOr + case "pattern match": + return PatternMatch + case "subset of": + return SubsetOf + case "superset of": + return SupersetOf + default: + return Equals + } +} diff --git a/server/vulnerabilities/oval/parsed/operation_type_test.go b/server/vulnerabilities/oval/parsed/operation_type_test.go new file mode 100644 index 0000000000..5a4897d4ba --- /dev/null +++ b/server/vulnerabilities/oval/parsed/operation_type_test.go @@ -0,0 +1,30 @@ +package oval_parsed + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestNewOperationType(t *testing.T) { + cases := []struct { + input string + expected OperationType + }{ + {"equals", Equals}, + {"not equal", NotEqual}, + {"case insensitive equals", CaseInsensitiveEquals}, + {"case insensitive not equal", CaseInsensitiveNotEqual}, + {"greater than", GreaterThan}, + {"less than", LessThan}, + {"greater than or equal", GreaterThanOrEqual}, + {"less than or equal", LessThanOrEqual}, + {"bitwise and", BitwiseAnd}, + {"bitwise or", BitwiseOr}, + {"pattern match", PatternMatch}, + } + + for _, c := range cases { + require.Equal(t, c.expected, NewOperationType(c.input)) + } +} diff --git a/server/vulnerabilities/oval/parsed/operator_type.go b/server/vulnerabilities/oval/parsed/operator_type.go new file mode 100644 index 0000000000..431c914bbe --- /dev/null +++ b/server/vulnerabilities/oval/parsed/operator_type.go @@ -0,0 +1,93 @@ +package oval_parsed + +type OperatorType int + +const ( + And OperatorType = iota + One + Or + Xor + NotAnd + NotOne + NotOr + NotXor +) + +// NewOperatorType encodes an 'OperatorEnumeration' into an int. +// See https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-common-schema.html#OperatorEnumeration +func NewOperatorType(val string) OperatorType { + switch val { + case "AND", "and": + return And + case "ONE", "one": + return One + case "OR", "or": + return Or + case "XOR", "xor": + return Xor + default: + return And + } +} + +// Negate negates the current operator. +// Ex: Negate(And) => NotAnd +func (op OperatorType) Negate(neg string) OperatorType { + if neg == "true" { + switch op { + case And: + return NotAnd + case One: + return NotOne + case Or: + return NotOr + case Xor: + return NotXor + default: + return NotAnd + } + } + return op +} + +// Eval evaluates one or more boolean values according to the truth table of the given operator. +func (op OperatorType) Eval(vals ...bool) bool { + if len(vals) == 0 { + return false + } + + if op == One || op == NotOne { + var nVals int + for _, val := range vals { + if val { + nVals++ + } + } + if op == One { + return nVals == 1 + } + return nVals != 1 + } + + r := vals[0] + for _, val := range vals[1:] { + switch op { + case And: + r = r && val + case NotAnd: + r = !r || !val + case Or: + r = r || val + case NotOr: + r = !r && !val + case Xor: + r = (r || val) && !(r && val) + case NotXor: + r = !(r || val) || (r && val) + default: + r = r && val + } + } + + return r +} diff --git a/server/vulnerabilities/oval/parsed/operator_type_test.go b/server/vulnerabilities/oval/parsed/operator_type_test.go new file mode 100644 index 0000000000..2db0235407 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/operator_type_test.go @@ -0,0 +1,80 @@ +package oval_parsed + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestNewOperatorType(t *testing.T) { + cases := []struct { + input string + expected OperatorType + }{ + {"AND", And}, + {"and", And}, + {"ONE", One}, + {"one", One}, + {"OR", Or}, + {"or", Or}, + {"XOR", Xor}, + {"xor", Xor}, + {"", And}, + } + + for _, c := range cases { + require.Equal(t, c.expected, NewOperatorType(c.input)) + } +} + +func TestOperatorTypeNegate(t *testing.T) { + cases := []struct { + input OperatorType + op string + expected OperatorType + }{ + {And, "true", NotAnd}, + {Or, "true", NotOr}, + {One, "true", NotOne}, + {Xor, "true", NotXor}, + {And, "false", And}, + {Or, "false", Or}, + {One, "false", One}, + {Xor, "false", Xor}, + {And, "", And}, + {Or, "", Or}, + {One, "", One}, + {Xor, "", Xor}, + } + + for _, c := range cases { + require.Equal(t, c.expected, c.input.Negate(c.op)) + } +} + +func TestOperatorTypeEval(t *testing.T) { + cases := []struct { + op OperatorType + vals []bool + expected bool + }{ + {And, []bool{true, true}, true}, + {And, []bool{true, false}, false}, + {One, []bool{true, true, true}, false}, + {One, []bool{false, false, false}, false}, + {One, []bool{true, false, false}, true}, + {Or, []bool{true, false}, true}, + {Or, []bool{false, true}, true}, + {Or, []bool{true, true}, true}, + {Or, []bool{false, false}, false}, + {Xor, []bool{false, false}, false}, + {Xor, []bool{true, true}, false}, + {Xor, []bool{false, true}, true}, + {Xor, []bool{true, false}, true}, + } + + for _, c := range cases { + require.Equal(t, c.expected, c.op.Eval(c.vals...)) + require.Equal(t, !c.expected, c.op.Negate("true").Eval(c.vals...)) + } +} diff --git a/server/vulnerabilities/oval/parsed/result.go b/server/vulnerabilities/oval/parsed/result.go new file mode 100644 index 0000000000..8d17b87e8e --- /dev/null +++ b/server/vulnerabilities/oval/parsed/result.go @@ -0,0 +1,9 @@ +package oval_parsed + +import "github.com/fleetdm/fleet/v4/server/fleet" + +type Result interface { + // Eval evaluates the current OVAL definition againts a list of software, returns all software + // vulns found. + Eval([]fleet.Software) []fleet.SoftwareVulnerability +} diff --git a/server/vulnerabilities/oval/parsed/rpmvercmp.go b/server/vulnerabilities/oval/parsed/rpmvercmp.go new file mode 100644 index 0000000000..605c97473e --- /dev/null +++ b/server/vulnerabilities/oval/parsed/rpmvercmp.go @@ -0,0 +1,290 @@ +package oval_parsed + +import ( + "strconv" + "strings" + "unicode" +) + +// Rpmvercmp Compares two evr strings (EPOCH:VERSION-RELEASE) by looking at each part in order: +// - EPOCHs are compared based on their numeric values, if missing then '0' is assumed, +// if equal then VERSIONs are compared. +// - VERSIONS are compared according to librpm's rpmvercmp algo +// (see http://ftp.rpm.org/api/4.4.2.2/rpmvercmp_8c-source.html), if equal RELEASEs are +// compared. +// - RELEASEs are compared using the rpmvercmp algo, if equal then both are equal. +// +// Returns: +// -1 if a < b +// 0 if a == b +// 1 if a > b +func Rpmvercmp(a, b string) int { + epoch1 := epoch(a) + epoch2 := epoch(b) + + if epoch1 < epoch2 { + return -1 + } else if epoch1 > epoch2 { + return 1 + } + + if r := rpmCmp(version(a), version(b)); r != 0 { + return r + } + + return rpmCmp(release(a), release(b)) +} + +type segment struct { + number *int + letters string + offset int +} + +func (s segment) isEmpty() bool { + // We need to ignore tildes because they are meant to be 'modifiers'. + return s.offset == 0 && s.number == nil && s.letters == "" || s.letters == "~" +} + +func (s segment) compare(b segment) int { + // Tildes 'inside' versions 'lower' the precedent seg. + if s.letters == "~" { + if b.letters == "~" { + return 0 + } + return -1 + } + if b.letters == "~" { + if s.letters == "~" { + return 0 + } + return 1 + } + + // Both are numeric, in which case we compare + // their numeric values + if s.number != nil && b.number != nil { + if *s.number == *b.number { + return 0 + } else if *s.number < *b.number { + return -1 + } else { + return 1 + } + // 'a' is a number seg, 'b' is a letter seg, + // numbers are always greater than letters + } else if s.number != nil && b.number == nil { + return 1 + // 'a' is a letter seg, 'b' is a number seg + } else if s.number == nil && b.number != nil { + return -1 + // Both segs are letters, then we just + // compare them + } else { + if s.letters == b.letters { + return 0 + } + return strings.Compare(s.letters, b.letters) + } +} + +// Returns the next maximal alphabetic or numeric segment, +// with separators (non-alphanumeric characters) ignored. +func nextSeg(ver string) segment { + var end int + + var wasNum bool + var wasLetter bool + + var foundTilde bool + var foundNonAlphaNum bool + + for i, c := range ver { + // Non-alpha num chars are either separators or a tilde + foundNonAlphaNum = !unicode.IsNumber(c) && !unicode.IsLetter(c) + foundTilde = c == '~' + + // Check whether we arrived at a different segment. + if (unicode.IsNumber(c) && wasLetter) || + (unicode.IsLetter(c) && wasNum) || + foundNonAlphaNum { + end = i + break + } + + wasNum = unicode.IsNumber(c) + wasLetter = unicode.IsLetter(c) + } + + if end == 0 { + // Edge case: 'ver' starts + // with non-alphanumeric char + // like a separator or tilde. + if foundNonAlphaNum { + end = 1 + } else { + end = len(ver) + } + } + + r := segment{ + offset: end, + } + + // Skip over non-alphanumeric chars + // (except tildes) + if foundNonAlphaNum && !foundTilde { + r.offset++ + } + + if wasNum { + val, err := strconv.Atoi(ver[:end]) + if err == nil { + r.number = &val + } + } else { + r.letters = ver[:end] + } + + return r +} + +// How to compare two version strings according to the rpmvercmp algorithm: +// Each label is separated into a list of maximal alphabetic or numeric segments, +// with separators (non-alphanumeric characters) ignored. So, '2.0.1' becomes ('2', '0', '1'), +// while ('2xFg33.+f.5') becomes ('2', 'xFg', '33', 'f', '5'). +// All numbers are converted to their numeric value. So '10' becomes 10, '000230' +// becomes 230, and '00000' becomes 0. +// The elements in the list are compared one by one using the following algorithm: +// - If two elements are decided to be different, the label with the newer element wins +// as the newer label. +// - If the elements are decided to be equal, the next elements are +// compared until we either reach different elements or one of the lists runs out. +// - In case one of the lists run out, the other label wins as the newer label. +// So, for example, (1, 2) is newer than (1, 1), and (1, 2, 0) is newer than (1, 2). +// +// The algorithm for comparing list elements is as follows: +// - If one of the elements is a number, while the other is alphabetic, the numeric +// elements is considered newer. So 10 is newer than 'abc', and 0 is newer than 'Z'. +// - If both the elements are numbers, the larger number is considered newer. +// So 5 is newer than 4 and 10 is newer than 2. If the numbers are equal, the elements are decided equal. +// -If both the elements are alphabetic, they are compared lexicographically, with the greater string +// resulting in a newer element. So 'b' is newer than 'a', 'add' is newer than 'ZULU' +// (because lowercase characters win in str comparisons), and 'aba' is newer than 'ab'. +// - If the strings are identical, the elements are decided equal. +func rpmCmp(a, b string) int { + var offsetA int + var offsetB int + + if a == "" && b != "" { + return -1 + } + if a != "" && b == "" { + return 1 + } + + for { + if a[offsetA:] == b[offsetB:] { + return 0 + } + + segA := nextSeg(a[offsetA:]) + segB := nextSeg(b[offsetB:]) + + offsetA += segA.offset + if offsetA > len(a) { + break + } + offsetB += segB.offset + if offsetB > len(b) { + break + } + + // Check whether 'a' or 'b' ran out of segments. + if segA.isEmpty() && !segB.isEmpty() { + return -1 + } + if !segA.isEmpty() && segB.isEmpty() { + return 1 + } + + r := segA.compare(segB) + if r == 0 { + continue + } + return r + } + + return -1 +} + +func release(v string) string { + var s int + e := len(v) + var seen bool + + for i, c := range v { + if c == '-' && !seen && i > 0 { + s = i + 1 + seen = true + } else if c == ' ' && seen { + e = i + break + } + } + + if !seen { + return "" + } + + return v[s:e] +} + +func version(v string) string { + var s int + e := len(v) + var seenEpoch bool + + for i, c := range v { + if c == ' ' && !seenEpoch { + s = i + 1 + } + + if c == ':' && !seenEpoch { + seenEpoch = true + s = i + 1 + } + + if c == '-' && i != 0 { + e = i + break + } + } + + return v[s:e] +} + +func epoch(v string) int { + var s int + var e int + + for i, c := range v { + if c == ' ' { + s++ + } + if c == ':' { + e = i + break + } + } + + if e == 0 { + return 0 + } + + r, err := strconv.Atoi(v[s:e]) + if err != nil { + return 0 + } + return r +} diff --git a/server/vulnerabilities/oval/parsed/rpmvercmp_test.go b/server/vulnerabilities/oval/parsed/rpmvercmp_test.go new file mode 100644 index 0000000000..7c8800caee --- /dev/null +++ b/server/vulnerabilities/oval/parsed/rpmvercmp_test.go @@ -0,0 +1,4565 @@ +package oval_parsed + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestVersionParts(t *testing.T) { + cases := []struct { + v string + epoch int + version string + release string + }{ + {"0.0", 0, "0.0", ""}, + {"0", 0, "0", ""}, + {"0:0", 0, "0", ""}, + {"0:0-", 0, "0", ""}, + {"0:0-0", 0, "0", "0"}, + {"0:0.0-0.0", 0, "0.0", "0.0"}, + {"1:0", 1, "0", ""}, + {"5:1", 5, "1", ""}, + {"0:0-0-0", 0, "0", "0-0"}, + {"0:0-0-0-0", 0, "0", "0-0-0"}, + {"0:0:0-0", 0, "0:0", "0"}, + {"0:0:0:0-0", 0, "0:0:0", "0"}, + {"0:0:0-0-0", 0, "0:0", "0-0"}, + {"0:0-0:0-0", 0, "0", "0:0-0"}, + {" 0:0-1", 0, "0", "1"}, + {"0:0-1 ", 0, "0", "1"}, + {" 0:0-1 ", 0, "0", "1"}, + {"", 0, "", ""}, + {" ", 0, "", ""}, + {"0:", 0, "", ""}, + {"0:0 0-1", 0, "0 0", "1"}, + {"-1:0-1", -1, "0", "1"}, + {"a:0-0", 0, "0", "0"}, + {"A:1-2", 0, "1", "2"}, + {"0:abc3-0", 0, "abc3", "0"}, + {"1.2.3", 0, "1.2.3", ""}, + {"1:1.2.3", 1, "1.2.3", ""}, + {"A:1.2.3", 0, "1.2.3", ""}, + {"-1:1.2.3", -1, "1.2.3", ""}, + {"6.0-4.el6.x86_64", 0, "6.0", "4.el6.x86_64"}, + {"c105b9de-4e0fd3a3", 0, "c105b9de", "4e0fd3a3"}, + {"4.999.9-0.5.beta.20091007git.el6", 0, "4.999.9", "0.5.beta.20091007git.el6"}, + } + + for _, c := range cases { + require.Equal(t, c.epoch, epoch(c.v)) + require.Equal(t, c.version, version(c.v)) + require.Equal(t, c.release, release(c.v)) + } +} + +// Based on https://github.com/knqyf263/go-rpm-version/blob/master/version_test.go +func TestRpmvercmp(t *testing.T) { + const ( + LESS = -1 + EQUAL = 0 + GREATER = 1 + ) + + cases := []struct { + a string + expected int + b string + }{ + {"", EQUAL, ""}, + {"", LESS, "0"}, + {"", LESS, "1"}, + {"", LESS, "2"}, + {"", LESS, "10"}, + {"", LESS, "100"}, + {"", LESS, "0.0"}, + {"", LESS, "0.1"}, + {"", LESS, "0.10"}, + {"", LESS, "0.99"}, + {"", LESS, "1.0"}, + {"", LESS, "1.99"}, + {"", LESS, "2.0"}, + {"", LESS, "0.0.0"}, + {"", LESS, "0.0.1"}, + {"", LESS, "0.0.2"}, + {"", LESS, "0.0.10"}, + {"", LESS, "0.0.99"}, + {"", LESS, "0.1.0"}, + {"", LESS, "0.2.0"}, + {"", LESS, "0.10.0"}, + {"", LESS, "0.99.0"}, + {"", LESS, "0.100.0"}, + {"", LESS, "0.0.0.0"}, + {"", LESS, "0.0.0.1"}, + {"", LESS, "0.0.0.10"}, + {"", LESS, "0.0.1.0"}, + {"", LESS, "0.0.01.0"}, + {"", LESS, "1.2.3.4"}, + {"", LESS, "1-2-3-4"}, + {"", LESS, "20150101"}, + {"", LESS, "20151212"}, + {"", LESS, "20151212.0"}, + {"", LESS, "20151212.1"}, + {"", LESS, "2015.1.1"}, + {"", LESS, "2015.02.02"}, + {"", LESS, "2015.12.12"}, + {"", LESS, "1.2.3a"}, + {"", LESS, "1.2.3b"}, + {"", LESS, "R16B"}, + {"", LESS, "R16C"}, + {"", LESS, "1.2.3.2016.1.1"}, + {"", LESS, "0.5a1.dev"}, + {"", LESS, "1.8.B59BrZX"}, + {"", LESS, "0.07b4p1"}, + {"", LESS, "3.99.5final.SP07"}, + {"", LESS, "3.99.5final.SP08"}, + {"", LESS, "0.4.tbb.20100203"}, + {"", LESS, "0.5.20120830CVS.el7"}, + {"", LESS, "1.el7"}, + {"", LESS, "1.el6"}, + {"", LESS, "10.el7"}, + {"", LESS, "01.el7"}, + {"", LESS, "0.17.20140318svn632.el7"}, + {"", LESS, "0.17.20140318svn633.el7"}, + {"", LESS, "1.20140522gitad6fb3e.el7"}, + {"", LESS, "1.20140522hitad6fb3e.el7"}, + {"", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"", LESS, "22.svn457.el7"}, + {"", LESS, "22.svn458.el7"}, + {"", LESS, "~"}, + {"", LESS, "~~"}, + {"", LESS, "~1"}, + {"", LESS, "~a"}, + {"", LESS, "1~"}, + {"", LESS, "2~"}, + {"0", GREATER, ""}, + {"0", EQUAL, "0"}, + {"0", LESS, "1"}, + {"0", LESS, "2"}, + {"0", LESS, "10"}, + {"0", LESS, "100"}, + {"0", LESS, "0.0"}, + {"0", LESS, "0.1"}, + {"0", LESS, "0.10"}, + {"0", LESS, "0.99"}, + {"0", LESS, "1.0"}, + {"0", LESS, "1.99"}, + {"0", LESS, "2.0"}, + {"0", LESS, "0.0.0"}, + {"0", LESS, "0.0.1"}, + {"0", LESS, "0.0.2"}, + {"0", LESS, "0.0.10"}, + {"0", LESS, "0.0.99"}, + {"0", LESS, "0.1.0"}, + {"0", LESS, "0.2.0"}, + {"0", LESS, "0.10.0"}, + + {"0", LESS, "0.99.0"}, + {"0", LESS, "0.100.0"}, + {"0", LESS, "0.0.0.0"}, + {"0", LESS, "0.0.0.1"}, + {"0", LESS, "0.0.0.10"}, + {"0", LESS, "0.0.1.0"}, + {"0", LESS, "0.0.01.0"}, + {"0", LESS, "1.2.3.4"}, + {"0", LESS, "1-2-3-4"}, + {"0", LESS, "20150101"}, + {"0", LESS, "20151212"}, + {"0", LESS, "20151212.0"}, + {"0", LESS, "20151212.1"}, + {"0", LESS, "2015.1.1"}, + {"0", LESS, "2015.02.02"}, + {"0", LESS, "2015.12.12"}, + {"0", LESS, "1.2.3a"}, + {"0", LESS, "1.2.3b"}, + {"0", GREATER, "R16B"}, + {"0", GREATER, "R16C"}, + {"0", LESS, "1.2.3.2016.1.1"}, + {"0", LESS, "0.5a1.dev"}, + {"0", LESS, "1.8.B59BrZX"}, + {"0", LESS, "0.07b4p1"}, + {"0", LESS, "3.99.5final.SP07"}, + {"0", LESS, "3.99.5final.SP08"}, + {"0", LESS, "0.4.tbb.20100203"}, + {"0", LESS, "0.5.20120830CVS.el7"}, + {"0", LESS, "1.el7"}, + {"0", LESS, "1.el6"}, + {"0", LESS, "10.el7"}, + {"0", LESS, "01.el7"}, + {"0", LESS, "0.17.20140318svn632.el7"}, + {"0", LESS, "0.17.20140318svn633.el7"}, + {"0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0", LESS, "22.svn457.el7"}, + {"0", LESS, "22.svn458.el7"}, + {"0", GREATER, "~"}, + {"0", GREATER, "~~"}, + {"0", GREATER, "~1"}, + {"0", GREATER, "~a"}, + {"0", LESS, "1~"}, + {"0", LESS, "2~"}, + {"1", GREATER, ""}, + {"1", GREATER, "0"}, + {"1", EQUAL, "1"}, + {"1", LESS, "2"}, + {"1", LESS, "10"}, + {"1", LESS, "100"}, + {"1", GREATER, "0.0"}, + {"1", GREATER, "0.1"}, + {"1", GREATER, "0.10"}, + {"1", GREATER, "0.99"}, + {"1", LESS, "1.0"}, + {"1", LESS, "1.99"}, + {"1", LESS, "2.0"}, + {"1", GREATER, "0.0.0"}, + {"1", GREATER, "0.0.1"}, + {"1", GREATER, "0.0.2"}, + {"1", GREATER, "0.0.10"}, + {"1", GREATER, "0.0.99"}, + {"1", GREATER, "0.1.0"}, + {"1", GREATER, "0.2.0"}, + {"1", GREATER, "0.10.0"}, + {"1", GREATER, "0.99.0"}, + {"1", GREATER, "0.100.0"}, + {"1", GREATER, "0.0.0.0"}, + {"1", GREATER, "0.0.0.1"}, + {"1", GREATER, "0.0.0.10"}, + {"1", GREATER, "0.0.1.0"}, + {"1", GREATER, "0.0.01.0"}, + {"1", LESS, "1.2.3.4"}, + {"1", LESS, "1-2-3-4"}, + {"1", LESS, "20150101"}, + {"1", LESS, "20151212"}, + {"1", LESS, "20151212.0"}, + {"1", LESS, "20151212.1"}, + {"1", LESS, "2015.1.1"}, + {"1", LESS, "2015.02.02"}, + {"1", LESS, "2015.12.12"}, + {"1", LESS, "1.2.3a"}, + {"1", LESS, "1.2.3b"}, + {"1", GREATER, "R16B"}, + {"1", GREATER, "R16C"}, + {"1", LESS, "1.2.3.2016.1.1"}, + {"1", GREATER, "0.5a1.dev"}, + {"1", LESS, "1.8.B59BrZX"}, + {"1", GREATER, "0.07b4p1"}, + {"1", LESS, "3.99.5final.SP07"}, + {"1", LESS, "3.99.5final.SP08"}, + {"1", GREATER, "0.4.tbb.20100203"}, + {"1", GREATER, "0.5.20120830CVS.el7"}, + {"1", LESS, "1.el7"}, + {"1", LESS, "1.el6"}, + {"1", LESS, "10.el7"}, + {"1", LESS, "01.el7"}, + {"1", GREATER, "0.17.20140318svn632.el7"}, + {"1", GREATER, "0.17.20140318svn633.el7"}, + {"1", LESS, "1.20140522gitad6fb3e.el7"}, + {"1", LESS, "1.20140522hitad6fb3e.el7"}, + {"1", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1", LESS, "22.svn457.el7"}, + {"1", LESS, "22.svn458.el7"}, + {"1", GREATER, "~"}, + {"1", GREATER, "~~"}, + {"1", GREATER, "~1"}, + {"1", GREATER, "~a"}, + {"1", GREATER, "1~"}, + {"1", LESS, "2~"}, + {"2", GREATER, ""}, + {"2", GREATER, "0"}, + {"2", GREATER, "1"}, + {"2", EQUAL, "2"}, + {"2", LESS, "10"}, + {"2", LESS, "100"}, + {"2", GREATER, "0.0"}, + {"2", GREATER, "0.1"}, + {"2", GREATER, "0.10"}, + {"2", GREATER, "0.99"}, + {"2", GREATER, "1.0"}, + {"2", GREATER, "1.99"}, + {"2", LESS, "2.0"}, + {"2", GREATER, "0.0.0"}, + {"2", GREATER, "0.0.1"}, + {"2", GREATER, "0.0.2"}, + {"2", GREATER, "0.0.10"}, + {"2", GREATER, "0.0.99"}, + {"2", GREATER, "0.1.0"}, + {"2", GREATER, "0.2.0"}, + {"2", GREATER, "0.10.0"}, + {"2", GREATER, "0.99.0"}, + {"2", GREATER, "0.100.0"}, + {"2", GREATER, "0.0.0.0"}, + {"2", GREATER, "0.0.0.1"}, + {"2", GREATER, "0.0.0.10"}, + {"2", GREATER, "0.0.1.0"}, + {"2", GREATER, "0.0.01.0"}, + {"2", GREATER, "1.2.3.4"}, + {"2", GREATER, "1-2-3-4"}, + {"2", LESS, "20150101"}, + {"2", LESS, "20151212"}, + {"2", LESS, "20151212.0"}, + {"2", LESS, "20151212.1"}, + {"2", LESS, "2015.1.1"}, + {"2", LESS, "2015.02.02"}, + {"2", LESS, "2015.12.12"}, + {"2", GREATER, "1.2.3a"}, + {"2", GREATER, "1.2.3b"}, + {"2", GREATER, "R16B"}, + {"2", GREATER, "R16C"}, + {"2", GREATER, "1.2.3.2016.1.1"}, + {"2", GREATER, "0.5a1.dev"}, + {"2", GREATER, "1.8.B59BrZX"}, + {"2", GREATER, "0.07b4p1"}, + {"2", LESS, "3.99.5final.SP07"}, + {"2", LESS, "3.99.5final.SP08"}, + {"2", GREATER, "0.4.tbb.20100203"}, + {"2", GREATER, "0.5.20120830CVS.el7"}, + {"2", GREATER, "1.el7"}, + {"2", GREATER, "1.el6"}, + {"2", LESS, "10.el7"}, + {"2", GREATER, "01.el7"}, + {"2", GREATER, "0.17.20140318svn632.el7"}, + {"2", GREATER, "0.17.20140318svn633.el7"}, + {"2", GREATER, "1.20140522gitad6fb3e.el7"}, + {"2", GREATER, "1.20140522hitad6fb3e.el7"}, + {"2", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"2", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"2", LESS, "22.svn457.el7"}, + {"2", LESS, "22.svn458.el7"}, + {"2", GREATER, "~"}, + {"2", GREATER, "~~"}, + {"2", GREATER, "~1"}, + {"2", GREATER, "~a"}, + {"2", GREATER, "1~"}, + {"2", GREATER, "2~"}, + {"10", GREATER, ""}, + {"10", GREATER, "0"}, + {"10", GREATER, "1"}, + {"10", GREATER, "2"}, + {"10", EQUAL, "10"}, + {"10", LESS, "100"}, + {"10", GREATER, "0.0"}, + {"10", GREATER, "0.1"}, + {"10", GREATER, "0.10"}, + {"10", GREATER, "0.99"}, + {"10", GREATER, "1.0"}, + {"10", GREATER, "1.99"}, + {"10", GREATER, "2.0"}, + {"10", GREATER, "0.0.0"}, + {"10", GREATER, "0.0.1"}, + {"10", GREATER, "0.0.2"}, + {"10", GREATER, "0.0.10"}, + {"10", GREATER, "0.0.99"}, + {"10", GREATER, "0.1.0"}, + {"10", GREATER, "0.2.0"}, + {"10", GREATER, "0.10.0"}, + {"10", GREATER, "0.99.0"}, + {"10", GREATER, "0.100.0"}, + {"10", GREATER, "0.0.0.0"}, + {"10", GREATER, "0.0.0.1"}, + {"10", GREATER, "0.0.0.10"}, + {"10", GREATER, "0.0.1.0"}, + {"10", GREATER, "0.0.01.0"}, + {"10", GREATER, "1.2.3.4"}, + {"10", GREATER, "1-2-3-4"}, + {"10", LESS, "20150101"}, + {"10", LESS, "20151212"}, + {"10", LESS, "20151212.0"}, + {"10", LESS, "20151212.1"}, + {"10", LESS, "2015.1.1"}, + {"10", LESS, "2015.02.02"}, + {"10", LESS, "2015.12.12"}, + {"10", GREATER, "1.2.3a"}, + {"10", GREATER, "1.2.3b"}, + {"10", GREATER, "R16B"}, + {"10", GREATER, "R16C"}, + {"10", GREATER, "1.2.3.2016.1.1"}, + {"10", GREATER, "0.5a1.dev"}, + {"10", GREATER, "1.8.B59BrZX"}, + {"10", GREATER, "0.07b4p1"}, + {"10", GREATER, "3.99.5final.SP07"}, + {"10", GREATER, "3.99.5final.SP08"}, + {"10", GREATER, "0.4.tbb.20100203"}, + {"10", GREATER, "0.5.20120830CVS.el7"}, + {"10", GREATER, "1.el7"}, + {"10", GREATER, "1.el6"}, + {"10", LESS, "10.el7"}, + {"10", GREATER, "01.el7"}, + {"10", GREATER, "0.17.20140318svn632.el7"}, + {"10", GREATER, "0.17.20140318svn633.el7"}, + {"10", GREATER, "1.20140522gitad6fb3e.el7"}, + {"10", GREATER, "1.20140522hitad6fb3e.el7"}, + {"10", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"10", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"10", LESS, "22.svn457.el7"}, + {"10", LESS, "22.svn458.el7"}, + {"10", GREATER, "~"}, + {"10", GREATER, "~~"}, + {"10", GREATER, "~1"}, + {"10", GREATER, "~a"}, + {"10", GREATER, "1~"}, + {"10", GREATER, "2~"}, + {"100", GREATER, ""}, + {"100", GREATER, "0"}, + {"100", GREATER, "1"}, + {"100", GREATER, "2"}, + {"100", GREATER, "10"}, + {"100", EQUAL, "100"}, + {"100", GREATER, "0.0"}, + {"100", GREATER, "0.1"}, + {"100", GREATER, "0.10"}, + {"100", GREATER, "0.99"}, + {"100", GREATER, "1.0"}, + {"100", GREATER, "1.99"}, + {"100", GREATER, "2.0"}, + {"100", GREATER, "0.0.0"}, + {"100", GREATER, "0.0.1"}, + {"100", GREATER, "0.0.2"}, + {"100", GREATER, "0.0.10"}, + {"100", GREATER, "0.0.99"}, + {"100", GREATER, "0.1.0"}, + {"100", GREATER, "0.2.0"}, + {"100", GREATER, "0.10.0"}, + {"100", GREATER, "0.99.0"}, + {"100", GREATER, "0.100.0"}, + {"100", GREATER, "0.0.0.0"}, + {"100", GREATER, "0.0.0.1"}, + {"100", GREATER, "0.0.0.10"}, + {"100", GREATER, "0.0.1.0"}, + {"100", GREATER, "0.0.01.0"}, + {"100", GREATER, "1.2.3.4"}, + {"100", GREATER, "1-2-3-4"}, + {"100", LESS, "20150101"}, + {"100", LESS, "20151212"}, + {"100", LESS, "20151212.0"}, + {"100", LESS, "20151212.1"}, + {"100", LESS, "2015.1.1"}, + {"100", LESS, "2015.02.02"}, + {"100", LESS, "2015.12.12"}, + {"100", GREATER, "1.2.3a"}, + {"100", GREATER, "1.2.3b"}, + {"100", GREATER, "R16B"}, + {"100", GREATER, "R16C"}, + {"100", GREATER, "1.2.3.2016.1.1"}, + {"100", GREATER, "0.5a1.dev"}, + {"100", GREATER, "1.8.B59BrZX"}, + {"100", GREATER, "0.07b4p1"}, + {"100", GREATER, "3.99.5final.SP07"}, + {"100", GREATER, "3.99.5final.SP08"}, + {"100", GREATER, "0.4.tbb.20100203"}, + {"100", GREATER, "0.5.20120830CVS.el7"}, + {"100", GREATER, "1.el7"}, + {"100", GREATER, "1.el6"}, + {"100", GREATER, "10.el7"}, + {"100", GREATER, "01.el7"}, + {"100", GREATER, "0.17.20140318svn632.el7"}, + {"100", GREATER, "0.17.20140318svn633.el7"}, + {"100", GREATER, "1.20140522gitad6fb3e.el7"}, + {"100", GREATER, "1.20140522hitad6fb3e.el7"}, + {"100", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"100", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"100", GREATER, "22.svn457.el7"}, + {"100", GREATER, "22.svn458.el7"}, + {"100", GREATER, "~"}, + {"100", GREATER, "~~"}, + {"100", GREATER, "~1"}, + {"100", GREATER, "~a"}, + {"100", GREATER, "1~"}, + {"100", GREATER, "2~"}, + {"0.0", GREATER, ""}, + {"0.0", GREATER, "0"}, + {"0.0", LESS, "1"}, + {"0.0", LESS, "2"}, + {"0.0", LESS, "10"}, + {"0.0", LESS, "100"}, + {"0.0", EQUAL, "0.0"}, + {"0.0", LESS, "0.1"}, + {"0.0", LESS, "0.10"}, + {"0.0", LESS, "0.99"}, + {"0.0", LESS, "1.0"}, + {"0.0", LESS, "1.99"}, + {"0.0", LESS, "2.0"}, + {"0.0", LESS, "0.0.0"}, + {"0.0", LESS, "0.0.1"}, + {"0.0", LESS, "0.0.2"}, + {"0.0", LESS, "0.0.10"}, + {"0.0", LESS, "0.0.99"}, + {"0.0", LESS, "0.1.0"}, + {"0.0", LESS, "0.2.0"}, + {"0.0", LESS, "0.10.0"}, + {"0.0", LESS, "0.99.0"}, + {"0.0", LESS, "0.100.0"}, + {"0.0", LESS, "0.0.0.0"}, + {"0.0", LESS, "0.0.0.1"}, + {"0.0", LESS, "0.0.0.10"}, + {"0.0", LESS, "0.0.1.0"}, + {"0.0", LESS, "0.0.01.0"}, + {"0.0", LESS, "1.2.3.4"}, + {"0.0", LESS, "1-2-3-4"}, + {"0.0", LESS, "20150101"}, + {"0.0", LESS, "20151212"}, + {"0.0", LESS, "20151212.0"}, + {"0.0", LESS, "20151212.1"}, + {"0.0", LESS, "2015.1.1"}, + {"0.0", LESS, "2015.02.02"}, + {"0.0", LESS, "2015.12.12"}, + {"0.0", LESS, "1.2.3a"}, + {"0.0", LESS, "1.2.3b"}, + {"0.0", GREATER, "R16B"}, + {"0.0", GREATER, "R16C"}, + {"0.0", LESS, "1.2.3.2016.1.1"}, + {"0.0", LESS, "0.5a1.dev"}, + {"0.0", LESS, "1.8.B59BrZX"}, + {"0.0", LESS, "0.07b4p1"}, + {"0.0", LESS, "3.99.5final.SP07"}, + {"0.0", LESS, "3.99.5final.SP08"}, + {"0.0", LESS, "0.4.tbb.20100203"}, + {"0.0", LESS, "0.5.20120830CVS.el7"}, + {"0.0", LESS, "1.el7"}, + {"0.0", LESS, "1.el6"}, + {"0.0", LESS, "10.el7"}, + {"0.0", LESS, "01.el7"}, + {"0.0", LESS, "0.17.20140318svn632.el7"}, + {"0.0", LESS, "0.17.20140318svn633.el7"}, + {"0.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0", LESS, "22.svn457.el7"}, + {"0.0", LESS, "22.svn458.el7"}, + {"0.0", GREATER, "~"}, + {"0.0", GREATER, "~~"}, + {"0.0", GREATER, "~1"}, + {"0.0", GREATER, "~a"}, + {"0.0", LESS, "1~"}, + {"0.0", LESS, "2~"}, + {"0.1", GREATER, ""}, + {"0.1", GREATER, "0"}, + {"0.1", LESS, "1"}, + {"0.1", LESS, "2"}, + {"0.1", LESS, "10"}, + {"0.1", LESS, "100"}, + {"0.1", GREATER, "0.0"}, + {"0.1", EQUAL, "0.1"}, + {"0.1", LESS, "0.10"}, + {"0.1", LESS, "0.99"}, + {"0.1", LESS, "1.0"}, + {"0.1", LESS, "1.99"}, + {"0.1", LESS, "2.0"}, + {"0.1", GREATER, "0.0.0"}, + {"0.1", GREATER, "0.0.1"}, + {"0.1", GREATER, "0.0.2"}, + {"0.1", GREATER, "0.0.10"}, + {"0.1", GREATER, "0.0.99"}, + {"0.1", LESS, "0.1.0"}, + {"0.1", LESS, "0.2.0"}, + {"0.1", LESS, "0.10.0"}, + {"0.1", LESS, "0.99.0"}, + {"0.1", LESS, "0.100.0"}, + {"0.1", GREATER, "0.0.0.0"}, + {"0.1", GREATER, "0.0.0.1"}, + {"0.1", GREATER, "0.0.0.10"}, + {"0.1", GREATER, "0.0.1.0"}, + {"0.1", GREATER, "0.0.01.0"}, + {"0.1", LESS, "1.2.3.4"}, + {"0.1", LESS, "1-2-3-4"}, + {"0.1", LESS, "20150101"}, + {"0.1", LESS, "20151212"}, + {"0.1", LESS, "20151212.0"}, + {"0.1", LESS, "20151212.1"}, + {"0.1", LESS, "2015.1.1"}, + {"0.1", LESS, "2015.02.02"}, + {"0.1", LESS, "2015.12.12"}, + {"0.1", LESS, "1.2.3a"}, + {"0.1", LESS, "1.2.3b"}, + {"0.1", GREATER, "R16B"}, + {"0.1", GREATER, "R16C"}, + {"0.1", LESS, "1.2.3.2016.1.1"}, + {"0.1", LESS, "0.5a1.dev"}, + {"0.1", LESS, "1.8.B59BrZX"}, + {"0.1", LESS, "0.07b4p1"}, + {"0.1", LESS, "3.99.5final.SP07"}, + {"0.1", LESS, "3.99.5final.SP08"}, + {"0.1", LESS, "0.4.tbb.20100203"}, + {"0.1", LESS, "0.5.20120830CVS.el7"}, + {"0.1", LESS, "1.el7"}, + {"0.1", LESS, "1.el6"}, + {"0.1", LESS, "10.el7"}, + {"0.1", LESS, "01.el7"}, + {"0.1", LESS, "0.17.20140318svn632.el7"}, + {"0.1", LESS, "0.17.20140318svn633.el7"}, + {"0.1", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.1", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.1", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.1", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.1", LESS, "22.svn457.el7"}, + {"0.1", LESS, "22.svn458.el7"}, + {"0.1", GREATER, "~"}, + {"0.1", GREATER, "~~"}, + {"0.1", GREATER, "~1"}, + {"0.1", GREATER, "~a"}, + {"0.1", LESS, "1~"}, + {"0.1", LESS, "2~"}, + {"0.10", GREATER, ""}, + {"0.10", GREATER, "0"}, + {"0.10", LESS, "1"}, + {"0.10", LESS, "2"}, + {"0.10", LESS, "10"}, + {"0.10", LESS, "100"}, + {"0.10", GREATER, "0.0"}, + {"0.10", GREATER, "0.1"}, + {"0.10", EQUAL, "0.10"}, + {"0.10", LESS, "0.99"}, + {"0.10", LESS, "1.0"}, + {"0.10", LESS, "1.99"}, + {"0.10", LESS, "2.0"}, + {"0.10", GREATER, "0.0.0"}, + {"0.10", GREATER, "0.0.1"}, + {"0.10", GREATER, "0.0.2"}, + {"0.10", GREATER, "0.0.10"}, + {"0.10", GREATER, "0.0.99"}, + {"0.10", GREATER, "0.1.0"}, + {"0.10", GREATER, "0.2.0"}, + {"0.10", LESS, "0.10.0"}, + {"0.10", LESS, "0.99.0"}, + {"0.10", LESS, "0.100.0"}, + {"0.10", GREATER, "0.0.0.0"}, + {"0.10", GREATER, "0.0.0.1"}, + {"0.10", GREATER, "0.0.0.10"}, + {"0.10", GREATER, "0.0.1.0"}, + {"0.10", GREATER, "0.0.01.0"}, + {"0.10", LESS, "1.2.3.4"}, + {"0.10", LESS, "1-2-3-4"}, + {"0.10", LESS, "20150101"}, + {"0.10", LESS, "20151212"}, + {"0.10", LESS, "20151212.0"}, + {"0.10", LESS, "20151212.1"}, + {"0.10", LESS, "2015.1.1"}, + {"0.10", LESS, "2015.02.02"}, + {"0.10", LESS, "2015.12.12"}, + {"0.10", LESS, "1.2.3a"}, + {"0.10", LESS, "1.2.3b"}, + {"0.10", GREATER, "R16B"}, + {"0.10", GREATER, "R16C"}, + {"0.10", LESS, "1.2.3.2016.1.1"}, + {"0.10", GREATER, "0.5a1.dev"}, + {"0.10", LESS, "1.8.B59BrZX"}, + {"0.10", GREATER, "0.07b4p1"}, + {"0.10", LESS, "3.99.5final.SP07"}, + {"0.10", LESS, "3.99.5final.SP08"}, + {"0.10", GREATER, "0.4.tbb.20100203"}, + {"0.10", GREATER, "0.5.20120830CVS.el7"}, + {"0.10", LESS, "1.el7"}, + {"0.10", LESS, "1.el6"}, + {"0.10", LESS, "10.el7"}, + {"0.10", LESS, "01.el7"}, + {"0.10", LESS, "0.17.20140318svn632.el7"}, + {"0.10", LESS, "0.17.20140318svn633.el7"}, + {"0.10", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.10", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.10", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.10", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.10", LESS, "22.svn457.el7"}, + {"0.10", LESS, "22.svn458.el7"}, + {"0.10", GREATER, "~"}, + {"0.10", GREATER, "~~"}, + {"0.10", GREATER, "~1"}, + {"0.10", GREATER, "~a"}, + {"0.10", LESS, "1~"}, + {"0.10", LESS, "2~"}, + {"0.99", GREATER, ""}, + {"0.99", GREATER, "0"}, + {"0.99", LESS, "1"}, + {"0.99", LESS, "2"}, + {"0.99", LESS, "10"}, + {"0.99", LESS, "100"}, + {"0.99", GREATER, "0.0"}, + {"0.99", GREATER, "0.1"}, + {"0.99", GREATER, "0.10"}, + {"0.99", EQUAL, "0.99"}, + {"0.99", LESS, "1.0"}, + {"0.99", LESS, "1.99"}, + {"0.99", LESS, "2.0"}, + {"0.99", GREATER, "0.0.0"}, + {"0.99", GREATER, "0.0.1"}, + {"0.99", GREATER, "0.0.2"}, + {"0.99", GREATER, "0.0.10"}, + {"0.99", GREATER, "0.0.99"}, + {"0.99", GREATER, "0.1.0"}, + {"0.99", GREATER, "0.2.0"}, + {"0.99", GREATER, "0.10.0"}, + {"0.99", LESS, "0.99.0"}, + {"0.99", LESS, "0.100.0"}, + {"0.99", GREATER, "0.0.0.0"}, + {"0.99", GREATER, "0.0.0.1"}, + {"0.99", GREATER, "0.0.0.10"}, + {"0.99", GREATER, "0.0.1.0"}, + {"0.99", GREATER, "0.0.01.0"}, + {"0.99", LESS, "1.2.3.4"}, + {"0.99", LESS, "1-2-3-4"}, + {"0.99", LESS, "20150101"}, + {"0.99", LESS, "20151212"}, + {"0.99", LESS, "20151212.0"}, + {"0.99", LESS, "20151212.1"}, + {"0.99", LESS, "2015.1.1"}, + {"0.99", LESS, "2015.02.02"}, + {"0.99", LESS, "2015.12.12"}, + {"0.99", LESS, "1.2.3a"}, + {"0.99", LESS, "1.2.3b"}, + {"0.99", GREATER, "R16B"}, + {"0.99", GREATER, "R16C"}, + {"0.99", LESS, "1.2.3.2016.1.1"}, + {"0.99", GREATER, "0.5a1.dev"}, + {"0.99", LESS, "1.8.B59BrZX"}, + {"0.99", GREATER, "0.07b4p1"}, + {"0.99", LESS, "3.99.5final.SP07"}, + {"0.99", LESS, "3.99.5final.SP08"}, + {"0.99", GREATER, "0.4.tbb.20100203"}, + {"0.99", GREATER, "0.5.20120830CVS.el7"}, + {"0.99", LESS, "1.el7"}, + {"0.99", LESS, "1.el6"}, + {"0.99", LESS, "10.el7"}, + {"0.99", LESS, "01.el7"}, + {"0.99", GREATER, "0.17.20140318svn632.el7"}, + {"0.99", GREATER, "0.17.20140318svn633.el7"}, + {"0.99", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.99", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.99", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.99", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.99", LESS, "22.svn457.el7"}, + {"0.99", LESS, "22.svn458.el7"}, + {"0.99", GREATER, "~"}, + {"0.99", GREATER, "~~"}, + {"0.99", GREATER, "~1"}, + {"0.99", GREATER, "~a"}, + {"0.99", LESS, "1~"}, + {"0.99", LESS, "2~"}, + {"1.0", GREATER, ""}, + {"1.0", GREATER, "0"}, + {"1.0", GREATER, "1"}, + {"1.0", LESS, "2"}, + {"1.0", LESS, "10"}, + {"1.0", LESS, "100"}, + {"1.0", GREATER, "0.0"}, + {"1.0", GREATER, "0.1"}, + {"1.0", GREATER, "0.10"}, + {"1.0", GREATER, "0.99"}, + {"1.0", EQUAL, "1.0"}, + {"1.0", LESS, "1.99"}, + {"1.0", LESS, "2.0"}, + {"1.0", GREATER, "0.0.0"}, + {"1.0", GREATER, "0.0.1"}, + {"1.0", GREATER, "0.0.2"}, + {"1.0", GREATER, "0.0.10"}, + {"1.0", GREATER, "0.0.99"}, + {"1.0", GREATER, "0.1.0"}, + {"1.0", GREATER, "0.2.0"}, + {"1.0", GREATER, "0.10.0"}, + {"1.0", GREATER, "0.99.0"}, + {"1.0", GREATER, "0.100.0"}, + {"1.0", GREATER, "0.0.0.0"}, + {"1.0", GREATER, "0.0.0.1"}, + {"1.0", GREATER, "0.0.0.10"}, + {"1.0", GREATER, "0.0.1.0"}, + {"1.0", GREATER, "0.0.01.0"}, + {"1.0", LESS, "1.2.3.4"}, + {"1.0", GREATER, "1-2-3-4"}, + {"1.0", LESS, "20150101"}, + {"1.0", LESS, "20151212"}, + {"1.0", LESS, "20151212.0"}, + {"1.0", LESS, "20151212.1"}, + {"1.0", LESS, "2015.1.1"}, + {"1.0", LESS, "2015.02.02"}, + {"1.0", LESS, "2015.12.12"}, + {"1.0", LESS, "1.2.3a"}, + {"1.0", LESS, "1.2.3b"}, + {"1.0", GREATER, "R16B"}, + {"1.0", GREATER, "R16C"}, + {"1.0", LESS, "1.2.3.2016.1.1"}, + {"1.0", GREATER, "0.5a1.dev"}, + {"1.0", LESS, "1.8.B59BrZX"}, + {"1.0", GREATER, "0.07b4p1"}, + {"1.0", LESS, "3.99.5final.SP07"}, + {"1.0", LESS, "3.99.5final.SP08"}, + {"1.0", GREATER, "0.4.tbb.20100203"}, + {"1.0", GREATER, "0.5.20120830CVS.el7"}, + {"1.0", GREATER, "1.el7"}, + {"1.0", GREATER, "1.el6"}, + {"1.0", LESS, "10.el7"}, + {"1.0", GREATER, "01.el7"}, + {"1.0", GREATER, "0.17.20140318svn632.el7"}, + {"1.0", GREATER, "0.17.20140318svn633.el7"}, + {"1.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.0", LESS, "22.svn457.el7"}, + {"1.0", LESS, "22.svn458.el7"}, + {"1.0", GREATER, "~"}, + {"1.0", GREATER, "~~"}, + {"1.0", GREATER, "~1"}, + {"1.0", GREATER, "~a"}, + {"1.0", GREATER, "1~"}, + {"1.0", LESS, "2~"}, + {"1.99", GREATER, ""}, + {"1.99", GREATER, "0"}, + {"1.99", GREATER, "1"}, + {"1.99", LESS, "2"}, + {"1.99", LESS, "10"}, + {"1.99", LESS, "100"}, + {"1.99", GREATER, "0.0"}, + {"1.99", GREATER, "0.1"}, + {"1.99", GREATER, "0.10"}, + {"1.99", GREATER, "0.99"}, + {"1.99", GREATER, "1.0"}, + {"1.99", EQUAL, "1.99"}, + {"1.99", LESS, "2.0"}, + {"1.99", GREATER, "0.0.0"}, + {"1.99", GREATER, "0.0.1"}, + {"1.99", GREATER, "0.0.2"}, + {"1.99", GREATER, "0.0.10"}, + {"1.99", GREATER, "0.0.99"}, + {"1.99", GREATER, "0.1.0"}, + {"1.99", GREATER, "0.2.0"}, + {"1.99", GREATER, "0.10.0"}, + {"1.99", GREATER, "0.99.0"}, + {"1.99", GREATER, "0.100.0"}, + {"1.99", GREATER, "0.0.0.0"}, + {"1.99", GREATER, "0.0.0.1"}, + {"1.99", GREATER, "0.0.0.10"}, + {"1.99", GREATER, "0.0.1.0"}, + {"1.99", GREATER, "0.0.01.0"}, + {"1.99", GREATER, "1.2.3.4"}, + {"1.99", GREATER, "1-2-3-4"}, + {"1.99", LESS, "20150101"}, + {"1.99", LESS, "20151212"}, + {"1.99", LESS, "20151212.0"}, + {"1.99", LESS, "20151212.1"}, + {"1.99", LESS, "2015.1.1"}, + {"1.99", LESS, "2015.02.02"}, + {"1.99", LESS, "2015.12.12"}, + {"1.99", GREATER, "1.2.3a"}, + {"1.99", GREATER, "1.2.3b"}, + {"1.99", GREATER, "R16B"}, + {"1.99", GREATER, "R16C"}, + {"1.99", GREATER, "1.2.3.2016.1.1"}, + {"1.99", GREATER, "0.5a1.dev"}, + {"1.99", GREATER, "1.8.B59BrZX"}, + {"1.99", GREATER, "0.07b4p1"}, + {"1.99", LESS, "3.99.5final.SP07"}, + {"1.99", LESS, "3.99.5final.SP08"}, + {"1.99", GREATER, "0.4.tbb.20100203"}, + {"1.99", GREATER, "0.5.20120830CVS.el7"}, + {"1.99", GREATER, "1.el7"}, + {"1.99", GREATER, "1.el6"}, + {"1.99", LESS, "10.el7"}, + {"1.99", GREATER, "01.el7"}, + {"1.99", GREATER, "0.17.20140318svn632.el7"}, + {"1.99", GREATER, "0.17.20140318svn633.el7"}, + {"1.99", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.99", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.99", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.99", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.99", LESS, "22.svn457.el7"}, + {"1.99", LESS, "22.svn458.el7"}, + {"1.99", GREATER, "~"}, + {"1.99", GREATER, "~~"}, + {"1.99", GREATER, "~1"}, + {"1.99", GREATER, "~a"}, + {"1.99", GREATER, "1~"}, + {"1.99", LESS, "2~"}, + {"2.0", GREATER, ""}, + {"2.0", GREATER, "0"}, + {"2.0", GREATER, "1"}, + {"2.0", GREATER, "2"}, + {"2.0", LESS, "10"}, + {"2.0", LESS, "100"}, + {"2.0", GREATER, "0.0"}, + {"2.0", GREATER, "0.1"}, + {"2.0", GREATER, "0.10"}, + {"2.0", GREATER, "0.99"}, + {"2.0", GREATER, "1.0"}, + {"2.0", GREATER, "1.99"}, + {"2.0", EQUAL, "2.0"}, + {"2.0", GREATER, "0.0.0"}, + {"2.0", GREATER, "0.0.1"}, + {"2.0", GREATER, "0.0.2"}, + {"2.0", GREATER, "0.0.10"}, + {"2.0", GREATER, "0.0.99"}, + {"2.0", GREATER, "0.1.0"}, + {"2.0", GREATER, "0.2.0"}, + {"2.0", GREATER, "0.10.0"}, + {"2.0", GREATER, "0.99.0"}, + {"2.0", GREATER, "0.100.0"}, + {"2.0", GREATER, "0.0.0.0"}, + {"2.0", GREATER, "0.0.0.1"}, + {"2.0", GREATER, "0.0.0.10"}, + {"2.0", GREATER, "0.0.1.0"}, + {"2.0", GREATER, "0.0.01.0"}, + {"2.0", GREATER, "1.2.3.4"}, + {"2.0", GREATER, "1-2-3-4"}, + {"2.0", LESS, "20150101"}, + {"2.0", LESS, "20151212"}, + {"2.0", LESS, "20151212.0"}, + {"2.0", LESS, "20151212.1"}, + {"2.0", LESS, "2015.1.1"}, + {"2.0", LESS, "2015.02.02"}, + {"2.0", LESS, "2015.12.12"}, + {"2.0", GREATER, "1.2.3a"}, + {"2.0", GREATER, "1.2.3b"}, + {"2.0", GREATER, "R16B"}, + {"2.0", GREATER, "R16C"}, + {"2.0", GREATER, "1.2.3.2016.1.1"}, + {"2.0", GREATER, "0.5a1.dev"}, + {"2.0", GREATER, "1.8.B59BrZX"}, + {"2.0", GREATER, "0.07b4p1"}, + {"2.0", LESS, "3.99.5final.SP07"}, + {"2.0", LESS, "3.99.5final.SP08"}, + {"2.0", GREATER, "0.4.tbb.20100203"}, + {"2.0", GREATER, "0.5.20120830CVS.el7"}, + {"2.0", GREATER, "1.el7"}, + {"2.0", GREATER, "1.el6"}, + {"2.0", LESS, "10.el7"}, + {"2.0", GREATER, "01.el7"}, + {"2.0", GREATER, "0.17.20140318svn632.el7"}, + {"2.0", GREATER, "0.17.20140318svn633.el7"}, + {"2.0", GREATER, "1.20140522gitad6fb3e.el7"}, + {"2.0", GREATER, "1.20140522hitad6fb3e.el7"}, + {"2.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"2.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"2.0", LESS, "22.svn457.el7"}, + {"2.0", LESS, "22.svn458.el7"}, + {"2.0", GREATER, "~"}, + {"2.0", GREATER, "~~"}, + {"2.0", GREATER, "~1"}, + {"2.0", GREATER, "~a"}, + {"2.0", GREATER, "1~"}, + {"2.0", GREATER, "2~"}, + {"0.0.0", GREATER, ""}, + {"0.0.0", GREATER, "0"}, + {"0.0.0", LESS, "1"}, + {"0.0.0", LESS, "2"}, + {"0.0.0", LESS, "10"}, + {"0.0.0", LESS, "100"}, + {"0.0.0", GREATER, "0.0"}, + {"0.0.0", LESS, "0.1"}, + {"0.0.0", LESS, "0.10"}, + {"0.0.0", LESS, "0.99"}, + {"0.0.0", LESS, "1.0"}, + {"0.0.0", LESS, "1.99"}, + {"0.0.0", LESS, "2.0"}, + {"0.0.0", EQUAL, "0.0.0"}, + {"0.0.0", LESS, "0.0.1"}, + {"0.0.0", LESS, "0.0.2"}, + {"0.0.0", LESS, "0.0.10"}, + {"0.0.0", LESS, "0.0.99"}, + {"0.0.0", LESS, "0.1.0"}, + {"0.0.0", LESS, "0.2.0"}, + {"0.0.0", LESS, "0.10.0"}, + {"0.0.0", LESS, "0.99.0"}, + {"0.0.0", LESS, "0.100.0"}, + {"0.0.0", LESS, "0.0.0.0"}, + {"0.0.0", LESS, "0.0.0.1"}, + {"0.0.0", LESS, "0.0.0.10"}, + {"0.0.0", LESS, "0.0.1.0"}, + {"0.0.0", LESS, "0.0.01.0"}, + {"0.0.0", LESS, "1.2.3.4"}, + {"0.0.0", LESS, "1-2-3-4"}, + {"0.0.0", LESS, "20150101"}, + {"0.0.0", LESS, "20151212"}, + {"0.0.0", LESS, "20151212.0"}, + {"0.0.0", LESS, "20151212.1"}, + {"0.0.0", LESS, "2015.1.1"}, + {"0.0.0", LESS, "2015.02.02"}, + {"0.0.0", LESS, "2015.12.12"}, + {"0.0.0", LESS, "1.2.3a"}, + {"0.0.0", LESS, "1.2.3b"}, + {"0.0.0", GREATER, "R16B"}, + {"0.0.0", GREATER, "R16C"}, + {"0.0.0", LESS, "1.2.3.2016.1.1"}, + {"0.0.0", LESS, "0.5a1.dev"}, + {"0.0.0", LESS, "1.8.B59BrZX"}, + {"0.0.0", LESS, "0.07b4p1"}, + {"0.0.0", LESS, "3.99.5final.SP07"}, + {"0.0.0", LESS, "3.99.5final.SP08"}, + {"0.0.0", LESS, "0.4.tbb.20100203"}, + {"0.0.0", LESS, "0.5.20120830CVS.el7"}, + {"0.0.0", LESS, "1.el7"}, + {"0.0.0", LESS, "1.el6"}, + {"0.0.0", LESS, "10.el7"}, + {"0.0.0", LESS, "01.el7"}, + {"0.0.0", LESS, "0.17.20140318svn632.el7"}, + {"0.0.0", LESS, "0.17.20140318svn633.el7"}, + {"0.0.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.0", LESS, "22.svn457.el7"}, + {"0.0.0", LESS, "22.svn458.el7"}, + {"0.0.0", GREATER, "~"}, + {"0.0.0", GREATER, "~~"}, + {"0.0.0", GREATER, "~1"}, + {"0.0.0", GREATER, "~a"}, + {"0.0.0", LESS, "1~"}, + {"0.0.0", LESS, "2~"}, + {"0.0.1", GREATER, ""}, + {"0.0.1", GREATER, "0"}, + {"0.0.1", LESS, "1"}, + {"0.0.1", LESS, "2"}, + {"0.0.1", LESS, "10"}, + {"0.0.1", LESS, "100"}, + {"0.0.1", GREATER, "0.0"}, + {"0.0.1", LESS, "0.1"}, + {"0.0.1", LESS, "0.10"}, + {"0.0.1", LESS, "0.99"}, + {"0.0.1", LESS, "1.0"}, + {"0.0.1", LESS, "1.99"}, + {"0.0.1", LESS, "2.0"}, + {"0.0.1", GREATER, "0.0.0"}, + {"0.0.1", EQUAL, "0.0.1"}, + {"0.0.1", LESS, "0.0.2"}, + {"0.0.1", LESS, "0.0.10"}, + {"0.0.1", LESS, "0.0.99"}, + {"0.0.1", LESS, "0.1.0"}, + {"0.0.1", LESS, "0.2.0"}, + {"0.0.1", LESS, "0.10.0"}, + {"0.0.1", LESS, "0.99.0"}, + {"0.0.1", LESS, "0.100.0"}, + {"0.0.1", GREATER, "0.0.0.0"}, + {"0.0.1", GREATER, "0.0.0.1"}, + {"0.0.1", GREATER, "0.0.0.10"}, + {"0.0.1", LESS, "0.0.1.0"}, + {"0.0.1", LESS, "0.0.01.0"}, + {"0.0.1", LESS, "1.2.3.4"}, + {"0.0.1", LESS, "1-2-3-4"}, + {"0.0.1", LESS, "20150101"}, + {"0.0.1", LESS, "20151212"}, + {"0.0.1", LESS, "20151212.0"}, + {"0.0.1", LESS, "20151212.1"}, + {"0.0.1", LESS, "2015.1.1"}, + {"0.0.1", LESS, "2015.02.02"}, + {"0.0.1", LESS, "2015.12.12"}, + {"0.0.1", LESS, "1.2.3a"}, + {"0.0.1", LESS, "1.2.3b"}, + {"0.0.1", GREATER, "R16B"}, + {"0.0.1", GREATER, "R16C"}, + {"0.0.1", LESS, "1.2.3.2016.1.1"}, + {"0.0.1", LESS, "0.5a1.dev"}, + {"0.0.1", LESS, "1.8.B59BrZX"}, + {"0.0.1", LESS, "0.07b4p1"}, + {"0.0.1", LESS, "3.99.5final.SP07"}, + {"0.0.1", LESS, "3.99.5final.SP08"}, + {"0.0.1", LESS, "0.4.tbb.20100203"}, + {"0.0.1", LESS, "0.5.20120830CVS.el7"}, + {"0.0.1", LESS, "1.el7"}, + {"0.0.1", LESS, "1.el6"}, + {"0.0.1", LESS, "10.el7"}, + {"0.0.1", LESS, "01.el7"}, + {"0.0.1", LESS, "0.17.20140318svn632.el7"}, + {"0.0.1", LESS, "0.17.20140318svn633.el7"}, + {"0.0.1", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.1", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.1", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.1", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.1", LESS, "22.svn457.el7"}, + {"0.0.1", LESS, "22.svn458.el7"}, + {"0.0.1", GREATER, "~"}, + {"0.0.1", GREATER, "~~"}, + {"0.0.1", GREATER, "~1"}, + {"0.0.1", GREATER, "~a"}, + {"0.0.1", LESS, "1~"}, + {"0.0.1", LESS, "2~"}, + {"0.0.2", GREATER, ""}, + {"0.0.2", GREATER, "0"}, + {"0.0.2", LESS, "1"}, + {"0.0.2", LESS, "2"}, + {"0.0.2", LESS, "10"}, + {"0.0.2", LESS, "100"}, + {"0.0.2", GREATER, "0.0"}, + {"0.0.2", LESS, "0.1"}, + {"0.0.2", LESS, "0.10"}, + {"0.0.2", LESS, "0.99"}, + {"0.0.2", LESS, "1.0"}, + {"0.0.2", LESS, "1.99"}, + {"0.0.2", LESS, "2.0"}, + {"0.0.2", GREATER, "0.0.0"}, + {"0.0.2", GREATER, "0.0.1"}, + {"0.0.2", EQUAL, "0.0.2"}, + {"0.0.2", LESS, "0.0.10"}, + {"0.0.2", LESS, "0.0.99"}, + {"0.0.2", LESS, "0.1.0"}, + {"0.0.2", LESS, "0.2.0"}, + {"0.0.2", LESS, "0.10.0"}, + {"0.0.2", LESS, "0.99.0"}, + {"0.0.2", LESS, "0.100.0"}, + {"0.0.2", GREATER, "0.0.0.0"}, + {"0.0.2", GREATER, "0.0.0.1"}, + {"0.0.2", GREATER, "0.0.0.10"}, + {"0.0.2", GREATER, "0.0.1.0"}, + {"0.0.2", GREATER, "0.0.01.0"}, + {"0.0.2", LESS, "1.2.3.4"}, + {"0.0.2", LESS, "1-2-3-4"}, + {"0.0.2", LESS, "20150101"}, + {"0.0.2", LESS, "20151212"}, + {"0.0.2", LESS, "20151212.0"}, + {"0.0.2", LESS, "20151212.1"}, + {"0.0.2", LESS, "2015.1.1"}, + {"0.0.2", LESS, "2015.02.02"}, + {"0.0.2", LESS, "2015.12.12"}, + {"0.0.2", LESS, "1.2.3a"}, + {"0.0.2", LESS, "1.2.3b"}, + {"0.0.2", GREATER, "R16B"}, + {"0.0.2", GREATER, "R16C"}, + {"0.0.2", LESS, "1.2.3.2016.1.1"}, + {"0.0.2", LESS, "0.5a1.dev"}, + {"0.0.2", LESS, "1.8.B59BrZX"}, + {"0.0.2", LESS, "0.07b4p1"}, + {"0.0.2", LESS, "3.99.5final.SP07"}, + {"0.0.2", LESS, "3.99.5final.SP08"}, + {"0.0.2", LESS, "0.4.tbb.20100203"}, + {"0.0.2", LESS, "0.5.20120830CVS.el7"}, + {"0.0.2", LESS, "1.el7"}, + {"0.0.2", LESS, "1.el6"}, + {"0.0.2", LESS, "10.el7"}, + {"0.0.2", LESS, "01.el7"}, + {"0.0.2", LESS, "0.17.20140318svn632.el7"}, + {"0.0.2", LESS, "0.17.20140318svn633.el7"}, + {"0.0.2", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.2", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.2", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.2", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.2", LESS, "22.svn457.el7"}, + {"0.0.2", LESS, "22.svn458.el7"}, + {"0.0.2", GREATER, "~"}, + {"0.0.2", GREATER, "~~"}, + {"0.0.2", GREATER, "~1"}, + {"0.0.2", GREATER, "~a"}, + {"0.0.2", LESS, "1~"}, + {"0.0.2", LESS, "2~"}, + {"0.0.10", GREATER, ""}, + {"0.0.10", GREATER, "0"}, + {"0.0.10", LESS, "1"}, + {"0.0.10", LESS, "2"}, + {"0.0.10", LESS, "10"}, + {"0.0.10", LESS, "100"}, + {"0.0.10", GREATER, "0.0"}, + {"0.0.10", LESS, "0.1"}, + {"0.0.10", LESS, "0.10"}, + {"0.0.10", LESS, "0.99"}, + {"0.0.10", LESS, "1.0"}, + {"0.0.10", LESS, "1.99"}, + {"0.0.10", LESS, "2.0"}, + {"0.0.10", GREATER, "0.0.0"}, + {"0.0.10", GREATER, "0.0.1"}, + {"0.0.10", GREATER, "0.0.2"}, + {"0.0.10", EQUAL, "0.0.10"}, + {"0.0.10", LESS, "0.0.99"}, + {"0.0.10", LESS, "0.1.0"}, + {"0.0.10", LESS, "0.2.0"}, + {"0.0.10", LESS, "0.10.0"}, + {"0.0.10", LESS, "0.99.0"}, + {"0.0.10", LESS, "0.100.0"}, + {"0.0.10", GREATER, "0.0.0.0"}, + {"0.0.10", GREATER, "0.0.0.1"}, + {"0.0.10", GREATER, "0.0.0.10"}, + {"0.0.10", GREATER, "0.0.1.0"}, + {"0.0.10", GREATER, "0.0.01.0"}, + {"0.0.10", LESS, "1.2.3.4"}, + {"0.0.10", LESS, "1-2-3-4"}, + {"0.0.10", LESS, "20150101"}, + {"0.0.10", LESS, "20151212"}, + {"0.0.10", LESS, "20151212.0"}, + {"0.0.10", LESS, "20151212.1"}, + {"0.0.10", LESS, "2015.1.1"}, + {"0.0.10", LESS, "2015.02.02"}, + {"0.0.10", LESS, "2015.12.12"}, + {"0.0.10", LESS, "1.2.3a"}, + {"0.0.10", LESS, "1.2.3b"}, + {"0.0.10", GREATER, "R16B"}, + {"0.0.10", GREATER, "R16C"}, + {"0.0.10", LESS, "1.2.3.2016.1.1"}, + {"0.0.10", LESS, "0.5a1.dev"}, + {"0.0.10", LESS, "1.8.B59BrZX"}, + {"0.0.10", LESS, "0.07b4p1"}, + {"0.0.10", LESS, "3.99.5final.SP07"}, + {"0.0.10", LESS, "3.99.5final.SP08"}, + {"0.0.10", LESS, "0.4.tbb.20100203"}, + {"0.0.10", LESS, "0.5.20120830CVS.el7"}, + {"0.0.10", LESS, "1.el7"}, + {"0.0.10", LESS, "1.el6"}, + {"0.0.10", LESS, "10.el7"}, + {"0.0.10", LESS, "01.el7"}, + {"0.0.10", LESS, "0.17.20140318svn632.el7"}, + {"0.0.10", LESS, "0.17.20140318svn633.el7"}, + {"0.0.10", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.10", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.10", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.10", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.10", LESS, "22.svn457.el7"}, + {"0.0.10", LESS, "22.svn458.el7"}, + {"0.0.10", GREATER, "~"}, + {"0.0.10", GREATER, "~~"}, + {"0.0.10", GREATER, "~1"}, + {"0.0.10", GREATER, "~a"}, + {"0.0.10", LESS, "1~"}, + {"0.0.10", LESS, "2~"}, + {"0.0.99", GREATER, ""}, + {"0.0.99", GREATER, "0"}, + {"0.0.99", LESS, "1"}, + {"0.0.99", LESS, "2"}, + {"0.0.99", LESS, "10"}, + {"0.0.99", LESS, "100"}, + {"0.0.99", GREATER, "0.0"}, + {"0.0.99", LESS, "0.1"}, + {"0.0.99", LESS, "0.10"}, + {"0.0.99", LESS, "0.99"}, + {"0.0.99", LESS, "1.0"}, + {"0.0.99", LESS, "1.99"}, + {"0.0.99", LESS, "2.0"}, + {"0.0.99", GREATER, "0.0.0"}, + {"0.0.99", GREATER, "0.0.1"}, + {"0.0.99", GREATER, "0.0.2"}, + {"0.0.99", GREATER, "0.0.10"}, + {"0.0.99", EQUAL, "0.0.99"}, + {"0.0.99", LESS, "0.1.0"}, + {"0.0.99", LESS, "0.2.0"}, + {"0.0.99", LESS, "0.10.0"}, + {"0.0.99", LESS, "0.99.0"}, + {"0.0.99", LESS, "0.100.0"}, + {"0.0.99", GREATER, "0.0.0.0"}, + {"0.0.99", GREATER, "0.0.0.1"}, + {"0.0.99", GREATER, "0.0.0.10"}, + {"0.0.99", GREATER, "0.0.1.0"}, + {"0.0.99", GREATER, "0.0.01.0"}, + {"0.0.99", LESS, "1.2.3.4"}, + {"0.0.99", LESS, "1-2-3-4"}, + {"0.0.99", LESS, "20150101"}, + {"0.0.99", LESS, "20151212"}, + {"0.0.99", LESS, "20151212.0"}, + {"0.0.99", LESS, "20151212.1"}, + {"0.0.99", LESS, "2015.1.1"}, + {"0.0.99", LESS, "2015.02.02"}, + {"0.0.99", LESS, "2015.12.12"}, + {"0.0.99", LESS, "1.2.3a"}, + {"0.0.99", LESS, "1.2.3b"}, + {"0.0.99", GREATER, "R16B"}, + {"0.0.99", GREATER, "R16C"}, + {"0.0.99", LESS, "1.2.3.2016.1.1"}, + {"0.0.99", LESS, "0.5a1.dev"}, + {"0.0.99", LESS, "1.8.B59BrZX"}, + {"0.0.99", LESS, "0.07b4p1"}, + {"0.0.99", LESS, "3.99.5final.SP07"}, + {"0.0.99", LESS, "3.99.5final.SP08"}, + {"0.0.99", LESS, "0.4.tbb.20100203"}, + {"0.0.99", LESS, "0.5.20120830CVS.el7"}, + {"0.0.99", LESS, "1.el7"}, + {"0.0.99", LESS, "1.el6"}, + {"0.0.99", LESS, "10.el7"}, + {"0.0.99", LESS, "01.el7"}, + {"0.0.99", LESS, "0.17.20140318svn632.el7"}, + {"0.0.99", LESS, "0.17.20140318svn633.el7"}, + {"0.0.99", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.99", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.99", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.99", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.99", LESS, "22.svn457.el7"}, + {"0.0.99", LESS, "22.svn458.el7"}, + {"0.0.99", GREATER, "~"}, + {"0.0.99", GREATER, "~~"}, + {"0.0.99", GREATER, "~1"}, + {"0.0.99", GREATER, "~a"}, + {"0.0.99", LESS, "1~"}, + {"0.0.99", LESS, "2~"}, + {"0.1.0", GREATER, ""}, + {"0.1.0", GREATER, "0"}, + {"0.1.0", LESS, "1"}, + {"0.1.0", LESS, "2"}, + {"0.1.0", LESS, "10"}, + {"0.1.0", LESS, "100"}, + {"0.1.0", GREATER, "0.0"}, + {"0.1.0", GREATER, "0.1"}, + {"0.1.0", LESS, "0.10"}, + {"0.1.0", LESS, "0.99"}, + {"0.1.0", LESS, "1.0"}, + {"0.1.0", LESS, "1.99"}, + {"0.1.0", LESS, "2.0"}, + {"0.1.0", GREATER, "0.0.0"}, + {"0.1.0", GREATER, "0.0.1"}, + {"0.1.0", GREATER, "0.0.2"}, + {"0.1.0", GREATER, "0.0.10"}, + {"0.1.0", GREATER, "0.0.99"}, + {"0.1.0", EQUAL, "0.1.0"}, + {"0.1.0", LESS, "0.2.0"}, + {"0.1.0", LESS, "0.10.0"}, + {"0.1.0", LESS, "0.99.0"}, + {"0.1.0", LESS, "0.100.0"}, + {"0.1.0", GREATER, "0.0.0.0"}, + {"0.1.0", GREATER, "0.0.0.1"}, + {"0.1.0", GREATER, "0.0.0.10"}, + {"0.1.0", GREATER, "0.0.1.0"}, + {"0.1.0", GREATER, "0.0.01.0"}, + {"0.1.0", LESS, "1.2.3.4"}, + {"0.1.0", LESS, "1-2-3-4"}, + {"0.1.0", LESS, "20150101"}, + {"0.1.0", LESS, "20151212"}, + {"0.1.0", LESS, "20151212.0"}, + {"0.1.0", LESS, "20151212.1"}, + {"0.1.0", LESS, "2015.1.1"}, + {"0.1.0", LESS, "2015.02.02"}, + {"0.1.0", LESS, "2015.12.12"}, + {"0.1.0", LESS, "1.2.3a"}, + {"0.1.0", LESS, "1.2.3b"}, + {"0.1.0", GREATER, "R16B"}, + {"0.1.0", GREATER, "R16C"}, + {"0.1.0", LESS, "1.2.3.2016.1.1"}, + {"0.1.0", LESS, "0.5a1.dev"}, + {"0.1.0", LESS, "1.8.B59BrZX"}, + {"0.1.0", LESS, "0.07b4p1"}, + {"0.1.0", LESS, "3.99.5final.SP07"}, + {"0.1.0", LESS, "3.99.5final.SP08"}, + {"0.1.0", LESS, "0.4.tbb.20100203"}, + {"0.1.0", LESS, "0.5.20120830CVS.el7"}, + {"0.1.0", LESS, "1.el7"}, + {"0.1.0", LESS, "1.el6"}, + {"0.1.0", LESS, "10.el7"}, + {"0.1.0", LESS, "01.el7"}, + {"0.1.0", LESS, "0.17.20140318svn632.el7"}, + {"0.1.0", LESS, "0.17.20140318svn633.el7"}, + {"0.1.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.1.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.1.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.1.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.1.0", LESS, "22.svn457.el7"}, + {"0.1.0", LESS, "22.svn458.el7"}, + {"0.1.0", GREATER, "~"}, + {"0.1.0", GREATER, "~~"}, + {"0.1.0", GREATER, "~1"}, + {"0.1.0", GREATER, "~a"}, + {"0.1.0", LESS, "1~"}, + {"0.1.0", LESS, "2~"}, + {"0.2.0", GREATER, ""}, + {"0.2.0", GREATER, "0"}, + {"0.2.0", LESS, "1"}, + {"0.2.0", LESS, "2"}, + {"0.2.0", LESS, "10"}, + {"0.2.0", LESS, "100"}, + {"0.2.0", GREATER, "0.0"}, + {"0.2.0", GREATER, "0.1"}, + {"0.2.0", LESS, "0.10"}, + {"0.2.0", LESS, "0.99"}, + {"0.2.0", LESS, "1.0"}, + {"0.2.0", LESS, "1.99"}, + {"0.2.0", LESS, "2.0"}, + {"0.2.0", GREATER, "0.0.0"}, + {"0.2.0", GREATER, "0.0.1"}, + {"0.2.0", GREATER, "0.0.2"}, + {"0.2.0", GREATER, "0.0.10"}, + {"0.2.0", GREATER, "0.0.99"}, + {"0.2.0", GREATER, "0.1.0"}, + {"0.2.0", EQUAL, "0.2.0"}, + {"0.2.0", LESS, "0.10.0"}, + {"0.2.0", LESS, "0.99.0"}, + {"0.2.0", LESS, "0.100.0"}, + {"0.2.0", GREATER, "0.0.0.0"}, + {"0.2.0", GREATER, "0.0.0.1"}, + {"0.2.0", GREATER, "0.0.0.10"}, + {"0.2.0", GREATER, "0.0.1.0"}, + {"0.2.0", GREATER, "0.0.01.0"}, + {"0.2.0", LESS, "1.2.3.4"}, + {"0.2.0", LESS, "1-2-3-4"}, + {"0.2.0", LESS, "20150101"}, + {"0.2.0", LESS, "20151212"}, + {"0.2.0", LESS, "20151212.0"}, + {"0.2.0", LESS, "20151212.1"}, + {"0.2.0", LESS, "2015.1.1"}, + {"0.2.0", LESS, "2015.02.02"}, + {"0.2.0", LESS, "2015.12.12"}, + {"0.2.0", LESS, "1.2.3a"}, + {"0.2.0", LESS, "1.2.3b"}, + {"0.2.0", GREATER, "R16B"}, + {"0.2.0", GREATER, "R16C"}, + {"0.2.0", LESS, "1.2.3.2016.1.1"}, + {"0.2.0", LESS, "0.5a1.dev"}, + {"0.2.0", LESS, "1.8.B59BrZX"}, + {"0.2.0", LESS, "0.07b4p1"}, + {"0.2.0", LESS, "3.99.5final.SP07"}, + {"0.2.0", LESS, "3.99.5final.SP08"}, + {"0.2.0", LESS, "0.4.tbb.20100203"}, + {"0.2.0", LESS, "0.5.20120830CVS.el7"}, + {"0.2.0", LESS, "1.el7"}, + {"0.2.0", LESS, "1.el6"}, + {"0.2.0", LESS, "10.el7"}, + {"0.2.0", LESS, "01.el7"}, + {"0.2.0", LESS, "0.17.20140318svn632.el7"}, + {"0.2.0", LESS, "0.17.20140318svn633.el7"}, + {"0.2.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.2.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.2.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.2.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.2.0", LESS, "22.svn457.el7"}, + {"0.2.0", LESS, "22.svn458.el7"}, + {"0.2.0", GREATER, "~"}, + {"0.2.0", GREATER, "~~"}, + {"0.2.0", GREATER, "~1"}, + {"0.2.0", GREATER, "~a"}, + {"0.2.0", LESS, "1~"}, + {"0.2.0", LESS, "2~"}, + {"0.10.0", GREATER, ""}, + {"0.10.0", GREATER, "0"}, + {"0.10.0", LESS, "1"}, + {"0.10.0", LESS, "2"}, + {"0.10.0", LESS, "10"}, + {"0.10.0", LESS, "100"}, + {"0.10.0", GREATER, "0.0"}, + {"0.10.0", GREATER, "0.1"}, + {"0.10.0", GREATER, "0.10"}, + {"0.10.0", LESS, "0.99"}, + {"0.10.0", LESS, "1.0"}, + {"0.10.0", LESS, "1.99"}, + {"0.10.0", LESS, "2.0"}, + {"0.10.0", GREATER, "0.0.0"}, + {"0.10.0", GREATER, "0.0.1"}, + {"0.10.0", GREATER, "0.0.2"}, + {"0.10.0", GREATER, "0.0.10"}, + {"0.10.0", GREATER, "0.0.99"}, + {"0.10.0", GREATER, "0.1.0"}, + {"0.10.0", GREATER, "0.2.0"}, + {"0.10.0", EQUAL, "0.10.0"}, + {"0.10.0", LESS, "0.99.0"}, + {"0.10.0", LESS, "0.100.0"}, + {"0.10.0", GREATER, "0.0.0.0"}, + {"0.10.0", GREATER, "0.0.0.1"}, + {"0.10.0", GREATER, "0.0.0.10"}, + {"0.10.0", GREATER, "0.0.1.0"}, + {"0.10.0", GREATER, "0.0.01.0"}, + {"0.10.0", LESS, "1.2.3.4"}, + {"0.10.0", LESS, "1-2-3-4"}, + {"0.10.0", LESS, "20150101"}, + {"0.10.0", LESS, "20151212"}, + {"0.10.0", LESS, "20151212.0"}, + {"0.10.0", LESS, "20151212.1"}, + {"0.10.0", LESS, "2015.1.1"}, + {"0.10.0", LESS, "2015.02.02"}, + {"0.10.0", LESS, "2015.12.12"}, + {"0.10.0", LESS, "1.2.3a"}, + {"0.10.0", LESS, "1.2.3b"}, + {"0.10.0", GREATER, "R16B"}, + {"0.10.0", GREATER, "R16C"}, + {"0.10.0", LESS, "1.2.3.2016.1.1"}, + {"0.10.0", GREATER, "0.5a1.dev"}, + {"0.10.0", LESS, "1.8.B59BrZX"}, + {"0.10.0", GREATER, "0.07b4p1"}, + {"0.10.0", LESS, "3.99.5final.SP07"}, + {"0.10.0", LESS, "3.99.5final.SP08"}, + {"0.10.0", GREATER, "0.4.tbb.20100203"}, + {"0.10.0", GREATER, "0.5.20120830CVS.el7"}, + {"0.10.0", LESS, "1.el7"}, + {"0.10.0", LESS, "1.el6"}, + {"0.10.0", LESS, "10.el7"}, + {"0.10.0", LESS, "01.el7"}, + {"0.10.0", LESS, "0.17.20140318svn632.el7"}, + {"0.10.0", LESS, "0.17.20140318svn633.el7"}, + {"0.10.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.10.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.10.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.10.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.10.0", LESS, "22.svn457.el7"}, + {"0.10.0", LESS, "22.svn458.el7"}, + {"0.10.0", GREATER, "~"}, + {"0.10.0", GREATER, "~~"}, + {"0.10.0", GREATER, "~1"}, + {"0.10.0", GREATER, "~a"}, + {"0.10.0", LESS, "1~"}, + {"0.10.0", LESS, "2~"}, + {"0.99.0", GREATER, ""}, + {"0.99.0", GREATER, "0"}, + {"0.99.0", LESS, "1"}, + {"0.99.0", LESS, "2"}, + {"0.99.0", LESS, "10"}, + {"0.99.0", LESS, "100"}, + {"0.99.0", GREATER, "0.0"}, + {"0.99.0", GREATER, "0.1"}, + {"0.99.0", GREATER, "0.10"}, + {"0.99.0", GREATER, "0.99"}, + {"0.99.0", LESS, "1.0"}, + {"0.99.0", LESS, "1.99"}, + {"0.99.0", LESS, "2.0"}, + {"0.99.0", GREATER, "0.0.0"}, + {"0.99.0", GREATER, "0.0.1"}, + {"0.99.0", GREATER, "0.0.2"}, + {"0.99.0", GREATER, "0.0.10"}, + {"0.99.0", GREATER, "0.0.99"}, + {"0.99.0", GREATER, "0.1.0"}, + {"0.99.0", GREATER, "0.2.0"}, + {"0.99.0", GREATER, "0.10.0"}, + {"0.99.0", EQUAL, "0.99.0"}, + {"0.99.0", LESS, "0.100.0"}, + {"0.99.0", GREATER, "0.0.0.0"}, + {"0.99.0", GREATER, "0.0.0.1"}, + {"0.99.0", GREATER, "0.0.0.10"}, + {"0.99.0", GREATER, "0.0.1.0"}, + {"0.99.0", GREATER, "0.0.01.0"}, + {"0.99.0", LESS, "1.2.3.4"}, + {"0.99.0", LESS, "1-2-3-4"}, + {"0.99.0", LESS, "20150101"}, + {"0.99.0", LESS, "20151212"}, + {"0.99.0", LESS, "20151212.0"}, + {"0.99.0", LESS, "20151212.1"}, + {"0.99.0", LESS, "2015.1.1"}, + {"0.99.0", LESS, "2015.02.02"}, + {"0.99.0", LESS, "2015.12.12"}, + {"0.99.0", LESS, "1.2.3a"}, + {"0.99.0", LESS, "1.2.3b"}, + {"0.99.0", GREATER, "R16B"}, + {"0.99.0", GREATER, "R16C"}, + {"0.99.0", LESS, "1.2.3.2016.1.1"}, + {"0.99.0", GREATER, "0.5a1.dev"}, + {"0.99.0", LESS, "1.8.B59BrZX"}, + {"0.99.0", GREATER, "0.07b4p1"}, + {"0.99.0", LESS, "3.99.5final.SP07"}, + {"0.99.0", LESS, "3.99.5final.SP08"}, + {"0.99.0", GREATER, "0.4.tbb.20100203"}, + {"0.99.0", GREATER, "0.5.20120830CVS.el7"}, + {"0.99.0", LESS, "1.el7"}, + {"0.99.0", LESS, "1.el6"}, + {"0.99.0", LESS, "10.el7"}, + {"0.99.0", LESS, "01.el7"}, + {"0.99.0", GREATER, "0.17.20140318svn632.el7"}, + {"0.99.0", GREATER, "0.17.20140318svn633.el7"}, + {"0.99.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.99.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.99.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.99.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.99.0", LESS, "22.svn457.el7"}, + {"0.99.0", LESS, "22.svn458.el7"}, + {"0.99.0", GREATER, "~"}, + {"0.99.0", GREATER, "~~"}, + {"0.99.0", GREATER, "~1"}, + {"0.99.0", GREATER, "~a"}, + {"0.99.0", LESS, "1~"}, + {"0.99.0", LESS, "2~"}, + {"0.100.0", GREATER, ""}, + {"0.100.0", GREATER, "0"}, + {"0.100.0", LESS, "1"}, + {"0.100.0", LESS, "2"}, + {"0.100.0", LESS, "10"}, + {"0.100.0", LESS, "100"}, + {"0.100.0", GREATER, "0.0"}, + {"0.100.0", GREATER, "0.1"}, + {"0.100.0", GREATER, "0.10"}, + {"0.100.0", GREATER, "0.99"}, + {"0.100.0", LESS, "1.0"}, + {"0.100.0", LESS, "1.99"}, + {"0.100.0", LESS, "2.0"}, + {"0.100.0", GREATER, "0.0.0"}, + {"0.100.0", GREATER, "0.0.1"}, + {"0.100.0", GREATER, "0.0.2"}, + {"0.100.0", GREATER, "0.0.10"}, + {"0.100.0", GREATER, "0.0.99"}, + {"0.100.0", GREATER, "0.1.0"}, + {"0.100.0", GREATER, "0.2.0"}, + {"0.100.0", GREATER, "0.10.0"}, + {"0.100.0", GREATER, "0.99.0"}, + {"0.100.0", EQUAL, "0.100.0"}, + {"0.100.0", GREATER, "0.0.0.0"}, + {"0.100.0", GREATER, "0.0.0.1"}, + {"0.100.0", GREATER, "0.0.0.10"}, + {"0.100.0", GREATER, "0.0.1.0"}, + {"0.100.0", GREATER, "0.0.01.0"}, + {"0.100.0", LESS, "1.2.3.4"}, + {"0.100.0", LESS, "1-2-3-4"}, + {"0.100.0", LESS, "20150101"}, + {"0.100.0", LESS, "20151212"}, + {"0.100.0", LESS, "20151212.0"}, + {"0.100.0", LESS, "20151212.1"}, + {"0.100.0", LESS, "2015.1.1"}, + {"0.100.0", LESS, "2015.02.02"}, + {"0.100.0", LESS, "2015.12.12"}, + {"0.100.0", LESS, "1.2.3a"}, + {"0.100.0", LESS, "1.2.3b"}, + {"0.100.0", GREATER, "R16B"}, + {"0.100.0", GREATER, "R16C"}, + {"0.100.0", LESS, "1.2.3.2016.1.1"}, + {"0.100.0", GREATER, "0.5a1.dev"}, + {"0.100.0", LESS, "1.8.B59BrZX"}, + {"0.100.0", GREATER, "0.07b4p1"}, + {"0.100.0", LESS, "3.99.5final.SP07"}, + {"0.100.0", LESS, "3.99.5final.SP08"}, + {"0.100.0", GREATER, "0.4.tbb.20100203"}, + {"0.100.0", GREATER, "0.5.20120830CVS.el7"}, + {"0.100.0", LESS, "1.el7"}, + {"0.100.0", LESS, "1.el6"}, + {"0.100.0", LESS, "10.el7"}, + {"0.100.0", LESS, "01.el7"}, + {"0.100.0", GREATER, "0.17.20140318svn632.el7"}, + {"0.100.0", GREATER, "0.17.20140318svn633.el7"}, + {"0.100.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.100.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.100.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.100.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.100.0", LESS, "22.svn457.el7"}, + {"0.100.0", LESS, "22.svn458.el7"}, + {"0.100.0", GREATER, "~"}, + {"0.100.0", GREATER, "~~"}, + {"0.100.0", GREATER, "~1"}, + {"0.100.0", GREATER, "~a"}, + {"0.100.0", LESS, "1~"}, + {"0.100.0", LESS, "2~"}, + {"0.0.0.0", GREATER, ""}, + {"0.0.0.0", GREATER, "0"}, + {"0.0.0.0", LESS, "1"}, + {"0.0.0.0", LESS, "2"}, + {"0.0.0.0", LESS, "10"}, + {"0.0.0.0", LESS, "100"}, + {"0.0.0.0", GREATER, "0.0"}, + {"0.0.0.0", LESS, "0.1"}, + {"0.0.0.0", LESS, "0.10"}, + {"0.0.0.0", LESS, "0.99"}, + {"0.0.0.0", LESS, "1.0"}, + {"0.0.0.0", LESS, "1.99"}, + {"0.0.0.0", LESS, "2.0"}, + {"0.0.0.0", GREATER, "0.0.0"}, + {"0.0.0.0", LESS, "0.0.1"}, + {"0.0.0.0", LESS, "0.0.2"}, + {"0.0.0.0", LESS, "0.0.10"}, + {"0.0.0.0", LESS, "0.0.99"}, + {"0.0.0.0", LESS, "0.1.0"}, + {"0.0.0.0", LESS, "0.2.0"}, + {"0.0.0.0", LESS, "0.10.0"}, + {"0.0.0.0", LESS, "0.99.0"}, + {"0.0.0.0", LESS, "0.100.0"}, + {"0.0.0.0", EQUAL, "0.0.0.0"}, + {"0.0.0.0", LESS, "0.0.0.1"}, + {"0.0.0.0", LESS, "0.0.0.10"}, + {"0.0.0.0", LESS, "0.0.1.0"}, + {"0.0.0.0", LESS, "0.0.01.0"}, + {"0.0.0.0", LESS, "1.2.3.4"}, + {"0.0.0.0", LESS, "1-2-3-4"}, + {"0.0.0.0", LESS, "20150101"}, + {"0.0.0.0", LESS, "20151212"}, + {"0.0.0.0", LESS, "20151212.0"}, + {"0.0.0.0", LESS, "20151212.1"}, + {"0.0.0.0", LESS, "2015.1.1"}, + {"0.0.0.0", LESS, "2015.02.02"}, + {"0.0.0.0", LESS, "2015.12.12"}, + {"0.0.0.0", LESS, "1.2.3a"}, + {"0.0.0.0", LESS, "1.2.3b"}, + {"0.0.0.0", GREATER, "R16B"}, + {"0.0.0.0", GREATER, "R16C"}, + {"0.0.0.0", LESS, "1.2.3.2016.1.1"}, + {"0.0.0.0", LESS, "0.5a1.dev"}, + {"0.0.0.0", LESS, "1.8.B59BrZX"}, + {"0.0.0.0", LESS, "0.07b4p1"}, + {"0.0.0.0", LESS, "3.99.5final.SP07"}, + {"0.0.0.0", LESS, "3.99.5final.SP08"}, + {"0.0.0.0", LESS, "0.4.tbb.20100203"}, + {"0.0.0.0", LESS, "0.5.20120830CVS.el7"}, + {"0.0.0.0", LESS, "1.el7"}, + {"0.0.0.0", LESS, "1.el6"}, + {"0.0.0.0", LESS, "10.el7"}, + {"0.0.0.0", LESS, "01.el7"}, + {"0.0.0.0", LESS, "0.17.20140318svn632.el7"}, + {"0.0.0.0", LESS, "0.17.20140318svn633.el7"}, + {"0.0.0.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.0.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.0.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.0.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.0.0", LESS, "22.svn457.el7"}, + {"0.0.0.0", LESS, "22.svn458.el7"}, + {"0.0.0.0", GREATER, "~"}, + {"0.0.0.0", GREATER, "~~"}, + {"0.0.0.0", GREATER, "~1"}, + {"0.0.0.0", GREATER, "~a"}, + {"0.0.0.0", LESS, "1~"}, + {"0.0.0.0", LESS, "2~"}, + {"0.0.0.1", GREATER, ""}, + {"0.0.0.1", GREATER, "0"}, + {"0.0.0.1", LESS, "1"}, + {"0.0.0.1", LESS, "2"}, + {"0.0.0.1", LESS, "10"}, + {"0.0.0.1", LESS, "100"}, + {"0.0.0.1", GREATER, "0.0"}, + {"0.0.0.1", LESS, "0.1"}, + {"0.0.0.1", LESS, "0.10"}, + {"0.0.0.1", LESS, "0.99"}, + {"0.0.0.1", LESS, "1.0"}, + {"0.0.0.1", LESS, "1.99"}, + {"0.0.0.1", LESS, "2.0"}, + {"0.0.0.1", GREATER, "0.0.0"}, + {"0.0.0.1", LESS, "0.0.1"}, + {"0.0.0.1", LESS, "0.0.2"}, + {"0.0.0.1", LESS, "0.0.10"}, + {"0.0.0.1", LESS, "0.0.99"}, + {"0.0.0.1", LESS, "0.1.0"}, + {"0.0.0.1", LESS, "0.2.0"}, + {"0.0.0.1", LESS, "0.10.0"}, + {"0.0.0.1", LESS, "0.99.0"}, + {"0.0.0.1", LESS, "0.100.0"}, + {"0.0.0.1", GREATER, "0.0.0.0"}, + {"0.0.0.1", EQUAL, "0.0.0.1"}, + {"0.0.0.1", LESS, "0.0.0.10"}, + {"0.0.0.1", LESS, "0.0.1.0"}, + {"0.0.0.1", LESS, "0.0.01.0"}, + {"0.0.0.1", LESS, "1.2.3.4"}, + {"0.0.0.1", LESS, "1-2-3-4"}, + {"0.0.0.1", LESS, "20150101"}, + {"0.0.0.1", LESS, "20151212"}, + {"0.0.0.1", LESS, "20151212.0"}, + {"0.0.0.1", LESS, "20151212.1"}, + {"0.0.0.1", LESS, "2015.1.1"}, + {"0.0.0.1", LESS, "2015.02.02"}, + {"0.0.0.1", LESS, "2015.12.12"}, + {"0.0.0.1", LESS, "1.2.3a"}, + {"0.0.0.1", LESS, "1.2.3b"}, + {"0.0.0.1", GREATER, "R16B"}, + {"0.0.0.1", GREATER, "R16C"}, + {"0.0.0.1", LESS, "1.2.3.2016.1.1"}, + {"0.0.0.1", LESS, "0.5a1.dev"}, + {"0.0.0.1", LESS, "1.8.B59BrZX"}, + {"0.0.0.1", LESS, "0.07b4p1"}, + {"0.0.0.1", LESS, "3.99.5final.SP07"}, + {"0.0.0.1", LESS, "3.99.5final.SP08"}, + {"0.0.0.1", LESS, "0.4.tbb.20100203"}, + {"0.0.0.1", LESS, "0.5.20120830CVS.el7"}, + {"0.0.0.1", LESS, "1.el7"}, + {"0.0.0.1", LESS, "1.el6"}, + {"0.0.0.1", LESS, "10.el7"}, + {"0.0.0.1", LESS, "01.el7"}, + {"0.0.0.1", LESS, "0.17.20140318svn632.el7"}, + {"0.0.0.1", LESS, "0.17.20140318svn633.el7"}, + {"0.0.0.1", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.0.1", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.0.1", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.0.1", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.0.1", LESS, "22.svn457.el7"}, + {"0.0.0.1", LESS, "22.svn458.el7"}, + {"0.0.0.1", GREATER, "~"}, + {"0.0.0.1", GREATER, "~~"}, + {"0.0.0.1", GREATER, "~1"}, + {"0.0.0.1", GREATER, "~a"}, + {"0.0.0.1", LESS, "1~"}, + {"0.0.0.1", LESS, "2~"}, + {"0.0.0.10", GREATER, ""}, + {"0.0.0.10", GREATER, "0"}, + {"0.0.0.10", LESS, "1"}, + {"0.0.0.10", LESS, "2"}, + {"0.0.0.10", LESS, "10"}, + {"0.0.0.10", LESS, "100"}, + {"0.0.0.10", GREATER, "0.0"}, + {"0.0.0.10", LESS, "0.1"}, + {"0.0.0.10", LESS, "0.10"}, + {"0.0.0.10", LESS, "0.99"}, + {"0.0.0.10", LESS, "1.0"}, + {"0.0.0.10", LESS, "1.99"}, + {"0.0.0.10", LESS, "2.0"}, + {"0.0.0.10", GREATER, "0.0.0"}, + {"0.0.0.10", LESS, "0.0.1"}, + {"0.0.0.10", LESS, "0.0.2"}, + {"0.0.0.10", LESS, "0.0.10"}, + {"0.0.0.10", LESS, "0.0.99"}, + {"0.0.0.10", LESS, "0.1.0"}, + {"0.0.0.10", LESS, "0.2.0"}, + {"0.0.0.10", LESS, "0.10.0"}, + {"0.0.0.10", LESS, "0.99.0"}, + {"0.0.0.10", LESS, "0.100.0"}, + {"0.0.0.10", GREATER, "0.0.0.0"}, + {"0.0.0.10", GREATER, "0.0.0.1"}, + {"0.0.0.10", EQUAL, "0.0.0.10"}, + {"0.0.0.10", LESS, "0.0.1.0"}, + {"0.0.0.10", LESS, "0.0.01.0"}, + {"0.0.0.10", LESS, "1.2.3.4"}, + {"0.0.0.10", LESS, "1-2-3-4"}, + {"0.0.0.10", LESS, "20150101"}, + {"0.0.0.10", LESS, "20151212"}, + {"0.0.0.10", LESS, "20151212.0"}, + {"0.0.0.10", LESS, "20151212.1"}, + {"0.0.0.10", LESS, "2015.1.1"}, + {"0.0.0.10", LESS, "2015.02.02"}, + {"0.0.0.10", LESS, "2015.12.12"}, + {"0.0.0.10", LESS, "1.2.3a"}, + {"0.0.0.10", LESS, "1.2.3b"}, + {"0.0.0.10", GREATER, "R16B"}, + {"0.0.0.10", GREATER, "R16C"}, + {"0.0.0.10", LESS, "1.2.3.2016.1.1"}, + {"0.0.0.10", LESS, "0.5a1.dev"}, + {"0.0.0.10", LESS, "1.8.B59BrZX"}, + {"0.0.0.10", LESS, "0.07b4p1"}, + {"0.0.0.10", LESS, "3.99.5final.SP07"}, + {"0.0.0.10", LESS, "3.99.5final.SP08"}, + {"0.0.0.10", LESS, "0.4.tbb.20100203"}, + {"0.0.0.10", LESS, "0.5.20120830CVS.el7"}, + {"0.0.0.10", LESS, "1.el7"}, + {"0.0.0.10", LESS, "1.el6"}, + {"0.0.0.10", LESS, "10.el7"}, + {"0.0.0.10", LESS, "01.el7"}, + {"0.0.0.10", LESS, "0.17.20140318svn632.el7"}, + {"0.0.0.10", LESS, "0.17.20140318svn633.el7"}, + {"0.0.0.10", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.0.10", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.0.10", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.0.10", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.0.10", LESS, "22.svn457.el7"}, + {"0.0.0.10", LESS, "22.svn458.el7"}, + {"0.0.0.10", GREATER, "~"}, + {"0.0.0.10", GREATER, "~~"}, + {"0.0.0.10", GREATER, "~1"}, + {"0.0.0.10", GREATER, "~a"}, + {"0.0.0.10", LESS, "1~"}, + {"0.0.0.10", LESS, "2~"}, + {"0.0.1.0", GREATER, ""}, + {"0.0.1.0", GREATER, "0"}, + {"0.0.1.0", LESS, "1"}, + {"0.0.1.0", LESS, "2"}, + {"0.0.1.0", LESS, "10"}, + {"0.0.1.0", LESS, "100"}, + {"0.0.1.0", GREATER, "0.0"}, + {"0.0.1.0", LESS, "0.1"}, + {"0.0.1.0", LESS, "0.10"}, + {"0.0.1.0", LESS, "0.99"}, + {"0.0.1.0", LESS, "1.0"}, + {"0.0.1.0", LESS, "1.99"}, + {"0.0.1.0", LESS, "2.0"}, + {"0.0.1.0", GREATER, "0.0.0"}, + {"0.0.1.0", GREATER, "0.0.1"}, + {"0.0.1.0", LESS, "0.0.2"}, + {"0.0.1.0", LESS, "0.0.10"}, + {"0.0.1.0", LESS, "0.0.99"}, + {"0.0.1.0", LESS, "0.1.0"}, + {"0.0.1.0", LESS, "0.2.0"}, + {"0.0.1.0", LESS, "0.10.0"}, + {"0.0.1.0", LESS, "0.99.0"}, + {"0.0.1.0", LESS, "0.100.0"}, + {"0.0.1.0", GREATER, "0.0.0.0"}, + {"0.0.1.0", GREATER, "0.0.0.1"}, + {"0.0.1.0", GREATER, "0.0.0.10"}, + {"0.0.1.0", EQUAL, "0.0.1.0"}, + {"0.0.1.0", EQUAL, "0.0.01.0"}, + {"0.0.1.0", LESS, "1.2.3.4"}, + {"0.0.1.0", LESS, "1-2-3-4"}, + {"0.0.1.0", LESS, "20150101"}, + {"0.0.1.0", LESS, "20151212"}, + {"0.0.1.0", LESS, "20151212.0"}, + {"0.0.1.0", LESS, "20151212.1"}, + {"0.0.1.0", LESS, "2015.1.1"}, + {"0.0.1.0", LESS, "2015.02.02"}, + {"0.0.1.0", LESS, "2015.12.12"}, + {"0.0.1.0", LESS, "1.2.3a"}, + {"0.0.1.0", LESS, "1.2.3b"}, + {"0.0.1.0", GREATER, "R16B"}, + {"0.0.1.0", GREATER, "R16C"}, + {"0.0.1.0", LESS, "1.2.3.2016.1.1"}, + {"0.0.1.0", LESS, "0.5a1.dev"}, + {"0.0.1.0", LESS, "1.8.B59BrZX"}, + {"0.0.1.0", LESS, "0.07b4p1"}, + {"0.0.1.0", LESS, "3.99.5final.SP07"}, + {"0.0.1.0", LESS, "3.99.5final.SP08"}, + {"0.0.1.0", LESS, "0.4.tbb.20100203"}, + {"0.0.1.0", LESS, "0.5.20120830CVS.el7"}, + {"0.0.1.0", LESS, "1.el7"}, + {"0.0.1.0", LESS, "1.el6"}, + {"0.0.1.0", LESS, "10.el7"}, + {"0.0.1.0", LESS, "01.el7"}, + {"0.0.1.0", LESS, "0.17.20140318svn632.el7"}, + {"0.0.1.0", LESS, "0.17.20140318svn633.el7"}, + {"0.0.1.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.1.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.1.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.1.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.1.0", LESS, "22.svn457.el7"}, + {"0.0.1.0", LESS, "22.svn458.el7"}, + {"0.0.1.0", GREATER, "~"}, + {"0.0.1.0", GREATER, "~~"}, + {"0.0.1.0", GREATER, "~1"}, + {"0.0.1.0", GREATER, "~a"}, + {"0.0.1.0", LESS, "1~"}, + {"0.0.1.0", LESS, "2~"}, + {"0.0.01.0", GREATER, ""}, + {"0.0.01.0", GREATER, "0"}, + {"0.0.01.0", LESS, "1"}, + {"0.0.01.0", LESS, "2"}, + {"0.0.01.0", LESS, "10"}, + {"0.0.01.0", LESS, "100"}, + {"0.0.01.0", GREATER, "0.0"}, + {"0.0.01.0", LESS, "0.1"}, + {"0.0.01.0", LESS, "0.10"}, + {"0.0.01.0", LESS, "0.99"}, + {"0.0.01.0", LESS, "1.0"}, + {"0.0.01.0", LESS, "1.99"}, + {"0.0.01.0", LESS, "2.0"}, + {"0.0.01.0", GREATER, "0.0.0"}, + {"0.0.01.0", GREATER, "0.0.1"}, + {"0.0.01.0", LESS, "0.0.2"}, + {"0.0.01.0", LESS, "0.0.10"}, + {"0.0.01.0", LESS, "0.0.99"}, + {"0.0.01.0", LESS, "0.1.0"}, + {"0.0.01.0", LESS, "0.2.0"}, + {"0.0.01.0", LESS, "0.10.0"}, + {"0.0.01.0", LESS, "0.99.0"}, + {"0.0.01.0", LESS, "0.100.0"}, + {"0.0.01.0", GREATER, "0.0.0.0"}, + {"0.0.01.0", GREATER, "0.0.0.1"}, + {"0.0.01.0", GREATER, "0.0.0.10"}, + {"0.0.01.0", EQUAL, "0.0.1.0"}, + {"0.0.01.0", EQUAL, "0.0.01.0"}, + {"0.0.01.0", LESS, "1.2.3.4"}, + {"0.0.01.0", LESS, "1-2-3-4"}, + {"0.0.01.0", LESS, "20150101"}, + {"0.0.01.0", LESS, "20151212"}, + {"0.0.01.0", LESS, "20151212.0"}, + {"0.0.01.0", LESS, "20151212.1"}, + {"0.0.01.0", LESS, "2015.1.1"}, + {"0.0.01.0", LESS, "2015.02.02"}, + {"0.0.01.0", LESS, "2015.12.12"}, + {"0.0.01.0", LESS, "1.2.3a"}, + {"0.0.01.0", LESS, "1.2.3b"}, + {"0.0.01.0", GREATER, "R16B"}, + {"0.0.01.0", GREATER, "R16C"}, + {"0.0.01.0", LESS, "1.2.3.2016.1.1"}, + {"0.0.01.0", LESS, "0.5a1.dev"}, + {"0.0.01.0", LESS, "1.8.B59BrZX"}, + {"0.0.01.0", LESS, "0.07b4p1"}, + {"0.0.01.0", LESS, "3.99.5final.SP07"}, + {"0.0.01.0", LESS, "3.99.5final.SP08"}, + {"0.0.01.0", LESS, "0.4.tbb.20100203"}, + {"0.0.01.0", LESS, "0.5.20120830CVS.el7"}, + {"0.0.01.0", LESS, "1.el7"}, + {"0.0.01.0", LESS, "1.el6"}, + {"0.0.01.0", LESS, "10.el7"}, + {"0.0.01.0", LESS, "01.el7"}, + {"0.0.01.0", LESS, "0.17.20140318svn632.el7"}, + {"0.0.01.0", LESS, "0.17.20140318svn633.el7"}, + {"0.0.01.0", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.0.01.0", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.0.01.0", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.0.01.0", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.0.01.0", LESS, "22.svn457.el7"}, + {"0.0.01.0", LESS, "22.svn458.el7"}, + {"0.0.01.0", GREATER, "~"}, + {"0.0.01.0", GREATER, "~~"}, + {"0.0.01.0", GREATER, "~1"}, + {"0.0.01.0", GREATER, "~a"}, + {"0.0.01.0", LESS, "1~"}, + {"0.0.01.0", LESS, "2~"}, + {"1.2.3.4", GREATER, ""}, + {"1.2.3.4", GREATER, "0"}, + {"1.2.3.4", GREATER, "1"}, + {"1.2.3.4", LESS, "2"}, + {"1.2.3.4", LESS, "10"}, + {"1.2.3.4", LESS, "100"}, + {"1.2.3.4", GREATER, "0.0"}, + {"1.2.3.4", GREATER, "0.1"}, + {"1.2.3.4", GREATER, "0.10"}, + {"1.2.3.4", GREATER, "0.99"}, + {"1.2.3.4", GREATER, "1.0"}, + {"1.2.3.4", LESS, "1.99"}, + {"1.2.3.4", LESS, "2.0"}, + {"1.2.3.4", GREATER, "0.0.0"}, + {"1.2.3.4", GREATER, "0.0.1"}, + {"1.2.3.4", GREATER, "0.0.2"}, + {"1.2.3.4", GREATER, "0.0.10"}, + {"1.2.3.4", GREATER, "0.0.99"}, + {"1.2.3.4", GREATER, "0.1.0"}, + {"1.2.3.4", GREATER, "0.2.0"}, + {"1.2.3.4", GREATER, "0.10.0"}, + {"1.2.3.4", GREATER, "0.99.0"}, + {"1.2.3.4", GREATER, "0.100.0"}, + {"1.2.3.4", GREATER, "0.0.0.0"}, + {"1.2.3.4", GREATER, "0.0.0.1"}, + {"1.2.3.4", GREATER, "0.0.0.10"}, + {"1.2.3.4", GREATER, "0.0.1.0"}, + {"1.2.3.4", GREATER, "0.0.01.0"}, + {"1.2.3.4", EQUAL, "1.2.3.4"}, + {"1.2.3.4", GREATER, "1-2-3-4"}, + {"1.2.3.4", LESS, "20150101"}, + {"1.2.3.4", LESS, "20151212"}, + {"1.2.3.4", LESS, "20151212.0"}, + {"1.2.3.4", LESS, "20151212.1"}, + {"1.2.3.4", LESS, "2015.1.1"}, + {"1.2.3.4", LESS, "2015.02.02"}, + {"1.2.3.4", LESS, "2015.12.12"}, + {"1.2.3.4", GREATER, "1.2.3a"}, + {"1.2.3.4", GREATER, "1.2.3b"}, + {"1.2.3.4", GREATER, "R16B"}, + {"1.2.3.4", GREATER, "R16C"}, + {"1.2.3.4", LESS, "1.2.3.2016.1.1"}, + {"1.2.3.4", GREATER, "0.5a1.dev"}, + {"1.2.3.4", LESS, "1.8.B59BrZX"}, + {"1.2.3.4", GREATER, "0.07b4p1"}, + {"1.2.3.4", LESS, "3.99.5final.SP07"}, + {"1.2.3.4", LESS, "3.99.5final.SP08"}, + {"1.2.3.4", GREATER, "0.4.tbb.20100203"}, + {"1.2.3.4", GREATER, "0.5.20120830CVS.el7"}, + {"1.2.3.4", GREATER, "1.el7"}, + {"1.2.3.4", GREATER, "1.el6"}, + {"1.2.3.4", LESS, "10.el7"}, + {"1.2.3.4", GREATER, "01.el7"}, + {"1.2.3.4", GREATER, "0.17.20140318svn632.el7"}, + {"1.2.3.4", GREATER, "0.17.20140318svn633.el7"}, + {"1.2.3.4", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.2.3.4", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.2.3.4", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.2.3.4", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.2.3.4", LESS, "22.svn457.el7"}, + {"1.2.3.4", LESS, "22.svn458.el7"}, + {"1.2.3.4", GREATER, "~"}, + {"1.2.3.4", GREATER, "~~"}, + {"1.2.3.4", GREATER, "~1"}, + {"1.2.3.4", GREATER, "~a"}, + {"1.2.3.4", GREATER, "1~"}, + {"1.2.3.4", LESS, "2~"}, + {"1-2-3-4", GREATER, ""}, + {"1-2-3-4", GREATER, "0"}, + {"1-2-3-4", GREATER, "1"}, + {"1-2-3-4", LESS, "2"}, + {"1-2-3-4", LESS, "10"}, + {"1-2-3-4", LESS, "100"}, + {"1-2-3-4", GREATER, "0.0"}, + {"1-2-3-4", GREATER, "0.1"}, + {"1-2-3-4", GREATER, "0.10"}, + {"1-2-3-4", GREATER, "0.99"}, + {"1-2-3-4", LESS, "1.0"}, + {"1-2-3-4", LESS, "1.99"}, + {"1-2-3-4", LESS, "2.0"}, + {"1-2-3-4", GREATER, "0.0.0"}, + {"1-2-3-4", GREATER, "0.0.1"}, + {"1-2-3-4", GREATER, "0.0.2"}, + {"1-2-3-4", GREATER, "0.0.10"}, + {"1-2-3-4", GREATER, "0.0.99"}, + {"1-2-3-4", GREATER, "0.1.0"}, + {"1-2-3-4", GREATER, "0.2.0"}, + {"1-2-3-4", GREATER, "0.10.0"}, + {"1-2-3-4", GREATER, "0.99.0"}, + {"1-2-3-4", GREATER, "0.100.0"}, + {"1-2-3-4", GREATER, "0.0.0.0"}, + {"1-2-3-4", GREATER, "0.0.0.1"}, + {"1-2-3-4", GREATER, "0.0.0.10"}, + {"1-2-3-4", GREATER, "0.0.1.0"}, + {"1-2-3-4", GREATER, "0.0.01.0"}, + {"1-2-3-4", LESS, "1.2.3.4"}, + {"1-2-3-4", EQUAL, "1-2-3-4"}, + {"1-2-3-4", LESS, "20150101"}, + {"1-2-3-4", LESS, "20151212"}, + {"1-2-3-4", LESS, "20151212.0"}, + {"1-2-3-4", LESS, "20151212.1"}, + {"1-2-3-4", LESS, "2015.1.1"}, + {"1-2-3-4", LESS, "2015.02.02"}, + {"1-2-3-4", LESS, "2015.12.12"}, + {"1-2-3-4", LESS, "1.2.3a"}, + {"1-2-3-4", LESS, "1.2.3b"}, + {"1-2-3-4", GREATER, "R16B"}, + {"1-2-3-4", GREATER, "R16C"}, + {"1-2-3-4", LESS, "1.2.3.2016.1.1"}, + {"1-2-3-4", GREATER, "0.5a1.dev"}, + {"1-2-3-4", LESS, "1.8.B59BrZX"}, + {"1-2-3-4", GREATER, "0.07b4p1"}, + {"1-2-3-4", LESS, "3.99.5final.SP07"}, + {"1-2-3-4", LESS, "3.99.5final.SP08"}, + {"1-2-3-4", GREATER, "0.4.tbb.20100203"}, + {"1-2-3-4", GREATER, "0.5.20120830CVS.el7"}, + {"1-2-3-4", LESS, "1.el7"}, + {"1-2-3-4", LESS, "1.el6"}, + {"1-2-3-4", LESS, "10.el7"}, + {"1-2-3-4", LESS, "01.el7"}, + {"1-2-3-4", GREATER, "0.17.20140318svn632.el7"}, + {"1-2-3-4", GREATER, "0.17.20140318svn633.el7"}, + {"1-2-3-4", LESS, "1.20140522gitad6fb3e.el7"}, + {"1-2-3-4", LESS, "1.20140522hitad6fb3e.el7"}, + {"1-2-3-4", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1-2-3-4", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1-2-3-4", LESS, "22.svn457.el7"}, + {"1-2-3-4", LESS, "22.svn458.el7"}, + {"1-2-3-4", GREATER, "~"}, + {"1-2-3-4", GREATER, "~~"}, + {"1-2-3-4", GREATER, "~1"}, + {"1-2-3-4", GREATER, "~a"}, + {"1-2-3-4", GREATER, "1~"}, + {"1-2-3-4", LESS, "2~"}, + {"20150101", GREATER, ""}, + {"20150101", GREATER, "0"}, + {"20150101", GREATER, "1"}, + {"20150101", GREATER, "2"}, + {"20150101", GREATER, "10"}, + {"20150101", GREATER, "100"}, + {"20150101", GREATER, "0.0"}, + {"20150101", GREATER, "0.1"}, + {"20150101", GREATER, "0.10"}, + {"20150101", GREATER, "0.99"}, + {"20150101", GREATER, "1.0"}, + {"20150101", GREATER, "1.99"}, + {"20150101", GREATER, "2.0"}, + {"20150101", GREATER, "0.0.0"}, + {"20150101", GREATER, "0.0.1"}, + {"20150101", GREATER, "0.0.2"}, + {"20150101", GREATER, "0.0.10"}, + {"20150101", GREATER, "0.0.99"}, + {"20150101", GREATER, "0.1.0"}, + {"20150101", GREATER, "0.2.0"}, + {"20150101", GREATER, "0.10.0"}, + {"20150101", GREATER, "0.99.0"}, + {"20150101", GREATER, "0.100.0"}, + {"20150101", GREATER, "0.0.0.0"}, + {"20150101", GREATER, "0.0.0.1"}, + {"20150101", GREATER, "0.0.0.10"}, + {"20150101", GREATER, "0.0.1.0"}, + {"20150101", GREATER, "0.0.01.0"}, + {"20150101", GREATER, "1.2.3.4"}, + {"20150101", GREATER, "1-2-3-4"}, + {"20150101", EQUAL, "20150101"}, + {"20150101", LESS, "20151212"}, + {"20150101", LESS, "20151212.0"}, + {"20150101", LESS, "20151212.1"}, + {"20150101", GREATER, "2015.1.1"}, + {"20150101", GREATER, "2015.02.02"}, + {"20150101", GREATER, "2015.12.12"}, + {"20150101", GREATER, "1.2.3a"}, + {"20150101", GREATER, "1.2.3b"}, + {"20150101", GREATER, "R16B"}, + {"20150101", GREATER, "R16C"}, + {"20150101", GREATER, "1.2.3.2016.1.1"}, + {"20150101", GREATER, "0.5a1.dev"}, + {"20150101", GREATER, "1.8.B59BrZX"}, + {"20150101", GREATER, "0.07b4p1"}, + {"20150101", GREATER, "3.99.5final.SP07"}, + {"20150101", GREATER, "3.99.5final.SP08"}, + {"20150101", GREATER, "0.4.tbb.20100203"}, + {"20150101", GREATER, "0.5.20120830CVS.el7"}, + {"20150101", GREATER, "1.el7"}, + {"20150101", GREATER, "1.el6"}, + {"20150101", GREATER, "10.el7"}, + {"20150101", GREATER, "01.el7"}, + {"20150101", GREATER, "0.17.20140318svn632.el7"}, + {"20150101", GREATER, "0.17.20140318svn633.el7"}, + {"20150101", GREATER, "1.20140522gitad6fb3e.el7"}, + {"20150101", GREATER, "1.20140522hitad6fb3e.el7"}, + {"20150101", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"20150101", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"20150101", GREATER, "22.svn457.el7"}, + {"20150101", GREATER, "22.svn458.el7"}, + {"20150101", GREATER, "~"}, + {"20150101", GREATER, "~~"}, + {"20150101", GREATER, "~1"}, + {"20150101", GREATER, "~a"}, + {"20150101", GREATER, "1~"}, + {"20150101", GREATER, "2~"}, + {"20151212", GREATER, ""}, + {"20151212", GREATER, "0"}, + {"20151212", GREATER, "1"}, + {"20151212", GREATER, "2"}, + {"20151212", GREATER, "10"}, + {"20151212", GREATER, "100"}, + {"20151212", GREATER, "0.0"}, + {"20151212", GREATER, "0.1"}, + {"20151212", GREATER, "0.10"}, + {"20151212", GREATER, "0.99"}, + {"20151212", GREATER, "1.0"}, + {"20151212", GREATER, "1.99"}, + {"20151212", GREATER, "2.0"}, + {"20151212", GREATER, "0.0.0"}, + {"20151212", GREATER, "0.0.1"}, + {"20151212", GREATER, "0.0.2"}, + {"20151212", GREATER, "0.0.10"}, + {"20151212", GREATER, "0.0.99"}, + {"20151212", GREATER, "0.1.0"}, + {"20151212", GREATER, "0.2.0"}, + {"20151212", GREATER, "0.10.0"}, + {"20151212", GREATER, "0.99.0"}, + {"20151212", GREATER, "0.100.0"}, + {"20151212", GREATER, "0.0.0.0"}, + {"20151212", GREATER, "0.0.0.1"}, + {"20151212", GREATER, "0.0.0.10"}, + {"20151212", GREATER, "0.0.1.0"}, + {"20151212", GREATER, "0.0.01.0"}, + {"20151212", GREATER, "1.2.3.4"}, + {"20151212", GREATER, "1-2-3-4"}, + {"20151212", GREATER, "20150101"}, + {"20151212", EQUAL, "20151212"}, + {"20151212", LESS, "20151212.0"}, + {"20151212", LESS, "20151212.1"}, + {"20151212", GREATER, "2015.1.1"}, + {"20151212", GREATER, "2015.02.02"}, + {"20151212", GREATER, "2015.12.12"}, + {"20151212", GREATER, "1.2.3a"}, + {"20151212", GREATER, "1.2.3b"}, + {"20151212", GREATER, "R16B"}, + {"20151212", GREATER, "R16C"}, + {"20151212", GREATER, "1.2.3.2016.1.1"}, + {"20151212", GREATER, "0.5a1.dev"}, + {"20151212", GREATER, "1.8.B59BrZX"}, + {"20151212", GREATER, "0.07b4p1"}, + {"20151212", GREATER, "3.99.5final.SP07"}, + {"20151212", GREATER, "3.99.5final.SP08"}, + {"20151212", GREATER, "0.4.tbb.20100203"}, + {"20151212", GREATER, "0.5.20120830CVS.el7"}, + {"20151212", GREATER, "1.el7"}, + {"20151212", GREATER, "1.el6"}, + {"20151212", GREATER, "10.el7"}, + {"20151212", GREATER, "01.el7"}, + {"20151212", GREATER, "0.17.20140318svn632.el7"}, + {"20151212", GREATER, "0.17.20140318svn633.el7"}, + {"20151212", GREATER, "1.20140522gitad6fb3e.el7"}, + {"20151212", GREATER, "1.20140522hitad6fb3e.el7"}, + {"20151212", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"20151212", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"20151212", GREATER, "22.svn457.el7"}, + {"20151212", GREATER, "22.svn458.el7"}, + {"20151212", GREATER, "~"}, + {"20151212", GREATER, "~~"}, + {"20151212", GREATER, "~1"}, + {"20151212", GREATER, "~a"}, + {"20151212", GREATER, "1~"}, + {"20151212", GREATER, "2~"}, + {"20151212.0", GREATER, ""}, + {"20151212.0", GREATER, "0"}, + {"20151212.0", GREATER, "1"}, + {"20151212.0", GREATER, "2"}, + {"20151212.0", GREATER, "10"}, + {"20151212.0", GREATER, "100"}, + {"20151212.0", GREATER, "0.0"}, + {"20151212.0", GREATER, "0.1"}, + {"20151212.0", GREATER, "0.10"}, + {"20151212.0", GREATER, "0.99"}, + {"20151212.0", GREATER, "1.0"}, + {"20151212.0", GREATER, "1.99"}, + {"20151212.0", GREATER, "2.0"}, + {"20151212.0", GREATER, "0.0.0"}, + {"20151212.0", GREATER, "0.0.1"}, + {"20151212.0", GREATER, "0.0.2"}, + {"20151212.0", GREATER, "0.0.10"}, + {"20151212.0", GREATER, "0.0.99"}, + {"20151212.0", GREATER, "0.1.0"}, + {"20151212.0", GREATER, "0.2.0"}, + {"20151212.0", GREATER, "0.10.0"}, + {"20151212.0", GREATER, "0.99.0"}, + {"20151212.0", GREATER, "0.100.0"}, + {"20151212.0", GREATER, "0.0.0.0"}, + {"20151212.0", GREATER, "0.0.0.1"}, + {"20151212.0", GREATER, "0.0.0.10"}, + {"20151212.0", GREATER, "0.0.1.0"}, + {"20151212.0", GREATER, "0.0.01.0"}, + {"20151212.0", GREATER, "1.2.3.4"}, + {"20151212.0", GREATER, "1-2-3-4"}, + {"20151212.0", GREATER, "20150101"}, + {"20151212.0", GREATER, "20151212"}, + {"20151212.0", EQUAL, "20151212.0"}, + {"20151212.0", LESS, "20151212.1"}, + {"20151212.0", GREATER, "2015.1.1"}, + {"20151212.0", GREATER, "2015.02.02"}, + {"20151212.0", GREATER, "2015.12.12"}, + {"20151212.0", GREATER, "1.2.3a"}, + {"20151212.0", GREATER, "1.2.3b"}, + {"20151212.0", GREATER, "R16B"}, + {"20151212.0", GREATER, "R16C"}, + {"20151212.0", GREATER, "1.2.3.2016.1.1"}, + {"20151212.0", GREATER, "0.5a1.dev"}, + {"20151212.0", GREATER, "1.8.B59BrZX"}, + {"20151212.0", GREATER, "0.07b4p1"}, + {"20151212.0", GREATER, "3.99.5final.SP07"}, + {"20151212.0", GREATER, "3.99.5final.SP08"}, + {"20151212.0", GREATER, "0.4.tbb.20100203"}, + {"20151212.0", GREATER, "0.5.20120830CVS.el7"}, + {"20151212.0", GREATER, "1.el7"}, + {"20151212.0", GREATER, "1.el6"}, + {"20151212.0", GREATER, "10.el7"}, + {"20151212.0", GREATER, "01.el7"}, + {"20151212.0", GREATER, "0.17.20140318svn632.el7"}, + {"20151212.0", GREATER, "0.17.20140318svn633.el7"}, + {"20151212.0", GREATER, "1.20140522gitad6fb3e.el7"}, + {"20151212.0", GREATER, "1.20140522hitad6fb3e.el7"}, + {"20151212.0", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"20151212.0", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"20151212.0", GREATER, "22.svn457.el7"}, + {"20151212.0", GREATER, "22.svn458.el7"}, + {"20151212.0", GREATER, "~"}, + {"20151212.0", GREATER, "~~"}, + {"20151212.0", GREATER, "~1"}, + {"20151212.0", GREATER, "~a"}, + {"20151212.0", GREATER, "1~"}, + {"20151212.0", GREATER, "2~"}, + {"20151212.1", GREATER, ""}, + {"20151212.1", GREATER, "0"}, + {"20151212.1", GREATER, "1"}, + {"20151212.1", GREATER, "2"}, + {"20151212.1", GREATER, "10"}, + {"20151212.1", GREATER, "100"}, + {"20151212.1", GREATER, "0.0"}, + {"20151212.1", GREATER, "0.1"}, + {"20151212.1", GREATER, "0.10"}, + {"20151212.1", GREATER, "0.99"}, + {"20151212.1", GREATER, "1.0"}, + {"20151212.1", GREATER, "1.99"}, + {"20151212.1", GREATER, "2.0"}, + {"20151212.1", GREATER, "0.0.0"}, + {"20151212.1", GREATER, "0.0.1"}, + {"20151212.1", GREATER, "0.0.2"}, + {"20151212.1", GREATER, "0.0.10"}, + {"20151212.1", GREATER, "0.0.99"}, + {"20151212.1", GREATER, "0.1.0"}, + {"20151212.1", GREATER, "0.2.0"}, + {"20151212.1", GREATER, "0.10.0"}, + {"20151212.1", GREATER, "0.99.0"}, + {"20151212.1", GREATER, "0.100.0"}, + {"20151212.1", GREATER, "0.0.0.0"}, + {"20151212.1", GREATER, "0.0.0.1"}, + {"20151212.1", GREATER, "0.0.0.10"}, + {"20151212.1", GREATER, "0.0.1.0"}, + {"20151212.1", GREATER, "0.0.01.0"}, + {"20151212.1", GREATER, "1.2.3.4"}, + {"20151212.1", GREATER, "1-2-3-4"}, + {"20151212.1", GREATER, "20150101"}, + {"20151212.1", GREATER, "20151212"}, + {"20151212.1", GREATER, "20151212.0"}, + {"20151212.1", EQUAL, "20151212.1"}, + {"20151212.1", GREATER, "2015.1.1"}, + {"20151212.1", GREATER, "2015.02.02"}, + {"20151212.1", GREATER, "2015.12.12"}, + {"20151212.1", GREATER, "1.2.3a"}, + {"20151212.1", GREATER, "1.2.3b"}, + {"20151212.1", GREATER, "R16B"}, + {"20151212.1", GREATER, "R16C"}, + {"20151212.1", GREATER, "1.2.3.2016.1.1"}, + {"20151212.1", GREATER, "0.5a1.dev"}, + {"20151212.1", GREATER, "1.8.B59BrZX"}, + {"20151212.1", GREATER, "0.07b4p1"}, + {"20151212.1", GREATER, "3.99.5final.SP07"}, + {"20151212.1", GREATER, "3.99.5final.SP08"}, + {"20151212.1", GREATER, "0.4.tbb.20100203"}, + {"20151212.1", GREATER, "0.5.20120830CVS.el7"}, + {"20151212.1", GREATER, "1.el7"}, + {"20151212.1", GREATER, "1.el6"}, + {"20151212.1", GREATER, "10.el7"}, + {"20151212.1", GREATER, "01.el7"}, + {"20151212.1", GREATER, "0.17.20140318svn632.el7"}, + {"20151212.1", GREATER, "0.17.20140318svn633.el7"}, + {"20151212.1", GREATER, "1.20140522gitad6fb3e.el7"}, + {"20151212.1", GREATER, "1.20140522hitad6fb3e.el7"}, + {"20151212.1", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"20151212.1", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"20151212.1", GREATER, "22.svn457.el7"}, + {"20151212.1", GREATER, "22.svn458.el7"}, + {"20151212.1", GREATER, "~"}, + {"20151212.1", GREATER, "~~"}, + {"20151212.1", GREATER, "~1"}, + {"20151212.1", GREATER, "~a"}, + {"20151212.1", GREATER, "1~"}, + {"20151212.1", GREATER, "2~"}, + {"2015.1.1", GREATER, ""}, + {"2015.1.1", GREATER, "0"}, + {"2015.1.1", GREATER, "1"}, + {"2015.1.1", GREATER, "2"}, + {"2015.1.1", GREATER, "10"}, + {"2015.1.1", GREATER, "100"}, + {"2015.1.1", GREATER, "0.0"}, + {"2015.1.1", GREATER, "0.1"}, + {"2015.1.1", GREATER, "0.10"}, + {"2015.1.1", GREATER, "0.99"}, + {"2015.1.1", GREATER, "1.0"}, + {"2015.1.1", GREATER, "1.99"}, + {"2015.1.1", GREATER, "2.0"}, + {"2015.1.1", GREATER, "0.0.0"}, + {"2015.1.1", GREATER, "0.0.1"}, + {"2015.1.1", GREATER, "0.0.2"}, + {"2015.1.1", GREATER, "0.0.10"}, + {"2015.1.1", GREATER, "0.0.99"}, + {"2015.1.1", GREATER, "0.1.0"}, + {"2015.1.1", GREATER, "0.2.0"}, + {"2015.1.1", GREATER, "0.10.0"}, + {"2015.1.1", GREATER, "0.99.0"}, + {"2015.1.1", GREATER, "0.100.0"}, + {"2015.1.1", GREATER, "0.0.0.0"}, + {"2015.1.1", GREATER, "0.0.0.1"}, + {"2015.1.1", GREATER, "0.0.0.10"}, + {"2015.1.1", GREATER, "0.0.1.0"}, + {"2015.1.1", GREATER, "0.0.01.0"}, + {"2015.1.1", GREATER, "1.2.3.4"}, + {"2015.1.1", GREATER, "1-2-3-4"}, + {"2015.1.1", LESS, "20150101"}, + {"2015.1.1", LESS, "20151212"}, + {"2015.1.1", LESS, "20151212.0"}, + {"2015.1.1", LESS, "20151212.1"}, + {"2015.1.1", EQUAL, "2015.1.1"}, + {"2015.1.1", LESS, "2015.02.02"}, + {"2015.1.1", LESS, "2015.12.12"}, + {"2015.1.1", GREATER, "1.2.3a"}, + {"2015.1.1", GREATER, "1.2.3b"}, + {"2015.1.1", GREATER, "R16B"}, + {"2015.1.1", GREATER, "R16C"}, + {"2015.1.1", GREATER, "1.2.3.2016.1.1"}, + {"2015.1.1", GREATER, "0.5a1.dev"}, + {"2015.1.1", GREATER, "1.8.B59BrZX"}, + {"2015.1.1", GREATER, "0.07b4p1"}, + {"2015.1.1", GREATER, "3.99.5final.SP07"}, + {"2015.1.1", GREATER, "3.99.5final.SP08"}, + {"2015.1.1", GREATER, "0.4.tbb.20100203"}, + {"2015.1.1", GREATER, "0.5.20120830CVS.el7"}, + {"2015.1.1", GREATER, "1.el7"}, + {"2015.1.1", GREATER, "1.el6"}, + {"2015.1.1", GREATER, "10.el7"}, + {"2015.1.1", GREATER, "01.el7"}, + {"2015.1.1", GREATER, "0.17.20140318svn632.el7"}, + {"2015.1.1", GREATER, "0.17.20140318svn633.el7"}, + {"2015.1.1", GREATER, "1.20140522gitad6fb3e.el7"}, + {"2015.1.1", GREATER, "1.20140522hitad6fb3e.el7"}, + {"2015.1.1", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"2015.1.1", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"2015.1.1", GREATER, "22.svn457.el7"}, + {"2015.1.1", GREATER, "22.svn458.el7"}, + {"2015.1.1", GREATER, "~"}, + {"2015.1.1", GREATER, "~~"}, + {"2015.1.1", GREATER, "~1"}, + {"2015.1.1", GREATER, "~a"}, + {"2015.1.1", GREATER, "1~"}, + {"2015.1.1", GREATER, "2~"}, + {"2015.02.02", GREATER, ""}, + {"2015.02.02", GREATER, "0"}, + {"2015.02.02", GREATER, "1"}, + {"2015.02.02", GREATER, "2"}, + {"2015.02.02", GREATER, "10"}, + {"2015.02.02", GREATER, "100"}, + {"2015.02.02", GREATER, "0.0"}, + {"2015.02.02", GREATER, "0.1"}, + {"2015.02.02", GREATER, "0.10"}, + {"2015.02.02", GREATER, "0.99"}, + {"2015.02.02", GREATER, "1.0"}, + {"2015.02.02", GREATER, "1.99"}, + {"2015.02.02", GREATER, "2.0"}, + {"2015.02.02", GREATER, "0.0.0"}, + {"2015.02.02", GREATER, "0.0.1"}, + {"2015.02.02", GREATER, "0.0.2"}, + {"2015.02.02", GREATER, "0.0.10"}, + {"2015.02.02", GREATER, "0.0.99"}, + {"2015.02.02", GREATER, "0.1.0"}, + {"2015.02.02", GREATER, "0.2.0"}, + {"2015.02.02", GREATER, "0.10.0"}, + {"2015.02.02", GREATER, "0.99.0"}, + {"2015.02.02", GREATER, "0.100.0"}, + {"2015.02.02", GREATER, "0.0.0.0"}, + {"2015.02.02", GREATER, "0.0.0.1"}, + {"2015.02.02", GREATER, "0.0.0.10"}, + {"2015.02.02", GREATER, "0.0.1.0"}, + {"2015.02.02", GREATER, "0.0.01.0"}, + {"2015.02.02", GREATER, "1.2.3.4"}, + {"2015.02.02", GREATER, "1-2-3-4"}, + {"2015.02.02", LESS, "20150101"}, + {"2015.02.02", LESS, "20151212"}, + {"2015.02.02", LESS, "20151212.0"}, + {"2015.02.02", LESS, "20151212.1"}, + {"2015.02.02", GREATER, "2015.1.1"}, + {"2015.02.02", EQUAL, "2015.02.02"}, + {"2015.02.02", LESS, "2015.12.12"}, + {"2015.02.02", GREATER, "1.2.3a"}, + {"2015.02.02", GREATER, "1.2.3b"}, + {"2015.02.02", GREATER, "R16B"}, + {"2015.02.02", GREATER, "R16C"}, + {"2015.02.02", GREATER, "1.2.3.2016.1.1"}, + {"2015.02.02", GREATER, "0.5a1.dev"}, + {"2015.02.02", GREATER, "1.8.B59BrZX"}, + {"2015.02.02", GREATER, "0.07b4p1"}, + {"2015.02.02", GREATER, "3.99.5final.SP07"}, + {"2015.02.02", GREATER, "3.99.5final.SP08"}, + {"2015.02.02", GREATER, "0.4.tbb.20100203"}, + {"2015.02.02", GREATER, "0.5.20120830CVS.el7"}, + {"2015.02.02", GREATER, "1.el7"}, + {"2015.02.02", GREATER, "1.el6"}, + {"2015.02.02", GREATER, "10.el7"}, + {"2015.02.02", GREATER, "01.el7"}, + {"2015.02.02", GREATER, "0.17.20140318svn632.el7"}, + {"2015.02.02", GREATER, "0.17.20140318svn633.el7"}, + {"2015.02.02", GREATER, "1.20140522gitad6fb3e.el7"}, + {"2015.02.02", GREATER, "1.20140522hitad6fb3e.el7"}, + {"2015.02.02", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"2015.02.02", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"2015.02.02", GREATER, "22.svn457.el7"}, + {"2015.02.02", GREATER, "22.svn458.el7"}, + {"2015.02.02", GREATER, "~"}, + {"2015.02.02", GREATER, "~~"}, + {"2015.02.02", GREATER, "~1"}, + {"2015.02.02", GREATER, "~a"}, + {"2015.02.02", GREATER, "1~"}, + {"2015.02.02", GREATER, "2~"}, + {"2015.12.12", GREATER, ""}, + {"2015.12.12", GREATER, "0"}, + {"2015.12.12", GREATER, "1"}, + {"2015.12.12", GREATER, "2"}, + {"2015.12.12", GREATER, "10"}, + {"2015.12.12", GREATER, "100"}, + {"2015.12.12", GREATER, "0.0"}, + {"2015.12.12", GREATER, "0.1"}, + {"2015.12.12", GREATER, "0.10"}, + {"2015.12.12", GREATER, "0.99"}, + {"2015.12.12", GREATER, "1.0"}, + {"2015.12.12", GREATER, "1.99"}, + {"2015.12.12", GREATER, "2.0"}, + {"2015.12.12", GREATER, "0.0.0"}, + {"2015.12.12", GREATER, "0.0.1"}, + {"2015.12.12", GREATER, "0.0.2"}, + {"2015.12.12", GREATER, "0.0.10"}, + {"2015.12.12", GREATER, "0.0.99"}, + {"2015.12.12", GREATER, "0.1.0"}, + {"2015.12.12", GREATER, "0.2.0"}, + {"2015.12.12", GREATER, "0.10.0"}, + {"2015.12.12", GREATER, "0.99.0"}, + {"2015.12.12", GREATER, "0.100.0"}, + {"2015.12.12", GREATER, "0.0.0.0"}, + {"2015.12.12", GREATER, "0.0.0.1"}, + {"2015.12.12", GREATER, "0.0.0.10"}, + {"2015.12.12", GREATER, "0.0.1.0"}, + {"2015.12.12", GREATER, "0.0.01.0"}, + {"2015.12.12", GREATER, "1.2.3.4"}, + {"2015.12.12", GREATER, "1-2-3-4"}, + {"2015.12.12", LESS, "20150101"}, + {"2015.12.12", LESS, "20151212"}, + {"2015.12.12", LESS, "20151212.0"}, + {"2015.12.12", LESS, "20151212.1"}, + {"2015.12.12", GREATER, "2015.1.1"}, + {"2015.12.12", GREATER, "2015.02.02"}, + {"2015.12.12", EQUAL, "2015.12.12"}, + {"2015.12.12", GREATER, "1.2.3a"}, + {"2015.12.12", GREATER, "1.2.3b"}, + {"2015.12.12", GREATER, "R16B"}, + {"2015.12.12", GREATER, "R16C"}, + {"2015.12.12", GREATER, "1.2.3.2016.1.1"}, + {"2015.12.12", GREATER, "0.5a1.dev"}, + {"2015.12.12", GREATER, "1.8.B59BrZX"}, + {"2015.12.12", GREATER, "0.07b4p1"}, + {"2015.12.12", GREATER, "3.99.5final.SP07"}, + {"2015.12.12", GREATER, "3.99.5final.SP08"}, + {"2015.12.12", GREATER, "0.4.tbb.20100203"}, + {"2015.12.12", GREATER, "0.5.20120830CVS.el7"}, + {"2015.12.12", GREATER, "1.el7"}, + {"2015.12.12", GREATER, "1.el6"}, + {"2015.12.12", GREATER, "10.el7"}, + {"2015.12.12", GREATER, "01.el7"}, + {"2015.12.12", GREATER, "0.17.20140318svn632.el7"}, + {"2015.12.12", GREATER, "0.17.20140318svn633.el7"}, + {"2015.12.12", GREATER, "1.20140522gitad6fb3e.el7"}, + {"2015.12.12", GREATER, "1.20140522hitad6fb3e.el7"}, + {"2015.12.12", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"2015.12.12", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"2015.12.12", GREATER, "22.svn457.el7"}, + {"2015.12.12", GREATER, "22.svn458.el7"}, + {"2015.12.12", GREATER, "~"}, + {"2015.12.12", GREATER, "~~"}, + {"2015.12.12", GREATER, "~1"}, + {"2015.12.12", GREATER, "~a"}, + {"2015.12.12", GREATER, "1~"}, + {"2015.12.12", GREATER, "2~"}, + {"1.2.3a", GREATER, ""}, + {"1.2.3a", GREATER, "0"}, + {"1.2.3a", GREATER, "1"}, + {"1.2.3a", LESS, "2"}, + {"1.2.3a", LESS, "10"}, + {"1.2.3a", LESS, "100"}, + {"1.2.3a", GREATER, "0.0"}, + {"1.2.3a", GREATER, "0.1"}, + {"1.2.3a", GREATER, "0.10"}, + {"1.2.3a", GREATER, "0.99"}, + {"1.2.3a", GREATER, "1.0"}, + {"1.2.3a", LESS, "1.99"}, + {"1.2.3a", LESS, "2.0"}, + {"1.2.3a", GREATER, "0.0.0"}, + {"1.2.3a", GREATER, "0.0.1"}, + {"1.2.3a", GREATER, "0.0.2"}, + {"1.2.3a", GREATER, "0.0.10"}, + {"1.2.3a", GREATER, "0.0.99"}, + {"1.2.3a", GREATER, "0.1.0"}, + {"1.2.3a", GREATER, "0.2.0"}, + {"1.2.3a", GREATER, "0.10.0"}, + {"1.2.3a", GREATER, "0.99.0"}, + {"1.2.3a", GREATER, "0.100.0"}, + {"1.2.3a", GREATER, "0.0.0.0"}, + {"1.2.3a", GREATER, "0.0.0.1"}, + {"1.2.3a", GREATER, "0.0.0.10"}, + {"1.2.3a", GREATER, "0.0.1.0"}, + {"1.2.3a", GREATER, "0.0.01.0"}, + {"1.2.3a", LESS, "1.2.3.4"}, + {"1.2.3a", GREATER, "1-2-3-4"}, + {"1.2.3a", LESS, "20150101"}, + {"1.2.3a", LESS, "20151212"}, + {"1.2.3a", LESS, "20151212.0"}, + {"1.2.3a", LESS, "20151212.1"}, + {"1.2.3a", LESS, "2015.1.1"}, + {"1.2.3a", LESS, "2015.02.02"}, + {"1.2.3a", LESS, "2015.12.12"}, + {"1.2.3a", EQUAL, "1.2.3a"}, + {"1.2.3a", LESS, "1.2.3b"}, + {"1.2.3a", GREATER, "R16B"}, + {"1.2.3a", GREATER, "R16C"}, + {"1.2.3a", LESS, "1.2.3.2016.1.1"}, + {"1.2.3a", GREATER, "0.5a1.dev"}, + {"1.2.3a", LESS, "1.8.B59BrZX"}, + {"1.2.3a", GREATER, "0.07b4p1"}, + {"1.2.3a", LESS, "3.99.5final.SP07"}, + {"1.2.3a", LESS, "3.99.5final.SP08"}, + {"1.2.3a", GREATER, "0.4.tbb.20100203"}, + {"1.2.3a", GREATER, "0.5.20120830CVS.el7"}, + {"1.2.3a", GREATER, "1.el7"}, + {"1.2.3a", GREATER, "1.el6"}, + {"1.2.3a", LESS, "10.el7"}, + {"1.2.3a", GREATER, "01.el7"}, + {"1.2.3a", GREATER, "0.17.20140318svn632.el7"}, + {"1.2.3a", GREATER, "0.17.20140318svn633.el7"}, + {"1.2.3a", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.2.3a", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.2.3a", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.2.3a", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.2.3a", LESS, "22.svn457.el7"}, + {"1.2.3a", LESS, "22.svn458.el7"}, + {"1.2.3a", GREATER, "~"}, + {"1.2.3a", GREATER, "~~"}, + {"1.2.3a", GREATER, "~1"}, + {"1.2.3a", GREATER, "~a"}, + {"1.2.3a", GREATER, "1~"}, + {"1.2.3a", LESS, "2~"}, + {"1.2.3b", GREATER, ""}, + {"1.2.3b", GREATER, "0"}, + {"1.2.3b", GREATER, "1"}, + {"1.2.3b", LESS, "2"}, + {"1.2.3b", LESS, "10"}, + {"1.2.3b", LESS, "100"}, + {"1.2.3b", GREATER, "0.0"}, + {"1.2.3b", GREATER, "0.1"}, + {"1.2.3b", GREATER, "0.10"}, + {"1.2.3b", GREATER, "0.99"}, + {"1.2.3b", GREATER, "1.0"}, + {"1.2.3b", LESS, "1.99"}, + {"1.2.3b", LESS, "2.0"}, + {"1.2.3b", GREATER, "0.0.0"}, + {"1.2.3b", GREATER, "0.0.1"}, + {"1.2.3b", GREATER, "0.0.2"}, + {"1.2.3b", GREATER, "0.0.10"}, + {"1.2.3b", GREATER, "0.0.99"}, + {"1.2.3b", GREATER, "0.1.0"}, + {"1.2.3b", GREATER, "0.2.0"}, + {"1.2.3b", GREATER, "0.10.0"}, + {"1.2.3b", GREATER, "0.99.0"}, + {"1.2.3b", GREATER, "0.100.0"}, + {"1.2.3b", GREATER, "0.0.0.0"}, + {"1.2.3b", GREATER, "0.0.0.1"}, + {"1.2.3b", GREATER, "0.0.0.10"}, + {"1.2.3b", GREATER, "0.0.1.0"}, + {"1.2.3b", GREATER, "0.0.01.0"}, + {"1.2.3b", LESS, "1.2.3.4"}, + {"1.2.3b", GREATER, "1-2-3-4"}, + {"1.2.3b", LESS, "20150101"}, + {"1.2.3b", LESS, "20151212"}, + {"1.2.3b", LESS, "20151212.0"}, + {"1.2.3b", LESS, "20151212.1"}, + {"1.2.3b", LESS, "2015.1.1"}, + {"1.2.3b", LESS, "2015.02.02"}, + {"1.2.3b", LESS, "2015.12.12"}, + {"1.2.3b", GREATER, "1.2.3a"}, + {"1.2.3b", EQUAL, "1.2.3b"}, + {"1.2.3b", GREATER, "R16B"}, + {"1.2.3b", GREATER, "R16C"}, + {"1.2.3b", LESS, "1.2.3.2016.1.1"}, + {"1.2.3b", GREATER, "0.5a1.dev"}, + {"1.2.3b", LESS, "1.8.B59BrZX"}, + {"1.2.3b", GREATER, "0.07b4p1"}, + {"1.2.3b", LESS, "3.99.5final.SP07"}, + {"1.2.3b", LESS, "3.99.5final.SP08"}, + {"1.2.3b", GREATER, "0.4.tbb.20100203"}, + {"1.2.3b", GREATER, "0.5.20120830CVS.el7"}, + {"1.2.3b", GREATER, "1.el7"}, + {"1.2.3b", GREATER, "1.el6"}, + {"1.2.3b", LESS, "10.el7"}, + {"1.2.3b", GREATER, "01.el7"}, + {"1.2.3b", GREATER, "0.17.20140318svn632.el7"}, + {"1.2.3b", GREATER, "0.17.20140318svn633.el7"}, + {"1.2.3b", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.2.3b", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.2.3b", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.2.3b", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.2.3b", LESS, "22.svn457.el7"}, + {"1.2.3b", LESS, "22.svn458.el7"}, + {"1.2.3b", GREATER, "~"}, + {"1.2.3b", GREATER, "~~"}, + {"1.2.3b", GREATER, "~1"}, + {"1.2.3b", GREATER, "~a"}, + {"1.2.3b", GREATER, "1~"}, + {"1.2.3b", LESS, "2~"}, + {"R16B", GREATER, ""}, + {"R16B", LESS, "0"}, + {"R16B", LESS, "1"}, + {"R16B", LESS, "2"}, + {"R16B", LESS, "10"}, + {"R16B", LESS, "100"}, + {"R16B", LESS, "0.0"}, + {"R16B", LESS, "0.1"}, + {"R16B", LESS, "0.10"}, + {"R16B", LESS, "0.99"}, + {"R16B", LESS, "1.0"}, + {"R16B", LESS, "1.99"}, + {"R16B", LESS, "2.0"}, + {"R16B", LESS, "0.0.0"}, + {"R16B", LESS, "0.0.1"}, + {"R16B", LESS, "0.0.2"}, + {"R16B", LESS, "0.0.10"}, + {"R16B", LESS, "0.0.99"}, + {"R16B", LESS, "0.1.0"}, + {"R16B", LESS, "0.2.0"}, + {"R16B", LESS, "0.10.0"}, + {"R16B", LESS, "0.99.0"}, + {"R16B", LESS, "0.100.0"}, + {"R16B", LESS, "0.0.0.0"}, + {"R16B", LESS, "0.0.0.1"}, + {"R16B", LESS, "0.0.0.10"}, + {"R16B", LESS, "0.0.1.0"}, + {"R16B", LESS, "0.0.01.0"}, + {"R16B", LESS, "1.2.3.4"}, + {"R16B", LESS, "1-2-3-4"}, + {"R16B", LESS, "20150101"}, + {"R16B", LESS, "20151212"}, + {"R16B", LESS, "20151212.0"}, + {"R16B", LESS, "20151212.1"}, + {"R16B", LESS, "2015.1.1"}, + {"R16B", LESS, "2015.02.02"}, + {"R16B", LESS, "2015.12.12"}, + {"R16B", LESS, "1.2.3a"}, + {"R16B", LESS, "1.2.3b"}, + {"R16B", EQUAL, "R16B"}, + {"R16B", LESS, "R16C"}, + {"R16B", LESS, "1.2.3.2016.1.1"}, + {"R16B", LESS, "0.5a1.dev"}, + {"R16B", LESS, "1.8.B59BrZX"}, + {"R16B", LESS, "0.07b4p1"}, + {"R16B", LESS, "3.99.5final.SP07"}, + {"R16B", LESS, "3.99.5final.SP08"}, + {"R16B", LESS, "0.4.tbb.20100203"}, + {"R16B", LESS, "0.5.20120830CVS.el7"}, + {"R16B", LESS, "1.el7"}, + {"R16B", LESS, "1.el6"}, + {"R16B", LESS, "10.el7"}, + {"R16B", LESS, "01.el7"}, + {"R16B", LESS, "0.17.20140318svn632.el7"}, + {"R16B", LESS, "0.17.20140318svn633.el7"}, + {"R16B", LESS, "1.20140522gitad6fb3e.el7"}, + {"R16B", LESS, "1.20140522hitad6fb3e.el7"}, + {"R16B", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"R16B", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"R16B", LESS, "22.svn457.el7"}, + {"R16B", LESS, "22.svn458.el7"}, + {"R16B", GREATER, "~"}, + {"R16B", GREATER, "~~"}, + {"R16B", GREATER, "~1"}, + {"R16B", GREATER, "~a"}, + {"R16B", LESS, "1~"}, + {"R16B", LESS, "2~"}, + {"R16C", GREATER, ""}, + {"R16C", LESS, "0"}, + {"R16C", LESS, "1"}, + {"R16C", LESS, "2"}, + {"R16C", LESS, "10"}, + {"R16C", LESS, "100"}, + {"R16C", LESS, "0.0"}, + {"R16C", LESS, "0.1"}, + {"R16C", LESS, "0.10"}, + {"R16C", LESS, "0.99"}, + {"R16C", LESS, "1.0"}, + {"R16C", LESS, "1.99"}, + {"R16C", LESS, "2.0"}, + {"R16C", LESS, "0.0.0"}, + {"R16C", LESS, "0.0.1"}, + {"R16C", LESS, "0.0.2"}, + {"R16C", LESS, "0.0.10"}, + {"R16C", LESS, "0.0.99"}, + {"R16C", LESS, "0.1.0"}, + {"R16C", LESS, "0.2.0"}, + {"R16C", LESS, "0.10.0"}, + {"R16C", LESS, "0.99.0"}, + {"R16C", LESS, "0.100.0"}, + {"R16C", LESS, "0.0.0.0"}, + {"R16C", LESS, "0.0.0.1"}, + {"R16C", LESS, "0.0.0.10"}, + {"R16C", LESS, "0.0.1.0"}, + {"R16C", LESS, "0.0.01.0"}, + {"R16C", LESS, "1.2.3.4"}, + {"R16C", LESS, "1-2-3-4"}, + {"R16C", LESS, "20150101"}, + {"R16C", LESS, "20151212"}, + {"R16C", LESS, "20151212.0"}, + {"R16C", LESS, "20151212.1"}, + {"R16C", LESS, "2015.1.1"}, + {"R16C", LESS, "2015.02.02"}, + {"R16C", LESS, "2015.12.12"}, + {"R16C", LESS, "1.2.3a"}, + {"R16C", LESS, "1.2.3b"}, + {"R16C", GREATER, "R16B"}, + {"R16C", EQUAL, "R16C"}, + {"R16C", LESS, "1.2.3.2016.1.1"}, + {"R16C", LESS, "0.5a1.dev"}, + {"R16C", LESS, "1.8.B59BrZX"}, + {"R16C", LESS, "0.07b4p1"}, + {"R16C", LESS, "3.99.5final.SP07"}, + {"R16C", LESS, "3.99.5final.SP08"}, + {"R16C", LESS, "0.4.tbb.20100203"}, + {"R16C", LESS, "0.5.20120830CVS.el7"}, + {"R16C", LESS, "1.el7"}, + {"R16C", LESS, "1.el6"}, + {"R16C", LESS, "10.el7"}, + {"R16C", LESS, "01.el7"}, + {"R16C", LESS, "0.17.20140318svn632.el7"}, + {"R16C", LESS, "0.17.20140318svn633.el7"}, + {"R16C", LESS, "1.20140522gitad6fb3e.el7"}, + {"R16C", LESS, "1.20140522hitad6fb3e.el7"}, + {"R16C", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"R16C", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"R16C", LESS, "22.svn457.el7"}, + {"R16C", LESS, "22.svn458.el7"}, + {"R16C", GREATER, "~"}, + {"R16C", GREATER, "~~"}, + {"R16C", GREATER, "~1"}, + {"R16C", GREATER, "~a"}, + {"R16C", LESS, "1~"}, + {"R16C", LESS, "2~"}, + {"1.2.3.2016.1.1", GREATER, ""}, + {"1.2.3.2016.1.1", GREATER, "0"}, + {"1.2.3.2016.1.1", GREATER, "1"}, + {"1.2.3.2016.1.1", LESS, "2"}, + {"1.2.3.2016.1.1", LESS, "10"}, + {"1.2.3.2016.1.1", LESS, "100"}, + {"1.2.3.2016.1.1", GREATER, "0.0"}, + {"1.2.3.2016.1.1", GREATER, "0.1"}, + {"1.2.3.2016.1.1", GREATER, "0.10"}, + {"1.2.3.2016.1.1", GREATER, "0.99"}, + {"1.2.3.2016.1.1", GREATER, "1.0"}, + {"1.2.3.2016.1.1", LESS, "1.99"}, + {"1.2.3.2016.1.1", LESS, "2.0"}, + {"1.2.3.2016.1.1", GREATER, "0.0.0"}, + {"1.2.3.2016.1.1", GREATER, "0.0.1"}, + {"1.2.3.2016.1.1", GREATER, "0.0.2"}, + {"1.2.3.2016.1.1", GREATER, "0.0.10"}, + {"1.2.3.2016.1.1", GREATER, "0.0.99"}, + {"1.2.3.2016.1.1", GREATER, "0.1.0"}, + {"1.2.3.2016.1.1", GREATER, "0.2.0"}, + {"1.2.3.2016.1.1", GREATER, "0.10.0"}, + {"1.2.3.2016.1.1", GREATER, "0.99.0"}, + {"1.2.3.2016.1.1", GREATER, "0.100.0"}, + {"1.2.3.2016.1.1", GREATER, "0.0.0.0"}, + {"1.2.3.2016.1.1", GREATER, "0.0.0.1"}, + {"1.2.3.2016.1.1", GREATER, "0.0.0.10"}, + {"1.2.3.2016.1.1", GREATER, "0.0.1.0"}, + {"1.2.3.2016.1.1", GREATER, "0.0.01.0"}, + {"1.2.3.2016.1.1", GREATER, "1.2.3.4"}, + {"1.2.3.2016.1.1", GREATER, "1-2-3-4"}, + {"1.2.3.2016.1.1", LESS, "20150101"}, + {"1.2.3.2016.1.1", LESS, "20151212"}, + {"1.2.3.2016.1.1", LESS, "20151212.0"}, + {"1.2.3.2016.1.1", LESS, "20151212.1"}, + {"1.2.3.2016.1.1", LESS, "2015.1.1"}, + {"1.2.3.2016.1.1", LESS, "2015.02.02"}, + {"1.2.3.2016.1.1", LESS, "2015.12.12"}, + {"1.2.3.2016.1.1", GREATER, "1.2.3a"}, + {"1.2.3.2016.1.1", GREATER, "1.2.3b"}, + {"1.2.3.2016.1.1", GREATER, "R16B"}, + {"1.2.3.2016.1.1", GREATER, "R16C"}, + {"1.2.3.2016.1.1", EQUAL, "1.2.3.2016.1.1"}, + {"1.2.3.2016.1.1", GREATER, "0.5a1.dev"}, + {"1.2.3.2016.1.1", LESS, "1.8.B59BrZX"}, + {"1.2.3.2016.1.1", GREATER, "0.07b4p1"}, + {"1.2.3.2016.1.1", LESS, "3.99.5final.SP07"}, + {"1.2.3.2016.1.1", LESS, "3.99.5final.SP08"}, + {"1.2.3.2016.1.1", GREATER, "0.4.tbb.20100203"}, + {"1.2.3.2016.1.1", GREATER, "0.5.20120830CVS.el7"}, + {"1.2.3.2016.1.1", GREATER, "1.el7"}, + {"1.2.3.2016.1.1", GREATER, "1.el6"}, + {"1.2.3.2016.1.1", LESS, "10.el7"}, + {"1.2.3.2016.1.1", GREATER, "01.el7"}, + {"1.2.3.2016.1.1", GREATER, "0.17.20140318svn632.el7"}, + {"1.2.3.2016.1.1", GREATER, "0.17.20140318svn633.el7"}, + {"1.2.3.2016.1.1", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.2.3.2016.1.1", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.2.3.2016.1.1", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.2.3.2016.1.1", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.2.3.2016.1.1", LESS, "22.svn457.el7"}, + {"1.2.3.2016.1.1", LESS, "22.svn458.el7"}, + {"1.2.3.2016.1.1", GREATER, "~"}, + {"1.2.3.2016.1.1", GREATER, "~~"}, + {"1.2.3.2016.1.1", GREATER, "~1"}, + {"1.2.3.2016.1.1", GREATER, "~a"}, + {"1.2.3.2016.1.1", GREATER, "1~"}, + {"1.2.3.2016.1.1", LESS, "2~"}, + {"0.5a1.dev", GREATER, ""}, + {"0.5a1.dev", GREATER, "0"}, + {"0.5a1.dev", LESS, "1"}, + {"0.5a1.dev", LESS, "2"}, + {"0.5a1.dev", LESS, "10"}, + {"0.5a1.dev", LESS, "100"}, + {"0.5a1.dev", GREATER, "0.0"}, + {"0.5a1.dev", GREATER, "0.1"}, + {"0.5a1.dev", LESS, "0.10"}, + {"0.5a1.dev", LESS, "0.99"}, + {"0.5a1.dev", LESS, "1.0"}, + {"0.5a1.dev", LESS, "1.99"}, + {"0.5a1.dev", LESS, "2.0"}, + {"0.5a1.dev", GREATER, "0.0.0"}, + {"0.5a1.dev", GREATER, "0.0.1"}, + {"0.5a1.dev", GREATER, "0.0.2"}, + {"0.5a1.dev", GREATER, "0.0.10"}, + {"0.5a1.dev", GREATER, "0.0.99"}, + {"0.5a1.dev", GREATER, "0.1.0"}, + {"0.5a1.dev", GREATER, "0.2.0"}, + {"0.5a1.dev", LESS, "0.10.0"}, + {"0.5a1.dev", LESS, "0.99.0"}, + {"0.5a1.dev", LESS, "0.100.0"}, + {"0.5a1.dev", GREATER, "0.0.0.0"}, + {"0.5a1.dev", GREATER, "0.0.0.1"}, + {"0.5a1.dev", GREATER, "0.0.0.10"}, + {"0.5a1.dev", GREATER, "0.0.1.0"}, + {"0.5a1.dev", GREATER, "0.0.01.0"}, + {"0.5a1.dev", LESS, "1.2.3.4"}, + {"0.5a1.dev", LESS, "1-2-3-4"}, + {"0.5a1.dev", LESS, "20150101"}, + {"0.5a1.dev", LESS, "20151212"}, + {"0.5a1.dev", LESS, "20151212.0"}, + {"0.5a1.dev", LESS, "20151212.1"}, + {"0.5a1.dev", LESS, "2015.1.1"}, + {"0.5a1.dev", LESS, "2015.02.02"}, + {"0.5a1.dev", LESS, "2015.12.12"}, + {"0.5a1.dev", LESS, "1.2.3a"}, + {"0.5a1.dev", LESS, "1.2.3b"}, + {"0.5a1.dev", GREATER, "R16B"}, + {"0.5a1.dev", GREATER, "R16C"}, + {"0.5a1.dev", LESS, "1.2.3.2016.1.1"}, + {"0.5a1.dev", EQUAL, "0.5a1.dev"}, + {"0.5a1.dev", LESS, "1.8.B59BrZX"}, + {"0.5a1.dev", LESS, "0.07b4p1"}, + {"0.5a1.dev", LESS, "3.99.5final.SP07"}, + {"0.5a1.dev", LESS, "3.99.5final.SP08"}, + {"0.5a1.dev", GREATER, "0.4.tbb.20100203"}, + {"0.5a1.dev", LESS, "0.5.20120830CVS.el7"}, + {"0.5a1.dev", LESS, "1.el7"}, + {"0.5a1.dev", LESS, "1.el6"}, + {"0.5a1.dev", LESS, "10.el7"}, + {"0.5a1.dev", LESS, "01.el7"}, + {"0.5a1.dev", LESS, "0.17.20140318svn632.el7"}, + {"0.5a1.dev", LESS, "0.17.20140318svn633.el7"}, + {"0.5a1.dev", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.5a1.dev", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.5a1.dev", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.5a1.dev", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.5a1.dev", LESS, "22.svn457.el7"}, + {"0.5a1.dev", LESS, "22.svn458.el7"}, + {"0.5a1.dev", GREATER, "~"}, + {"0.5a1.dev", GREATER, "~~"}, + {"0.5a1.dev", GREATER, "~1"}, + {"0.5a1.dev", GREATER, "~a"}, + {"0.5a1.dev", LESS, "1~"}, + {"0.5a1.dev", LESS, "2~"}, + {"1.8.B59BrZX", GREATER, ""}, + {"1.8.B59BrZX", GREATER, "0"}, + {"1.8.B59BrZX", GREATER, "1"}, + {"1.8.B59BrZX", LESS, "2"}, + {"1.8.B59BrZX", LESS, "10"}, + {"1.8.B59BrZX", LESS, "100"}, + {"1.8.B59BrZX", GREATER, "0.0"}, + {"1.8.B59BrZX", GREATER, "0.1"}, + {"1.8.B59BrZX", GREATER, "0.10"}, + {"1.8.B59BrZX", GREATER, "0.99"}, + {"1.8.B59BrZX", GREATER, "1.0"}, + {"1.8.B59BrZX", LESS, "1.99"}, + {"1.8.B59BrZX", LESS, "2.0"}, + {"1.8.B59BrZX", GREATER, "0.0.0"}, + {"1.8.B59BrZX", GREATER, "0.0.1"}, + {"1.8.B59BrZX", GREATER, "0.0.2"}, + {"1.8.B59BrZX", GREATER, "0.0.10"}, + {"1.8.B59BrZX", GREATER, "0.0.99"}, + {"1.8.B59BrZX", GREATER, "0.1.0"}, + {"1.8.B59BrZX", GREATER, "0.2.0"}, + {"1.8.B59BrZX", GREATER, "0.10.0"}, + {"1.8.B59BrZX", GREATER, "0.99.0"}, + {"1.8.B59BrZX", GREATER, "0.100.0"}, + {"1.8.B59BrZX", GREATER, "0.0.0.0"}, + {"1.8.B59BrZX", GREATER, "0.0.0.1"}, + {"1.8.B59BrZX", GREATER, "0.0.0.10"}, + {"1.8.B59BrZX", GREATER, "0.0.1.0"}, + {"1.8.B59BrZX", GREATER, "0.0.01.0"}, + {"1.8.B59BrZX", GREATER, "1.2.3.4"}, + {"1.8.B59BrZX", GREATER, "1-2-3-4"}, + {"1.8.B59BrZX", LESS, "20150101"}, + {"1.8.B59BrZX", LESS, "20151212"}, + {"1.8.B59BrZX", LESS, "20151212.0"}, + {"1.8.B59BrZX", LESS, "20151212.1"}, + {"1.8.B59BrZX", LESS, "2015.1.1"}, + {"1.8.B59BrZX", LESS, "2015.02.02"}, + {"1.8.B59BrZX", LESS, "2015.12.12"}, + {"1.8.B59BrZX", GREATER, "1.2.3a"}, + {"1.8.B59BrZX", GREATER, "1.2.3b"}, + {"1.8.B59BrZX", GREATER, "R16B"}, + {"1.8.B59BrZX", GREATER, "R16C"}, + {"1.8.B59BrZX", GREATER, "1.2.3.2016.1.1"}, + {"1.8.B59BrZX", GREATER, "0.5a1.dev"}, + {"1.8.B59BrZX", EQUAL, "1.8.B59BrZX"}, + {"1.8.B59BrZX", GREATER, "0.07b4p1"}, + {"1.8.B59BrZX", LESS, "3.99.5final.SP07"}, + {"1.8.B59BrZX", LESS, "3.99.5final.SP08"}, + {"1.8.B59BrZX", GREATER, "0.4.tbb.20100203"}, + {"1.8.B59BrZX", GREATER, "0.5.20120830CVS.el7"}, + {"1.8.B59BrZX", GREATER, "1.el7"}, + {"1.8.B59BrZX", GREATER, "1.el6"}, + {"1.8.B59BrZX", LESS, "10.el7"}, + {"1.8.B59BrZX", GREATER, "01.el7"}, + {"1.8.B59BrZX", GREATER, "0.17.20140318svn632.el7"}, + {"1.8.B59BrZX", GREATER, "0.17.20140318svn633.el7"}, + {"1.8.B59BrZX", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.8.B59BrZX", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.8.B59BrZX", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.8.B59BrZX", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.8.B59BrZX", LESS, "22.svn457.el7"}, + {"1.8.B59BrZX", LESS, "22.svn458.el7"}, + {"1.8.B59BrZX", GREATER, "~"}, + {"1.8.B59BrZX", GREATER, "~~"}, + {"1.8.B59BrZX", GREATER, "~1"}, + {"1.8.B59BrZX", GREATER, "~a"}, + {"1.8.B59BrZX", GREATER, "1~"}, + {"1.8.B59BrZX", LESS, "2~"}, + {"0.07b4p1", GREATER, ""}, + {"0.07b4p1", GREATER, "0"}, + {"0.07b4p1", LESS, "1"}, + {"0.07b4p1", LESS, "2"}, + {"0.07b4p1", LESS, "10"}, + {"0.07b4p1", LESS, "100"}, + {"0.07b4p1", GREATER, "0.0"}, + {"0.07b4p1", GREATER, "0.1"}, + {"0.07b4p1", LESS, "0.10"}, + {"0.07b4p1", LESS, "0.99"}, + {"0.07b4p1", LESS, "1.0"}, + {"0.07b4p1", LESS, "1.99"}, + {"0.07b4p1", LESS, "2.0"}, + {"0.07b4p1", GREATER, "0.0.0"}, + {"0.07b4p1", GREATER, "0.0.1"}, + {"0.07b4p1", GREATER, "0.0.2"}, + {"0.07b4p1", GREATER, "0.0.10"}, + {"0.07b4p1", GREATER, "0.0.99"}, + {"0.07b4p1", GREATER, "0.1.0"}, + {"0.07b4p1", GREATER, "0.2.0"}, + {"0.07b4p1", LESS, "0.10.0"}, + {"0.07b4p1", LESS, "0.99.0"}, + {"0.07b4p1", LESS, "0.100.0"}, + {"0.07b4p1", GREATER, "0.0.0.0"}, + {"0.07b4p1", GREATER, "0.0.0.1"}, + {"0.07b4p1", GREATER, "0.0.0.10"}, + {"0.07b4p1", GREATER, "0.0.1.0"}, + {"0.07b4p1", GREATER, "0.0.01.0"}, + {"0.07b4p1", LESS, "1.2.3.4"}, + {"0.07b4p1", LESS, "1-2-3-4"}, + {"0.07b4p1", LESS, "20150101"}, + {"0.07b4p1", LESS, "20151212"}, + {"0.07b4p1", LESS, "20151212.0"}, + {"0.07b4p1", LESS, "20151212.1"}, + {"0.07b4p1", LESS, "2015.1.1"}, + {"0.07b4p1", LESS, "2015.02.02"}, + {"0.07b4p1", LESS, "2015.12.12"}, + {"0.07b4p1", LESS, "1.2.3a"}, + {"0.07b4p1", LESS, "1.2.3b"}, + {"0.07b4p1", GREATER, "R16B"}, + {"0.07b4p1", GREATER, "R16C"}, + {"0.07b4p1", LESS, "1.2.3.2016.1.1"}, + {"0.07b4p1", GREATER, "0.5a1.dev"}, + {"0.07b4p1", LESS, "1.8.B59BrZX"}, + {"0.07b4p1", EQUAL, "0.07b4p1"}, + {"0.07b4p1", LESS, "3.99.5final.SP07"}, + {"0.07b4p1", LESS, "3.99.5final.SP08"}, + {"0.07b4p1", GREATER, "0.4.tbb.20100203"}, + {"0.07b4p1", GREATER, "0.5.20120830CVS.el7"}, + {"0.07b4p1", LESS, "1.el7"}, + {"0.07b4p1", LESS, "1.el6"}, + {"0.07b4p1", LESS, "10.el7"}, + {"0.07b4p1", LESS, "01.el7"}, + {"0.07b4p1", LESS, "0.17.20140318svn632.el7"}, + {"0.07b4p1", LESS, "0.17.20140318svn633.el7"}, + {"0.07b4p1", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.07b4p1", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.07b4p1", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.07b4p1", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.07b4p1", LESS, "22.svn457.el7"}, + {"0.07b4p1", LESS, "22.svn458.el7"}, + {"0.07b4p1", GREATER, "~"}, + {"0.07b4p1", GREATER, "~~"}, + {"0.07b4p1", GREATER, "~1"}, + {"0.07b4p1", GREATER, "~a"}, + {"0.07b4p1", LESS, "1~"}, + {"0.07b4p1", LESS, "2~"}, + {"3.99.5final.SP07", GREATER, ""}, + {"3.99.5final.SP07", GREATER, "0"}, + {"3.99.5final.SP07", GREATER, "1"}, + {"3.99.5final.SP07", GREATER, "2"}, + {"3.99.5final.SP07", LESS, "10"}, + {"3.99.5final.SP07", LESS, "100"}, + {"3.99.5final.SP07", GREATER, "0.0"}, + {"3.99.5final.SP07", GREATER, "0.1"}, + {"3.99.5final.SP07", GREATER, "0.10"}, + {"3.99.5final.SP07", GREATER, "0.99"}, + {"3.99.5final.SP07", GREATER, "1.0"}, + {"3.99.5final.SP07", GREATER, "1.99"}, + {"3.99.5final.SP07", GREATER, "2.0"}, + {"3.99.5final.SP07", GREATER, "0.0.0"}, + {"3.99.5final.SP07", GREATER, "0.0.1"}, + {"3.99.5final.SP07", GREATER, "0.0.2"}, + {"3.99.5final.SP07", GREATER, "0.0.10"}, + {"3.99.5final.SP07", GREATER, "0.0.99"}, + {"3.99.5final.SP07", GREATER, "0.1.0"}, + {"3.99.5final.SP07", GREATER, "0.2.0"}, + {"3.99.5final.SP07", GREATER, "0.10.0"}, + {"3.99.5final.SP07", GREATER, "0.99.0"}, + {"3.99.5final.SP07", GREATER, "0.100.0"}, + {"3.99.5final.SP07", GREATER, "0.0.0.0"}, + {"3.99.5final.SP07", GREATER, "0.0.0.1"}, + {"3.99.5final.SP07", GREATER, "0.0.0.10"}, + {"3.99.5final.SP07", GREATER, "0.0.1.0"}, + {"3.99.5final.SP07", GREATER, "0.0.01.0"}, + {"3.99.5final.SP07", GREATER, "1.2.3.4"}, + {"3.99.5final.SP07", GREATER, "1-2-3-4"}, + {"3.99.5final.SP07", LESS, "20150101"}, + {"3.99.5final.SP07", LESS, "20151212"}, + {"3.99.5final.SP07", LESS, "20151212.0"}, + {"3.99.5final.SP07", LESS, "20151212.1"}, + {"3.99.5final.SP07", LESS, "2015.1.1"}, + {"3.99.5final.SP07", LESS, "2015.02.02"}, + {"3.99.5final.SP07", LESS, "2015.12.12"}, + {"3.99.5final.SP07", GREATER, "1.2.3a"}, + {"3.99.5final.SP07", GREATER, "1.2.3b"}, + {"3.99.5final.SP07", GREATER, "R16B"}, + {"3.99.5final.SP07", GREATER, "R16C"}, + {"3.99.5final.SP07", GREATER, "1.2.3.2016.1.1"}, + {"3.99.5final.SP07", GREATER, "0.5a1.dev"}, + {"3.99.5final.SP07", GREATER, "1.8.B59BrZX"}, + {"3.99.5final.SP07", GREATER, "0.07b4p1"}, + {"3.99.5final.SP07", EQUAL, "3.99.5final.SP07"}, + {"3.99.5final.SP07", LESS, "3.99.5final.SP08"}, + {"3.99.5final.SP07", GREATER, "0.4.tbb.20100203"}, + {"3.99.5final.SP07", GREATER, "0.5.20120830CVS.el7"}, + {"3.99.5final.SP07", GREATER, "1.el7"}, + {"3.99.5final.SP07", GREATER, "1.el6"}, + {"3.99.5final.SP07", LESS, "10.el7"}, + {"3.99.5final.SP07", GREATER, "01.el7"}, + {"3.99.5final.SP07", GREATER, "0.17.20140318svn632.el7"}, + {"3.99.5final.SP07", GREATER, "0.17.20140318svn633.el7"}, + {"3.99.5final.SP07", GREATER, "1.20140522gitad6fb3e.el7"}, + {"3.99.5final.SP07", GREATER, "1.20140522hitad6fb3e.el7"}, + {"3.99.5final.SP07", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"3.99.5final.SP07", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"3.99.5final.SP07", LESS, "22.svn457.el7"}, + {"3.99.5final.SP07", LESS, "22.svn458.el7"}, + {"3.99.5final.SP07", GREATER, "~"}, + {"3.99.5final.SP07", GREATER, "~~"}, + {"3.99.5final.SP07", GREATER, "~1"}, + {"3.99.5final.SP07", GREATER, "~a"}, + {"3.99.5final.SP07", GREATER, "1~"}, + {"3.99.5final.SP07", GREATER, "2~"}, + {"3.99.5final.SP08", GREATER, ""}, + {"3.99.5final.SP08", GREATER, "0"}, + {"3.99.5final.SP08", GREATER, "1"}, + {"3.99.5final.SP08", GREATER, "2"}, + {"3.99.5final.SP08", LESS, "10"}, + {"3.99.5final.SP08", LESS, "100"}, + {"3.99.5final.SP08", GREATER, "0.0"}, + {"3.99.5final.SP08", GREATER, "0.1"}, + {"3.99.5final.SP08", GREATER, "0.10"}, + {"3.99.5final.SP08", GREATER, "0.99"}, + {"3.99.5final.SP08", GREATER, "1.0"}, + {"3.99.5final.SP08", GREATER, "1.99"}, + {"3.99.5final.SP08", GREATER, "2.0"}, + {"3.99.5final.SP08", GREATER, "0.0.0"}, + {"3.99.5final.SP08", GREATER, "0.0.1"}, + {"3.99.5final.SP08", GREATER, "0.0.2"}, + {"3.99.5final.SP08", GREATER, "0.0.10"}, + {"3.99.5final.SP08", GREATER, "0.0.99"}, + {"3.99.5final.SP08", GREATER, "0.1.0"}, + {"3.99.5final.SP08", GREATER, "0.2.0"}, + {"3.99.5final.SP08", GREATER, "0.10.0"}, + {"3.99.5final.SP08", GREATER, "0.99.0"}, + {"3.99.5final.SP08", GREATER, "0.100.0"}, + {"3.99.5final.SP08", GREATER, "0.0.0.0"}, + {"3.99.5final.SP08", GREATER, "0.0.0.1"}, + {"3.99.5final.SP08", GREATER, "0.0.0.10"}, + {"3.99.5final.SP08", GREATER, "0.0.1.0"}, + {"3.99.5final.SP08", GREATER, "0.0.01.0"}, + {"3.99.5final.SP08", GREATER, "1.2.3.4"}, + {"3.99.5final.SP08", GREATER, "1-2-3-4"}, + {"3.99.5final.SP08", LESS, "20150101"}, + {"3.99.5final.SP08", LESS, "20151212"}, + {"3.99.5final.SP08", LESS, "20151212.0"}, + {"3.99.5final.SP08", LESS, "20151212.1"}, + {"3.99.5final.SP08", LESS, "2015.1.1"}, + {"3.99.5final.SP08", LESS, "2015.02.02"}, + {"3.99.5final.SP08", LESS, "2015.12.12"}, + {"3.99.5final.SP08", GREATER, "1.2.3a"}, + {"3.99.5final.SP08", GREATER, "1.2.3b"}, + {"3.99.5final.SP08", GREATER, "R16B"}, + {"3.99.5final.SP08", GREATER, "R16C"}, + {"3.99.5final.SP08", GREATER, "1.2.3.2016.1.1"}, + {"3.99.5final.SP08", GREATER, "0.5a1.dev"}, + {"3.99.5final.SP08", GREATER, "1.8.B59BrZX"}, + {"3.99.5final.SP08", GREATER, "0.07b4p1"}, + {"3.99.5final.SP08", GREATER, "3.99.5final.SP07"}, + {"3.99.5final.SP08", EQUAL, "3.99.5final.SP08"}, + {"3.99.5final.SP08", GREATER, "0.4.tbb.20100203"}, + {"3.99.5final.SP08", GREATER, "0.5.20120830CVS.el7"}, + {"3.99.5final.SP08", GREATER, "1.el7"}, + {"3.99.5final.SP08", GREATER, "1.el6"}, + {"3.99.5final.SP08", LESS, "10.el7"}, + {"3.99.5final.SP08", GREATER, "01.el7"}, + {"3.99.5final.SP08", GREATER, "0.17.20140318svn632.el7"}, + {"3.99.5final.SP08", GREATER, "0.17.20140318svn633.el7"}, + {"3.99.5final.SP08", GREATER, "1.20140522gitad6fb3e.el7"}, + {"3.99.5final.SP08", GREATER, "1.20140522hitad6fb3e.el7"}, + {"3.99.5final.SP08", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"3.99.5final.SP08", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"3.99.5final.SP08", LESS, "22.svn457.el7"}, + {"3.99.5final.SP08", LESS, "22.svn458.el7"}, + {"3.99.5final.SP08", GREATER, "~"}, + {"3.99.5final.SP08", GREATER, "~~"}, + {"3.99.5final.SP08", GREATER, "~1"}, + {"3.99.5final.SP08", GREATER, "~a"}, + {"3.99.5final.SP08", GREATER, "1~"}, + {"3.99.5final.SP08", GREATER, "2~"}, + {"0.4.tbb.20100203", GREATER, ""}, + {"0.4.tbb.20100203", GREATER, "0"}, + {"0.4.tbb.20100203", LESS, "1"}, + {"0.4.tbb.20100203", LESS, "2"}, + {"0.4.tbb.20100203", LESS, "10"}, + {"0.4.tbb.20100203", LESS, "100"}, + {"0.4.tbb.20100203", GREATER, "0.0"}, + {"0.4.tbb.20100203", GREATER, "0.1"}, + {"0.4.tbb.20100203", LESS, "0.10"}, + {"0.4.tbb.20100203", LESS, "0.99"}, + {"0.4.tbb.20100203", LESS, "1.0"}, + {"0.4.tbb.20100203", LESS, "1.99"}, + {"0.4.tbb.20100203", LESS, "2.0"}, + {"0.4.tbb.20100203", GREATER, "0.0.0"}, + {"0.4.tbb.20100203", GREATER, "0.0.1"}, + {"0.4.tbb.20100203", GREATER, "0.0.2"}, + {"0.4.tbb.20100203", GREATER, "0.0.10"}, + {"0.4.tbb.20100203", GREATER, "0.0.99"}, + {"0.4.tbb.20100203", GREATER, "0.1.0"}, + {"0.4.tbb.20100203", GREATER, "0.2.0"}, + {"0.4.tbb.20100203", LESS, "0.10.0"}, + {"0.4.tbb.20100203", LESS, "0.99.0"}, + {"0.4.tbb.20100203", LESS, "0.100.0"}, + {"0.4.tbb.20100203", GREATER, "0.0.0.0"}, + {"0.4.tbb.20100203", GREATER, "0.0.0.1"}, + {"0.4.tbb.20100203", GREATER, "0.0.0.10"}, + {"0.4.tbb.20100203", GREATER, "0.0.1.0"}, + {"0.4.tbb.20100203", GREATER, "0.0.01.0"}, + {"0.4.tbb.20100203", LESS, "1.2.3.4"}, + {"0.4.tbb.20100203", LESS, "1-2-3-4"}, + {"0.4.tbb.20100203", LESS, "20150101"}, + {"0.4.tbb.20100203", LESS, "20151212"}, + {"0.4.tbb.20100203", LESS, "20151212.0"}, + {"0.4.tbb.20100203", LESS, "20151212.1"}, + {"0.4.tbb.20100203", LESS, "2015.1.1"}, + {"0.4.tbb.20100203", LESS, "2015.02.02"}, + {"0.4.tbb.20100203", LESS, "2015.12.12"}, + {"0.4.tbb.20100203", LESS, "1.2.3a"}, + {"0.4.tbb.20100203", LESS, "1.2.3b"}, + {"0.4.tbb.20100203", GREATER, "R16B"}, + {"0.4.tbb.20100203", GREATER, "R16C"}, + {"0.4.tbb.20100203", LESS, "1.2.3.2016.1.1"}, + {"0.4.tbb.20100203", LESS, "0.5a1.dev"}, + {"0.4.tbb.20100203", LESS, "1.8.B59BrZX"}, + {"0.4.tbb.20100203", LESS, "0.07b4p1"}, + {"0.4.tbb.20100203", LESS, "3.99.5final.SP07"}, + {"0.4.tbb.20100203", LESS, "3.99.5final.SP08"}, + {"0.4.tbb.20100203", EQUAL, "0.4.tbb.20100203"}, + {"0.4.tbb.20100203", LESS, "0.5.20120830CVS.el7"}, + {"0.4.tbb.20100203", LESS, "1.el7"}, + {"0.4.tbb.20100203", LESS, "1.el6"}, + {"0.4.tbb.20100203", LESS, "10.el7"}, + {"0.4.tbb.20100203", LESS, "01.el7"}, + {"0.4.tbb.20100203", LESS, "0.17.20140318svn632.el7"}, + {"0.4.tbb.20100203", LESS, "0.17.20140318svn633.el7"}, + {"0.4.tbb.20100203", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.4.tbb.20100203", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.4.tbb.20100203", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.4.tbb.20100203", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.4.tbb.20100203", LESS, "22.svn457.el7"}, + {"0.4.tbb.20100203", LESS, "22.svn458.el7"}, + {"0.4.tbb.20100203", GREATER, "~"}, + {"0.4.tbb.20100203", GREATER, "~~"}, + {"0.4.tbb.20100203", GREATER, "~1"}, + {"0.4.tbb.20100203", GREATER, "~a"}, + {"0.4.tbb.20100203", LESS, "1~"}, + {"0.4.tbb.20100203", LESS, "2~"}, + {"0.5.20120830CVS.el7", GREATER, ""}, + {"0.5.20120830CVS.el7", GREATER, "0"}, + {"0.5.20120830CVS.el7", LESS, "1"}, + {"0.5.20120830CVS.el7", LESS, "2"}, + {"0.5.20120830CVS.el7", LESS, "10"}, + {"0.5.20120830CVS.el7", LESS, "100"}, + {"0.5.20120830CVS.el7", GREATER, "0.0"}, + {"0.5.20120830CVS.el7", GREATER, "0.1"}, + {"0.5.20120830CVS.el7", LESS, "0.10"}, + {"0.5.20120830CVS.el7", LESS, "0.99"}, + {"0.5.20120830CVS.el7", LESS, "1.0"}, + {"0.5.20120830CVS.el7", LESS, "1.99"}, + {"0.5.20120830CVS.el7", LESS, "2.0"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.0"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.1"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.2"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.10"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.99"}, + {"0.5.20120830CVS.el7", GREATER, "0.1.0"}, + {"0.5.20120830CVS.el7", GREATER, "0.2.0"}, + {"0.5.20120830CVS.el7", LESS, "0.10.0"}, + {"0.5.20120830CVS.el7", LESS, "0.99.0"}, + {"0.5.20120830CVS.el7", LESS, "0.100.0"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.0.0"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.0.1"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.0.10"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.1.0"}, + {"0.5.20120830CVS.el7", GREATER, "0.0.01.0"}, + {"0.5.20120830CVS.el7", LESS, "1.2.3.4"}, + {"0.5.20120830CVS.el7", LESS, "1-2-3-4"}, + {"0.5.20120830CVS.el7", LESS, "20150101"}, + {"0.5.20120830CVS.el7", LESS, "20151212"}, + {"0.5.20120830CVS.el7", LESS, "20151212.0"}, + {"0.5.20120830CVS.el7", LESS, "20151212.1"}, + {"0.5.20120830CVS.el7", LESS, "2015.1.1"}, + {"0.5.20120830CVS.el7", LESS, "2015.02.02"}, + {"0.5.20120830CVS.el7", LESS, "2015.12.12"}, + {"0.5.20120830CVS.el7", LESS, "1.2.3a"}, + {"0.5.20120830CVS.el7", LESS, "1.2.3b"}, + {"0.5.20120830CVS.el7", GREATER, "R16B"}, + {"0.5.20120830CVS.el7", GREATER, "R16C"}, + {"0.5.20120830CVS.el7", LESS, "1.2.3.2016.1.1"}, + {"0.5.20120830CVS.el7", GREATER, "0.5a1.dev"}, + {"0.5.20120830CVS.el7", LESS, "1.8.B59BrZX"}, + {"0.5.20120830CVS.el7", LESS, "0.07b4p1"}, + {"0.5.20120830CVS.el7", LESS, "3.99.5final.SP07"}, + {"0.5.20120830CVS.el7", LESS, "3.99.5final.SP08"}, + {"0.5.20120830CVS.el7", GREATER, "0.4.tbb.20100203"}, + {"0.5.20120830CVS.el7", EQUAL, "0.5.20120830CVS.el7"}, + {"0.5.20120830CVS.el7", LESS, "1.el7"}, + {"0.5.20120830CVS.el7", LESS, "1.el6"}, + {"0.5.20120830CVS.el7", LESS, "10.el7"}, + {"0.5.20120830CVS.el7", LESS, "01.el7"}, + {"0.5.20120830CVS.el7", LESS, "0.17.20140318svn632.el7"}, + {"0.5.20120830CVS.el7", LESS, "0.17.20140318svn633.el7"}, + {"0.5.20120830CVS.el7", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.5.20120830CVS.el7", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.5.20120830CVS.el7", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.5.20120830CVS.el7", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.5.20120830CVS.el7", LESS, "22.svn457.el7"}, + {"0.5.20120830CVS.el7", LESS, "22.svn458.el7"}, + {"0.5.20120830CVS.el7", GREATER, "~"}, + {"0.5.20120830CVS.el7", GREATER, "~~"}, + {"0.5.20120830CVS.el7", GREATER, "~1"}, + {"0.5.20120830CVS.el7", GREATER, "~a"}, + {"0.5.20120830CVS.el7", LESS, "1~"}, + {"0.5.20120830CVS.el7", LESS, "2~"}, + {"1.el7", GREATER, ""}, + {"1.el7", GREATER, "0"}, + {"1.el7", GREATER, "1"}, + {"1.el7", LESS, "2"}, + {"1.el7", LESS, "10"}, + {"1.el7", LESS, "100"}, + {"1.el7", GREATER, "0.0"}, + {"1.el7", GREATER, "0.1"}, + {"1.el7", GREATER, "0.10"}, + {"1.el7", GREATER, "0.99"}, + {"1.el7", LESS, "1.0"}, + {"1.el7", LESS, "1.99"}, + {"1.el7", LESS, "2.0"}, + {"1.el7", GREATER, "0.0.0"}, + {"1.el7", GREATER, "0.0.1"}, + {"1.el7", GREATER, "0.0.2"}, + {"1.el7", GREATER, "0.0.10"}, + {"1.el7", GREATER, "0.0.99"}, + {"1.el7", GREATER, "0.1.0"}, + {"1.el7", GREATER, "0.2.0"}, + {"1.el7", GREATER, "0.10.0"}, + {"1.el7", GREATER, "0.99.0"}, + {"1.el7", GREATER, "0.100.0"}, + {"1.el7", GREATER, "0.0.0.0"}, + {"1.el7", GREATER, "0.0.0.1"}, + {"1.el7", GREATER, "0.0.0.10"}, + {"1.el7", GREATER, "0.0.1.0"}, + {"1.el7", GREATER, "0.0.01.0"}, + {"1.el7", LESS, "1.2.3.4"}, + {"1.el7", GREATER, "1-2-3-4"}, + {"1.el7", LESS, "20150101"}, + {"1.el7", LESS, "20151212"}, + {"1.el7", LESS, "20151212.0"}, + {"1.el7", LESS, "20151212.1"}, + {"1.el7", LESS, "2015.1.1"}, + {"1.el7", LESS, "2015.02.02"}, + {"1.el7", LESS, "2015.12.12"}, + {"1.el7", LESS, "1.2.3a"}, + {"1.el7", LESS, "1.2.3b"}, + {"1.el7", GREATER, "R16B"}, + {"1.el7", GREATER, "R16C"}, + {"1.el7", LESS, "1.2.3.2016.1.1"}, + {"1.el7", GREATER, "0.5a1.dev"}, + {"1.el7", LESS, "1.8.B59BrZX"}, + {"1.el7", GREATER, "0.07b4p1"}, + {"1.el7", LESS, "3.99.5final.SP07"}, + {"1.el7", LESS, "3.99.5final.SP08"}, + {"1.el7", GREATER, "0.4.tbb.20100203"}, + {"1.el7", GREATER, "0.5.20120830CVS.el7"}, + {"1.el7", EQUAL, "1.el7"}, + {"1.el7", GREATER, "1.el6"}, + {"1.el7", LESS, "10.el7"}, + {"1.el7", EQUAL, "01.el7"}, + {"1.el7", GREATER, "0.17.20140318svn632.el7"}, + {"1.el7", GREATER, "0.17.20140318svn633.el7"}, + {"1.el7", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.el7", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.el7", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.el7", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.el7", LESS, "22.svn457.el7"}, + {"1.el7", LESS, "22.svn458.el7"}, + {"1.el7", GREATER, "~"}, + {"1.el7", GREATER, "~~"}, + {"1.el7", GREATER, "~1"}, + {"1.el7", GREATER, "~a"}, + {"1.el7", GREATER, "1~"}, + {"1.el7", LESS, "2~"}, + {"1.el6", GREATER, ""}, + {"1.el6", GREATER, "0"}, + {"1.el6", GREATER, "1"}, + {"1.el6", LESS, "2"}, + {"1.el6", LESS, "10"}, + {"1.el6", LESS, "100"}, + {"1.el6", GREATER, "0.0"}, + {"1.el6", GREATER, "0.1"}, + {"1.el6", GREATER, "0.10"}, + {"1.el6", GREATER, "0.99"}, + {"1.el6", LESS, "1.0"}, + {"1.el6", LESS, "1.99"}, + {"1.el6", LESS, "2.0"}, + {"1.el6", GREATER, "0.0.0"}, + {"1.el6", GREATER, "0.0.1"}, + {"1.el6", GREATER, "0.0.2"}, + {"1.el6", GREATER, "0.0.10"}, + {"1.el6", GREATER, "0.0.99"}, + {"1.el6", GREATER, "0.1.0"}, + {"1.el6", GREATER, "0.2.0"}, + {"1.el6", GREATER, "0.10.0"}, + {"1.el6", GREATER, "0.99.0"}, + {"1.el6", GREATER, "0.100.0"}, + {"1.el6", GREATER, "0.0.0.0"}, + {"1.el6", GREATER, "0.0.0.1"}, + {"1.el6", GREATER, "0.0.0.10"}, + {"1.el6", GREATER, "0.0.1.0"}, + {"1.el6", GREATER, "0.0.01.0"}, + {"1.el6", LESS, "1.2.3.4"}, + {"1.el6", GREATER, "1-2-3-4"}, + {"1.el6", LESS, "20150101"}, + {"1.el6", LESS, "20151212"}, + {"1.el6", LESS, "20151212.0"}, + {"1.el6", LESS, "20151212.1"}, + {"1.el6", LESS, "2015.1.1"}, + {"1.el6", LESS, "2015.02.02"}, + {"1.el6", LESS, "2015.12.12"}, + {"1.el6", LESS, "1.2.3a"}, + {"1.el6", LESS, "1.2.3b"}, + {"1.el6", GREATER, "R16B"}, + {"1.el6", GREATER, "R16C"}, + {"1.el6", LESS, "1.2.3.2016.1.1"}, + {"1.el6", GREATER, "0.5a1.dev"}, + {"1.el6", LESS, "1.8.B59BrZX"}, + {"1.el6", GREATER, "0.07b4p1"}, + {"1.el6", LESS, "3.99.5final.SP07"}, + {"1.el6", LESS, "3.99.5final.SP08"}, + {"1.el6", GREATER, "0.4.tbb.20100203"}, + {"1.el6", GREATER, "0.5.20120830CVS.el7"}, + {"1.el6", LESS, "1.el7"}, + {"1.el6", EQUAL, "1.el6"}, + {"1.el6", LESS, "10.el7"}, + {"1.el6", LESS, "01.el7"}, + {"1.el6", GREATER, "0.17.20140318svn632.el7"}, + {"1.el6", GREATER, "0.17.20140318svn633.el7"}, + {"1.el6", LESS, "1.20140522gitad6fb3e.el7"}, + {"1.el6", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.el6", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.el6", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.el6", LESS, "22.svn457.el7"}, + {"1.el6", LESS, "22.svn458.el7"}, + {"1.el6", GREATER, "~"}, + {"1.el6", GREATER, "~~"}, + {"1.el6", GREATER, "~1"}, + {"1.el6", GREATER, "~a"}, + {"1.el6", GREATER, "1~"}, + {"1.el6", LESS, "2~"}, + {"10.el7", GREATER, ""}, + {"10.el7", GREATER, "0"}, + {"10.el7", GREATER, "1"}, + {"10.el7", GREATER, "2"}, + {"10.el7", GREATER, "10"}, + {"10.el7", LESS, "100"}, + {"10.el7", GREATER, "0.0"}, + {"10.el7", GREATER, "0.1"}, + {"10.el7", GREATER, "0.10"}, + {"10.el7", GREATER, "0.99"}, + {"10.el7", GREATER, "1.0"}, + {"10.el7", GREATER, "1.99"}, + {"10.el7", GREATER, "2.0"}, + {"10.el7", GREATER, "0.0.0"}, + {"10.el7", GREATER, "0.0.1"}, + {"10.el7", GREATER, "0.0.2"}, + {"10.el7", GREATER, "0.0.10"}, + {"10.el7", GREATER, "0.0.99"}, + {"10.el7", GREATER, "0.1.0"}, + {"10.el7", GREATER, "0.2.0"}, + {"10.el7", GREATER, "0.10.0"}, + {"10.el7", GREATER, "0.99.0"}, + {"10.el7", GREATER, "0.100.0"}, + {"10.el7", GREATER, "0.0.0.0"}, + {"10.el7", GREATER, "0.0.0.1"}, + {"10.el7", GREATER, "0.0.0.10"}, + {"10.el7", GREATER, "0.0.1.0"}, + {"10.el7", GREATER, "0.0.01.0"}, + {"10.el7", GREATER, "1.2.3.4"}, + {"10.el7", GREATER, "1-2-3-4"}, + {"10.el7", LESS, "20150101"}, + {"10.el7", LESS, "20151212"}, + {"10.el7", LESS, "20151212.0"}, + {"10.el7", LESS, "20151212.1"}, + {"10.el7", LESS, "2015.1.1"}, + {"10.el7", LESS, "2015.02.02"}, + {"10.el7", LESS, "2015.12.12"}, + {"10.el7", GREATER, "1.2.3a"}, + {"10.el7", GREATER, "1.2.3b"}, + {"10.el7", GREATER, "R16B"}, + {"10.el7", GREATER, "R16C"}, + {"10.el7", GREATER, "1.2.3.2016.1.1"}, + {"10.el7", GREATER, "0.5a1.dev"}, + {"10.el7", GREATER, "1.8.B59BrZX"}, + {"10.el7", GREATER, "0.07b4p1"}, + {"10.el7", GREATER, "3.99.5final.SP07"}, + {"10.el7", GREATER, "3.99.5final.SP08"}, + {"10.el7", GREATER, "0.4.tbb.20100203"}, + {"10.el7", GREATER, "0.5.20120830CVS.el7"}, + {"10.el7", GREATER, "1.el7"}, + {"10.el7", GREATER, "1.el6"}, + {"10.el7", EQUAL, "10.el7"}, + {"10.el7", GREATER, "01.el7"}, + {"10.el7", GREATER, "0.17.20140318svn632.el7"}, + {"10.el7", GREATER, "0.17.20140318svn633.el7"}, + {"10.el7", GREATER, "1.20140522gitad6fb3e.el7"}, + {"10.el7", GREATER, "1.20140522hitad6fb3e.el7"}, + {"10.el7", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"10.el7", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"10.el7", LESS, "22.svn457.el7"}, + {"10.el7", LESS, "22.svn458.el7"}, + {"10.el7", GREATER, "~"}, + {"10.el7", GREATER, "~~"}, + {"10.el7", GREATER, "~1"}, + {"10.el7", GREATER, "~a"}, + {"10.el7", GREATER, "1~"}, + {"10.el7", GREATER, "2~"}, + {"01.el7", GREATER, ""}, + {"01.el7", GREATER, "0"}, + {"01.el7", GREATER, "1"}, + {"01.el7", LESS, "2"}, + {"01.el7", LESS, "10"}, + {"01.el7", LESS, "100"}, + {"01.el7", GREATER, "0.0"}, + {"01.el7", GREATER, "0.1"}, + {"01.el7", GREATER, "0.10"}, + {"01.el7", GREATER, "0.99"}, + {"01.el7", LESS, "1.0"}, + {"01.el7", LESS, "1.99"}, + {"01.el7", LESS, "2.0"}, + {"01.el7", GREATER, "0.0.0"}, + {"01.el7", GREATER, "0.0.1"}, + {"01.el7", GREATER, "0.0.2"}, + {"01.el7", GREATER, "0.0.10"}, + {"01.el7", GREATER, "0.0.99"}, + {"01.el7", GREATER, "0.1.0"}, + {"01.el7", GREATER, "0.2.0"}, + {"01.el7", GREATER, "0.10.0"}, + {"01.el7", GREATER, "0.99.0"}, + {"01.el7", GREATER, "0.100.0"}, + {"01.el7", GREATER, "0.0.0.0"}, + {"01.el7", GREATER, "0.0.0.1"}, + {"01.el7", GREATER, "0.0.0.10"}, + {"01.el7", GREATER, "0.0.1.0"}, + {"01.el7", GREATER, "0.0.01.0"}, + {"01.el7", LESS, "1.2.3.4"}, + {"01.el7", GREATER, "1-2-3-4"}, + {"01.el7", LESS, "20150101"}, + {"01.el7", LESS, "20151212"}, + {"01.el7", LESS, "20151212.0"}, + {"01.el7", LESS, "20151212.1"}, + {"01.el7", LESS, "2015.1.1"}, + {"01.el7", LESS, "2015.02.02"}, + {"01.el7", LESS, "2015.12.12"}, + {"01.el7", LESS, "1.2.3a"}, + {"01.el7", LESS, "1.2.3b"}, + {"01.el7", GREATER, "R16B"}, + {"01.el7", GREATER, "R16C"}, + {"01.el7", LESS, "1.2.3.2016.1.1"}, + {"01.el7", GREATER, "0.5a1.dev"}, + {"01.el7", LESS, "1.8.B59BrZX"}, + {"01.el7", GREATER, "0.07b4p1"}, + {"01.el7", LESS, "3.99.5final.SP07"}, + {"01.el7", LESS, "3.99.5final.SP08"}, + {"01.el7", GREATER, "0.4.tbb.20100203"}, + {"01.el7", GREATER, "0.5.20120830CVS.el7"}, + {"01.el7", EQUAL, "1.el7"}, + {"01.el7", GREATER, "1.el6"}, + {"01.el7", LESS, "10.el7"}, + {"01.el7", EQUAL, "01.el7"}, + {"01.el7", GREATER, "0.17.20140318svn632.el7"}, + {"01.el7", GREATER, "0.17.20140318svn633.el7"}, + {"01.el7", LESS, "1.20140522gitad6fb3e.el7"}, + {"01.el7", LESS, "1.20140522hitad6fb3e.el7"}, + {"01.el7", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"01.el7", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"01.el7", LESS, "22.svn457.el7"}, + {"01.el7", LESS, "22.svn458.el7"}, + {"01.el7", GREATER, "~"}, + {"01.el7", GREATER, "~~"}, + {"01.el7", GREATER, "~1"}, + {"01.el7", GREATER, "~a"}, + {"01.el7", GREATER, "1~"}, + {"01.el7", LESS, "2~"}, + {"0.17.20140318svn632.el7", GREATER, ""}, + {"0.17.20140318svn632.el7", GREATER, "0"}, + {"0.17.20140318svn632.el7", LESS, "1"}, + {"0.17.20140318svn632.el7", LESS, "2"}, + {"0.17.20140318svn632.el7", LESS, "10"}, + {"0.17.20140318svn632.el7", LESS, "100"}, + {"0.17.20140318svn632.el7", GREATER, "0.0"}, + {"0.17.20140318svn632.el7", GREATER, "0.1"}, + {"0.17.20140318svn632.el7", GREATER, "0.10"}, + {"0.17.20140318svn632.el7", LESS, "0.99"}, + {"0.17.20140318svn632.el7", LESS, "1.0"}, + {"0.17.20140318svn632.el7", LESS, "1.99"}, + {"0.17.20140318svn632.el7", LESS, "2.0"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.0"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.1"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.2"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.10"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.99"}, + {"0.17.20140318svn632.el7", GREATER, "0.1.0"}, + {"0.17.20140318svn632.el7", GREATER, "0.2.0"}, + {"0.17.20140318svn632.el7", GREATER, "0.10.0"}, + {"0.17.20140318svn632.el7", LESS, "0.99.0"}, + {"0.17.20140318svn632.el7", LESS, "0.100.0"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.0.0"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.0.1"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.0.10"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.1.0"}, + {"0.17.20140318svn632.el7", GREATER, "0.0.01.0"}, + {"0.17.20140318svn632.el7", LESS, "1.2.3.4"}, + {"0.17.20140318svn632.el7", LESS, "1-2-3-4"}, + {"0.17.20140318svn632.el7", LESS, "20150101"}, + {"0.17.20140318svn632.el7", LESS, "20151212"}, + {"0.17.20140318svn632.el7", LESS, "20151212.0"}, + {"0.17.20140318svn632.el7", LESS, "20151212.1"}, + {"0.17.20140318svn632.el7", LESS, "2015.1.1"}, + {"0.17.20140318svn632.el7", LESS, "2015.02.02"}, + {"0.17.20140318svn632.el7", LESS, "2015.12.12"}, + {"0.17.20140318svn632.el7", LESS, "1.2.3a"}, + {"0.17.20140318svn632.el7", LESS, "1.2.3b"}, + {"0.17.20140318svn632.el7", GREATER, "R16B"}, + {"0.17.20140318svn632.el7", GREATER, "R16C"}, + {"0.17.20140318svn632.el7", LESS, "1.2.3.2016.1.1"}, + {"0.17.20140318svn632.el7", GREATER, "0.5a1.dev"}, + {"0.17.20140318svn632.el7", LESS, "1.8.B59BrZX"}, + {"0.17.20140318svn632.el7", GREATER, "0.07b4p1"}, + {"0.17.20140318svn632.el7", LESS, "3.99.5final.SP07"}, + {"0.17.20140318svn632.el7", LESS, "3.99.5final.SP08"}, + {"0.17.20140318svn632.el7", GREATER, "0.4.tbb.20100203"}, + {"0.17.20140318svn632.el7", GREATER, "0.5.20120830CVS.el7"}, + {"0.17.20140318svn632.el7", LESS, "1.el7"}, + {"0.17.20140318svn632.el7", LESS, "1.el6"}, + {"0.17.20140318svn632.el7", LESS, "10.el7"}, + {"0.17.20140318svn632.el7", LESS, "01.el7"}, + {"0.17.20140318svn632.el7", EQUAL, "0.17.20140318svn632.el7"}, + {"0.17.20140318svn632.el7", LESS, "0.17.20140318svn633.el7"}, + {"0.17.20140318svn632.el7", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.17.20140318svn632.el7", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.17.20140318svn632.el7", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.17.20140318svn632.el7", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.17.20140318svn632.el7", LESS, "22.svn457.el7"}, + {"0.17.20140318svn632.el7", LESS, "22.svn458.el7"}, + {"0.17.20140318svn632.el7", GREATER, "~"}, + {"0.17.20140318svn632.el7", GREATER, "~~"}, + {"0.17.20140318svn632.el7", GREATER, "~1"}, + {"0.17.20140318svn632.el7", GREATER, "~a"}, + {"0.17.20140318svn632.el7", LESS, "1~"}, + {"0.17.20140318svn632.el7", LESS, "2~"}, + {"0.17.20140318svn633.el7", GREATER, ""}, + {"0.17.20140318svn633.el7", GREATER, "0"}, + {"0.17.20140318svn633.el7", LESS, "1"}, + {"0.17.20140318svn633.el7", LESS, "2"}, + {"0.17.20140318svn633.el7", LESS, "10"}, + {"0.17.20140318svn633.el7", LESS, "100"}, + {"0.17.20140318svn633.el7", GREATER, "0.0"}, + {"0.17.20140318svn633.el7", GREATER, "0.1"}, + {"0.17.20140318svn633.el7", GREATER, "0.10"}, + {"0.17.20140318svn633.el7", LESS, "0.99"}, + {"0.17.20140318svn633.el7", LESS, "1.0"}, + {"0.17.20140318svn633.el7", LESS, "1.99"}, + {"0.17.20140318svn633.el7", LESS, "2.0"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.0"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.1"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.2"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.10"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.99"}, + {"0.17.20140318svn633.el7", GREATER, "0.1.0"}, + {"0.17.20140318svn633.el7", GREATER, "0.2.0"}, + {"0.17.20140318svn633.el7", GREATER, "0.10.0"}, + {"0.17.20140318svn633.el7", LESS, "0.99.0"}, + {"0.17.20140318svn633.el7", LESS, "0.100.0"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.0.0"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.0.1"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.0.10"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.1.0"}, + {"0.17.20140318svn633.el7", GREATER, "0.0.01.0"}, + {"0.17.20140318svn633.el7", LESS, "1.2.3.4"}, + {"0.17.20140318svn633.el7", LESS, "1-2-3-4"}, + {"0.17.20140318svn633.el7", LESS, "20150101"}, + {"0.17.20140318svn633.el7", LESS, "20151212"}, + {"0.17.20140318svn633.el7", LESS, "20151212.0"}, + {"0.17.20140318svn633.el7", LESS, "20151212.1"}, + {"0.17.20140318svn633.el7", LESS, "2015.1.1"}, + {"0.17.20140318svn633.el7", LESS, "2015.02.02"}, + {"0.17.20140318svn633.el7", LESS, "2015.12.12"}, + {"0.17.20140318svn633.el7", LESS, "1.2.3a"}, + {"0.17.20140318svn633.el7", LESS, "1.2.3b"}, + {"0.17.20140318svn633.el7", GREATER, "R16B"}, + {"0.17.20140318svn633.el7", GREATER, "R16C"}, + {"0.17.20140318svn633.el7", LESS, "1.2.3.2016.1.1"}, + {"0.17.20140318svn633.el7", GREATER, "0.5a1.dev"}, + {"0.17.20140318svn633.el7", LESS, "1.8.B59BrZX"}, + {"0.17.20140318svn633.el7", GREATER, "0.07b4p1"}, + {"0.17.20140318svn633.el7", LESS, "3.99.5final.SP07"}, + {"0.17.20140318svn633.el7", LESS, "3.99.5final.SP08"}, + {"0.17.20140318svn633.el7", GREATER, "0.4.tbb.20100203"}, + {"0.17.20140318svn633.el7", GREATER, "0.5.20120830CVS.el7"}, + {"0.17.20140318svn633.el7", LESS, "1.el7"}, + {"0.17.20140318svn633.el7", LESS, "1.el6"}, + {"0.17.20140318svn633.el7", LESS, "10.el7"}, + {"0.17.20140318svn633.el7", LESS, "01.el7"}, + {"0.17.20140318svn633.el7", GREATER, "0.17.20140318svn632.el7"}, + {"0.17.20140318svn633.el7", EQUAL, "0.17.20140318svn633.el7"}, + {"0.17.20140318svn633.el7", LESS, "1.20140522gitad6fb3e.el7"}, + {"0.17.20140318svn633.el7", LESS, "1.20140522hitad6fb3e.el7"}, + {"0.17.20140318svn633.el7", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"0.17.20140318svn633.el7", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"0.17.20140318svn633.el7", LESS, "22.svn457.el7"}, + {"0.17.20140318svn633.el7", LESS, "22.svn458.el7"}, + {"0.17.20140318svn633.el7", GREATER, "~"}, + {"0.17.20140318svn633.el7", GREATER, "~~"}, + {"0.17.20140318svn633.el7", GREATER, "~1"}, + {"0.17.20140318svn633.el7", GREATER, "~a"}, + {"0.17.20140318svn633.el7", LESS, "1~"}, + {"0.17.20140318svn633.el7", LESS, "2~"}, + {"1.20140522gitad6fb3e.el7", GREATER, ""}, + {"1.20140522gitad6fb3e.el7", GREATER, "0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1"}, + {"1.20140522gitad6fb3e.el7", LESS, "2"}, + {"1.20140522gitad6fb3e.el7", LESS, "10"}, + {"1.20140522gitad6fb3e.el7", LESS, "100"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.1"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.10"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.99"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.99"}, + {"1.20140522gitad6fb3e.el7", LESS, "2.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.1"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.2"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.10"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.99"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.1.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.2.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.10.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.99.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.100.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.0.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.0.1"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.0.10"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.1.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.0.01.0"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.2.3.4"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1-2-3-4"}, + {"1.20140522gitad6fb3e.el7", LESS, "20150101"}, + {"1.20140522gitad6fb3e.el7", LESS, "20151212"}, + {"1.20140522gitad6fb3e.el7", LESS, "20151212.0"}, + {"1.20140522gitad6fb3e.el7", LESS, "20151212.1"}, + {"1.20140522gitad6fb3e.el7", LESS, "2015.1.1"}, + {"1.20140522gitad6fb3e.el7", LESS, "2015.02.02"}, + {"1.20140522gitad6fb3e.el7", LESS, "2015.12.12"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.2.3a"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.2.3b"}, + {"1.20140522gitad6fb3e.el7", GREATER, "R16B"}, + {"1.20140522gitad6fb3e.el7", GREATER, "R16C"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.2.3.2016.1.1"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.5a1.dev"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.8.B59BrZX"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.07b4p1"}, + {"1.20140522gitad6fb3e.el7", LESS, "3.99.5final.SP07"}, + {"1.20140522gitad6fb3e.el7", LESS, "3.99.5final.SP08"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.4.tbb.20100203"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.5.20120830CVS.el7"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.el7"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1.el6"}, + {"1.20140522gitad6fb3e.el7", LESS, "10.el7"}, + {"1.20140522gitad6fb3e.el7", GREATER, "01.el7"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.17.20140318svn632.el7"}, + {"1.20140522gitad6fb3e.el7", GREATER, "0.17.20140318svn633.el7"}, + {"1.20140522gitad6fb3e.el7", EQUAL, "1.20140522gitad6fb3e.el7"}, + {"1.20140522gitad6fb3e.el7", LESS, "1.20140522hitad6fb3e.el7"}, + {"1.20140522gitad6fb3e.el7", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.20140522gitad6fb3e.el7", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.20140522gitad6fb3e.el7", LESS, "22.svn457.el7"}, + {"1.20140522gitad6fb3e.el7", LESS, "22.svn458.el7"}, + {"1.20140522gitad6fb3e.el7", GREATER, "~"}, + {"1.20140522gitad6fb3e.el7", GREATER, "~~"}, + {"1.20140522gitad6fb3e.el7", GREATER, "~1"}, + {"1.20140522gitad6fb3e.el7", GREATER, "~a"}, + {"1.20140522gitad6fb3e.el7", GREATER, "1~"}, + {"1.20140522gitad6fb3e.el7", LESS, "2~"}, + {"1.20140522hitad6fb3e.el7", GREATER, ""}, + {"1.20140522hitad6fb3e.el7", GREATER, "0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1"}, + {"1.20140522hitad6fb3e.el7", LESS, "2"}, + {"1.20140522hitad6fb3e.el7", LESS, "10"}, + {"1.20140522hitad6fb3e.el7", LESS, "100"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.1"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.10"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.99"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.99"}, + {"1.20140522hitad6fb3e.el7", LESS, "2.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.1"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.2"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.10"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.99"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.1.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.2.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.10.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.99.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.100.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.0.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.0.1"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.0.10"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.1.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.0.01.0"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.2.3.4"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1-2-3-4"}, + {"1.20140522hitad6fb3e.el7", LESS, "20150101"}, + {"1.20140522hitad6fb3e.el7", LESS, "20151212"}, + {"1.20140522hitad6fb3e.el7", LESS, "20151212.0"}, + {"1.20140522hitad6fb3e.el7", LESS, "20151212.1"}, + {"1.20140522hitad6fb3e.el7", LESS, "2015.1.1"}, + {"1.20140522hitad6fb3e.el7", LESS, "2015.02.02"}, + {"1.20140522hitad6fb3e.el7", LESS, "2015.12.12"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.2.3a"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.2.3b"}, + {"1.20140522hitad6fb3e.el7", GREATER, "R16B"}, + {"1.20140522hitad6fb3e.el7", GREATER, "R16C"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.2.3.2016.1.1"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.5a1.dev"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.8.B59BrZX"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.07b4p1"}, + {"1.20140522hitad6fb3e.el7", LESS, "3.99.5final.SP07"}, + {"1.20140522hitad6fb3e.el7", LESS, "3.99.5final.SP08"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.4.tbb.20100203"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.5.20120830CVS.el7"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.el7"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.el6"}, + {"1.20140522hitad6fb3e.el7", LESS, "10.el7"}, + {"1.20140522hitad6fb3e.el7", GREATER, "01.el7"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.17.20140318svn632.el7"}, + {"1.20140522hitad6fb3e.el7", GREATER, "0.17.20140318svn633.el7"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1.20140522gitad6fb3e.el7"}, + {"1.20140522hitad6fb3e.el7", EQUAL, "1.20140522hitad6fb3e.el7"}, + {"1.20140522hitad6fb3e.el7", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1.20140522hitad6fb3e.el7", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1.20140522hitad6fb3e.el7", LESS, "22.svn457.el7"}, + {"1.20140522hitad6fb3e.el7", LESS, "22.svn458.el7"}, + {"1.20140522hitad6fb3e.el7", GREATER, "~"}, + {"1.20140522hitad6fb3e.el7", GREATER, "~~"}, + {"1.20140522hitad6fb3e.el7", GREATER, "~1"}, + {"1.20140522hitad6fb3e.el7", GREATER, "~a"}, + {"1.20140522hitad6fb3e.el7", GREATER, "1~"}, + {"1.20140522hitad6fb3e.el7", LESS, "2~"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, ""}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "2"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "10"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "100"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.1"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.10"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.99"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.99"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "2.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.1"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.2"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.10"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.99"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.1.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.2.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.10.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.99.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.100.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.0.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.0.1"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.0.10"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.1.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.0.01.0"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.2.3.4"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1-2-3-4"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "20150101"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "20151212"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "20151212.0"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "20151212.1"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "2015.1.1"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "2015.02.02"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "2015.12.12"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.2.3a"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.2.3b"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "R16B"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "R16C"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.2.3.2016.1.1"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.5a1.dev"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.8.B59BrZX"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.07b4p1"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "3.99.5final.SP07"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "3.99.5final.SP08"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.4.tbb.20100203"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.5.20120830CVS.el7"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.el7"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.el6"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "10.el7"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "01.el7"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.17.20140318svn632.el7"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "0.17.20140318svn633.el7"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.20140522gitad6fb3e.el7"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1.20140522hitad6fb3e.el7"}, + {"8.20140605hgacf1c26e3019.el7", EQUAL, "8.20140605hgacf1c26e3019.el7"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "22.svn457.el7"}, + {"8.20140605hgacf1c26e3019.el7", LESS, "22.svn458.el7"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "~"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "~~"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "~1"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "~a"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "1~"}, + {"8.20140605hgacf1c26e3019.el7", GREATER, "2~"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, ""}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "2"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "10"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "100"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.1"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.10"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.99"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.99"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "2.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.1"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.2"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.10"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.99"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.1.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.2.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.10.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.99.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.100.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.0.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.0.1"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.0.10"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.1.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.0.01.0"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.2.3.4"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1-2-3-4"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "20150101"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "20151212"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "20151212.0"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "20151212.1"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "2015.1.1"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "2015.02.02"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "2015.12.12"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.2.3a"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.2.3b"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "R16B"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "R16C"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.2.3.2016.1.1"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.5a1.dev"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.8.B59BrZX"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.07b4p1"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "3.99.5final.SP07"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "3.99.5final.SP08"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.4.tbb.20100203"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.5.20120830CVS.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.el6"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "10.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "01.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.17.20140318svn632.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "0.17.20140318svn633.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.20140522gitad6fb3e.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1.20140522hitad6fb3e.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"8.20140605hgacf1c26e3029.el7", EQUAL, "8.20140605hgacf1c26e3029.el7"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "22.svn457.el7"}, + {"8.20140605hgacf1c26e3029.el7", LESS, "22.svn458.el7"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "~"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "~~"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "~1"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "~a"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "1~"}, + {"8.20140605hgacf1c26e3029.el7", GREATER, "2~"}, + {"22.svn457.el7", GREATER, ""}, + {"22.svn457.el7", GREATER, "0"}, + {"22.svn457.el7", GREATER, "1"}, + {"22.svn457.el7", GREATER, "2"}, + {"22.svn457.el7", GREATER, "10"}, + {"22.svn457.el7", LESS, "100"}, + {"22.svn457.el7", GREATER, "0.0"}, + {"22.svn457.el7", GREATER, "0.1"}, + {"22.svn457.el7", GREATER, "0.10"}, + {"22.svn457.el7", GREATER, "0.99"}, + {"22.svn457.el7", GREATER, "1.0"}, + {"22.svn457.el7", GREATER, "1.99"}, + {"22.svn457.el7", GREATER, "2.0"}, + {"22.svn457.el7", GREATER, "0.0.0"}, + {"22.svn457.el7", GREATER, "0.0.1"}, + {"22.svn457.el7", GREATER, "0.0.2"}, + {"22.svn457.el7", GREATER, "0.0.10"}, + {"22.svn457.el7", GREATER, "0.0.99"}, + {"22.svn457.el7", GREATER, "0.1.0"}, + {"22.svn457.el7", GREATER, "0.2.0"}, + {"22.svn457.el7", GREATER, "0.10.0"}, + {"22.svn457.el7", GREATER, "0.99.0"}, + {"22.svn457.el7", GREATER, "0.100.0"}, + {"22.svn457.el7", GREATER, "0.0.0.0"}, + {"22.svn457.el7", GREATER, "0.0.0.1"}, + {"22.svn457.el7", GREATER, "0.0.0.10"}, + {"22.svn457.el7", GREATER, "0.0.1.0"}, + {"22.svn457.el7", GREATER, "0.0.01.0"}, + {"22.svn457.el7", GREATER, "1.2.3.4"}, + {"22.svn457.el7", GREATER, "1-2-3-4"}, + {"22.svn457.el7", LESS, "20150101"}, + {"22.svn457.el7", LESS, "20151212"}, + {"22.svn457.el7", LESS, "20151212.0"}, + {"22.svn457.el7", LESS, "20151212.1"}, + {"22.svn457.el7", LESS, "2015.1.1"}, + {"22.svn457.el7", LESS, "2015.02.02"}, + {"22.svn457.el7", LESS, "2015.12.12"}, + {"22.svn457.el7", GREATER, "1.2.3a"}, + {"22.svn457.el7", GREATER, "1.2.3b"}, + {"22.svn457.el7", GREATER, "R16B"}, + {"22.svn457.el7", GREATER, "R16C"}, + {"22.svn457.el7", GREATER, "1.2.3.2016.1.1"}, + {"22.svn457.el7", GREATER, "0.5a1.dev"}, + {"22.svn457.el7", GREATER, "1.8.B59BrZX"}, + {"22.svn457.el7", GREATER, "0.07b4p1"}, + {"22.svn457.el7", GREATER, "3.99.5final.SP07"}, + {"22.svn457.el7", GREATER, "3.99.5final.SP08"}, + {"22.svn457.el7", GREATER, "0.4.tbb.20100203"}, + {"22.svn457.el7", GREATER, "0.5.20120830CVS.el7"}, + {"22.svn457.el7", GREATER, "1.el7"}, + {"22.svn457.el7", GREATER, "1.el6"}, + {"22.svn457.el7", GREATER, "10.el7"}, + {"22.svn457.el7", GREATER, "01.el7"}, + {"22.svn457.el7", GREATER, "0.17.20140318svn632.el7"}, + {"22.svn457.el7", GREATER, "0.17.20140318svn633.el7"}, + {"22.svn457.el7", GREATER, "1.20140522gitad6fb3e.el7"}, + {"22.svn457.el7", GREATER, "1.20140522hitad6fb3e.el7"}, + {"22.svn457.el7", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"22.svn457.el7", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"22.svn457.el7", EQUAL, "22.svn457.el7"}, + {"22.svn457.el7", LESS, "22.svn458.el7"}, + {"22.svn457.el7", GREATER, "~"}, + {"22.svn457.el7", GREATER, "~~"}, + {"22.svn457.el7", GREATER, "~1"}, + {"22.svn457.el7", GREATER, "~a"}, + {"22.svn457.el7", GREATER, "1~"}, + {"22.svn457.el7", GREATER, "2~"}, + {"22.svn458.el7", GREATER, ""}, + {"22.svn458.el7", GREATER, "0"}, + {"22.svn458.el7", GREATER, "1"}, + {"22.svn458.el7", GREATER, "2"}, + {"22.svn458.el7", GREATER, "10"}, + {"22.svn458.el7", LESS, "100"}, + {"22.svn458.el7", GREATER, "0.0"}, + {"22.svn458.el7", GREATER, "0.1"}, + {"22.svn458.el7", GREATER, "0.10"}, + {"22.svn458.el7", GREATER, "0.99"}, + {"22.svn458.el7", GREATER, "1.0"}, + {"22.svn458.el7", GREATER, "1.99"}, + {"22.svn458.el7", GREATER, "2.0"}, + {"22.svn458.el7", GREATER, "0.0.0"}, + {"22.svn458.el7", GREATER, "0.0.1"}, + {"22.svn458.el7", GREATER, "0.0.2"}, + {"22.svn458.el7", GREATER, "0.0.10"}, + {"22.svn458.el7", GREATER, "0.0.99"}, + {"22.svn458.el7", GREATER, "0.1.0"}, + {"22.svn458.el7", GREATER, "0.2.0"}, + {"22.svn458.el7", GREATER, "0.10.0"}, + {"22.svn458.el7", GREATER, "0.99.0"}, + {"22.svn458.el7", GREATER, "0.100.0"}, + {"22.svn458.el7", GREATER, "0.0.0.0"}, + {"22.svn458.el7", GREATER, "0.0.0.1"}, + {"22.svn458.el7", GREATER, "0.0.0.10"}, + {"22.svn458.el7", GREATER, "0.0.1.0"}, + {"22.svn458.el7", GREATER, "0.0.01.0"}, + {"22.svn458.el7", GREATER, "1.2.3.4"}, + {"22.svn458.el7", GREATER, "1-2-3-4"}, + {"22.svn458.el7", LESS, "20150101"}, + {"22.svn458.el7", LESS, "20151212"}, + {"22.svn458.el7", LESS, "20151212.0"}, + {"22.svn458.el7", LESS, "20151212.1"}, + {"22.svn458.el7", LESS, "2015.1.1"}, + {"22.svn458.el7", LESS, "2015.02.02"}, + {"22.svn458.el7", LESS, "2015.12.12"}, + {"22.svn458.el7", GREATER, "1.2.3a"}, + {"22.svn458.el7", GREATER, "1.2.3b"}, + {"22.svn458.el7", GREATER, "R16B"}, + {"22.svn458.el7", GREATER, "R16C"}, + {"22.svn458.el7", GREATER, "1.2.3.2016.1.1"}, + {"22.svn458.el7", GREATER, "0.5a1.dev"}, + {"22.svn458.el7", GREATER, "1.8.B59BrZX"}, + {"22.svn458.el7", GREATER, "0.07b4p1"}, + {"22.svn458.el7", GREATER, "3.99.5final.SP07"}, + {"22.svn458.el7", GREATER, "3.99.5final.SP08"}, + {"22.svn458.el7", GREATER, "0.4.tbb.20100203"}, + {"22.svn458.el7", GREATER, "0.5.20120830CVS.el7"}, + {"22.svn458.el7", GREATER, "1.el7"}, + {"22.svn458.el7", GREATER, "1.el6"}, + {"22.svn458.el7", GREATER, "10.el7"}, + {"22.svn458.el7", GREATER, "01.el7"}, + {"22.svn458.el7", GREATER, "0.17.20140318svn632.el7"}, + {"22.svn458.el7", GREATER, "0.17.20140318svn633.el7"}, + {"22.svn458.el7", GREATER, "1.20140522gitad6fb3e.el7"}, + {"22.svn458.el7", GREATER, "1.20140522hitad6fb3e.el7"}, + {"22.svn458.el7", GREATER, "8.20140605hgacf1c26e3019.el7"}, + {"22.svn458.el7", GREATER, "8.20140605hgacf1c26e3029.el7"}, + {"22.svn458.el7", GREATER, "22.svn457.el7"}, + {"22.svn458.el7", EQUAL, "22.svn458.el7"}, + {"22.svn458.el7", GREATER, "~"}, + {"22.svn458.el7", GREATER, "~~"}, + {"22.svn458.el7", GREATER, "~1"}, + {"22.svn458.el7", GREATER, "~a"}, + {"22.svn458.el7", GREATER, "1~"}, + {"22.svn458.el7", GREATER, "2~"}, + {"~", GREATER, ""}, + {"~", LESS, "0"}, + {"~", LESS, "1"}, + {"~", LESS, "2"}, + {"~", LESS, "10"}, + {"~", LESS, "100"}, + {"~", LESS, "0.0"}, + {"~", LESS, "0.1"}, + {"~", LESS, "0.10"}, + {"~", LESS, "0.99"}, + {"~", LESS, "1.0"}, + {"~", LESS, "1.99"}, + {"~", LESS, "2.0"}, + {"~", LESS, "0.0.0"}, + {"~", LESS, "0.0.1"}, + {"~", LESS, "0.0.2"}, + {"~", LESS, "0.0.10"}, + {"~", LESS, "0.0.99"}, + {"~", LESS, "0.1.0"}, + {"~", LESS, "0.2.0"}, + {"~", LESS, "0.10.0"}, + {"~", LESS, "0.99.0"}, + {"~", LESS, "0.100.0"}, + {"~", LESS, "0.0.0.0"}, + {"~", LESS, "0.0.0.1"}, + {"~", LESS, "0.0.0.10"}, + {"~", LESS, "0.0.1.0"}, + {"~", LESS, "0.0.01.0"}, + {"~", LESS, "1.2.3.4"}, + {"~", LESS, "1-2-3-4"}, + {"~", LESS, "20150101"}, + {"~", LESS, "20151212"}, + {"~", LESS, "20151212.0"}, + {"~", LESS, "20151212.1"}, + {"~", LESS, "2015.1.1"}, + {"~", LESS, "2015.02.02"}, + {"~", LESS, "2015.12.12"}, + {"~", LESS, "1.2.3a"}, + {"~", LESS, "1.2.3b"}, + {"~", LESS, "R16B"}, + {"~", LESS, "R16C"}, + {"~", LESS, "1.2.3.2016.1.1"}, + {"~", LESS, "0.5a1.dev"}, + {"~", LESS, "1.8.B59BrZX"}, + {"~", LESS, "0.07b4p1"}, + {"~", LESS, "3.99.5final.SP07"}, + {"~", LESS, "3.99.5final.SP08"}, + {"~", LESS, "0.4.tbb.20100203"}, + {"~", LESS, "0.5.20120830CVS.el7"}, + {"~", LESS, "1.el7"}, + {"~", LESS, "1.el6"}, + {"~", LESS, "10.el7"}, + {"~", LESS, "01.el7"}, + {"~", LESS, "0.17.20140318svn632.el7"}, + {"~", LESS, "0.17.20140318svn633.el7"}, + {"~", LESS, "1.20140522gitad6fb3e.el7"}, + {"~", LESS, "1.20140522hitad6fb3e.el7"}, + {"~", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"~", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"~", LESS, "22.svn457.el7"}, + {"~", LESS, "22.svn458.el7"}, + {"~", EQUAL, "~"}, + {"~", GREATER, "~~"}, + {"~", LESS, "~1"}, + {"~", LESS, "~a"}, + {"~", LESS, "1~"}, + {"~", LESS, "2~"}, + {"~~", GREATER, ""}, + {"~~", LESS, "0"}, + {"~~", LESS, "1"}, + {"~~", LESS, "2"}, + {"~~", LESS, "10"}, + {"~~", LESS, "100"}, + {"~~", LESS, "0.0"}, + {"~~", LESS, "0.1"}, + {"~~", LESS, "0.10"}, + {"~~", LESS, "0.99"}, + {"~~", LESS, "1.0"}, + {"~~", LESS, "1.99"}, + {"~~", LESS, "2.0"}, + {"~~", LESS, "0.0.0"}, + {"~~", LESS, "0.0.1"}, + {"~~", LESS, "0.0.2"}, + {"~~", LESS, "0.0.10"}, + {"~~", LESS, "0.0.99"}, + {"~~", LESS, "0.1.0"}, + {"~~", LESS, "0.2.0"}, + {"~~", LESS, "0.10.0"}, + {"~~", LESS, "0.99.0"}, + {"~~", LESS, "0.100.0"}, + {"~~", LESS, "0.0.0.0"}, + {"~~", LESS, "0.0.0.1"}, + {"~~", LESS, "0.0.0.10"}, + {"~~", LESS, "0.0.1.0"}, + {"~~", LESS, "0.0.01.0"}, + {"~~", LESS, "1.2.3.4"}, + {"~~", LESS, "1-2-3-4"}, + {"~~", LESS, "20150101"}, + {"~~", LESS, "20151212"}, + {"~~", LESS, "20151212.0"}, + {"~~", LESS, "20151212.1"}, + {"~~", LESS, "2015.1.1"}, + {"~~", LESS, "2015.02.02"}, + {"~~", LESS, "2015.12.12"}, + {"~~", LESS, "1.2.3a"}, + {"~~", LESS, "1.2.3b"}, + {"~~", LESS, "R16B"}, + {"~~", LESS, "R16C"}, + {"~~", LESS, "1.2.3.2016.1.1"}, + {"~~", LESS, "0.5a1.dev"}, + {"~~", LESS, "1.8.B59BrZX"}, + {"~~", LESS, "0.07b4p1"}, + {"~~", LESS, "3.99.5final.SP07"}, + {"~~", LESS, "3.99.5final.SP08"}, + {"~~", LESS, "0.4.tbb.20100203"}, + {"~~", LESS, "0.5.20120830CVS.el7"}, + {"~~", LESS, "1.el7"}, + {"~~", LESS, "1.el6"}, + {"~~", LESS, "10.el7"}, + {"~~", LESS, "01.el7"}, + {"~~", LESS, "0.17.20140318svn632.el7"}, + {"~~", LESS, "0.17.20140318svn633.el7"}, + {"~~", LESS, "1.20140522gitad6fb3e.el7"}, + {"~~", LESS, "1.20140522hitad6fb3e.el7"}, + {"~~", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"~~", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"~~", LESS, "22.svn457.el7"}, + {"~~", LESS, "22.svn458.el7"}, + {"~~", LESS, "~"}, + {"~~", EQUAL, "~~"}, + {"~~", LESS, "~1"}, + {"~~", LESS, "~a"}, + {"~~", LESS, "1~"}, + {"~~", LESS, "2~"}, + {"~1", GREATER, ""}, + {"~1", LESS, "0"}, + {"~1", LESS, "1"}, + {"~1", LESS, "2"}, + {"~1", LESS, "10"}, + {"~1", LESS, "100"}, + {"~1", LESS, "0.0"}, + {"~1", LESS, "0.1"}, + {"~1", LESS, "0.10"}, + {"~1", LESS, "0.99"}, + {"~1", LESS, "1.0"}, + {"~1", LESS, "1.99"}, + {"~1", LESS, "2.0"}, + {"~1", LESS, "0.0.0"}, + {"~1", LESS, "0.0.1"}, + {"~1", LESS, "0.0.2"}, + {"~1", LESS, "0.0.10"}, + {"~1", LESS, "0.0.99"}, + {"~1", LESS, "0.1.0"}, + {"~1", LESS, "0.2.0"}, + {"~1", LESS, "0.10.0"}, + {"~1", LESS, "0.99.0"}, + {"~1", LESS, "0.100.0"}, + {"~1", LESS, "0.0.0.0"}, + {"~1", LESS, "0.0.0.1"}, + {"~1", LESS, "0.0.0.10"}, + {"~1", LESS, "0.0.1.0"}, + {"~1", LESS, "0.0.01.0"}, + {"~1", LESS, "1.2.3.4"}, + {"~1", LESS, "1-2-3-4"}, + {"~1", LESS, "20150101"}, + {"~1", LESS, "20151212"}, + {"~1", LESS, "20151212.0"}, + {"~1", LESS, "20151212.1"}, + {"~1", LESS, "2015.1.1"}, + {"~1", LESS, "2015.02.02"}, + {"~1", LESS, "2015.12.12"}, + {"~1", LESS, "1.2.3a"}, + {"~1", LESS, "1.2.3b"}, + {"~1", LESS, "R16B"}, + {"~1", LESS, "R16C"}, + {"~1", LESS, "1.2.3.2016.1.1"}, + {"~1", LESS, "0.5a1.dev"}, + {"~1", LESS, "1.8.B59BrZX"}, + {"~1", LESS, "0.07b4p1"}, + {"~1", LESS, "3.99.5final.SP07"}, + {"~1", LESS, "3.99.5final.SP08"}, + {"~1", LESS, "0.4.tbb.20100203"}, + {"~1", LESS, "0.5.20120830CVS.el7"}, + {"~1", LESS, "1.el7"}, + {"~1", LESS, "1.el6"}, + {"~1", LESS, "10.el7"}, + {"~1", LESS, "01.el7"}, + {"~1", LESS, "0.17.20140318svn632.el7"}, + {"~1", LESS, "0.17.20140318svn633.el7"}, + {"~1", LESS, "1.20140522gitad6fb3e.el7"}, + {"~1", LESS, "1.20140522hitad6fb3e.el7"}, + {"~1", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"~1", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"~1", LESS, "22.svn457.el7"}, + {"~1", LESS, "22.svn458.el7"}, + {"~1", GREATER, "~"}, + {"~1", GREATER, "~~"}, + {"~1", EQUAL, "~1"}, + {"~1", GREATER, "~a"}, + {"~1", LESS, "1~"}, + {"~1", LESS, "2~"}, + {"~a", GREATER, ""}, + {"~a", LESS, "0"}, + {"~a", LESS, "1"}, + {"~a", LESS, "2"}, + {"~a", LESS, "10"}, + {"~a", LESS, "100"}, + {"~a", LESS, "0.0"}, + {"~a", LESS, "0.1"}, + {"~a", LESS, "0.10"}, + {"~a", LESS, "0.99"}, + {"~a", LESS, "1.0"}, + {"~a", LESS, "1.99"}, + {"~a", LESS, "2.0"}, + {"~a", LESS, "0.0.0"}, + {"~a", LESS, "0.0.1"}, + {"~a", LESS, "0.0.2"}, + {"~a", LESS, "0.0.10"}, + {"~a", LESS, "0.0.99"}, + {"~a", LESS, "0.1.0"}, + {"~a", LESS, "0.2.0"}, + {"~a", LESS, "0.10.0"}, + {"~a", LESS, "0.99.0"}, + {"~a", LESS, "0.100.0"}, + {"~a", LESS, "0.0.0.0"}, + {"~a", LESS, "0.0.0.1"}, + {"~a", LESS, "0.0.0.10"}, + {"~a", LESS, "0.0.1.0"}, + {"~a", LESS, "0.0.01.0"}, + {"~a", LESS, "1.2.3.4"}, + {"~a", LESS, "1-2-3-4"}, + {"~a", LESS, "20150101"}, + {"~a", LESS, "20151212"}, + {"~a", LESS, "20151212.0"}, + {"~a", LESS, "20151212.1"}, + {"~a", LESS, "2015.1.1"}, + {"~a", LESS, "2015.02.02"}, + {"~a", LESS, "2015.12.12"}, + {"~a", LESS, "1.2.3a"}, + {"~a", LESS, "1.2.3b"}, + {"~a", LESS, "R16B"}, + {"~a", LESS, "R16C"}, + {"~a", LESS, "1.2.3.2016.1.1"}, + {"~a", LESS, "0.5a1.dev"}, + {"~a", LESS, "1.8.B59BrZX"}, + {"~a", LESS, "0.07b4p1"}, + {"~a", LESS, "3.99.5final.SP07"}, + {"~a", LESS, "3.99.5final.SP08"}, + {"~a", LESS, "0.4.tbb.20100203"}, + {"~a", LESS, "0.5.20120830CVS.el7"}, + {"~a", LESS, "1.el7"}, + {"~a", LESS, "1.el6"}, + {"~a", LESS, "10.el7"}, + {"~a", LESS, "01.el7"}, + {"~a", LESS, "0.17.20140318svn632.el7"}, + {"~a", LESS, "0.17.20140318svn633.el7"}, + {"~a", LESS, "1.20140522gitad6fb3e.el7"}, + {"~a", LESS, "1.20140522hitad6fb3e.el7"}, + {"~a", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"~a", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"~a", LESS, "22.svn457.el7"}, + {"~a", LESS, "22.svn458.el7"}, + {"~a", GREATER, "~"}, + {"~a", GREATER, "~~"}, + {"~a", LESS, "~1"}, + {"~a", EQUAL, "~a"}, + {"~a", LESS, "1~"}, + {"~a", LESS, "2~"}, + {"1~", GREATER, ""}, + {"1~", GREATER, "0"}, + {"1~", LESS, "1"}, + {"1~", LESS, "2"}, + {"1~", LESS, "10"}, + {"1~", LESS, "100"}, + {"1~", GREATER, "0.0"}, + {"1~", GREATER, "0.1"}, + {"1~", GREATER, "0.10"}, + {"1~", GREATER, "0.99"}, + {"1~", LESS, "1.0"}, + {"1~", LESS, "1.99"}, + {"1~", LESS, "2.0"}, + {"1~", GREATER, "0.0.0"}, + {"1~", GREATER, "0.0.1"}, + {"1~", GREATER, "0.0.2"}, + {"1~", GREATER, "0.0.10"}, + {"1~", GREATER, "0.0.99"}, + {"1~", GREATER, "0.1.0"}, + {"1~", GREATER, "0.2.0"}, + {"1~", GREATER, "0.10.0"}, + {"1~", GREATER, "0.99.0"}, + {"1~", GREATER, "0.100.0"}, + {"1~", GREATER, "0.0.0.0"}, + {"1~", GREATER, "0.0.0.1"}, + {"1~", GREATER, "0.0.0.10"}, + {"1~", GREATER, "0.0.1.0"}, + {"1~", GREATER, "0.0.01.0"}, + {"1~", LESS, "1.2.3.4"}, + {"1~", LESS, "1-2-3-4"}, + {"1~", LESS, "20150101"}, + {"1~", LESS, "20151212"}, + {"1~", LESS, "20151212.0"}, + {"1~", LESS, "20151212.1"}, + {"1~", LESS, "2015.1.1"}, + {"1~", LESS, "2015.02.02"}, + {"1~", LESS, "2015.12.12"}, + {"1~", LESS, "1.2.3a"}, + {"1~", LESS, "1.2.3b"}, + {"1~", GREATER, "R16B"}, + {"1~", GREATER, "R16C"}, + {"1~", LESS, "1.2.3.2016.1.1"}, + {"1~", GREATER, "0.5a1.dev"}, + {"1~", LESS, "1.8.B59BrZX"}, + {"1~", GREATER, "0.07b4p1"}, + {"1~", LESS, "3.99.5final.SP07"}, + {"1~", LESS, "3.99.5final.SP08"}, + {"1~", GREATER, "0.4.tbb.20100203"}, + {"1~", GREATER, "0.5.20120830CVS.el7"}, + {"1~", LESS, "1.el7"}, + {"1~", LESS, "1.el6"}, + {"1~", LESS, "10.el7"}, + {"1~", LESS, "01.el7"}, + {"1~", GREATER, "0.17.20140318svn632.el7"}, + {"1~", GREATER, "0.17.20140318svn633.el7"}, + {"1~", LESS, "1.20140522gitad6fb3e.el7"}, + {"1~", LESS, "1.20140522hitad6fb3e.el7"}, + {"1~", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"1~", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"1~", LESS, "22.svn457.el7"}, + {"1~", LESS, "22.svn458.el7"}, + {"1~", GREATER, "~"}, + {"1~", GREATER, "~~"}, + {"1~", GREATER, "~1"}, + {"1~", GREATER, "~a"}, + {"1~", EQUAL, "1~"}, + {"1~", LESS, "2~"}, + {"2~", GREATER, ""}, + {"2~", GREATER, "0"}, + {"2~", GREATER, "1"}, + {"2~", LESS, "2"}, + {"2~", LESS, "10"}, + {"2~", LESS, "100"}, + {"2~", GREATER, "0.0"}, + {"2~", GREATER, "0.1"}, + {"2~", GREATER, "0.10"}, + {"2~", GREATER, "0.99"}, + {"2~", GREATER, "1.0"}, + {"2~", GREATER, "1.99"}, + {"2~", LESS, "2.0"}, + {"2~", GREATER, "0.0.0"}, + {"2~", GREATER, "0.0.1"}, + {"2~", GREATER, "0.0.2"}, + {"2~", GREATER, "0.0.10"}, + {"2~", GREATER, "0.0.99"}, + {"2~", GREATER, "0.1.0"}, + {"2~", GREATER, "0.2.0"}, + {"2~", GREATER, "0.10.0"}, + {"2~", GREATER, "0.99.0"}, + {"2~", GREATER, "0.100.0"}, + {"2~", GREATER, "0.0.0.0"}, + {"2~", GREATER, "0.0.0.1"}, + {"2~", GREATER, "0.0.0.10"}, + {"2~", GREATER, "0.0.1.0"}, + {"2~", GREATER, "0.0.01.0"}, + {"2~", GREATER, "1.2.3.4"}, + {"2~", GREATER, "1-2-3-4"}, + {"2~", LESS, "20150101"}, + {"2~", LESS, "20151212"}, + {"2~", LESS, "20151212.0"}, + {"2~", LESS, "20151212.1"}, + {"2~", LESS, "2015.1.1"}, + {"2~", LESS, "2015.02.02"}, + {"2~", LESS, "2015.12.12"}, + {"2~", GREATER, "1.2.3a"}, + {"2~", GREATER, "1.2.3b"}, + {"2~", GREATER, "R16B"}, + {"2~", GREATER, "R16C"}, + {"2~", GREATER, "1.2.3.2016.1.1"}, + {"2~", GREATER, "0.5a1.dev"}, + {"2~", GREATER, "1.8.B59BrZX"}, + {"2~", GREATER, "0.07b4p1"}, + {"2~", LESS, "3.99.5final.SP07"}, + {"2~", LESS, "3.99.5final.SP08"}, + {"2~", GREATER, "0.4.tbb.20100203"}, + {"2~", GREATER, "0.5.20120830CVS.el7"}, + {"2~", GREATER, "1.el7"}, + {"2~", GREATER, "1.el6"}, + {"2~", LESS, "10.el7"}, + {"2~", GREATER, "01.el7"}, + {"2~", GREATER, "0.17.20140318svn632.el7"}, + {"2~", GREATER, "0.17.20140318svn633.el7"}, + {"2~", GREATER, "1.20140522gitad6fb3e.el7"}, + {"2~", GREATER, "1.20140522hitad6fb3e.el7"}, + {"2~", LESS, "8.20140605hgacf1c26e3019.el7"}, + {"2~", LESS, "8.20140605hgacf1c26e3029.el7"}, + {"2~", LESS, "22.svn457.el7"}, + {"2~", LESS, "22.svn458.el7"}, + {"2~", GREATER, "~"}, + {"2~", GREATER, "~~"}, + {"2~", GREATER, "~1"}, + {"2~", GREATER, "~a"}, + {"2~", GREATER, "1~"}, + {"2~", EQUAL, "2~"}, + } + + for _, c := range cases { + require.Equal(t, c.expected, Rpmvercmp(c.a, c.b), "comparing '%s' vs '%s' should be %d but was %d", c.a, c.b, c.expected, Rpmvercmp(c.a, c.b)) + } +} diff --git a/server/vulnerabilities/oval/parsed/state_match_type.go b/server/vulnerabilities/oval/parsed/state_match_type.go new file mode 100644 index 0000000000..d5673e0982 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/state_match_type.go @@ -0,0 +1,44 @@ +package oval_parsed + +type StateMatchType int + +const ( + All StateMatchType = iota + AtLeastOne + NoneSatisfy + OnlyOne +) + +// NewStateMatchType encodes an 'CheckEnumeration' into an int. +// See https://oval.mitre.org/language/version5.10.1/ovaldefinition/documentation/oval-common-schema.html#CheckEnumeration +func NewStateMatchType(val string) StateMatchType { + switch val { + case "all": + return All + case "at least one": + return AtLeastOne + case "none satisfy", "none exist": + return NoneSatisfy + case "only one": + return OnlyOne + default: + return All + } +} + +// Eval checks how many of the matching objects (nObjects) satisfy the matching rule by checking the +// number of objects that match the desired state (nState). +func (op StateMatchType) Eval(nObjects int, nState int) bool { + switch op { + case All: + return nObjects == nState + case AtLeastOne: + return nState >= 1 + case NoneSatisfy: + return nState == 0 + case OnlyOne: + return nState == 1 + default: + return nObjects == nState + } +} diff --git a/server/vulnerabilities/oval/parsed/state_match_type_test.go b/server/vulnerabilities/oval/parsed/state_match_type_test.go new file mode 100644 index 0000000000..e06e85adc4 --- /dev/null +++ b/server/vulnerabilities/oval/parsed/state_match_type_test.go @@ -0,0 +1,49 @@ +package oval_parsed + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestNewStateMatchType(t *testing.T) { + cases := []struct { + input string + expected StateMatchType + }{ + {"all", All}, + {"at least one", AtLeastOne}, + {"none satisfy", NoneSatisfy}, + {"none exist", NoneSatisfy}, + {"only one", OnlyOne}, + {"", All}, + {"asdfa", All}, + } + + for _, c := range cases { + require.Equal(t, c.expected, NewStateMatchType(c.input)) + } +} + +func TestStateMatchTypeEval(t *testing.T) { + cases := []struct { + nObjects int + nStates int + op StateMatchType + expected bool + }{ + {1, 1, All, true}, + {2, 1, All, false}, + {3, 1, AtLeastOne, true}, + {3, 0, AtLeastOne, false}, + {3, 3, NoneSatisfy, false}, + {3, 0, NoneSatisfy, true}, + {3, 1, OnlyOne, true}, + {3, 3, OnlyOne, false}, + {3, 0, OnlyOne, false}, + } + + for _, c := range cases { + require.Equal(t, c.expected, c.op.Eval(c.nObjects, c.nStates)) + } +} diff --git a/server/vulnerabilities/oval/parsed/ubuntu_result.go b/server/vulnerabilities/oval/parsed/ubuntu_result.go new file mode 100644 index 0000000000..e54a2472fa --- /dev/null +++ b/server/vulnerabilities/oval/parsed/ubuntu_result.go @@ -0,0 +1,57 @@ +package oval_parsed + +import ( + "github.com/fleetdm/fleet/v4/server/fleet" +) + +type UbuntuResult struct { + Definitions []Definition + PackageTests map[int]*DpkgInfoTest +} + +// NewUbuntuResult is the result of parsing an OVAL file that targets an Ubuntu distro. +// Used to evaluate whether an Ubuntu host is vulnerable based on one or more package tests. +func NewUbuntuResult() *UbuntuResult { + return &UbuntuResult{ + PackageTests: make(map[int]*DpkgInfoTest), + } +} + +// AddDefinition add a definition to the given result. +func (r *UbuntuResult) AddDefinition(def Definition) { + r.Definitions = append(r.Definitions, def) +} + +// AddPackageTest adds a package test to the given result. +func (r *UbuntuResult) AddPackageTest(id int, tst *DpkgInfoTest) { + r.PackageTests[id] = tst +} + +func (r UbuntuResult) Eval(software []fleet.Software) []fleet.SoftwareVulnerability { + // Test Id => Matching software + tResults := make(map[int][]fleet.Software) + for i, t := range r.PackageTests { + tResults[i] = t.Eval(software) + } + + vuln := make([]fleet.SoftwareVulnerability, 0) + for _, d := range r.Definitions { + if !d.Eval(tResults) { + continue + } + + for _, tId := range d.CollectTestIds() { + for _, software := range tResults[tId] { + for _, v := range d.Vulnerabilities { + vuln = append(vuln, fleet.SoftwareVulnerability{ + SoftwareID: software.ID, + CPEID: software.GeneratedCPEID, + CVE: v, + }) + } + } + } + } + + return vuln +} diff --git a/server/vulnerabilities/oval/parser.go b/server/vulnerabilities/oval/parser.go new file mode 100644 index 0000000000..4d2c07c9d9 --- /dev/null +++ b/server/vulnerabilities/oval/parser.go @@ -0,0 +1,164 @@ +package oval + +import ( + "encoding/json" + "encoding/xml" + "fmt" + "io" + "io/ioutil" + "os" + + oval_input "github.com/fleetdm/fleet/v4/server/vulnerabilities/oval/input" + oval_parsed "github.com/fleetdm/fleet/v4/server/vulnerabilities/oval/parsed" +) + +func parseDefinitions(inputFile string, outputFile string) error { + r, err := os.Open(inputFile) + if err != nil { + return err + } + defer r.Close() + + xmlResult, err := parseXML(r) + if err != nil { + return err + } + + result, err := mapResult(xmlResult) + if err != nil { + return err + } + + payload, err := json.Marshal(result) + if err != nil { + return err + } + err = ioutil.WriteFile(outputFile, payload, 0o644) + if err != nil { + return err + } + + return nil +} + +func mapResult(xmlResult *oval_input.UbuntuResultXML) (*oval_parsed.UbuntuResult, error) { + r := oval_parsed.NewUbuntuResult() + + staToTst := make(map[string][]int) + objToTst := make(map[string][]int) + + for _, d := range xmlResult.Definitions { + if len(d.CVEs) > 0 { + def, err := mapDefinition(d) + if err != nil { + return nil, err + } + r.AddDefinition(*def) + } + } + + for _, t := range xmlResult.PackageTests { + id, tst, err := mapPackageTest(t) + if err != nil { + return nil, err + } + + objToTst[t.Object.Id] = append(objToTst[t.Object.Id], id) + for _, sta := range t.States { + staToTst[sta.Id] = append(staToTst[sta.Id], id) + } + + r.AddPackageTest(id, tst) + } + + for _, o := range xmlResult.PackageObjects { + obj, err := mapPackageObject(o, xmlResult.Variables) + if err != nil { + return nil, err + } + + for _, tId := range objToTst[o.Id] { + t, ok := r.PackageTests[tId] + if ok { + t.Objects = obj + } else { + return nil, fmt.Errorf("test not found: %d", tId) + } + } + } + + for _, s := range xmlResult.PackageStates { + sta, err := mapPackageState(s) + if err != nil { + return nil, err + } + + for _, tId := range staToTst[s.Id] { + t, ok := r.PackageTests[tId] + if ok { + t.States = sta + } else { + return nil, fmt.Errorf("test not found: %d", tId) + } + } + } + return r, nil +} + +func parseXML(reader io.Reader) (*oval_input.UbuntuResultXML, error) { + r := &oval_input.UbuntuResultXML{ + Variables: make(map[string]oval_input.ConstantVariableXML), + } + d := xml.NewDecoder(reader) + + for { + t, err := d.Token() + if err != nil { + if err == io.EOF { + return r, nil + } + return nil, fmt.Errorf("decoding token: %v", err) + } + + switch t := t.(type) { + case xml.StartElement: + if t.Name.Local == "definition" { + def := oval_input.DefinitionXML{} + if err = d.DecodeElement(&def, &t); err != nil { + return nil, err + } + r.Definitions = append(r.Definitions, def) + } + + if t.Name.Local == "dpkginfo_test" { + tst := oval_input.DpkgInfoTestXML{} + if err = d.DecodeElement(&tst, &t); err != nil { + return nil, err + } + r.PackageTests = append(r.PackageTests, tst) + } + if t.Name.Local == "dpkginfo_state" { + sta := oval_input.DpkgStateXML{} + if err = d.DecodeElement(&sta, &t); err != nil { + return nil, err + } + r.PackageStates = append(r.PackageStates, sta) + } + if t.Name.Local == "dpkginfo_object" { + obj := oval_input.DpkgObjectXML{} + if err = d.DecodeElement(&obj, &t); err != nil { + return nil, err + } + r.PackageObjects = append(r.PackageObjects, obj) + + } + if t.Name.Local == "constant_variable" { + cVar := oval_input.ConstantVariableXML{} + if err = d.DecodeElement(&cVar, &t); err != nil { + return nil, err + } + r.Variables[cVar.Id] = cVar + } + } + } +} diff --git a/server/vulnerabilities/oval/sync.go b/server/vulnerabilities/oval/sync.go new file mode 100644 index 0000000000..6abe45c66e --- /dev/null +++ b/server/vulnerabilities/oval/sync.go @@ -0,0 +1,146 @@ +package oval + +import ( + "context" + "fmt" + "io" + "net/http" + "net/url" + "os" + "path/filepath" + "strings" + "time" + + "github.com/fleetdm/fleet/v4/pkg/download" + "github.com/fleetdm/fleet/v4/server/fleet" + + "github.com/google/go-github/v37/github" +) + +func ghNvdFileGetter(client *http.Client) func(string) (io.ReadCloser, error) { + return func(file string) (io.ReadCloser, error) { + src, r, err := github.NewClient(client).Repositories.DownloadContents( + context.Background(), "fleetdm", "nvd", file, nil) + if err != nil { + return nil, err + } + + // Even if err is nil, the request can fail + if r.StatusCode != http.StatusOK { + return nil, fmt.Errorf("github http status error: %d", r.StatusCode) + } + + return src, nil + } +} + +func downloadDecompressed(client *http.Client) func(string, string) error { + return func(u, dstPath string) error { + parsedUrl, err := url.Parse(u) + if err != nil { + return err + } + return download.DownloadAndExtract(client, parsedUrl, dstPath) + } +} + +func whatToDownload(osVers *fleet.OSVersions, existing map[string]bool, date time.Time) []Platform { + var r []Platform + for _, os := range osVers.OSVersions { + platform := NewPlatform(os.Platform, os.Name) + _, ok := existing[platform.ToFilename(date, "json")] + if !ok && platform.IsSupported() { + r = append(r, platform) + } + } + return r +} + +// removeOldDefs walks 'path' removing any old oval definitions, returns a set containing +// definitions that are up to date according to 'date' +func removeOldDefs(date time.Time, path string) (map[string]bool, error) { + dateSuffix := fmt.Sprintf("-%d_%02d_%02d.json", date.Year(), date.Month(), date.Day()) + upToDate := make(map[string]bool) + + err := filepath.WalkDir(path, func(path string, d os.DirEntry, err error) error { + if strings.HasPrefix(filepath.Base(path), OvalFilePrefix) { + if strings.HasSuffix(path, dateSuffix) { + upToDate[filepath.Base(path)] = true + } else { + err := os.Remove(path) + if err != nil { + return err + } + } + } + return nil + }) + if err != nil { + return nil, err + } + + return upToDate, nil +} + +// Sync syncs the oval definitions for one or more platforms. +// If 'platforms' is nil, then all supported platforms will be synched. +func Sync(client *http.Client, dstDir string, platforms []Platform) error { + sources, err := getOvalSources(ghNvdFileGetter(client)) + if err != nil { + return err + } + + if platforms == nil { + for s := range sources { + platforms = append(platforms, s) + } + } + + dwn := downloadDecompressed(client) + for _, platform := range platforms { + defFile, err := downloadDefinitions(sources, platform, dwn) + if err != nil { + return err + } + + dstFile := strings.Replace(filepath.Base(defFile), ".xml", ".json", 1) + dstPath := filepath.Join(dstDir, dstFile) + err = parseDefinitions(defFile, dstPath) + if err != nil { + return err + } + + err = os.Remove(defFile) + if err != nil { + return err + } + } + return nil +} + +// Refresh checks all local OVAL artifacts contained in 'vulnPath' deleting the old and downloading +// any missing definitions based on today's date and all the hosts' platforms/os versions contained in 'osVersions'. +// Returns a slice of Platforms of the newly downloaded OVAL files. +func Refresh( + ctx context.Context, + client *http.Client, + versions *fleet.OSVersions, + vulnPath string, +) ([]Platform, error) { + now := time.Now() + + existing, err := removeOldDefs(now, vulnPath) + if err != nil { + return nil, err + } + + toDownload := whatToDownload(versions, existing, now) + if len(toDownload) > 0 { + err = Sync(client, vulnPath, toDownload) + if err != nil { + return nil, err + } + } + + return toDownload, nil +} diff --git a/server/vulnerabilities/oval/sync_test.go b/server/vulnerabilities/oval/sync_test.go new file mode 100644 index 0000000000..98e1480b36 --- /dev/null +++ b/server/vulnerabilities/oval/sync_test.go @@ -0,0 +1,100 @@ +package oval + +import ( + "io/ioutil" + "os" + "path/filepath" + "testing" + "time" + + "github.com/fleetdm/fleet/v4/server/fleet" + "github.com/stretchr/testify/require" +) + +func TestSync(t *testing.T) { + t.Run("#removeOldDefs", func(t *testing.T) { + t.Run("with empty dir", func(t *testing.T) { + path, err := ioutil.TempDir("", "oval_test") + defer os.RemoveAll(path) + require.NoError(t, err) + date := time.Now() + + result, err := removeOldDefs(date, path) + require.Empty(t, result) + require.Nil(t, err) + }) + + t.Run("with old definitions", func(t *testing.T) { + hostPlatform := "ubuntu" + hostOsVersion := "Ubuntu 20.4.0" + ovalPlatform := NewPlatform(hostPlatform, hostOsVersion) + + today := time.Now() + yesterday := today.Add(-24 * time.Hour) + + path, err := ioutil.TempDir("", "oval_test") + defer os.RemoveAll(path) + require.NoError(t, err) + + otherFile1 := filepath.Join(path, "my_lyrics.json") + newDef := filepath.Join(path, ovalPlatform.ToFilename(today, "json")) + oldDef := filepath.Join(path, ovalPlatform.ToFilename(yesterday, "json")) + + f1, err := os.Create(newDef) + require.NoError(t, err) + f1.Close() + + f2, err := os.Create(oldDef) + require.NoError(t, err) + f2.Close() + + f3, err := os.Create(otherFile1) + require.NoError(t, err) + f3.Close() + + r, err := removeOldDefs(today, path) + require.NoError(t, err) + require.Contains(t, r, filepath.Base(newDef)) + + _, err = os.Stat(oldDef) + require.True(t, os.IsNotExist(err)) + + _, err = os.Stat(otherFile1) + require.NoError(t, err) + }) + }) + + t.Run("#whatToDownload", func(t *testing.T) { + today := time.Now() + + osVersions := fleet.OSVersions{ + CountsUpdatedAt: time.Now(), + OSVersions: []fleet.OSVersion{ + { + HostsCount: 1, + Platform: "ubuntu", + Name: "Ubuntu 20.4.0", + }, + { + HostsCount: 1, + Platform: "ubuntu", + Name: "Ubuntu 18.4.0", + }, + { + HostsCount: 1, + Platform: "rhle", + Name: "CentOS Linux 8.3.2011", + }, + }, + } + + existing := map[string]bool{ + NewPlatform("ubuntu", "Ubuntu 20.4.0").ToFilename(today, "json"): true, + } + + r := whatToDownload(&osVersions, existing, today) + require.Len(t, r, 1) + require.Contains(t, r, NewPlatform("ubuntu", "Ubuntu 18.4.0")) + require.NotContains(t, r, NewPlatform("rhle", "CentOS Linux 8.3.2011")) + }) +} diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1604-software.json.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1604-software.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..241be37f0b2bc499ae5df78d45d1ff046d6c5cb7 GIT binary patch literal 16026 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 UjO8gU6hHi3$rRy2LJYJgV1qPt*#H0l literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1604-software_cves.csv.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1604-software_cves.csv.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..00fc78245cab41aa4c48dde6c174a3a75303a326 GIT binary patch literal 2421 zcmV-*35xbYT4*^jL0KkKSsDnXr~nhE-T*)l00MvD3IPiMU=6hF*F$*6+V%%`-NQIG z(L+YBcH){d+oq-IyQ{Ugu6pc6Q~fo5MM`x4|At8sSQ3mN8>Es+rQOtDmo- z!9?Gmf*NSrephp4yp<*(FR|*AIs=5s6>ZwFNj7`A65C>Tc2(0{a!b9Ny8r+H01{Wr zC1(Wkh$2gSmp3!H9)>PtlOjZ!3DFX~>vp#i@WbtW%#x3qd-Pd?5tKfHf+uvUM zoadfc-#r0VK}hXDq!d+xl!T-dgOo^8FjZKhDlDdyMi+Nzs+J(#mMEld>?N>Jumy_y z3Qi`tp3n~OXGJU=!>$#X*cd(85{eQ5+p^xx-Wzs-y)TXRrI6b#6M`Gb&RFMHN&Msv#By3V|)5L`OqP zC{$61rWBf@yS|*es&!nyB=*VV)=51T_p`m{Jr8OARR93nsuUu~NJz+gaUT8T4UrX% z)Fh?@P{}s}(*_KwDOHeJAgpAH0t!`1l9_lpmw*!EA_7E$!3bj^+Rbn$=@u{%omCbz z!Z9L}5^DlXzIUH%+Ay%8f{_%+RgsZ^%SnXGvf=@IcI)xq`>%fYeCDe=+fzE%PP!xj z3zZ&sKJD7Ij){3|XD=wZ*?Tjuo9;FU7pBrl1u#hOb7S4Eo9!Vpi6qmV7}c7yCyZcZ zm=FMqBn{=&Zu`IjPXGC0$p}Rt2!Nq>F2iD9nB+bPa-!)VaxdpRsaOKwNjUacLQWgt(eT7o)~>D&Z!(tK z&U1zJaa-4v_h|L?lb(oy0AOCk_Vp(q_mo5k5Wz~#TDj=Mh9Yf4dc6EWrsN(s-8^x= z?Nfja%7TnJAQ7*@fu z{jY4lZ5N!m+CI)#V6jVZ?EU~s#me-7|;%%k|($X z2^YMm=G8sE*U?Q-Jd{Ke5JtZ>*GbL5BnmXvm=F+T*5-FU^xd5C1jmd&Lx{OIX*Okr zcgrZ8N-ZpyWJv^sIZGvZD7n?UW@i<1tUeO-d!cakBpP6M+| z_RgOB?sMZ9s&B89_dr*p4p9_d;lA2(x&pg z>+Iv9f=^RZ>c#Im^xhL5;E5&xsYB*|o@UI(#O@oBQwwUxKHc7Sbr0s?ifxD|wtER# zc13~&TpSL6)HK-AO!^jHlWe-br5Pa`v^E3S6x&q7G>282nrqOY)q)p-i?ig&SDe<~ zP+5buv6;6DV1#t0QR>gOCNF8f<#C=e2dsGY55{5X=G$12vkis=`SIP&(5GP)l1G zEH;874pNYN)Rl>}Th}2Udo0H z&t@+-&rM7XY1BRFy&`jcxg~p@?=Bb`_{F|~hU&>%GiROOvu($5L~R|dJFm88_1l+9 zuu)89D5AojJbZHNbyVgu^911pbSt`(ZD_m(4j_VeG{zNk$}wXf4Q%J5#84vj<=O39 zpcAAXzMk#trIlSX-tf^wMM&rXDhD}JTJK2h@)E#)^-1J++PFgJtfG>N>FzykUFF$V zy@B?5xq7@$p)=jCuJ-GJE8zGXs!ip&UWZ#~CL-$T9MS`!L|6)B{x%5yzR zS?W@!yUB%e>(i1mwJ1WKDR;G%Ikk12@sUHSiegU@EF`bGsP&m`dfhs=YUyjWIIBIv ztl=%4H{fr)-$NtW+~^9XEzKgRQ{^W$wJf@L5-ox{tnI?>qdS@jDg}>RZDS#$-0m_6 zg1EiR%@->sat<8>p|RF@T8O$dpF6dktz*i_tDY5nueQwQ^=c}8V+B`M)I%XPg$+g;)C=(ok?vELe*?PBLgXymIy9)!dn|0pyf|TU!v#%hGIU$P!Q3F2 nr9_P9^aKeXh!7-yz=SWrLKOlKzaT)6{|mVyoG3^Q1X9!hsppYF literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1804-software.json.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_1804-software.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..00a9c3b46e1070792fa32af7dabda95c0d62fa20 GIT binary patch literal 13762 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 s5+(Xd83aA9tpY3tW{sAVm;z25d6 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 Lig2MIwxVg2ce8Ig literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2004-software_cves.csv.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2004-software_cves.csv.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..1e42ab779bde58d749fc94419a6d32be03ebf89d GIT binary patch literal 549 zcmV+=0^0pTT4*^jL0KkKS?qIBOaKG(UH||P00MvD3IPiMKmzdK4$EQ`(<2iT5NdfD z3RD0z^ixrqpaCKR6(^{AeQ&Ed3-$c^qR7}^O3eImXQW#@FQrQ@ouH}Ax}&Q4cBjtf zUEFsPJPMThyIXpClFY(#NuAjwlBY%6Pj_2`%a9280!N7mf#f_YayF-28`rNg>ow-L z&ueYE-R%n+*WEZ*J_=e81>hieQYWy1#0e16A{dy^LqDJjN%nWqyf!!Umv>|H+Pz%8Xq5e-O#@)ak3m%J~$}sByAmYofPO0 z6-ut%Rb|5|&7H3F!P`c3;pv)|{oeLFq3q);!IKG8LDaP4jrTJ3z^+K)R)O0$i38*B zkCS0|<*VCj)2KIU+oWkszpC0vH(mma2_U+uBu9-a0G(HGb+n|Wt?c*J+1yYXd|A$R nMbtMI%#O$uZ@~x;sR$4F0{Q@?0ewh7ev7#xoG3_kIjE)pFeLrY literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2104-software.json.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2104-software.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..bf387f1319492e1f2f9d4ce2568ee38367b0e453 GIT binary patch literal 12941 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 DG6QwN literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2104-software_cves.csv.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2104-software_cves.csv.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..8969883d9651da70e25292666e0054e5b64d341c GIT binary patch literal 1098 zcmV-Q1hxA@T4*^jL0KkKS)ZF>8~_P6-T(j)00MvD3IPiMPzC@s?{r6S)4Orky`(FG zCKxJGnqV~1rm3|62AF`A00}iU5tO4t)Dj>ePyvZo-<0PBP@=l^FT`yUcpx)B1_NPo zq{)P96grF?_W;tQZMLoVZmR9rrcg#h0MO6?l1Yud(k5wjhmN*6Q8aYOnk1PdrM;ba z^Exw+QkQyaA%SMiz}hB68>`2+2Dxus)7>I`LVcOffd+FO&9st9L*3cit;L|}=qz4$ zAQan)X4~#&Hx|jVNRk7fBB)(@vivAsskODoHR#fx>RdKoB8os{n?efT1Rs zNC(_RL=KoN9&1kKpC69hQtoqY%Ty-!Cl2?U^Op8{zz#mGg60`=t5rV`!opNM-rEQm zkdOu`%+96?hqSbCgx;i~oTJ|xy=^2)O=#(D$@ z8255--t>qN00+Z0=MOuYVL43gE7T|x=KK!r(Z^A0OBK&n_HVdPA=`zMpp(G(isG>! zRY^2g&Nqgsr(Zo)h_9^QDoCv}cAjT^Pm#0efux?^a1eL6@2LV264cJ#nh5|^p^Un( zG?jB8U=pI(-m!T{IJ$h1g*Xj^&pnKbzW3i^o+uY1J(0IN`LkpJ- z8yikqDX7eZ*0{XuvK?Rwzc=HfQYjWi0YvyUgjM-^uKY%E@01@rc5k!kd2No51XXsc zt$797zfvY)G2CF+lv9bY6a@t@0OtJ8VyNGoZV6vGX^9w(QQXL za?GtC^P^-GEB1+PFSdUL%uiCeXA$ZU-v{4xdp1RLi+P=E2xH^f@5u4g`0iUHK0;!C02=9@1d37p+l47;=p5KK;}iSDV>5UCV^4mr0mpjq@z zJlQ%bsVcs$Sm+U$;oA9k$8KS~eQL|LtGd}-@23lAa*R>ixL7GTF2&BUq!DImMB0wV zV3;J&Z+DAZaNbN-H!>m!rn_$(P*7KV)zY`vqJm}<7z%6hNdg~0ArJJDL+p}5$s|62 QLLc#WBvXY63Hi1Wz=op)SpWb4 literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2110-software.json.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2110-software.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..df369d67f2bb277a8d03e765fede33df1499627d GIT binary patch literal 12742 zcmV;%F*(jcT4*^jL0KkKS?GO>(*S)WUw}XmP!E6bDV5xcKmY&xU_m~8@Bjy;eeeJP z0QvXZnEGOC*KBKTumGR~x}qJj5(+3JR^ea>qyRA*0d}nk4{e4Uj;TXb_5Np){JI=BRprdVs{j zVgge}qy$i8FrJ#8qer0|P-*IVnlS=RB0@-pnp5(bl=UW?Ngk#Kp@Lw7B#;`KXs78l zP3V+s z0aWfF3Z)1FNgQ#?6m*#%Uh`D@P1~m)So{#I?z0$r%LZA!<-3JTgG41t^qk4zhcW6? zu8w$@Nnc|zQ!OMYGGV)Cm!G&w*#(OxodX^D#VSAi4}_^T7h09qAAlV z9Erp-H4%Zt#%EM3jOite#1{H#t?R8fMnk8(E-FiDEwZt7GnGSQGBdZWv}Uq*$`hK3 z#)6L6Tr8lFSyD?5hNBohX<#hJd+$R?EJWiWkDQ#tjPP-hj1($SG4z4!9$Uym=f86*;u z@!K6Vsu;`PtefQnh#oh*ubo~)9TzTTDmTnE&pX39wFSO;hq8EQm>r_B*#aqTCWmp= z!4y)|t-U?E#byXlhD@dM_(oT@+3g%M7}Q z$^z`Wiy8{f6o_RGE}-RJ4Z4#FlNHx#!&$JV{Vi#LEF3fb+y95{DeZc|FOb~bOoTL> zQ(@RdJE!&64J+ivvk)P#{@dyO;Qe@B@z;Ijm}{Q~P-9=VZ37?l4yoFMEhbYR5^xqsAQ$X!R9zB=2q z)zxN}&h?1-jtSrtY`R^%&(&&>j%|0UsfG8J7IhXA?VK|muAeNn`0dZAW+IfxaTxXE zoqGD$IM)r3Zn4*Vi$<95$i#c&22<8ga=bg%{@+T+!3`RB(M7-)8u0BpfQ>&JxfF%w z#Jye|=}G-+_l#9V-90rxwe#>gpTuBha&#nbjr~3rs0t~~DDAjcLwS6ckRG@BuTIu0 zH6JncsEx!mx|uSQJVD%g>J-nvT8&}GDklx+M``}!&0PW)X?ErM_6x5*w0p;CZFb%2 zcOK-9lKhk7)PtwqBi!Q7AQ6qJ`Hb{^6_j=3E)cVw@P3Wv2hVNtD5@Go6of+0%=>vBh90vp^^Vf4!&RU4Sj*aW4vjZtkLVJiixfp$x)gFhsxCa`E4Da0>>1IcFD z8`jM>#?84b((D%+-8{-=rd}**_COU+umGxNT4rONq}HvDGy?V=oaZVe3(2HdF#@Wj zf?|<+zxnj z(V)>3ERR{wUV0S1xMk8g;f#GfIvnZ=XRM6F(L5|%n4C~O^Gydf+lIK9)HP5j9i6!p zNR~Y|WJA8&5iiR%8^LJsUj2VHTW9-Nh~$&hRphOu zQ6*v!Ji&b}pb*)GcZ?z1}~=n}$r( z=G@_vb=Ny>F;9*s5827gDINzSWT$sKy!hP}RBL|y=rg|gn75=jghl9hf#_tALCS%| z{+${F|)OOw*Sr-bRXhufi#(m!|p9C(=Zn3ou_Wf^4onSQXr$g@v|=Ey)JK>7c}?us2Fs3dv`%MRNp7ko z1}gJ)4?u7rsHqipMh}lF`pgSqW{*M9;s-ncsM2`1ioI;5>m%Vo;_x8E=4 zSL!~$v~2v5^_8eQmiFfBk9^y@k=@$Ks-1al9Q0TRcZ?l={xAfhVsy+tBjz7@9j%?s z1Vk|l>ic<)mTErG(DZ2Su{Yg*J2hnq&JMcwgdx_HcDpW*vv;|RPG&fA{qir?%Z*o6 zor9BCJI8CL)5(DM%-r%chwFj-9ak`o%3QSZ$i$(DE(ZOFJokn?OLKtY(StwFs6!ew zN~~H#x2|B)6NAOPIm4_D1a{<%B|a`AefkW6C^Ue?FA;fZJ(X5lkB#vsRuKf3zT)A? z!rkquc==cg3*p#|Dd~m=U^pyC0A3Wk*Le>&-du@kwL5LSAxE|5voz>Rtp8CNHt1wD zd^McEgl_3sU^ZxY+^f#AP)KCu9qV_@c9Ppx+ddO)JE@8DuKovW`=mJ)*~Qk?4fSS~ zlFr`Zkxq5Fa+KUZrz&Xs4w8-G)bygX2!ik5$5X!^uLDTQ_phh*e+;OGj~Sh&4!w)^ zhXOw@wv@P+S=?hzHOPl|FK*|3S(vX^lE%=fWf)r~*m-$?klEV@K`VOrvg;$Pw+x}c zd#oI*Qag_kYKT|P;_>+6%G9~ZWq%LZceHh*=(JhF&N??G;MqoLcl~N1!PyL5cA)e( z;$uQWi-o+qS;50rO`{xEQbv8Ztg*bry3+y=c#ZuRu9LJjcYsFJX{tIFZg+IJ;(OCN z$R}3|iRpc>qa<8*(N{j~*u2xFRGHR_5q;NpgMnhm6P+}5Jv%Og+jbPo9&l0WQUBtcP)?MTCIH*BIwp(u^0pu5XJ7+S+Sho%U z4-eiDk*BgYh-SMff7@Xu^6f4|cw+4f``*c+Zz(5Ap!7QX=n+jRCWwsu#Mtj{hiY1_ z+_^*GjGQSBY{QRJp|YdjFOHp46D^hXW$(O(y{aP}<00VF-DL(w4rQqk6C)dP9&GQF z#Onm)+|wL!e4UxD>14h7xfqC~Fz+da7WJ0;;k-81Wu{Kt^Ki~&z}v5zB{7!S7lR5~ zaL*j$d+o`OfeAp$8+!_gK;cnv#H3@2G#0mN_L^X6i!3IRq}J*)35I-R3R5bgBBYo! zA`tjw1`iddxTTj7I?sDmMrxVJ&~4%iXGKI6&PKGcl$nY)e^uN)Y51WAwxeRfWi=Iu z3+rV}(F)a;IM~*P(z+Ph!_ON>z3ib(7F;tGG%TolX?TUPM#)*dTN!U}PD43R$%9lj z7}7R4@|nk^HpYW(xo~zS_Rd=(CP&3EgE40r=6MZLo7}tBlM}2VS%Ku;ubye0k}DAf z4eS|nyWU(bA>?L9Cd0{^WsABQgBS+T+YMrGMSlN*g4RFjgRB7JWNJ2LeguCo5lmu?#Q-ZObiioK}d?JJ-SO<2f zUKCg}t@gs|hor0nBt1@g+3d^94z##oVk116B+hLx5TM0j=ryHsJ8c{%l-rX!c1C1R zPGmYGOEB=11WT_da1$tUG&8novUHQX()D)Xab3Qu+l6-C!5wgOo9-a6F`$wu@F*-mUk?Odq&>v zYStqsM<#XDT8T`KV+E!WFcXAH#GGD6;sA!KuOsjG(k;Jp13%2I&7~4Is)VjkSyQM~ ztsVYDb{u?U5v+iT zH34A6D-DoIW2~cc!@aOr2cg)CK|*oWU}GgoAGHIxFq0MS^$eDb8h|}nIKejuf0qQC z6C*Lv=-HYvj9~O|xeEujiu+~}PkD6&ekNxPtY+0UyfI}#pe!hZ~#S!E$HR*Sdm6=?1? z05O3#Cqb2#HjrpZ!3(a8&qw>=TpD2@>LP5(B^Ds5S~Rq14Oxq}%9Mge2|X(^a-0T= z5f%o*+VRW|>F(^wVZf+wKT`sc2PlFWqz3u6i_h`T86R(}$+f`{(i=^H*b8O~MuGBB zCEtFwvkRQzef>m3(RM03Q8=PAC7#r%I2QZx$jE}BA`euW8EQ4EdUFa^iz+Ot!Kp1| zH!=xq!wY4%3uY}>EW`xFXazC2g;FI0E@ek6aWW++)g>tAWK5`(L9rGLq(a7wTtgQv zmcrWADOAkGBCJfb8EmzzsaBbpGlnA!5r{k}6c~x1vcX2$H7Q2X1>m-`B(keU%PAa` z!%*F3vM6Oma^zgGisxEfu}uVG6sBAZESHzZ16xyuWiqjIDTX!+iANYz_q5$2*BS_^ zaWb%@>v1wtk@_&7Y^Dwsc`n2)C^WQTR zuF=QwoJ?_K^!<^24NM(#bWM5rSB0XpBUHF%%@MgAj&^JBAFI zM#_ovFT)EhIG9)62@f#tmcr6`A`-?(gCsfy7zmb2Qaj#Ek{X0Y3RF(alrT(bASR6` z@=3-J?3>mS3W^&KxB*ZxOAOkZX4BqiMy&u{i4sO29EYfQ%ot?~k@>RredVG30Xz5e zWv8s7>;hn>S0w_n;W54;5MywB^>XJzfu77P$S(Ig?;huvf%+jRQzZf|0Jo)wyfN*+ zO#0fY4ze~13x`tf34=gGN%z12{QmBAae~PM=u5re?u58 zV%7+fr|?{sB*qp)1X{6>xwvjMn@ETywXB6H8cJD33et_KT12r6O68d{f|Vk&(pm~F zTM!zJf|-F)77pjoQ)NlcU@f!V_Z1$MK)>rtXZQK*% z4-#u7np2u?RICD@5Of>?jEM9Uq9e)%#)A`Hf1iJ!eKV%|Axl9@pbmouH7W%RZp1mB z{gi+8$qg_dq_YSJX+yoSX|cxK5^%}De8~S2{8DePtqTuT1olbk#Y93^6@jz^T1MZ; zYXYkc+`>A49~QxJr{_04+z;T3AYdO_cE}k0#!!_|sACcO9@P7pqI)409LPd;NMcAG zum-}-DPj4?@#D{z(+JA|8%b)|KtR}!Z_vsooAa@>Qv$1PXo4!ibt@g9RwNb`qSBUD zQk58Jnm}-6W*~<0t^wr~kss!tzo&7C+~xsQ&*$~-xG`w>vg|6DRo{P~&&C1(>!!A) zh=$||6zm8ILd5O zC6;E!`$&xji5W`9m=&4 z*LN3I7izZ0r#g9J^)rq&GCfKUWc{huY{j1zLl&Lk95X6^BBo_lY z(x*ob8b6jFMI1;ktw>m53N16<0;N=_G^r@=HT!z+zCU?) z0MU()OZ324x^Tp}_#)sLxglu?N2XKZz`MeK4M&3tu_O4w0)=IalhaSjXmvZ`^xD2{ z5QYh+jlqWGa)}W(USKb z#~Ue8ts4{bGSjGc4VmArjd-3*e|OS(-1G)Q>aC2FhMd_8_AFJ?6*he73s8fC*t9Tq z{QQ2!cfUU7gWro1j4>#1HsC)E%R8Tn>tYY<>In|}`I)Fb4PZI4hTa@hL=cEVb?4VX zHgWkn9|S5RGJeA>vmuA1+f0ZY1_F~&5Wq=2P_`u#u@69i+l~D4F)`FY6-c05B!LLQ zh{X~_+7v;4`w3$rA%(Drfha(L5{N*Ell9B=<2e?-8HWMSM~{D(2kc#f)|YE4wtKAg zDDBye!{u2*?0;gS^~IdUrMG&;CkfKj>%9FM@2pdlY4YYd)RCj=qS5*cb05+m~O2-Rm@>u#_8R;uUf|s{c4->so1#aR1T7iB?Mw7q{{XEuVuT{CoGYwYAAR zCV!oYH!@$s6nfOqBsYnqH^7p7|#oT7xtiQv#73f~0Om(wPHTAevy3tSOxZ z3yT=)q?XBKH+|&m?bD6;HO=fC(Ad|jcj~gb14qL;j5!{IL)O_KfZ$)fviWY5M29g7DLdPlM)<+I<&T7<+1%Vzv+O4v>Hc1 za|YfvizWjU7jv?taDBJ|c^Co5;yL48U(V5VOXZR&f=#P55YU%rk7wHPtA}F@4owHD zwaQ55zyefZpg^%ceabg$H!YT;q!a*1lvzN^pZxxP_tzK+jg=0|lLs2bH!Q_gJy>2+ zx0Ew>oSSM}OEkS=&|$3On`eK{>D9L|$a0nFwRzo`VP#E9Bet9-1S?Thb0yk=$9xhK zghoMBhLc+>cf1T#HK3blYm?p|NJ$_J?l!@+(_Xh;bk z4DHS`hFIz7hpUQG+f>vwV9XuJFWIZ7b8nw8hun&s~_Ck zMLQ70`|uM_vkOV5ZFb*ifL0;pk+2Tr(t~Hs>mf~7tg6LWPxbo5w3SnkI=f=^y0o5^ zF
b11#qxk-6_)VO}MbBP`G2!Q|>j%XO9BzMmn+dQmc3*D}dt@$h2u1wlJy&VP( zyVt_}k1P1dL;J+Qo1HIatZ=f<7}hYF(bs+O&M=Bv%eyQ@m%nCAqve=> zSG31@LLkGJrZ6K?nHfYP-E7$N0CS_#pG#(YCE7iwYoly)=gX*o{+j-p2AIELk_-=! zKK!2N2bu58HxEazC%bGNt3yxBJCGFE+qAZ0z=#y&5J!?FXQq{k5r7|>I7;vgz;{>n zmcH|Q``pn8kvmJH%&{H$+Pk4&AADP0<8WK+v*tt}F&@w*FO*FsNe+9zStd(*npzxu zc(h7$=00q%qN2&?G^8bf8JUesa;-b?`D(WNw${1M6t|~Cxiwc3-8pZAiqVl!P8k{; z(cuQPwQX=z3t?I)uH38Hrnr`N5aTpCxiF27X8F!)=iisPue|HNy2pAWqkHeqtyUZ( z7vQ%KSI<|duHcVmLbmpUP5}*#Ex~Z>ULZea7dWFy3J%qt$g9f#SI71_Fnu{CUh0eEO}j1 zFTB1(O^rKm{VEI6M$defBnFb=Hx6FtUo&b(F%OK_-!pCu|6svnd7U)W?3Rd)52E&G zoNR`qH7qv4{KYlX()40c5e+s7BnGN6s!6xNv%+gN5~Ewc0f!q*urk_EuF>ihe)JB( zs}c%@B5+qaWa~iCLV+Juh_!7hLyw8+^+yd7K}n{T8SA+iA@?L8Wj*UP%cOCNIvZ`p z(v8F=&bC_3v0hD3T?lN0>SzWAZad?LffRY3%xl!+6qr4yV(Ul!=)SmrVbW~nJOq&<31iQA+Tc*ea>dKLG& z6wWV_lt7yVhR_MQ8(P%QhNPd4)pAi2^38p#sss_!bFTQ`tu75}_U|O0J{Fu1e1C)Q z`TDoO&t_OlkzL8F!8r4vvGb1Jx4m$EkHj{3{eb_uq;{aU)#8wEFZ$v4^mo(mV0Es zA8!eo`uG@54Bwfa{qZye_=ym+22cpdlZ4rfsa|MNhQVHFU(P2dS4plU@0J995d zWD#Rrgf-XGdgigH^0oY~ZDH8$VI9pYHHkCV$74F83U-=pTpV~1({huTIwA>*z&PQ6 z>xU-g0f8Get9x*6Ky{^i zavO7N8Hr1?NNVAettq!b@#BuhthtXAWLvY=TsNvrg>seAi*iCU4A}*&HMms3-oo>g zRELg9Om3na05#;B*)Zp56I zFqf;CirB@Sw!O%RPPM#}(Alrja?L;YkbRH#-f{bG)OfB>PI4m?5^}dWtxPjW7%b6Y zGdF=3YO+j5UK}aNo#yJ0AZ>7`tB5~&bkF0-THl(vtE?}pIgi6e!g0IFG93s%q(BbF$1d%~xFTESFZ7R|B3 ziw9N08Jr<%X|CX>(d6s7L2xB6Euvq|-LaQ)AWUNz;<*!c} ztz{J9)bq}jM6`ht$Sw5OHURFubPx$7Xu6ttDRpLO(Hwaj8;yxZPo-%dO$jWq1+ij& z4DdfgeY2@P>KA-VGKtJC3gsZ<(&grh+oYLEoVx4~Oh%uGo!kLI9!-)Z>>_Ph>4@7x zuP=MXW=Zs*SrfFZKNc8=G20U5dc^DB-#v5Hr@;D79Vlwq)JRo@>4rv)75A+G(X$R6 zoGD}x^Uxh;nLhJE&igvZ9NQgwm=)ZkgEkCu+d^#Ti-hNX*$T?MfP}yS1S1@_eWJiD zmbho7?B5B_`RO$9C0^4fMDecupPlOP#{{h@lt7bjibuDl*W{bN3VQ3s!^W7dy|uJ> zGYpdpB(=2;5OwCLcTiX~({j@%blPdL<`AAe-qN+(lgMgD8Te>k39Yw7WaX@{9C+aE z+Q`E&gG48%x`4CfTab{et%M+KT=|QT&^OV;5`A1Hh9d1kd>96>U<8sC=x;8lnr%jA z$|2meYAt|b$>Gml?~KD{sss;%tswUX(7}L&&ER_+!nq`^VBKyPmRSv;)rtO+Al|z+ zK_iECtsRk+JWAx&&GQV}En}-LbvrC^LAWf8KLQEx3$eM|nnA}^x&&L-i+O;v&DUPUYgDOd6>PS zPQ3bBM&B*Pi%}m%FR7b39;#p~Qy|>tW9;%cyas1;8~<qN~NoXcP1Pni|(4ZNVKOEuAKD2r0Z)7~p zseJf=`COY_1ouE=%L5Z9X)cp7ew_ZY$QdkzGW4w~4gE(ZYY@7!4P5Qa=0#T1P?>$o z^3|C3yOsUEOq(IM1RjjXO>jXW-;Y*mjVmf6nCY&9;WbWSuLACvfCR1CX=-V3}kQf!^_AKmqeeH~qpRNZI+*Yx)w0cCRp51pk!Ws`vcXZ2x#<()I zX^eN?8wn01I!VSANj{AuQNoBd$)FmQW6WW;G$192YN`BxAINro>H9EF{qzsB_%%NS zHLc6=xsd#tuSqc?n8_mQ1z@s%3<{AxP+6fL+$Y!7U9p3wq@iUA4E`C^c)9KIT?O%) z96@M2`XQbB^CN`{G6$fa6nmJ%tQfC|GvoGGR)0x27O=**g$Hs7Y*3qE;bS%-+o|tX z5NC{%`z;7J3a~Jmf+yfu1~s}uY!C^!mB{&F(<+@V2VNZ8&%mhU z2;?nKMwPIE@C$T{ut;oUut4^>S(cBO4)z>9h720UhgNPg%QnDUu5f9_!F?A?X}0zi z*$pjAk1&>wP@j5KzYM$%Ly!VV1U&HgopFalD-t2dQ4PS`5p*ERAr+gf0e}@!5%&ZN zlb9Gp`$pYqYY?H27R8O1NR=$=7O+7)cX zGxK$OgsXko{~4Yp@&P*Od%_T+=*Y!1&8k5%(_VHL7ZlOjP3ja~h6fuh95Xg`R$EP< zBVjKm#d>nkc(R*B>GxJ#JT$Q~u8cWju>CdiK3~I+d&s^Th>yC4WMz3t|360p6 zd^R9(_D+F|E;|s|$I+cMqkjJWP$1Ob7b9_!^(@7ind8Shc4n0F7Q$?qf*8Z107)Xy znA?0B+phv(7u|->Fc#-k_-C2N)0||u4 z6uVZ6(6gbeH{i3p72?>mx1h<9Byk#|In%N$k?&{nypRK|a3WO2*)0u%2F)l4kw$QFm%SWwmO0=h_I3M?Vyf$%BxD#x~Y!6c_g$V*_kX+1&i+`jd2(ghavt zM1wqm38S|mQTnzaFXR4gnUVpe3~6+@b-=rY72rvE+lCq@HT*_o37}FZT@vY>fm9j} zm=ANhBUdPIlq8^-*D5XLmN|82D`3(_*p>9(Q*ybKYUA+E^GIeg{pb-Nr7w zQ!0nj#irW2e^vc2uUC*dTs5EjZWce-T`x6Sct9I zv+*6V$=*1_jzy1_DymYEAkN+h5P>$>BOUP|AsREA00Oek$i5f1(U9b})0ab_NQ8`s zx6|oQ>_0w|%wv+s8YM&%X_ZKhp0+xoZDQ4ZIJ=vv7ll$U5?Gu4)WuFc@~wq#Qq7Ya z3?#cAdCAgs(MsxcX@=)K%wDX>6gmDI(G4K*4hY1{T4prRZOW`gxsGksrzOS~heCjd zB$8?Lg_vSllLd+s0!k!r70oWmh*&Baue7|pQmn8Y1d+lbIusF!yPv(&B(9v|c_``_ zp5E}nEbjm!L7RcP<(x%Cf|53%(&le$1}w8&WCZE0sJX*=d7J{z%5PyssN>@yGuWZKxX{A zK3HMr^;PasXUEAT%Q;C89O}HX&FQqlwrBj8d@rEX)4zV9L5qA8TPW;cT-HoN8V%9e zqX|U!Q;;20>}&|Dga?Jxu4?2hD_R75~ND MkxmpOIv-;6z+nhd0RR91 literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2110-software_cves.csv.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2110-software_cves.csv.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..b8056121a1bb45d9eb3d38818172a93ddcbe210b GIT binary patch literal 665 zcmV;K0%rX}T4*^jL0KkKSsMwEg8&4%-T(j)00MvD3IPiMPy>V1b)y>Ah7nKGMnaU( z3TcsviHJ1BYBZ<-rkNO+n1VzI(y6r%PJF@51pCN{_T*o+jolQst2U!!+1$aohll8rA-j%J=?sk*DD>}wjNeCn!HA1Cv>~L+1}?mhp>c8 z5|#~!VlD2&IkSDcakLIim2pgc6*wOpb=bck^P zn}!g8hJiy#FX|FgHad4(%reWUoW_y-rb|6R4K|VSqzE%rUBkSZLg>C1wj3JCIr5ls z1ZXpdqI+(8FQSmAUWgGKDm~^)hjSw;>S5ijm~YvLTndW<8!NVM<>ww$ z62vwv47{6Vv(tB6R~f2TJJWYS9281z@dN_aeW3B=)a2fd0*U~duUnwTj!R&o5xdfQ zHe^nwZJ72_)Jgjh4dc4}t_+?C$Hy#gHnT*`t}P z@WL2-NL_IT1{Uoq?sm}2uHMkM;2=lTAV>WPFQ`dM5?@e(AENF^rwS4SVKNY4__{H? literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2204-software.json.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/software/ubuntu_2204-software.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..ea9cc3399de9b3cc7e92739fee778085070a2bbc GIT binary patch literal 14158 zcmV-UH?hbz41U(r>dVHJ-g??FS4B(eYc<%V{FiA@10jN z>(+tSMP|n*ryYviH;rq1-Qn%M4eS6soP#ae+dydAwtxqo`F*o{)v=#vdb_#q|#5+r{vWJfY8teKmfpyl|4kz0QEF&Kn9Hgp`$<~(j-Dc zWXYkTG)*)?kYEvn2$Cj*(FRRQex8P-Mw*(M4FEJ60z^Q75Fkl}nG`Y}pfWNVP$Ggq zpo$3L0Th0)Ku~ZZf7DHZ6&)D-kWjr8)`8n5 zaH#z>rgE8u@SC57#t8UI<8~ul60s`B%4-=qLpe-MrPa2jNV4^==PclYX^{6 zMu~V+1_q|urExA_CRv)Z907o_6?x-uV+|Jbtu+^VwZtf;g;6BA}v&I-#zJ zE$GRJuL@i(0U{bAGPJZZ)dt!oQqd~uOm(ZY?`fNuV8p_dsgbx=iq;A>D{GcwA%}U3 zF)c~ag)u2^`OwEpVMHq!?qpCpcREWk=?fW>$CSe@kT&4%h2o)PLru%OGC3@=mc@mL zR;p{(l#!ayNXFUBn1%}!F|y}dCr&)`VS2kTU?@Ddb{LC{5{=cR+`~QV}?Gr5=LdIl2-7Yj5Bj(RrzAuZ7qnI&9$Ejjbjq6N` zuBIL{5K0gx4P`uLY8#ZQkBVNd$E2QILFDEpQoeI5dM3GJ-9bD;h-tKlNH(F0xWh`- z=x$tSnvu)lgRWTWno`q^B3Ab~&IQVj+Bs;gddngstWBmg5D%RFf1gDSdY7PxJwLPX zXY`o!zw!pV4wxRVO~c|x`M>?DrJ7+s;h7I#>6(l)_fWvE1mS1xq=%vv5vBYzVmJP)NN2(I3T=I- zIBAz+lh>SQcEJ^=lDKbae zS4T{p1;mET>}|3YwS9hN7>Y5w99@Y$v+grFWDqd|F8NkWQju*E@7^8<6pneuv2}Yr z0r-)GxI+%k5Z!mXa-UPP7~&NMk}gqfPO*rQm2(e>f(bto`cSpsYwY^?nH))6E}9RE z)6ZELP5U5K3zoh^*{!}@K2Yf#Iqzh_mj;AFG;Iz);v@)XYVhnnFfOy> zp9QHQYD!2_DVAjNTj{wNQOM^t$b7G%#%Fug4s#8O)?Ob{ccVSVrOhr%AnVl(F>5EcM% zpYtJ>YLwKX>5%O(eKdN`@)*#>d^PpMf!E9VmzX|>g2;-x)sTx*XDZKWX)>SLCjdhR zExggT-0&g0*XY1xv4QhCyn9^Y_Bs7#62b4x>+C2nr7S^t`t137wUn}mx@jEr+d1+j z;J>gTEgx;S%@rvebPu3h`q@|PSC|L&zU+q zxJ3kDf`k!47@{0Ho}E5?{HTotK4$w-0{K8O8{+`NKPQ=L5i}_mc#(~ASzNJC-oz5s z#W`3_LtKM;XIkZoNu19bV#TN8B7#4P3YK30Ep+792>-^uF_v)}Z#<7)n-Ui4Zu{!sxwchNjI%SbK{aM^Pc?uBT$*)kK{voa&NM1WnWFYYv?B z)(Rv__BrJcE;QO=9p^Lf^_~oi367avR3{TO_N$#tVx9FpEagiPS<^Xoa7lEc2O5l& zpp)U0FMUT%Yt*ts0`c#D24S?Vyqr%|a5f+g@x zX$HO-!WkwBeP(d*U?~F&=<2>0+&djA*NEoRLY%7yY{ha=h8$PJa|5ijxw?mI_p)!reTL#&{@kgt)hi9@b+1soXCl(?5TI|__P;o$g{DP z8^!>>6fRg}1|U?0;Fwfx)&bH9E(aMDUo~fZ)QDP^O`y1$;C3?$i|ZFvoQ*EjRx~DP znYI}aXKsmcvrvU>dc!)3iW$sd+Osg@SUFG*)re!*hYo`~0v#QTGjPqSD_5xlW3D>E zGELw~SP&h^IrbzSyz;`hdl%c0$Bi1fVuK--{1r6#bnWm$zRK_twGjh;UXkZoT)^u- zv5LsOwOCOuwT|yrl`a%(nk8!Ot|e0(M9b7JqS6at#SRUo*5kab| zj$cG)u3%o{bwS4C7{bLyGGldha_X~k@?E%xLI{czdqjrPN6+?rd|S7om0z}Bbs-{;`e#%o9=I59#XU8A^G zl#@Ki&Q+DtSYDZfh<8ireh%E1+j(wb3Z&};eVuy|0Vh!G%B+E2K%mS>wPA2ZR00}) zj|=X-_sxc-vuA#ut;oSDsVss$*h{P@d12tr{cS~@_D#w7{D z$vE?TgtPAB?V&M!rSmUAeEm0F_oSH!g=Jy&IM#cePZUo}^LOu^-G`6al9{3dzPJcxDkOsvcuomzFct%9rP*Gq$6nCAlDoA zd}n2(Ec=zXJ2l!&l%n_NYfdRDJ*0VZ_rrlC*HhOm^*lB#4pV(=lirLx@F8t(gFPu= zuF+Sj>Q2&GlfsWX$(}>Q^Nhwr@3{OHr=2A{k;F+#a59VXdE_zB;fyVQ7z-&EU9 z?%wOvgt^at$r<)y@#_{1E4rVzM`$-gmR%+ zklAyVkG!>+%;fqhVK*iPQx~0E=0W-w4k#_WP#&VaJPebqX~{Hqbn) z7`YoQ=^Sq%9WuDI9`{9j6CP5}i^o^@8kpM4Q*y%z%vLqtTTJrOIs$Oc;OmNK2wNyR zELvn|l>J$6dAox*OthhgADZh|gT;v)9lm+dvp$_=X5Uz)Q@gY0Cf#i_6?1u`?uBptRVcHchQ;YG{ zuvnN%YEl{nO{-@Pq$0H9iYiL{Z5mmrtV_-OVY_?9=;J3kX)57#?jRU}EPI@98(j%D zPyp=OJ@eS=S)IK5R1<2ykaCWa8A-l1p{=Z4kCN*VBy|_ z1CU6DV&IW*Tr9m<;YNgUp_&Rb;w0O6oe0%Py30m9H56moFrWubk%;4Q9%#sK6p27= z<;0>*-ZBje=P<&sM%c2eG9v0?;nolhoVL&bcZYk2lsh7EAZ;Za0rIix(qA)qG8iHgQa z#gx<`DuAtDJ~U5E-uP)19EypBoO%!$R}*%&@=4Km3wrL`x*XUR^u%Izk2?*6gR#u* z(VN?r9#CxXVe2HRsEkCYJUwP=6r!UU7Xg$UN*($ya+fcotW7-UW~RpUdVxcODnlbFfyxE)}AUU^he|Vqh_OUN zV2@-&gK>;=11JqRTZUXH*-TKcV{>^F6$lgv#v92d4qMQNZpw%$P`7cEFh&_x=(uAQ z=p6}bBzF)-+>0_^OrTGQqjD_0!YV67rFEOqjz;54VRNfpPYV;vnb&Zfq0XLxl1#P` z!vV}QD9OradvXsbtQaFDkk257~vD$$OVJmtKhK(vwh)W$*(&XSSL3Wm)he{00a_LPX3@3w- z-MU$3!y;wMg$$!iL@5|@c-o#q>&9Mvy<9!Q!%I=ICI?(2He z5YUKmcXFI9hSoVl28S{do)9d@MulktS)=;Ur0Jvw@qqYkPGG#0xK2RH#v04Z|r3DjEn$Me#6> z24u*LNFh^Zc<;s?#swOxE*%r8W#BUf1Z=o9D%i&%A|@Ea5K%i56~zsUnC^2a!zVad zL(&zcwl>&Nqj^ou18q5HG2u1Gy9ym^CM|J;dD`| zk3(}RoB<9?xdsFWzK&mG8s0uWWGk!wr5ma{@0Q~a%>Fh-84eOb0=Op5F`Tx}3{^ca z$;aI6c$1V43r&>)2YfBiXh3Nwy>=}&Fs>j&Y~l!K>Lz1CF<(9`V>`|y#NzYh-f?ZB z8!Y(?dic+9xPnKesQriXPOpA>a1Qb1$POYw=?C%QnW^h6ht&J17|7#i!qCe_BuZYu z9k4HwQiisnkr@?(6_HnINhcXRxFiLH@H%*w7BW;&HJNCk1(|Gugcg4UJRle(P*b%p z36ft~EhY>L8U1oh6O&Bg!GN0sFc=>8b1h$S*$TpMT*PD?2FNL6{fx!vY=V=eZ$nlJ zLY3=f$XujHC)wnX&JvUAlL&%4SkF*-kkUzorWY7kcr#gqb;&1`QcE;^hU&olnWOQA z3phO>cdprx?m{Wo!|9=>S@=l`P_+dbL}aL@u3PSB$drB^6cFa;5WF1Z@XTk63KQqt zn46>|^6x$!Y%nywG=>bQ7{~})mY*{TG>?Dj*-@Y`D?=y?K+(oEa`AVM(*K{;%6$Ia zVe6z1YjvA)7#{4!4H}Bp!SMi)S{CM5|W6W@1FOaP9_77Frx+v5@IbZ zQMD0^M%1jOD+ER#&XyP@5fK(r*;km-;~NUh!k}VVV34w?!qiC0<*H>^TLvj$vb7~y zM2%uqjYScd!h%J`qKG!O3bG@UC1zAel^EMBMJ=SUMvX>e3`&Mz$k>&m0+A@pN~*;e zgORmTr34&iOldD!RU8*wFcQmZQc~JlO4rkyNYc94T9$=nj(m%1(_fDa;)5eZM;Idp zK#ZIn(I@A>puT;6KTaU__42*h@TbK#%ksQTbL5i|roW!8`aoA}M*pRxH;sxWVQ`jA z6mm3TO@j(Xn7*T6n=_y`2XB><=p==_Vy1iXh#oDU4nuYUc0oo{MFOBK#xpoB(s_$neME-RX#0EGiE_Vsai13v{Ih`G z0L{aeC8;ZKyx;8=`tzQ9=yI9u`M+4Gvlw|{BtNg>3RWQ-u_Yi<9zoK>@jhAFpeLku z9Zf=6qso?ZuTiDtGNa?-6HF+?W-}zqH@n+P1zSTmaM5)ziA7*E{S#CA<6!q7$t6ev`pD``g5uo^~+D2o!bV5M4Gs)|`cr3wtJvaEohw4p>QBPkFY zSk|zcl*(43D+(5s4=G%l%FNBrJS)VjhciI|Lq@D(qlgs4Uy#1`f|L5Tf3M%ynSPhw z@AJL$edR?4uMbaPt%sb~(GK}iHHpt#VBRh3o9SM2$s5`~p8NFuWxiV3`-ND*VBhJ} z@0Xpouoee~A$l?|W8mr#EZNyiC09m_=!ipWhIRuRMtebH`8Z)> zc)<(}mP$d959E;iraZWNgvMg^hBCJI-Bnlc_A5Iqq(0JZP0~deWgA4p>G!VDej%K} zw2B;(6FOxeCKnM6+W2TOV6>yjJUAblFhe`)5ZJ@@GJtYH;Ym~=sFHX|EHLTMm*b|_ zGkHV?#E?ZG)Wd_3y8?wx5E~T5!cay?MhgvtP_WcO>;oBl^ZR)8@z&zqh*_}dFc|2d zAm@ZzJbUjAXuA<0ddnoM<}?e6X);Y@c2$&EX^Sn0>D@RjPjL5j1M{X zGMawQdJ4-I_}VLhRY5|m_|mN1>SiWvurLIzt6N%F(J4emHA_W^iARN$Or?w{kKEXz zz`~`ics0DBnRcbJBror$Vt39eRQLY9?%ih$7N3@YReGhr9@h*iSHVsbc(xKaJ124m zIC10i_KE{-bawk`gGX;?y+{xYVUr4fHYiZ`$|(*B6&5i48Ts{LF=@91yGnOW#7ltW4145gTGIK<b zv`8#1w(AT8L9`O0!6|}!U&zhkIvMA&AMj(=pS66nzAjZptk=qnov`z(+!O^jJIM$9 z1E~y2MtPmlDqD~0M&VND#u6l(jR;F{g7F~}A6ynt`M}E+Lcyq|Lw@Ro8XO`Xh7e&2 zXfr?yrbuBKcm>1UUly4xZJCmR{3WwHEP^Mv&iw}T44qEAU^cnJL%Suk0Kt$$F_C&U zEixD=lxWPDS^ECDCPavFEIa}hLl!*-Ra|8l1&JuY5OJ{95_(UA1K`9lvKiqF;PytO zf$tp8zmZ*+M+pS!*C8fNN-D}3NMcXjOHogBGKy*Yc=&CvwLY5p{eAi1b&uiNa*Nt0 z1ejqev!btRO#L?Q^Jrj))y}Ab2gCI&JTeA%C7)MW*n6q@Fw|6oY)krw3#`#k)S-TG zU_)Y{L^7y=8fj;KCacaMF++KVvs9?NC|MDtK=;c2o$S^J7#yWGB8?26sUPab)Gonp z=&=YW5a9VGx%!!-sLQhMN+dw``+S}z-&TLrxJXU`zcv#4t%uj=^vr$ccE7N5USnhv@j>s)Gby zlcV4?FzyLP#!gZYF-A%mrDT&39oG&8=kHM&4S6cZ$~X!T3Eap!WbK*8gmOh-so_6q z95g?jzVdUYpzTUF&};L`jxi6ou*5d3+IgQ%(aRypl;)Ukp&MlUB4Qje8eKlPU|Pbj z=R!EJ#yU+Z=}d(}!NylJQtpWqm=cktnGE@2(uF4sX_7X&r@sH4zSTb;sQh9n@M!-( znHF~5B$jhBN^Sck1gS(2AX3#13!Cq$BWG3deEoMCw>Em4Y8D) z$Qq=Y70@CD(rK?b!utIS)ffa&NkRv_6$EFqL_|?i3Fd_mUxf)#i56hcNGuV8#1Mk0 z5MZCD_VWLH&-2~>I2ZbUc1wC!uj&4>|G%DHC(NF*e*4;Xv%kydhtJ>O(7y`oR9<8> zynUI+ZP4QlcmfBGci;5Qe{5?>>dmUmy8rIG*;+n-Yl_{J{Pg8T_Edp=ApTK{9YqIAuEBd+p}?CO^sgw{JH6pb1A>GE3J8lpRAy9- zvNUO>Cd@`exI0=k<`z9J?oTJ}q@K-PmJob2P-&7Rw-_QC)u3B>fDVm9`sgt~T1lO_VIww*PjQH>}*?@3^hmg&Qm zCVzy63Joo5S}I%J6Cl{mjgul&qBTybx3owJjHDcGJIF>>mTu+Ey>tUQjEqN6UbMNx z6g_#MYMdH9+RF5q@PYfFNf3{~k_3!ognQ0bJy z%GE{+=IrWLhKEKGYUPp2^|=%$j}9;7XXDQEvzW>n68I7 znUoMq@XhzUa+MvshZalEzn3+!61y!A#ILLN%~@XTsqo$`rl|g3RY@NG00P?lW=X9< zAUox@+Fw2J7a9^h*p*myYp(a~*4)7Ty&Z;z-J|x?Q!I~r2tV-Bp!}Y?k;(LkQx#}- zg~odG=CfI-@7`=f6CZ3socX?8HiFqZ!TFg#T6<)B;?V`%#ASP=W>JxZ5Q_Cy(`DKY zD0?aNv}@Te(d{}}8efdK+p@pA#bgxw#0dwf3j`OU9(>OewC8Sp=-53Ek4L*~9cz)7 z;vJL)8yj_&-Tapf{S0TzF|Ad((+Qh}xU~#zs<}!B#b(~#?9KN5v%keGXp%A$w7Q;z zOYzld!WFJ&eYdur0kRDIy?iL|xl&V~QaaU>Nr?;L_SG3do`m)zOq6Hg{!8RkwA1V5 z)^LBR*{VXpx z3mZv!3Lfs`?`iIeMc99X+xi=@eD0&#-YX4WKeT5$8&hZwpn9}h(OAAI1UG$=+D@6t zoG$?EYZ(JR7Tr{e>vETDt>02xJQ;twP6dv=sX|!tU6!z4dUlRRq9AGCjc75YdL+4P zeRC{P14ye5Csb}5{RvOCYikB$GsuKKFHc#UZe#ZjFj*d{o_Zb)lEI=rE2)cph=yf^ zH36YPwhs{98agyyOUR-jhh&Tg0uH3#iY%$$*xI4bp-lv+mFIASZ6rttM@s1j?$dh} z%0Y-+=7bp0)w-^iyX;O!cLZl=v(JAV>pLw!my4KpI8i0It9v)=svsqCQ8NTO^Sy6= zedo^T>=zvoqStIC7@|mA*HF@Jih4Ce%$>6s;>3{?5+NW$@a001cn}Xm?Ry=#U7qJl;`%$pmK%61OvZp`!7JI@eN{*%8& z(w`7YOKL34vuHagkh&9?;t$7jxhK8w)x7IGWuiw}x(Jzzn9on)`A!Rc50Ea+=vz2} zu(9z44g*84W>~<;AVEkp685O|s6FvM)1&Umt)=5n2U(Qot;DHJuaQL%Ccz=J0&Ygu zw3+nOiheVti9}D!Gx(@s7(Ft-D*a6P{lUU_qAHORjS{k? zDc6Kk zDi{mdw1XlT>4xSyn0|fxXo|JnE-Kfr!?hC8Vl4_(N7GsC&iU~5>kiON!YAx=(I&3x zg@pmf$L5r&vP-7ZAY*N|QSgH+D%JYzk%_(!qVSKX>Ocj2g8Au@Rk*H%SL)YCBbC_K zE9qWiCLcyn+hF){*AZWH#%GRUAUf1h`#2EH*R$57W@eomjGQpNV~k1zdy}{7#1Bh0 zb>NssFWLQ{4vf-QZlIw9hBn#=>OuF9DM)IavcGH6kU-d*5xqAkhuD6R=eGo$9AHZ) zy9~0FO{qrOG@(U0Z|gNfcdp0d0U4>40wYms(vU@nu;3<&VRYOOFp+Wq;gZaTjhU-7 z-UxE*PZBG?m*uHH_1acLL}e2ZUX9wmyX0vS%dD7`5xxIKZw;n=pSM}X+B-ehjGE~k zJyaBRXDeIZ37v}{A?Ft?HD0$WJVT^*!WM;lQpf~IS;cTg#l#z0Wb3bE6(5Dn7k3T) z&y>66ZjR2cUY|6--y2em_U+ZS$lUj#M3MnXhiS7VxAur9v^qpxK=p@m^Hx>$;;7_`l;tqD8vY#p1`dzgO_vx9!oFL7t_|Kqzq()cGW%E>hGz z{TUW#FawWxA?QLEJ|j9Hy~D=N(w`Y*_U$6976K^A^rb~mtBXX)C zpfd+fIvQ3#Z5<`|2gW=vh;pJyBYRqeP(~s{8kpIM5;ZLZGKa(} zJ}&culq`zl7RJg5uy$x&K5h_MWXO8!27iTzV5VL1@KEgRJsGkvy-HZsMb#O`Q8PLc z!KiAhqt;FJBp9fg?S38knT51gtFoYy5Qxbj17Lx$ZHPP$5I;;+V0yV49f=7^ZA$Q?+fGK^3nOEQY@$yB8T=f(=`qD zEoEq<{Y_%QOUh%surZKQR-hUG-B1 zf;`Avt)axR86%M~xnn&1ho5RP*{B5`J^BVqd;B@0T8O>iWjh>IRS&f=ANEAWP2rGr@hC@~vn!C$u zKo)G$YX&t0p^xp688}%{*uE&3z3M>4N*!-;g-y#Gmd%1SSVcbW`i6VH{^6OqSOj1y zp+ksano)oZ7YtdoWp4qak7rhxQ)75QffzqVVB1(e&RA+yo#-hMAtDD;xp!}}%Mnu# z!=Y(g=i$eW!z;gkSROg5b=y3xK1`vKVPs1dluiKYoGK2=3Wj-Y%e5&-;WnCV;xw|N z6d8NyAdRS}Y@R{BWZ|E)Lhw#i*KuzL%}lSXCp3F|>#k>&*6X*bo7;z5 z^{*Xnr)#A5jGi|3G$^dmKw~+d6p!ha~zC1A-qD?YSAsIwIx;Jv zTM_7pZJgJLP{pxul|Ta;DOKf^kFrs9!-pCk0=TebL-Fh%B`25!jlM2?H$KG zqb8-xT(m;pZn!vPe8LZAygIVZ;PIwKR>rWH$9aarLwOFRZ*@sAPbGQtS+1j%5Vg$E z4N6q?7j3pNBofjaZL|2$@;&Mv7W5hS%Xu!v_lO~#IjpV2@302ibR zixdx&0;EsIoM8{>4E(%rN-%Zvf>;D5e(dZ!+CAWZGoV{ErH~ed&d?_H=7S26H<8pN z@m?gN@L>+cutqEM1^B6d!m!+FeLp~QM|TR7X$i*nsG|%rQVga_DiT1LS5$c=KcW0T zYrumJcHv9v25__QtD><~GyRh5sZ4;2{$&|tx< zdd1AP&@GbYxoNFMWcDmO;7?);i1Z$ICh`1XEW=cjs~nQL}=4^&(Dt}z!rm9B6M@k7ffqN7H3=A2U| zH+*sUILE5R1Y4FbJ(AcXT$2 zgJvxl9K9kEY;=U(2R^r`uYAZIJ)U`9s>^OB?uL(CXrVE>lFx?34<|1~>I_*p>_cN8 zEay5KclYuDjLtU2<6)A`3uOXxGsGCDOvi_St^u-UFUd(BjYx!n3h)eLZ(`Q%beJOA zu+t1QwKSNYYx7&YGc+z0^QlW~7YyP!f`u$kxVF7H23e!WQ8^zd^vC(ibv?mH(zzDn zd^%};OIXVB=Eg0TjTRp+8)uv9l_+JhiYnG?qDs zFc8n>WFdH>j{LsVVolC@_nDTeNso`Z?L$I2Cs`%dvu^I*FAU_&;7wWdff7+#c{3NG zJwxcI5QEw$Xf({ip1iHsJcdhDG~1&=5veCgoZF%y?+GX-Gs3LDOsTu-4eN6$ z8(wQ#RN~*`4N&bJ4VvQd;NWqG&*?LV))S@md({w;~lqn1OC))o}No5~9s# zgIOEFtWI9Z62UQyU>igQC10 zGv+&B<=fXZcyZBX^uc08$s!UmAAdive7$M+Vfa%HJj=IA2=gv8`DPe&JV}a%!j`gbK+J8N(*R~R9x)7o zgKnh*%r!BvL%0RC9Wj(vP>8-KK(c760xF^QH;Z_dWM%G|v?!Nq(IP?2GZDMJM++=T z5Q84A%_bLghzSOvz}iBg7gUV-@bgb=Q6Ph13CL5+RKSu-Q%@&DxI7YSVLF%7o%CcX zXC+ygOwr0oOOjj51I`pWP8*kXIw}Xvx|mj7q>mxa$eL9$~Dg9BX#=@ zeG4eQiutGxM{C?KgdW*YQeh21%v#fuFyZ-J)HlIpWeqZk0FQEU|A7Ht-1^?wc-*zKv+^Yo;jS~E?M<)f{L zOI)s3Hj~6V1LS&{kx#@kj%U~WSpl_FLrvOk4ObODvkHC3_ z{@{rDb;r2r1KuOY;F=WuyY{B}FA;%}U!w`oxq0Rhdz-9#tgMKWjhZ~9EP}`H)%|{} zl2{LzR3qsPr3lADzK3`uU`i&oBo*`rooL8TR zcRy~rlQ}c9J0+GKJGY9)EF=>5>t6Sn0GN>xpk7@k;q8;Im<6f86-Wy$J+!m-=nUV( zvthcZBtE<|b`K9L_XrUPVF8pfRp5gWN~msV&-gD6>$d@+pL#xmfr|VbRK2oCViBl5 zR%TFXUH||P00MvD3IPiMFaZs$gH2COO{kR90fY($ zfFh@)(I!m|Jj{@39DHZSZSOX_18>Nr-lXNkERjI&rg(&{@s%~|PS8jT>*BI=zM<8i zoVf`-Rx(A^Lbh5+N(>=NV>64hl?(%T1-n5m@w_S&YO_JAfa*-)3$J^%%&E&~7~!l7 zS-GSEATwm5(2V~vx|9(V3LzJR7e!j!&Zrpz#TtDUQhFGxLsc$fZjxgamOO3_`vE*b VKP%$2uZSn{cO+AV2?L&X1fYe5S=0ak literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/ubuntu_1604-oval_def.json.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/ubuntu_1604-oval_def.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..c65efa60dc3a9fe7d66ad56a81034634bd5216b5 GIT binary patch literal 70764 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ΠtSao>GcFjGs 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\$UmnCJ<35A}$PJ5|$-=n;)KHI`AB`#$P4fmDB*M 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

rS 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

F1 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 literal 0 HcmV?d00001 diff --git a/server/vulnerabilities/oval/testdata/ubuntu/ubuntu_2204-oval_def.json.bz2 b/server/vulnerabilities/oval/testdata/ubuntu/ubuntu_2204-oval_def.json.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..8d554ccb63926c535a73cf62d88c69b48b76f985 GIT binary patch literal 3472 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 literal 0 HcmV?d00001 diff --git a/server/webhooks/vulnerabilities.go b/server/webhooks/vulnerabilities.go index cf45711f94..a0d46997f7 100644 --- a/server/webhooks/vulnerabilities.go +++ b/server/webhooks/vulnerabilities.go @@ -20,7 +20,7 @@ func TriggerVulnerabilitiesWebhook( ctx context.Context, ds fleet.Datastore, logger kitlog.Logger, - recentVulns map[string][]string, + recentVulns []fleet.SoftwareVulnerability, appConfig *fleet.AppConfig, now time.Time, ) error { @@ -39,8 +39,15 @@ func TriggerVulnerabilitiesWebhook( targetURL := vulnConfig.DestinationURL batchSize := vulnConfig.HostBatchSize - for cve, cpes := range recentVulns { - hosts, err := ds.HostsByCPEs(ctx, cpes) + softwareIDsGroupedByCVE := make(map[string][]uint) + for _, v := range recentVulns { + softwareIDsGroupedByCVE[v.CVE] = append(softwareIDsGroupedByCVE[v.CVE], v.SoftwareID) + } + + for _, v := range recentVulns { + softwareIDs := softwareIDsGroupedByCVE[v.CVE] + + hosts, err := ds.HostsBySoftwareIDs(ctx, softwareIDs) if err != nil { return ctxerr.Wrap(ctx, err, "get hosts by CPE") } @@ -50,7 +57,7 @@ func TriggerVulnerabilitiesWebhook( if batchSize > 0 && len(hosts) > batchSize { limit = batchSize } - if err := sendVulnerabilityHostBatch(ctx, targetURL, cve, serverURL, hosts[:limit], now); err != nil { + if err := sendVulnerabilityHostBatch(ctx, targetURL, v.CVE, serverURL, hosts[:limit], now); err != nil { return ctxerr.Wrap(ctx, err, "send vulnerability host batch") } hosts = hosts[limit:] diff --git a/server/webhooks/vulnerabilities_test.go b/server/webhooks/vulnerabilities_test.go index b0fdcee232..2ee3b0b96b 100644 --- a/server/webhooks/vulnerabilities_test.go +++ b/server/webhooks/vulnerabilities_test.go @@ -34,8 +34,9 @@ func TestTriggerVulnerabilitiesWebhook(t *testing.T) { }, } - recentVulns := map[string][]string{ - "CVE-2012-1234": {"cpe1", "cpe2"}, + recentVulns := []fleet.SoftwareVulnerability{ + {CPEID: 1, SoftwareID: 1, CVE: "CVE-2012-1234"}, + {CPEID: 2, SoftwareID: 2, CVE: "CVE-2012-1234"}, } t.Run("disabled", func(t *testing.T) { @@ -83,37 +84,37 @@ func TestTriggerVulnerabilitiesWebhook(t *testing.T) { cases := []struct { name string - vulns map[string][]string + vulns []fleet.SoftwareVulnerability hosts []*fleet.HostShort want string }{ { "1 vuln, 1 host", - map[string][]string{cves[0]: {"cpe1"}}, + []fleet.SoftwareVulnerability{{CVE: cves[0], CPEID: 1}}, hosts[:1], fmt.Sprintf("%s[%s]}}", jsonCVE1, jsonH1), }, { "1 vuln, 2 hosts", - map[string][]string{cves[0]: {"cpe1"}}, + []fleet.SoftwareVulnerability{{CVE: cves[0], CPEID: 1}}, hosts[:2], fmt.Sprintf("%s[%s,%s]}}", jsonCVE1, jsonH1, jsonH2), }, { "1 vuln, 3 hosts", - map[string][]string{cves[0]: {"cpe1"}}, + []fleet.SoftwareVulnerability{{CVE: cves[0], CPEID: 1}}, hosts[:3], fmt.Sprintf("%s[%s,%s]}}\n%s[%s]}}", jsonCVE1, jsonH1, jsonH2, jsonCVE1, jsonH3), // 2 requests, batch of 2 max }, { "1 vuln, 4 hosts", - map[string][]string{cves[0]: {"cpe1"}}, + []fleet.SoftwareVulnerability{{CVE: cves[0], CPEID: 1}}, hosts[:4], fmt.Sprintf("%s[%s,%s]}}\n%s[%s,%s]}}", jsonCVE1, jsonH1, jsonH2, jsonCVE1, jsonH3, jsonH4), // 2 requests, batch of 2 max }, { "2 vulns, 1 host each", - map[string][]string{cves[0]: {"cpe1"}, cves[1]: {"cpe2"}}, + []fleet.SoftwareVulnerability{{CVE: cves[0], CPEID: 1}, {CVE: cves[1], CPEID: 2}}, hosts[:1], fmt.Sprintf("%s[%s]}}\n%s[%s]}}", jsonCVE1, jsonH1, jsonCVE2, jsonH1), }, @@ -131,7 +132,7 @@ func TestTriggerVulnerabilitiesWebhook(t *testing.T) { })) defer srv.Close() - ds.HostsByCPEsFunc = func(ctx context.Context, cpes []string) ([]*fleet.HostShort, error) { + ds.HostsBySoftwareIDsFunc = func(ctx context.Context, softwareIDs []uint) ([]*fleet.HostShort, error) { return c.hosts, nil } @@ -140,8 +141,8 @@ func TestTriggerVulnerabilitiesWebhook(t *testing.T) { err := TriggerVulnerabilitiesWebhook(ctx, ds, logger, c.vulns, &appCfg, now) require.NoError(t, err) - assert.True(t, ds.HostsByCPEsFuncInvoked) - ds.HostsByCPEsFuncInvoked = false + assert.True(t, ds.HostsBySoftwareIDsFuncInvoked) + ds.HostsBySoftwareIDsFuncInvoked = false want := strings.Split(c.want, "\n") assert.ElementsMatch(t, want, requests) diff --git a/server/worker/jira.go b/server/worker/jira.go index 50258bb66b..a893b06f8f 100644 --- a/server/worker/jira.go +++ b/server/worker/jira.go @@ -319,21 +319,21 @@ func (j *Jira) createTemplatedIssue(ctx context.Context, cli JiraClient, summary // QueueJiraVulnJobs queues the Jira vulnerability jobs to process asynchronously // via the worker. -func QueueJiraVulnJobs(ctx context.Context, ds fleet.Datastore, logger kitlog.Logger, recentVulns map[string][]string) error { +func QueueJiraVulnJobs(ctx context.Context, ds fleet.Datastore, logger kitlog.Logger, recentVulns []fleet.SoftwareVulnerability) error { level.Info(logger).Log("enabled", "true", "recentVulns", len(recentVulns)) // for troubleshooting, log in debug level the CVEs that we will process // (cannot be done in the loop below as we want to add the debug log // _before_ we start processing them). cves := make([]string, 0, len(recentVulns)) - for cve := range recentVulns { - cves = append(cves, cve) + for _, vuln := range recentVulns { + cves = append(cves, vuln.CVE) } sort.Strings(cves) level.Debug(logger).Log("recent_cves", fmt.Sprintf("%v", cves)) - for cve := range recentVulns { - job, err := QueueJob(ctx, ds, jiraName, jiraArgs{CVE: cve}) + for _, vuln := range recentVulns { + job, err := QueueJob(ctx, ds, jiraName, jiraArgs{CVE: vuln.CVE}) if err != nil { return ctxerr.Wrap(ctx, err, "queueing job") } diff --git a/server/worker/jira_test.go b/server/worker/jira_test.go index 1ae8b1e61f..b6a3fb5c2d 100644 --- a/server/worker/jira_test.go +++ b/server/worker/jira_test.go @@ -138,7 +138,7 @@ func TestJiraQueueVulnJobs(t *testing.T) { ds.NewJobFunc = func(ctx context.Context, job *fleet.Job) (*fleet.Job, error) { return job, nil } - err := QueueJiraVulnJobs(ctx, ds, logger, map[string][]string{"CVE-1234-5678": nil}) + err := QueueJiraVulnJobs(ctx, ds, logger, []fleet.SoftwareVulnerability{{CVE: "CVE-1234-5678"}}) require.NoError(t, err) require.True(t, ds.NewJobFuncInvoked) }) @@ -147,7 +147,7 @@ func TestJiraQueueVulnJobs(t *testing.T) { ds.NewJobFunc = func(ctx context.Context, job *fleet.Job) (*fleet.Job, error) { return nil, io.EOF } - err := QueueJiraVulnJobs(ctx, ds, logger, map[string][]string{"CVE-1234-5678": nil}) + err := QueueJiraVulnJobs(ctx, ds, logger, []fleet.SoftwareVulnerability{{CVE: "CVE-1234-5678"}}) require.Error(t, err) require.ErrorIs(t, err, io.EOF) require.True(t, ds.NewJobFuncInvoked) diff --git a/server/worker/zendesk.go b/server/worker/zendesk.go index 64c466fa7a..396d38d464 100644 --- a/server/worker/zendesk.go +++ b/server/worker/zendesk.go @@ -311,21 +311,21 @@ func (z *Zendesk) createTemplatedTicket(ctx context.Context, cli ZendeskClient, // QueueZendeskVulnJobs queues the Zendesk vulnerability jobs to process asynchronously // via the worker. -func QueueZendeskVulnJobs(ctx context.Context, ds fleet.Datastore, logger kitlog.Logger, recentVulns map[string][]string) error { +func QueueZendeskVulnJobs(ctx context.Context, ds fleet.Datastore, logger kitlog.Logger, recentVulns []fleet.SoftwareVulnerability) error { level.Info(logger).Log("enabled", "true", "recentVulns", len(recentVulns)) // for troubleshooting, log in debug level the CVEs that we will process // (cannot be done in the loop below as we want to add the debug log // _before_ we start processing them). cves := make([]string, 0, len(recentVulns)) - for cve := range recentVulns { - cves = append(cves, cve) + for _, vuln := range recentVulns { + cves = append(cves, vuln.CVE) } sort.Strings(cves) level.Debug(logger).Log("recent_cves", fmt.Sprintf("%v", cves)) - for cve := range recentVulns { - job, err := QueueJob(ctx, ds, zendeskName, zendeskArgs{CVE: cve}) + for _, vuln := range recentVulns { + job, err := QueueJob(ctx, ds, zendeskName, zendeskArgs{CVE: vuln.CVE}) if err != nil { return ctxerr.Wrap(ctx, err, "queueing job") } diff --git a/server/worker/zendesk_test.go b/server/worker/zendesk_test.go index 5fd3c4b453..56350c4bcb 100644 --- a/server/worker/zendesk_test.go +++ b/server/worker/zendesk_test.go @@ -126,7 +126,7 @@ func TestZendeskQueueVulnJobs(t *testing.T) { ds.NewJobFunc = func(ctx context.Context, job *fleet.Job) (*fleet.Job, error) { return job, nil } - err := QueueZendeskVulnJobs(ctx, ds, logger, map[string][]string{"CVE-1234-5678": nil}) + err := QueueZendeskVulnJobs(ctx, ds, logger, []fleet.SoftwareVulnerability{{CVE: "CVE-1234-5678"}}) require.NoError(t, err) require.True(t, ds.NewJobFuncInvoked) }) @@ -135,7 +135,7 @@ func TestZendeskQueueVulnJobs(t *testing.T) { ds.NewJobFunc = func(ctx context.Context, job *fleet.Job) (*fleet.Job, error) { return nil, io.EOF } - err := QueueZendeskVulnJobs(ctx, ds, logger, map[string][]string{"CVE-1234-5678": nil}) + err := QueueZendeskVulnJobs(ctx, ds, logger, []fleet.SoftwareVulnerability{{CVE: "CVE-1234-5678"}}) require.Error(t, err) require.ErrorIs(t, err, io.EOF) require.True(t, ds.NewJobFuncInvoked)