diff --git a/.gitignore b/.gitignore
index 87e9389..584a96b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-SOURCES/deps-pkgs-10.tar.gz
+SOURCES/deps-pkgs-11.tar.gz
 SOURCES/leapp-repository-0.21.0.tar.gz
diff --git a/.leapp-repository.metadata b/.leapp-repository.metadata
index 0e21a29..c20b327 100644
--- a/.leapp-repository.metadata
+++ b/.leapp-repository.metadata
@@ -1,2 +1,2 @@
-d520ada12294e4dd8837c81f92d4c184ab403d51 SOURCES/deps-pkgs-10.tar.gz
+8b3fe3a7b52d2e144d374623aa5b0b0add7ab0c7 SOURCES/deps-pkgs-11.tar.gz
 9327be3720ccb3f7b285d2199463d7df0c38dfae SOURCES/leapp-repository-0.21.0.tar.gz
diff --git a/SOURCES/0001-rhui-alibaba-add-ARM-RHEL8-and-RHEL9-setup-entries-1.patch b/SOURCES/0001-rhui-alibaba-add-ARM-RHEL8-and-RHEL9-setup-entries-1.patch
index 2f559b9..4da0033 100644
--- a/SOURCES/0001-rhui-alibaba-add-ARM-RHEL8-and-RHEL9-setup-entries-1.patch
+++ b/SOURCES/0001-rhui-alibaba-add-ARM-RHEL8-and-RHEL9-setup-entries-1.patch
@@ -1,7 +1,8 @@
 From fbc38d4ad1d828e0553579e3719c0e4ed4a2a6bd Mon Sep 17 00:00:00 2001
 From: jinkangkang <1547182170@qq.com>
 Date: Mon, 19 Aug 2024 18:46:08 +0800
-Subject: [PATCH] rhui(alibaba): add ARM RHEL8 and RHEL9 setup entries (#1277)
+Subject: [PATCH 01/40] rhui(alibaba): add ARM RHEL8 and RHEL9 setup entries
+ (#1277)
 
 Since leapp's RHUI mechanism filters setups based on the architecture of the source system,
 it was not possible to upgrade of ARM-based RHEL systems on Alibaba cloud as there
@@ -37,7 +38,10 @@ index 51694ac2..30de0275 100644
 +                      os_version='9'),
      ]
  }
- 
--- 
-2.45.2
 
+--
+<<<<<<< HEAD
+2.45.2
+=======
+2.47.0
+>>>>>>> ef02e9e (Import from CS git)
diff --git a/SOURCES/0002-don-t-require-all-versions-to-be-defined-for-obsolet.patch b/SOURCES/0002-don-t-require-all-versions-to-be-defined-for-obsolet.patch
new file mode 100644
index 0000000..286cab5
--- /dev/null
+++ b/SOURCES/0002-don-t-require-all-versions-to-be-defined-for-obsolet.patch
@@ -0,0 +1,41 @@
+From 7e0fb44bb673893d0409903f6a441d0eb2829d22 Mon Sep 17 00:00:00 2001
+From: Evgeni Golov <evgeni@golov.de>
+Date: Tue, 20 Aug 2024 15:11:02 +0200
+Subject: [PATCH 02/40] don't require all versions to be defined for obsoleted
+ keys
+
+in releases where we do not have any obsoleted keys, we still had to
+define an entry (with an empty list), as otherwise the code would fail
+
+instead, we can catch the KeyError and carry on as nothing happened
+---
+ .../libraries/removeobsoleterpmgpgkeys.py           | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
+index 6e84c2e9..bda7efa3 100644
+--- a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
++++ b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
+@@ -12,11 +12,14 @@ def _get_obsolete_keys():
+     distribution = api.current_actor().configuration.os_release.release_id
+     obsoleted_keys_map = get_distribution_data(distribution).get('obsoleted-keys', {})
+     keys = []
+-    for version in range(7, int(get_target_major_version()) + 1):
+-        for key in obsoleted_keys_map[str(version)]:
+-            name, version, release = key.rsplit("-", 2)
+-            if has_package(InstalledRPM, name, version=version, release=release):
+-                keys.append(key)
++    try:
++        for version in range(7, int(get_target_major_version()) + 1):
++            for key in obsoleted_keys_map[str(version)]:
++                name, version, release = key.rsplit("-", 2)
++                if has_package(InstalledRPM, name, version=version, release=release):
++                    keys.append(key)
++    except KeyError:
++        pass
+ 
+     return keys
+ 
+-- 
+2.47.0
+
diff --git a/SOURCES/0003-Add-RHEL-10.0-prod-certs.patch b/SOURCES/0003-Add-RHEL-10.0-prod-certs.patch
new file mode 100644
index 0000000..77c31cd
--- /dev/null
+++ b/SOURCES/0003-Add-RHEL-10.0-prod-certs.patch
@@ -0,0 +1,226 @@
+From 9f2f1726d8a5bdd12309a3a3111984f1666b903f Mon Sep 17 00:00:00 2001
+From: Matej Matuska <mmatuska@redhat.com>
+Date: Thu, 22 Aug 2024 15:52:19 +0200
+Subject: [PATCH 03/40] Add RHEL 10.0 prod-certs
+
+Previously we temporarily used the RHEL 9 x86_64 prod cert for others
+archs it was missing completely.
+
+Jira: OAMG-11138
+---
+ .../common/files/prod-certs/10.0/279.pem      | 37 ++++++++++
+ .../common/files/prod-certs/10.0/419.pem      | 37 ++++++++++
+ .../common/files/prod-certs/10.0/479.pem      | 68 ++++++++++---------
+ .../common/files/prod-certs/10.0/72.pem       | 37 ++++++++++
+ 4 files changed, 146 insertions(+), 33 deletions(-)
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/10.0/279.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/10.0/419.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/10.0/72.pem
+
+diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/279.pem b/repos/system_upgrade/common/files/prod-certs/10.0/279.pem
+new file mode 100644
+index 00000000..f62340fc
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/10.0/279.pem
+@@ -0,0 +1,37 @@
++-----BEGIN CERTIFICATE-----
++MIIGczCCBFugAwIBAgIUfZodBQY+YRSlyRRiFX1dx4vQ5y4wDQYJKoZIhvcNAQEL
++BQAwga4xCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEWMBQG
++A1UECgwNUmVkIEhhdCwgSW5jLjEYMBYGA1UECwwPUmVkIEhhdCBOZXR3b3JrMS4w
++LAYDVQQDDCVSZWQgSGF0IEVudGl0bGVtZW50IFByb2R1Y3QgQXV0aG9yaXR5MSQw
++IgYJKoZIhvcNAQkBFhVjYS1zdXBwb3J0QHJlZGhhdC5jb20wHhcNMjQwODE1MDYx
++NjQ5WhcNNDQwODE1MDYxNjQ5WjBEMUIwQAYDVQQDDDlSZWQgSGF0IFByb2R1Y3Qg
++SUQgWzA0YTU4NDFkLTVlNmUtNDU1Yy1hZWYwLTdhOTQ0NTBiNjg3Nl0wggIiMA0G
++CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDGP0nTjP4TN3LHVTfeQV+0u/Se01LU
++FJ66GhksOGzXzKSx6kbuFde0eHYIwV8tmZOMDIv2LVezHKRClVB1dMalQXfcLaoF
++AcHmCViz353vzXHynybzMXFs9xbzZMglduBbcStWHy+TmoJsbVwIAAdv4NYyrQQD
++LLVuX8mACCFg0YFG8ok5tN0Kt2liHTYpSoEuRI9ke+joNQkU3fsxcOlV5Cr1W2pG
++OkosvC4R9dvRjsjnEQ6tHeRhs5oEBZW3eZhnW3Qv8p9jaNU51TlYXLIH0+Fsx0uL
++XETzTWP4YmvBwtrGaq+PhRogJHNw8BM/zrNUzUEFBr6WKWRFB6zkfKNnNkOIZi52
++deFuqYuj+fRy5ehAFVWOHNFMzHvUSKJqGaLD5TW8aqQeFA3FvXce03WVwCFQIOvH
++F4y+sCNh1aliWkjJbc2yw9a3VhQeJ0wFIAngpy0h/3V3IT3dpK2XHAL9CfIWxk6Z
++wSwHNUKfP0aZYyXX/pfMFLXINSoHKSXHRMsf7P+wr0D47atkDLWYHIJjBXG9s5mG
++eobEC5OghL4DzW/mEKOwKI5JxUH5yKXfRgG7RwfzlFnQgs2Qd0p2sstZbjCOmEra
++cGfaDaLf7O1/6dAQPalCpn+uG5bv2NzIJmX2Rep7XA50XQLBqHg3r/cvMhcQQrIQ
++nE2pDC01zYhUTwIDAQABo4HxMIHuMAkGA1UdEwQCMAAwQwYMKwYBBAGSCAkBghcB
++BDMMMVJlZCBIYXQgRW50ZXJwcmlzZSBMaW51eCBmb3IgUG93ZXIsIGxpdHRsZSBl
++bmRpYW4wFgYMKwYBBAGSCAkBghcCBAYMBDEwLjAwGQYMKwYBBAGSCAkBghcDBAkM
++B3BwYzY0bGUwKQYMKwYBBAGSCAkBghcEBBkMF3JoZWwtMTAscmhlbC0xMC1wcGM2
++NGxlMB0GA1UdDgQWBBRh6iC1NXyvZ2Q6/2sI5hB40M0flTAfBgNVHSMEGDAWgBSW
++/bscQED/QIStsh8LJsHDam/WfDANBgkqhkiG9w0BAQsFAAOCAgEAv6ySsgygc2z2
++kQJeu9sdvBNFKe+gEtXbPu6+rZKPPosW3cggMJCnsZgki3nUogovz0Z3MPkbmRz+
++GJwVjiVBnfUQLoORSDYwqYZB4WRoqszW/dytd7/64IehvD/JZo3Oa8BNYRSG/Ukh
++7iUIT8ryFIH1DTUIersVObINN2gk3hC2JJXoTfNqIYG+4OAEUE7/F4CptRAGbgH/
++4/9vfe2KNXvPMoWvILpXpD5w8t9Xh0Wl97N1W7+FLVRwQHAQ2/yBTu/sY27FvVSl
++0o+SBSvjTKIi+9QslRpi0QCVza5WxHTiO8nzYgzFjfMkt6lzK74puf3VJavpqkQ9
++dVfyp36A3Fh6vDsiNxhsfKrp8z2JnKA3vdslsH7cOHCIFYHXiqeaP654t4oGeESD
++EPfS6PpXSyi47Kd/qjA2srgpXNQl2yMd0ih6NoHaoSYXFfb4LX6cWFGcT/AWZsaC
++xv2pN9J0KhF2loLp8SK19FESc0rJShkAacTcxeYjuDYbvLtJi4Z5aWWVU421rMSs
++X9IdiWa4WL70ZaDK5cP54S4zZNsVDKniUzNXwPltDCpqefy8ka4o5QlWNreBrXXW
++6cy8I6L2om7xZ5hAZ3CB7nUZe9QE/LXnHqK3cQetvd5Q2LMnp6gVtgQ4a+7vD9xz
++ExLtbBZjvGJFudimMmOxvn/J5+GMmm4=
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/419.pem b/repos/system_upgrade/common/files/prod-certs/10.0/419.pem
+new file mode 100644
+index 00000000..08cb5b02
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/10.0/419.pem
+@@ -0,0 +1,37 @@
++-----BEGIN CERTIFICATE-----
++MIIGZTCCBE2gAwIBAgIUWARL99TkK+hxtTJkE5icdHXLfY0wDQYJKoZIhvcNAQEL
++BQAwga4xCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEWMBQG
++A1UECgwNUmVkIEhhdCwgSW5jLjEYMBYGA1UECwwPUmVkIEhhdCBOZXR3b3JrMS4w
++LAYDVQQDDCVSZWQgSGF0IEVudGl0bGVtZW50IFByb2R1Y3QgQXV0aG9yaXR5MSQw
++IgYJKoZIhvcNAQkBFhVjYS1zdXBwb3J0QHJlZGhhdC5jb20wHhcNMjQwODE1MDYx
++NjQ5WhcNNDQwODE1MDYxNjQ5WjBEMUIwQAYDVQQDDDlSZWQgSGF0IFByb2R1Y3Qg
++SUQgW2Y3ZWFmNGU2LTYwZGYtNDMyNC04N2I0LTdhNGUzZGVkZmViNV0wggIiMA0G
++CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDGP0nTjP4TN3LHVTfeQV+0u/Se01LU
++FJ66GhksOGzXzKSx6kbuFde0eHYIwV8tmZOMDIv2LVezHKRClVB1dMalQXfcLaoF
++AcHmCViz353vzXHynybzMXFs9xbzZMglduBbcStWHy+TmoJsbVwIAAdv4NYyrQQD
++LLVuX8mACCFg0YFG8ok5tN0Kt2liHTYpSoEuRI9ke+joNQkU3fsxcOlV5Cr1W2pG
++OkosvC4R9dvRjsjnEQ6tHeRhs5oEBZW3eZhnW3Qv8p9jaNU51TlYXLIH0+Fsx0uL
++XETzTWP4YmvBwtrGaq+PhRogJHNw8BM/zrNUzUEFBr6WKWRFB6zkfKNnNkOIZi52
++deFuqYuj+fRy5ehAFVWOHNFMzHvUSKJqGaLD5TW8aqQeFA3FvXce03WVwCFQIOvH
++F4y+sCNh1aliWkjJbc2yw9a3VhQeJ0wFIAngpy0h/3V3IT3dpK2XHAL9CfIWxk6Z
++wSwHNUKfP0aZYyXX/pfMFLXINSoHKSXHRMsf7P+wr0D47atkDLWYHIJjBXG9s5mG
++eobEC5OghL4DzW/mEKOwKI5JxUH5yKXfRgG7RwfzlFnQgs2Qd0p2sstZbjCOmEra
++cGfaDaLf7O1/6dAQPalCpn+uG5bv2NzIJmX2Rep7XA50XQLBqHg3r/cvMhcQQrIQ
++nE2pDC01zYhUTwIDAQABo4HjMIHgMAkGA1UdEwQCMAAwNQYMKwYBBAGSCAkBgyMB
++BCUMI1JlZCBIYXQgRW50ZXJwcmlzZSBMaW51eCBmb3IgQVJNIDY0MBYGDCsGAQQB
++kggJAYMjAgQGDAQxMC4wMBkGDCsGAQQBkggJAYMjAwQJDAdhYXJjaDY0MCkGDCsG
++AQQBkggJAYMjBAQZDBdyaGVsLTEwLHJoZWwtMTAtYWFyY2g2NDAdBgNVHQ4EFgQU
++YeogtTV8r2dkOv9rCOYQeNDNH5UwHwYDVR0jBBgwFoAUlv27HEBA/0CErbIfCybB
++w2pv1nwwDQYJKoZIhvcNAQELBQADggIBAIpdcHN7RN18pg5ELfc55Sj58ivL5N25
++19KprqbM7aVum32abw7/Qksfs6maGQpU6Hh/UqhJlGQ2bN48jZ/kdMKor4agSQ/T
++iwr3b8RBJFPVCuqQJXIe4g3iRbHfnIjGxgoMgv36j58PENoEnpPtR7ZtHMyqQ2SO
++m1WRQhY5tJ4Fk/Zkx/trxlNvmsTAjNRa530kqG4TfiMVvWNaVdxHsjMv0lXLJRXx
++KT6+iHt2QBs2No5O8cjlXr/CzfGrB5TlBNrsHqhO0Llmw28KpcWGYGdexKdIHrDG
++A/K0Pr21yRstUWN39jz/tdEqt1q8T7/it3oM976keQmFAxBa/CpyEG5Y6FKw9+F0
++LtkAyI3XGHK7LbCOE67s7u0/BfgQvww1FqztVnVZ4sXlagj/IuYPJBhfGDe/6tik
++laqP8FtR6xJdSra2YQMBc0kZb0Sv1uy7pGofNSvLM5L76XqiwKoDVo/eAcl60OWY
++rF86pEDLGDmdJBLJKX2/77pzpQpZ9Yvc4vWwoZrP4gRKBuWF28aLH0OsWzdsfdMG
++9+DrcO/58slMbWng1ZzOQyEjp7x1kto5sa5m2q8LMo06ETYT8ps5A0hyltBz1yAt
++JEBS4Y14YlF6Px67aTak07MNo7AaaphuD47D2Sy3pwHa+vOx4nv/G33+G0iOm3Lr
++zVAjwlfLIUB9
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/479.pem b/repos/system_upgrade/common/files/prod-certs/10.0/479.pem
+index 1ea1cd3d..d89f6188 100644
+--- a/repos/system_upgrade/common/files/prod-certs/10.0/479.pem
++++ b/repos/system_upgrade/common/files/prod-certs/10.0/479.pem
+@@ -1,35 +1,37 @@
+ -----BEGIN CERTIFICATE-----
+-MIIGFTCCA/2gAwIBAgIJALDxRLt/tVDQMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
+-VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
+-YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
+-IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
+-ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTIzMDcxOTE2MzQwOFoXDTQzMDcx
+-OTE2MzQwOFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsxZDg0ZDQ5
+-Ny1jZmNmLTQxNjEtOTM0YS0zNzk2MDU4M2ZmZGZdMIICIjANBgkqhkiG9w0BAQEF
+-AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
+-sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
+-8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
+-RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
+-5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
+-xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
+-QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
+-yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
+-1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
+-5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
+-ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
+-AwEAAaOBnjCBmzAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYNfAQQlDCNSZWQgSGF0
+-IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NDAVBgwrBgEEAZIICQGDXwIEBQwD
+-OS40MBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwJgYMKwYBBAGSCAkBg18EBBYM
+-FHJoZWwtOSxyaGVsLTkteDg2XzY0MA0GCSqGSIb3DQEBCwUAA4ICAQCGUDPFBrLs
+-sK/RITJothRhKhKNX3zu9TWRG0WKxszCx/y7c4yEfH1TV/yd7BNB2RubaoayWz8E
+-TQjcRW8BnVu9JrlbdpWJm4eN+dOOpcESPilLnkz4Tr0WYDsT1/jk/uiorK4h21S0
+-EwMicuSuEmm0OUEX0zj2X/IyveFRtpJpH/JktznCkvexysc1JRzqMCbal8GipRX9
+-Xf7Oko6QiaUpu5GDLN2OXhizYHdR2f3l+Sn2cScsbi3fSVv+DLsnaz6J0kZ4U8q3
+-lYk/ZYifJjG+/7cv3e+usixpmK/qYlpOvunUDnqOkDfUs4/4bZjH8e8CdqJk4YvU
+-RRtLr7muXEJsaqF7lxAViXnKxT/z/+1kOgN/+Oyzjs4QDsk2HQpWHFgNYSSG9Mmz
+-PUS8tk2T0j5sN55X7QRRl5c0oqrBU5XaWyL26QcfONYcR8dBaKawjxg8CI9KzsYY
+-sb2jjS+fBkB1OI2c6z4OZRd+0N6FQ6gq++KiXOLFvi/QSFNi9Veb56c5tR2l6fBk
+-0pSH06Gg2s0aQg20NdMIr+HaYsVdJRsE1FgQ2tlfFx9rGkcqhgwV3Za/abgtRb2o
+-YVwps28DLm41DXf5DnXK+BXFHrtR/3YAZtga+R7OL/RvcF0kc2kudlxqd/8Y33uL
+-nqnoATy31FTW4J4rEfanJTQgTpatZmbaLQ==
++MIIGYzCCBEugAwIBAgIUL5D34AcwqLAbqlUcxntHUCtEVxQwDQYJKoZIhvcNAQEL
++BQAwga4xCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEWMBQG
++A1UECgwNUmVkIEhhdCwgSW5jLjEYMBYGA1UECwwPUmVkIEhhdCBOZXR3b3JrMS4w
++LAYDVQQDDCVSZWQgSGF0IEVudGl0bGVtZW50IFByb2R1Y3QgQXV0aG9yaXR5MSQw
++IgYJKoZIhvcNAQkBFhVjYS1zdXBwb3J0QHJlZGhhdC5jb20wHhcNMjQwODE1MDYx
++NjQ5WhcNNDQwODE1MDYxNjQ5WjBEMUIwQAYDVQQDDDlSZWQgSGF0IFByb2R1Y3Qg
++SUQgWzk5NDZhMmY5LTI4NDMtNDJhOS1iNzhlLTIzM2E5ODIwYjVhZV0wggIiMA0G
++CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDGP0nTjP4TN3LHVTfeQV+0u/Se01LU
++FJ66GhksOGzXzKSx6kbuFde0eHYIwV8tmZOMDIv2LVezHKRClVB1dMalQXfcLaoF
++AcHmCViz353vzXHynybzMXFs9xbzZMglduBbcStWHy+TmoJsbVwIAAdv4NYyrQQD
++LLVuX8mACCFg0YFG8ok5tN0Kt2liHTYpSoEuRI9ke+joNQkU3fsxcOlV5Cr1W2pG
++OkosvC4R9dvRjsjnEQ6tHeRhs5oEBZW3eZhnW3Qv8p9jaNU51TlYXLIH0+Fsx0uL
++XETzTWP4YmvBwtrGaq+PhRogJHNw8BM/zrNUzUEFBr6WKWRFB6zkfKNnNkOIZi52
++deFuqYuj+fRy5ehAFVWOHNFMzHvUSKJqGaLD5TW8aqQeFA3FvXce03WVwCFQIOvH
++F4y+sCNh1aliWkjJbc2yw9a3VhQeJ0wFIAngpy0h/3V3IT3dpK2XHAL9CfIWxk6Z
++wSwHNUKfP0aZYyXX/pfMFLXINSoHKSXHRMsf7P+wr0D47atkDLWYHIJjBXG9s5mG
++eobEC5OghL4DzW/mEKOwKI5JxUH5yKXfRgG7RwfzlFnQgs2Qd0p2sstZbjCOmEra
++cGfaDaLf7O1/6dAQPalCpn+uG5bv2NzIJmX2Rep7XA50XQLBqHg3r/cvMhcQQrIQ
++nE2pDC01zYhUTwIDAQABo4HhMIHeMAkGA1UdEwQCMAAwNQYMKwYBBAGSCAkBg18B
++BCUMI1JlZCBIYXQgRW50ZXJwcmlzZSBMaW51eCBmb3IgeDg2XzY0MBYGDCsGAQQB
++kggJAYNfAgQGDAQxMC4wMBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwKAYMKwYB
++BAGSCAkBg18EBBgMFnJoZWwtMTAscmhlbC0xMC14ODZfNjQwHQYDVR0OBBYEFGHq
++ILU1fK9nZDr/awjmEHjQzR+VMB8GA1UdIwQYMBaAFJb9uxxAQP9AhK2yHwsmwcNq
++b9Z8MA0GCSqGSIb3DQEBCwUAA4ICAQAa+c2/Usg6JToULhYTdLhf15Hk6xxdlwT7
++zZlnZLbuAKtaDqP1NiSiX0Z/lMJzFfW0B/zyWLy8uiXLYmF5V28f8yWK0Nksx2v7
++I7u6ZZN2dKDQZKsEoP0g3ptvVRWn9h5otS7yPkOK4Dzj04yJqOSGP9bp6OHEhm1S
++x4ErITkN/3MXOf9vT+I6wydVKsw4fdlWgVjmBd90bzVTnv4dWtJio+le+9ad9RSf
++M3aD5ufiELeRKMp6ExnC/cnoWtuH+b4BJ37TQ3Kpn3fDtbrzVvQH/dpqZ7P33yqg
++PnBEXOiLimDnnmDJ9ImQ1pVTrKJMxaj1Mk6onERe36n/iAsj+BwZvBiv7UaLPMnW
++nJGg+LQ4iUZrGWYD4N9Ou++nvsR8dCWRhXSuXensfli3lL/W0P62yzfYCyqOYeL1
++msDcCmBEWJUtAaeAbASUIVx02JWPPmMSUqWs8xOecQjzoGuCQg4JM/UfsZzxepw0
++bs9YSUVw8J9R2d4kuze65qDTMRg+cK2LX1xg1KkR/UWZOGxHHJAfwGWdPwSkiOPQ
++MVJ7LJjvozebHWSuiSxk+GWWr+NdxIJrFRGbivXyAkmqMRrPe1VLVxWwCdyud9o8
++b2WbFgrNS2jOnHwldtM2ZAhrF5W4ckvVL7hLp2JoQnJfCcWson9NK6Y2M4bNwQnC
++ihxphLzOAw==
+ -----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/10.0/72.pem b/repos/system_upgrade/common/files/prod-certs/10.0/72.pem
+new file mode 100644
+index 00000000..e0274f9c
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/10.0/72.pem
+@@ -0,0 +1,37 @@
++-----BEGIN CERTIFICATE-----
++MIIGZDCCBEygAwIBAgIUSTvcD4Wsduixh8PFmwk6aI0KTEcwDQYJKoZIhvcNAQEL
++BQAwga4xCzAJBgNVBAYTAlVTMRcwFQYDVQQIDA5Ob3J0aCBDYXJvbGluYTEWMBQG
++A1UECgwNUmVkIEhhdCwgSW5jLjEYMBYGA1UECwwPUmVkIEhhdCBOZXR3b3JrMS4w
++LAYDVQQDDCVSZWQgSGF0IEVudGl0bGVtZW50IFByb2R1Y3QgQXV0aG9yaXR5MSQw
++IgYJKoZIhvcNAQkBFhVjYS1zdXBwb3J0QHJlZGhhdC5jb20wHhcNMjQwODE1MDYx
++NjQ5WhcNNDQwODE1MDYxNjQ5WjBEMUIwQAYDVQQDDDlSZWQgSGF0IFByb2R1Y3Qg
++SUQgW2VjN2EwZDQyLTgzNjItNDg2YS04ZjcyLTc3YThiOWU2MjM0YV0wggIiMA0G
++CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDGP0nTjP4TN3LHVTfeQV+0u/Se01LU
++FJ66GhksOGzXzKSx6kbuFde0eHYIwV8tmZOMDIv2LVezHKRClVB1dMalQXfcLaoF
++AcHmCViz353vzXHynybzMXFs9xbzZMglduBbcStWHy+TmoJsbVwIAAdv4NYyrQQD
++LLVuX8mACCFg0YFG8ok5tN0Kt2liHTYpSoEuRI9ke+joNQkU3fsxcOlV5Cr1W2pG
++OkosvC4R9dvRjsjnEQ6tHeRhs5oEBZW3eZhnW3Qv8p9jaNU51TlYXLIH0+Fsx0uL
++XETzTWP4YmvBwtrGaq+PhRogJHNw8BM/zrNUzUEFBr6WKWRFB6zkfKNnNkOIZi52
++deFuqYuj+fRy5ehAFVWOHNFMzHvUSKJqGaLD5TW8aqQeFA3FvXce03WVwCFQIOvH
++F4y+sCNh1aliWkjJbc2yw9a3VhQeJ0wFIAngpy0h/3V3IT3dpK2XHAL9CfIWxk6Z
++wSwHNUKfP0aZYyXX/pfMFLXINSoHKSXHRMsf7P+wr0D47atkDLWYHIJjBXG9s5mG
++eobEC5OghL4DzW/mEKOwKI5JxUH5yKXfRgG7RwfzlFnQgs2Qd0p2sstZbjCOmEra
++cGfaDaLf7O1/6dAQPalCpn+uG5bv2NzIJmX2Rep7XA50XQLBqHg3r/cvMhcQQrIQ
++nE2pDC01zYhUTwIDAQABo4HiMIHfMAkGA1UdEwQCMAAwOwYLKwYBBAGSCAkBSAEE
++LAwqUmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IGZvciBJQk0geiBTeXN0ZW1zMBUG
++CysGAQQBkggJAUgCBAYMBDEwLjAwFgYLKwYBBAGSCAkBSAMEBwwFczM5MHgwJgYL
++KwYBBAGSCAkBSAQEFwwVcmhlbC0xMCxyaGVsLTEwLXMzOTB4MB0GA1UdDgQWBBRh
++6iC1NXyvZ2Q6/2sI5hB40M0flTAfBgNVHSMEGDAWgBSW/bscQED/QIStsh8LJsHD
++am/WfDANBgkqhkiG9w0BAQsFAAOCAgEAsj4qPVsDkFrfuVDn8JCJ7tIH5WhaOzL6
++3GBsQIKGd8a1WscPfSpr/phNSBPWFyvV2b+0HzblYzBZbx6ExykTDLh5L01nPM0s
+++hqPxZgF/kcTbLWmAanl32R9+Gs2P2JN1CaCclXgM4USEagBWYeMhJSmQR3bOnSe
++Jjm3tjvhnbIQd6xgPpTjrqZ35z1BW0P0qQFdBbB0k+MfPkhYKEr+Vfn0rU8vk4UP
++F9sY9HkZLqIBxlXeTUerNZvHSuOy2KgoS4l25/QwUutHnnSGZZpARiU1XYNcynVL
++r5COHlb6TYkeRhSAm6RVM4XPYoFgN6cbhY1orwFC2/0i30EnsTMB6ctnLKCf7qgM
++GDG2W7ct0m6koA7s2TGmgp33DPw9adX7qgIV0OjLzBYJ1fyVv3sYlOKRuyDz0l+N
++u6Rnv1ecNUspWn+5ogBbdgwU6yah6oo/fJIWm62U38UGH5ic+/7sBnga8q5sDI90
+++h+nlTIAnD0ICzjEDASiLlYft+hQ9pOt/rgEIrPeKTe+fbefUIXJ5h343E51POnY
++uZRXcirc33QL/PgBRce1taIXjsRD+FSJM0tx/vf8H9j0rzSAxDoXJNsdq4/32scy
++6Zk2fgtm80xxIzju84jXVUrSBRMpWD9I+FZId4IE7tQhwKNi1b7DdNeaQLfaoq8U
++1PEea/tQDSA=
++-----END CERTIFICATE-----
+-- 
+2.47.0
+
diff --git a/SOURCES/0004-properly-scope-try-except-when-loading-obsoleted-key.patch b/SOURCES/0004-properly-scope-try-except-when-loading-obsoleted-key.patch
new file mode 100644
index 0000000..e8d1cbf
--- /dev/null
+++ b/SOURCES/0004-properly-scope-try-except-when-loading-obsoleted-key.patch
@@ -0,0 +1,100 @@
+From bf302fc794957a88bc4785f4dd2505b8d71012e0 Mon Sep 17 00:00:00 2001
+From: Evgeni Golov <evgeni@golov.de>
+Date: Wed, 21 Aug 2024 07:52:02 +0200
+Subject: [PATCH 04/40] properly scope try/except when loading obsoleted keys
+
+We want to load all possible keys, even *after* a KeyError happenend
+
+Fixes: 7e0fb44bb673893d0409903f6a441d0eb2829d22
+---
+ .../libraries/removeobsoleterpmgpgkeys.py     |  8 +--
+ .../tests/test_removeobsoleterpmgpgkeys.py    | 50 +++++++++++++++++++
+ 2 files changed, 54 insertions(+), 4 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
+index bda7efa3..198c4368 100644
+--- a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
++++ b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/libraries/removeobsoleterpmgpgkeys.py
+@@ -12,14 +12,14 @@ def _get_obsolete_keys():
+     distribution = api.current_actor().configuration.os_release.release_id
+     obsoleted_keys_map = get_distribution_data(distribution).get('obsoleted-keys', {})
+     keys = []
+-    try:
+-        for version in range(7, int(get_target_major_version()) + 1):
++    for version in range(7, int(get_target_major_version()) + 1):
++        try:
+             for key in obsoleted_keys_map[str(version)]:
+                 name, version, release = key.rsplit("-", 2)
+                 if has_package(InstalledRPM, name, version=version, release=release):
+                     keys.append(key)
+-    except KeyError:
+-        pass
++        except KeyError:
++            pass
+ 
+     return keys
+ 
+diff --git a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/tests/test_removeobsoleterpmgpgkeys.py b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/tests/test_removeobsoleterpmgpgkeys.py
+index 4d9a0e84..b78174cc 100644
+--- a/repos/system_upgrade/common/actors/removeobsoletegpgkeys/tests/test_removeobsoleterpmgpgkeys.py
++++ b/repos/system_upgrade/common/actors/removeobsoletegpgkeys/tests/test_removeobsoleterpmgpgkeys.py
+@@ -76,6 +76,56 @@ def test_get_obsolete_keys(monkeypatch, version, expected):
+     assert set(keys) == set(expected)
+ 
+ 
++@pytest.mark.parametrize(
++    "version, obsoleted_keys, expected",
++    [
++        (10, None, []),
++        (10, {}, []),
++        (10, {"8": ["gpg-pubkey-888-abc"], "10": ["gpg-pubkey-10-10"]}, ["gpg-pubkey-888-abc", "gpg-pubkey-10-10"]),
++        (9, {"8": ["gpg-pubkey-888-abc"], "9": ["gpg-pubkey-999-def"]}, ["gpg-pubkey-999-def", "gpg-pubkey-888-abc"]),
++        (8, {"8": ["gpg-pubkey-888-abc"], "9": ["gpg-pubkey-999-def"]}, ["gpg-pubkey-888-abc"])
++    ]
++)
++def test_get_obsolete_keys_incomplete_data(monkeypatch, version, obsoleted_keys, expected):
++    def get_target_major_version_mocked():
++        return version
++
++    def get_distribution_data_mocked(_distro):
++        if obsoleted_keys is None:
++            return {}
++        return {'obsoleted-keys': obsoleted_keys}
++
++    def has_package_mocked(*args, **kwargs):
++        return True
++
++    monkeypatch.setattr(
++        removeobsoleterpmgpgkeys,
++        "get_target_major_version",
++        get_target_major_version_mocked,
++    )
++
++    monkeypatch.setattr(
++        removeobsoleterpmgpgkeys,
++        "get_distribution_data",
++        get_distribution_data_mocked,
++    )
++
++    monkeypatch.setattr(
++        removeobsoleterpmgpgkeys,
++        "has_package",
++        has_package_mocked,
++    )
++
++    monkeypatch.setattr(
++        api,
++        "current_actor",
++        CurrentActorMocked(),
++    )
++
++    keys = removeobsoleterpmgpgkeys._get_obsolete_keys()
++    assert set(keys) == set(expected)
++
++
+ @pytest.mark.parametrize(
+     "keys, should_register",
+     [
+-- 
+2.47.0
+
diff --git a/SOURCES/0005-Update-references-from-master-branch-to-main.patch b/SOURCES/0005-Update-references-from-master-branch-to-main.patch
new file mode 100644
index 0000000..27b3c6b
--- /dev/null
+++ b/SOURCES/0005-Update-references-from-master-branch-to-main.patch
@@ -0,0 +1,283 @@
+From 9d49f4675c2b7b18ba7b344bb0032a5538782560 Mon Sep 17 00:00:00 2001
+From: Vojtech Sokol <vsokol@redhat.com>
+Date: Mon, 2 Sep 2024 17:21:36 +0200
+Subject: [PATCH 05/40] Update references from master branch to main
+
+Focus was on making the CI and GitHub actions work after the default
+branch was switched from master to main.
+
+See: OAMG-4907
+---
+ .github/workflows/codespell.yml               |  4 ++--
+ .github/workflows/differential-shellcheck.yml |  4 ++--
+ .github/workflows/pr-welcome-msg.yml          |  2 +-
+ .github/workflows/tmt-tests.yml               | 16 ++++++++--------
+ .github/workflows/unit-tests.yml              | 12 ++++++------
+ .packit.yaml                                  | 10 +++++-----
+ Makefile                                      | 14 +++++++-------
+ 7 files changed, 31 insertions(+), 31 deletions(-)
+
+diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
+index 673cef17..1195d8d1 100644
+--- a/.github/workflows/codespell.yml
++++ b/.github/workflows/codespell.yml
+@@ -3,10 +3,10 @@ name: Codespell
+ on:
+   push:
+     branches:
+-      - master
++      - main
+   pull_request:
+     branches:
+-      - master
++      - main
+ 
+ jobs:
+   codespell:
+diff --git a/.github/workflows/differential-shellcheck.yml b/.github/workflows/differential-shellcheck.yml
+index f1ed5f6a..e1bafb93 100644
+--- a/.github/workflows/differential-shellcheck.yml
++++ b/.github/workflows/differential-shellcheck.yml
+@@ -4,7 +4,7 @@
+ name: Differential ShellCheck
+ on:
+   pull_request:
+-    branches: [master]
++    branches: [main]
+ 
+ permissions:
+   contents: read
+@@ -17,7 +17,7 @@ jobs:
+       security-events: write
+       pull-requests: write
+ 
+-    steps: 
++    steps:
+       - name: Repository checkout
+         uses: actions/checkout@v4
+         with:
+diff --git a/.github/workflows/pr-welcome-msg.yml b/.github/workflows/pr-welcome-msg.yml
+index ff9414d2..0102c41f 100644
+--- a/.github/workflows/pr-welcome-msg.yml
++++ b/.github/workflows/pr-welcome-msg.yml
+@@ -28,7 +28,7 @@ jobs:
+             However, here are additional useful commands for packit:
+             - **`/packit test`** to re-run manually the default tests
+             - **`/packit retest-failed`** to re-run failed tests manually
+-            - **`/packit test oamg/leapp#42`** to run tests with leapp builds for the leapp PR#42 (default is latest upstream - master - build)
++            - **`/packit test oamg/leapp#42`** to run tests with leapp builds for the leapp PR#42 (default is latest upstream - main - build)
+ 
+             Note that first time contributors cannot run tests automatically - they need to be started by a reviewer.
+ 
+diff --git a/.github/workflows/tmt-tests.yml b/.github/workflows/tmt-tests.yml
+index 7e9fd706..1fa00e60 100644
+--- a/.github/workflows/tmt-tests.yml
++++ b/.github/workflows/tmt-tests.yml
+@@ -12,7 +12,7 @@ jobs:
+ 
+   call_workflow_tests_79to88_integration:
+     needs: call_workflow_copr_build
+-    uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@master
++    uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@main
+     secrets: inherit
+     with:
+       copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
+@@ -26,7 +26,7 @@ jobs:
+ 
+   call_workflow_tests_79to86_integration:
+     needs: call_workflow_copr_build
+-    uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@master
++    uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@main
+     secrets: inherit
+     with:
+       copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
+@@ -40,7 +40,7 @@ jobs:
+ 
+   call_workflow_tests_79to88_sst:
+     needs: call_workflow_copr_build
+-    uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@master
++    uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@main
+     secrets: inherit
+     with:
+       copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
+@@ -55,7 +55,7 @@ jobs:
+ 
+   call_workflow_tests_7to8_aws:
+     needs: call_workflow_copr_build
+-    uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@master
++    uses: oamg/leapp/.github/workflows/reuse-tests-7to8.yml@main
+     secrets: inherit
+     with:
+       copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
+@@ -71,7 +71,7 @@ jobs:
+ 
+   call_workflow_tests_86to90_integration:
+     needs: call_workflow_copr_build
+-    uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@master
++    uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@main
+     secrets: inherit
+     with:
+       copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
+@@ -85,7 +85,7 @@ jobs:
+ 
+   call_workflow_tests_88to92_integration:
+     needs: call_workflow_copr_build
+-    uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@master
++    uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@main
+     secrets: inherit
+     with:
+       copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
+@@ -101,7 +101,7 @@ jobs:
+ 
+   call_workflow_tests_86to90_sst:
+     needs: call_workflow_copr_build
+-    uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@master
++    uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@main
+     secrets: inherit
+     with:
+       copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
+@@ -116,7 +116,7 @@ jobs:
+ 
+   call_workflow_tests_86to90_aws:
+     needs: call_workflow_copr_build
+-    uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@master
++    uses: oamg/leapp/.github/workflows/reuse-tests-8to9.yml@main
+     secrets: inherit
+     with:
+       copr_artifacts: ${{ needs.call_workflow_copr_build.outputs.artifacts }}
+diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
+index 2a05106e..42b72b8d 100644
+--- a/.github/workflows/unit-tests.yml
++++ b/.github/workflows/unit-tests.yml
+@@ -2,10 +2,10 @@ name: Unit Tests
+ on:
+   push:
+     branches:
+-      - master
++      - main
+   pull_request:
+     branches:
+-      - master
++      - main
+ 
+ jobs:
+   test:
+@@ -74,10 +74,10 @@ jobs:
+           # NOTE(ivasilev) fetch-depth 0 is critical here as leapp deps discovery depends on specific substring in
+           # commit message and default 1 option will get us just merge commit which has an unrelevant message.
+           fetch-depth: '0'
+-      # NOTE(ivasilev) master -> origin/master is used for leapp deps discovery in Makefile via git log master..HEAD
+-      - name: Set master to origin/master
+-        if: github.ref != 'refs/heads/master'
++      # NOTE(ivasilev) main -> origin/main is used for leapp deps discovery in Makefile via git log main..HEAD
++      - name: Set main to origin/main
++        if: github.ref != 'refs/heads/main'
+         run: |
+-          git branch -f master origin/master
++          git branch -f main origin/main
+       - name: ${{matrix.scenarios.name}}
+         run: script -e -c /bin/bash -c 'TERM=xterm podman build --security-opt=seccomp=unconfined -t leapp-tests -f utils/container-tests/Containerfile.${{matrix.scenarios.container}} utils/container-tests && PYTHON_VENV=${{matrix.scenarios.python}} REPOSITORIES=${{matrix.scenarios.repos}} podman run --security-opt=seccomp=unconfined --rm -ti -v ${PWD}:/payload --env=PYTHON_VENV --env=REPOSITORIES leapp-tests'
+diff --git a/.packit.yaml b/.packit.yaml
+index d91a47e5..fbfd0eea 100644
+--- a/.packit.yaml
++++ b/.packit.yaml
+@@ -22,7 +22,7 @@ actions:
+   fix-spec-file:
+   - bash -c "sed -i -r \"0,/Release:/ s/Release:(\s*)\S*/Release:\1${PACKIT_RPMSPEC_RELEASE}%{?dist}/\" packaging/leapp-repository.spec"
+   post-upstream-clone:
+-  # builds from PRs should have lower NVR than those from master branch
++  # builds from PRs should have lower NVR than those from main branch
+   - bash -c "sed -i \"s/1%{?dist}/0%{?dist}/g\" packaging/leapp-repository.spec"
+ 
+ jobs:
+@@ -44,12 +44,12 @@ jobs:
+     fix-spec-file:
+     - bash -c "sed -i -r \"0,/Release:/ s/Release:(\s*)\S*/Release:\1${PACKIT_RPMSPEC_RELEASE}%{?dist}/\" packaging/leapp-repository.spec"
+     post-upstream-clone:
+-    # builds from PRs should have lower NVR than those from master branch
++    # builds from PRs should have lower NVR than those from main branch
+     - bash -c "sed -i \"s/1%{?dist}/0%{?dist}/g\" packaging/leapp-repository.spec"
+ - job: copr_build
+   trigger: commit
+   metadata:
+-    branch: master
++    branch: main
+     owner: "@oamg"
+     project: leapp
+     targets:
+@@ -65,7 +65,7 @@ jobs:
+     fix-spec-file:
+     - bash -c "sed -i -r \"0,/Release:/ s/Release:(\s*)\S*/Release:\1${PACKIT_RPMSPEC_RELEASE}%{?dist}/\" packaging/leapp-repository.spec"
+     post-upstream-clone:
+-    # builds from master branch should start with 100 release, to have high priority
++    # builds from main branch should start with 100 release, to have high priority
+     - bash -c "sed -i \"s/1%{?dist}/100%{?dist}/g\" packaging/leapp-repository.spec"
+ - job: copr_build
+   trigger: release
+@@ -85,7 +85,7 @@ jobs:
+     fix-spec-file:
+     - bash -c "sed -i -r \"0,/Release:/ s/Release:(\s*)\S*/Release:\1${PACKIT_RPMSPEC_RELEASE}%{?dist}/\" packaging/leapp-repository.spec"
+     post-upstream-clone:
+-    # builds from master branch should start with 100 release, to have high priority
++    # builds from main branch should start with 100 release, to have high priority
+     - bash -c "sed -i \"s/1%{?dist}/100%{?dist}/g\" packaging/leapp-repository.spec"
+ 
+ 
+diff --git a/Makefile b/Makefile
+index 5b2bc4d2..8aeef77d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -64,7 +64,7 @@ endif
+ 
+ # just to reduce number of unwanted builds mark as the upstream one when
+ # someone will call copr_build without additional parameters
+-MASTER_BRANCH=master
++MASTER_BRANCH=main
+ 
+ # In case the PR or MR is defined or in case build is not coming from the
+ # MATER_BRANCH branch, N_REL=0; (so build is not update of the approved
+@@ -76,10 +76,10 @@ SHORT_SHA=`git rev-parse --short HEAD`
+ BRANCH=`git rev-parse --abbrev-ref HEAD | tr -- '-/' '_'`
+ 
+ # The dependent framework PR connection will be taken from the top commit's depends-on message.
+-REQ_LEAPP_PR=$(shell git log master..HEAD | grep -m1 -iE '^[[:space:]]*Depends-On:[[:space:]]*.*[[:digit:]]+[[:space:]]*$$' | grep -Eo '*[[:digit:]]*')
++REQ_LEAPP_PR=$(shell git log main..HEAD | grep -m1 -iE '^[[:space:]]*Depends-On:[[:space:]]*.*[[:digit:]]+[[:space:]]*$$' | grep -Eo '*[[:digit:]]*')
+ # NOTE(ivasilev) In case of travis relying on top commit is a no go as a top commit will be a merge commit.
+ ifdef CI
+-	REQ_LEAPP_PR=$(shell git log master..HEAD | grep -m1 -iE '^[[:space:]]*Depends-On:[[:space:]]*.*[[:digit:]]+[[:space:]]*$$' | grep -Eo '[[:digit:]]*')
++	REQ_LEAPP_PR=$(shell git log main..HEAD | grep -m1 -iE '^[[:space:]]*Depends-On:[[:space:]]*.*[[:digit:]]+[[:space:]]*$$' | grep -Eo '[[:digit:]]*')
+ endif
+ 
+ # In case anyone would like to add any other suffix, just make it possible
+@@ -92,8 +92,8 @@ REQUEST=`if test -n "$$PR"; then echo ".PR$${PR}"; elif test -n "$$MR"; then ech
+ # Examples:
+ #    0.201810080027Z.4078402.packaging.PR2
+ #    0.201810080027Z.4078402.packaging
+-#    0.201810080027Z.4078402.master.MR2
+-#    1.201810080027Z.4078402.master
++#    0.201810080027Z.4078402.main.MR2
++#    1.201810080027Z.4078402.main
+ RELEASE="$(N_REL).$(TIMESTAMP).$(SHORT_SHA).$(BRANCH)$(REQUEST)$(_SUFFIX)"
+ 
+ all: help
+@@ -302,7 +302,7 @@ install-deps:
+ 	pip install --upgrade setuptools; \
+ 	pip install --upgrade -r requirements.txt; \
+ 	./utils/install_commands.sh $(_PYTHON_VENV); \
+-	# In case the top commit Depends-On some yet unmerged framework patch - override master leapp with the proper version
++	# In case the top commit Depends-On some yet unmerged framework patch - override main leapp with the proper version
+ 	if [[ ! -z "$(REQ_LEAPP_PR)" ]] ; then \
+ 		echo "Leapp-repository depends on the yet unmerged pr of the framework #$(REQ_LEAPP_PR), installing it.." && \
+ 		$(VENVNAME)/bin/pip install -I "git+https://github.com/oamg/leapp.git@refs/pull/$(REQ_LEAPP_PR)/head"; \
+@@ -332,7 +332,7 @@ install-deps-fedora:
+ 	pip install --upgrade setuptools; \
+ 	pip install --upgrade -r requirements.txt; \
+ 	./utils/install_commands.sh $(_PYTHON_VENV); \
+-	# In case the top commit Depends-On some yet unmerged framework patch - override master leapp with the proper version
++	# In case the top commit Depends-On some yet unmerged framework patch - override main leapp with the proper version
+ 	if [[ ! -z "$(REQ_LEAPP_PR)" ]] ; then \
+ 		echo "Leapp-repository depends on the yet unmerged pr of the framework #$(REQ_LEAPP_PR), installing it.." && \
+ 		$(VENVNAME)/bin/pip install -I "git+https://github.com/oamg/leapp.git@refs/pull/$(REQ_LEAPP_PR)/head"; \
+-- 
+2.47.0
+
diff --git a/SOURCES/0006-ReadOfKernelArgsError-fix-the-error.patch b/SOURCES/0006-ReadOfKernelArgsError-fix-the-error.patch
new file mode 100644
index 0000000..2042f81
--- /dev/null
+++ b/SOURCES/0006-ReadOfKernelArgsError-fix-the-error.patch
@@ -0,0 +1,43 @@
+From 41e32e3aa6394b8397bef9b797892d9fa119d608 Mon Sep 17 00:00:00 2001
+From: Yuriy Kohut <yura.kohut@gmail.com>
+Date: Thu, 29 Aug 2024 12:36:23 +0300
+Subject: [PATCH 06/40] ReadOfKernelArgsError: fix the error: - AttributeError:
+ module 'leapp.reporting' has no attribute 'Hints'
+
+---
+ .../kernelcmdlineconfig/libraries/kernelcmdlineconfig.py    | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py b/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
+index 238a8aa6..6b261c3b 100644
+--- a/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
++++ b/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
+@@ -175,14 +175,14 @@ def entrypoint(configs=None):
+         api.current_logger().error(str(e))
+ 
+         if use_cmdline_file():
+-            report_hint = reporting.Hints(
++            report_hint = (
+                 'After the system has been rebooted into the new version of RHEL, you'
+                 ' should take the kernel cmdline arguments from /proc/cmdline (Everything'
+                 ' except the BOOT_IMAGE entry and initrd entries) and copy them into'
+                 ' /etc/kernel/cmdline before installing any new kernels.'
+             )
+         else:
+-            report_hint = reporting.Hints(
++            report_hint = (
+                 'After the system has been rebooted into the new version of RHEL, you'
+                 ' should take the kernel cmdline arguments from /proc/cmdline (Everything'
+                 ' except the BOOT_IMAGE entry and initrd entries) and then use the'
+@@ -204,7 +204,7 @@ def entrypoint(configs=None):
+                 ' not able to set the arguments as the default for kernels installed in'
+                 ' the future.'
+             ),
+-            report_hint,
++            reporting.Remediation(hint=report_hint),
+             reporting.Severity(reporting.Severity.HIGH),
+             reporting.Groups([
+                 reporting.Groups.BOOT,
+-- 
+2.47.0
+
diff --git a/SOURCES/0007-pylint-exclude-rule-too-many-positional-arguments-co.patch b/SOURCES/0007-pylint-exclude-rule-too-many-positional-arguments-co.patch
new file mode 100644
index 0000000..2136a1e
--- /dev/null
+++ b/SOURCES/0007-pylint-exclude-rule-too-many-positional-arguments-co.patch
@@ -0,0 +1,44 @@
+From 88e13fb0545e0d42df2777538a0c6921bab91e33 Mon Sep 17 00:00:00 2001
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Fri, 27 Sep 2024 14:53:01 +0200
+Subject: [PATCH 07/40] pylint: exclude rule: too-many-positional-arguments
+ (code: R0917)
+
+New version of Pylint have the rule for checking of positional
+arguments - complaining when more than 4 positional arguments exists.
+We do not want to refactor the code to make it happy and the default
+value cannot be set right now - that's planned for future Pylint
+versions at this moment. So excluding this rule.
+
+For more info:
+  * https://pylint.readthedocs.io/en/latest/user_guide/messages/refactor/too-many-positional-arguments.html
+---
+ .pylintrc | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/.pylintrc b/.pylintrc
+index f78c1c3f..5d75df40 100644
+--- a/.pylintrc
++++ b/.pylintrc
+@@ -41,6 +41,8 @@ disable=
+  consider-using-from-import,
+  use-list-literal,
+  use-dict-literal,
++ too-many-lines,  # we do not want to take care about that one
++ too-many-positional-arguments,  # we cannot set yet max-possitional-arguments unfortunately
+ # new for python3 version of pylint
+  useless-object-inheritance,
+  consider-using-set-comprehension,  # pylint3 force to use comprehension in place we don't want (py2 doesnt have these options, for inline skip)
+@@ -57,8 +59,7 @@ disable=
+  redundant-u-string-prefix,  # still have py2 to support
+  logging-format-interpolation,
+  logging-not-lazy,
+- use-yield-from,  # yield from cannot be used until we require python 3.3 or greater
+- too-many-lines  # we do not want to take care about that one
++ use-yield-from  # yield from cannot be used until we require python 3.3 or greater
+ 
+ [FORMAT]
+ # Maximum number of characters on a single line.
+-- 
+2.47.0
+
diff --git a/SOURCES/0008-pam_userdb-migrate-backend-database.patch b/SOURCES/0008-pam_userdb-migrate-backend-database.patch
new file mode 100644
index 0000000..0ef43d9
--- /dev/null
+++ b/SOURCES/0008-pam_userdb-migrate-backend-database.patch
@@ -0,0 +1,534 @@
+From 658700d6424e852917b62c190dd23cbb3026b67d Mon Sep 17 00:00:00 2001
+From: Iker Pedrosa <ipedrosa@redhat.com>
+Date: Mon, 5 Aug 2024 15:15:44 +0200
+Subject: [PATCH 08/40] pam_userdb: migrate backend database
+
+pam_userdb module changed its backend database technology from lidb to
+gdbm for RHEL10. This requires a set of leapp actors to perform the
+database migration automatically when upgrading to RHEL10:
+
+* ScanPamUserDB takes care of scanning the PAM service folder to detect
+  whether pam_userdb is used and the location of the database in use.
+  This information is stored in a model.
+
+* CheckPamUserDB checks the databases reported by ScanPamUserDB and
+  prints a report about them.
+
+* ConvertPamUserDB checks the databases reported by ScanPamUserDB and
+  converts them to GDBM format.
+
+* RemoveOldPamUserDB checks the databases reported by ScanPamUserDB and
+  removes them.
+
+All these actors include unit-tests.
+
+Finally, there's also a spec file change to add `libdb-utils` dependency
+as it is required to convert pam_userdb databases from BerkeleyDB to
+GDBM.
+
+Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
+---
+ packaging/leapp-repository.spec               |  6 +++
+ .../actors/pamuserdb/checkpamuserdb/actor.py  | 18 ++++++++
+ .../libraries/checkpamuserdb.py               | 28 ++++++++++++
+ .../tests/test_checkpamuserdb.py              | 43 +++++++++++++++++++
+ .../pamuserdb/convertpamuserdb/actor.py       | 18 ++++++++
+ .../libraries/convertpamuserdb.py             | 27 ++++++++++++
+ .../tests/test_convertpamuserdb.py            | 39 +++++++++++++++++
+ .../pamuserdb/removeoldpamuserdb/actor.py     | 18 ++++++++
+ .../libraries/removeoldpamuserdb.py           | 25 +++++++++++
+ .../tests/test_removeoldpamuserdb.py          | 38 ++++++++++++++++
+ .../actors/pamuserdb/scanpamuserdb/actor.py   | 18 ++++++++
+ .../scanpamuserdb/libraries/scanpamuserdb.py  | 29 +++++++++++++
+ .../tests/files/pam_userdb_basic              |  1 +
+ .../tests/files/pam_userdb_complete           |  9 ++++
+ .../tests/files/pam_userdb_missing            |  1 +
+ .../scanpamuserdb/tests/test_scanpamuserdb.py | 27 ++++++++++++
+ .../el9toel10/models/pamuserdblocation.py     | 14 ++++++
+ 17 files changed, 359 insertions(+)
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/actor.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/libraries/checkpamuserdb.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/tests/test_checkpamuserdb.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/actor.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/libraries/convertpamuserdb.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/tests/test_convertpamuserdb.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/actor.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/libraries/removeoldpamuserdb.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/tests/test_removeoldpamuserdb.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/actor.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/libraries/scanpamuserdb.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_basic
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_complete
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_missing
+ create mode 100644 repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/test_scanpamuserdb.py
+ create mode 100644 repos/system_upgrade/el9toel10/models/pamuserdblocation.py
+
+diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec
+index 146afc45..0d63ba02 100644
+--- a/packaging/leapp-repository.spec
++++ b/packaging/leapp-repository.spec
+@@ -211,6 +211,12 @@ Requires:   dracut
+ Requires:   NetworkManager-libnm
+ Requires:   python3-gobject-base
+ 
++%endif
++
++%if 0%{?rhel} && 0%{?rhel} == 9
++############# RHEL 9 dependencies (when the source system is RHEL 9) ##########
++# Required to convert pam_userdb database from BerkeleyDB to GDBM
++Requires:   libdb-utils
+ %endif
+ ##################################################
+ # end requirement
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/actor.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/actor.py
+new file mode 100644
+index 00000000..8fada645
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/actor.py
+@@ -0,0 +1,18 @@
++from leapp.actors import Actor
++from leapp.libraries.actor import checkpamuserdb
++from leapp.models import PamUserDbLocation, Report
++from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
++
++
++class CheckPamUserDb(Actor):
++    """
++    Create report with the location of pam_userdb databases
++    """
++
++    name = 'check_pam_user_db'
++    consumes = (PamUserDbLocation,)
++    produces = (Report,)
++    tags = (ChecksPhaseTag, IPUWorkflowTag)
++
++    def process(self):
++        checkpamuserdb.process()
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/libraries/checkpamuserdb.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/libraries/checkpamuserdb.py
+new file mode 100644
+index 00000000..05cc71a9
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/libraries/checkpamuserdb.py
+@@ -0,0 +1,28 @@
++from leapp import reporting
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.stdlib import api
++from leapp.models import PamUserDbLocation
++
++FMT_LIST_SEPARATOR = "\n    - "
++
++
++def process():
++    msg = next(api.consume(PamUserDbLocation), None)
++    if not msg:
++        raise StopActorExecutionError('Expected PamUserDbLocation, but got None')
++
++    if msg.locations:
++        reporting.create_report([
++            reporting.Title('pam_userdb databases will be converted to GDBM'),
++            reporting.Summary(
++                'On RHEL 10, GDMB is used by pam_userdb as it\'s backend database,'
++                ' replacing BerkeleyDB. Existing pam_userdb databases will be'
++                ' converted to GDBM. The following databases will be converted:'
++                '{sep}{locations}'.format(sep=FMT_LIST_SEPARATOR, locations=FMT_LIST_SEPARATOR.join(msg.locations))),
++            reporting.Severity(reporting.Severity.INFO),
++            reporting.Groups([reporting.Groups.SECURITY, reporting.Groups.AUTHENTICATION])
++        ])
++    else:
++        api.current_logger().debug(
++            'No pam_userdb databases were located, thus nothing will be converted'
++        )
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/tests/test_checkpamuserdb.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/tests/test_checkpamuserdb.py
+new file mode 100644
+index 00000000..2e11106b
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/checkpamuserdb/tests/test_checkpamuserdb.py
+@@ -0,0 +1,43 @@
++import pytest
++
++from leapp import reporting
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.actor import checkpamuserdb
++from leapp.libraries.common.testutils import create_report_mocked, logger_mocked
++from leapp.libraries.stdlib import api
++from leapp.models import PamUserDbLocation
++
++
++def test_process_no_msg(monkeypatch):
++    def consume_mocked(*args, **kwargs):
++        yield None
++
++    monkeypatch.setattr(api, 'consume', consume_mocked)
++
++    with pytest.raises(StopActorExecutionError):
++        checkpamuserdb.process()
++
++
++def test_process_no_location(monkeypatch):
++    def consume_mocked(*args, **kwargs):
++        yield PamUserDbLocation(locations=[])
++
++    monkeypatch.setattr(api, 'current_logger', logger_mocked())
++    monkeypatch.setattr(api, 'consume', consume_mocked)
++
++    checkpamuserdb.process()
++    assert (
++        'No pam_userdb databases were located, thus nothing will be converted'
++        in api.current_logger.dbgmsg
++    )
++
++
++def test_process_locations(monkeypatch):
++    def consume_mocked(*args, **kwargs):
++        yield PamUserDbLocation(locations=['/tmp/db1', '/tmp/db2'])
++
++    monkeypatch.setattr(reporting, "create_report", create_report_mocked())
++    monkeypatch.setattr(api, 'consume', consume_mocked)
++
++    checkpamuserdb.process()
++    assert reporting.create_report.called == 1
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/actor.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/actor.py
+new file mode 100644
+index 00000000..5f8525b6
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/actor.py
+@@ -0,0 +1,18 @@
++from leapp.actors import Actor
++from leapp.libraries.actor import convertpamuserdb
++from leapp.models import PamUserDbLocation
++from leapp.tags import IPUWorkflowTag, PreparationPhaseTag
++
++
++class ConvertPamUserDb(Actor):
++    """
++    Convert the pam_userdb databases to GDBM
++    """
++
++    name = 'convert_pam_user_db'
++    consumes = (PamUserDbLocation,)
++    produces = ()
++    tags = (PreparationPhaseTag, IPUWorkflowTag)
++
++    def process(self):
++        convertpamuserdb.process()
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/libraries/convertpamuserdb.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/libraries/convertpamuserdb.py
+new file mode 100644
+index 00000000..e55b4102
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/libraries/convertpamuserdb.py
+@@ -0,0 +1,27 @@
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.stdlib import api, CalledProcessError, run
++from leapp.models import PamUserDbLocation
++
++
++def _convert_db(db_path):
++    cmd = ['db_converter', '--src', f'{db_path}.db', '--dest', f'{db_path}.gdbm']
++    try:
++        run(cmd)
++    except (CalledProcessError, OSError) as e:
++        # As the db_converter does not remove the original DB after conversion or upon failure,
++        # interrupt the upgrade, keeping the original DBs.
++        # If all DBs are successfully converted, the leftover DBs are removed in the removeoldpamuserdb actor.
++        raise StopActorExecutionError(
++            'Cannot convert pam_userdb database.',
++            details={'details': '{}: {}'.format(str(e), e.stderr)}
++        )
++
++
++def process():
++    msg = next(api.consume(PamUserDbLocation), None)
++    if not msg:
++        raise StopActorExecutionError('Expected PamUserDbLocation, but got None')
++
++    if msg.locations:
++        for location in msg.locations:
++            _convert_db(location)
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/tests/test_convertpamuserdb.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/tests/test_convertpamuserdb.py
+new file mode 100644
+index 00000000..46505492
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/convertpamuserdb/tests/test_convertpamuserdb.py
+@@ -0,0 +1,39 @@
++import os
++
++import pytest
++
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.actor import convertpamuserdb
++from leapp.libraries.common.testutils import logger_mocked
++from leapp.libraries.stdlib import api, CalledProcessError
++
++CUR_DIR = os.path.dirname(os.path.abspath(__file__))
++
++
++def test_convert_db_success(monkeypatch):
++    location = os.path.join(CUR_DIR, '/files/db1')
++
++    def run_mocked(cmd, **kwargs):
++        assert cmd == ['db_converter', '--src', f'{location}.db', '--dest', f'{location}.gdbm']
++
++    monkeypatch.setattr(api, 'current_logger', logger_mocked())
++    monkeypatch.setattr(convertpamuserdb, 'run', run_mocked)
++    convertpamuserdb._convert_db(location)
++    assert len(api.current_logger.errmsg) == 0
++
++
++def test_convert_db_failure(monkeypatch):
++    location = os.path.join(CUR_DIR, '/files/db1')
++
++    def run_mocked(cmd, **kwargs):
++        raise CalledProcessError(
++            message='A Leapp Command Error occurred.',
++            command=cmd,
++            result={'exit_code': 1}
++        )
++
++    monkeypatch.setattr(api, 'current_logger', logger_mocked())
++    monkeypatch.setattr(convertpamuserdb, 'run', run_mocked)
++    with pytest.raises(StopActorExecutionError) as err:
++        convertpamuserdb._convert_db(location)
++    assert str(err.value) == 'Cannot convert pam_userdb database.'
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/actor.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/actor.py
+new file mode 100644
+index 00000000..39a00855
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/actor.py
+@@ -0,0 +1,18 @@
++from leapp.actors import Actor
++from leapp.libraries.actor import removeoldpamuserdb
++from leapp.models import PamUserDbLocation
++from leapp.tags import ApplicationsPhaseTag, IPUWorkflowTag
++
++
++class RemoveOldPamUserDb(Actor):
++    """
++    Remove old pam_userdb databases
++    """
++
++    name = 'remove_old_pam_user_db'
++    consumes = (PamUserDbLocation,)
++    produces = ()
++    tags = (ApplicationsPhaseTag, IPUWorkflowTag)
++
++    def process(self):
++        removeoldpamuserdb.process()
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/libraries/removeoldpamuserdb.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/libraries/removeoldpamuserdb.py
+new file mode 100644
+index 00000000..5fc4cb4d
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/libraries/removeoldpamuserdb.py
+@@ -0,0 +1,25 @@
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.stdlib import api, CalledProcessError, run
++from leapp.models import PamUserDbLocation
++
++
++def _remove_db(db_path):
++    cmd = ['rm', '-f', f'{db_path}.db']
++    try:
++        run(cmd)
++    except (CalledProcessError, OSError) as e:
++        api.current_logger().error(
++            'Failed to remove {}.db: {}'.format(
++                db_path, e
++            )
++        )
++
++
++def process():
++    msg = next(api.consume(PamUserDbLocation), None)
++    if not msg:
++        raise StopActorExecutionError('Expected PamUserDbLocation, but got None')
++
++    if msg.locations:
++        for location in msg.locations:
++            _remove_db(location)
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/tests/test_removeoldpamuserdb.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/tests/test_removeoldpamuserdb.py
+new file mode 100644
+index 00000000..2c1d5c75
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/removeoldpamuserdb/tests/test_removeoldpamuserdb.py
+@@ -0,0 +1,38 @@
++import os
++
++from leapp.libraries.actor import removeoldpamuserdb
++from leapp.libraries.common.testutils import logger_mocked
++from leapp.libraries.stdlib import api, CalledProcessError
++
++CUR_DIR = os.path.dirname(os.path.abspath(__file__))
++
++
++def test_remove_db_success(monkeypatch):
++    location = os.path.join(CUR_DIR, '/files/db1')
++
++    def run_mocked(cmd, **kwargs):
++        assert cmd == ['rm', '-f', f'{location}.db']
++
++    monkeypatch.setattr(api, 'current_logger', logger_mocked())
++    monkeypatch.setattr(removeoldpamuserdb, 'run', run_mocked)
++    removeoldpamuserdb._remove_db(location)
++    assert len(api.current_logger.errmsg) == 0
++
++
++def test_remove_db_failure(monkeypatch):
++    location = os.path.join(CUR_DIR, '/files/db1')
++
++    def run_mocked(cmd, **kwargs):
++        raise CalledProcessError(
++            message='A Leapp Command Error occurred.',
++            command=cmd,
++            result={'exit_code': 1}
++        )
++
++    monkeypatch.setattr(api, 'current_logger', logger_mocked())
++    monkeypatch.setattr(removeoldpamuserdb, 'run', run_mocked)
++    removeoldpamuserdb._remove_db(location)
++    assert (
++        'Failed to remove /files/db1.db'
++        not in api.current_logger.errmsg
++    )
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/actor.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/actor.py
+new file mode 100644
+index 00000000..b6b35f1a
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/actor.py
+@@ -0,0 +1,18 @@
++from leapp.actors import Actor
++from leapp.libraries.actor import scanpamuserdb
++from leapp.models import PamUserDbLocation
++from leapp.tags import FactsPhaseTag, IPUWorkflowTag
++
++
++class ScanPamUserDb(Actor):
++    """
++    Scan the PAM service folder for the location of pam_userdb databases
++    """
++
++    name = 'scan_pam_user_db'
++    consumes = ()
++    produces = (PamUserDbLocation,)
++    tags = (FactsPhaseTag, IPUWorkflowTag)
++
++    def process(self):
++        self.produce(scanpamuserdb.parse_pam_config_folder('/etc/pam.d/'))
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/libraries/scanpamuserdb.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/libraries/scanpamuserdb.py
+new file mode 100644
+index 00000000..0f668c02
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/libraries/scanpamuserdb.py
+@@ -0,0 +1,29 @@
++import os
++import re
++
++from leapp.models import PamUserDbLocation
++
++
++def _parse_pam_config_file(conf_file):
++    with open(conf_file, 'r') as file:
++        for line in file:
++            if 'pam_userdb' in line:
++                match = re.search(r'db=(\S+)', line)
++                if match:
++                    return match.group(1)
++
++    return None
++
++
++def parse_pam_config_folder(conf_folder):
++    locations = set()
++
++    for file_name in os.listdir(conf_folder):
++        file_path = os.path.join(conf_folder, file_name)
++
++        if os.path.isfile(file_path):
++            location = _parse_pam_config_file(file_path)
++            if location is not None:
++                locations.add(location)
++
++    return PamUserDbLocation(locations=list(locations))
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_basic b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_basic
+new file mode 100644
+index 00000000..f115147b
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_basic
+@@ -0,0 +1 @@
++auth   required    pam_userdb.so    db=/tmp/db1
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_complete b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_complete
+new file mode 100644
+index 00000000..84e40b48
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_complete
+@@ -0,0 +1,9 @@
++auth        required                                     pam_env.so
++auth        required                                     pam_faildelay.so delay=2000000
++auth        sufficient                                   pam_fprintd.so
++auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
++auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
++auth        required                                     pam_userdb.so db=/tmp/db2
++auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
++auth        sufficient                                   pam_sss.so forward_pass
++auth        required                                     pam_deny.so
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_missing b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_missing
+new file mode 100644
+index 00000000..764947fc
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/files/pam_userdb_missing
+@@ -0,0 +1 @@
++auth        sufficient                                   pam_unix.so nullok
+diff --git a/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/test_scanpamuserdb.py b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/test_scanpamuserdb.py
+new file mode 100644
+index 00000000..3b752d87
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/pamuserdb/scanpamuserdb/tests/test_scanpamuserdb.py
+@@ -0,0 +1,27 @@
++import os
++
++import pytest
++
++from leapp.libraries.actor import scanpamuserdb
++
++CUR_DIR = os.path.dirname(os.path.abspath(__file__))
++
++
++@pytest.mark.parametrize(
++    "inp,exp_out",
++    [
++        ("files/pam_userdb_missing", None),
++        ("files/pam_userdb_basic", "/tmp/db1"),
++        ("files/pam_userdb_complete", "/tmp/db2"),
++    ],
++)
++def test_parse_pam_config_file(inp, exp_out):
++    file = scanpamuserdb._parse_pam_config_file(os.path.join(CUR_DIR, inp))
++    assert file == exp_out
++
++
++def test_parse_pam_config_folder():
++    msg = scanpamuserdb.parse_pam_config_folder(os.path.join(CUR_DIR, "files/"))
++    assert len(msg.locations) == 2
++    assert "/tmp/db1" in msg.locations
++    assert "/tmp/db2" in msg.locations
+diff --git a/repos/system_upgrade/el9toel10/models/pamuserdblocation.py b/repos/system_upgrade/el9toel10/models/pamuserdblocation.py
+new file mode 100644
+index 00000000..d15b2041
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/models/pamuserdblocation.py
+@@ -0,0 +1,14 @@
++from leapp.models import fields, Model
++from leapp.topics import SystemInfoTopic
++
++
++class PamUserDbLocation(Model):
++    """
++    Provides a list of all database files for pam_userdb
++    """
++    topic = SystemInfoTopic
++
++    locations = fields.List(fields.String(), default=[])
++    """
++    The list with the full path to the database files.
++    """
+-- 
+2.47.0
+
diff --git a/SOURCES/0009-Replace-mirror.centos.org-with-vault.centos.org-Cent.patch b/SOURCES/0009-Replace-mirror.centos.org-with-vault.centos.org-Cent.patch
new file mode 100644
index 0000000..4b4012f
--- /dev/null
+++ b/SOURCES/0009-Replace-mirror.centos.org-with-vault.centos.org-Cent.patch
@@ -0,0 +1,31 @@
+From d6e57eec3ded2887008055442ba906a92c572a01 Mon Sep 17 00:00:00 2001
+From: Matej Matuska <mmatuska@redhat.com>
+Date: Thu, 10 Oct 2024 14:03:36 +0200
+Subject: [PATCH 09/40] Replace mirror.centos.org with vault.centos.org Centos
+ 7 Containerfile
+
+As mirror.centos.org is dead, replace mirrorlist with baseurl pointing
+to vault.centos.org in utils/container-builds/Containerfile.centos7.
+---
+ utils/container-builds/Containerfile.centos7 | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/utils/container-builds/Containerfile.centos7 b/utils/container-builds/Containerfile.centos7
+index 70ac3df1..af00eddb 100644
+--- a/utils/container-builds/Containerfile.centos7
++++ b/utils/container-builds/Containerfile.centos7
+@@ -2,6 +2,11 @@ FROM centos:7
+ 
+ VOLUME /repo
+ 
++# mirror.centos.org is dead, comment out mirrorlist and set baseurl to vault.centos.org
++RUN sed -i s/mirror.centos.org/vault.centos.org/ /etc/yum.repos.d/CentOS-*.repo
++RUN sed -i s/^#\s*baseurl=http/baseurl=http/ /etc/yum.repos.d/CentOS-*.repo
++RUN sed -i s/^mirrorlist=http/#mirrorlist=http/ /etc/yum.repos.d/CentOS-*.repo
++
+ RUN yum update -y && \
+     yum install -y rpm-build python-devel make git
+ 
+-- 
+2.47.0
+
diff --git a/SOURCES/0010-kernelcmdlineconfig-Add-Report-to-produces-tuple.patch b/SOURCES/0010-kernelcmdlineconfig-Add-Report-to-produces-tuple.patch
new file mode 100644
index 0000000..94b0260
--- /dev/null
+++ b/SOURCES/0010-kernelcmdlineconfig-Add-Report-to-produces-tuple.patch
@@ -0,0 +1,35 @@
+From b997e4eeb835809d1fbfd1a0b9a6114c133bf0b4 Mon Sep 17 00:00:00 2001
+From: Matej Matuska <mmatuska@redhat.com>
+Date: Thu, 10 Oct 2024 15:28:48 +0200
+Subject: [PATCH 10/40] kernelcmdlineconfig: Add Report to produces tuple
+
+The missing `leapp.reporting.Report` class is added to
+kernelcmdlineconfig actor `produces` tuple.
+---
+ .../system_upgrade/common/actors/kernelcmdlineconfig/actor.py  | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/repos/system_upgrade/common/actors/kernelcmdlineconfig/actor.py b/repos/system_upgrade/common/actors/kernelcmdlineconfig/actor.py
+index b44fd835..3585a14e 100644
+--- a/repos/system_upgrade/common/actors/kernelcmdlineconfig/actor.py
++++ b/repos/system_upgrade/common/actors/kernelcmdlineconfig/actor.py
+@@ -4,6 +4,7 @@ from leapp.actors import Actor
+ from leapp.exceptions import StopActorExecutionError
+ from leapp.libraries.actor import kernelcmdlineconfig
+ from leapp.models import FirmwareFacts, InstalledTargetKernelInfo, KernelCmdlineArg, TargetKernelCmdlineArgTasks
++from leapp.reporting import Report
+ from leapp.tags import FinalizationPhaseTag, IPUWorkflowTag
+ 
+ 
+@@ -14,7 +15,7 @@ class KernelCmdlineConfig(Actor):
+ 
+     name = 'kernelcmdlineconfig'
+     consumes = (KernelCmdlineArg, InstalledTargetKernelInfo, FirmwareFacts, TargetKernelCmdlineArgTasks)
+-    produces = ()
++    produces = (Report,)
+     tags = (FinalizationPhaseTag, IPUWorkflowTag)
+ 
+     def process(self):
+-- 
+2.47.0
+
diff --git a/SOURCES/0011-kernelcmdlineconfig-Use-args-from-first-entry-when-m.patch b/SOURCES/0011-kernelcmdlineconfig-Use-args-from-first-entry-when-m.patch
new file mode 100644
index 0000000..3c15aa0
--- /dev/null
+++ b/SOURCES/0011-kernelcmdlineconfig-Use-args-from-first-entry-when-m.patch
@@ -0,0 +1,204 @@
+From c2c96affa7b20c82969419ce49b65cbf646a0c32 Mon Sep 17 00:00:00 2001
+From: Matej Matuska <mmatuska@redhat.com>
+Date: Fri, 18 Oct 2024 12:43:19 +0200
+Subject: [PATCH 11/40] kernelcmdlineconfig: Use args from first entry when
+ multiple entries are listed
+
+Instead of erroring out when grubby lists multiple entries for the
+default kernel, always use the `args=` and `root=` from the first one and create
+a post-upgrade report. The report instruct user to ensure those are the
+correct ones or to correct them.
+
+This can happen, for example, if MAKEDEBUG=yes is set in
+/etc/sysconfing/kernel.
+
+Jira: RHEL-46911
+---
+ .../libraries/kernelcmdlineconfig.py          | 79 ++++++++++++++++---
+ .../tests/test_kernelcmdlineconfig.py         | 48 ++++++++++-
+ 2 files changed, 116 insertions(+), 11 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py b/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
+index 6b261c3b..19c50f3c 100644
+--- a/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
++++ b/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
+@@ -109,10 +109,55 @@ def _extract_grubby_value(record):
+     return matches.group(2)
+ 
+ 
++def report_multple_entries_for_default_kernel():
++    if use_cmdline_file():
++        report_hint = (
++            'After the system has been rebooted into the new version of RHEL,'
++            ' check that configured default kernel cmdline arguments in /etc/kernel/cmdline '
++            ' are correct. In case that different arguments are expected, update the file as needed.'
++        )
++    else:
++        report_hint = (
++            'After the system has been rebooted into the new version of RHEL,'
++            ' check that configured default kernel cmdline arguments are set as expected, using'
++            ' the `grub2-editenv list` command. '
++            ' If different default arguments are expected, update them using grub2-editenv.\n'
++            ' For example, consider that current booted kernel has correct kernel cmdline'
++            ' arguments and /proc/cmdline contains:\n\n'
++            '    BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-425.3.1.el8.x86_64'
++            ' root=/dev/mapper/rhel_ibm--root ro console=tty0'
++            ' console=ttyS0,115200 rd_NO_PLYMOUTH\n\n'
++            ' then run the following grub2-editenv command:\n\n'
++            '    # grub2-editenv - set "kernelopts=root=/dev/mapper/rhel_ibm--root'
++            ' ro console=tty0 console=ttyS0,115200 rd_NO_PLYMOUTH"'
++        )
++
++    reporting.create_report([
++        reporting.Title('Ensure that expected default kernel cmdline arguments are set'),
++        reporting.Summary(
++            'During the upgrade we needed to modify the kernel command line arguments.'
++            ' However, multiple bootloader entries with different arguments were found for the default'
++            ' kernel (perhaps MAKEDEBUG=yes is set in /etc/sysconfig/kernel).'
++            ' Leapp used the arguments from the first found entry of the target kernel'
++            ' and set it as the new default kernel cmdline arguments for kernels installed in the future.'
++        ),
++        reporting.Remediation(hint=report_hint),
++        reporting.Severity(reporting.Severity.HIGH),
++        reporting.Groups([
++            reporting.Groups.BOOT,
++            reporting.Groups.KERNEL,
++            reporting.Groups.POST,
++        ]),
++        reporting.RelatedResource('file', '/etc/kernel/cmdline'),
++    ])
++
++
+ def retrieve_args_for_default_kernel(kernel_info):
+     # Copy the args for the default kernel to all kernels.
+     kernel_args = None
+     kernel_root = None
++    detected_multiple_entries = False
++
+     cmd = ['grubby', '--info', kernel_info.kernel_img_path]
+     output = stdlib.run(cmd, split=False)
+     for record in output['stdout'].splitlines():
+@@ -122,19 +167,30 @@ def retrieve_args_for_default_kernel(kernel_info):
+             temp_kernel_args = _extract_grubby_value(record)
+ 
+             if kernel_args:
+-                api.current_logger().warning('Grubby output is malformed:'
+-                                             ' `args=` is listed more than once.')
+                 if kernel_args != temp_kernel_args:
+-                    raise ReadOfKernelArgsError('Grubby listed `args=` multiple'
+-                                                ' times with different values.')
+-            kernel_args = _extract_grubby_value(record)
++                    api.current_logger().warning(
++                        'Grubby output listed `args=` multiple times with different values,'
++                        ' continuing with the first result'
++                    )
++                    detected_multiple_entries = True
++                else:
++                    api.current_logger().warning('Grubby output listed `args=` more than once')
++            else:
++                kernel_args = temp_kernel_args
+         elif record.startswith('root='):
+-            api.current_logger().warning('Grubby output is malformed:'
+-                                         ' `root=` is listed more than once.')
++            temp_kernel_root = _extract_grubby_value(record)
++
+             if kernel_root:
+-                raise ReadOfKernelArgsError('Grubby listed `root=` multiple'
+-                                            ' times with different values')
+-            kernel_root = _extract_grubby_value(record)
++                if kernel_root != temp_kernel_root:
++                    api.current_logger().warning(
++                        'Grubby output listed `root=` multiple times with different values,'
++                        ' continuing with the first result'
++                    )
++                    detected_multiple_entries = True
++                else:
++                    api.current_logger().warning('Grubby output listed `root=` more than once')
++            else:
++                kernel_root = temp_kernel_root
+ 
+     if not kernel_args or not kernel_root:
+         raise ReadOfKernelArgsError(
+@@ -142,6 +198,9 @@ def retrieve_args_for_default_kernel(kernel_info):
+             ' kernels: root={}, args={}'.format(kernel_root, kernel_args)
+         )
+ 
++    if detected_multiple_entries:
++        report_multple_entries_for_default_kernel()
++
+     return kernel_root, kernel_args
+ 
+ 
+diff --git a/repos/system_upgrade/common/actors/kernelcmdlineconfig/tests/test_kernelcmdlineconfig.py b/repos/system_upgrade/common/actors/kernelcmdlineconfig/tests/test_kernelcmdlineconfig.py
+index ffe4b046..e5759a7b 100644
+--- a/repos/system_upgrade/common/actors/kernelcmdlineconfig/tests/test_kernelcmdlineconfig.py
++++ b/repos/system_upgrade/common/actors/kernelcmdlineconfig/tests/test_kernelcmdlineconfig.py
+@@ -4,11 +4,12 @@ from collections import namedtuple
+ 
+ import pytest
+ 
++from leapp import reporting
+ from leapp.exceptions import StopActorExecutionError
+ from leapp.libraries import stdlib
+ from leapp.libraries.actor import kernelcmdlineconfig
+ from leapp.libraries.common.config import architecture
+-from leapp.libraries.common.testutils import CurrentActorMocked
++from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked
+ from leapp.libraries.stdlib import api
+ from leapp.models import InstalledTargetKernelInfo, KernelCmdlineArg, TargetKernelCmdlineArgTasks
+ 
+@@ -183,6 +184,51 @@ def test_kernelcmdline_config_no_version(monkeypatch):
+     assert not mocked_run.commands
+ 
+ 
++SECOND_KERNEL_ARGS = (
++    'ro rootflags=subvol=root'
++    ' resume=/dev/mapper/luks-2c0df999-81ec-4a35-a1f9-b93afee8c6ad'
++    ' rd.luks.uuid=luks-90a6412f-c588-46ca-9118-5aca35943d25'
++    ' rd.luks.uuid=luks-2c0df999-81ec-4a35-a1f9-b93afee8c6ad'
++)
++SECOND_KERNEL_ROOT = 'UUID=1aa15850-2685-418d-95a6-f7266a2de83b'
++
++
++@pytest.mark.parametrize(
++    'second_grubby_output',
++    (
++        TEMPLATE_GRUBBY_INFO_OUTPUT.format(SECOND_KERNEL_ARGS, SECOND_KERNEL_ROOT),
++        TEMPLATE_GRUBBY_INFO_OUTPUT.format(SAMPLE_KERNEL_ARGS, SECOND_KERNEL_ROOT),
++        TEMPLATE_GRUBBY_INFO_OUTPUT.format(SECOND_KERNEL_ARGS, SAMPLE_KERNEL_ROOT),
++    )
++)
++def test_kernelcmdline_config_mutiple_args(monkeypatch, second_grubby_output):
++    kernel_img_path = '/boot/vmlinuz-X'
++    kernel_info = InstalledTargetKernelInfo(pkg_nevra=TARGET_KERNEL_NEVRA,
++                                            uname_r='',
++                                            kernel_img_path=kernel_img_path,
++                                            initramfs_path='/boot/initramfs-X')
++
++    # For this test, we need to check we get the proper report if grubby --info
++    # outputs multiple different `root=` or `args=`
++    # and that the first ones are used
++    grubby_info_output = "\n".join((SAMPLE_GRUBBY_INFO_OUTPUT, second_grubby_output))
++
++    mocked_run = MockedRun(
++        outputs={" ".join(("grubby", "--info", kernel_img_path)): grubby_info_output,
++                 }
++    )
++    monkeypatch.setattr(stdlib, 'run', mocked_run)
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked())
++    monkeypatch.setattr(reporting, "create_report", create_report_mocked())
++
++    root, args = kernelcmdlineconfig.retrieve_args_for_default_kernel(kernel_info)
++    assert root == SAMPLE_KERNEL_ROOT
++    assert args == SAMPLE_KERNEL_ARGS
++    assert reporting.create_report.called == 1
++    expected_title = 'Ensure that expected default kernel cmdline arguments are set'
++    assert expected_title in reporting.create_report.report_fields['title']
++
++
+ def test_kernelcmdline_config_malformed_args(monkeypatch):
+     kernel_img_path = '/boot/vmlinuz-X'
+     kernel_info = InstalledTargetKernelInfo(pkg_nevra=TARGET_KERNEL_NEVRA,
+-- 
+2.47.0
+
diff --git a/SOURCES/0012-check_microarch-refactor-to-handle-possible-future-r.patch b/SOURCES/0012-check_microarch-refactor-to-handle-possible-future-r.patch
new file mode 100644
index 0000000..dbcfa40
--- /dev/null
+++ b/SOURCES/0012-check_microarch-refactor-to-handle-possible-future-r.patch
@@ -0,0 +1,216 @@
+From 053137c50d1b060f9e6e6e45d82196b1045391b7 Mon Sep 17 00:00:00 2001
+From: mhecko <mhecko@redhat.com>
+Date: Thu, 4 Apr 2024 14:22:48 +0200
+Subject: [PATCH 12/40] check_microarch: refactor to handle possible future
+ reqs
+
+---
+ .../actors/checkmicroarchitecture/actor.py    |  0
+ .../libraries/checkmicroarchitecture.py       | 73 +++++++++++++++++++
+ .../tests/test_checkmicroarchitecture.py      | 21 ++++--
+ .../libraries/checkmicroarchitecture.py       | 46 ------------
+ 4 files changed, 87 insertions(+), 53 deletions(-)
+ rename repos/system_upgrade/{el8toel9 => common}/actors/checkmicroarchitecture/actor.py (100%)
+ create mode 100644 repos/system_upgrade/common/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
+ rename repos/system_upgrade/{el8toel9 => common}/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py (79%)
+ delete mode 100644 repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
+
+diff --git a/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/actor.py b/repos/system_upgrade/common/actors/checkmicroarchitecture/actor.py
+similarity index 100%
+rename from repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/actor.py
+rename to repos/system_upgrade/common/actors/checkmicroarchitecture/actor.py
+diff --git a/repos/system_upgrade/common/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py b/repos/system_upgrade/common/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
+new file mode 100644
+index 00000000..cc617203
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
+@@ -0,0 +1,73 @@
++from collections import namedtuple
++
++from leapp import reporting
++from leapp.libraries.common.config.architecture import ARCH_X86_64, matches_architecture
++from leapp.libraries.common.config.version import get_target_major_version
++from leapp.libraries.stdlib import api
++from leapp.models import CPUInfo
++
++X86_64_BASELINE_FLAGS = ['cmov', 'cx8', 'fpu', 'fxsr', 'mmx', 'syscall', 'sse', 'sse2']
++X86_64_V2_FLAGS = ['cx16', 'lahf_lm', 'popcnt', 'pni', 'sse4_1', 'sse4_2', 'ssse3']
++
++MicroarchInfo = namedtuple('MicroarchInfo', ('required_flags', 'extra_report_fields', 'microarch_ver'))
++
++
++def _inhibit_upgrade(missing_flags, target_rhel, microarch_ver, extra_report_fields=None):
++    title = 'Current x86-64 microarchitecture is unsupported in {0}'.format(target_rhel)
++    summary = ('{0} has a higher CPU requirement than older versions, it now requires a CPU '
++               'compatible with {1} instruction set or higher.\n\n'
++               'Missings flags detected are: {2}\n'.format(target_rhel, microarch_ver, ', '.join(missing_flags)))
++
++    report_fields = [
++        reporting.Title(title),
++        reporting.Summary(summary),
++        reporting.Severity(reporting.Severity.HIGH),
++        reporting.Groups([reporting.Groups.INHIBITOR]),
++        reporting.Groups([reporting.Groups.SANITY]),
++        reporting.Remediation(hint=('If case of using virtualization, virtualization platforms often allow '
++                                    'configuring a minimum denominator CPU model for compatibility when migrating '
++                                    'between different CPU models. Ensure that minimum requirements are not below '
++                                    'that of {0}\n').format(target_rhel)),
++    ]
++
++    if extra_report_fields:
++        report_fields += extra_report_fields
++
++    reporting.create_report(report_fields)
++
++
++def process():
++    """
++    Check whether the processor matches the required microarchitecture.
++    """
++
++    if not matches_architecture(ARCH_X86_64):
++        api.current_logger().info('Architecture not x86-64. Skipping microarchitecture test.')
++        return
++
++    cpuinfo = next(api.consume(CPUInfo))
++
++    rhel9_microarch_article = reporting.ExternalLink(
++        title='Building Red Hat Enterprise Linux 9 for the x86-64-v2 microarchitecture level',
++        url='https://red.ht/rhel-9-intel-microarchitectures'
++    )
++
++    rhel_major_to_microarch_reqs = {
++        '9': MicroarchInfo(microarch_ver='x86-64-v2',
++                           required_flags=(X86_64_BASELINE_FLAGS + X86_64_V2_FLAGS),
++                           extra_report_fields=[rhel9_microarch_article]),
++    }
++
++    microarch_info = rhel_major_to_microarch_reqs.get(get_target_major_version())
++    if not microarch_info:
++        api.current_logger().info('No known microarchitecture requirements are known for target RHEL%s.',
++                                  get_target_major_version())
++        return
++
++    missing_flags = [flag for flag in microarch_info.required_flags if flag not in cpuinfo.flags]
++    api.current_logger().debug('Required flags missing: %s', missing_flags)
++    if missing_flags:
++        _inhibit_upgrade(missing_flags,
++                         'RHEL{0}'.format(get_target_major_version()),
++                         microarch_info.microarch_ver,
++                         extra_report_fields=microarch_info.extra_report_fields)
+diff --git a/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py b/repos/system_upgrade/common/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py
+similarity index 79%
+rename from repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py
+rename to repos/system_upgrade/common/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py
+index b7c850d9..b0624f2b 100644
+--- a/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py
++++ b/repos/system_upgrade/common/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py
+@@ -25,7 +25,13 @@ def test_not_x86_64_passes(monkeypatch, arch):
+     assert not reporting.create_report.called
+ 
+ 
+-def test_valid_microarchitecture(monkeypatch):
++@pytest.mark.parametrize(
++    ('target_ver', 'cpu_flags'),
++    [
++        ('9.0', checkmicroarchitecture.X86_64_BASELINE_FLAGS + checkmicroarchitecture.X86_64_V2_FLAGS)
++    ]
++)
++def test_valid_microarchitecture(monkeypatch, target_ver, cpu_flags):
+     """
+     Test no report is generated on a valid microarchitecture
+     """
+@@ -33,9 +39,8 @@ def test_valid_microarchitecture(monkeypatch):
+     monkeypatch.setattr(reporting, "create_report", create_report_mocked())
+     monkeypatch.setattr(api, 'current_logger', logger_mocked())
+ 
+-    required_flags = checkmicroarchitecture.X86_64_BASELINE_FLAGS + checkmicroarchitecture.X86_64_V2_FLAGS
+-    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch=ARCH_X86_64,
+-                                                                 msgs=[CPUInfo(flags=required_flags)]))
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch=ARCH_X86_64, dst_ver=target_ver,
++                                                                 msgs=[CPUInfo(flags=cpu_flags)]))
+ 
+     checkmicroarchitecture.process()
+ 
+@@ -43,14 +48,16 @@ def test_valid_microarchitecture(monkeypatch):
+     assert not reporting.create_report.called
+ 
+ 
+-def test_invalid_microarchitecture(monkeypatch):
++@pytest.mark.parametrize('target_ver', ['9.0'])
++def test_invalid_microarchitecture(monkeypatch, target_ver):
+     """
+     Test report is generated on x86-64 architecture with invalid microarchitecture and the upgrade is inhibited
+     """
+ 
+     monkeypatch.setattr(reporting, "create_report", create_report_mocked())
+     monkeypatch.setattr(api, 'current_logger', logger_mocked())
+-    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch=ARCH_X86_64, msgs=[CPUInfo()]))
++    monkeypatch.setattr(api, 'current_actor',
++                        CurrentActorMocked(arch=ARCH_X86_64, msgs=[CPUInfo()], dst_ver=target_ver))
+ 
+     checkmicroarchitecture.process()
+ 
+@@ -60,6 +67,6 @@ def test_invalid_microarchitecture(monkeypatch):
+     assert 'Architecture not x86-64. Skipping microarchitecture test.' not in api.current_logger().infomsg
+     assert reporting.create_report.called == 1
+     assert 'microarchitecture is unsupported' in produced_title
+-    assert 'RHEL9 has a higher CPU requirement' in produced_summary
++    assert 'has a higher CPU requirement' in produced_summary
+     assert reporting.create_report.report_fields['severity'] == reporting.Severity.HIGH
+     assert is_inhibitor(reporting.create_report.report_fields)
+diff --git a/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py b/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
+deleted file mode 100644
+index 9c083d7e..00000000
+--- a/repos/system_upgrade/el8toel9/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
++++ /dev/null
+@@ -1,46 +0,0 @@
+-from leapp import reporting
+-from leapp.libraries.common.config.architecture import ARCH_X86_64, matches_architecture
+-from leapp.libraries.stdlib import api
+-from leapp.models import CPUInfo
+-
+-X86_64_BASELINE_FLAGS = ['cmov', 'cx8', 'fpu', 'fxsr', 'mmx', 'syscall', 'sse', 'sse2']
+-X86_64_V2_FLAGS = ['cx16', 'lahf_lm', 'popcnt', 'pni', 'sse4_1', 'sse4_2', 'ssse3']
+-
+-
+-def _inhibit_upgrade(missing_flags):
+-    title = 'Current x86-64 microarchitecture is unsupported in RHEL9'
+-    summary = ('RHEL9 has a higher CPU requirement than older versions, it now requires a CPU '
+-               'compatible with x86-64-v2 instruction set or higher.\n\n'
+-               'Missings flags detected are: {}\n'.format(', '.join(missing_flags)))
+-
+-    reporting.create_report([
+-        reporting.Title(title),
+-        reporting.Summary(summary),
+-        reporting.ExternalLink(title='Building Red Hat Enterprise Linux 9 for the x86-64-v2 microarchitecture level',
+-                               url='https://red.ht/rhel-9-intel-microarchitectures'),
+-        reporting.Severity(reporting.Severity.HIGH),
+-        reporting.Groups([reporting.Groups.INHIBITOR]),
+-        reporting.Groups([reporting.Groups.SANITY]),
+-        reporting.Remediation(hint=('If case of using virtualization, virtualization platforms often allow '
+-                                    'configuring a minimum denominator CPU model for compatibility when migrating '
+-                                    'between different CPU models. Ensure that minimum requirements are not below '
+-                                    'that of RHEL9\n')),
+-    ])
+-
+-
+-def process():
+-    """
+-    Check whether the processor matches the required microarchitecture.
+-    """
+-
+-    if not matches_architecture(ARCH_X86_64):
+-        api.current_logger().info('Architecture not x86-64. Skipping microarchitecture test.')
+-        return
+-
+-    cpuinfo = next(api.consume(CPUInfo))
+-
+-    required_flags = X86_64_BASELINE_FLAGS + X86_64_V2_FLAGS
+-    missing_flags = [flag for flag in required_flags if flag not in cpuinfo.flags]
+-    api.current_logger().debug('Required flags missing: %s', missing_flags)
+-    if missing_flags:
+-        _inhibit_upgrade(missing_flags)
+-- 
+2.47.0
+
diff --git a/SOURCES/0013-check_microarch-add-rhel10-requirements.patch b/SOURCES/0013-check_microarch-add-rhel10-requirements.patch
new file mode 100644
index 0000000..b2cce6c
--- /dev/null
+++ b/SOURCES/0013-check_microarch-add-rhel10-requirements.patch
@@ -0,0 +1,133 @@
+From d3ebc990ba65801fbed2aaf1dce8329698667d1c Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Wed, 28 Aug 2024 12:18:40 +0200
+Subject: [PATCH 13/40] check_microarch: add rhel10 requirements
+
+---
+ .../actors/checkmicroarchitecture/actor.py    | 13 ++++++++++--
+ .../libraries/checkmicroarchitecture.py       |  8 +++++--
+ .../tests/test_checkmicroarchitecture.py      | 21 ++++++++++++++-----
+ 3 files changed, 33 insertions(+), 9 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/checkmicroarchitecture/actor.py b/repos/system_upgrade/common/actors/checkmicroarchitecture/actor.py
+index 98ffea80..bb342f2f 100644
+--- a/repos/system_upgrade/common/actors/checkmicroarchitecture/actor.py
++++ b/repos/system_upgrade/common/actors/checkmicroarchitecture/actor.py
+@@ -17,7 +17,8 @@ class CheckMicroarchitecture(Actor):
+     levels.
+ 
+     RHEL9 has a higher CPU requirement than older versions, it now requires a
+-    CPU compatible with ``x86-64-v2`` instruction set or higher.
++    CPU compatible with ``x86-64-v2`` instruction set or higher. Similarly,
++    RHEL10 requires at least ``x86-64-v3`` instruction set.
+ 
+     .. table:: Required CPU features by microarchitecure level with a
+                corresponding flag as shown by ``lscpu``.
+@@ -43,7 +44,15 @@ class CheckMicroarchitecture(Actor):
+         |            | SSE4_2      | sse4_2             |
+         |            | SSSE3       | ssse3              |
+         +------------+-------------+--------------------+
+-        | ...        |             |                    |
++        | x86-64-v3  | AVX         | avx                |
++        |            | AVX2        | avx2               |
++        |            | BMI1        | bmi1               |
++        |            | BMI2        | bmi2               |
++        |            | F16C        | f16c               |
++        |            | FMA         | fma                |
++        |            | LZCNT       | abm                |
++        |            | MOVBE       | movbe              |
++        |            | OSXSAVE     | xsave              |
+         +------------+-------------+--------------------+
+ 
+     Note: To get the corresponding flag for the CPU feature consult the file
+diff --git a/repos/system_upgrade/common/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py b/repos/system_upgrade/common/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
+index cc617203..94e85e3e 100644
+--- a/repos/system_upgrade/common/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
++++ b/repos/system_upgrade/common/actors/checkmicroarchitecture/libraries/checkmicroarchitecture.py
+@@ -8,6 +8,7 @@ from leapp.models import CPUInfo
+ 
+ X86_64_BASELINE_FLAGS = ['cmov', 'cx8', 'fpu', 'fxsr', 'mmx', 'syscall', 'sse', 'sse2']
+ X86_64_V2_FLAGS = ['cx16', 'lahf_lm', 'popcnt', 'pni', 'sse4_1', 'sse4_2', 'ssse3']
++X86_64_V3_FLAGS = ['avx2', 'bmi1', 'bmi2', 'f16c', 'fma', 'abm', 'movbe', 'xsave']
+ 
+ MicroarchInfo = namedtuple('MicroarchInfo', ('required_flags', 'extra_report_fields', 'microarch_ver'))
+ 
+@@ -16,7 +17,7 @@ def _inhibit_upgrade(missing_flags, target_rhel, microarch_ver, extra_report_fie
+     title = 'Current x86-64 microarchitecture is unsupported in {0}'.format(target_rhel)
+     summary = ('{0} has a higher CPU requirement than older versions, it now requires a CPU '
+                'compatible with {1} instruction set or higher.\n\n'
+-               'Missings flags detected are: {2}\n'.format(target_rhel, microarch_ver, ', '.join(missing_flags)))
++               'Missings flags detected are: {2}\n').format(target_rhel, microarch_ver, ', '.join(missing_flags))
+ 
+     report_fields = [
+         reporting.Title(title),
+@@ -24,7 +25,7 @@ def _inhibit_upgrade(missing_flags, target_rhel, microarch_ver, extra_report_fie
+         reporting.Severity(reporting.Severity.HIGH),
+         reporting.Groups([reporting.Groups.INHIBITOR]),
+         reporting.Groups([reporting.Groups.SANITY]),
+-        reporting.Remediation(hint=('If case of using virtualization, virtualization platforms often allow '
++        reporting.Remediation(hint=('If a case of using virtualization, virtualization platforms often allow '
+                                     'configuring a minimum denominator CPU model for compatibility when migrating '
+                                     'between different CPU models. Ensure that minimum requirements are not below '
+                                     'that of {0}\n').format(target_rhel)),
+@@ -56,6 +57,9 @@ def process():
+         '9': MicroarchInfo(microarch_ver='x86-64-v2',
+                            required_flags=(X86_64_BASELINE_FLAGS + X86_64_V2_FLAGS),
+                            extra_report_fields=[rhel9_microarch_article]),
++        '10': MicroarchInfo(microarch_ver='x86-64-v3',
++                            required_flags=(X86_64_BASELINE_FLAGS + X86_64_V2_FLAGS + X86_64_V3_FLAGS),
++                            extra_report_fields=[]),
+     }
+ 
+     microarch_info = rhel_major_to_microarch_reqs.get(get_target_major_version())
+diff --git a/repos/system_upgrade/common/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py b/repos/system_upgrade/common/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py
+index b0624f2b..eeca8be0 100644
+--- a/repos/system_upgrade/common/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py
++++ b/repos/system_upgrade/common/actors/checkmicroarchitecture/tests/test_checkmicroarchitecture.py
+@@ -25,10 +25,15 @@ def test_not_x86_64_passes(monkeypatch, arch):
+     assert not reporting.create_report.called
+ 
+ 
++ENTIRE_V2_FLAG_SET = checkmicroarchitecture.X86_64_BASELINE_FLAGS + checkmicroarchitecture.X86_64_V2_FLAGS
++ENTIRE_V3_FLAG_SET = ENTIRE_V2_FLAG_SET + checkmicroarchitecture.X86_64_V3_FLAGS
++
++
+ @pytest.mark.parametrize(
+     ('target_ver', 'cpu_flags'),
+     [
+-        ('9.0', checkmicroarchitecture.X86_64_BASELINE_FLAGS + checkmicroarchitecture.X86_64_V2_FLAGS)
++        ('9.0', ENTIRE_V2_FLAG_SET),
++        ('10.0', ENTIRE_V3_FLAG_SET)
+     ]
+ )
+ def test_valid_microarchitecture(monkeypatch, target_ver, cpu_flags):
+@@ -48,16 +53,22 @@ def test_valid_microarchitecture(monkeypatch, target_ver, cpu_flags):
+     assert not reporting.create_report.called
+ 
+ 
+-@pytest.mark.parametrize('target_ver', ['9.0'])
+-def test_invalid_microarchitecture(monkeypatch, target_ver):
++@pytest.mark.parametrize(
++    ('target_ver', 'cpu_flags'),
++    (
++        ('9.0', checkmicroarchitecture.X86_64_BASELINE_FLAGS),
++        ('10.0', ENTIRE_V2_FLAG_SET),
++    )
++)
++def test_invalid_microarchitecture(monkeypatch, target_ver, cpu_flags):
+     """
+     Test report is generated on x86-64 architecture with invalid microarchitecture and the upgrade is inhibited
+     """
+-
++    cpu_info = CPUInfo(flags=cpu_flags)
+     monkeypatch.setattr(reporting, "create_report", create_report_mocked())
+     monkeypatch.setattr(api, 'current_logger', logger_mocked())
+     monkeypatch.setattr(api, 'current_actor',
+-                        CurrentActorMocked(arch=ARCH_X86_64, msgs=[CPUInfo()], dst_ver=target_ver))
++                        CurrentActorMocked(arch=ARCH_X86_64, msgs=[cpu_info], dst_ver=target_ver))
+ 
+     checkmicroarchitecture.process()
+ 
+-- 
+2.47.0
+
diff --git a/SOURCES/0014-Skip-checking-files-under-.-directory-hash-dir.patch b/SOURCES/0014-Skip-checking-files-under-.-directory-hash-dir.patch
new file mode 100644
index 0000000..599c247
--- /dev/null
+++ b/SOURCES/0014-Skip-checking-files-under-.-directory-hash-dir.patch
@@ -0,0 +1,44 @@
+From a14793892bafaad0802844cbb56be3be3220eb47 Mon Sep 17 00:00:00 2001
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Wed, 25 Sep 2024 17:29:02 +0200
+Subject: [PATCH 14/40] Skip checking files under .../directory-hash/ dir
+
+* The main reason for this change is to improve performance and
+reduce flood of logs for the content that does not seem to be important
+to check for the upgrade process.
+
+The directory has been relatively recently added to ca-certificates
+rpm on EL 9+ systems mostly to improve performance of OpenSSL and
+the content does not seem to be important for the IPU process.
+The high number of files takes too much time to evaluate and causes
+flood of logs that are not important.
+
+This is updated solution that we drop originally: 60f500e59bb92
+---
+ .../targetuserspacecreator/libraries/userspacegen.py   | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
+index cd2d7d6e..d7698056 100644
+--- a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
++++ b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
+@@ -311,6 +311,16 @@ def _get_files_owned_by_rpms(context, dirpath, pkgs=None, recursive=False):
+     searchdir = context.full_path(dirpath)
+     if recursive:
+         for root, _, files in os.walk(searchdir):
++            if '/directory-hash/' in root:
++                # tl;dr; for the performance improvement
++                # The directory has been relatively recently added to ca-certificates
++                # rpm on EL 9+ systems and the content does not seem to be important
++                # for the IPU process. Also, it contains high number of files and
++                # their processing floods the output and slows down IPU.
++                # So skipping it entirely.
++                # This is updated solution that we drop originally: 60f500e59bb92
++                api.current_logger().debug('SKIP files in the {} directory: Not important for the IPU.'.format(root))
++                continue
+             for filename in files:
+                 relpath = os.path.relpath(os.path.join(root, filename), searchdir)
+                 file_list.append(relpath)
+-- 
+2.47.0
+
diff --git a/SOURCES/0015-lib-overlay-cap-the-max-size-of-disk-images.patch b/SOURCES/0015-lib-overlay-cap-the-max-size-of-disk-images.patch
new file mode 100644
index 0000000..738a4bd
--- /dev/null
+++ b/SOURCES/0015-lib-overlay-cap-the-max-size-of-disk-images.patch
@@ -0,0 +1,66 @@
+From cef2825778eb63f95e13cf48b1683bc98c32c21b Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Fri, 25 Oct 2024 16:33:38 +0200
+Subject: [PATCH 15/40] lib(overlay): cap the max size of disk images
+
+On systems with large disks (e.g. 16TB) with lots of free space, leapp
+might attemt to create files larger than the max file size of the
+underlying FS. Attempting to create such large files causes leapp
+to crash. This patch caps the max image size to 1TB, based on empirical
+evidence that more free space is not needed for the upgrade RPM
+transaction.
+
+Jira-ref: RHEL-57064
+---
+ .../common/libraries/overlaygen.py            | 28 +++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/repos/system_upgrade/common/libraries/overlaygen.py b/repos/system_upgrade/common/libraries/overlaygen.py
+index c1ac9ad3..867e3559 100644
+--- a/repos/system_upgrade/common/libraries/overlaygen.py
++++ b/repos/system_upgrade/common/libraries/overlaygen.py
+@@ -68,6 +68,27 @@ or close to that size, stay always with this minimal protected size defined by
+ this constant.
+ """
+ 
++_MAX_DISK_IMAGE_SIZE_MB = 2**20  # 1*TB
++"""
++Maximum size of the created (sparse) images.
++
++Defaults to 1TB. If a disk with capacity larger than _MAX_DISK_IMAGE_SIZE_MB
++is mounted on the system, the corresponding image used to store overlay
++modifications will be capped to _MAX_DISK_IMAGE_SIZE_MB.
++
++Engineering rationale:
++   This constant was introduced to prevent leapp from creating files that are
++   virtually larger than the maximum file size supported by the file system.
++   E.g. if the source system hosts /var/lib/leapp on EXT4, then we cannot
++   create a file larger than 16TB.
++   We create these "disk images" to be able to verify the system has enough
++   disk space to perform the RPM upgrade transaction. From our experience,
++   we are not aware of any system which could have installed so much content
++   by RPMs that we would need 1TB of the free space on a single FS. Therefore,
++   we consider this value as safe while preventing us from exceeding FS
++   limits.
++"""
++
+ 
+ MountPoints = namedtuple('MountPoints', ['fs_file', 'fs_vfstype'])
+ 
+@@ -287,6 +308,13 @@ def _prepare_required_mounts(scratch_dir, mounts_dir, storage_info, scratch_rese
+         disk_size = _get_fspace(mountpoint, convert_to_mibs=True, coefficient=0.95)
+         if mountpoint == scratch_mp:
+             disk_size = scratch_disk_size
++
++        if disk_size > _MAX_DISK_IMAGE_SIZE_MB:
++            msg = ('Image for overlayfs corresponding to the disk mounted at %s would ideally have %d MB, '
++                   'but we truncate it to %d MB to avoid bumping to max file limits.')
++            api.current_logger().info(msg, mountpoint, disk_size, _MAX_DISK_IMAGE_SIZE_MB)
++            disk_size = _MAX_DISK_IMAGE_SIZE_MB
++
+         image = _create_mount_disk_image(disk_images_directory, mountpoint, disk_size)
+         result[mountpoint] = mounting.LoopMount(
+             source=image,
+-- 
+2.47.0
+
diff --git a/SOURCES/0016-Raise-proper-error-when-ModelViolationError-occurs.patch b/SOURCES/0016-Raise-proper-error-when-ModelViolationError-occurs.patch
new file mode 100644
index 0000000..8008b54
--- /dev/null
+++ b/SOURCES/0016-Raise-proper-error-when-ModelViolationError-occurs.patch
@@ -0,0 +1,168 @@
+From ec078243771f8ef43853bd242175a612fe84f95b Mon Sep 17 00:00:00 2001
+From: tomasfratrik <tomasfratrik8@gmail.com>
+Date: Wed, 17 Jul 2024 12:12:50 +0200
+Subject: [PATCH 16/40] Raise proper error when ModelViolationError occurs
+
+This error occurs when repo file has invalid definition, specifically
+when the 'name' entry of the config files is invalid. Also add tests.
+
+Jira: RHEL-19249
+---
+ .../systemfacts/libraries/systemfacts.py      | 13 ++++++++-
+ .../systemfacts/tests/test_systemfacts.py     | 24 ++++++++++++++++-
+ .../common/libraries/repofileutils.py         | 17 +++++++++++-
+ .../libraries/tests/test_repofileutils.py     | 27 +++++++++++++++++++
+ 4 files changed, 78 insertions(+), 3 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/systemfacts/libraries/systemfacts.py b/repos/system_upgrade/common/actors/systemfacts/libraries/systemfacts.py
+index d1eeb28c..f16cea1d 100644
+--- a/repos/system_upgrade/common/actors/systemfacts/libraries/systemfacts.py
++++ b/repos/system_upgrade/common/actors/systemfacts/libraries/systemfacts.py
+@@ -217,7 +217,18 @@ def get_sysctls_status():
+ 
+ def get_repositories_status():
+     """ Get a basic information about YUM repositories installed in the system """
+-    return RepositoriesFacts(repositories=repofileutils.get_parsed_repofiles())
++    try:
++        return RepositoriesFacts(repositories=repofileutils.get_parsed_repofiles())
++    except repofileutils.InvalidRepoDefinition as e:
++        raise StopActorExecutionError(
++            message=str(e),
++            details={
++                'hint': 'For more directions on how to resolve the issue, see: {url}.'
++                        .format(
++                            url='https://access.redhat.com/solutions/6969001'
++                        )
++            }
++        )
+ 
+ 
+ def get_selinux_status():
+diff --git a/repos/system_upgrade/common/actors/systemfacts/tests/test_systemfacts.py b/repos/system_upgrade/common/actors/systemfacts/tests/test_systemfacts.py
+index badf174c..5831b979 100644
+--- a/repos/system_upgrade/common/actors/systemfacts/tests/test_systemfacts.py
++++ b/repos/system_upgrade/common/actors/systemfacts/tests/test_systemfacts.py
+@@ -3,7 +3,16 @@ import pwd
+ 
+ import pytest
+ 
+-from leapp.libraries.actor.systemfacts import _get_system_groups, _get_system_users, anyendswith, anyhasprefix, aslist
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.actor.systemfacts import (
++    _get_system_groups,
++    _get_system_users,
++    anyendswith,
++    anyhasprefix,
++    aslist,
++    get_repositories_status
++)
++from leapp.libraries.common import repofileutils
+ from leapp.libraries.common.testutils import logger_mocked
+ from leapp.libraries.stdlib import api
+ from leapp.snactor.fixture import current_actor_libraries
+@@ -116,3 +125,16 @@ def test_get_system_groups(monkeypatch, etc_group_names, skipped_group_names):
+                 assert group_name not in api.current_logger().dbgmsg[0]
+     else:
+         assert not api.current_logger().dbgmsg
++
++
++def test_failed_parsed_repofiles(monkeypatch):
++    def _raise_invalidrepo_error():
++        raise repofileutils.InvalidRepoDefinition(msg='mocked error',
++                                                  repofile='/etc/yum.repos.d/mock.repo',
++                                                  repoid='mocked repoid')
++
++    monkeypatch.setattr(repofileutils, 'get_parsed_repofiles', _raise_invalidrepo_error)
++    monkeypatch.setattr(api, 'current_logger', logger_mocked())
++
++    with pytest.raises(StopActorExecutionError):
++        get_repositories_status()
+diff --git a/repos/system_upgrade/common/libraries/repofileutils.py b/repos/system_upgrade/common/libraries/repofileutils.py
+index a563be52..cab3c42b 100644
+--- a/repos/system_upgrade/common/libraries/repofileutils.py
++++ b/repos/system_upgrade/common/libraries/repofileutils.py
+@@ -11,6 +11,16 @@ except ImportError:
+     api.current_logger().warning('repofileutils.py: failed to import dnf')
+ 
+ 
++class InvalidRepoDefinition(Exception):
++    """Raised when a repository definition is invalid."""
++    def __init__(self, msg, repofile, repoid):
++        message = 'Invalid repository definition: {repoid} in: {repofile}: {msg}'.format(
++                    repoid=repoid, repofile=repofile, msg=msg)
++        super(InvalidRepoDefinition, self).__init__(message)
++        self.repofile = repofile
++        self.repoid = repoid
++
++
+ def _parse_repository(repoid, repo_data):
+     def asbool(x):
+         return x == '1'
+@@ -33,12 +43,17 @@ def parse_repofile(repofile):
+     :param repofile: Path to the repo file
+     :type repofile: str
+     :rtype: RepositoryFile
++    :raises InvalidRepoDefinition: If the repository definition is invalid,
++        this can for example occur if 'name' field in repository is missing or it is invalid.
+     """
+     data = []
+     with open(repofile, mode='r') as fp:
+         cp = utils.parse_config(fp, strict=False)
+         for repoid in cp.sections():
+-            data.append(_parse_repository(repoid, dict(cp.items(repoid))))
++            try:
++                data.append(_parse_repository(repoid, dict(cp.items(repoid))))
++            except fields.ModelViolationError as e:
++                raise InvalidRepoDefinition(e, repofile=repofile, repoid=repoid)
+     return RepositoryFile(file=repofile, data=data)
+ 
+ 
+diff --git a/repos/system_upgrade/common/libraries/tests/test_repofileutils.py b/repos/system_upgrade/common/libraries/tests/test_repofileutils.py
+index 51cc1c11..42c7e49e 100644
+--- a/repos/system_upgrade/common/libraries/tests/test_repofileutils.py
++++ b/repos/system_upgrade/common/libraries/tests/test_repofileutils.py
+@@ -1,7 +1,10 @@
+ import json
+ import os
+ 
++import pytest
++
+ from leapp.libraries.common import repofileutils
++from leapp.models.fields import ModelViolationError
+ 
+ CUR_DIR = os.path.dirname(os.path.abspath(__file__))
+ 
+@@ -12,6 +15,30 @@ def test_invert_dict():
+     assert inv_dict == {'a': [1], 'b': [1, 2]}
+ 
+ 
++@pytest.mark.parametrize(
++    ('repoid', 'data'),
++    (
++        ('missing-name', {'baseurl': 'http://example.com', 'enabled': '1', 'gpgcheck': '1'}),
++        (None, {'name': 'name', 'baseurl': 'http://example.com', 'enabled': '1', 'gpgcheck': '1'}),
++        ('name-none', {'name': None, 'baseurl': 'http://example.com', 'enabled': '1', 'gpgcheck': '1'}),
++        ('baseurl-true', {'name': 'valid', 'baseurl': True, 'enabled': '1', 'gpgcheck': '1'}),
++    )
++)
++def test__parse_repository_missing_name(repoid, data):
++    with pytest.raises(ModelViolationError):
++        repofileutils._parse_repository(repoid, data)
++
++
++def test_parse_repofile_error(monkeypatch):
++    def _parse_repository_mocked(*args, **kwargs):
++        raise ModelViolationError('')
++
++    monkeypatch.setattr(repofileutils, '_parse_repository', _parse_repository_mocked)
++
++    with pytest.raises(repofileutils.InvalidRepoDefinition):
++        repofileutils.parse_repofile(os.path.join(CUR_DIR, 'sample_repos.txt'))
++
++
+ def test_parse_repofile():
+     repofile = repofileutils.parse_repofile(os.path.join(CUR_DIR, 'sample_repos.txt'))
+ 
+-- 
+2.47.0
+
diff --git a/SOURCES/0017-InhibitWhenLuks-simplify-the-logic.patch b/SOURCES/0017-InhibitWhenLuks-simplify-the-logic.patch
new file mode 100644
index 0000000..5a91114
--- /dev/null
+++ b/SOURCES/0017-InhibitWhenLuks-simplify-the-logic.patch
@@ -0,0 +1,56 @@
+From f84c6f808a821d3ccd09a4a8278cef9c09984a28 Mon Sep 17 00:00:00 2001
+From: Daniel Zatovic <daniel.zatovic@gmail.com>
+Date: Wed, 3 Apr 2024 23:25:06 +0200
+Subject: [PATCH 17/40] InhibitWhenLuks: simplify the logic
+
+---
+ .../common/actors/inhibitwhenluks/actor.py    | 35 +++++++------------
+ 1 file changed, 13 insertions(+), 22 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py b/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py
+index d3ff2d2e..40b845b0 100644
+--- a/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py
++++ b/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py
+@@ -24,26 +24,17 @@ class InhibitWhenLuks(Actor):
+             ceph_info = next(self.consume(CephInfo))
+             if ceph_info:
+                 ceph_vol = ceph_info.encrypted_volumes[:]
+-                for storage_info in self.consume(StorageInfo):
+-                    for blk in storage_info.lsblk:
+-                        if blk.tp == 'crypt' and blk.name not in ceph_vol:
+-                            create_report([
+-                                reporting.Title('LUKS encrypted partition detected'),
+-                                reporting.Summary('Upgrading system with encrypted partitions is not supported'),
+-                                reporting.Severity(reporting.Severity.HIGH),
+-                                reporting.Groups([reporting.Groups.BOOT, reporting.Groups.ENCRYPTION]),
+-                                reporting.Groups([reporting.Groups.INHIBITOR]),
+-                            ])
+-                            break
+         except StopIteration:
+-            for storage_info in self.consume(StorageInfo):
+-                for blk in storage_info.lsblk:
+-                    if blk.tp == 'crypt':
+-                        create_report([
+-                            reporting.Title('LUKS encrypted partition detected'),
+-                            reporting.Summary('Upgrading system with encrypted partitions is not supported'),
+-                            reporting.Severity(reporting.Severity.HIGH),
+-                            reporting.Groups([reporting.Groups.BOOT, reporting.Groups.ENCRYPTION]),
+-                            reporting.Groups([reporting.Groups.INHIBITOR]),
+-                        ])
+-                        break
++            pass
++
++        for storage_info in self.consume(StorageInfo):
++            for blk in storage_info.lsblk:
++                if blk.tp == 'crypt' and blk.name not in ceph_vol:
++                    create_report([
++                        reporting.Title('LUKS encrypted partition detected'),
++                        reporting.Summary('Upgrading system with encrypted partitions is not supported'),
++                        reporting.Severity(reporting.Severity.HIGH),
++                        reporting.Groups([reporting.Groups.BOOT, reporting.Groups.ENCRYPTION]),
++                        reporting.Groups([reporting.Groups.INHIBITOR]),
++                    ])
++                    break
+-- 
+2.47.0
+
diff --git a/SOURCES/0018-StorageScanner-Add-parent-device-name-to-lsblk.patch b/SOURCES/0018-StorageScanner-Add-parent-device-name-to-lsblk.patch
new file mode 100644
index 0000000..ff85cb8
--- /dev/null
+++ b/SOURCES/0018-StorageScanner-Add-parent-device-name-to-lsblk.patch
@@ -0,0 +1,271 @@
+From 03fc6743b8916f23f6a213e3f0fc3020ee141b96 Mon Sep 17 00:00:00 2001
+From: Daniel Zatovic <daniel.zatovic@gmail.com>
+Date: Wed, 3 Apr 2024 23:42:45 +0200
+Subject: [PATCH 18/40] StorageScanner: Add parent device name to lsblk
+
+Modify the StorageInfo model to include path and name of the parent
+device. Use StorageScanner to collect this information.
+
+Morover fix lsblk test, there should be a full device path in "lsblk
+-pbnr" output (just names were used in the original test).
+---
+ .../tests/test_inhibitwhenluks.py             | 12 +--
+ .../libraries/storagescanner.py               | 29 +++++--
+ .../tests/unit_test_storagescanner.py         | 78 +++++++++++++++----
+ .../common/models/storageinfo.py              |  2 +
+ .../tests/unit_test_vdoconversionscanner.py   |  4 +-
+ 5 files changed, 95 insertions(+), 30 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py b/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py
+index fee50f9d..405a3429 100644
+--- a/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py
++++ b/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py
+@@ -5,8 +5,8 @@ from leapp.utils.report import is_inhibitor
+ 
+ 
+ def test_actor_with_luks(current_actor_context):
+-    with_luks = [LsblkEntry(name='luks-132', kname='kname1', maj_min='253:0', rm='0',
+-                            size='10G', bsize=10*(1 << 39), ro='0', tp='crypt', mountpoint='')]
++    with_luks = [LsblkEntry(name='luks-132', kname='kname1', maj_min='253:0', rm='0', size='10G', bsize=10*(1 << 39),
++                            ro='0', tp='crypt', mountpoint='', parent_name='', parent_path='')]
+ 
+     current_actor_context.feed(StorageInfo(lsblk=with_luks))
+     current_actor_context.run()
+@@ -16,8 +16,8 @@ def test_actor_with_luks(current_actor_context):
+ 
+ 
+ def test_actor_with_luks_ceph_only(current_actor_context):
+-    with_luks = [LsblkEntry(name='luks-132', kname='kname1', maj_min='253:0', rm='0',
+-                            size='10G', bsize=10*(1 << 39), ro='0', tp='crypt', mountpoint='')]
++    with_luks = [LsblkEntry(name='luks-132', kname='kname1', maj_min='253:0', rm='0', size='10G', bsize=10*(1 << 39),
++                            ro='0', tp='crypt', mountpoint='', parent_name='', parent_path='')]
+     ceph_volume = ['luks-132']
+     current_actor_context.feed(StorageInfo(lsblk=with_luks))
+     current_actor_context.feed(CephInfo(encrypted_volumes=ceph_volume))
+@@ -26,8 +26,8 @@ def test_actor_with_luks_ceph_only(current_actor_context):
+ 
+ 
+ def test_actor_without_luks(current_actor_context):
+-    without_luks = [LsblkEntry(name='sda1', kname='sda1', maj_min='8:0', rm='0',
+-                               size='10G', bsize=10*(1 << 39), ro='0', tp='part', mountpoint='/boot')]
++    without_luks = [LsblkEntry(name='sda1', kname='sda1', maj_min='8:0', rm='0', size='10G', bsize=10*(1 << 39),
++                               ro='0', tp='part', mountpoint='/boot', parent_name='', parent_path='')]
+ 
+     current_actor_context.feed(StorageInfo(lsblk=without_luks))
+     current_actor_context.run()
+diff --git a/repos/system_upgrade/common/actors/storagescanner/libraries/storagescanner.py b/repos/system_upgrade/common/actors/storagescanner/libraries/storagescanner.py
+index f15f0d87..cad6bd32 100644
+--- a/repos/system_upgrade/common/actors/storagescanner/libraries/storagescanner.py
++++ b/repos/system_upgrade/common/actors/storagescanner/libraries/storagescanner.py
+@@ -164,18 +164,31 @@ def _get_mount_info(path):
+             )
+ 
+ 
++def _get_lsblk_info_for_devpath(dev_path):
++    lsblk_cmd = ['lsblk', '-nr', '--output', 'NAME,KNAME,SIZE', dev_path]
++    lsblk_info_for_devpath = next(_get_cmd_output(lsblk_cmd, ' ', 3), None)
++
++    return lsblk_info_for_devpath
++
++
+ @aslist
+ def _get_lsblk_info():
+     """ Collect storage info from lsblk command """
+-    cmd = ['lsblk', '-pbnr', '--output', 'NAME,MAJ:MIN,RM,SIZE,RO,TYPE,MOUNTPOINT']
+-    for entry in _get_cmd_output(cmd, ' ', 7):
+-        dev_path, maj_min, rm, bsize, ro, tp, mountpoint = entry
+-        lsblk_cmd = ['lsblk', '-nr', '--output', 'NAME,KNAME,SIZE', dev_path]
+-        lsblk_info_for_devpath = next(_get_cmd_output(lsblk_cmd, ' ', 3), None)
++    cmd = ['lsblk', '-pbnr', '--output', 'NAME,MAJ:MIN,RM,SIZE,RO,TYPE,MOUNTPOINT,PKNAME']
++    for entry in _get_cmd_output(cmd, ' ', 8):
++        dev_path, maj_min, rm, bsize, ro, tp, mountpoint, parent_path = entry
++
++        lsblk_info_for_devpath = _get_lsblk_info_for_devpath(dev_path)
+         if not lsblk_info_for_devpath:
+             return
+-
+         name, kname, size = lsblk_info_for_devpath
++
++        parent_name = ""
++        if parent_path:
++            parent_info = _get_lsblk_info_for_devpath(parent_path)
++            if parent_info:
++                parent_name, _, _ = parent_info
++
+         yield LsblkEntry(
+             name=name,
+             kname=kname,
+@@ -185,7 +198,9 @@ def _get_lsblk_info():
+             bsize=int(bsize),
+             ro=ro,
+             tp=tp,
+-            mountpoint=mountpoint)
++            mountpoint=mountpoint,
++            parent_name=parent_name,
++            parent_path=parent_path)
+ 
+ 
+ @aslist
+diff --git a/repos/system_upgrade/common/actors/storagescanner/tests/unit_test_storagescanner.py b/repos/system_upgrade/common/actors/storagescanner/tests/unit_test_storagescanner.py
+index 4dc11ea4..456e40ec 100644
+--- a/repos/system_upgrade/common/actors/storagescanner/tests/unit_test_storagescanner.py
++++ b/repos/system_upgrade/common/actors/storagescanner/tests/unit_test_storagescanner.py
+@@ -255,13 +255,18 @@ def test_get_lsblk_info(monkeypatch):
+     bytes_per_gb = 1 << 30
+ 
+     def get_cmd_output_mocked(cmd, delim, expected_len):
+-        if cmd == ['lsblk', '-pbnr', '--output', 'NAME,MAJ:MIN,RM,SIZE,RO,TYPE,MOUNTPOINT']:
++        if cmd == ['lsblk', '-pbnr', '--output', 'NAME,MAJ:MIN,RM,SIZE,RO,TYPE,MOUNTPOINT,PKNAME']:
+             output_lines_split_on_whitespace = [
+-                ['vda', '252:0', '0', str(40 * bytes_per_gb), '0', 'disk', ''],
+-                ['vda1', '252:1', '0', str(1 * bytes_per_gb), '0', 'part', '/boot'],
+-                ['vda2', '252:2', '0', str(39 * bytes_per_gb), '0', 'part', ''],
+-                ['rhel_ibm--p8--kvm--03--guest--02-root', '253:0', '0', str(38 * bytes_per_gb), '0', 'lvm', '/'],
+-                ['rhel_ibm--p8--kvm--03--guest--02-swap', '253:1', '0', str(1 * bytes_per_gb), '0', 'lvm', '[SWAP]']
++                ['/dev/vda', '252:0', '0', str(40 * bytes_per_gb), '0', 'disk', '', ''],
++                ['/dev/vda1', '252:1', '0', str(1 * bytes_per_gb), '0', 'part', '/boot', ''],
++                ['/dev/vda2', '252:2', '0', str(39 * bytes_per_gb), '0', 'part', '', ''],
++                ['/dev/mapper/rhel_ibm--p8--kvm--03--guest--02-root', '253:0', '0', str(38 * bytes_per_gb), '0', 'lvm',
++                    '/', ''],
++                ['/dev/mapper/rhel_ibm--p8--kvm--03--guest--02-swap', '253:1', '0', str(1 * bytes_per_gb), '0', 'lvm',
++                    '[SWAP]', ''],
++                ['/dev/mapper/luks-01b60fff-a2a8-4c03-893f-056bfc3f06f6', '254:0', '0', str(38 * bytes_per_gb), '0',
++                    'crypt', '', '/dev/nvme0n1p1'],
++                ['/dev/nvme0n1p1', '259:1', '0', str(39 * bytes_per_gb), '0', 'part', '', '/dev/nvme0n1'],
+             ]
+             for output_line_parts in output_lines_split_on_whitespace:
+                 yield output_line_parts
+@@ -269,11 +274,17 @@ def test_get_lsblk_info(monkeypatch):
+             # We cannot have the output in a list, since the command is called per device. Therefore, we have to map
+             # each device path to its output.
+             output_lines_split_on_whitespace_per_device = {
+-                'vda': ['vda', 'vda', '40G'],
+-                'vda1': ['vda1', 'vda1', '1G'],
+-                'vda2': ['vda2', 'vda2', '39G'],
+-                'rhel_ibm--p8--kvm--03--guest--02-root': ['rhel_ibm--p8--kvm--03--guest--02-root', 'kname1', '38G'],
+-                'rhel_ibm--p8--kvm--03--guest--02-swap': ['rhel_ibm--p8--kvm--03--guest--02-swap', 'kname2', '1G']
++                '/dev/vda': ['vda', 'vda', '40G'],
++                '/dev/vda1': ['vda1', 'vda1', '1G'],
++                '/dev/vda2': ['vda2', 'vda2', '39G'],
++                '/dev/mapper/rhel_ibm--p8--kvm--03--guest--02-root':
++                    ['rhel_ibm--p8--kvm--03--guest--02-root', 'kname1', '38G'],
++                '/dev/mapper/rhel_ibm--p8--kvm--03--guest--02-swap':
++                    ['rhel_ibm--p8--kvm--03--guest--02-swap', 'kname2', '1G'],
++                '/dev/mapper/luks-01b60fff-a2a8-4c03-893f-056bfc3f06f6':
++                    ['luks-01b60fff-a2a8-4c03-893f-056bfc3f06f6', 'dm-0', '38G'],
++                '/dev/nvme0n1p1': ['nvme0n1p1', 'nvme0n1p1', '39G'],
++                '/dev/nvme0n1': ['nvme0n1', 'nvme0n1', '40G'],
+             }
+             dev_path = cmd[4]
+             if dev_path not in output_lines_split_on_whitespace_per_device:
+@@ -294,7 +305,9 @@ def test_get_lsblk_info(monkeypatch):
+             bsize=40 * bytes_per_gb,
+             ro='0',
+             tp='disk',
+-            mountpoint=''),
++            mountpoint='',
++            parent_name='',
++            parent_path=''),
+         LsblkEntry(
+             name='vda1',
+             kname='vda1',
+@@ -304,7 +317,9 @@ def test_get_lsblk_info(monkeypatch):
+             bsize=1 * bytes_per_gb,
+             ro='0',
+             tp='part',
+-            mountpoint='/boot'),
++            mountpoint='/boot',
++            parent_name='',
++            parent_path=''),
+         LsblkEntry(
+             name='vda2',
+             kname='vda2',
+@@ -314,7 +329,9 @@ def test_get_lsblk_info(monkeypatch):
+             bsize=39 * bytes_per_gb,
+             ro='0',
+             tp='part',
+-            mountpoint=''),
++            mountpoint='',
++            parent_name='',
++            parent_path=''),
+         LsblkEntry(
+             name='rhel_ibm--p8--kvm--03--guest--02-root',
+             kname='kname1',
+@@ -324,7 +341,9 @@ def test_get_lsblk_info(monkeypatch):
+             bsize=38 * bytes_per_gb,
+             ro='0',
+             tp='lvm',
+-            mountpoint='/'),
++            mountpoint='/',
++            parent_name='',
++            parent_path=''),
+         LsblkEntry(
+             name='rhel_ibm--p8--kvm--03--guest--02-swap',
+             kname='kname2',
+@@ -334,7 +353,34 @@ def test_get_lsblk_info(monkeypatch):
+             bsize=1 * bytes_per_gb,
+             ro='0',
+             tp='lvm',
+-            mountpoint='[SWAP]')]
++            mountpoint='[SWAP]',
++            parent_name='',
++            parent_path=''),
++        LsblkEntry(
++            name='luks-01b60fff-a2a8-4c03-893f-056bfc3f06f6',
++            kname='dm-0',
++            maj_min='254:0',
++            rm='0',
++            size='38G',
++            bsize=38 * bytes_per_gb,
++            ro='0',
++            tp='crypt',
++            mountpoint='',
++            parent_name='nvme0n1p1',
++            parent_path='/dev/nvme0n1p1'),
++        LsblkEntry(
++            name='nvme0n1p1',
++            kname='nvme0n1p1',
++            maj_min='259:1',
++            rm='0',
++            size='39G',
++            bsize=39 * bytes_per_gb,
++            ro='0',
++            tp='part',
++            mountpoint='',
++            parent_name='nvme0n1',
++            parent_path='/dev/nvme0n1'),
++        ]
+ 
+     actual = storagescanner._get_lsblk_info()
+     assert expected == actual
+diff --git a/repos/system_upgrade/common/models/storageinfo.py b/repos/system_upgrade/common/models/storageinfo.py
+index 5bb9caac..71e7459d 100644
+--- a/repos/system_upgrade/common/models/storageinfo.py
++++ b/repos/system_upgrade/common/models/storageinfo.py
+@@ -43,6 +43,8 @@ class LsblkEntry(Model):
+     ro = fields.String()
+     tp = fields.String()
+     mountpoint = fields.String()
++    parent_name = fields.String()
++    parent_path = fields.String()
+ 
+ 
+ class PvsEntry(Model):
+diff --git a/repos/system_upgrade/el8toel9/actors/vdoconversionscanner/tests/unit_test_vdoconversionscanner.py b/repos/system_upgrade/el8toel9/actors/vdoconversionscanner/tests/unit_test_vdoconversionscanner.py
+index 0745c91d..4d6ef0dc 100644
+--- a/repos/system_upgrade/el8toel9/actors/vdoconversionscanner/tests/unit_test_vdoconversionscanner.py
++++ b/repos/system_upgrade/el8toel9/actors/vdoconversionscanner/tests/unit_test_vdoconversionscanner.py
+@@ -26,7 +26,9 @@ def _lsblk_entry(prefix, number, types, size='128G', bsize=2 ** 37):
+         bsize=bsize,
+         ro='0',
+         tp=types[random.randint(0, len(types) - 1)],
+-        mountpoint='')
++        mountpoint='',
++        parent_name='',
++        parent_path='')
+ 
+ 
+ @aslist
+-- 
+2.47.0
+
diff --git a/SOURCES/0019-LuksScanner-Add-LUKS-dump-scanner-and-models.patch b/SOURCES/0019-LuksScanner-Add-LUKS-dump-scanner-and-models.patch
new file mode 100644
index 0000000..3eaa137
--- /dev/null
+++ b/SOURCES/0019-LuksScanner-Add-LUKS-dump-scanner-and-models.patch
@@ -0,0 +1,1030 @@
+From 266c2495b144aa13d96f72c276d7b94638e3a6b7 Mon Sep 17 00:00:00 2001
+From: Daniel Zatovic <daniel.zatovic@gmail.com>
+Date: Tue, 16 Apr 2024 17:04:41 +0200
+Subject: [PATCH 19/40] LuksScanner: Add LUKS dump scanner and models
+
+Add LuksScanner actor that runs 'cryptsetup luksDump' for all 'crypt'
+from lsblk output. The output is then parsed and filled into LuksDump
+and LuksToken models.
+
+The LuksDump model contains information about LUKS version, device UUID,
+corresponding device path, name of the backing device (which contains
+the LUKS header) and a list of LuksToken models.
+
+LuksToken model represents a token associated with the given LUKS
+device. It contains token ID, IDs of associated keyslot and token type.
+If the token type is "clevis", we use "clevis luks list" command to
+determine the clevis-specific subtype and append it to the token name.
+E.g. if there is a "clevis" token and "clevis luks list" returns "tpm2",
+the token type will be "clevis-tpm2".
+---
+ .../common/actors/luksscanner/actor.py        |  23 ++
+ .../luksscanner/libraries/luksdump_parser.py  | 199 ++++++++++++++++++
+ .../luksscanner/libraries/luksscanner.py      | 125 +++++++++++
+ .../tests/files/luksDump_luks1.txt            |  27 +++
+ .../tests/files/luksDump_nvme0n1p3_luks1.txt  |  27 +++
+ .../tests/files/luksDump_nvme0n1p3_luks2.txt  |  43 ++++
+ .../files/luksDump_nvme0n1p3_luks2_tokens.txt | 119 +++++++++++
+ .../luksscanner/tests/test_luksdump_parser.py | 147 +++++++++++++
+ .../luksscanner/tests/test_luksscaner.py      | 142 +++++++++++++
+ .../system_upgrade/common/models/luksdump.py  |  73 +++++++
+ 10 files changed, 925 insertions(+)
+ create mode 100644 repos/system_upgrade/common/actors/luksscanner/actor.py
+ create mode 100755 repos/system_upgrade/common/actors/luksscanner/libraries/luksdump_parser.py
+ create mode 100644 repos/system_upgrade/common/actors/luksscanner/libraries/luksscanner.py
+ create mode 100644 repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_luks1.txt
+ create mode 100644 repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks1.txt
+ create mode 100644 repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks2.txt
+ create mode 100644 repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks2_tokens.txt
+ create mode 100644 repos/system_upgrade/common/actors/luksscanner/tests/test_luksdump_parser.py
+ create mode 100644 repos/system_upgrade/common/actors/luksscanner/tests/test_luksscaner.py
+ create mode 100644 repos/system_upgrade/common/models/luksdump.py
+
+diff --git a/repos/system_upgrade/common/actors/luksscanner/actor.py b/repos/system_upgrade/common/actors/luksscanner/actor.py
+new file mode 100644
+index 00000000..a163374b
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/actor.py
+@@ -0,0 +1,23 @@
++from leapp.actors import Actor
++from leapp.libraries.actor import luksscanner
++from leapp.models import LuksDumps, StorageInfo
++from leapp.reporting import Report
++from leapp.tags import FactsPhaseTag, IPUWorkflowTag
++
++
++class LuksScanner(Actor):
++    """
++    Provides data about active LUKS devices.
++
++    Scans all block devices of 'crypt' type and attempts to run 'cryptsetup luksDump' on them.
++    For every 'crypt' device a LuksDump model is produced. Furthermore, if there is any LUKS token
++    of type clevis, the concrete subtype is determined using 'clevis luks list'.
++    """
++
++    name = 'luks_scanner'
++    consumes = (StorageInfo,)
++    produces = (Report, LuksDumps)
++    tags = (IPUWorkflowTag, FactsPhaseTag)
++
++    def process(self):
++        self.produce(luksscanner.get_luks_dumps_model())
+diff --git a/repos/system_upgrade/common/actors/luksscanner/libraries/luksdump_parser.py b/repos/system_upgrade/common/actors/luksscanner/libraries/luksdump_parser.py
+new file mode 100755
+index 00000000..44113d0e
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/libraries/luksdump_parser.py
+@@ -0,0 +1,199 @@
++class LuksDumpParser(object):
++    """
++    Class for parsing "cryptsetup luksDump" output. Given a list of lines, it
++    generates a dictionary representing the dump.
++    """
++
++    class Node(object):
++        """
++        Helper class, every line is represented as a node. The node depth is
++        based on the indentation of the line. A dictionary is produced after
++        all lines are inserted.
++        """
++
++        def __init__(self, indented_line):
++            self.children = []
++            self.level = len(indented_line) - len(indented_line.lstrip())
++            self.text = indented_line.strip()
++
++        def add_children(self, nodes):
++            # NOTE(pstodulk): it's expected that nodes are non-empty list and
++            # having it empty is an error if it happens. So keeping a hard crash
++            # for now as having an empty list it's hypothetical now and I would
++            # probably end with en error anyway if discovered.
++            childlevel = nodes[0].level
++            while nodes:
++                node = nodes.pop(0)
++                if node.level == childlevel:  # add node as a child
++                    self.children.append(node)
++                elif node.level > childlevel:  # add nodes as grandchildren of the last child
++                    nodes.insert(0, node)
++                    self.children[-1].add_children(nodes)
++                elif node.level <= self.level:  # this node is a sibling, no more children
++                    nodes.insert(0, node)
++                    return
++
++        def as_dict(self):
++            if len(self.children) > 1:
++                children = [node.as_dict() for node in self.children]
++
++                return {self.text: LuksDumpParser._merge_list(children)}
++            if len(self.children) == 1:
++                return {self.text: self.children[0].as_dict()}
++            return self.text
++
++    @staticmethod
++    def _count_type(elem_list, elem_type):
++        """ Count the number of items of elem_type inside the elem_list """
++        return sum(isinstance(x, elem_type) for x in elem_list)
++
++    @staticmethod
++    def _merge_list(elem_list):
++        """
++        Given a list of elements merge them into a single element. If all
++        elements are strings, concatenate them into a single string. When all
++        the elements are dictionaries merge them into a single dictionary
++        containing the keys/values from all of the dictionaries.
++        """
++
++        dict_count = LuksDumpParser._count_type(elem_list, dict)
++        str_count = LuksDumpParser._count_type(elem_list, str)
++
++        result = elem_list
++        if dict_count == len(elem_list):
++            result = {}
++            for element in elem_list:
++                result.update(element)
++        elif str_count == len(elem_list):
++            result = "".join(elem_list)
++
++        return result
++
++    @staticmethod
++    def _find_single_str(elem_list):
++        """ If the list contains exactly one string return it or return None otherwise. """
++
++        result = None
++
++        for elem in elem_list:
++            if isinstance(elem, str):
++                if result is not None:
++                    # more than one strings in the list
++                    return None
++                result = elem
++
++        return result
++
++    @staticmethod
++    def _fixup_type(elem_list, type_string):
++        single_string = LuksDumpParser._find_single_str(elem_list)
++
++        if single_string is not None:
++            elem_list.remove(single_string)
++            elem_list.append({type_string: single_string})
++
++    @staticmethod
++    def _fixup_section(section, type_string):
++        for key, value in section.items():
++            LuksDumpParser._fixup_type(value, type_string)
++            section[key] = LuksDumpParser._merge_list(section[key])
++
++    @staticmethod
++    def _fixup_dict(parsed_dict):
++        """ Various fixups of the parsed dictionary """
++
++        if "Version" not in parsed_dict:
++            return
++        if parsed_dict["Version"] == "1":
++            for i in range(8):
++                keyslot = "Key Slot {}".format(i)
++
++                if keyslot not in parsed_dict:
++                    continue
++
++                if parsed_dict[keyslot] in ["ENABLED", "DISABLED"]:
++                    parsed_dict[keyslot] = {"enabled": parsed_dict[keyslot] == "ENABLED"}
++
++                if not isinstance(parsed_dict[keyslot], list):
++                    continue
++
++                enabled = None
++                if "ENABLED" in parsed_dict[keyslot]:
++                    enabled = True
++                    parsed_dict[keyslot].remove("ENABLED")
++                if "DISABLED" in parsed_dict[keyslot]:
++                    enabled = False
++                    parsed_dict[keyslot].remove("DISABLED")
++                parsed_dict[keyslot] = LuksDumpParser._merge_list(parsed_dict[keyslot])
++                if enabled is not None:
++                    parsed_dict[keyslot]["enabled"] = enabled
++        elif parsed_dict["Version"] == "2":
++            for section in ["Keyslots", "Digests", "Data segments", "Tokens"]:
++                if section in parsed_dict:
++                    LuksDumpParser._fixup_section(parsed_dict[section], "type")
++
++    @staticmethod
++    def _fixup_dump(dump):
++        """
++        Replace tabs with spaces, for lines with colon a move the text
++        after column on new line with the indent of the following line.
++        """
++
++        dump = [line.replace("\t", " "*8).replace("\n", "") for line in dump]
++        newdump = []
++
++        for i, line in enumerate(dump):
++            if not line.strip():
++                continue
++
++            if ':' in line:
++                first_half = line.split(":")[0]
++                second_half = ":".join(line.split(":")[1:]).lstrip()
++
++                current_level = len(line) - len(line.lstrip())
++                if i+1 < len(dump):
++                    next_level = len(dump[i+1]) - len(dump[i+1].lstrip())
++                else:
++                    next_level = current_level
++
++                if next_level > current_level:
++                    second_half = " " * next_level + second_half
++                else:
++                    second_half = " " * (current_level + 8) + second_half
++
++                newdump.append(first_half)
++                if second_half.strip():
++                    newdump.append(second_half)
++            else:
++                newdump.append(line)
++
++        return newdump
++
++    @staticmethod
++    def parse(dump):
++        """
++        Parse the output of "cryptsetup luksDump" command into a dictionary.
++
++        :param dump: List of output lines of luksDump
++        :returns: Parsed dictionary
++        """
++
++        root = LuksDumpParser.Node('root')
++
++        nodes = []
++        for line in LuksDumpParser._fixup_dump(dump):
++            nodes.append(LuksDumpParser.Node(line))
++
++        root.add_children(nodes)
++        root = root.as_dict()['root']
++
++        if isinstance(root, list):
++            result = {}
++            for child in root:
++                if isinstance(child, str):
++                    child = {child: {}}
++                result.update(child)
++            root = result
++
++        LuksDumpParser._fixup_dict(root)
++        return root
+diff --git a/repos/system_upgrade/common/actors/luksscanner/libraries/luksscanner.py b/repos/system_upgrade/common/actors/luksscanner/libraries/luksscanner.py
+new file mode 100644
+index 00000000..1c7822a5
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/libraries/luksscanner.py
+@@ -0,0 +1,125 @@
++import functools
++
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries import stdlib
++from leapp.libraries.actor.luksdump_parser import LuksDumpParser
++from leapp.libraries.stdlib import api
++from leapp.models import LuksDump, LuksDumps, LuksToken, StorageInfo
++
++
++def aslist(f):
++    """ Decorator used to convert generator to list """
++    @functools.wraps(f)
++    def inner(*args, **kwargs):
++        return list(f(*args, **kwargs))
++    return inner
++
++
++def _get_clevis_type(device_path, keyslot):
++    """
++    Assuming the device is initialized using clevis, determine the type of
++    clevis token associated to the specified keyslot.
++    """
++    try:
++        result = stdlib.run(["clevis", "luks", "list", "-d", device_path, "-s", str(keyslot)])
++    except OSError:
++        message = ('A LUKS drive with clevis token was discovered, but there is '
++                   'no clevis package installed. The clevis command is required '
++                   'to determine clevis token type.')
++        details = {'hint': 'Use dnf to install the "clevis-luks" package.'}
++        raise StopActorExecutionError(message=message, details=details)
++    except stdlib.CalledProcessError as e:
++        api.current_logger().debug("clevis list command failed with an error code: {}".format(e.exit_code))
++
++        message = ('The "clevis luks list" command failed. This'
++                   'might be because the clevis-luks package is'
++                   'missing on your system.')
++        details = {'hint': 'Use dnf to install the "clevis-luks" package.'}
++        raise StopActorExecutionError(message=message, details=details)
++
++    line = result["stdout"].split()
++    if len(line) != 3:
++        raise StopActorExecutionError(
++            'Invalid "clevis list" output detected'
++        )
++
++    return "clevis-{}".format(line[1])
++
++
++@aslist
++def _get_tokens(device_path, luksdump_dict):
++    """ Given a parsed LUKS dump, produce a list of tokens """
++    if "Version" not in luksdump_dict or luksdump_dict["Version"] != '2':
++        return
++    if "Tokens" not in luksdump_dict:
++        raise StopActorExecutionError(
++            'No tokens in cryptsetup luksDump output'
++        )
++
++    for token_id in luksdump_dict["Tokens"]:
++        token = luksdump_dict["Tokens"][token_id]
++
++        if "Keyslot" not in token or "type" not in token:
++            raise StopActorExecutionError(
++                'Token specification does not contain keyslot or type',
++            )
++        keyslot = int(token["Keyslot"])
++        token_type = token["type"]
++
++        if token_type == "clevis":
++            token_type = _get_clevis_type(device_path, keyslot)
++
++        yield LuksToken(
++                token_id=int(token_id),
++                keyslot=keyslot,
++                token_type=token_type
++        )
++
++
++def get_luks_dump_by_device(device_path, device_name):
++    """ Determine info about LUKS device using cryptsetup and clevis commands """
++
++    try:
++        result = stdlib.run(['cryptsetup', 'luksDump', device_path])
++        luksdump_dict = LuksDumpParser.parse(result["stdout"].splitlines())
++
++        version = int(luksdump_dict["Version"]) if "Version" in luksdump_dict else None
++        uuid = luksdump_dict["UUID"] if "UUID" in luksdump_dict else None
++        if version is None or uuid is None:
++            api.current_logger().error(
++                'Failed to detect UUID or version from the output "cryptsetup luksDump {}" command'.format(device_path)
++            )
++            raise StopActorExecutionError(
++                'Failed to detect UUID or version from the output "cryptsetup luksDump {}" command'.format(device_path)
++            )
++
++        return LuksDump(
++                version=version,
++                uuid=uuid,
++                device_path=device_path,
++                device_name=device_name,
++                tokens=_get_tokens(device_path, luksdump_dict)
++        )
++
++    except (OSError, stdlib.CalledProcessError) as ex:
++        api.current_logger().error(
++                'Failed to execute "cryptsetup luksDump" command: {}'.format(ex)
++        )
++        raise StopActorExecutionError(
++            'Failed to execute "cryptsetup luksDump {}" command'.format(device_path),
++            details={'details': str(ex)}
++        )
++
++
++@aslist
++def get_luks_dumps():
++    """ Collect info abaout every active LUKS device """
++
++    for storage_info in api.consume(StorageInfo):
++        for blk in storage_info.lsblk:
++            if blk.tp == 'crypt' and blk.parent_path:
++                yield get_luks_dump_by_device(blk.parent_path, blk.parent_name)
++
++
++def get_luks_dumps_model():
++    return LuksDumps(dumps=get_luks_dumps())
+diff --git a/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_luks1.txt b/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_luks1.txt
+new file mode 100644
+index 00000000..e22cc8ce
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_luks1.txt
+@@ -0,0 +1,27 @@
++LUKS header information for /dev/loop10
++
++Version:       	1
++Cipher name:   	aes
++Cipher mode:   	xts-plain64
++Hash spec:     	sha256
++Payload offset:	4096
++MK bits:       	512
++MK digest:     	fb ec 6b 31 ae e4 49 03 3e ad 43 22 02 cf a8 78 ad 3c d2 a8 
++MK salt:       	17 57 4e 2f ed 0b 5c 62 d5 de 54 f5 7f ab 60 68 
++               	71 d8 72 06 64 6c 81 05 39 55 3f 55 32 56 d9 da 
++MK iterations: 	114573
++UUID:          	90242257-d00a-4019-aba6-03083f89404b
++
++Key Slot 0: ENABLED
++	Iterations:         	1879168
++	Salt:               	fc 77 48 72 bd 31 ca 83 23 80 5a 5e b9 5b de bb 
++	                      	55 ac d5 a9 3b 96 ad a5 82 bc 11 68 ba f8 87 56 
++	Key material offset:	8
++	AF stripes:            	4000
++Key Slot 1: DISABLED
++Key Slot 2: DISABLED
++Key Slot 3: DISABLED
++Key Slot 4: DISABLED
++Key Slot 5: DISABLED
++Key Slot 6: DISABLED
++Key Slot 7: DISABLED
+diff --git a/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks1.txt b/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks1.txt
+new file mode 100644
+index 00000000..e22cc8ce
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks1.txt
+@@ -0,0 +1,27 @@
++LUKS header information for /dev/loop10
++
++Version:       	1
++Cipher name:   	aes
++Cipher mode:   	xts-plain64
++Hash spec:     	sha256
++Payload offset:	4096
++MK bits:       	512
++MK digest:     	fb ec 6b 31 ae e4 49 03 3e ad 43 22 02 cf a8 78 ad 3c d2 a8 
++MK salt:       	17 57 4e 2f ed 0b 5c 62 d5 de 54 f5 7f ab 60 68 
++               	71 d8 72 06 64 6c 81 05 39 55 3f 55 32 56 d9 da 
++MK iterations: 	114573
++UUID:          	90242257-d00a-4019-aba6-03083f89404b
++
++Key Slot 0: ENABLED
++	Iterations:         	1879168
++	Salt:               	fc 77 48 72 bd 31 ca 83 23 80 5a 5e b9 5b de bb 
++	                      	55 ac d5 a9 3b 96 ad a5 82 bc 11 68 ba f8 87 56 
++	Key material offset:	8
++	AF stripes:            	4000
++Key Slot 1: DISABLED
++Key Slot 2: DISABLED
++Key Slot 3: DISABLED
++Key Slot 4: DISABLED
++Key Slot 5: DISABLED
++Key Slot 6: DISABLED
++Key Slot 7: DISABLED
+diff --git a/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks2.txt b/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks2.txt
+new file mode 100644
+index 00000000..407261f4
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks2.txt
+@@ -0,0 +1,43 @@
++LUKS header information
++Version:       	2
++Epoch:         	3
++Metadata area: 	16384 [bytes]
++Keyslots area: 	16744448 [bytes]
++UUID:          	dfd8db30-2b65-4be9-8cae-65f5fac4a06f
++Label:         	(no label)
++Subsystem:     	(no subsystem)
++Flags:       	(no flags)
++
++Data segments:
++  0: crypt
++	offset: 16777216 [bytes]
++	length: (whole device)
++	cipher: aes-xts-plain64
++	sector: 512 [bytes]
++
++Keyslots:
++  0: luks2
++	Key:        512 bits
++	Priority:   normal
++	Cipher:     aes-xts-plain64
++	Cipher key: 512 bits
++	PBKDF:      argon2id
++	Time cost:  7
++	Memory:     1048576
++	Threads:    4
++	Salt:       1d d5 97 97 dd 45 e2 d7 2b a7 0b fa c4 7f b3 f4 
++	            ef 4e 5f 95 e0 ba fd 7a 7e 36 02 69 f8 44 96 d8 
++	AF stripes: 4000
++	AF hash:    sha256
++	Area offset:32768 [bytes]
++	Area length:258048 [bytes]
++	Digest ID:  0
++Tokens:
++Digests:
++  0: pbkdf2
++	Hash:       sha256
++	Iterations: 99750
++	Salt:       10 1d a1 21 8b 93 dc bb f1 ab 2b 1b 89 8e 3d c4 
++	            18 07 51 08 ef f5 95 da 9f 85 fa d7 de c9 c4 96 
++	Digest:     4f 27 4c 19 ae 72 b1 75 ef 53 c0 6d ff db 7f fe 
++	            f1 67 d0 c3 67 03 0c 14 3a 6f 6a 1a 87 a8 6f 32 
+diff --git a/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks2_tokens.txt b/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks2_tokens.txt
+new file mode 100644
+index 00000000..c2a7464c
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/tests/files/luksDump_nvme0n1p3_luks2_tokens.txt
+@@ -0,0 +1,119 @@
++LUKS header information
++Version:       	2
++Epoch:         	9
++Metadata area: 	16384 [bytes]
++Keyslots area: 	16744448 [bytes]
++UUID:          	6b929b85-b01e-4aa3-8ad2-a05decae6e3d
++Label:         	(no label)
++Subsystem:     	(no subsystem)
++Flags:       	(no flags)
++
++Data segments:
++  0: crypt
++	offset: 16777216 [bytes]
++	length: (whole device)
++	cipher: aes-xts-plain64
++	sector: 512 [bytes]
++
++Keyslots:
++  0: luks2
++	Key:        512 bits
++	Priority:   normal
++	Cipher:     aes-xts-plain64
++	Cipher key: 512 bits
++	PBKDF:      argon2id
++	Time cost:  7
++	Memory:     1048576
++	Threads:    4
++	Salt:       de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd 
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	AF stripes: 4000
++	AF hash:    sha256
++	Area offset:32768 [bytes]
++	Area length:258048 [bytes]
++	Digest ID:  0
++  1: luks2
++	Key:        512 bits
++	Priority:   normal
++	Cipher:     aes-xts-plain64
++	Cipher key: 512 bits
++	PBKDF:      pbkdf2
++	Hash:       sha256
++	Iterations: 1000
++	Salt:       de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd 
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	AF stripes: 4000
++	AF hash:    sha256
++	Area offset:290816 [bytes]
++	Area length:258048 [bytes]
++	Digest ID:  0
++  2: luks2
++	Key:        512 bits
++	Priority:   normal
++	Cipher:     aes-xts-plain64
++	Cipher key: 512 bits
++	PBKDF:      pbkdf2
++	Hash:       sha256
++	Iterations: 1000
++	Salt:       de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd 
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	AF stripes: 4000
++	AF hash:    sha256
++	Area offset:548864 [bytes]
++	Area length:258048 [bytes]
++	Digest ID:  0
++  3: luks2
++	Key:        512 bits
++	Priority:   normal
++	Cipher:     aes-xts-plain64
++	Cipher key: 512 bits
++	PBKDF:      pbkdf2
++	Hash:       sha512
++	Iterations: 1000
++	Salt:       de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd 
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	AF stripes: 4000
++	AF hash:    sha512
++	Area offset:806912 [bytes]
++	Area length:258048 [bytes]
++	Digest ID:  0
++Tokens:
++  0: clevis
++	Keyslot:    1
++  1: clevis
++	Keyslot:    2
++  2: systemd-tpm2
++	tpm2-hash-pcrs:   7
++	tpm2-pcr-bank:    sha256
++	tpm2-pubkey:
++	            (null)
++	tpm2-pubkey-pcrs: n/a
++	tpm2-primary-alg: ecc
++	tpm2-blob:        de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	tpm2-policy-hash:
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	tpm2-pin:         false
++	tpm2-salt:        false
++	Keyslot:    3
++Digests:
++  0: pbkdf2
++	Hash:       sha256
++	Iterations: 117448
++	Salt:       de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd 
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
++	Digest:     de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd 
++	            de a1 b9 7f 03 cb b4 89 e2 52 20 fc e4 24 65 cd
+diff --git a/repos/system_upgrade/common/actors/luksscanner/tests/test_luksdump_parser.py b/repos/system_upgrade/common/actors/luksscanner/tests/test_luksdump_parser.py
+new file mode 100644
+index 00000000..4b190149
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/tests/test_luksdump_parser.py
+@@ -0,0 +1,147 @@
++import os
++
++from leapp.libraries.actor.luksdump_parser import LuksDumpParser
++from leapp.snactor.fixture import current_actor_context
++
++CUR_DIR = os.path.dirname(os.path.abspath(__file__))
++
++
++def test_luksdump_parser_luks1(current_actor_context):
++    f = open(os.path.join(CUR_DIR, 'files/luksDump_nvme0n1p3_luks1.txt'))
++    parsed_dict = LuksDumpParser.parse(f.readlines())
++
++    assert parsed_dict["Version"] == "1"
++    assert parsed_dict["Cipher name"] == "aes"
++    assert parsed_dict["Cipher mode"] == "xts-plain64"
++    assert parsed_dict["Hash spec"] == "sha256"
++    assert parsed_dict["Payload offset"] == "4096"
++    assert parsed_dict["MK bits"] == "512"
++    assert parsed_dict["MK digest"].replace(" ", "") == "fbec6b31aee449033ead432202cfa878ad3cd2a8"
++    assert parsed_dict["MK salt"].replace(" ", "") == "17574e2fed0b5c62d5de54f57fab6068"\
++                                                      "71d87206646c810539553f553256d9da"
++    assert parsed_dict["MK iterations"] == "114573"
++    assert parsed_dict["UUID"] == "90242257-d00a-4019-aba6-03083f89404b"
++
++    assert parsed_dict["Key Slot 0"]["enabled"]
++    assert parsed_dict["Key Slot 0"]["Iterations"] == "1879168"
++    assert parsed_dict["Key Slot 0"]["Salt"].replace(" ", "") == "fc774872bd31ca8323805a5eb95bdebb" \
++                                                                 "55acd5a93b96ada582bc1168baf88756"
++    assert parsed_dict["Key Slot 0"]["Key material offset"] == "8"
++    assert parsed_dict["Key Slot 0"]["AF stripes"] == "4000"
++
++    assert not parsed_dict["Key Slot 1"]["enabled"]
++    assert not parsed_dict["Key Slot 2"]["enabled"]
++    assert not parsed_dict["Key Slot 3"]["enabled"]
++    assert not parsed_dict["Key Slot 4"]["enabled"]
++    assert not parsed_dict["Key Slot 5"]["enabled"]
++    assert not parsed_dict["Key Slot 6"]["enabled"]
++    assert not parsed_dict["Key Slot 7"]["enabled"]
++
++
++def test_luksdump_parser_luks2_tokens(current_actor_context):
++    f = open(os.path.join(CUR_DIR, 'files/luksDump_nvme0n1p3_luks2_tokens.txt'))
++    parsed_dict = LuksDumpParser.parse(f.readlines())
++
++    assert parsed_dict["Version"] == "2"
++    assert parsed_dict["Epoch"] == "9"
++    assert parsed_dict["Metadata area"] == "16384 [bytes]"
++    assert parsed_dict["Keyslots area"] == "16744448 [bytes]"
++    assert parsed_dict["UUID"] == "6b929b85-b01e-4aa3-8ad2-a05decae6e3d"
++    assert parsed_dict["Label"] == "(no label)"
++    assert parsed_dict["Subsystem"] == "(no subsystem)"
++    assert parsed_dict["Flags"] == "(no flags)"
++
++    assert len(parsed_dict["Data segments"]) == 1
++    assert parsed_dict["Data segments"]["0"]["type"] == "crypt"
++    assert parsed_dict["Data segments"]["0"]["offset"] == "16777216 [bytes]"
++    assert parsed_dict["Data segments"]["0"]["length"] == "(whole device)"
++    assert parsed_dict["Data segments"]["0"]["cipher"] == "aes-xts-plain64"
++    assert parsed_dict["Data segments"]["0"]["sector"] == "512 [bytes]"
++
++    assert len(parsed_dict["Keyslots"]) == 4
++    assert parsed_dict["Keyslots"]["0"]["type"] == "luks2"
++    assert parsed_dict["Keyslots"]["0"]["Key"] == "512 bits"
++    assert parsed_dict["Keyslots"]["0"]["Priority"] == "normal"
++    assert parsed_dict["Keyslots"]["0"]["Cipher"] == "aes-xts-plain64"
++    assert parsed_dict["Keyslots"]["0"]["Cipher key"] == "512 bits"
++    assert parsed_dict["Keyslots"]["0"]["PBKDF"] == "argon2id"
++    assert parsed_dict["Keyslots"]["0"]["Time cost"] == "7"
++    assert parsed_dict["Keyslots"]["0"]["Memory"] == "1048576"
++    assert parsed_dict["Keyslots"]["0"]["Threads"] == "4"
++    assert parsed_dict["Keyslots"]["0"]["Salt"].replace(" ", "") == 2*"dea1b97f03cbb489e25220fce42465cd"
++    assert parsed_dict["Keyslots"]["0"]["AF stripes"] == "4000"
++    assert parsed_dict["Keyslots"]["0"]["AF hash"] == "sha256"
++    assert parsed_dict["Keyslots"]["0"]["Area offset"] == "32768 [bytes]"
++    assert parsed_dict["Keyslots"]["0"]["Area length"] == "258048 [bytes]"
++    assert parsed_dict["Keyslots"]["0"]["Digest ID"] == "0"
++
++    assert parsed_dict["Keyslots"]["1"]["type"] == "luks2"
++    assert parsed_dict["Keyslots"]["1"]["Key"] == "512 bits"
++    assert parsed_dict["Keyslots"]["1"]["Priority"] == "normal"
++    assert parsed_dict["Keyslots"]["1"]["Cipher"] == "aes-xts-plain64"
++    assert parsed_dict["Keyslots"]["1"]["Cipher key"] == "512 bits"
++    assert parsed_dict["Keyslots"]["1"]["PBKDF"] == "pbkdf2"
++    assert parsed_dict["Keyslots"]["1"]["Hash"] == "sha256"
++    assert parsed_dict["Keyslots"]["1"]["Iterations"] == "1000"
++    assert parsed_dict["Keyslots"]["1"]["Salt"].replace(" ", "") == 2*"dea1b97f03cbb489e25220fce42465cd"
++    assert parsed_dict["Keyslots"]["1"]["AF stripes"] == "4000"
++    assert parsed_dict["Keyslots"]["1"]["AF hash"] == "sha256"
++    assert parsed_dict["Keyslots"]["1"]["Area offset"] == "290816 [bytes]"
++    assert parsed_dict["Keyslots"]["1"]["Area length"] == "258048 [bytes]"
++    assert parsed_dict["Keyslots"]["1"]["Digest ID"] == "0"
++
++    assert parsed_dict["Keyslots"]["2"]["type"] == "luks2"
++    assert parsed_dict["Keyslots"]["2"]["Key"] == "512 bits"
++    assert parsed_dict["Keyslots"]["2"]["Priority"] == "normal"
++    assert parsed_dict["Keyslots"]["2"]["Cipher"] == "aes-xts-plain64"
++    assert parsed_dict["Keyslots"]["2"]["Cipher key"] == "512 bits"
++    assert parsed_dict["Keyslots"]["2"]["PBKDF"] == "pbkdf2"
++    assert parsed_dict["Keyslots"]["2"]["Hash"] == "sha256"
++    assert parsed_dict["Keyslots"]["2"]["Iterations"] == "1000"
++    assert parsed_dict["Keyslots"]["2"]["Salt"].replace(" ", "") == 2*"dea1b97f03cbb489e25220fce42465cd"
++    assert parsed_dict["Keyslots"]["2"]["AF stripes"] == "4000"
++    assert parsed_dict["Keyslots"]["2"]["AF hash"] == "sha256"
++    assert parsed_dict["Keyslots"]["2"]["Area offset"] == "548864 [bytes]"
++    assert parsed_dict["Keyslots"]["2"]["Area length"] == "258048 [bytes]"
++    assert parsed_dict["Keyslots"]["2"]["Digest ID"] == "0"
++
++    assert parsed_dict["Keyslots"]["3"]["type"] == "luks2"
++    assert parsed_dict["Keyslots"]["3"]["Key"] == "512 bits"
++    assert parsed_dict["Keyslots"]["3"]["Priority"] == "normal"
++    assert parsed_dict["Keyslots"]["3"]["Cipher"] == "aes-xts-plain64"
++    assert parsed_dict["Keyslots"]["3"]["Cipher key"] == "512 bits"
++    assert parsed_dict["Keyslots"]["3"]["PBKDF"] == "pbkdf2"
++    assert parsed_dict["Keyslots"]["3"]["Hash"] == "sha512"
++    assert parsed_dict["Keyslots"]["3"]["Iterations"] == "1000"
++    assert parsed_dict["Keyslots"]["3"]["Salt"].replace(" ", "") == 2*"dea1b97f03cbb489e25220fce42465cd"
++    assert parsed_dict["Keyslots"]["3"]["AF stripes"] == "4000"
++    assert parsed_dict["Keyslots"]["3"]["AF hash"] == "sha512"
++    assert parsed_dict["Keyslots"]["3"]["Area offset"] == "806912 [bytes]"
++    assert parsed_dict["Keyslots"]["3"]["Area length"] == "258048 [bytes]"
++    assert parsed_dict["Keyslots"]["3"]["Digest ID"] == "0"
++
++    assert len(parsed_dict["Tokens"]) == 3
++    assert parsed_dict["Tokens"]["0"]["type"] == "clevis"
++    assert parsed_dict["Tokens"]["0"]["Keyslot"] == "1"
++
++    assert parsed_dict["Tokens"]["1"]["type"] == "clevis"
++    assert parsed_dict["Tokens"]["1"]["Keyslot"] == "2"
++
++    assert parsed_dict["Tokens"]["2"]["type"] == "systemd-tpm2"
++    assert parsed_dict["Tokens"]["2"]["Keyslot"] == "3"
++    assert parsed_dict["Tokens"]["2"]["tpm2-hash-pcrs"] == "7"
++    assert parsed_dict["Tokens"]["2"]["tpm2-pcr-bank"] == "sha256"
++    assert parsed_dict["Tokens"]["2"]["tpm2-pubkey"] == "(null)"
++    assert parsed_dict["Tokens"]["2"]["tpm2-pubkey-pcrs"] == "n/a"
++    assert parsed_dict["Tokens"]["2"]["tpm2-primary-alg"] == "ecc"
++    assert parsed_dict["Tokens"]["2"]["tpm2-blob"].replace(" ", "") == 14*"dea1b97f03cbb489e25220fce42465cd"
++    assert parsed_dict["Tokens"]["2"]["tpm2-policy-hash"].replace(" ", "") == 2*"dea1b97f03cbb489e25220fce42465cd"
++    assert parsed_dict["Tokens"]["2"]["tpm2-pin"] == "false"
++    assert parsed_dict["Tokens"]["2"]["tpm2-salt"] == "false"
++
++    assert len(parsed_dict["Digests"]) == 1
++    assert parsed_dict["Digests"]["0"]["type"] == "pbkdf2"
++    assert parsed_dict["Digests"]["0"]["Hash"] == "sha256"
++    assert parsed_dict["Digests"]["0"]["Iterations"] == "117448"
++    assert parsed_dict["Digests"]["0"]["Salt"].replace(" ", "") == 2*"dea1b97f03cbb489e25220fce42465cd"
++    assert parsed_dict["Digests"]["0"]["Digest"].replace(" ", "") == 2*"dea1b97f03cbb489e25220fce42465cd"
+diff --git a/repos/system_upgrade/common/actors/luksscanner/tests/test_luksscaner.py b/repos/system_upgrade/common/actors/luksscanner/tests/test_luksscaner.py
+new file mode 100644
+index 00000000..22eb0946
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/luksscanner/tests/test_luksscaner.py
+@@ -0,0 +1,142 @@
++import os
++
++import pytest
++
++from leapp.libraries.stdlib import api
++from leapp.models import LsblkEntry, LuksDumps, StorageInfo
++from leapp.snactor.fixture import current_actor_context
++
++CUR_DIR = os.path.dirname(os.path.abspath(__file__))
++
++TOKENS_ASSERT = {
++        0: {
++            "keyslot": 1,
++            "token_type": "clevis-tpm2"
++        },
++        1: {
++            "keyslot": 2,
++            "token_type": "clevis-tang"
++        },
++        2: {
++            "keyslot": 3,
++            "token_type": "systemd-tpm2"
++        },
++}
++
++CLEVIS_KEYSLOTS = {
++    1: 'tpm2 \'{"hash":"sha256","key":"rsa","pcr_bank":"sha256","pcr_ids":"0,1,7"}\'',
++    2: 'tang \'{"url":"http://localhost"}\''
++}
++
++
++class MockedRun(object):
++    """Simple mock class for leapp.libraries.stdlib.run."""
++
++    def __init__(self, variant, clevis_keyslots):
++        """if exc_type provided, then it will be raised on
++        instance call.
++
++        :type exc_type: None or BaseException
++        """
++        self.logger = api.current_logger()
++
++        self.commands = []
++        self.variant = variant
++        self.clevis_keyslots = clevis_keyslots
++
++    def __call__(self, cmd, *args, **kwargs):
++        self.commands.append(cmd)
++
++        if len(cmd) == 3 and cmd[:2] == ['cryptsetup', 'luksDump']:
++            dev_path = cmd[2]
++
++            # We cannot have the output in a list, since the command is called per device. Therefore, we have to map
++            # each device path to its output.
++            output_files_per_device = {
++                '/dev/nvme0n1p3': 'luksDump_nvme0n1p3{}.txt'.format(("_" + self.variant) if self.variant else "")
++            }
++
++            if dev_path not in output_files_per_device:
++                raise ValueError(
++                        'Attempting to call "cryptsetup luksDump" on an unexpected device: {}'.format(dev_path)
++                )
++            with open(os.path.join(CUR_DIR, 'files/{}'.format(output_files_per_device[dev_path]))) as f:
++                return {"stdout": f.read()}
++        elif len(cmd) >= 3 and cmd[:3] == ['clevis', 'luks', 'list']:
++            dev_path = None
++            keyslot = None
++
++            device_flag = False
++            keyslot_flag = False
++            for element in cmd:
++                if device_flag:
++                    dev_path = element
++                elif keyslot_flag:
++                    keyslot = element
++
++                device_flag = element == "-d"
++                keyslot_flag = element == "-s"
++
++            if dev_path is None or keyslot is None:
++                raise ValueError('Attempting to call "clevis luks list" without specifying keyslot or device')
++            if dev_path is None or keyslot is None or dev_path != "/dev/nvme0n1p3":
++                raise ValueError('Attempting to call "clevis luks list" on invalid device')
++
++            keyslot = int(keyslot)
++
++            if keyslot in self.clevis_keyslots:
++                return {"stdout": "{}: {}".format(keyslot, self.clevis_keyslots[keyslot])}
++
++        return {}
++
++
++@pytest.mark.parametrize(
++    ("variant", "luks_version", "uuid", "tokens_assert"),
++    [
++        ('luks1', 1, '90242257-d00a-4019-aba6-03083f89404b', {}),
++        ('luks2', 2, 'dfd8db30-2b65-4be9-8cae-65f5fac4a06f', {}),
++        ('luks2_tokens', 2, '6b929b85-b01e-4aa3-8ad2-a05decae6e3d', TOKENS_ASSERT),
++    ]
++)
++def test_actor_with_luks(monkeypatch, current_actor_context, variant, luks_version, uuid, tokens_assert):
++    mocked_run = MockedRun(variant, CLEVIS_KEYSLOTS)
++    monkeypatch.setattr('leapp.libraries.stdlib.run', mocked_run)
++
++    with_luks = [
++        LsblkEntry(
++            name='/dev/nvme0n1', kname='/dev/nvme0n1', maj_min='259:0', rm='0', size='10G', bsize=10*(1 << 39),
++            ro='0', tp='disk', parent_name='', parent_path='', mountpoint=''
++        ),
++        LsblkEntry(
++            name='/dev/nvme0n1p3', kname='/dev/nvme0n1p3', maj_min='259:3', rm='0', size='10G', bsize=10*(1 << 39),
++            ro='0', tp='part', parent_name='nvme0n1', parent_path='/dev/nvme0n1', mountpoint=''
++        ),
++        LsblkEntry(
++            name='/dev/mapper/tst1', kname='/dev/dm-0', maj_min='253:0', rm='0', size='9G', bsize=9*(1 << 39), ro='0',
++            tp='crypt', parent_name='nvme0n1p3', parent_path='/dev/nvme0n1p3', mountpoint=''
++        ),
++        # PKNAME is not set, so this crypt device will be ignored
++        LsblkEntry(
++            name='/dev/mapper/tst2', kname='/dev/dm-1', maj_min='253:0', rm='0', size='9G', bsize=9*(1 << 39), ro='0',
++            tp='crypt', parent_name='', parent_path='', mountpoint=''
++        )
++    ]
++
++    current_actor_context.feed(StorageInfo(lsblk=with_luks))
++    current_actor_context.run()
++
++    luks_dumps = current_actor_context.consume(LuksDumps)
++    assert len(luks_dumps) == 1
++    assert len(luks_dumps[0].dumps) == 1
++    luks_dump = luks_dumps[0].dumps[0]
++
++    assert luks_dump.version == luks_version
++    assert luks_dump.uuid == uuid
++    assert luks_dump.device_name == "nvme0n1p3"
++    assert luks_dump.device_path == "/dev/nvme0n1p3"
++    assert len(luks_dump.tokens) == len(tokens_assert)
++
++    for token in luks_dump.tokens:
++        assert token.token_id in tokens_assert
++        assert token.keyslot == tokens_assert[token.token_id]["keyslot"]
++        assert token.token_type == tokens_assert[token.token_id]["token_type"]
+diff --git a/repos/system_upgrade/common/models/luksdump.py b/repos/system_upgrade/common/models/luksdump.py
+new file mode 100644
+index 00000000..83b56ef8
+--- /dev/null
++++ b/repos/system_upgrade/common/models/luksdump.py
+@@ -0,0 +1,73 @@
++from leapp.models import fields, Model
++from leapp.topics import SystemInfoTopic
++
++
++class LuksToken(Model):
++    """
++    Represents a single token associated with the LUKS device.
++
++    Note this model is supposed to be used just as part of the LuksDump msg.
++    """
++    topic = SystemInfoTopic
++
++    token_id = fields.Integer()
++    """
++    Token ID (as seen in the luksDump)
++    """
++
++    keyslot = fields.Integer()
++    """
++    ID of the associated keyslot
++    """
++
++    token_type = fields.String()
++    """
++    Type of the token. For "clevis" type the concrete subtype (determined using
++    clevis luks list) is appended e.g. clevis-tpm2. clevis-tang, ...
++    """
++
++
++class LuksDump(Model):
++    """
++    Information about a single LUKS-encrypted device.
++
++    Note this model is supposed to be used as a part of LuksDumps msg.
++    """
++    topic = SystemInfoTopic
++
++    version = fields.Integer()
++    """
++    LUKS version
++    """
++
++    uuid = fields.String()
++    """
++    UUID of the LUKS device
++    """
++
++    device_path = fields.String()
++    """
++    Full path to the backing device
++    """
++
++    device_name = fields.String()
++    """
++    Device name of the backing device
++    """
++
++    tokens = fields.List(fields.Model(LuksToken), default=[])
++    """
++    List of LUKS2 tokens
++    """
++
++
++class LuksDumps(Model):
++    """
++    Information about all LUKS-encrypted devices on the system.
++    """
++    topic = SystemInfoTopic
++
++    dumps = fields.List(fields.Model(LuksDump))
++    """
++    List of LuksDump representing all the encrypted devices on the system.
++    """
+-- 
+2.47.0
+
diff --git a/SOURCES/0020-InhibitWhenLuks-allow-upgrades-for-LUKS2-bound-to-Cl.patch b/SOURCES/0020-InhibitWhenLuks-allow-upgrades-for-LUKS2-bound-to-Cl.patch
new file mode 100644
index 0000000..ea860ca
--- /dev/null
+++ b/SOURCES/0020-InhibitWhenLuks-allow-upgrades-for-LUKS2-bound-to-Cl.patch
@@ -0,0 +1,455 @@
+From ad241f701b39a81d132105f1a301f2f5546f498a Mon Sep 17 00:00:00 2001
+From: Daniel Zatovic <daniel.zatovic@gmail.com>
+Date: Tue, 6 Aug 2024 17:26:58 +0200
+Subject: [PATCH 20/40] InhibitWhenLuks: allow upgrades for LUKS2 bound to
+ Clevis TPM2 token
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+So far, upgrades with encrypted drives were not supported. Encrypted
+drives require interactively typing unlock passphrases, which is not
+suitable for automatic upgrades using Leapp. We add a feature, where
+systems with all drives configured with automatic unlock method can be
+upgraded.
+
+Currently, we only support drives configured with Clevis/TPM2 token,
+because networking is not configured during Leapp upgrade (excluding
+NBDE).
+
+We consume LuksDumps message to decide whether the upgrade process
+should be inhibited. If there is at least one LUKS2 device without
+Clevis TPM2 binding, we inhibit the upgrade because we cannot tell if
+the device is not a part of a more complex storage stack and the failure
+to unlock the device migt cause boot problem.
+
+Co-authored-by: Petr Stodůlka <pstodulk@redhat.com>
+---
+ .../common/actors/inhibitwhenluks/actor.py    |  38 ++--
+ .../libraries/inhibitwhenluks.py              | 164 +++++++++++++++++
+ .../tests/test_inhibitwhenluks.py             | 169 ++++++++++++++++--
+ 3 files changed, 329 insertions(+), 42 deletions(-)
+ create mode 100644 repos/system_upgrade/common/actors/inhibitwhenluks/libraries/inhibitwhenluks.py
+
+diff --git a/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py b/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py
+index 40b845b0..65607167 100644
+--- a/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py
++++ b/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py
+@@ -1,40 +1,24 @@
+-from leapp import reporting
+ from leapp.actors import Actor
+-from leapp.models import CephInfo, StorageInfo
+-from leapp.reporting import create_report, Report
++from leapp.libraries.actor.inhibitwhenluks import check_invalid_luks_devices
++from leapp.models import CephInfo, LuksDumps, StorageInfo, TargetUserSpaceUpgradeTasks, UpgradeInitramfsTasks
++from leapp.reporting import Report
+ from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
+ 
+ 
+ class InhibitWhenLuks(Actor):
+     """
+-    Check if any encrypted partitions is in use. If yes, inhibit the upgrade process.
++    Check if any encrypted partitions are in use and whether they are supported for the upgrade.
+ 
+-    Upgrading system with encrypted partition is not supported.
++    Upgrading EL7 system with encrypted partition is not supported (but ceph OSDs).
++    For EL8+ it's ok if the discovered used encrypted storage has LUKS2 format
++    and it's bounded to clevis-tpm2 token (so it can be automatically unlocked
++    during the process).
+     """
+ 
+     name = 'check_luks_and_inhibit'
+-    consumes = (StorageInfo, CephInfo)
+-    produces = (Report,)
++    consumes = (CephInfo, LuksDumps, StorageInfo)
++    produces = (Report, TargetUserSpaceUpgradeTasks, UpgradeInitramfsTasks)
+     tags = (ChecksPhaseTag, IPUWorkflowTag)
+ 
+     def process(self):
+-        # If encrypted Ceph volumes present, check if there are more encrypted disk in lsblk than Ceph vol
+-        ceph_vol = []
+-        try:
+-            ceph_info = next(self.consume(CephInfo))
+-            if ceph_info:
+-                ceph_vol = ceph_info.encrypted_volumes[:]
+-        except StopIteration:
+-            pass
+-
+-        for storage_info in self.consume(StorageInfo):
+-            for blk in storage_info.lsblk:
+-                if blk.tp == 'crypt' and blk.name not in ceph_vol:
+-                    create_report([
+-                        reporting.Title('LUKS encrypted partition detected'),
+-                        reporting.Summary('Upgrading system with encrypted partitions is not supported'),
+-                        reporting.Severity(reporting.Severity.HIGH),
+-                        reporting.Groups([reporting.Groups.BOOT, reporting.Groups.ENCRYPTION]),
+-                        reporting.Groups([reporting.Groups.INHIBITOR]),
+-                    ])
+-                    break
++        check_invalid_luks_devices()
+diff --git a/repos/system_upgrade/common/actors/inhibitwhenluks/libraries/inhibitwhenluks.py b/repos/system_upgrade/common/actors/inhibitwhenluks/libraries/inhibitwhenluks.py
+new file mode 100644
+index 00000000..57a94e9d
+--- /dev/null
++++ b/repos/system_upgrade/common/actors/inhibitwhenluks/libraries/inhibitwhenluks.py
+@@ -0,0 +1,164 @@
++from leapp import reporting
++from leapp.libraries.common.config.version import get_source_major_version
++from leapp.libraries.stdlib import api
++from leapp.models import (
++    CephInfo,
++    DracutModule,
++    LuksDumps,
++    StorageInfo,
++    TargetUserSpaceUpgradeTasks,
++    UpgradeInitramfsTasks
++)
++from leapp.reporting import create_report
++
++# https://red.ht/clevis-tpm2-luks-auto-unlock-rhel8
++# https://red.ht/clevis-tpm2-luks-auto-unlock-rhel9
++# https://red.ht/convert-to-luks2-rhel8
++# https://red.ht/convert-to-luks2-rhel9
++CLEVIS_DOC_URL_FMT = 'https://red.ht/clevis-tpm2-luks-auto-unlock-rhel{}'
++LUKS2_CONVERT_DOC_URL_FMT = 'https://red.ht/convert-to-luks2-rhel{}'
++
++FMT_LIST_SEPARATOR = '\n    - '
++
++
++def _formatted_list_output(input_list, sep=FMT_LIST_SEPARATOR):
++    return ['{}{}'.format(sep, item) for item in input_list]
++
++
++def _at_least_one_tpm_token(luks_dump):
++    return any([token.token_type == "clevis-tpm2" for token in luks_dump.tokens])
++
++
++def _get_ceph_volumes():
++    ceph_info = next(api.consume(CephInfo), None)
++    return ceph_info.encrypted_volumes[:] if ceph_info else []
++
++
++def apply_obsoleted_check_ipu_7_8():
++    ceph_vol = _get_ceph_volumes()
++    for storage_info in api.consume(StorageInfo):
++        for blk in storage_info.lsblk:
++            if blk.tp == 'crypt' and blk.name not in ceph_vol:
++                create_report([
++                    reporting.Title('LUKS encrypted partition detected'),
++                    reporting.Summary('Upgrading system with encrypted partitions is not supported'),
++                    reporting.Severity(reporting.Severity.HIGH),
++                    reporting.Groups([reporting.Groups.BOOT, reporting.Groups.ENCRYPTION]),
++                    reporting.Groups([reporting.Groups.INHIBITOR]),
++                ])
++                break
++
++
++def report_inhibitor(luks1_partitions, no_tpm2_partitions):
++    source_major_version = get_source_major_version()
++    clevis_doc_url = CLEVIS_DOC_URL_FMT.format(source_major_version)
++    luks2_convert_doc_url = LUKS2_CONVERT_DOC_URL_FMT.format(source_major_version)
++    summary = (
++        'We have detected LUKS encrypted volumes that do not meet current'
++        ' criteria to be able to proceed the in-place upgrade process.'
++        ' Right now the upgrade process requires for encrypted storage to be'
++        ' in LUKS2 format configured with Clevis TPM 2.0.'
++    )
++
++    report_hints = []
++
++    if luks1_partitions:
++
++        summary += (
++            '\n\nSince RHEL 8 the default format for LUKS encryption is LUKS2.'
++            ' Despite the old LUKS1 format is still supported on RHEL systems'
++            ' it has some limitations in comparison to LUKS2.'
++            ' Only the LUKS2 format is supported for upgrades.'
++            ' The following LUKS1 partitions have been discovered on your system:{}'
++            .format(''.join(_formatted_list_output(luks1_partitions)))
++        )
++        report_hints.append(reporting.Remediation(
++            hint=(
++                'Convert your LUKS1 encrypted devices to LUKS2 and bind it to TPM2 using clevis.'
++                ' If this is not possible in your case consider clean installation'
++                ' of the target RHEL system instead.'
++            )
++        ))
++        report_hints.append(reporting.ExternalLink(
++            url=luks2_convert_doc_url,
++            title='LUKS versions in RHEL: Conversion'
++        ))
++
++    if no_tpm2_partitions:
++        summary += (
++            '\n\nCurrently we require the process to be non-interactive and'
++            ' offline. For this reason we require automatic unlock of'
++            ' encrypted devices during the upgrade process.'
++            ' Currently we support automatic unlocking during the upgrade only'
++            ' for volumes bound to Clevis TPM2 token.'
++            ' The following LUKS2 devices without Clevis TPM2 token '
++            ' have been discovered on your system: {}'
++            .format(''.join(_formatted_list_output(no_tpm2_partitions)))
++        )
++
++        report_hints.append(reporting.Remediation(
++            hint=(
++                'Add Clevis TPM2 binding to LUKS devices.'
++                ' If some LUKS devices use still the old LUKS1 format, convert'
++                ' them to LUKS2 prior to binding.'
++            )
++        ))
++        report_hints.append(reporting.ExternalLink(
++                url=clevis_doc_url,
++                title='Configuring manual enrollment of LUKS-encrypted volumes by using a TPM 2.0 policy'
++            )
++        )
++    create_report([
++        reporting.Title('Detected LUKS devices unsuitable for in-place upgrade.'),
++        reporting.Summary(summary),
++        reporting.Severity(reporting.Severity.HIGH),
++        reporting.Groups([reporting.Groups.BOOT, reporting.Groups.ENCRYPTION]),
++        reporting.Groups([reporting.Groups.INHIBITOR]),
++    ] + report_hints)
++
++
++def check_invalid_luks_devices():
++    if get_source_major_version() == '7':
++        # NOTE: keeping unchanged behaviour for IPU 7 -> 8
++        apply_obsoleted_check_ipu_7_8()
++        return
++
++    luks_dumps = next(api.consume(LuksDumps), None)
++    if not luks_dumps:
++        api.current_logger().debug('No LUKS volumes detected. Skipping.')
++        return
++
++    luks1_partitions = []
++    no_tpm2_partitions = []
++    ceph_vol = _get_ceph_volumes()
++    for luks_dump in luks_dumps.dumps:
++        # if the device is managed by ceph, don't inhibit
++        if luks_dump.device_name in ceph_vol:
++            api.current_logger().debug('Skipping LUKS CEPH volume: {}'.format(luks_dump.device_name))
++            continue
++
++        if luks_dump.version == 1:
++            luks1_partitions.append(luks_dump.device_name)
++        elif luks_dump.version == 2 and not _at_least_one_tpm_token(luks_dump):
++            no_tpm2_partitions.append(luks_dump.device_name)
++
++        if luks1_partitions or no_tpm2_partitions:
++            report_inhibitor(luks1_partitions, no_tpm2_partitions)
++        else:
++            required_crypt_rpms = [
++                'clevis',
++                'clevis-dracut',
++                'clevis-systemd',
++                'clevis-udisks2',
++                'clevis-luks',
++                'cryptsetup',
++                'tpm2-tss',
++                'tpm2-tools',
++                'tpm2-abrmd'
++            ]
++            api.produce(TargetUserSpaceUpgradeTasks(install_rpms=required_crypt_rpms))
++            api.produce(UpgradeInitramfsTasks(include_dracut_modules=[
++                    DracutModule(name='clevis'),
++                    DracutModule(name='clevis-pin-tpm2')
++                ])
++            )
+diff --git a/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py b/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py
+index 405a3429..d559b54c 100644
+--- a/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py
++++ b/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py
+@@ -1,34 +1,173 @@
+-from leapp.models import CephInfo, LsblkEntry, StorageInfo
++"""
++Unit tests for inhibitwhenluks actor
++
++Skip isort as it's kind of broken when mixing grid import and one line imports
++
++isort:skip_file
++"""
++
++from leapp.libraries.common.config import version
++from leapp.models import (
++    CephInfo,
++    LsblkEntry,
++    LuksDump,
++    LuksDumps,
++    LuksToken,
++    StorageInfo,
++    TargetUserSpaceUpgradeTasks,
++    UpgradeInitramfsTasks
++)
+ from leapp.reporting import Report
+ from leapp.snactor.fixture import current_actor_context
+ from leapp.utils.report import is_inhibitor
+ 
++_REPORT_TITLE_UNSUITABLE = 'Detected LUKS devices unsuitable for in-place upgrade.'
+ 
+-def test_actor_with_luks(current_actor_context):
+-    with_luks = [LsblkEntry(name='luks-132', kname='kname1', maj_min='253:0', rm='0', size='10G', bsize=10*(1 << 39),
+-                            ro='0', tp='crypt', mountpoint='', parent_name='', parent_path='')]
+ 
+-    current_actor_context.feed(StorageInfo(lsblk=with_luks))
++def test_actor_with_luks1_notpm(monkeypatch, current_actor_context):
++    monkeypatch.setattr(version, 'get_source_major_version', lambda: '8')
++    luks_dump = LuksDump(
++        version=1,
++        uuid='dd09e6d4-b595-4f1c-80b8-fd47540e6464',
++        device_path='/dev/sda',
++        device_name='sda')
++    current_actor_context.feed(LuksDumps(dumps=[luks_dump]))
++    current_actor_context.feed(CephInfo(encrypted_volumes=[]))
+     current_actor_context.run()
+     assert current_actor_context.consume(Report)
+     report_fields = current_actor_context.consume(Report)[0].report
+     assert is_inhibitor(report_fields)
++    assert not current_actor_context.consume(TargetUserSpaceUpgradeTasks)
++    assert not current_actor_context.consume(UpgradeInitramfsTasks)
+ 
++    assert report_fields['title'] == _REPORT_TITLE_UNSUITABLE
++    assert 'LUKS1 partitions have been discovered' in report_fields['summary']
++    assert luks_dump.device_name in report_fields['summary']
+ 
+-def test_actor_with_luks_ceph_only(current_actor_context):
+-    with_luks = [LsblkEntry(name='luks-132', kname='kname1', maj_min='253:0', rm='0', size='10G', bsize=10*(1 << 39),
+-                            ro='0', tp='crypt', mountpoint='', parent_name='', parent_path='')]
+-    ceph_volume = ['luks-132']
+-    current_actor_context.feed(StorageInfo(lsblk=with_luks))
+-    current_actor_context.feed(CephInfo(encrypted_volumes=ceph_volume))
++
++def test_actor_with_luks2_notpm(monkeypatch, current_actor_context):
++    monkeypatch.setattr(version, 'get_source_major_version', lambda: '8')
++    luks_dump = LuksDump(
++        version=2,
++        uuid='27b57c75-9adf-4744-ab04-9eb99726a301',
++        device_path='/dev/sda',
++        device_name='sda')
++    current_actor_context.feed(LuksDumps(dumps=[luks_dump]))
++    current_actor_context.feed(CephInfo(encrypted_volumes=[]))
++    current_actor_context.run()
++    assert current_actor_context.consume(Report)
++    report_fields = current_actor_context.consume(Report)[0].report
++    assert is_inhibitor(report_fields)
++    assert not current_actor_context.consume(TargetUserSpaceUpgradeTasks)
++    assert not current_actor_context.consume(UpgradeInitramfsTasks)
++
++    assert report_fields['title'] == _REPORT_TITLE_UNSUITABLE
++    assert 'LUKS2 devices without Clevis TPM2 token' in report_fields['summary']
++    assert luks_dump.device_name in report_fields['summary']
++
++
++def test_actor_with_luks2_invalid_token(monkeypatch, current_actor_context):
++    monkeypatch.setattr(version, 'get_source_major_version', lambda: '8')
++    luks_dump = LuksDump(
++        version=2,
++        uuid='dc1dbe37-6644-4094-9839-8fc5dcbec0c6',
++        device_path='/dev/sda',
++        device_name='sda',
++        tokens=[LuksToken(token_id=0, keyslot=1, token_type='clevis')])
++    current_actor_context.feed(LuksDumps(dumps=[luks_dump]))
++    current_actor_context.feed(CephInfo(encrypted_volumes=[]))
++    current_actor_context.run()
++    assert current_actor_context.consume(Report)
++    report_fields = current_actor_context.consume(Report)[0].report
++    assert is_inhibitor(report_fields)
++
++    assert report_fields['title'] == _REPORT_TITLE_UNSUITABLE
++    assert 'LUKS2 devices without Clevis TPM2 token' in report_fields['summary']
++    assert luks_dump.device_name in report_fields['summary']
++    assert not current_actor_context.consume(TargetUserSpaceUpgradeTasks)
++    assert not current_actor_context.consume(UpgradeInitramfsTasks)
++
++
++def test_actor_with_luks2_clevis_tpm_token(monkeypatch, current_actor_context):
++    monkeypatch.setattr(version, 'get_source_major_version', lambda: '8')
++    luks_dump = LuksDump(
++        version=2,
++        uuid='83050bd9-61c6-4ff0-846f-bfd3ac9bfc67',
++        device_path='/dev/sda',
++        device_name='sda',
++        tokens=[LuksToken(token_id=0, keyslot=1, token_type='clevis-tpm2')])
++    current_actor_context.feed(LuksDumps(dumps=[luks_dump]))
++    current_actor_context.feed(CephInfo(encrypted_volumes=[]))
+     current_actor_context.run()
+     assert not current_actor_context.consume(Report)
+ 
++    upgrade_tasks = current_actor_context.consume(TargetUserSpaceUpgradeTasks)
++    assert len(upgrade_tasks) == 1
++    assert set(upgrade_tasks[0].install_rpms) == set([
++                'clevis',
++                'clevis-dracut',
++                'clevis-systemd',
++                'clevis-udisks2',
++                'clevis-luks',
++                'cryptsetup',
++                'tpm2-tss',
++                'tpm2-tools',
++                'tpm2-abrmd'
++            ])
++    assert current_actor_context.consume(UpgradeInitramfsTasks)
+ 
+-def test_actor_without_luks(current_actor_context):
+-    without_luks = [LsblkEntry(name='sda1', kname='sda1', maj_min='8:0', rm='0', size='10G', bsize=10*(1 << 39),
+-                               ro='0', tp='part', mountpoint='/boot', parent_name='', parent_path='')]
+ 
+-    current_actor_context.feed(StorageInfo(lsblk=without_luks))
++def test_actor_with_luks2_ceph(monkeypatch, current_actor_context):
++    monkeypatch.setattr(version, 'get_source_major_version', lambda: '8')
++    ceph_volume = ['sda']
++    current_actor_context.feed(CephInfo(encrypted_volumes=ceph_volume))
++    luks_dump = LuksDump(
++        version=2,
++        uuid='0edb8c11-1a04-4abd-a12d-93433ee7b8d8',
++        device_path='/dev/sda',
++        device_name='sda',
++        tokens=[LuksToken(token_id=0, keyslot=1, token_type='clevis')])
++    current_actor_context.feed(LuksDumps(dumps=[luks_dump]))
+     current_actor_context.run()
+     assert not current_actor_context.consume(Report)
++
++    # make sure we don't needlessly include clevis packages, when there is no clevis token
++    assert not current_actor_context.consume(TargetUserSpaceUpgradeTasks)
++
++
++LSBLK_ENTRY = LsblkEntry(
++    name="luks-whatever",
++    kname="dm-0",
++    maj_min="252:1",
++    rm="0",
++    size="1G",
++    bsize=1073741824,
++    ro="0",
++    tp="crypt",
++    mountpoint="/",
++    parent_name="",
++    parent_path=""
++)
++
++
++def test_inhibitor_on_el7(monkeypatch, current_actor_context):
++    # NOTE(pstodulk): consider it good enough as el7 stuff is going to be removed
++    # soon.
++    monkeypatch.setattr(version, 'get_source_major_version', lambda: '7')
++
++    luks_dump = LuksDump(
++        version=2,
++        uuid='83050bd9-61c6-4ff0-846f-bfd3ac9bfc67',
++        device_path='/dev/sda',
++        device_name='sda',
++        tokens=[LuksToken(token_id=0, keyslot=1, token_type='clevis-tpm2')])
++    current_actor_context.feed(LuksDumps(dumps=[luks_dump]))
++    current_actor_context.feed(CephInfo(encrypted_volumes=[]))
++
++    current_actor_context.feed(StorageInfo(lsblk=[LSBLK_ENTRY]))
++    current_actor_context.run()
++    assert current_actor_context.consume(Report)
++
++    report_fields = current_actor_context.consume(Report)[0].report
++    assert is_inhibitor(report_fields)
++    assert report_fields['title'] == 'LUKS encrypted partition detected'
+-- 
+2.47.0
+
diff --git a/SOURCES/0021-Rename-inhibitwhenluks-actor-to-checkluks.patch b/SOURCES/0021-Rename-inhibitwhenluks-actor-to-checkluks.patch
new file mode 100644
index 0000000..6d5e039
--- /dev/null
+++ b/SOURCES/0021-Rename-inhibitwhenluks-actor-to-checkluks.patch
@@ -0,0 +1,57 @@
+From 8e5fe75e4ee76eb62eb51001c28f1f1443f0a563 Mon Sep 17 00:00:00 2001
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Fri, 18 Oct 2024 07:13:42 +0200
+Subject: [PATCH 21/40] Rename inhibitwhenluks actor to checkluks
+
+The actor nowadays does more then just inhibiting the upgrade when
+LUKS is detected. Let's rename it to respect current behaviour.
+---
+ .../common/actors/{inhibitwhenluks => checkluks}/actor.py   | 6 +++---
+ .../inhibitwhenluks.py => checkluks/libraries/checkluks.py} | 0
+ .../tests/test_checkluks.py}                                | 0
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+ rename repos/system_upgrade/common/actors/{inhibitwhenluks => checkluks}/actor.py (85%)
+ rename repos/system_upgrade/common/actors/{inhibitwhenluks/libraries/inhibitwhenluks.py => checkluks/libraries/checkluks.py} (100%)
+ rename repos/system_upgrade/common/actors/{inhibitwhenluks/tests/test_inhibitwhenluks.py => checkluks/tests/test_checkluks.py} (100%)
+
+diff --git a/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py b/repos/system_upgrade/common/actors/checkluks/actor.py
+similarity index 85%
+rename from repos/system_upgrade/common/actors/inhibitwhenluks/actor.py
+rename to repos/system_upgrade/common/actors/checkluks/actor.py
+index 65607167..607fd040 100644
+--- a/repos/system_upgrade/common/actors/inhibitwhenluks/actor.py
++++ b/repos/system_upgrade/common/actors/checkluks/actor.py
+@@ -1,11 +1,11 @@
+ from leapp.actors import Actor
+-from leapp.libraries.actor.inhibitwhenluks import check_invalid_luks_devices
++from leapp.libraries.actor.checkluks import check_invalid_luks_devices
+ from leapp.models import CephInfo, LuksDumps, StorageInfo, TargetUserSpaceUpgradeTasks, UpgradeInitramfsTasks
+ from leapp.reporting import Report
+ from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
+ 
+ 
+-class InhibitWhenLuks(Actor):
++class CheckLuks(Actor):
+     """
+     Check if any encrypted partitions are in use and whether they are supported for the upgrade.
+ 
+@@ -15,7 +15,7 @@ class InhibitWhenLuks(Actor):
+     during the process).
+     """
+ 
+-    name = 'check_luks_and_inhibit'
++    name = 'check_luks'
+     consumes = (CephInfo, LuksDumps, StorageInfo)
+     produces = (Report, TargetUserSpaceUpgradeTasks, UpgradeInitramfsTasks)
+     tags = (ChecksPhaseTag, IPUWorkflowTag)
+diff --git a/repos/system_upgrade/common/actors/inhibitwhenluks/libraries/inhibitwhenluks.py b/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py
+similarity index 100%
+rename from repos/system_upgrade/common/actors/inhibitwhenluks/libraries/inhibitwhenluks.py
+rename to repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py
+diff --git a/repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py b/repos/system_upgrade/common/actors/checkluks/tests/test_checkluks.py
+similarity index 100%
+rename from repos/system_upgrade/common/actors/inhibitwhenluks/tests/test_inhibitwhenluks.py
+rename to repos/system_upgrade/common/actors/checkluks/tests/test_checkluks.py
+-- 
+2.47.0
+
diff --git a/SOURCES/0022-Fix-IPU-being-blocked-by-resource-limitations.patch b/SOURCES/0022-Fix-IPU-being-blocked-by-resource-limitations.patch
new file mode 100644
index 0000000..eba154d
--- /dev/null
+++ b/SOURCES/0022-Fix-IPU-being-blocked-by-resource-limitations.patch
@@ -0,0 +1,172 @@
+From 5e6d176ab685f2e85ac1aea9533b04d46f25e9b7 Mon Sep 17 00:00:00 2001
+From: tomasfratrik <tomasfratrik8@gmail.com>
+Date: Tue, 18 Jun 2024 10:22:35 +0200
+Subject: [PATCH 22/40] Fix IPU being blocked by resource limitations
+
+First resource limit is maximum number of open file descriptors limit,
+second one being limit for maximum writable file size. Plus add unit
+tests.
+
+Resolves: RHEL-26459 and RHEL-16881
+---
+ commands/command_utils.py            | 38 ++++++++++++++++++
+ commands/preupgrade/__init__.py      |  2 +
+ commands/tests/test_upgrade_paths.py | 60 ++++++++++++++++++++++++++++
+ commands/upgrade/__init__.py         |  3 ++
+ 4 files changed, 103 insertions(+)
+
+diff --git a/commands/command_utils.py b/commands/command_utils.py
+index 4f6f99eb..2810a542 100644
+--- a/commands/command_utils.py
++++ b/commands/command_utils.py
+@@ -1,6 +1,7 @@
+ import json
+ import os
+ import re
++import resource
+ 
+ from leapp.exceptions import CommandError
+ from leapp.utils import path
+@@ -140,3 +141,40 @@ def vet_upgrade_path(args):
+                     flavor=flavor,
+                     choices=','.join(supported_target_versions)))
+     return (target_release, flavor)
++
++
++def set_resource_limits():
++    """
++    Set resource limits for the maximum number of open file descriptors and the maximum writable file size.
++
++    :raises: `CommandError` if the resource limits cannot be set
++    """
++
++    def set_resource_limit(resource_type, soft, hard):
++        rtype_string = (
++            'open file descriptors' if resource_type == resource.RLIMIT_NOFILE
++            else 'writable file size' if resource_type == resource.RLIMIT_FSIZE
++            else 'unknown resource'
++        )
++        try:
++            resource.setrlimit(resource_type, (soft, hard))
++        except ValueError as err:
++            raise CommandError(
++                'Failure occurred while attempting to set soft limit higher than the hard limit. '
++                'Resource type: {}, error: {}'.format(rtype_string, err)
++            )
++        except OSError as err:
++            raise CommandError(
++                'Failed to set resource limit. Resource type: {}, error: {}'.format(rtype_string, err)
++            )
++
++    soft_nofile, _ = resource.getrlimit(resource.RLIMIT_NOFILE)
++    soft_fsize, _ = resource.getrlimit(resource.RLIMIT_FSIZE)
++    nofile_limit = 1024*16
++    fsize_limit = resource.RLIM_INFINITY
++
++    if soft_nofile < nofile_limit:
++        set_resource_limit(resource.RLIMIT_NOFILE, nofile_limit, nofile_limit)
++
++    if soft_fsize != fsize_limit:
++        set_resource_limit(resource.RLIMIT_FSIZE, fsize_limit, fsize_limit)
+diff --git a/commands/preupgrade/__init__.py b/commands/preupgrade/__init__.py
+index 5a89069f..a9fa40e0 100644
+--- a/commands/preupgrade/__init__.py
++++ b/commands/preupgrade/__init__.py
+@@ -59,6 +59,8 @@ def preupgrade(args, breadcrumbs):
+     except LeappError as exc:
+         raise CommandError(exc.message)
+ 
++    command_utils.set_resource_limits()
++
+     workflow = repositories.lookup_workflow('IPUWorkflow')()
+     util.warn_if_unsupported(configuration)
+     util.process_whitelist_experimental(repositories, workflow, configuration, logger)
+diff --git a/commands/tests/test_upgrade_paths.py b/commands/tests/test_upgrade_paths.py
+index 53f081a5..f1312f66 100644
+--- a/commands/tests/test_upgrade_paths.py
++++ b/commands/tests/test_upgrade_paths.py
+@@ -1,3 +1,5 @@
++import resource
++
+ import mock
+ import pytest
+ 
+@@ -50,3 +52,61 @@ def test_vet_upgrade_path(mock_open, monkeypatch):
+     monkeypatch.setenv('LEAPP_DEVEL_TARGET_RELEASE', '9.0')
+     args = mock.Mock(target='1.2')
+     assert command_utils.vet_upgrade_path(args) == ('9.0', 'default')
++
++
++def _mock_getrlimit_factory(nofile_limits=(1024, 4096), fsize_limits=(1024, 4096)):
++    """
++    Factory function to create a mock `getrlimit` function with configurable return values.
++    The default param values are lower than the expected values.
++
++    :param nofile_limits: Tuple representing (soft, hard) limits for `RLIMIT_NOFILE`
++    :param fsize_limits: Tuple representing (soft, hard) limits for `RLIMIT_FSIZE`
++    :return: A mock `getrlimit` function
++    """
++    def mock_getrlimit(resource_type):
++        if resource_type == resource.RLIMIT_NOFILE:
++            return nofile_limits
++        if resource_type == resource.RLIMIT_FSIZE:
++            return fsize_limits
++        return (0, 0)
++
++    return mock_getrlimit
++
++
++@pytest.mark.parametrize("nofile_limits, fsize_limits, expected_calls", [
++    # Case where both limits need to be increased
++    ((1024, 4096), (1024, 4096), [
++        (resource.RLIMIT_NOFILE, (1024*16, 1024*16)),
++        (resource.RLIMIT_FSIZE, (resource.RLIM_INFINITY, resource.RLIM_INFINITY))
++    ]),
++    # Case where neither limit needs to be changed
++    ((1024*16, 1024*16), (resource.RLIM_INFINITY, resource.RLIM_INFINITY), [])
++])
++def test_set_resource_limits_increase(monkeypatch, nofile_limits, fsize_limits, expected_calls):
++    setrlimit_called = []
++
++    def mock_setrlimit(resource_type, limits):
++        setrlimit_called.append((resource_type, limits))
++
++    monkeypatch.setattr(resource, "getrlimit", _mock_getrlimit_factory(nofile_limits, fsize_limits))
++    monkeypatch.setattr(resource, "setrlimit", mock_setrlimit)
++
++    command_utils.set_resource_limits()
++
++    assert setrlimit_called == expected_calls
++
++
++@pytest.mark.parametrize("errortype, expected_message", [
++    (OSError, "Failed to set resource limit"),
++    (ValueError, "Failure occurred while attempting to set soft limit higher than the hard limit")
++])
++def test_set_resource_limits_exceptions(monkeypatch, errortype, expected_message):
++    monkeypatch.setattr(resource, "getrlimit", _mock_getrlimit_factory())
++
++    def mock_setrlimit(*args, **kwargs):
++        raise errortype("mocked error")
++
++    monkeypatch.setattr(resource, "setrlimit", mock_setrlimit)
++
++    with pytest.raises(CommandError, match=expected_message):
++        command_utils.set_resource_limits()
+diff --git a/commands/upgrade/__init__.py b/commands/upgrade/__init__.py
+index 1e15b59c..c7487fde 100644
+--- a/commands/upgrade/__init__.py
++++ b/commands/upgrade/__init__.py
+@@ -89,6 +89,9 @@ def upgrade(args, breadcrumbs):
+         repositories = util.load_repositories()
+     except LeappError as exc:
+         raise CommandError(exc.message)
++
++    command_utils.set_resource_limits()
++
+     workflow = repositories.lookup_workflow('IPUWorkflow')(auto_reboot=args.reboot)
+     util.process_whitelist_experimental(repositories, workflow, configuration, logger)
+     util.warn_if_unsupported(configuration)
+-- 
+2.47.0
+
diff --git a/SOURCES/0023-feature-add-possibility-to-use-net.naming-scheme.patch b/SOURCES/0023-feature-add-possibility-to-use-net.naming-scheme.patch
new file mode 100644
index 0000000..e68f22b
--- /dev/null
+++ b/SOURCES/0023-feature-add-possibility-to-use-net.naming-scheme.patch
@@ -0,0 +1,675 @@
+From e1bdf2c02dd193cdd7a2da95e2a3cfa5e6e1e8b3 Mon Sep 17 00:00:00 2001
+From: mhecko <mhecko@redhat.com>
+Date: Mon, 29 Apr 2024 11:16:46 +0200
+Subject: [PATCH 23/40] feature: add possibility to use net.naming-scheme
+
+Leapp writes .link files to prevent interfaces being renamed
+after booting to post-upgrade system. This patch adds a less
+error-prone approach that uses net.naming-scheme kernel param.
+The naming-scheme tells udev what hardware properties to use
+when composing a device name. Moreover, possible values of this
+parameter are coarse-grained "profiles", that tell udev to
+behave as if it did on RHEL8.0.
+
+The functionality is enabled by setting LEAPP_USE_NET_NAMING_SCHEME
+environmental variable to 1. If the feature is enabled, the .link
+file generation is disabled. A kernel parameter `net.naming-scheme=`
+is added to the upgrade boot entry and the post-upgrade entry.
+The value of the parameter will be `rhel-<source_major>.0`. Note
+that the minor source version is *not used*. Using also source major
+version instead of 0 causes the device names to change slightly,
+so we use 0. Moreover, an extra RPM named `rhel-net-naming-sysattrs`
+is installed to the target system and target userspace container.
+The RPM provides definitions of the "profiles" for net.naming-scheme.
+
+The feature is available only for 8>9 and higher. Attempting to
+upgrade 7>8 with LEAPP_USE_NET_NAMING_SCHEME=1 will ignore
+the value of LEAPP_USE_NET_NAMING_SCHEME.
+
+Add a possibility to use the net.naming-scheme cmdline argument
+to make immutable network interface names during the upgrade.
+The feature can be used only for 8>9 upgrades and higher.
+To enable the feature, use LEAPP_USE_NET_NAMING_SCHEME=1.
+
+Jira-ref: RHEL-23473
+---
+ .../actors/addupgradebootentry/actor.py       | 10 +-
+ .../libraries/addupgradebootentry.py          | 78 ++++++++++-----
+ .../tests/unit_test_addupgradebootentry.py    | 47 ++++-----
+ .../actors/kernelcmdlineconfig/actor.py       | 16 +++-
+ .../libraries/kernelcmdlineconfig.py          | 12 ++-
+ .../libraries/persistentnetnamesconfig.py     |  5 +-
+ .../common/models/kernelcmdlineargs.py        | 21 ++++
+ .../actors/emit_net_naming_scheme/actor.py    | 28 ++++++
+ .../libraries/emit_net_naming.py              | 63 ++++++++++++
+ .../tests/test_emit_net_naming_scheme.py      | 95 +++++++++++++++++++
+ 10 files changed, 318 insertions(+), 57 deletions(-)
+ create mode 100644 repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/actor.py
+ create mode 100644 repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
+ create mode 100644 repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/tests/test_emit_net_naming_scheme.py
+
+diff --git a/repos/system_upgrade/common/actors/addupgradebootentry/actor.py b/repos/system_upgrade/common/actors/addupgradebootentry/actor.py
+index f400ebf8..e4ecf39e 100644
+--- a/repos/system_upgrade/common/actors/addupgradebootentry/actor.py
++++ b/repos/system_upgrade/common/actors/addupgradebootentry/actor.py
+@@ -8,11 +8,13 @@ from leapp.models import (
+     FirmwareFacts,
+     GrubConfigError,
+     KernelCmdline,
++    LateTargetKernelCmdlineArgTasks,
+     LiveImagePreparationInfo,
+     LiveModeArtifacts,
+     LiveModeConfig,
+     TargetKernelCmdlineArgTasks,
+-    TransactionDryRun
++    TransactionDryRun,
++    UpgradeKernelCmdlineArgTasks
+ )
+ from leapp.tags import InterimPreparationPhaseTag, IPUWorkflowTag
+ 
+@@ -33,9 +35,11 @@ class AddUpgradeBootEntry(Actor):
+         LiveModeArtifacts,
+         LiveModeConfig,
+         KernelCmdline,
+-        TransactionDryRun
++        TransactionDryRun,
++        TargetKernelCmdlineArgTasks,
++        UpgradeKernelCmdlineArgTasks
+     )
+-    produces = (TargetKernelCmdlineArgTasks,)
++    produces = (LateTargetKernelCmdlineArgTasks,)
+     tags = (IPUWorkflowTag, InterimPreparationPhaseTag)
+ 
+     def process(self):
+diff --git a/repos/system_upgrade/common/actors/addupgradebootentry/libraries/addupgradebootentry.py b/repos/system_upgrade/common/actors/addupgradebootentry/libraries/addupgradebootentry.py
+index 553ffc35..b236e39b 100644
+--- a/repos/system_upgrade/common/actors/addupgradebootentry/libraries/addupgradebootentry.py
++++ b/repos/system_upgrade/common/actors/addupgradebootentry/libraries/addupgradebootentry.py
+@@ -9,14 +9,16 @@ from leapp.models import (
+     BootContent,
+     KernelCmdline,
+     KernelCmdlineArg,
++    LateTargetKernelCmdlineArgTasks,
+     LiveImagePreparationInfo,
+     LiveModeArtifacts,
+     LiveModeConfig,
+-    TargetKernelCmdlineArgTasks
++    TargetKernelCmdlineArgTasks,
++    UpgradeKernelCmdlineArgTasks
+ )
+ 
+ 
+-def collect_boot_args(livemode_enabled):
++def collect_upgrade_kernel_args(livemode_enabled):
+     args = {
+         'enforcing': '0',
+         'rd.plymouth': '0',
+@@ -34,7 +36,10 @@ def collect_boot_args(livemode_enabled):
+         livemode_args = construct_cmdline_args_for_livemode()
+         args.update(livemode_args)
+ 
+-    return args
++    upgrade_kernel_args = collect_set_of_kernel_args_from_msgs(UpgradeKernelCmdlineArgTasks, 'to_add')
++    args.update(upgrade_kernel_args)
++
++    return set(args.items())
+ 
+ 
+ def collect_undesired_args(livemode_enabled):
+@@ -43,11 +48,11 @@ def collect_undesired_args(livemode_enabled):
+         args = dict(zip(('ro', 'rhgb', 'quiet'), itertools.repeat(None)))
+         args['rd.lvm.lv'] = _get_rdlvm_arg_values()
+ 
+-    return args
++    return set(args.items())
+ 
+ 
+-def format_grubby_args_from_args_dict(args_dict):
+-    """ Format the given args dictionary in a form required by grubby's --args. """
++def format_grubby_args_from_args_set(args_dict):
++    """ Format the given args set in a form required by grubby's --args. """
+ 
+     def fmt_single_arg(arg_pair):
+         key, value = arg_pair
+@@ -65,7 +70,7 @@ def format_grubby_args_from_args_dict(args_dict):
+         else:
+             yield (key, value)  # Just a single (key, value) pair
+ 
+-    arg_sequence = itertools.chain(*(flatten_arguments(arg_pair) for arg_pair in args_dict.items()))
++    arg_sequence = itertools.chain(*(flatten_arguments(arg_pair) for arg_pair in args_dict))
+ 
+     # Sorting should be fine as only values can be None, but we cannot have a (key, None) and (key, value) in
+     # the dictionary at the same time.
+@@ -78,7 +83,7 @@ def format_grubby_args_from_args_dict(args_dict):
+ def figure_out_commands_needed_to_add_entry(kernel_path, initramfs_path, args_to_add, args_to_remove):
+     boot_entry_modification_commands = []
+ 
+-    args_to_add_str = format_grubby_args_from_args_dict(args_to_add)
++    args_to_add_str = format_grubby_args_from_args_set(args_to_add)
+ 
+     create_entry_cmd = [
+         '/usr/sbin/grubby',
+@@ -93,7 +98,7 @@ def figure_out_commands_needed_to_add_entry(kernel_path, initramfs_path, args_to
+ 
+     # We need to update root= param separately, since we cannot do it during --add-kernel with --copy-default.
+     # This is likely a bug in grubby.
+-    root_param_value = args_to_add.get('root', None)
++    root_param_value = dict(args_to_add).get('root', None)
+     if root_param_value:
+         enforce_root_param_for_the_entry_cmd = [
+             '/usr/sbin/grubby',
+@@ -103,7 +108,7 @@ def figure_out_commands_needed_to_add_entry(kernel_path, initramfs_path, args_to
+         boot_entry_modification_commands.append(enforce_root_param_for_the_entry_cmd)
+ 
+     if args_to_remove:
+-        args_to_remove_str = format_grubby_args_from_args_dict(args_to_remove)
++        args_to_remove_str = format_grubby_args_from_args_set(args_to_remove)
+         remove_undesired_args_cmd = [
+             '/usr/sbin/grubby',
+             '--update-kernel', kernel_path,
+@@ -113,18 +118,55 @@ def figure_out_commands_needed_to_add_entry(kernel_path, initramfs_path, args_to
+     return boot_entry_modification_commands
+ 
+ 
++def collect_set_of_kernel_args_from_msgs(msg_type, arg_list_field_name):
++    cmdline_modification_msgs = api.consume(msg_type)
++    lists_of_args_to_add = (getattr(msg, arg_list_field_name, []) for msg in cmdline_modification_msgs)
++    args = itertools.chain(*lists_of_args_to_add)
++    return set((arg.key, arg.value) for arg in args)
++
++
++def emit_removal_of_args_meant_only_for_upgrade_kernel(added_upgrade_kernel_args):
++    """
++    Emit message requesting removal of upgrade kernel args that should not be on the target kernel.
++
++    Target kernel args are created by copying the args of the booted (upgrade) kernel. Therefore,
++    we need to explicitly modify the target kernel cmdline, removing what should not have been copied.
++    """
++    target_args_to_add = collect_set_of_kernel_args_from_msgs(TargetKernelCmdlineArgTasks, 'to_add')
++    actual_kernel_args = collect_set_of_kernel_args_from_msgs(KernelCmdline, 'parameters')
++
++    # actual_kernel_args should not be changed during upgrade, unless explicitly removed by
++    # TargetKernelCmdlineArgTasks.to_remove, but that is handled by some other upgrade component. We just want
++    # to make sure we remove what was not on the source system and that we don't overwrite args to be added to target.
++    args_not_present_on_target_kernel = added_upgrade_kernel_args - actual_kernel_args - target_args_to_add
++
++    # We remove only what we've added and what will not be already removed by someone else.
++    args_to_remove = [KernelCmdlineArg(key=arg[0], value=arg[1]) for arg in args_not_present_on_target_kernel]
++
++    if args_to_remove:
++        msg = ('Following upgrade kernel args were added, but they should not be present '
++               'on target cmdline: `%s`, requesting removal.')
++        api.current_logger().info(msg, args_not_present_on_target_kernel)
++        args_sorted = sorted(args_to_remove, key=lambda arg: arg.key)
++        api.produce(LateTargetKernelCmdlineArgTasks(to_remove=args_sorted))
++
++
+ def add_boot_entry(configs=None):
+     kernel_dst_path, initram_dst_path = get_boot_file_paths()
++
+     _remove_old_upgrade_boot_entry(kernel_dst_path, configs=configs)
+ 
+     livemode_enabled = next(api.consume(LiveImagePreparationInfo), None) is not None
+ 
+-    cmdline_args = collect_boot_args(livemode_enabled)
++    # We have to keep the desired and unwanted args separate and modify cmline in two separate grubby calls. Merging
++    # these sets and trying to execute only a single command would leave the unwanted cmdline args present  if they
++    # are present on the original system.
++    added_cmdline_args = collect_upgrade_kernel_args(livemode_enabled)
+     undesired_cmdline_args = collect_undesired_args(livemode_enabled)
+ 
+     commands_to_run = figure_out_commands_needed_to_add_entry(kernel_dst_path,
+                                                               initram_dst_path,
+-                                                              args_to_add=cmdline_args,
++                                                              args_to_add=added_cmdline_args,
+                                                               args_to_remove=undesired_cmdline_args)
+ 
+     def run_commands_adding_entry(extra_command_suffix=None):
+@@ -146,16 +188,8 @@ def add_boot_entry(configs=None):
+             # See https://bugzilla.redhat.com/show_bug.cgi?id=1764306
+             run(['/usr/sbin/zipl'])
+ 
+-        if 'debug' in cmdline_args:
+-            # The kernelopts for target kernel are generated based on the cmdline used in the upgrade initramfs,
+-            # therefore, if we enabled debug above, and the original system did not have the debug kernelopt, we
+-            # need to explicitly remove it from the target os boot entry.
+-            # NOTE(mhecko): This will also unconditionally remove debug kernelopt if the source system used it.
+-            api.produce(TargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='debug')]))
+-
+-        # NOTE(mmatuska): This will remove the option even if the source system had it set.
+-        # However enforcing=0 shouldn't be set persistently anyway.
+-        api.produce(TargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='enforcing', value='0')]))
++        effective_upgrade_kernel_args = added_cmdline_args - undesired_cmdline_args
++        emit_removal_of_args_meant_only_for_upgrade_kernel(effective_upgrade_kernel_args)
+ 
+     except CalledProcessError as e:
+         raise StopActorExecutionError(
+diff --git a/repos/system_upgrade/common/actors/addupgradebootentry/tests/unit_test_addupgradebootentry.py b/repos/system_upgrade/common/actors/addupgradebootentry/tests/unit_test_addupgradebootentry.py
+index c4f5232b..2f58ba9e 100644
+--- a/repos/system_upgrade/common/actors/addupgradebootentry/tests/unit_test_addupgradebootentry.py
++++ b/repos/system_upgrade/common/actors/addupgradebootentry/tests/unit_test_addupgradebootentry.py
+@@ -12,6 +12,7 @@ from leapp.models import (
+     BootContent,
+     KernelCmdline,
+     KernelCmdlineArg,
++    LateTargetKernelCmdlineArgTasks,
+     LiveModeArtifacts,
+     LiveModeConfig,
+     TargetKernelCmdlineArgTasks
+@@ -82,8 +83,10 @@ def test_add_boot_entry(monkeypatch, run_args, arch):
+     assert addupgradebootentry.run.args[0] == run_args.args_remove
+     assert addupgradebootentry.run.args[1] == run_args.args_add
+     assert api.produce.model_instances == [
+-        TargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='debug')]),
+-        TargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='enforcing', value='0')])
++        LateTargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='debug'),
++                                                   KernelCmdlineArg(key='enforcing', value='0'),
++                                                   KernelCmdlineArg(key='plymouth.enable', value='0'),
++                                                   KernelCmdlineArg(key='rd.plymouth', value='0')])
+     ]
+ 
+     if run_args.args_zipl:
+@@ -103,16 +106,16 @@ def test_debug_kernelopt_removal_task_production(monkeypatch, is_leapp_invoked_w
+                         CurrentActorMocked(envars={'LEAPP_DEBUG': str(int(is_leapp_invoked_with_debug))}))
+ 
+     addupgradebootentry.add_boot_entry()
++    assert len(api.produce.model_instances) == 1
+ 
+-    expected_produced_messages = []
+-    if is_leapp_invoked_with_debug:
+-        expected_produced_messages = [TargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='debug')])]
+-
+-    expected_produced_messages.append(
+-        TargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='enforcing', value='0')])
+-    )
++    produced_msg = api.produce.model_instances[0]
++    assert isinstance(produced_msg, LateTargetKernelCmdlineArgTasks)
+ 
+-    assert api.produce.model_instances == expected_produced_messages
++    debug_kernel_cmline_arg = KernelCmdlineArg(key='debug')
++    if is_leapp_invoked_with_debug:
++        assert debug_kernel_cmline_arg in produced_msg.to_remove
++    else:
++        assert debug_kernel_cmline_arg not in produced_msg.to_remove
+ 
+ 
+ def test_add_boot_entry_configs(monkeypatch):
+@@ -132,8 +135,10 @@ def test_add_boot_entry_configs(monkeypatch):
+     assert addupgradebootentry.run.args[2] == run_args_add + ['-c', CONFIGS[0]]
+     assert addupgradebootentry.run.args[3] == run_args_add + ['-c', CONFIGS[1]]
+     assert api.produce.model_instances == [
+-        TargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='debug')]),
+-        TargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='enforcing', value='0')]),
++        LateTargetKernelCmdlineArgTasks(to_remove=[KernelCmdlineArg(key='debug'),
++                                                   KernelCmdlineArg(key='enforcing', value='0'),
++                                                   KernelCmdlineArg(key='plymouth.enable', value='0'),
++                                                   KernelCmdlineArg(key='rd.plymouth', value='0')])
+     ]
+ 
+ 
+@@ -183,7 +188,7 @@ def test_fix_grub_config_error(monkeypatch, error_type, test_file_name):
+         (False, False),
+     )
+ )
+-def test_collect_boot_args(monkeypatch, is_debug_enabled, network_enablement_type):
++def test_collect_upgrade_kernel_args(monkeypatch, is_debug_enabled, network_enablement_type):
+     env_vars = {'LEAPP_DEBUG': str(int(is_debug_enabled))}
+     if network_enablement_type:
+         env_vars['LEAPP_DEVEL_INITRAM_NETWORK'] = network_enablement_type
+@@ -192,7 +197,8 @@ def test_collect_boot_args(monkeypatch, is_debug_enabled, network_enablement_typ
+     monkeypatch.setattr(addupgradebootentry, 'construct_cmdline_args_for_livemode',
+                         lambda *args: {'livemodearg': 'value'})
+ 
+-    args = addupgradebootentry.collect_boot_args(livemode_enabled=True)
++    arg_set = addupgradebootentry.collect_upgrade_kernel_args(livemode_enabled=True)
++    args = dict(arg_set)
+ 
+     assert args['enforcing'] == '0'
+     assert args['rd.plymouth'] == '0'
+@@ -320,16 +326,3 @@ def test_get_device_uuid(monkeypatch):
+     uuid = addupgradebootentry._get_device_uuid(path)
+ 
+     assert uuid == 'MY_UUID1'
+-
+-
+-@pytest.mark.parametrize(
+-    ('args', 'expected_result'),
+-    (
+-        ([('argA', 'val'), ('argB', 'valB'), ('argC', None), ], 'argA=val argB=valB argC'),
+-        ([('argA', ('val1', 'val2'))], 'argA=val1 argA=val2')
+-    )
+-)
+-def test_format_grubby_args_from_args_dict(args, expected_result):
+-    actual_result = addupgradebootentry.format_grubby_args_from_args_dict(dict(args))
+-
+-    assert actual_result == expected_result
+diff --git a/repos/system_upgrade/common/actors/kernelcmdlineconfig/actor.py b/repos/system_upgrade/common/actors/kernelcmdlineconfig/actor.py
+index 3585a14e..6d5f39dd 100644
+--- a/repos/system_upgrade/common/actors/kernelcmdlineconfig/actor.py
++++ b/repos/system_upgrade/common/actors/kernelcmdlineconfig/actor.py
+@@ -3,7 +3,13 @@ import os
+ from leapp.actors import Actor
+ from leapp.exceptions import StopActorExecutionError
+ from leapp.libraries.actor import kernelcmdlineconfig
+-from leapp.models import FirmwareFacts, InstalledTargetKernelInfo, KernelCmdlineArg, TargetKernelCmdlineArgTasks
++from leapp.models import (
++    FirmwareFacts,
++    InstalledTargetKernelInfo,
++    KernelCmdlineArg,
++    LateTargetKernelCmdlineArgTasks,
++    TargetKernelCmdlineArgTasks
++)
+ from leapp.reporting import Report
+ from leapp.tags import FinalizationPhaseTag, IPUWorkflowTag
+ 
+@@ -14,7 +20,13 @@ class KernelCmdlineConfig(Actor):
+     """
+ 
+     name = 'kernelcmdlineconfig'
+-    consumes = (KernelCmdlineArg, InstalledTargetKernelInfo, FirmwareFacts, TargetKernelCmdlineArgTasks)
++    consumes = (
++        KernelCmdlineArg,
++        InstalledTargetKernelInfo,
++        FirmwareFacts,
++        LateTargetKernelCmdlineArgTasks,
++        TargetKernelCmdlineArgTasks
++    )
+     produces = (Report,)
+     tags = (FinalizationPhaseTag, IPUWorkflowTag)
+ 
+diff --git a/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py b/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
+index 19c50f3c..98b8b95b 100644
+--- a/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
++++ b/repos/system_upgrade/common/actors/kernelcmdlineconfig/libraries/kernelcmdlineconfig.py
+@@ -1,3 +1,4 @@
++import itertools
+ import re
+ 
+ from leapp import reporting
+@@ -5,7 +6,12 @@ from leapp.exceptions import StopActorExecutionError
+ from leapp.libraries import stdlib
+ from leapp.libraries.common.config import architecture, version
+ from leapp.libraries.stdlib import api
+-from leapp.models import InstalledTargetKernelInfo, KernelCmdlineArg, TargetKernelCmdlineArgTasks
++from leapp.models import (
++    InstalledTargetKernelInfo,
++    KernelCmdlineArg,
++    LateTargetKernelCmdlineArgTasks,
++    TargetKernelCmdlineArgTasks
++)
+ 
+ KERNEL_CMDLINE_FILE = "/etc/kernel/cmdline"
+ 
+@@ -71,7 +77,9 @@ def retrieve_arguments_to_modify():
+     kernelargs_msgs_to_add = list(api.consume(KernelCmdlineArg))
+     kernelargs_msgs_to_remove = []
+ 
+-    for target_kernel_arg_task in api.consume(TargetKernelCmdlineArgTasks):
++    modification_msgs = itertools.chain(api.consume(TargetKernelCmdlineArgTasks),
++                                        api.consume(LateTargetKernelCmdlineArgTasks))
++    for target_kernel_arg_task in modification_msgs:
+         kernelargs_msgs_to_add.extend(target_kernel_arg_task.to_add)
+         kernelargs_msgs_to_remove.extend(target_kernel_arg_task.to_remove)
+ 
+diff --git a/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py b/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
+index dc5196ea..2f12742a 100644
+--- a/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
++++ b/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
+@@ -2,7 +2,7 @@ import errno
+ import os
+ import re
+ 
+-from leapp.libraries.common.config import get_env
++from leapp.libraries.common.config import get_env, version
+ from leapp.libraries.stdlib import api
+ from leapp.models import (
+     InitrdIncludes,
+@@ -39,6 +39,9 @@ def generate_link_file(interface):
+ 
+ @suppress_deprecation(InitrdIncludes)
+ def process():
++    if get_env('LEAPP_USE_NET_NAMING_SCHEMES', '0') == '1' and version.get_target_major_version() != '8':
++        api.current_logger().info('Skipping generation of .link files renaming NICs as LEAPP_USE_NET_NAMING_SCHEMES=1')
++        return
+ 
+     if get_env('LEAPP_NO_NETWORK_RENAMING', '0') == '1':
+         api.current_logger().info(
+diff --git a/repos/system_upgrade/common/models/kernelcmdlineargs.py b/repos/system_upgrade/common/models/kernelcmdlineargs.py
+index e3568a0a..fafd2853 100644
+--- a/repos/system_upgrade/common/models/kernelcmdlineargs.py
++++ b/repos/system_upgrade/common/models/kernelcmdlineargs.py
+@@ -24,6 +24,27 @@ class TargetKernelCmdlineArgTasks(Model):
+     to_remove = fields.List(fields.Model(KernelCmdlineArg), default=[])
+ 
+ 
++class LateTargetKernelCmdlineArgTasks(Model):
++    """
++    Desired modifications of the target kernel args produced later in the upgrade process.
++
++    Defined to prevent loops in the actor dependency graph.
++    """
++    topic = SystemInfoTopic
++
++    to_add = fields.List(fields.Model(KernelCmdlineArg), default=[])
++    to_remove = fields.List(fields.Model(KernelCmdlineArg), default=[])
++
++
++class UpgradeKernelCmdlineArgTasks(Model):
++    """
++    Modifications of the upgrade kernel cmdline.
++    """
++    topic = SystemInfoTopic
++
++    to_add = fields.List(fields.Model(KernelCmdlineArg), default=[])
++
++
+ class KernelCmdline(Model):
+     """
+     Kernel command line parameters the system was booted with
+diff --git a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/actor.py b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/actor.py
+new file mode 100644
+index 00000000..769fe20b
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/actor.py
+@@ -0,0 +1,28 @@
++from leapp.actors import Actor
++from leapp.libraries.actor import emit_net_naming as emit_net_naming_lib
++from leapp.models import (
++    KernelCmdline,
++    RpmTransactionTasks,
++    TargetKernelCmdlineArgTasks,
++    TargetUserSpaceUpgradeTasks,
++    UpgradeKernelCmdlineArgTasks
++)
++from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
++
++
++class EmitNetNamingScheme(Actor):
++    """
++    Emit necessary modifications of the upgrade environment and target command line to use net.naming-scheme.
++    """
++    name = 'emit_net_naming_scheme'
++    consumes = (KernelCmdline,)
++    produces = (
++        RpmTransactionTasks,
++        TargetKernelCmdlineArgTasks,
++        TargetUserSpaceUpgradeTasks,
++        UpgradeKernelCmdlineArgTasks,
++    )
++    tags = (ChecksPhaseTag, IPUWorkflowTag)
++
++    def process(self):
++        emit_net_naming_lib.emit_msgs_to_use_net_naming_schemes()
+diff --git a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
+new file mode 100644
+index 00000000..65abdd4d
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
+@@ -0,0 +1,63 @@
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.common.config import get_env, version
++from leapp.libraries.stdlib import api
++from leapp.models import (
++    KernelCmdline,
++    KernelCmdlineArg,
++    RpmTransactionTasks,
++    TargetKernelCmdlineArgTasks,
++    TargetUserSpaceUpgradeTasks,
++    UpgradeKernelCmdlineArgTasks
++)
++
++NET_NAMING_SYSATTRS_RPM_NAME = 'rhel-net-naming-sysattrs'
++
++
++def is_net_scheme_compatible_with_current_cmdline():
++    kernel_cmdline = next(api.consume(KernelCmdline), None)
++    if not kernel_cmdline:
++        # Super unlikely
++        raise StopActorExecutionError('Did not receive any KernelCmdline messages.')
++
++    allows_predictable_names = True
++    already_has_a_net_naming_scheme = False
++    for param in kernel_cmdline.parameters:
++        if param.key == 'net.ifnames':
++            if param.value == '0':
++                allows_predictable_names = False
++            elif param.value == '1':
++                allows_predictable_names = True
++        if param.key == 'net.naming-scheme':
++            # We assume that the kernel cmdline does not contain invalid entries, namely,
++            # that the net.naming-scheme refers to a valid scheme.
++            already_has_a_net_naming_scheme = True
++
++    is_compatible = allows_predictable_names and not already_has_a_net_naming_scheme
++
++    msg = ('Should net.naming-scheme be added to kernel cmdline: %s. '
++           'Reason: allows_predictable_names=%s, already_has_a_net_naming_scheme=%s')
++    api.current_logger().info(msg, 'yes' if is_compatible else 'no',
++                              allows_predictable_names,
++                              already_has_a_net_naming_scheme)
++
++    return is_compatible
++
++
++def emit_msgs_to_use_net_naming_schemes():
++    if get_env('LEAPP_USE_NET_NAMING_SCHEMES', '0') != '1' and version.get_target_major_version() != '8':
++        return
++
++    # The package should be installed regardless of whether we will modify the cmdline -
++    # if the cmdline already contains net.naming-scheme, then the package will be useful
++    # in both, the upgrade environment and on the target system.
++    pkgs_to_install = [NET_NAMING_SYSATTRS_RPM_NAME]
++    api.produce(TargetUserSpaceUpgradeTasks(install_rpms=pkgs_to_install))
++    api.produce(RpmTransactionTasks(to_install=pkgs_to_install))
++
++    if not is_net_scheme_compatible_with_current_cmdline():
++        return
++
++    naming_scheme = 'rhel-{0}.0'.format(version.get_source_major_version())
++    cmdline_args = [KernelCmdlineArg(key='net.naming-scheme', value=naming_scheme)]
++    api.produce(UpgradeKernelCmdlineArgTasks(to_add=cmdline_args))
++    api.produce(TargetKernelCmdlineArgTasks(to_add=cmdline_args))
+diff --git a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/tests/test_emit_net_naming_scheme.py b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/tests/test_emit_net_naming_scheme.py
+new file mode 100644
+index 00000000..7a5eeba5
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/tests/test_emit_net_naming_scheme.py
+@@ -0,0 +1,95 @@
++import pytest
++
++from leapp.libraries.actor import emit_net_naming as emit_net_naming_lib
++from leapp.libraries.common.testutils import CurrentActorMocked, produce_mocked
++from leapp.libraries.stdlib import api
++from leapp.models import (
++    KernelCmdline,
++    KernelCmdlineArg,
++    RpmTransactionTasks,
++    TargetKernelCmdlineArgTasks,
++    TargetUserSpaceUpgradeTasks,
++    UpgradeKernelCmdlineArgTasks
++)
++
++
++@pytest.mark.parametrize(
++    ('kernel_args', 'should_be_compatible'),
++    [
++        ([KernelCmdlineArg(key='net.naming-scheme', value='rhel-8.10')], False),
++        ([KernelCmdlineArg(key='net.ifnames', value='1')], True),
++        ([KernelCmdlineArg(key='net.ifnames', value='0')], False),
++        (
++            [
++                KernelCmdlineArg(key='net.naming-scheme', value='rhel-8.10'),
++                KernelCmdlineArg(key='net.ifname', value='0'),
++                KernelCmdlineArg(key='root', value='/dev/vda1')
++            ],
++            False
++        ),
++        ([KernelCmdlineArg(key='root', value='/dev/vda1')], True),
++    ]
++)
++def test_is_net_scheme_compatible_with_current_cmdline(monkeypatch, kernel_args, should_be_compatible):
++    kernel_cmdline = KernelCmdline(parameters=kernel_args)
++
++    def mocked_consume(msg_type):
++        yield {KernelCmdline: kernel_cmdline}[msg_type]
++
++    monkeypatch.setattr(api, 'consume', mocked_consume)
++
++    assert emit_net_naming_lib.is_net_scheme_compatible_with_current_cmdline() == should_be_compatible, \
++        [(arg.key, arg.value) for arg in kernel_cmdline.parameters]
++
++
++@pytest.mark.parametrize(
++    ('is_net_scheme_enabled', 'is_current_cmdline_compatible'),
++    [
++        (True, True),
++        (True, False),
++        (False, True)
++    ]
++)
++def test_emit_msgs_to_use_net_naming_schemes(monkeypatch, is_net_scheme_enabled, is_current_cmdline_compatible):
++    envvar_value = '1' if is_net_scheme_enabled else '0'
++
++    mocked_actor = CurrentActorMocked(src_ver='8.10',
++                                      dst_ver='9.5',
++                                      envars={'LEAPP_USE_NET_NAMING_SCHEMES': envvar_value})
++    monkeypatch.setattr(api, 'current_actor', mocked_actor)
++
++    monkeypatch.setattr(api, 'produce', produce_mocked())
++    monkeypatch.setattr(emit_net_naming_lib,
++                        'is_net_scheme_compatible_with_current_cmdline',
++                        lambda: is_current_cmdline_compatible)
++
++    emit_net_naming_lib.emit_msgs_to_use_net_naming_schemes()
++
++    def ensure_one_msg_of_type_produced(produced_messages, msg_type):
++        msgs = (msg for msg in produced_messages if isinstance(msg, msg_type))
++        msg = next(msgs)
++        assert not next(msgs, None), 'More than one message of type {type} produced'.format(type=type)
++        return msg
++
++    produced_messages = api.produce.model_instances
++    if is_net_scheme_enabled:
++        userspace_tasks = ensure_one_msg_of_type_produced(produced_messages, TargetUserSpaceUpgradeTasks)
++        assert userspace_tasks.install_rpms == [emit_net_naming_lib.NET_NAMING_SYSATTRS_RPM_NAME]
++
++        rpm_tasks = ensure_one_msg_of_type_produced(produced_messages, RpmTransactionTasks)
++        assert rpm_tasks.to_install == [emit_net_naming_lib.NET_NAMING_SYSATTRS_RPM_NAME]
++    else:
++        assert not api.produce.called
++        return
++
++    upgrade_cmdline_mods = (msg for msg in produced_messages if isinstance(msg, UpgradeKernelCmdlineArgTasks))
++    target_cmdline_mods = (msg for msg in produced_messages if isinstance(msg, TargetKernelCmdlineArgTasks))
++
++    if is_current_cmdline_compatible:
++        # We should emit cmdline modifications - both UpgradeKernelCmdlineArgTasks and TargetKernelCmdlineArgTasks
++        # should be produced
++        assert next(upgrade_cmdline_mods, None)
++        assert next(target_cmdline_mods, None)
++    else:
++        assert not next(upgrade_cmdline_mods, None)
++        assert not next(target_cmdline_mods, None)
+-- 
+2.47.0
+
diff --git a/SOURCES/0024-prevent-the-feature-for-being-used-outside-8-9.patch b/SOURCES/0024-prevent-the-feature-for-being-used-outside-8-9.patch
new file mode 100644
index 0000000..02eb5fe
--- /dev/null
+++ b/SOURCES/0024-prevent-the-feature-for-being-used-outside-8-9.patch
@@ -0,0 +1,26 @@
+From b4b535454b74c05682ecf0d3059decbd2c9530e0 Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Wed, 6 Nov 2024 22:23:37 +0100
+Subject: [PATCH 24/40] prevent the feature for being used outside 8>9
+
+---
+ .../libraries/persistentnetnamesconfig.py                      | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py b/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
+index 2f12742a..b2c7f5ff 100644
+--- a/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
++++ b/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
+@@ -39,7 +39,8 @@ def generate_link_file(interface):
+ 
+ @suppress_deprecation(InitrdIncludes)
+ def process():
+-    if get_env('LEAPP_USE_NET_NAMING_SCHEMES', '0') == '1' and version.get_target_major_version() != '8':
++    if get_env('LEAPP_USE_NET_NAMING_SCHEMES', '0') == '1' and version.get_target_major_version() == '9':
++        # We can use this only for 8>9, for now
+         api.current_logger().info('Skipping generation of .link files renaming NICs as LEAPP_USE_NET_NAMING_SCHEMES=1')
+         return
+ 
+-- 
+2.47.0
+
diff --git a/SOURCES/0025-fix-condition-on-when-net-naming-is-emitted.patch b/SOURCES/0025-fix-condition-on-when-net-naming-is-emitted.patch
new file mode 100644
index 0000000..d5d92a0
--- /dev/null
+++ b/SOURCES/0025-fix-condition-on-when-net-naming-is-emitted.patch
@@ -0,0 +1,28 @@
+From e43a8922e06d72212e8e2a8b51747c668147182c Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Wed, 6 Nov 2024 22:26:01 +0100
+Subject: [PATCH 25/40] fix condition on when net naming is emitted
+
+---
+ .../emit_net_naming_scheme/libraries/emit_net_naming.py      | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
+index 65abdd4d..726bb459 100644
+--- a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
++++ b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
+@@ -44,7 +44,10 @@ def is_net_scheme_compatible_with_current_cmdline():
+ 
+ 
+ def emit_msgs_to_use_net_naming_schemes():
+-    if get_env('LEAPP_USE_NET_NAMING_SCHEMES', '0') != '1' and version.get_target_major_version() != '8':
++    is_env_var_set = get_env('LEAPP_USE_NET_NAMING_SCHEMES', '0') == '1'
++    is_upgrade_8to9 = version.get_target_major_version() == '9'
++    is_net_naming_enabled_and_permitted = is_env_var_set and is_upgrade_8to9
++    if not is_net_naming_enabled_and_permitted:
+         return
+ 
+     # The package should be installed regardless of whether we will modify the cmdline -
+-- 
+2.47.0
+
diff --git a/SOURCES/0026-scangrubdevpartitionlayout-Skip-warning-msgs.patch b/SOURCES/0026-scangrubdevpartitionlayout-Skip-warning-msgs.patch
new file mode 100644
index 0000000..cc0a99c
--- /dev/null
+++ b/SOURCES/0026-scangrubdevpartitionlayout-Skip-warning-msgs.patch
@@ -0,0 +1,56 @@
+From 0bf07d1546ccdc6d4a9e6f4936a98b4d6ca27789 Mon Sep 17 00:00:00 2001
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Tue, 12 Nov 2024 09:10:50 +0100
+Subject: [PATCH 26/40] scangrubdevpartitionlayout: Skip warning msgs
+
+The fdisk output can contain warning msgs when a partition is not
+aligned on physical sector boundary, like:
+    Partition 4 does not start on physical sector boundary.
+We know that in case of MBR the line we expect to parse always
+starts with canonical path. So let's skip all lines which does
+not start with '/'.
+
+jira: https://issues.redhat.com/browse/RHEL-50947
+---
+ .../libraries/scan_layout.py                           | 10 ++++++++++
+ .../tests/test_scan_partition_layout.py                |  3 +++
+ 2 files changed, 13 insertions(+)
+
+diff --git a/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py b/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py
+index 83d02656..7f4a2a59 100644
+--- a/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py
++++ b/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/libraries/scan_layout.py
+@@ -68,6 +68,16 @@ def get_partition_layout(device):
+ 
+     partitions = []
+     for partition_line in table_iter:
++        if not partition_line.startswith('/'):
++            # the output can contain warning msg when a partition is not aligned
++            # on physical sector boundary, like:
++            # ~~~
++            # Partition 4 does not start on physical sector boundary.
++            # ~~~
++            # We know that in case of MBR the line we expect to parse always
++            # starts with canonical path. So let's use this condition.
++            # See https://issues.redhat.com/browse/RHEL-50947
++            continue
+         # Fields:               Device     Boot   Start      End  Sectors Size Id Type
+         # The line looks like: `/dev/vda1  *       2048  2099199  2097152   1G 83 Linux`
+         part_info = split_on_space_segments(partition_line)
+diff --git a/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/tests/test_scan_partition_layout.py b/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/tests/test_scan_partition_layout.py
+index 743ca71f..9c32e16f 100644
+--- a/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/tests/test_scan_partition_layout.py
++++ b/repos/system_upgrade/el7toel8/actors/scangrubdevpartitionlayout/tests/test_scan_partition_layout.py
+@@ -49,6 +49,9 @@ def test_get_partition_layout(monkeypatch, devices, fs):
+             part_line = '{0}   *     {1}     2099199     1048576   83  {2}'.format(part.name, part.start_offset, fs)
+             fdisk_output.append(part_line)
+ 
++        # add a problematic warning msg to test:
++        # https://issues.redhat.com/browse/RHEL-50947
++        fdisk_output.append('Partition 3 does not start on physical sector boundary.')
+         device_to_fdisk_output[device.name] = fdisk_output
+ 
+     def mocked_run(cmd, *args, **kwargs):
+-- 
+2.47.0
+
diff --git a/SOURCES/0027-Workaround-for-ARM-Upgrades-from-RHEL8-to-RHEL9.5.patch b/SOURCES/0027-Workaround-for-ARM-Upgrades-from-RHEL8-to-RHEL9.5.patch
new file mode 100644
index 0000000..91dde99
--- /dev/null
+++ b/SOURCES/0027-Workaround-for-ARM-Upgrades-from-RHEL8-to-RHEL9.5.patch
@@ -0,0 +1,1756 @@
+From abcf7a5d209d4f9fc054d39cf6866b2809fe382b Mon Sep 17 00:00:00 2001
+From: David Kubek <dkubek@redhat.com>
+Date: Wed, 24 Jul 2024 21:59:53 +0200
+Subject: [PATCH 27/40] Workaround for ARM Upgrades from RHEL8 to RHEL9.5+
+
+Address issue with ARM system upgrades from RHEL 8 to RHEL 9.5+ caused
+by GRUB bootloader incompatibility with newer kernels. When attempting
+to load the RHEL 9.5+ kernel using the RHEL 8 bootloader, the upgrade
+process halts due to a boot crash.
+
+JIRA: 41193
+---
+ repos/system_upgrade/common/libraries/grub.py | 323 ++++++++++++++++--
+ .../common/libraries/tests/test_grub.py       | 244 ++++++++++++-
+ repos/system_upgrade/common/models/efiinfo.py |  27 ++
+ .../addarmbootloaderworkaround/actor.py       |  59 ++++
+ .../libraries/addupgradebootloader.py         | 185 ++++++++++
+ .../tests/test_addarmbootloaderworkaround.py  | 312 +++++++++++++++++
+ .../actors/checkarmbootloader/actor.py        |  16 +-
+ .../libraries/checkarmbootloader.py           |  44 +--
+ .../tests/test_checkarmbootloader.py          |  36 +-
+ .../actors/removeupgradeefientry/actor.py     |  26 ++
+ .../libraries/removeupgradeefientry.py        | 100 ++++++
+ .../tests/test_removeupgradeefientry.py       | 105 ++++++
+ .../el8toel9/models/upgradeefientry.py        |  14 +
+ 13 files changed, 1399 insertions(+), 92 deletions(-)
+ create mode 100644 repos/system_upgrade/common/models/efiinfo.py
+ create mode 100644 repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/actor.py
+ create mode 100644 repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/libraries/addupgradebootloader.py
+ create mode 100644 repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/tests/test_addarmbootloaderworkaround.py
+ create mode 100644 repos/system_upgrade/el8toel9/actors/removeupgradeefientry/actor.py
+ create mode 100644 repos/system_upgrade/el8toel9/actors/removeupgradeefientry/libraries/removeupgradeefientry.py
+ create mode 100644 repos/system_upgrade/el8toel9/actors/removeupgradeefientry/tests/test_removeupgradeefientry.py
+ create mode 100644 repos/system_upgrade/el8toel9/models/upgradeefientry.py
+
+diff --git a/repos/system_upgrade/common/libraries/grub.py b/repos/system_upgrade/common/libraries/grub.py
+index 3c80556e..cd960ea4 100644
+--- a/repos/system_upgrade/common/libraries/grub.py
++++ b/repos/system_upgrade/common/libraries/grub.py
+@@ -1,10 +1,204 @@
+ import os
++import re
+ 
+ from leapp.exceptions import StopActorExecution
+ from leapp.libraries.common import mdraid
+ from leapp.libraries.stdlib import api, CalledProcessError, run
+ from leapp.utils.deprecation import deprecated
+ 
++EFI_MOUNTPOINT = '/boot/efi/'
++"""The path to the required mountpoint for ESP."""
++
++GRUB2_BIOS_ENTRYPOINT = '/boot/grub2'
++"""The entrypoint path of the BIOS GRUB2"""
++
++GRUB2_BIOS_ENV_FILE = os.path.join(GRUB2_BIOS_ENTRYPOINT, 'grubenv')
++"""The path to the env file for GRUB2 in BIOS"""
++
++
++def canonical_path_to_efi_format(canonical_path):
++    r"""Transform the canonical path to the UEFI format.
++
++    e.g. /boot/efi/EFI/redhat/shimx64.efi -> \EFI\redhat\shimx64.efi
++    (just single backslash; so the string needs to be put into apostrophes
++    when used for /usr/sbin/efibootmgr cmd)
++
++    The path has to start with /boot/efi otherwise the path is invalid for UEFI.
++    """
++
++    # We want to keep the last "/" of the EFI_MOUNTPOINT
++    return canonical_path.replace(EFI_MOUNTPOINT[:-1], "").replace("/", "\\")
++
++
++class EFIBootLoaderEntry(object):
++    """
++    Representation of an UEFI boot loader entry.
++    """
++    # pylint: disable=eq-without-hash
++
++    def __init__(self, boot_number, label, active, efi_bin_source):
++        self.boot_number = boot_number
++        """Expected string, e.g. '0001'. """
++
++        self.label = label
++        """Label of the UEFI entry. E.g. 'Redhat'"""
++
++        self.active = active
++        """True when the UEFI entry is active (asterisk is present next to the boot number)"""
++
++        self.efi_bin_source = efi_bin_source
++        """Source of the UEFI binary.
++
++        It could contain various values, e.g.:
++            FvVol(7cb8bdc9-f8eb-4f34-aaea-3ee4af6516a1)/FvFile(462caa21-7614-4503-836e-8ab6f4662331)
++            HD(1,GPT,28c77f6b-3cd0-4b22-985f-c99903835d79,0x800,0x12c000)/File(\\EFI\\redhat\\shimx64.efi)
++            PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0)N.....YM....R,Y.
++        """
++
++    def __eq__(self, other):
++        return all(
++            [
++                self.boot_number == other.boot_number,
++                self.label == other.label,
++                self.active == other.active,
++                self.efi_bin_source == other.efi_bin_source,
++            ]
++        )
++
++    def __ne__(self, other):
++        return not self.__eq__(other)
++
++    def __repr__(self):
++        return 'EFIBootLoaderEntry({boot_number}, {label}, {active}, {efi_bin_source})'.format(
++            boot_number=repr(self.boot_number),
++            label=repr(self.label),
++            active=repr(self.active),
++            efi_bin_source=repr(self.efi_bin_source)
++        )
++
++    def is_referring_to_file(self):
++        """Return True when the boot source is a file.
++
++        Some sources could refer e.g. to PXE boot. Return true if the source
++        refers to a file ("ends with /File(...path...)")
++
++        Does not matter whether the file exists or not.
++        """
++        return '/File(\\' in self.efi_bin_source
++
++    @staticmethod
++    def _efi_path_to_canonical(efi_path):
++        return os.path.join(EFI_MOUNTPOINT, efi_path.replace("\\", "/").lstrip("/"))
++
++    def get_canonical_path(self):
++        """Return expected canonical path for the referred UEFI bin or None.
++
++        Return None in case the entry is not referring to any UEFI bin
++        (e.g. when it refers to a PXE boot).
++        """
++        if not self.is_referring_to_file():
++            return None
++        match = re.search(r'/File\((?P<path>\\.*)\)$', self.efi_bin_source)
++        return EFIBootLoaderEntry._efi_path_to_canonical(match.groups('path')[0])
++
++
++class EFIBootInfo(object):
++    """
++    Data about the current UEFI boot configuration.
++
++    Raise StopActorExecution when:
++        - unable to obtain info about the UEFI configuration.
++        - BIOS is detected.
++        - ESP is not mounted where expected.
++    """
++
++    def __init__(self):
++        if not is_efi():
++            raise StopActorExecution('Unable to collect data about UEFI on a BIOS system.')
++        try:
++            result = run(['/usr/sbin/efibootmgr', '-v'])
++        except CalledProcessError:
++            raise StopActorExecution('Unable to get information about UEFI boot entries.')
++
++        bootmgr_output = result['stdout']
++
++        self.current_bootnum = None
++        """The boot number (str) of the current boot."""
++        self.next_bootnum = None
++        """The boot number (str) of the next boot."""
++        self.boot_order = tuple()
++        """The tuple of the UEFI boot loader entries in the boot order."""
++        self.entries = {}
++        """The UEFI boot loader entries {'boot_number': EFIBootLoader}"""
++
++        self._parse_efi_boot_entries(bootmgr_output)
++        self._parse_current_bootnum(bootmgr_output)
++        self._parse_next_bootnum(bootmgr_output)
++        self._parse_boot_order(bootmgr_output)
++        self._print_loaded_info()
++
++    def _parse_efi_boot_entries(self, bootmgr_output):
++        """
++        Return dict of UEFI boot loader entries: {"<boot_number>": EFIBootLoader}
++        """
++
++        self.entries = {}
++        regexp_entry = re.compile(
++            r"^Boot(?P<bootnum>[a-zA-Z0-9]+)(?P<active>\*?)\s*(?P<label>.*?)\t(?P<bin_source>.*)$"
++        )
++
++        for line in bootmgr_output.splitlines():
++            match = regexp_entry.match(line)
++            if not match:
++                continue
++
++            self.entries[match.group('bootnum')] = EFIBootLoaderEntry(
++                boot_number=match.group('bootnum'),
++                label=match.group('label'),
++                active='*' in match.group('active'),
++                efi_bin_source=match.group('bin_source'),
++            )
++
++        if not self.entries:
++            # it's not expected that no entry exists
++            raise StopActorExecution('UEFI: Unable to detect any UEFI bootloader entry.')
++
++    def _parse_key_value(self, bootmgr_output, key):
++        # e.g.: <key>: <value>
++        for line in bootmgr_output.splitlines():
++            if line.startswith(key + ':'):
++                return line.split(':')[1].strip()
++
++        return None
++
++    def _parse_current_bootnum(self, bootmgr_output):
++        # e.g.: BootCurrent: 0002
++        self.current_bootnum = self._parse_key_value(bootmgr_output, 'BootCurrent')
++
++        if self.current_bootnum is None:
++            raise StopActorExecution('UEFI: Unable to detect current boot number.')
++
++    def _parse_next_bootnum(self, bootmgr_output):
++        # e.g.: BootNext: 0002
++        self.next_bootnum = self._parse_key_value(bootmgr_output, 'BootNext')
++
++    def _parse_boot_order(self, bootmgr_output):
++        # e.g.:  BootOrder: 0001,0002,0000,0003
++        read_boot_order = self._parse_key_value(bootmgr_output, 'BootOrder')
++        self.boot_order = tuple(read_boot_order.split(','))
++
++        if self.boot_order is None:
++            raise StopActorExecution('UEFI: Unable to detect current boot order.')
++
++    def _print_loaded_info(self):
++        msg = 'Bootloader setup:'
++        msg += '\nCurrent boot: %s' % self.current_bootnum
++        msg += '\nBoot order: %s\nBoot entries:' % ', '.join(self.boot_order)
++        for bootnum, entry in self.entries.items():
++            msg += '\n- %s: %s' % (bootnum, entry.label.rstrip())
++
++        api.current_logger().debug(msg)
++
+ 
+ def has_grub(blk_dev):
+     """
+@@ -26,17 +220,88 @@ def has_grub(blk_dev):
+     return test in mbr
+ 
+ 
++def _get_partition(directory):
++    """
++    Get partition name of `directory`.
++    """
++
++    try:
++        result = run(['grub2-probe', '--target=device', directory])
++    except CalledProcessError:
++        msg = 'Could not get name of underlying {} partition'.format(directory)
++        api.current_logger().warning(msg)
++        raise StopActorExecution(msg)
++    except OSError:
++        msg = ('Could not get name of underlying {} partition:'
++               ' grub2-probe is missing.'
++               ' Possibly called on system that does not use GRUB2?').format(directory)
++        api.current_logger().warning(msg)
++        raise StopActorExecution(msg)
++
++    partition = result['stdout'].strip()
++    api.current_logger().info('{} is on {}'.format(directory, partition))
++
++    return partition
++
++
++def get_boot_partition():
++    """
++    Get /boot partition name.
++    """
++
++    return _get_partition('/boot')
++
++
++def is_efi():
++    """
++    Return True if UEFI is used.
++
++    NOTE(pstodulk): the check doesn't have to be valid for hybrid boot (e.g. AWS, Azure, ..)
++    """
++
++    return os.path.exists("/sys/firmware/efi")
++
++
++def get_efi_partition():
++    """
++    Return the EFI System Partition (ESP).
++
++    Raise StopActorExecution when:
++        - UEFI is not detected,
++        - ESP is not mounted where expected,
++        - the partition can't be obtained from GRUB.
++    """
++
++    if not is_efi():
++        raise StopActorExecution('Unable to get ESP when BIOS is used.')
++
++    if not os.path.exists(EFI_MOUNTPOINT) or not os.path.ismount(EFI_MOUNTPOINT):
++        raise StopActorExecution(
++            'The UEFI has been detected but the ESP is not mounted in /boot/efi as required.'
++        )
++
++    return _get_partition('/boot/efi/')
++
++
+ def blk_dev_from_partition(partition):
+     """
+-    Find parent device of /boot partition
++    Get the block device.
++
++    In case of the block device itself (e.g. /dev/sda), return just the block
++    device. In case of a partition, return its block device:
++        /dev/sda  -> /dev/sda
++        /dev/sda1 -> /dev/sda
++
++    Raise CalledProcessError when unable to get the block device.
+     """
++
+     try:
+         result = run(['lsblk', '-spnlo', 'name', partition])
+     except CalledProcessError:
+-        api.current_logger().warning(
+-            'Could not get parent device of {} partition'.format(partition)
+-        )
+-        raise StopActorExecution()  # TODO: return some meaningful value/error
++        msg = 'Could not get parent device of {} partition'.format(partition)
++        api.current_logger().warning(msg)
++        raise StopActorExecution(msg)
++
+     # lsblk "-s" option prints dependencies in inverse order, so the parent device will always
+     # be the last or the only device.
+     # Command result example:
+@@ -44,28 +309,32 @@ def blk_dev_from_partition(partition):
+     return result['stdout'].strip().split()[-1]
+ 
+ 
+-def get_boot_partition():
+-    """
+-    Get /boot partition name.
++def get_device_number(device):
++    """Get the partition number of a particular device.
++
++    This method will use `blkid` to determinate what is the partition number
++    related to a particular device.
++
++    :param device: The device to be analyzed.
++    :type device: str
++    :return: The device partition number.
++    :rtype: int
+     """
++
+     try:
+-        # call grub2-probe to identify /boot partition
+-        result = run(['grub2-probe', '--target=device', '/boot'])
+-    except CalledProcessError:
+-        api.current_logger().warning(
+-            'Could not get name of underlying /boot partition'
++        result = run(
++            ['/usr/sbin/blkid', '-p', '-s', 'PART_ENTRY_NUMBER', device],
+         )
+-        raise StopActorExecution()  # TODO: return some meaningful value/error
+-    except OSError:
+-        api.current_logger().warning(
+-            'Could not get name of underlying /boot partition:'
+-            ' grub2-probe is missing.'
+-            ' Possibly called on system that does not use GRUB2?'
+-        )
+-        raise StopActorExecution()  # TODO: return some meaningful value/error
+-    boot_partition = result['stdout'].strip()
+-    api.current_logger().info('/boot is on {}'.format(boot_partition))
+-    return boot_partition
++        output = result['stdout'].strip()
++    except CalledProcessError:
++        raise StopActorExecution('Unable to get information about the {} device'.format(device))
++
++    if not output:
++        raise StopActorExecution('The {} device has no PART_ENTRY_NUMBER'.format(device))
++
++    partition_number = output.split('PART_ENTRY_NUMBER=')[-1].replace('"', '')
++
++    return int(partition_number)
+ 
+ 
+ def get_grub_devices():
+@@ -94,6 +363,12 @@ def get_grub_devices():
+     return have_grub
+ 
+ 
++def get_efi_device():
++    """Get the block device on which GRUB is installed."""
++
++    return blk_dev_from_partition(get_efi_partition())
++
++
+ @deprecated(since='2023-06-23', message='This function has been replaced by get_grub_devices')
+ def get_grub_device():
+     """
+diff --git a/repos/system_upgrade/common/libraries/tests/test_grub.py b/repos/system_upgrade/common/libraries/tests/test_grub.py
+index 6f13538c..9bc9f682 100644
+--- a/repos/system_upgrade/common/libraries/tests/test_grub.py
++++ b/repos/system_upgrade/common/libraries/tests/test_grub.py
+@@ -9,7 +9,10 @@ from leapp.libraries.stdlib import api, CalledProcessError
+ from leapp.models import DefaultGrub, DefaultGrubInfo
+ from leapp.utils.deprecation import suppress_deprecation
+ 
+-BOOT_PARTITION = '/dev/vda1'
++EFI_PARTITION = '/dev/vda1'
++EFI_DEVICE = '/dev/vda'
++
++BOOT_PARTITION = '/dev/vda2'
+ BOOT_DEVICE = '/dev/vda'
+ 
+ MD_BOOT_DEVICE = '/dev/md0'
+@@ -20,6 +23,72 @@ INVALID_DD = b'Nothing to see here!'
+ 
+ CUR_DIR = os.path.dirname(os.path.abspath(__file__))
+ 
++# pylint: disable=E501
++# flake8: noqa: E501
++EFIBOOTMGR_OUTPUT = r"""
++BootCurrent: 0006
++Timeout: 5 seconds
++BootOrder: 0003,0004,0001,0006,0000,0002,0007,0005
++Boot0000  redhat	VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
++Boot0001* UEFI: Built-in EFI Shell	VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO
++Boot0002  Fedora	VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
++Boot0003* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:8F:A4:E8	PcieRoot(0x40000)/Pci(0x1,0x0)/Pci(0x0,0x0)/MAC(d85ed38fa4e8,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
++Boot0004* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:8F:A4:E9	PcieRoot(0x40000)/Pci(0x1,0x0)/Pci(0x0,0x1)/MAC(d85ed38fa4e9,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
++Boot0005  centos	VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
++Boot0006* Red Hat Enterprise Linux	HD(1,GPT,050609f2-0ad0-43cf-8cdf-e53132b898c9,0x800,0x12c000)/File(\EFI\REDHAT\SHIMAA64.EFI)
++Boot0007  CentOS Stream	VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
++"""
++EFIBOOTMGR_OUTPUT_ENTRIES = {
++    '0000': grub.EFIBootLoaderEntry(
++        '0000',
++        'redhat',
++        False,
++        'VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)'
++    ),
++    '0001': grub.EFIBootLoaderEntry(
++        '0001',
++        'UEFI: Built-in EFI Shell',
++        True,
++        'VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO'
++    ),
++    '0002': grub.EFIBootLoaderEntry(
++        '0002',
++        'Fedora',
++        False,
++        'VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)'
++    ),
++    '0003': grub.EFIBootLoaderEntry(
++        '0003',
++        'UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:8F:A4:E8',
++        True,
++        'PcieRoot(0x40000)/Pci(0x1,0x0)/Pci(0x0,0x0)/MAC(d85ed38fa4e8,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO'
++    ),
++    '0004': grub.EFIBootLoaderEntry(
++        '0004',
++        'UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:8F:A4:E9',
++        True,
++        'PcieRoot(0x40000)/Pci(0x1,0x0)/Pci(0x0,0x1)/MAC(d85ed38fa4e9,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO'
++    ),
++    '0005': grub.EFIBootLoaderEntry(
++        '0005',
++        'centos',
++        False,
++        'VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)'
++    ),
++    '0006': grub.EFIBootLoaderEntry(
++        '0006',
++        'Red Hat Enterprise Linux',
++        True,
++        'HD(1,GPT,050609f2-0ad0-43cf-8cdf-e53132b898c9,0x800,0x12c000)/File(\\EFI\\REDHAT\\SHIMAA64.EFI)'
++    ),
++    '0007': grub.EFIBootLoaderEntry(
++        '0007',
++        'CentOS Stream',
++        False,
++        'VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)'
++    ),
++}
++
+ 
+ def raise_call_error(args=None):
+     raise CalledProcessError(
+@@ -37,24 +106,37 @@ class RunMocked(object):
+         self.raise_err = raise_err
+         self.boot_on_raid = boot_on_raid
+ 
+-    def __call__(self, args, encoding=None):
++    def __call__(self, args, encoding=None, checked=True):
+         self.called += 1
+         self.args = args
+         stdout = ''
+         if self.raise_err:
+-            raise_call_error(args)
++            if checked is True:
++                raise_call_error(args)
+ 
+-        if self.args == ['grub2-probe', '--target=device', '/boot']:
+-            stdout = MD_BOOT_DEVICE if self.boot_on_raid else BOOT_PARTITION
++            return {'signal': None, 'exit_code': 1, 'pid': 0, 'stdout': 'fake', 'stderr': 'fake'}
++
++        if self.args[:-1] == ['grub2-probe', '--target=device']:
++            directory = self.args[-1]
++            if directory == '/boot':
++                stdout = MD_BOOT_DEVICE if self.boot_on_raid else BOOT_PARTITION
++            elif directory == '/boot/efi/':
++                stdout = EFI_PARTITION
++            else:
++                raise ValueError('Invalid argument {}'.format(directory))
+ 
+         elif self.args == ['lsblk', '-spnlo', 'name', BOOT_PARTITION]:
+             stdout = BOOT_DEVICE
++        elif self.args == ['lsblk', '-spnlo', 'name', EFI_PARTITION]:
++            stdout = EFI_DEVICE
+         elif self.args[:-1] == ['lsblk', '-spnlo', 'name']:
+             stdout = self.args[-1][:-1]
++        elif self.args == ['/usr/sbin/efibootmgr', '-v']:
++            stdout = EFIBOOTMGR_OUTPUT
+         else:
+             assert False, 'RunMockedError: Called unexpected cmd not covered by test: {}'.format(self.args)
+ 
+-        return {'stdout': stdout}
++        return {'stdout': stdout, 'exit_code': 0}
+ 
+ 
+ def open_mocked(fn, flags):
+@@ -190,3 +272,153 @@ def test_get_grub_devices_raid_device(monkeypatch, component_devs, expected):
+     assert sorted(expected) == result
+     assert not api.current_logger.warnmsg
+     assert 'GRUB is installed on {}'.format(",".join(result)) in api.current_logger.infomsg
++
++
++def test_canonical_path_to_efi_format():
++    assert grub.canonical_path_to_efi_format('/boot/efi/EFI/redhat/shimx64.efi') == r'\EFI\redhat\shimx64.efi'
++
++
++def test_EFIBootLoaderEntry__efi_path_to_canonical():
++    real = grub.EFIBootLoaderEntry._efi_path_to_canonical(r'\EFI\redhat\shimx64.efi')
++    expected = '/boot/efi/EFI/redhat/shimx64.efi'
++    assert real == expected
++
++
++def test_canonical_to_efi_to_canonical():
++    canonical = '/boot/efi/EFI/redhat/shimx64.efi'
++    efi = grub.canonical_path_to_efi_format(canonical)
++
++    assert grub.EFIBootLoaderEntry._efi_path_to_canonical(efi) == canonical
++
++
++def test_efi_path_to_canonical_to_efi():
++    efi = r'\EFI\redhat\shimx64.efi'
++    canonical = grub.EFIBootLoaderEntry._efi_path_to_canonical(efi)
++
++    assert grub.canonical_path_to_efi_format(canonical) == efi
++
++
++@pytest.mark.parametrize(
++    'efi_bin_source, expected',
++    [
++        ('FvVol(7cb8bdc9-f8eb-4f34-aaea-3ee4af6516a1)/FvFile(462caa21-7614-4503-836e-8ab6f4662331) ', False),
++        ('PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0)N.....YM....R,Y.', False),
++        ('HD(1,GPT,28c77f6b-3cd0-4b22-985f-c99903835d79,0x800,0x12c000)/File(\\EFI\\redhat\\shimx64.efi)', True),
++    ]
++)
++def test_EFIBootLoaderEntry_is_referring_to_file(efi_bin_source, expected):
++    bootloader_entry = grub.EFIBootLoaderEntry('0001', 'Redhat', False, efi_bin_source)
++    assert bootloader_entry.is_referring_to_file() is expected
++
++
++@pytest.mark.parametrize(
++    'efi_bin_source, expected',
++    [
++        ('FvVol(7cb8bdc9-f8eb-4f34-aaea-3ee4af6516a1)/FvFile(462caa21-7614-4503-836e-8ab6f4662331) ', None),
++        ('PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0)N.....YM....R,Y.', None),
++        ('HD(1,GPT,28c77f6b-3cd0-4b22-985f-c99903835d79,0x800,0x12c000)/File(\\EFI\\redhat\\shimx64.efi)',
++         '/boot/efi/EFI/redhat/shimx64.efi'),
++    ]
++)
++def test_EFIBootLoaderEntry_get_canonical_path(efi_bin_source, expected):
++    bootloader_entry = grub.EFIBootLoaderEntry('0001', 'Redhat', False, efi_bin_source)
++    assert bootloader_entry.get_canonical_path() == expected
++
++
++def test_is_efi_success(monkeypatch):
++    def exists_mocked(path):
++        if path == '/sys/firmware/efi':
++            return True
++        raise ValueError('Unexpected path checked: {}'.format(path))
++
++    monkeypatch.setattr(os.path, 'exists', exists_mocked)
++
++    assert grub.is_efi() is True
++
++
++def test_is_efi_fail(monkeypatch):
++    def exists_mocked(path):
++        if path == '/sys/firmware/efi':
++            return False
++        raise ValueError('Unexpected path checked: {}'.format(path))
++
++    monkeypatch.setattr(os.path, 'exists', exists_mocked)
++
++    assert grub.is_efi() is False
++
++
++def test_get_efi_partition_success(monkeypatch):
++    monkeypatch.setattr(grub, 'run', RunMocked())
++    monkeypatch.setattr(grub, 'is_efi', lambda: True)
++    monkeypatch.setattr(os.path, 'exists', lambda path: path == '/boot/efi/')
++    monkeypatch.setattr(os.path, 'ismount', lambda path: path == '/boot/efi/')
++
++    assert grub.get_efi_partition() == EFI_PARTITION
++
++
++def test_get_efi_partition_success_fail_not_efi(monkeypatch):
++    monkeypatch.setattr(grub, 'run', RunMocked())
++    monkeypatch.setattr(grub, 'is_efi', lambda: False)
++    monkeypatch.setattr(os.path, 'exists', lambda path: path == '/boot/efi/')
++    monkeypatch.setattr(os.path, 'ismount', lambda path: path == '/boot/efi/')
++
++    with pytest.raises(StopActorExecution) as err:
++        grub.get_efi_partition()
++        assert 'Unable to get ESP when BIOS is used.' in err
++
++
++def test_get_efi_partition_success_fail_not_exists(monkeypatch):
++    monkeypatch.setattr(grub, 'run', RunMocked())
++    monkeypatch.setattr(grub, 'is_efi', lambda: True)
++    monkeypatch.setattr(os.path, 'exists', lambda path: False)
++    monkeypatch.setattr(os.path, 'ismount', lambda path: path == '/boot/efi/')
++
++    with pytest.raises(StopActorExecution) as err:
++        grub.get_efi_partition()
++        assert 'The UEFI has been detected but' in err
++
++
++def test_get_efi_partition_success_fail_not_mounted(monkeypatch):
++    monkeypatch.setattr(grub, 'run', RunMocked())
++    monkeypatch.setattr(grub, 'is_efi', lambda: True)
++    monkeypatch.setattr(os.path, 'exists', lambda path: path == '/boot/efi/')
++    monkeypatch.setattr(os.path, 'ismount', lambda path: False)
++
++    with pytest.raises(StopActorExecution) as err:
++        grub.get_efi_partition()
++        assert 'The UEFI has been detected but' in err
++
++
++def test_get_efi_device(monkeypatch):
++    monkeypatch.setattr(grub, 'run', RunMocked())
++    monkeypatch.setattr(grub, 'get_efi_partition', lambda: EFI_PARTITION)
++
++    assert grub.get_efi_device() == EFI_DEVICE
++
++
++def test_EFIBootInfo_fail_not_efi(monkeypatch):
++    monkeypatch.setattr(grub, 'is_efi', lambda: False)
++
++    with pytest.raises(StopActorExecution) as err:
++        grub.EFIBootInfo()
++        assert 'Unable to collect data about UEFI on a BIOS system.' in err
++
++
++def test_EFIBootInfo_fail_efibootmgr_error(monkeypatch):
++    monkeypatch.setattr(grub, 'is_efi', lambda: True)
++    monkeypatch.setattr(grub, 'run', RunMocked(raise_err=True))
++
++    with pytest.raises(StopActorExecution) as err:
++        grub.EFIBootInfo()
++        assert 'Unable to get information about UEFI boot entries.' in err
++
++
++def test_EFIBootInfo_success(monkeypatch):
++    monkeypatch.setattr(grub, 'is_efi', lambda: True)
++    monkeypatch.setattr(grub, 'run', RunMocked())
++
++    efibootinfo = grub.EFIBootInfo()
++    assert efibootinfo.current_bootnum == '0006'
++    assert efibootinfo.next_bootnum is None
++    assert efibootinfo.boot_order == ('0003', '0004', '0001', '0006', '0000', '0002', '0007', '0005')
++    assert efibootinfo.entries == EFIBOOTMGR_OUTPUT_ENTRIES
+diff --git a/repos/system_upgrade/common/models/efiinfo.py b/repos/system_upgrade/common/models/efiinfo.py
+new file mode 100644
+index 00000000..b989c389
+--- /dev/null
++++ b/repos/system_upgrade/common/models/efiinfo.py
+@@ -0,0 +1,27 @@
++from leapp.models import fields, Model
++from leapp.topics import SystemInfoTopic
++
++
++class EFIBootEntry(Model):
++    """
++    Information about an UEFI boot loader entry.
++    """
++    topic = SystemInfoTopic
++
++    boot_number = fields.String()
++    """Expected string, e.g. '0001'. """
++
++    label = fields.String()
++    """Label of the UEFI entry. E.g. 'Redhat'"""
++
++    active = fields.Boolean()
++    """True when the UEFI entry is active (asterisk is present next to the boot number)"""
++
++    efi_bin_source = fields.String()
++    """Source of the UEFI binary.
++
++    It could contain various values, e.g.:
++        FvVol(7cb8bdc9-f8eb-4f34-aaea-3ee4af6516a1)/FvFile(462caa21-7614-4503-836e-8ab6f4662331)
++        HD(1,GPT,28c77f6b-3cd0-4b22-985f-c99903835d79,0x800,0x12c000)/File(\\EFI\\redhat\\shimx64.efi)
++        PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0)N.....YM....R,Y.
++    """
+diff --git a/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/actor.py b/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/actor.py
+new file mode 100644
+index 00000000..54e8aca8
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/actor.py
+@@ -0,0 +1,59 @@
++from leapp.actors import Actor
++from leapp.libraries.actor import addupgradebootloader
++from leapp.libraries.common.config import architecture
++from leapp.libraries.common.config.version import matches_target_version
++from leapp.models import ArmWorkaroundEFIBootloaderInfo, TargetUserSpaceInfo
++from leapp.tags import InterimPreparationPhaseTag, IPUWorkflowTag
++
++
++class AddArmBootloaderWorkaround(Actor):
++    """
++    Workaround for ARM Upgrades from RHEL8 to RHEL9.5 onwards
++
++    This actor addresses an issue encountered during the upgrade process on ARM
++    systems. Specifically, the problem arises due to an incompatibility between
++    the GRUB bootloader used in RHEL 8 and the newer kernels from RHEL 9.5
++    onwards. When the kernel of the target system is loaded using the
++    bootloader from the source system, this incompatibility causes the
++    bootloader to crash, halting the upgrade.
++
++    To mitigate this issue, the following steps are implemented:
++
++    Before the Upgrade (handled by CheckArmBootloader):
++
++    * Install required RPM packages:
++      - Specific packages, including an updated GRUB bootloader and shim for
++        ARM (grub2-efi-aa64 and shim-aa64), are installed to ensure
++        compatibility with the newer kernel.
++
++    Before the Upgrade (this actor):
++
++    * Create a new Upgrade EFI entry:
++      - A new EFI boot entry is created and populated with the updated RHEL 9
++        bootloader that is compatible with the new kernel.
++
++    * Preserve the original EFI boot entry and GRUB configuration:
++      - The original EFI boot entry and GRUB configuration remain unchanged to
++        ensure system stability.
++
++    After the Upgrade (handled by RemoveUpgradeEFIEntry):
++
++    * Remove the upgrade EFI boot entry:
++      - The temporary EFI boot entry created for the upgrade is removed to
++        restore the system to its pre-upgrade state.
++
++    """
++
++    name = 'add_arm_bootloader_workaround'
++    consumes = (TargetUserSpaceInfo,)
++    produces = (ArmWorkaroundEFIBootloaderInfo,)
++    tags = (IPUWorkflowTag, InterimPreparationPhaseTag)
++
++    def process(self):
++        if not architecture.matches_architecture(architecture.ARCH_ARM64):
++            return
++
++        if matches_target_version('< 9.5'):
++            return
++
++        addupgradebootloader.process()
+diff --git a/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/libraries/addupgradebootloader.py b/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/libraries/addupgradebootloader.py
+new file mode 100644
+index 00000000..5e9bf5c6
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/libraries/addupgradebootloader.py
+@@ -0,0 +1,185 @@
++import os
++import shutil
++
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.common import mounting
++from leapp.libraries.common.grub import (
++    canonical_path_to_efi_format,
++    EFIBootInfo,
++    get_device_number,
++    get_efi_device,
++    get_efi_partition,
++    GRUB2_BIOS_ENTRYPOINT,
++    GRUB2_BIOS_ENV_FILE
++)
++from leapp.libraries.stdlib import api, CalledProcessError, run
++from leapp.models import ArmWorkaroundEFIBootloaderInfo, EFIBootEntry, TargetUserSpaceInfo
++
++UPGRADE_EFI_ENTRY_LABEL = 'Leapp Upgrade'
++
++ARM_SHIM_PACKAGE_NAME = 'shim-aa64'
++ARM_GRUB_PACKAGE_NAME = 'grub2-efi-aa64'
++
++EFI_MOUNTPOINT = '/boot/efi/'
++LEAPP_EFIDIR_CANONICAL_PATH = os.path.join(EFI_MOUNTPOINT, 'EFI/leapp/')
++RHEL_EFIDIR_CANONICAL_PATH = os.path.join(EFI_MOUNTPOINT, 'EFI/redhat/')
++
++CONTAINER_DOWNLOAD_DIR = '/tmp_pkg_download_dir'
++
++
++def _copy_file(src_path, dst_path):
++    if os.path.exists(dst_path):
++        api.current_logger().debug("The {} file already exists and its content will be overwritten.".format(dst_path))
++
++    api.current_logger().info("Copying {} to {}".format(src_path, dst_path))
++    try:
++        shutil.copy2(src_path, dst_path)
++    except (OSError, IOError) as err:
++        raise StopActorExecutionError('I/O error({}): {}'.format(err.errno, err.strerror))
++
++
++def process():
++    userspace = _get_userspace_info()
++
++    with mounting.NspawnActions(base_dir=userspace.path) as context:
++        _ensure_clean_environment()
++
++        # NOTE(dkubek): Assumes required shim-aa64 and grub2-efi-aa64 packages
++        # have been installed
++        context.copytree_from(RHEL_EFIDIR_CANONICAL_PATH, LEAPP_EFIDIR_CANONICAL_PATH)
++
++        _copy_grub_files(['grubenv', 'grub.cfg'], ['user.cfg'])
++        _link_grubenv_to_upgrade_entry()
++
++        efibootinfo = EFIBootInfo()
++        current_boot_entry = efibootinfo.entries[efibootinfo.current_bootnum]
++        upgrade_boot_entry = _add_upgrade_boot_entry(efibootinfo)
++        _set_bootnext(upgrade_boot_entry.boot_number)
++
++        efibootentry_fields = ['boot_number', 'label', 'active', 'efi_bin_source']
++        api.produce(
++            ArmWorkaroundEFIBootloaderInfo(
++                original_entry=EFIBootEntry(**{f: getattr(current_boot_entry, f) for f in efibootentry_fields}),
++                upgrade_entry=EFIBootEntry(**{f: getattr(upgrade_boot_entry, f) for f in efibootentry_fields}),
++            )
++        )
++
++
++def _get_userspace_info():
++    msgs = api.consume(TargetUserSpaceInfo)
++
++    userspace = next(msgs, None)
++    if userspace is None:
++        raise StopActorExecutionError('Could not retrieve TargetUserSpaceInfo!')
++
++    if next(msgs, None):
++        api.current_logger().warning('Unexpectedly received more than one TargetUserSpaceInfo message.')
++
++    return userspace
++
++
++def _ensure_clean_environment():
++    if os.path.exists(LEAPP_EFIDIR_CANONICAL_PATH):
++        shutil.rmtree(LEAPP_EFIDIR_CANONICAL_PATH)
++
++
++def _copy_grub_files(required, optional):
++    """
++    Copy grub files from redhat/ dir to the /boot/efi/EFI/leapp/ dir.
++    """
++
++    all_files = required + optional
++    for filename in all_files:
++        src_path = os.path.join(RHEL_EFIDIR_CANONICAL_PATH, filename)
++        dst_path = os.path.join(LEAPP_EFIDIR_CANONICAL_PATH, filename)
++
++        if not os.path.exists(src_path):
++            if filename in required:
++                msg = 'Required file {} does not exists. Aborting.'.format(filename)
++                raise StopActorExecutionError(msg)
++
++            continue
++
++        _copy_file(src_path, dst_path)
++
++
++def _link_grubenv_to_upgrade_entry():
++    upgrade_env_file = os.path.join(LEAPP_EFIDIR_CANONICAL_PATH, 'grubenv')
++    upgrade_env_file_relpath = os.path.relpath(upgrade_env_file, GRUB2_BIOS_ENTRYPOINT)
++    run(['ln', '--symbolic', '--force', upgrade_env_file_relpath, GRUB2_BIOS_ENV_FILE])
++
++
++def _add_upgrade_boot_entry(efibootinfo):
++    """
++    Create a new UEFI bootloader entry with a upgrade label and bin file.
++
++    If an entry for the label and bin file already exists no new entry
++    will be created.
++
++    Return the upgrade efi entry (EFIEntry).
++    """
++
++    dev_number = get_device_number(get_efi_partition())
++    blk_dev = get_efi_device()
++
++    tmp_efi_path = os.path.join(LEAPP_EFIDIR_CANONICAL_PATH, 'shimaa64.efi')
++    if os.path.exists(tmp_efi_path):
++        efi_path = canonical_path_to_efi_format(tmp_efi_path)
++    else:
++        raise StopActorExecutionError('Unable to detect upgrade UEFI binary file.')
++
++    upgrade_boot_entry = _get_upgrade_boot_entry(efibootinfo, efi_path, UPGRADE_EFI_ENTRY_LABEL)
++    if upgrade_boot_entry is not None:
++        return upgrade_boot_entry
++
++    cmd = [
++        "/usr/sbin/efibootmgr",
++        "--create",
++        "--disk",
++        blk_dev,
++        "--part",
++        str(dev_number),
++        "--loader",
++        efi_path,
++        "--label",
++        UPGRADE_EFI_ENTRY_LABEL,
++    ]
++
++    try:
++        run(cmd)
++    except CalledProcessError:
++        raise StopActorExecutionError('Unable to add a new UEFI bootloader entry for upgrade.')
++
++    # Sanity check new boot entry has been added
++    efibootinfo_new = EFIBootInfo()
++    upgrade_boot_entry = _get_upgrade_boot_entry(efibootinfo_new, efi_path, UPGRADE_EFI_ENTRY_LABEL)
++    if upgrade_boot_entry is None:
++        raise StopActorExecutionError('Unable to find the new UEFI bootloader entry after adding it.')
++
++    return upgrade_boot_entry
++
++
++def _get_upgrade_boot_entry(efibootinfo, efi_path, label):
++    """
++    Get the UEFI boot entry with label `label` and EFI binary path `efi_path`
++
++    Return EFIBootEntry or None if not found.
++    """
++
++    for entry in efibootinfo.entries.values():
++        if entry.label == label and efi_path in entry.efi_bin_source:
++            return entry
++
++    return None
++
++
++def _set_bootnext(boot_number):
++    """
++    Set the BootNext UEFI entry to `boot_number`.
++    """
++
++    api.current_logger().debug('Setting {} as BootNext'.format(boot_number))
++    try:
++        run(['/usr/sbin/efibootmgr', '--bootnext', boot_number])
++    except CalledProcessError:
++        raise StopActorExecutionError('Could not set boot entry {} as BootNext.'.format(boot_number))
+diff --git a/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/tests/test_addarmbootloaderworkaround.py b/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/tests/test_addarmbootloaderworkaround.py
+new file mode 100644
+index 00000000..d2015272
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/addarmbootloaderworkaround/tests/test_addarmbootloaderworkaround.py
+@@ -0,0 +1,312 @@
++import os
++
++import pytest
++
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.actor import addupgradebootloader
++from leapp.libraries.common.grub import EFIBootLoaderEntry
++from leapp.libraries.common.testutils import CurrentActorMocked, logger_mocked, make_OSError, produce_mocked
++from leapp.libraries.stdlib import api, CalledProcessError
++from leapp.models import ArmWorkaroundEFIBootloaderInfo, EFIBootEntry, TargetUserSpaceInfo
++
++TEST_RHEL_EFI_ENTRY = EFIBootLoaderEntry(
++            '0000',
++            'Red Hat Enterprise Linux',
++            True,
++            'File(\\EFI\\redhat\\shimaa64.efi)'
++        )
++TEST_UPGRADE_EFI_ENTRY = EFIBootLoaderEntry(
++            '0001',
++            addupgradebootloader.UPGRADE_EFI_ENTRY_LABEL,
++            True,
++            'File(\\EFI\\leapp\\shimaa64.efi)'
++        )
++
++
++class MockEFIBootInfo:
++    def __init__(self, entries):
++        assert len(entries) > 0
++
++        self.boot_order = tuple(entry.boot_number for entry in entries)
++        self.current_bootnum = self.boot_order[0]
++        self.next_bootnum = None
++        self.entries = {
++            entry.boot_number: entry for entry in entries
++        }
++
++
++class IsolatedActionsMocked(object):
++    def __init__(self):
++        self.copytree_from_calls = []
++
++    def __enter__(self):
++        return self
++
++    def __exit__(self, *args):
++        pass
++
++    def copytree_from(self, src, dst):
++        self.copytree_from_calls.append((src, dst))
++
++
++@pytest.mark.parametrize('dst_exists', [True, False])
++def test_copy_file(monkeypatch, dst_exists):
++    src_path = '/src/file.txt'
++    dst_path = '/dst/file.txt'
++    logger = logger_mocked()
++
++    copy2_calls = []
++
++    def mock_copy2(src, dst):
++        copy2_calls.append((src, dst))
++
++    monkeypatch.setattr(os.path, 'exists', lambda path: dst_exists)
++    monkeypatch.setattr('shutil.copy2', mock_copy2)
++    monkeypatch.setattr(api, 'current_logger', logger)
++
++    addupgradebootloader._copy_file(src_path, dst_path)
++
++    assert copy2_calls == [(src_path, dst_path)]
++    if dst_exists:
++        assert 'The {} file already exists and its content will be overwritten.'.format(dst_path) in logger.dbgmsg
++
++    assert 'Copying {} to {}'.format(src_path, dst_path) in logger.infomsg
++
++
++def test_copy_file_error(monkeypatch):
++    src_path = '/src/file.txt'
++    dst_path = '/dst/file.txt'
++    logger = logger_mocked()
++
++    def mock_copy2_fail(src, dst):
++        raise make_OSError(5)
++
++    monkeypatch.setattr(os.path, 'exists', lambda path: False)
++    monkeypatch.setattr('shutil.copy2', mock_copy2_fail)
++    monkeypatch.setattr(api, 'current_logger', logger)
++
++    with pytest.raises(StopActorExecutionError, match=r'I/O error\(5\)'):
++        addupgradebootloader._copy_file(src_path, dst_path)
++
++
++def test_get_userspace_info(monkeypatch):
++    target_info_mock = TargetUserSpaceInfo(path='/USERSPACE', scratch='/SCRATCH', mounts='/MOUNTS')
++
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[target_info_mock]))
++
++    result = addupgradebootloader._get_userspace_info()
++    assert result == target_info_mock
++
++
++def test_get_userspace_info_none(monkeypatch):
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[]))
++
++    with pytest.raises(StopActorExecutionError, match='Could not retrieve TargetUserSpaceInfo'):
++        addupgradebootloader._get_userspace_info()
++
++
++def test_get_userspace_info_multiple(monkeypatch):
++    logger = logger_mocked()
++    monkeypatch.setattr(api, 'current_logger', logger)
++
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[
++        TargetUserSpaceInfo(path='/USERSPACE1', scratch='/SCRATCH1', mounts='/MOUNTS1'),
++        TargetUserSpaceInfo(path='/USERSPACE2', scratch='/SCRATCH2', mounts='/MOUNTS2'),
++    ]))
++
++    addupgradebootloader._get_userspace_info()
++
++    assert 'Unexpectedly received more than one TargetUserSpaceInfo message.' in logger.warnmsg
++
++
++@pytest.mark.parametrize('exists', [True, False])
++def test_ensure_clean_environment(monkeypatch, exists):
++    rmtree_calls = []
++
++    monkeypatch.setattr('os.path.exists', lambda path: exists)
++    monkeypatch.setattr('shutil.rmtree', rmtree_calls.append)
++
++    addupgradebootloader._ensure_clean_environment()
++
++    assert rmtree_calls == ([addupgradebootloader.LEAPP_EFIDIR_CANONICAL_PATH] if exists else [])
++
++
++def test_copy_grub_files(monkeypatch):
++    copy_file_calls = []
++
++    def mock_copy_file(src, dst):
++        copy_file_calls.append((src, dst))
++
++    monkeypatch.setattr(addupgradebootloader, '_copy_file', mock_copy_file)
++    monkeypatch.setattr(os.path, 'exists', lambda path: True)
++
++    addupgradebootloader._copy_grub_files(['required'], ['optional'])
++
++    assert (
++        os.path.join(addupgradebootloader.RHEL_EFIDIR_CANONICAL_PATH, 'required'),
++        os.path.join(addupgradebootloader.LEAPP_EFIDIR_CANONICAL_PATH, 'required')
++    ) in copy_file_calls
++    assert (
++        os.path.join(addupgradebootloader.RHEL_EFIDIR_CANONICAL_PATH, 'optional'),
++        os.path.join(addupgradebootloader.LEAPP_EFIDIR_CANONICAL_PATH, 'optional')
++    ) in copy_file_calls
++
++
++def test_set_bootnext(monkeypatch):
++    run_calls = []
++    logger = logger_mocked()
++
++    def mock_run(command):
++        run_calls.append(command)
++
++    monkeypatch.setattr(addupgradebootloader, 'run', mock_run)
++    monkeypatch.setattr(api, 'current_logger', logger)
++
++    addupgradebootloader._set_bootnext('0000')
++
++    assert run_calls == [['/usr/sbin/efibootmgr', '--bootnext', '0000']]
++    assert logger.dbgmsg == ['Setting {} as BootNext'.format('0000')]
++
++
++def test_add_upgrade_boot_entry_no_efi_binary(monkeypatch):
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_partition', lambda: '/dev/sda1')
++    monkeypatch.setattr(addupgradebootloader, 'get_device_number', lambda device: '1')
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_device', lambda: '/dev/sda')
++    monkeypatch.setattr(os.path, 'exists', lambda path: False)
++
++    efibootinfo_mock = MockEFIBootInfo([TEST_RHEL_EFI_ENTRY])
++    with pytest.raises(StopActorExecutionError, match="Unable to detect upgrade UEFI binary file"):
++        addupgradebootloader._add_upgrade_boot_entry(efibootinfo_mock)
++
++
++def test_add_upgrade_already_exists(monkeypatch):
++    run_calls = []
++
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_partition', lambda: '/dev/sda1')
++    monkeypatch.setattr(addupgradebootloader, 'get_device_number', lambda device: '1')
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_device', lambda: '/dev/sda')
++    monkeypatch.setattr(os.path, 'exists', lambda path: True)
++
++    def mock_run(cmd):
++        run_calls.append(cmd)
++
++    monkeypatch.setattr(addupgradebootloader, 'run', mock_run)
++
++    efibootinfo_mock = MockEFIBootInfo([TEST_RHEL_EFI_ENTRY, TEST_UPGRADE_EFI_ENTRY])
++    result = addupgradebootloader._add_upgrade_boot_entry(efibootinfo_mock)
++
++    assert result == TEST_UPGRADE_EFI_ENTRY
++    assert len(run_calls) == 0
++
++
++def test_add_upgrade_boot_entry_command_failure(monkeypatch):
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_partition', lambda: '/dev/sda1')
++    monkeypatch.setattr(addupgradebootloader, 'get_device_number', lambda device: '1')
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_device', lambda: '/dev/sda')
++    monkeypatch.setattr(addupgradebootloader, '_get_upgrade_boot_entry', lambda efi, path, label: None)
++    monkeypatch.setattr(os.path, 'exists', lambda path: True)
++
++    def mock_run(cmd):
++        raise CalledProcessError(
++            message='A Leapp Command Error occurred.',
++            command=cmd,
++            result={'signal': None, 'exit_code': 1, 'pid': 0, 'stdout': 'fake', 'stderr': 'fake'}
++        )
++
++    monkeypatch.setattr(addupgradebootloader, 'run', mock_run)
++
++    efibootinfo_mock = MockEFIBootInfo([TEST_RHEL_EFI_ENTRY])
++    with pytest.raises(StopActorExecutionError, match="Unable to add a new UEFI bootloader entry"):
++        addupgradebootloader._add_upgrade_boot_entry(efibootinfo_mock)
++
++
++def test_add_upgrade_boot_entry_verification_failure(monkeypatch):
++    run_calls = []
++
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_partition', lambda: '/dev/sda1')
++    monkeypatch.setattr(addupgradebootloader, 'get_device_number', lambda device: '1')
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_device', lambda: '/dev/sda')
++    monkeypatch.setattr(addupgradebootloader, '_get_upgrade_boot_entry', lambda efi, path, label: None)
++    monkeypatch.setattr(os.path, 'exists', lambda path: True)
++
++    def mock_run(cmd):
++        run_calls.append(cmd)
++
++    monkeypatch.setattr(addupgradebootloader, 'run', mock_run)
++    monkeypatch.setattr(addupgradebootloader, 'EFIBootInfo', lambda: MockEFIBootInfo([TEST_RHEL_EFI_ENTRY]))
++
++    efibootinfo_mock = MockEFIBootInfo([TEST_RHEL_EFI_ENTRY])
++    with pytest.raises(StopActorExecutionError, match="Unable to find the new UEFI bootloader entry after adding it"):
++        addupgradebootloader._add_upgrade_boot_entry(efibootinfo_mock)
++
++
++def test_add_upgrade_boot_entry_success(monkeypatch):
++    run_calls = []
++
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_partition', lambda: '/dev/sda1')
++    monkeypatch.setattr(addupgradebootloader, 'get_device_number', lambda device: '1')
++    monkeypatch.setattr(addupgradebootloader, 'get_efi_device', lambda: '/dev/sda')
++    monkeypatch.setattr(os.path, 'exists', lambda path: True)
++
++    def mock_run(cmd):
++        run_calls.append(cmd)
++
++    monkeypatch.setattr(addupgradebootloader, 'run', mock_run)
++    monkeypatch.setattr(
++        addupgradebootloader,
++        'EFIBootInfo',
++        lambda: MockEFIBootInfo([TEST_RHEL_EFI_ENTRY, TEST_UPGRADE_EFI_ENTRY])
++    )
++
++    efibootinfo_mock = MockEFIBootInfo([TEST_RHEL_EFI_ENTRY])
++    result = addupgradebootloader._add_upgrade_boot_entry(efibootinfo_mock)
++
++    assert [
++        '/usr/sbin/efibootmgr',
++        '--create',
++        '--disk', '/dev/sda',
++        '--part', '1',
++        '--loader', '\\EFI\\leapp\\shimaa64.efi',
++        '--label', 'Leapp Upgrade',
++    ] in run_calls
++    assert result.label == addupgradebootloader.UPGRADE_EFI_ENTRY_LABEL
++
++
++def test_process(monkeypatch):
++    run_calls = []
++
++    def mock_run(cmd):
++        run_calls.append(cmd)
++
++    target_info_mock = TargetUserSpaceInfo(path='/USERSPACE', scratch='/SCRATCH', mounts='/MOUNTS')
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[target_info_mock]))
++    monkeypatch.setattr(api, 'produce', produce_mocked())
++    monkeypatch.setattr(addupgradebootloader, 'run', mock_run)
++
++    context_mock = IsolatedActionsMocked()
++    monkeypatch.setattr(addupgradebootloader.mounting, 'NspawnActions', lambda *args, **kwargs: context_mock)
++
++    monkeypatch.setattr(addupgradebootloader, '_copy_grub_files', lambda optional, required: None)
++    monkeypatch.setattr(addupgradebootloader, '_link_grubenv_to_upgrade_entry', lambda: None)
++
++    efibootinfo_mock = MockEFIBootInfo([TEST_RHEL_EFI_ENTRY])
++    monkeypatch.setattr(addupgradebootloader, 'EFIBootInfo', lambda: efibootinfo_mock)
++
++    def mock_add_upgrade_boot_entry(efibootinfo):
++        return TEST_UPGRADE_EFI_ENTRY
++
++    monkeypatch.setattr(addupgradebootloader, '_add_upgrade_boot_entry', mock_add_upgrade_boot_entry)
++    monkeypatch.setattr(addupgradebootloader, '_set_bootnext', lambda _: None)
++
++    addupgradebootloader.process()
++
++    assert api.produce.called == 1
++    assert len(api.produce.model_instances) == 1
++
++    efibootentry_fields = ['boot_number', 'label', 'active', 'efi_bin_source']
++    expected = ArmWorkaroundEFIBootloaderInfo(
++            original_entry=EFIBootEntry(**{f: getattr(TEST_RHEL_EFI_ENTRY, f) for f in efibootentry_fields}),
++            upgrade_entry=EFIBootEntry(**{f: getattr(TEST_UPGRADE_EFI_ENTRY, f) for f in efibootentry_fields}),
++        )
++    actual = api.produce.model_instances[0]
++    assert actual == expected
+diff --git a/repos/system_upgrade/el8toel9/actors/checkarmbootloader/actor.py b/repos/system_upgrade/el8toel9/actors/checkarmbootloader/actor.py
+index b4938ced..d47ca8ca 100644
+--- a/repos/system_upgrade/el8toel9/actors/checkarmbootloader/actor.py
++++ b/repos/system_upgrade/el8toel9/actors/checkarmbootloader/actor.py
+@@ -1,24 +1,24 @@
+ import leapp.libraries.actor.checkarmbootloader as checkarmbootloader
+ from leapp.actors import Actor
+-from leapp.reporting import Report
++from leapp.models import TargetUserSpacePreupgradeTasks
+ from leapp.tags import ChecksPhaseTag, IPUWorkflowTag
+ 
+ 
+ class CheckArmBootloader(Actor):
+     """
+-    Inhibit ARM system upgrades on path with incompatible kernel/bootloader
++    Install required RPM packages for ARM system upgrades on paths with
++    incompatible kernel/bootloader.
+ 
+-    Due to an incompatibility of RHEL8 bootloader with newer versions of kernel
+-    on RHEL9 since version 9.5, the upgrade cannot be performed as the old
+-    bootloader cannot load the new kernel when entering the interim phase.
+-
+-    This is temporary workaround until the issue is resolved.
++    Due to an incompatibility of the RHEL8 bootloader with newer versions of
++    the kernel on RHEL9 (from version 9.5 onward), the upgrade requires the
++    installation of specific packages to support the new kernel during the
++    interim phase.
+ 
+     """
+ 
+     name = 'check_arm_bootloader'
+     consumes = ()
+-    produces = (Report,)
++    produces = (TargetUserSpacePreupgradeTasks,)
+     tags = (ChecksPhaseTag, IPUWorkflowTag,)
+ 
+     def process(self):
+diff --git a/repos/system_upgrade/el8toel9/actors/checkarmbootloader/libraries/checkarmbootloader.py b/repos/system_upgrade/el8toel9/actors/checkarmbootloader/libraries/checkarmbootloader.py
+index a5fdffe9..91950be2 100644
+--- a/repos/system_upgrade/el8toel9/actors/checkarmbootloader/libraries/checkarmbootloader.py
++++ b/repos/system_upgrade/el8toel9/actors/checkarmbootloader/libraries/checkarmbootloader.py
+@@ -1,44 +1,16 @@
+-from leapp import reporting
+ from leapp.libraries.common.config.architecture import ARCH_ARM64, matches_architecture
+ from leapp.libraries.common.config.version import get_source_version, get_target_version, matches_target_version
+ from leapp.libraries.stdlib import api
++from leapp.models import TargetUserSpacePreupgradeTasks
+ 
+-
+-def _inhibit_upgrade():
+-    title = 'Upgrade RHEL {} to RHEL {} not possible for ARM machines.'.format(
+-        get_source_version(), get_target_version())
+-    summary = (
+-        'Due to the incompatibility of the RHEL 8 bootloader with a newer version of kernel on RHEL {}'
+-        ' for ARM machines, the direct upgrade cannot be performed to this RHEL'
+-        ' system version now. The fix is not expected to be delivered during the RHEL 9.5 lifetime.'
+-        .format(get_target_version())
+-    )
+-
+-    reporting.create_report([
+-        reporting.Title(title),
+-        reporting.Summary(summary),
+-        reporting.ExternalLink(
+-            title='Known issues for the RHEL 8.10 to RHEL 9.5 upgrade',
+-            url='https://red.ht/upgrading-rhel8-to-rhel9-known-issues'),
+-        reporting.Severity(reporting.Severity.HIGH),
+-        reporting.Groups([reporting.Groups.INHIBITOR]),
+-        reporting.Groups([reporting.Groups.SANITY]),
+-        reporting.Remediation(hint=(
+-            'To upgrade to the RHEL {} version, first in-place upgrade to RHEL 9.4 instead'
+-            ' using the leapp `--target=9.4` option. After you finish the upgrade - including'
+-            ' all required manual post-upgrade steps as well -'
+-            '  update to the newer minor version using the dnf tool. In case of using Red Hat'
+-            ' subscription-manager, do not forget to change the lock version to the newer one'
+-            ' or unset the version lock before using DNF to be able to perform the minor version update.'
+-            ' You can use e.g. `subscription-manager release --unset` command for that.'
+-            .format(get_target_version())
+-        )),
+-    ])
++ARM_SHIM_PACKAGE_NAME = 'shim-aa64'
++ARM_GRUB_PACKAGE_NAME = 'grub2-efi-aa64'
+ 
+ 
+ def process():
+     """
+-    Check whether the upgrade path will use a target kernel compatible with the source bootloader on ARM systems
++    Check whether the upgrade path will use a target kernel compatible with the
++    source bootloader on ARM systems. Prepare for a workaround otherwise.
+     """
+ 
+     if not matches_architecture(ARCH_ARM64):
+@@ -51,4 +23,8 @@ def process():
+             'Skipping bootloader check.').format(get_source_version(), get_target_version()))
+         return
+ 
+-    _inhibit_upgrade()
++    api.produce(
++        TargetUserSpacePreupgradeTasks(
++            install_rpms=[ARM_GRUB_PACKAGE_NAME, ARM_SHIM_PACKAGE_NAME]
++        )
++    )
+diff --git a/repos/system_upgrade/el8toel9/actors/checkarmbootloader/tests/test_checkarmbootloader.py b/repos/system_upgrade/el8toel9/actors/checkarmbootloader/tests/test_checkarmbootloader.py
+index 97c01e77..f38e4afb 100644
+--- a/repos/system_upgrade/el8toel9/actors/checkarmbootloader/tests/test_checkarmbootloader.py
++++ b/repos/system_upgrade/el8toel9/actors/checkarmbootloader/tests/test_checkarmbootloader.py
+@@ -1,37 +1,35 @@
+ import pytest
+ 
+-from leapp import reporting
+ from leapp.libraries.actor import checkarmbootloader
+ from leapp.libraries.common.config.architecture import ARCH_ARM64, ARCH_SUPPORTED
+-from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked, logger_mocked
++from leapp.libraries.common.testutils import CurrentActorMocked, logger_mocked, produce_mocked
+ from leapp.libraries.stdlib import api
+-from leapp.utils.report import is_inhibitor
+ 
+ 
+-@pytest.mark.parametrize("arch", [arch for arch in ARCH_SUPPORTED if not arch == ARCH_ARM64])
++@pytest.mark.parametrize('arch', [arch for arch in ARCH_SUPPORTED if not arch == ARCH_ARM64])
+ def test_not_x86_64_passes(monkeypatch, arch):
+     """
+-    Test no report is generated on an architecture different from ARM
++    Test no message is generated on an architecture different from ARM
+     """
+ 
+-    monkeypatch.setattr(reporting, "create_report", create_report_mocked())
+     monkeypatch.setattr(api, 'current_logger', logger_mocked())
+     monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch=arch))
++    monkeypatch.setattr(api, 'produce', produce_mocked())
+ 
+     checkarmbootloader.process()
+ 
+     assert 'Architecture not ARM.' in api.current_logger.infomsg[0]
+-    assert not reporting.create_report.called
++    assert not api.produce.called
+ 
+ 
+-@pytest.mark.parametrize("target_version", ["9.2", "9.4"])
++@pytest.mark.parametrize('target_version', ['9.2', '9.4'])
+ def test_valid_path(monkeypatch, target_version):
+     """
+-    Test no report is generated on a supported path
++    Test no message is generated on a supported path
+     """
+ 
+-    monkeypatch.setattr(reporting, "create_report", create_report_mocked())
+     monkeypatch.setattr(api, 'current_logger', logger_mocked())
++    monkeypatch.setattr(api, 'produce', produce_mocked())
+     monkeypatch.setattr(
+         api, 'current_actor',
+         CurrentActorMocked(arch=ARCH_ARM64, src_ver='8.10', dst_ver=target_version)
+@@ -40,16 +38,16 @@ def test_valid_path(monkeypatch, target_version):
+     checkarmbootloader.process()
+ 
+     assert 'Upgrade on ARM architecture on a compatible path' in api.current_logger.infomsg[0]
+-    assert not reporting.create_report.called
++    assert not api.produce.called
+ 
+ 
+ def test_invalid_path(monkeypatch):
+     """
+-    Test report is generated on a invalid upgrade path
++    Test message is generated on an invalid upgrade path
+     """
+ 
+-    monkeypatch.setattr(reporting, "create_report", create_report_mocked())
+     monkeypatch.setattr(api, 'current_logger', logger_mocked())
++    monkeypatch.setattr(api, 'produce', produce_mocked())
+     monkeypatch.setattr(
+         api, 'current_actor',
+         CurrentActorMocked(arch=ARCH_ARM64, src_ver='8.10', dst_ver='9.5')
+@@ -57,11 +55,9 @@ def test_invalid_path(monkeypatch):
+ 
+     checkarmbootloader.process()
+ 
+-    produced_title = reporting.create_report.report_fields.get('title')
+-    produced_summary = reporting.create_report.report_fields.get('summary')
++    assert api.produce.called == 1
++    assert len(api.produce.model_instances) == 1
+ 
+-    assert reporting.create_report.called == 1
+-    assert 'not possible for ARM machines' in produced_title
+-    assert 'Due to the incompatibility' in produced_summary
+-    assert reporting.create_report.report_fields['severity'] == reporting.Severity.HIGH
+-    assert is_inhibitor(reporting.create_report.report_fields)
++    msg = api.produce.model_instances[0]
++    assert checkarmbootloader.ARM_GRUB_PACKAGE_NAME in msg.install_rpms
++    assert checkarmbootloader.ARM_SHIM_PACKAGE_NAME in msg.install_rpms
+diff --git a/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/actor.py b/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/actor.py
+new file mode 100644
+index 00000000..cccfd515
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/actor.py
+@@ -0,0 +1,26 @@
++from leapp.actors import Actor
++from leapp.libraries.actor.removeupgradeefientry import remove_upgrade_efi_entry
++from leapp.libraries.common.config import architecture
++from leapp.libraries.common.config.version import matches_target_version
++from leapp.models import ArmWorkaroundEFIBootloaderInfo
++from leapp.tags import InitRamStartPhaseTag, IPUWorkflowTag
++
++
++class RemoveUpgradeEFIEntry(Actor):
++    """
++    Remove UEFI entry for LEAPP upgrade (see AddArmBootloaderWorkaround).
++    """
++
++    name = 'remove_upgrade_efi_entry'
++    consumes = (ArmWorkaroundEFIBootloaderInfo,)
++    produces = ()
++    tags = (IPUWorkflowTag, InitRamStartPhaseTag)
++
++    def process(self):
++        if not architecture.matches_architecture(architecture.ARCH_ARM64):
++            return
++
++        if matches_target_version('< 9.5'):
++            return
++
++        remove_upgrade_efi_entry()
+diff --git a/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/libraries/removeupgradeefientry.py b/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/libraries/removeupgradeefientry.py
+new file mode 100644
+index 00000000..3ff3ead9
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/libraries/removeupgradeefientry.py
+@@ -0,0 +1,100 @@
++import os
++import shutil
++
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.common.grub import GRUB2_BIOS_ENTRYPOINT, GRUB2_BIOS_ENV_FILE
++from leapp.libraries.stdlib import api, CalledProcessError, run
++from leapp.models import ArmWorkaroundEFIBootloaderInfo
++
++EFI_MOUNTPOINT = '/boot/efi/'
++LEAPP_EFIDIR_CANONICAL_PATH = os.path.join(EFI_MOUNTPOINT, 'EFI/leapp/')
++RHEL_EFIDIR_CANONICAL_PATH = os.path.join(EFI_MOUNTPOINT, 'EFI/redhat/')
++
++
++def get_workaround_efi_info():
++    bootloader_info_msgs = api.consume(ArmWorkaroundEFIBootloaderInfo)
++    bootloader_info = next(bootloader_info_msgs, None)
++    if list(bootloader_info_msgs):
++        api.current_logger().warning('Unexpectedly received more than one UpgradeEFIBootEntry message.')
++    if not bootloader_info:
++        raise StopActorExecutionError('Could not remove UEFI boot entry for the upgrade initramfs.',
++                                      details={'details': 'Did not receive a message about the leapp-provided'
++                                                          ' kernel and initramfs.'})
++    return bootloader_info
++
++
++def remove_upgrade_efi_entry():
++    # we need to make sure /boot/efi/ is mounted before trying to remove the boot entry
++    mount_points = ['/boot', '/boot/efi']
++    for mp in mount_points:
++        try:
++            run(['/bin/mount', mp])
++        except CalledProcessError:
++            # partitions have been most likely already mounted
++            pass
++
++    bootloader_info = get_workaround_efi_info()
++
++    _copy_grub_files(['grubenv', 'grub.cfg'], ['user.cfg'])
++    _link_grubenv_to_rhel_entry()
++
++    upgrade_boot_number = bootloader_info.upgrade_entry.boot_number
++    try:
++        run([
++            '/usr/sbin/efibootmgr',
++            '--delete-bootnum',
++            '--bootnum',
++            upgrade_boot_number
++        ])
++    except CalledProcessError:
++        api.current_logger().warning('Unable to remove Leapp upgrade efi entry.')
++
++    try:
++        run(['rm', '-rf', LEAPP_EFIDIR_CANONICAL_PATH])
++    except CalledProcessError:
++        api.current_logger().warning('Unable to remove Leapp upgrade efi files.')
++
++    original_boot_number = bootloader_info.original_entry.boot_number
++    run(['/usr/sbin/efibootmgr', '--bootnext', original_boot_number])
++
++    # TODO: Move calling `mount -a` to a separate actor as it is not really
++    # related to removing the upgrade boot entry. It's worth to call it after
++    # removing the boot entry to avoid boot loop in case mounting fails.
++    run(['/bin/mount', '-a'])
++
++
++def _link_grubenv_to_rhel_entry():
++    rhel_env_file = os.path.join(RHEL_EFIDIR_CANONICAL_PATH, 'grubenv')
++    rhel_env_file_relpath = os.path.relpath(rhel_env_file, GRUB2_BIOS_ENTRYPOINT)
++    run(['ln', '--symbolic', '--force', rhel_env_file_relpath, GRUB2_BIOS_ENV_FILE])
++
++
++def _copy_file(src_path, dst_path):
++    if os.path.exists(dst_path):
++        api.current_logger().debug("The {} file already exists and its content will be overwritten.".format(dst_path))
++
++    api.current_logger().info("Copying {} to {}".format(src_path, dst_path))
++    try:
++        shutil.copy2(src_path, dst_path)
++    except (OSError, IOError) as err:
++        raise StopActorExecutionError('I/O error({}): {}'.format(err.errno, err.strerror))
++
++
++def _copy_grub_files(required, optional):
++    """
++    Copy grub files from redhat/ dir to the /boot/efi/EFI/leapp/ dir.
++    """
++
++    all_files = required + optional
++    for filename in all_files:
++        src_path = os.path.join(LEAPP_EFIDIR_CANONICAL_PATH, filename)
++        dst_path = os.path.join(RHEL_EFIDIR_CANONICAL_PATH, filename)
++
++        if not os.path.exists(src_path):
++            if filename in required:
++                msg = 'Required file {} does not exists. Aborting.'.format(filename)
++                raise StopActorExecutionError(msg)
++
++            continue
++
++        _copy_file(src_path, dst_path)
+diff --git a/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/tests/test_removeupgradeefientry.py b/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/tests/test_removeupgradeefientry.py
+new file mode 100644
+index 00000000..1af3cd1e
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/actors/removeupgradeefientry/tests/test_removeupgradeefientry.py
+@@ -0,0 +1,105 @@
++import os
++
++import pytest
++
++from leapp.exceptions import StopActorExecutionError
++from leapp.libraries.actor import removeupgradeefientry
++from leapp.libraries.common.testutils import CurrentActorMocked, logger_mocked
++from leapp.libraries.stdlib import api
++from leapp.models import ArmWorkaroundEFIBootloaderInfo, EFIBootEntry
++
++TEST_EFI_INFO = ArmWorkaroundEFIBootloaderInfo(
++    original_entry=EFIBootEntry(
++        boot_number='0001',
++        label='Redhat',
++        active=True,
++        efi_bin_source="HD(.*)/File(\\EFI\\redhat\\shimx64.efi)",
++    ),
++    upgrade_entry=EFIBootEntry(
++        boot_number='0002',
++        label='Leapp',
++        active=True,
++        efi_bin_source="HD(.*)/File(\\EFI\\leapp\\shimx64.efi)",
++    )
++)
++
++
++def test_get_workaround_efi_info_single_entry(monkeypatch):
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[TEST_EFI_INFO]))
++
++    result = removeupgradeefientry.get_workaround_efi_info()
++    assert result == TEST_EFI_INFO
++
++
++def test_get_workaround_efi_info_multiple_entries(monkeypatch):
++    logger = logger_mocked()
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(
++        msgs=[TEST_EFI_INFO, TEST_EFI_INFO]))
++    monkeypatch.setattr(api, 'current_logger', logger)
++
++    result = removeupgradeefientry.get_workaround_efi_info()
++    assert result == TEST_EFI_INFO
++    assert 'Unexpectedly received more than one UpgradeEFIBootEntry message.' in logger.warnmsg
++
++
++def test_get_workaround_efi_info_no_entry(monkeypatch):
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[]))
++
++    with pytest.raises(StopActorExecutionError, match='Could not remove UEFI boot entry for the upgrade initramfs'):
++        removeupgradeefientry.get_workaround_efi_info()
++
++
++def test_copy_grub_files(monkeypatch):
++    copy_file_calls = []
++
++    def mock_copy_file(src, dst):
++        copy_file_calls.append((src, dst))
++
++    monkeypatch.setattr(removeupgradeefientry, '_copy_file', mock_copy_file)
++    monkeypatch.setattr(os.path, 'exists', lambda path: True)
++
++    removeupgradeefientry._copy_grub_files(['required'], ['optional'])
++
++    assert (
++        os.path.join(removeupgradeefientry.LEAPP_EFIDIR_CANONICAL_PATH, 'required'),
++        os.path.join(removeupgradeefientry.RHEL_EFIDIR_CANONICAL_PATH, 'required'),
++    ) in copy_file_calls
++    assert (
++        os.path.join(removeupgradeefientry.LEAPP_EFIDIR_CANONICAL_PATH, 'optional'),
++        os.path.join(removeupgradeefientry.RHEL_EFIDIR_CANONICAL_PATH, 'optional'),
++    ) in copy_file_calls
++
++
++def test_copy_grub_files_missing_required(monkeypatch):
++    monkeypatch.setattr(os.path, 'exists', lambda path: False)
++
++    with pytest.raises(StopActorExecutionError, match='Required file required does not exists'):
++        removeupgradeefientry._copy_grub_files(['required'], [])
++
++
++def test_remove_upgrade_efi_entry(monkeypatch):
++    run_calls = []
++    copy_grub_files_calls = []
++    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[TEST_EFI_INFO]))
++
++    def mock_run(command, checked=False):
++        run_calls.append(command)
++        return {'exit_code': 0}
++
++    def mock_copy_grub_files(required, optional):
++        copy_grub_files_calls.append((required, optional))
++
++    monkeypatch.setattr(removeupgradeefientry, '_copy_grub_files', mock_copy_grub_files)
++    monkeypatch.setattr(removeupgradeefientry, '_link_grubenv_to_rhel_entry', lambda: None)
++    monkeypatch.setattr(removeupgradeefientry, 'run', mock_run)
++
++    removeupgradeefientry.remove_upgrade_efi_entry()
++
++    assert run_calls == [
++        ['/bin/mount', '/boot'],
++        ['/bin/mount', '/boot/efi'],
++        ['/usr/sbin/efibootmgr', '--delete-bootnum', '--bootnum', '0002'],
++        ['rm', '-rf', removeupgradeefientry.LEAPP_EFIDIR_CANONICAL_PATH],
++        ['/usr/sbin/efibootmgr', '--bootnext', '0001'],
++        ['/bin/mount', '-a'],
++    ]
+diff --git a/repos/system_upgrade/el8toel9/models/upgradeefientry.py b/repos/system_upgrade/el8toel9/models/upgradeefientry.py
+new file mode 100644
+index 00000000..877cdc8f
+--- /dev/null
++++ b/repos/system_upgrade/el8toel9/models/upgradeefientry.py
+@@ -0,0 +1,14 @@
++from leapp.models import EFIBootEntry, fields, Model
++from leapp.topics import SystemInfoTopic
++
++
++class ArmWorkaroundEFIBootloaderInfo(Model):
++    """
++    Information about an Upgrade UEFI boot loader entry.
++    """
++
++    topic = SystemInfoTopic
++
++    original_entry = fields.Model(EFIBootEntry)
++
++    upgrade_entry = fields.Model(EFIBootEntry)
+-- 
+2.47.0
+
diff --git a/SOURCES/0028-Add-el9toel10-actor-to-handle-symlink-directory-with.patch b/SOURCES/0028-Add-el9toel10-actor-to-handle-symlink-directory-with.patch
new file mode 100644
index 0000000..ed24f57
--- /dev/null
+++ b/SOURCES/0028-Add-el9toel10-actor-to-handle-symlink-directory-with.patch
@@ -0,0 +1,115 @@
+From 866a4b9f163c3aec31736ac0ce25f564fe016cb4 Mon Sep 17 00:00:00 2001
+From: Jarek Prokop <jprokop@redhat.com>
+Date: Tue, 5 Nov 2024 10:15:28 +0100
+Subject: [PATCH 28/40] Add el9toel10 actor to handle symlink -> directory with
+ ruby IRB.
+
+The `/usr/share/ruby/irb` path is a symlink in RHEL 9,
+but a regular directory in RHEL 10.
+This puts us back in line with RHEL 8 and Fedora in terms of the
+path's file type regarding the rubygem-irb package.
+
+Since this was not handled on RPM level, handle it as actor again.
+This was copied and adjusted from same-named el8->el9 actor.
+
+We do not care about the validity or target of the symlink, we just
+remove it to allow DNF create the correct directory on upgrade.
+
+Without this workaround, the upgrade will fail in transaction test with
+reports of file conflicts on the directory path.
+
+Users should not expect to ever retain anything in this directory.
+---
+ .../actors/registerrubyirbadjustment/actor.py | 31 +++++++++++++++++++
+ .../test_register_ruby_irb_adjustments.py     | 11 +++++++
+ .../el9toel10/tools/handlerubyirbsymlink      | 22 +++++++++++++
+ 3 files changed, 64 insertions(+)
+ create mode 100644 repos/system_upgrade/el9toel10/actors/registerrubyirbadjustment/actor.py
+ create mode 100644 repos/system_upgrade/el9toel10/actors/registerrubyirbadjustment/tests/test_register_ruby_irb_adjustments.py
+ create mode 100755 repos/system_upgrade/el9toel10/tools/handlerubyirbsymlink
+
+diff --git a/repos/system_upgrade/el9toel10/actors/registerrubyirbadjustment/actor.py b/repos/system_upgrade/el9toel10/actors/registerrubyirbadjustment/actor.py
+new file mode 100644
+index 00000000..4fbec7ff
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/registerrubyirbadjustment/actor.py
+@@ -0,0 +1,31 @@
++from leapp.actors import Actor
++from leapp.models import DNFWorkaround
++from leapp.tags import FactsPhaseTag, IPUWorkflowTag
++
++
++class RegisterRubyIRBAdjustment(Actor):
++    """
++    Register a workaround to allow rubygem-irb's symlink -> directory conversion.
++
++    The /usr/share/ruby/irb has been moved from a symlink to a directory
++    in RHEL 10 and this conversion was not handled on the RPM level.
++    This leads to DNF reporting package file conflicts when a major upgrade
++    is attempted and rubygem-irb is installed.
++
++    Register "handlerubyirbsymlink" script that removes the symlink prior
++    to DNF upgrade and allows it to create the expected directory in place of
++    the removed symlink.
++    """
++
++    name = 'register_ruby_irb_adjustment'
++    consumes = ()
++    produces = (DNFWorkaround,)
++    tags = (IPUWorkflowTag, FactsPhaseTag)
++
++    def process(self):
++        self.produce(
++            DNFWorkaround(
++                display_name='IRB directory fix',
++                script_path=self.get_tool_path('handlerubyirbsymlink'),
++            )
++        )
+diff --git a/repos/system_upgrade/el9toel10/actors/registerrubyirbadjustment/tests/test_register_ruby_irb_adjustments.py b/repos/system_upgrade/el9toel10/actors/registerrubyirbadjustment/tests/test_register_ruby_irb_adjustments.py
+new file mode 100644
+index 00000000..fc341646
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/actors/registerrubyirbadjustment/tests/test_register_ruby_irb_adjustments.py
+@@ -0,0 +1,11 @@
++import os.path
++
++from leapp.models import DNFWorkaround
++
++
++def test_register_ruby_irb_adjustments(current_actor_context):
++    current_actor_context.run()
++    assert len(current_actor_context.consume(DNFWorkaround)) == 1
++    assert current_actor_context.consume(DNFWorkaround)[0].display_name == 'IRB directory fix'
++    assert os.path.basename(current_actor_context.consume(DNFWorkaround)[0].script_path) == 'handlerubyirbsymlink'
++    assert os.path.exists(current_actor_context.consume(DNFWorkaround)[0].script_path)
+diff --git a/repos/system_upgrade/el9toel10/tools/handlerubyirbsymlink b/repos/system_upgrade/el9toel10/tools/handlerubyirbsymlink
+new file mode 100755
+index 00000000..e9ac40fe
+--- /dev/null
++++ b/repos/system_upgrade/el9toel10/tools/handlerubyirbsymlink
+@@ -0,0 +1,22 @@
++#!/usr/bin/bash -e
++
++# just in case of hidden files.. not sure why would someone do that, it's more
++# like forgotten cache file possibility, but rather do that..
++shopt -s dotglob
++
++handle_dir() {
++    # Check that $1 is a symlink then unlink it so that RPM
++    # can freely create the directory.
++    if [ ! -L "$1" ]; then
++        return
++    fi
++
++    # There is no configuration or anything that the user should ever customize
++    # and expect to retain.
++    unlink "$1"
++
++    return 0
++}
++
++
++handle_dir /usr/share/ruby/irb
+-- 
+2.47.0
+
diff --git a/SOURCES/0029-Expand-on-the-actor-docstring-for-the-el8-el9-rubyge.patch b/SOURCES/0029-Expand-on-the-actor-docstring-for-the-el8-el9-rubyge.patch
new file mode 100644
index 0000000..1368894
--- /dev/null
+++ b/SOURCES/0029-Expand-on-the-actor-docstring-for-the-el8-el9-rubyge.patch
@@ -0,0 +1,40 @@
+From 81a3297516fbbd120b0fb870de36f1a1b290dd21 Mon Sep 17 00:00:00 2001
+From: Jarek Prokop <jprokop@redhat.com>
+Date: Wed, 6 Nov 2024 15:21:14 +0100
+Subject: [PATCH 29/40] Expand on the actor docstring for the el8->el9
+ rubygem-irb symlink fix.
+
+In RHEL 10, the directory is a regular directory again.
+
+The 2 actors are separate over creating a common solution for both.
+Expand in the docstring on the reason for the el8->el9 actor to
+differentiate them apart.
+---
+ .../actors/registerrubyirbadjustment/actor.py         | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/repos/system_upgrade/el8toel9/actors/registerrubyirbadjustment/actor.py b/repos/system_upgrade/el8toel9/actors/registerrubyirbadjustment/actor.py
+index ac4d1e6f..a33d8831 100644
+--- a/repos/system_upgrade/el8toel9/actors/registerrubyirbadjustment/actor.py
++++ b/repos/system_upgrade/el8toel9/actors/registerrubyirbadjustment/actor.py
+@@ -5,7 +5,16 @@ from leapp.tags import FactsPhaseTag, IPUWorkflowTag
+ 
+ class RegisterRubyIRBAdjustment(Actor):
+     """
+-    Registers a workaround which will adjust the Ruby IRB directories during the upgrade.
++    Register a workaround to allow rubygem-irb's directory -> symlink conversion.
++
++    The /usr/share/ruby/irb has been moved from a directory to a symlink
++    in RHEL 9 and this conversion was not handled on RPM level.
++    This leads to DNF reporting package file conflicts when a major upgrade
++    is attempted and rubygem-irb (or ruby-irb) is installed.
++
++    Register "handlerubyirbsymlink" script that removes the directory prior
++    to DNF upgrade and allows it to create the expected symlink in place of
++    the removed directory.
+     """
+ 
+     name = 'register_ruby_irb_adjustment'
+-- 
+2.47.0
+
diff --git a/SOURCES/0030-data-update-data-files.patch b/SOURCES/0030-data-update-data-files.patch
new file mode 100644
index 0000000..5762ab6
--- /dev/null
+++ b/SOURCES/0030-data-update-data-files.patch
@@ -0,0 +1,37814 @@
+From 2dc7efa41ccf7206e0e33d687d7931846f3e4390 Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Wed, 13 Nov 2024 12:52:11 +0100
+Subject: [PATCH 30/40] data: update data files
+
+Update data files to a newer version.
+---
+ .../files/device_driver_deprecation_data.json |    15 +-
+ etc/leapp/files/pes-events.json               | 30145 ++++++++++++++--
+ etc/leapp/files/repomap.json                  |     8 +-
+ 3 files changed, 27519 insertions(+), 2649 deletions(-)
+
+diff --git a/etc/leapp/files/device_driver_deprecation_data.json b/etc/leapp/files/device_driver_deprecation_data.json
+index 353531cc..fcb3a931 100644
+--- a/etc/leapp/files/device_driver_deprecation_data.json
++++ b/etc/leapp/files/device_driver_deprecation_data.json
+@@ -1,6 +1,8 @@
+ {
+   "provided_data_streams": [
+-    "3.1"
++    "3.0",
++    "3.1",
++    "3.2"
+   ],
+   "data": [
+     {
+@@ -4270,13 +4272,22 @@
+       ],
+       "deprecation_announced": "",
+       "device_id": "0x15B3:0xA2DC",
+-      "device_name": "",
++      "device_name": "BlueField-3 integrated ConnectX-7 network controller",
+       "device_type": "pci",
+       "driver_name": "mlx5",
+       "maintained_in_rhel": [
+         7
+       ]
+     },
++    {
++      "available_in_rhel": [],
++      "deprecation_announced": "",
++      "device_id": "0x15B3:0xA2DF",
++      "device_name": "BlueField-4 integrated ConnectX-8 network controller",
++      "device_type": "pci",
++      "driver_name": "mlx5",
++      "maintained_in_rhel": []
++    },
+     {
+       "available_in_rhel": [
+         7
+diff --git a/etc/leapp/files/pes-events.json b/etc/leapp/files/pes-events.json
+index 06c3de4d..a1ce39c6 100644
+--- a/etc/leapp/files/pes-events.json
++++ b/etc/leapp/files/pes-events.json
+@@ -1,7 +1,9 @@
+ {
+-"timestamp": "202408141104Z",
++"timestamp": "202411121506Z",
+ "provided_data_streams": [
+-"3.1"
++"3.0",
++"3.1",
++"3.2"
+ ],
+ "packageinfo": [
+ {
+@@ -6241,7 +6243,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -6277,7 +6278,7 @@ null
+ null
+ ],
+ "name": "sblim-cmpi-devel",
+-"repository": "rhel8-AppStream"
++"repository": "rhel8-CRB"
+ }
+ ],
+ "set_id": 6137
+@@ -85316,7 +85317,7 @@ null
+ null
+ ],
+ "name": "sblim-sfcc-devel",
+-"repository": "rhel8-AppStream"
++"repository": "rhel8-CRB"
+ }
+ ],
+ "set_id": 4075
+@@ -85416,7 +85417,7 @@ null
+ null
+ ],
+ "name": "texinfo-tex",
+-"repository": "rhel8-BaseOS"
++"repository": "rhel8-CRB"
+ }
+ ],
+ "set_id": 4079
+@@ -85550,7 +85551,7 @@ null
+ null
+ ],
+ "name": "tog-pegasus-devel",
+-"repository": "rhel8-AppStream"
++"repository": "rhel8-CRB"
+ }
+ ],
+ "set_id": 4085
+@@ -257174,7 +257175,7 @@ null
+ null
+ ],
+ "name": "libvoikko-devel",
+-"repository": "rhel8-BaseOS"
++"repository": "rhel8-CRB"
+ }
+ ],
+ "set_id": 10641
+@@ -278240,7 +278241,7 @@ null
+ null
+ ],
+ "name": "sblim-gather-provider",
+-"repository": "rhel8-AppStream"
++"repository": "rhel8-CRB"
+ }
+ ],
+ "set_id": 11398
+@@ -362920,40 +362921,6 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 10241,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "ibus-typing-booster-tests",
+-"repository": "rhel8-BaseOS"
+-}
+-],
+-"set_id": 14146
+-},
+-"initial_release": {
+-"major_version": 8,
+-"minor_version": 3,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 8,
+-"minor_version": 4,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+ "id": 10242,
+ "in_packageset": {
+ "package": [
+@@ -376281,7 +376248,7 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -376309,8 +376276,27 @@ null
+ "minor_version": 6,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": {
++"name": "javapackages-tools",
++"stream": "201801"
++},
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "javapackages-local",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23965
++},
+ "release": {
+ "major_version": 9,
+ "minor_version": 0,
+@@ -376318,7 +376304,7 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -376346,8 +376332,27 @@ null
+ "minor_version": 6,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": {
++"name": "javapackages-tools",
++"stream": "201801"
++},
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "maven-local",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23966
++},
+ "release": {
+ "major_version": 9,
+ "minor_version": 0,
+@@ -376355,7 +376360,7 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -376383,8 +376388,27 @@ null
+ "minor_version": 6,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": {
++"name": "javapackages-tools",
++"stream": "201801"
++},
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-javapackages",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23962
++},
+ "release": {
+ "major_version": 9,
+ "minor_version": 0,
+@@ -402743,7 +402767,7 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -402779,8 +402803,41 @@ null
+ "minor_version": 6,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": {
++"name": "container-tools",
++"stream": "3.0"
++},
++"out_modulestream": null
++},
++{
++"in_modulestream": {
++"name": "container-tools",
++"stream": "rhel8"
++},
++"out_modulestream": null
++},
++{
++"in_modulestream": {
++"name": "container-tools",
++"stream": "4.0"
++},
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libslirp-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23585
++},
+ "release": {
+ "major_version": 9,
+ "minor_version": 0,
+@@ -441193,7 +441250,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -441249,7 +441305,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -441466,7 +441521,7 @@ null
+ }
+ ],
+ "name": "perl-DBD-SQLite",
+-"repository": "rhel8-BaseOS"
++"repository": "rhel8-AppStream"
+ }
+ ],
+ "set_id": 16807
+@@ -441580,7 +441635,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -441766,7 +441820,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -441934,7 +441987,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -442040,7 +442092,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -442146,7 +442197,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -442388,7 +442438,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -442494,7 +442543,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -442600,7 +442648,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -442706,7 +442753,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -442812,7 +442858,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -442918,7 +442963,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -443024,7 +443068,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -443130,7 +443173,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -443236,7 +443278,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -443398,7 +443439,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -443504,7 +443544,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -443610,7 +443649,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -443716,7 +443754,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -443822,7 +443859,6 @@ null
+ {
+ "action": 6,
+ "architectures": [
+-"aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+@@ -445924,7 +445960,7 @@ null
+ null
+ ],
+ "name": "fwupd-devel",
+-"repository": "rhel8-BaseOS"
++"repository": "rhel8-CRB"
+ }
+ ],
+ "set_id": 16997
+@@ -446023,7 +446059,7 @@ null
+ null
+ ],
+ "name": "mod_auth_mellon",
+-"repository": "rhel9-BaseOS"
++"repository": "rhel9-AppStream"
+ }
+ ],
+ "set_id": 17001
+@@ -447996,6 +448032,7 @@ null
+ "architectures": [
+ "aarch64",
+ "ppc64le",
++"s390x",
+ "x86_64"
+ ],
+ "id": 12290,
+@@ -448006,7 +448043,7 @@ null
+ null
+ ],
+ "name": "alsa-plugins-pulseaudio",
+-"repository": "rhel9-BaseOS"
++"repository": "rhel9-AppStream"
+ }
+ ],
+ "set_id": 17079
+@@ -510615,56 +510652,6 @@ null
+ }
+ },
+ {
+-"action": 6,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 14168,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "python3-audit",
+-"repository": "rhel9-AppStream"
+-}
+-],
+-"set_id": 19989
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "python3-audit",
+-"repository": "rhel10-BaseOS"
+-}
+-],
+-"set_id": 19990
+-},
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+ "action": 0,
+ "architectures": [
+ "aarch64",
+@@ -516758,6 +516745,10 @@ null
+ {
+ "name": "nodejs",
+ "stream": "20"
++},
++{
++"name": "nodejs",
++"stream": "22"
+ }
+ ],
+ "name": "nodejs",
+@@ -516778,6 +516769,13 @@ null
+ "stream": "20"
+ },
+ "out_modulestream": null
++},
++{
++"in_modulestream": {
++"name": "nodejs",
++"stream": "22"
++},
++"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -529147,14 +529145,14 @@ null
+ },
+ "initial_release": {
+ "major_version": 9,
+-"minor_version": 4,
++"minor_version": 5,
+ "os_name": "RHEL"
+ },
+ "modulestream_maps": [],
+ "out_packageset": null,
+ "release": {
+ "major_version": 9,
+-"minor_version": 5,
++"minor_version": 6,
+ "os_name": "RHEL"
+ }
+ },
+@@ -538928,7 +538926,8 @@ null
+ {
+ "name": "redis",
+ "stream": "7"
+-}
++},
++null
+ ],
+ "name": "redis-doc",
+ "repository": "rhel9-AppStream"
+@@ -541158,106 +541157,7 @@ null
+ }
+ },
+ {
+-"action": 6,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15007,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "appstream-devel",
+-"repository": "rhel9-CRB"
+-}
+-],
+-"set_id": 21040
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "appstream-devel",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 21041
+-},
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 6,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"x86_64"
+-],
+-"id": 15008,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "fontconfig",
+-"repository": "rhel9-AppStream"
+-}
+-],
+-"set_id": 21042
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "fontconfig",
+-"repository": "rhel10-BaseOS"
+-}
+-],
+-"set_id": 21043
+-},
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 6,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -541294,7 +541194,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-symbols2-fonts",
++"name": "google-noto-sans-symbols-2-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -541314,56 +541214,6 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15010,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "uchardet",
+-"repository": "rhel9-CRB"
+-}
+-],
+-"set_id": 21046
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "uchardet",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 21047
+-},
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 6,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+ "id": 15011,
+ "in_packageset": {
+ "package": [
+@@ -541413,7 +541263,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -541432,8 +541282,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "pgaudit",
+ "repository": "rhel9-AppStream"
+@@ -541460,10 +541309,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -541472,7 +541317,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-pgaudit",
++"name": "pgaudit",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -541485,7 +541330,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -541504,8 +541349,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "pg_repack",
+ "repository": "rhel9-AppStream"
+@@ -541532,10 +541376,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -541544,7 +541384,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-pg_repack",
++"name": "pg_repack",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -541557,7 +541397,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -541576,8 +541416,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgres-decoderbufs",
+ "repository": "rhel9-AppStream"
+@@ -541604,10 +541443,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -541616,7 +541451,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-decoderbufs",
++"name": "postgres-decoderbufs",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -541629,7 +541464,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -541648,8 +541483,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql",
+ "repository": "rhel9-AppStream"
+@@ -541676,10 +541510,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -541688,7 +541518,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16",
++"name": "postgresql",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -542441,7 +542271,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -542460,8 +542290,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-contrib",
+ "repository": "rhel9-AppStream"
+@@ -542488,10 +542317,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -542500,7 +542325,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-contrib",
++"name": "postgresql-contrib",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -542513,7 +542338,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -542532,8 +542357,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-docs",
+ "repository": "rhel9-AppStream"
+@@ -542560,10 +542384,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -542572,7 +542392,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-docs",
++"name": "postgresql-docs",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -543499,7 +543319,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -543518,8 +543338,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-plperl",
+ "repository": "rhel9-AppStream"
+@@ -543546,10 +543365,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -543558,7 +543373,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-plperl",
++"name": "postgresql-plperl",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -543571,7 +543386,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -543590,8 +543405,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-plpython3",
+ "repository": "rhel9-AppStream"
+@@ -543618,10 +543432,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -543630,7 +543440,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-plpython3",
++"name": "postgresql-plpython3",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -543643,79 +543453,7 @@ null
+ }
+ },
+ {
+-"action": 7,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15071,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-{
+-"name": "postgresql",
+-"stream": "15"
+-},
+-{
+-"name": "postgresql",
+-"stream": "16"
+-},
+-null
+-],
+-"name": "postgresql-plctl",
+-"repository": "rhel9-AppStream"
+-}
+-],
+-"set_id": 21154
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [
+-{
+-"in_modulestream": {
+-"name": "postgresql",
+-"stream": "15"
+-},
+-"out_modulestream": null
+-},
+-{
+-"in_modulestream": {
+-"name": "postgresql",
+-"stream": "16"
+-},
+-"out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "postgresql16-plctl",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 21155
+-},
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -543734,8 +543472,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-private-libs",
+ "repository": "rhel9-AppStream"
+@@ -543762,10 +543499,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -543774,7 +543507,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-private-libs",
++"name": "postgresql-private-libs",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -543787,7 +543520,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -543806,8 +543539,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-server",
+ "repository": "rhel9-AppStream"
+@@ -543834,10 +543566,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -543846,7 +543574,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-server",
++"name": "postgresql-server",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -543859,7 +543587,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -543878,8 +543606,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-server-devel",
+ "repository": "rhel9-AppStream"
+@@ -543906,10 +543633,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -543918,7 +543641,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-server-devel",
++"name": "postgresql-server-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -543931,7 +543654,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -543950,8 +543673,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-static",
+ "repository": "rhel9-AppStream"
+@@ -543978,10 +543700,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -543990,7 +543708,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-static",
++"name": "postgresql-static",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544003,7 +543721,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544022,8 +543740,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-test",
+ "repository": "rhel9-AppStream"
+@@ -544050,10 +543767,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -544062,7 +543775,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-test",
++"name": "postgresql-test",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544075,7 +543788,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 1,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544094,8 +543807,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-test-rpm-macros",
+ "repository": "rhel9-AppStream"
+@@ -544108,38 +543820,8 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [
+-{
+-"in_modulestream": {
+-"name": "postgresql",
+-"stream": "15"
+-},
+-"out_modulestream": null
+-},
+-{
+-"in_modulestream": {
+-"name": "postgresql",
+-"stream": "16"
+-},
+-"out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "postgresql16-test-rpm-macros",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 21167
+-},
++"modulestream_maps": [],
++"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -544147,7 +543829,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544166,8 +543848,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-upgrade",
+ "repository": "rhel9-AppStream"
+@@ -544194,10 +543875,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -544206,7 +543883,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-upgrade",
++"name": "postgresql-upgrade",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544219,7 +543896,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544238,8 +543915,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-upgrade-devel",
+ "repository": "rhel9-AppStream"
+@@ -544266,10 +543942,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -544278,7 +543950,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-upgrade-devel",
++"name": "postgresql-upgrade-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544291,7 +543963,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544310,8 +543982,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-pltcl",
+ "repository": "rhel9-AppStream"
+@@ -544338,10 +544009,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -544350,7 +544017,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-pltcl",
++"name": "postgresql-pltcl",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544363,7 +544030,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544382,8 +544049,7 @@ null
+ {
+ "name": "postgresql",
+ "stream": "16"
+-},
+-null
++}
+ ],
+ "name": "postgresql-private-devel",
+ "repository": "rhel9-AppStream"
+@@ -544410,10 +544076,6 @@ null
+ "stream": "16"
+ },
+ "out_modulestream": null
+-},
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -544422,7 +544084,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "postgresql16-private-devel",
++"name": "postgresql-private-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544435,7 +544097,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544450,8 +544112,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-backup",
+ "repository": "rhel9-AppStream"
+@@ -544466,10 +544127,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -544483,7 +544140,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-backup",
++"name": "mariadb-backup",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544496,7 +544153,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544511,8 +544168,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-common",
+ "repository": "rhel9-AppStream"
+@@ -544527,10 +544183,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -544544,7 +544196,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-common",
++"name": "mariadb-common",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544557,7 +544209,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544572,8 +544224,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-devel",
+ "repository": "rhel9-AppStream"
+@@ -544588,10 +544239,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -544605,7 +544252,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-devel",
++"name": "mariadb-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544618,7 +544265,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544633,8 +544280,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-embedded",
+ "repository": "rhel9-AppStream"
+@@ -544649,10 +544295,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -544666,7 +544308,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-embedded",
++"name": "mariadb-embedded",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544679,7 +544321,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544694,8 +544336,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-embedded-devel",
+ "repository": "rhel9-AppStream"
+@@ -544710,10 +544351,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -544727,7 +544364,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-embedded-devel",
++"name": "mariadb-embedded-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544740,68 +544377,7 @@ null
+ }
+ },
+ {
+-"action": 7,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15087,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-{
+-"name": "mariadb",
+-"stream": "10.11"
+-},
+-null
+-],
+-"name": "mariadb-errmsq",
+-"repository": "rhel9-AppStream"
+-}
+-],
+-"set_id": 21214
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+-"in_modulestream": {
+-"name": "mariadb",
+-"stream": "10.11"
+-},
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "mariadb10.11-errmsq",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 21215
+-},
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544816,8 +544392,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-gssapi-server",
+ "repository": "rhel9-AppStream"
+@@ -544832,10 +544407,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -544849,7 +544420,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-gssapi-server",
++"name": "mariadb-gssapi-server",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544862,7 +544433,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544877,8 +544448,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-oqgraph-engine",
+ "repository": "rhel9-AppStream"
+@@ -544893,10 +544463,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -544910,7 +544476,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-oqgraph-engine",
++"name": "mariadb-oqgraph-engine",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544923,7 +544489,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544938,8 +544504,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-pam",
+ "repository": "rhel9-AppStream"
+@@ -544954,10 +544519,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -544971,7 +544532,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-pam",
++"name": "mariadb-pam",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -544984,7 +544545,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -544999,8 +544560,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-server",
+ "repository": "rhel9-AppStream"
+@@ -545015,10 +544575,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -545032,7 +544588,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-server",
++"name": "mariadb-server",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -545045,7 +544601,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -545060,8 +544616,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-server-galera",
+ "repository": "rhel9-AppStream"
+@@ -545076,10 +544631,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -545093,7 +544644,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-server-galera",
++"name": "mariadb-server-galera",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -545106,7 +544657,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -545121,8 +544672,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-server-utils",
+ "repository": "rhel9-AppStream"
+@@ -545137,10 +544687,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -545154,7 +544700,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-server-utils",
++"name": "mariadb-server-utils",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -545167,7 +544713,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -545182,8 +544728,7 @@ null
+ {
+ "name": "mariadb",
+ "stream": "10.11"
+-},
+-null
++}
+ ],
+ "name": "mariadb-test",
+ "repository": "rhel9-AppStream"
+@@ -545198,10 +544743,6 @@ null
+ },
+ "modulestream_maps": [
+ {
+-"in_modulestream": null,
+-"out_modulestream": null
+-},
+-{
+ "in_modulestream": {
+ "name": "mariadb",
+ "stream": "10.11"
+@@ -545215,7 +544756,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-test",
++"name": "mariadb-test",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -545296,7 +544837,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -545339,8 +544880,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "mariadb10.11-errmsg",
+-"repository": "rhel10-BaseOS"
++"name": "mariadb-errmsg",
++"repository": "rhel10-AppStream"
+ }
+ ],
+ "set_id": 21231
+@@ -548064,6 +547605,10 @@ null
+ {
+ "name": "nodejs",
+ "stream": "20"
++},
++{
++"name": "nodejs",
++"stream": "22"
+ }
+ ],
+ "name": "nodejs-nodemon",
+@@ -548091,6 +547636,13 @@ null
+ "stream": "20"
+ },
+ "out_modulestream": null
++},
++{
++"in_modulestream": {
++"name": "nodejs",
++"stream": "22"
++},
++"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -548131,6 +547683,10 @@ null
+ {
+ "name": "nodejs",
+ "stream": "20"
++},
++{
++"name": "nodejs",
++"stream": "22"
+ }
+ ],
+ "name": "nodejs-packaging",
+@@ -548158,6 +547714,13 @@ null
+ "stream": "20"
+ },
+ "out_modulestream": null
++},
++{
++"in_modulestream": {
++"name": "nodejs",
++"stream": "22"
++},
++"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -548198,6 +547761,10 @@ null
+ {
+ "name": "nodejs",
+ "stream": "20"
++},
++{
++"name": "nodejs",
++"stream": "22"
+ }
+ ],
+ "name": "nodejs-packaging-bundler",
+@@ -548225,6 +547792,13 @@ null
+ "stream": "20"
+ },
+ "out_modulestream": null
++},
++{
++"in_modulestream": {
++"name": "nodejs",
++"stream": "22"
++},
++"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -548246,7 +547820,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 6,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -548265,7 +547839,12 @@ null
+ {
+ "name": "nodejs",
+ "stream": "20"
+-}
++},
++{
++"name": "nodejs",
++"stream": "22"
++},
++null
+ ],
+ "name": "nodejs-devel",
+ "repository": "rhel9-AppStream"
+@@ -548292,6 +547871,17 @@ null
+ "stream": "20"
+ },
+ "out_modulestream": null
++},
++{
++"in_modulestream": null,
++"out_modulestream": null
++},
++{
++"in_modulestream": {
++"name": "nodejs",
++"stream": "22"
++},
++"out_modulestream": null
+ }
+ ],
+ "out_packageset": {
+@@ -548300,7 +547890,7 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "nodejs20-devel",
++"name": "nodejs-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+@@ -549451,7 +549041,7 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 3,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -549476,8 +549066,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-text-editor",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23167
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -550131,7 +549737,7 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 3,
+ "architectures": [
+ "ppc64le",
+ "x86_64"
+@@ -550154,8 +549760,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "loupe",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23161
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -550163,7 +549785,7 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 3,
+ "architectures": [
+ "ppc64le",
+ "x86_64"
+@@ -550186,8 +549808,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "snapshot",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23165
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -560740,7 +560378,7 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 1,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -560758,31 +560396,15 @@ null
+ "repository": "rhel9-AppStream"
+ }
+ ],
+-"set_id": 21706
++"set_id": 23212
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "gcr3-base",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 21707
+-},
++"modulestream_maps": [],
++"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -565891,40 +565513,6 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15710,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "poppler-qt6",
+-"repository": "rhel10-CRB"
+-}
+-],
+-"set_id": 21859
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+ "id": 15711,
+ "in_packageset": {
+ "package": [
+@@ -567226,7 +566814,7 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -567240,8 +566828,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-anatolian-hieroglyphs-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-anatolian-hieroglyphs-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+ "set_id": 21899
+@@ -567251,8 +566839,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-anatolian-hieroglyphs-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23652
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -567260,7 +566864,7 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -567274,8 +566878,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-arabic-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-arabic-ui-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+ "set_id": 21900
+@@ -567285,8 +566889,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-arabic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23663
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -567294,7 +566914,7 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -567308,8 +566928,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-arabic-vf-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-arabic-ui-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+ "set_id": 21901
+@@ -567319,8 +566939,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-arabic-vf-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23664
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -567838,7 +567474,7 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -567852,8 +567488,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-elymaic-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-elymaic-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+ "set_id": 21917
+@@ -567863,8 +567499,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-elymaic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23721
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -568110,7 +567762,7 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -568124,8 +567776,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-hatran-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-hatran-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+ "set_id": 21925
+@@ -568135,42 +567787,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15776,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-hebrew-vf-fonts",
++"name": "google-noto-sans-hatran-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21926
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23724
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -568185,18 +567819,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15777,
++"id": 15776,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-indic-siyaq-numbers-fonts",
++"name": "google-noto-sans-hebrew-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21927
++"set_id": 21926
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -568219,18 +567853,52 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15778,
++"id": 15777,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-javanese-vf-fonts",
++"name": "google-noto-sans-indic-siyaq-numbers-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21928
++"set_id": 21927
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 15778,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-javanese-vf-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 21928
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -568484,7 +568152,7 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -568498,8 +568166,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-lao-vf-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-lao-ui-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+ "set_id": 21936
+@@ -568509,8 +568177,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-lao-vf-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23725
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -568518,7 +568202,7 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -568532,8 +568216,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-linear-a-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-linear-a-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+ "set_id": 21937
+@@ -568543,8 +568227,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-linear-a-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23726
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -568722,7 +568422,7 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -568736,8 +568436,8 @@ null
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-marchen-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-marchen-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+ "set_id": 21943
+@@ -568747,42 +568447,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15794,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-masaram-gondi-fonts",
++"name": "google-noto-sans-marchen-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21944
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23729
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -568797,18 +568479,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15795,
++"id": 15794,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-math-fonts",
++"name": "google-noto-sans-masaram-gondi-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21945
++"set_id": 21944
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -568824,67 +568506,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15796,
++"id": 15795,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-mayan-numerals-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-math-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21946
++"set_id": 21945
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15797,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-medefaidrin-fonts",
++"name": "google-noto-sans-math-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21947
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23730
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -568892,67 +568556,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15798,
++"id": 15796,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-medefaidrin-vf-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-mayan-numerals-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21948
++"set_id": 21946
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15799,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-meeteimayek-vf-fonts",
++"name": "google-noto-sans-mayan-numerals-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21949
++"set_id": 23731
+ },
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -568967,18 +568613,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15800,
++"id": 15797,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-mende-kikakui-fonts",
++"name": "google-noto-sans-medefaidrin-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21950
++"set_id": 21947
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569001,18 +568647,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15801,
++"id": 15798,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-meroitic-fonts",
++"name": "google-noto-sans-medefaidrin-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21951
++"set_id": 21948
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569028,67 +568674,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15802,
++"id": 15799,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-miao-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-meeteimayek-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21952
++"set_id": 21949
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15803,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-modi-fonts",
++"name": "google-noto-sans-meetei-mayek-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21953
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23732
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -569103,18 +568731,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15804,
++"id": 15800,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-mro-fonts",
++"name": "google-noto-sans-mende-kikakui-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21954
++"set_id": 21950
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569137,18 +568765,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15805,
++"id": 15801,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-multani-fonts",
++"name": "google-noto-sans-meroitic-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21955
++"set_id": 21951
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569171,18 +568799,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15806,
++"id": 15802,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-myanmar-vf-fonts",
++"name": "google-noto-sans-miao-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21956
++"set_id": 21952
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569205,18 +568833,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15807,
++"id": 15803,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-nabataean-fonts",
++"name": "google-noto-sans-modi-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21957
++"set_id": 21953
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569232,101 +568860,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15808,
++"id": 15804,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-nag-mundari-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-mro-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21958
++"set_id": 21954
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15809,
+-"in_packageset": {
+-"package": [
++"modulestream_maps": [
+ {
+-"modulestreams": [
+-null
+-],
+-"name": "google-noto-sans-nag-mundari-vf-fonts",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 21959
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
++"in_modulestream": null,
++"out_modulestream": null
+ }
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+ ],
+-"id": 15810,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-nandinagari-fonts",
++"name": "google-noto-sans-mro-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21960
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23733
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -569334,67 +568910,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15811,
++"id": 15805,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-newa-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-multani-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21961
++"set_id": 21955
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15812,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-new-tai-lue-vf-fonts",
++"name": "google-noto-sans-multani-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21962
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23755
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -569402,67 +568960,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15813,
++"id": 15806,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-nko-unjoined-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-myanmar-ui-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21963
++"set_id": 21956
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15814,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-nko-unjoined-vf-fonts",
++"name": "google-noto-sans-myanmar-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21964
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23757
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -569470,67 +569010,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15815,
++"id": 15807,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-nushu-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-nabataean-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21965
++"set_id": 21957
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15816,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-ol-chiki-vf-fonts",
++"name": "google-noto-sans-nabataean-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21966
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23758
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -569545,18 +569067,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15817,
++"id": 15808,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-old-hungarian-fonts",
++"name": "google-noto-sans-nag-mundari-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21967
++"set_id": 21958
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569579,18 +569101,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15818,
++"id": 15809,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-old-north-arabian-fonts",
++"name": "google-noto-sans-nag-mundari-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21968
++"set_id": 21959
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569613,18 +569135,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15819,
++"id": 15810,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-old-permic-fonts",
++"name": "google-noto-sans-nandinagari-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21969
++"set_id": 21960
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569647,18 +569169,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15820,
++"id": 15811,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-old-sogdian-fonts",
++"name": "google-noto-sans-newa-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21970
++"set_id": 21961
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569681,18 +569203,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15821,
++"id": 15812,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-osage-fonts",
++"name": "google-noto-sans-new-tai-lue-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21971
++"set_id": 21962
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569715,18 +569237,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15822,
++"id": 15813,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-pahawh-hmong-fonts",
++"name": "google-noto-sans-nko-unjoined-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21972
++"set_id": 21963
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569749,18 +569271,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15823,
++"id": 15814,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-palmyrene-fonts",
++"name": "google-noto-sans-nko-unjoined-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21973
++"set_id": 21964
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569783,18 +569305,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15824,
++"id": 15815,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-pau-cin-hau-fonts",
++"name": "google-noto-sans-nushu-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21974
++"set_id": 21965
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569817,18 +569339,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15825,
++"id": 15816,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-phagspa-fonts",
++"name": "google-noto-sans-ol-chiki-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21975
++"set_id": 21966
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569851,18 +569373,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15826,
++"id": 15817,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-psalter-pahlavi-fonts",
++"name": "google-noto-sans-old-hungarian-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21976
++"set_id": 21967
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569885,18 +569407,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15827,
++"id": 15818,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-sharada-fonts",
++"name": "google-noto-sans-old-north-arabian-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21977
++"set_id": 21968
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569919,18 +569441,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15828,
++"id": 15819,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-siddham-fonts",
++"name": "google-noto-sans-old-permic-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21978
++"set_id": 21969
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569953,18 +569475,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15829,
++"id": 15820,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-signwriting-fonts",
++"name": "google-noto-sans-old-sogdian-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21979
++"set_id": 21970
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -569987,18 +569509,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15830,
++"id": 15821,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-sinhala-ui-fonts",
++"name": "google-noto-sans-osage-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21980
++"set_id": 21971
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570021,18 +569543,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15831,
++"id": 15822,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-sogdian-fonts",
++"name": "google-noto-sans-pahawh-hmong-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21981
++"set_id": 21972
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570055,18 +569577,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15832,
++"id": 15823,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-sora-sompeng-fonts",
++"name": "google-noto-sans-palmyrene-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21982
++"set_id": 21973
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570089,18 +569611,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15833,
++"id": 15824,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-sora-sompeng-vf-fonts",
++"name": "google-noto-sans-pau-cin-hau-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21983
++"set_id": 21974
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570116,33 +569638,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15834,
++"id": 15825,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-soyombo-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-phags-pa-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21984
++"set_id": 21975
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-phagspa-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23761
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -570157,18 +569695,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15835,
++"id": 15826,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-sundanese-vf-fonts",
++"name": "google-noto-sans-psalter-pahlavi-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21985
++"set_id": 21976
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570191,18 +569729,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15836,
++"id": 15827,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-symbols-vf-fonts",
++"name": "google-noto-sans-sharada-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21986
++"set_id": 21977
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570225,18 +569763,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15837,
++"id": 15828,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-syriac-eastern-vf-fonts",
++"name": "google-noto-sans-siddham-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21987
++"set_id": 21978
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570259,18 +569797,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15838,
++"id": 15829,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-syriac-fonts",
++"name": "google-noto-sans-signwriting-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21988
++"set_id": 21979
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570286,33 +569824,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15839,
++"id": 15830,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-syriac-vf-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-sinhala-ui-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21989
++"set_id": 21980
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-sinhala-ui-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23785
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -570327,18 +569881,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15840,
++"id": 15831,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-syriac-western-vf-fonts",
++"name": "google-noto-sans-sogdian-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21990
++"set_id": 21981
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570361,18 +569915,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15841,
++"id": 15832,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tai-tham-vf-fonts",
++"name": "google-noto-sans-sora-sompeng-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21991
++"set_id": 21982
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570395,18 +569949,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15842,
++"id": 15833,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-takri-fonts",
++"name": "google-noto-sans-sora-sompeng-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21992
++"set_id": 21983
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570422,33 +569976,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15843,
++"id": 15834,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tamil-supplement-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-soyombo-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 21993
++"set_id": 21984
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-soyombo-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23786
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -570463,18 +570033,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15844,
++"id": 15835,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tamil-ui-vf-fonts",
++"name": "google-noto-sans-sundanese-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21994
++"set_id": 21985
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570497,18 +570067,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15845,
++"id": 15836,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tangsa-fonts",
++"name": "google-noto-sans-symbols-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21995
++"set_id": 21986
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570531,18 +570101,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15846,
++"id": 15837,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tangsa-vf-fonts",
++"name": "google-noto-sans-syriac-eastern-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21996
++"set_id": 21987
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570565,18 +570135,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15847,
++"id": 15838,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-telugu-ui-vf-fonts",
++"name": "google-noto-sans-syriac-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21997
++"set_id": 21988
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570599,18 +570169,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15848,
++"id": 15839,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-thaana-vf-fonts",
++"name": "google-noto-sans-syriac-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21998
++"set_id": 21989
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570633,18 +570203,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15849,
++"id": 15840,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-thai-looped-fonts",
++"name": "google-noto-sans-syriac-western-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 21999
++"set_id": 21990
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570667,18 +570237,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15850,
++"id": 15841,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-adrar-fonts",
++"name": "google-noto-sans-tai-tham-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22001
++"set_id": 21991
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570694,33 +570264,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15851,
++"id": 15842,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-agraw-imazighen-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-takri-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22002
++"set_id": 21992
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-takri-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23788
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -570735,18 +570321,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15852,
++"id": 15843,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-ahaggar-fonts",
++"name": "google-noto-sans-tamil-supplement-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22003
++"set_id": 21993
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570769,18 +570355,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15853,
++"id": 15844,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-air-fonts",
++"name": "google-noto-sans-tamil-ui-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22004
++"set_id": 21994
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570803,18 +570389,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15854,
++"id": 15845,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-apt-fonts",
++"name": "google-noto-sans-tangsa-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22005
++"set_id": 21995
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570837,18 +570423,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15855,
++"id": 15846,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-azawagh-fonts",
++"name": "google-noto-sans-tangsa-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22006
++"set_id": 21996
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570871,18 +570457,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15856,
++"id": 15847,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-ghat-fonts",
++"name": "google-noto-sans-telugu-ui-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22007
++"set_id": 21997
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570905,18 +570491,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15857,
++"id": 15848,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-hawad-fonts",
++"name": "google-noto-sans-thaana-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22008
++"set_id": 21998
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -570932,33 +570518,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15858,
++"id": 15849,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-rhissa-ixa-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sansthai-looped-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22009
++"set_id": 21999
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-thai-looped-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23789
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -570973,18 +570575,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15859,
++"id": 15850,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-sil-fonts",
++"name": "google-noto-sans-tifinagh-adrar-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22010
++"set_id": 22001
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571007,18 +570609,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15860,
++"id": 15851,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tifinagh-tawellemmet-fonts",
++"name": "google-noto-sans-tifinagh-agraw-imazighen-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22011
++"set_id": 22002
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571041,18 +570643,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15861,
++"id": 15852,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-tirhuta-fonts",
++"name": "google-noto-sans-tifinagh-ahaggar-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22012
++"set_id": 22003
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571075,18 +570677,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15862,
++"id": 15853,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-vithkuqi-fonts",
++"name": "google-noto-sans-tifinagh-air-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22013
++"set_id": 22004
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571109,18 +570711,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15863,
++"id": 15854,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-vithkuqi-vf-fonts",
++"name": "google-noto-sans-tifinagh-apt-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22014
++"set_id": 22005
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571143,18 +570745,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15864,
++"id": 15855,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-wancho-fonts",
++"name": "google-noto-sans-tifinagh-azawagh-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22015
++"set_id": 22006
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571177,18 +570779,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15865,
++"id": 15856,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-warang-citi-fonts",
++"name": "google-noto-sans-tifinagh-ghat-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22016
++"set_id": 22007
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571211,18 +570813,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15866,
++"id": 15857,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-zanabazar-square-fonts",
++"name": "google-noto-sans-tifinagh-hawad-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22017
++"set_id": 22008
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571245,18 +570847,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15867,
++"id": 15858,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-ahom-fonts",
++"name": "google-noto-sans-tifinagh-rhissa-ixa-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22018
++"set_id": 22009
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571279,18 +570881,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15868,
++"id": 15859,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-armenian-vf-fonts",
++"name": "google-noto-sans-tifinagh-sil-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22019
++"set_id": 22010
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571313,18 +570915,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15869,
++"id": 15860,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-balinese-fonts",
++"name": "google-noto-sans-tifinagh-tawellemmet-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22020
++"set_id": 22011
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571347,18 +570949,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15870,
++"id": 15861,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-bengali-vf-fonts",
++"name": "google-noto-sans-tirhuta-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22021
++"set_id": 22012
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571381,18 +570983,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15871,
++"id": 15862,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-devanagari-vf-fonts",
++"name": "google-noto-sans-vithkuqi-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22022
++"set_id": 22013
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571415,18 +571017,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15872,
++"id": 15863,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-dives-akuru-fonts",
++"name": "google-noto-sans-vithkuqi-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22023
++"set_id": 22014
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571442,33 +571044,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15873,
++"id": 15864,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-dogra-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-wancho-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22024
++"set_id": 22015
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-wancho-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23790
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -571476,33 +571094,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15874,
++"id": 15865,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-ethiopic-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-warang-citi-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22025
++"set_id": 22016
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-warang-citi-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23817
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -571510,33 +571144,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15875,
++"id": 15866,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-ethiopic-vf-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-zanabazar-square-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22026
++"set_id": 22017
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-zanabazar-square-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23819
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -571551,18 +571201,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15876,
++"id": 15867,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-georgian-vf-fonts",
++"name": "google-noto-serif-ahom-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22027
++"set_id": 22018
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571585,18 +571235,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15877,
++"id": 15868,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-grantha-fonts",
++"name": "google-noto-serif-armenian-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22028
++"set_id": 22019
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571619,18 +571269,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15878,
++"id": 15869,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-gujarati-vf-fonts",
++"name": "google-noto-serif-balinese-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22029
++"set_id": 22020
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571653,18 +571303,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15879,
++"id": 15870,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-gurmukhi-fonts",
++"name": "google-noto-serif-bengali-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22030
++"set_id": 22021
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571687,18 +571337,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15880,
++"id": 15871,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-hebrew-fonts",
++"name": "google-noto-serif-devanagari-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22031
++"set_id": 22022
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571721,18 +571371,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15881,
++"id": 15872,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-hebrew-vf-fonts",
++"name": "google-noto-serif-dives-akuru-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22032
++"set_id": 22023
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571755,18 +571405,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15882,
++"id": 15873,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-kannada-vf-fonts",
++"name": "google-noto-serif-dogra-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22033
++"set_id": 22024
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571789,18 +571439,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15883,
++"id": 15874,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-khitan-small-script-fonts",
++"name": "google-noto-serif-ethiopic-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22034
++"set_id": 22025
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571823,18 +571473,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15884,
++"id": 15875,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-khmer-vf-fonts",
++"name": "google-noto-serif-ethiopic-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22035
++"set_id": 22026
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571857,18 +571507,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15885,
++"id": 15876,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-khojki-fonts",
++"name": "google-noto-serif-georgian-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22036
++"set_id": 22027
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571891,18 +571541,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15886,
++"id": 15877,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-khojki-vf-fonts",
++"name": "google-noto-serif-grantha-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22037
++"set_id": 22028
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571925,18 +571575,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15887,
++"id": 15878,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-lao-vf-fonts",
++"name": "google-noto-serif-gujarati-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22038
++"set_id": 22029
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571959,18 +571609,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15888,
++"id": 15879,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-makasar-fonts",
++"name": "google-noto-serif-gurmukhi-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22039
++"set_id": 22030
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -571993,18 +571643,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15889,
++"id": 15880,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-malayalam-vf-fonts",
++"name": "google-noto-serif-hebrew-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22040
++"set_id": 22031
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572027,18 +571677,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15890,
++"id": 15881,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-myanmar-fonts",
++"name": "google-noto-serif-hebrew-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22041
++"set_id": 22032
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572061,18 +571711,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15891,
++"id": 15882,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-np-hmong-fonts",
++"name": "google-noto-serif-kannada-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22042
++"set_id": 22033
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572095,18 +571745,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15892,
++"id": 15883,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-np-hmong-vf-fonts",
++"name": "google-noto-serif-khitan-small-script-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22043
++"set_id": 22034
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572129,18 +571779,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15893,
++"id": 15884,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-old-uyghur-fonts",
++"name": "google-noto-serif-khmer-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22044
++"set_id": 22035
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572163,18 +571813,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15894,
++"id": 15885,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-oriya-fonts",
++"name": "google-noto-serif-khojki-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22045
++"set_id": 22036
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572197,18 +571847,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15895,
++"id": 15886,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-oriya-vf-fonts",
++"name": "google-noto-serif-khojki-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22046
++"set_id": 22037
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572231,18 +571881,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15896,
++"id": 15887,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-ottoman-siyaq-fonts",
++"name": "google-noto-serif-lao-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22047
++"set_id": 22038
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572265,18 +571915,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15897,
++"id": 15888,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-sinhala-fonts",
++"name": "google-noto-serif-makasar-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22048
++"set_id": 22039
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572299,18 +571949,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15898,
++"id": 15889,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-tamil-vf-fonts",
++"name": "google-noto-serif-malayalam-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22049
++"set_id": 22040
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572333,18 +571983,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15899,
++"id": 15890,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-tangut-fonts",
++"name": "google-noto-serif-myanmar-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22050
++"set_id": 22041
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572360,101 +572010,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15900,
++"id": 15891,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-telugu-vf-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-serif-nyiakeng-puachue-hmong-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22051
++"set_id": 22042
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15901,
+-"in_packageset": {
+-"package": [
++"modulestream_maps": [
+ {
+-"modulestreams": [
+-null
+-],
+-"name": "google-noto-serif-thai-vf-fonts",
+-"repository": "rhel10-AppStream"
++"in_modulestream": null,
++"out_modulestream": null
+ }
+ ],
+-"set_id": 22052
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15902,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-tibetan-fonts",
++"name": "google-noto-serif-np-hmong-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22053
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23821
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -572462,101 +572060,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15903,
++"id": 15892,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-tibetan-vf-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-serif-nyiakeng-puachue-hmong-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22054
++"set_id": 22043
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15904,
+-"in_packageset": {
+-"package": [
++"modulestream_maps": [
+ {
+-"modulestreams": [
+-null
+-],
+-"name": "google-noto-serif-toto-fonts",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 22055
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
++"in_modulestream": null,
++"out_modulestream": null
+ }
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+ ],
+-"id": 15905,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-toto-vf-fonts",
++"name": "google-noto-serif-np-hmong-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22056
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23822
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -572571,18 +572117,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15906,
++"id": 15893,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-vithkuqi-fonts",
++"name": "google-noto-serif-old-uyghur-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22057
++"set_id": 22044
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572605,18 +572151,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15907,
++"id": 15894,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-vithkuqi-vf-fonts",
++"name": "google-noto-serif-oriya-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22058
++"set_id": 22045
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572639,18 +572185,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15908,
++"id": 15895,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-yezidi-fonts",
++"name": "google-noto-serif-oriya-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22059
++"set_id": 22046
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572673,18 +572219,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15909,
++"id": 15896,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-yezidi-vf-fonts",
++"name": "google-noto-serif-ottoman-siyaq-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22060
++"set_id": 22047
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572707,18 +572253,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15910,
++"id": 15897,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-traditional-nushu-fonts",
++"name": "google-noto-serif-sinhala-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22061
++"set_id": 22048
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572734,101 +572280,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15911,
++"id": 15898,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-traditional-nushu-vf-fonts",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-serif-tamil-slanted-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22062
++"set_id": 22049
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15912,
+-"in_packageset": {
+-"package": [
++"modulestream_maps": [
+ {
+-"modulestreams": [
+-null
+-],
+-"name": "google-noto-sans-kawi-fonts",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 22063
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
++"in_modulestream": null,
++"out_modulestream": null
+ }
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+ ],
+-"id": 15913,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-fonts-all",
++"name": "google-noto-serif-tamil-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22064
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23825
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -572836,67 +572330,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15914,
++"id": 15899,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-mono-vf-fonts",
+-"repository": "rhel10-BaseOS"
++"name": "google-noto-serif-tangut-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22065
++"set_id": 22050
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15915,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-sans-vf-fonts",
+-"repository": "rhel10-BaseOS"
++"name": "google-noto-serif-tangut-fonts",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22066
++"set_id": 23824
+ },
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -572911,18 +572387,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15916,
++"id": 15900,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "google-noto-serif-vf-fonts",
+-"repository": "rhel10-BaseOS"
++"name": "google-noto-serif-telugu-vf-fonts",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22067
++"set_id": 22051
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572945,18 +572421,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15917,
++"id": 15901,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "ibus-panel",
++"name": "google-noto-serif-thai-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22068
++"set_id": 22052
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -572979,18 +572455,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15918,
++"id": 15902,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "libdbusmenu-gtk3",
++"name": "google-noto-serif-tibetan-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22069
++"set_id": 22053
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573013,18 +572489,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15919,
++"id": 15903,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "libdbusmenu",
++"name": "google-noto-serif-tibetan-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22070
++"set_id": 22054
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573047,18 +572523,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15920,
++"id": 15904,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "ibus-gtk4",
+-"repository": "rhel10-CRB"
++"name": "google-noto-serif-toto-fonts",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22071
++"set_id": 22055
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573074,25 +572550,25 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15921,
++"id": 15905,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "NetworkManager-team",
+-"repository": "rhel9-BaseOS"
++"name": "google-noto-serif-toto-vf-fonts",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22072
++"set_id": 22056
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573108,25 +572584,25 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15922,
++"id": 15906,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "NetworkManager-initscripts-updown",
+-"repository": "rhel9-BaseOS"
++"name": "google-noto-serif-vithkuqi-fonts",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22073
++"set_id": 22057
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573142,59 +572618,25 @@ null
+ }
+ },
+ {
+-"action": 2,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15923,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "NetworkManager-initscripts-updown",
+-"repository": "rhel9-BaseOS"
+-}
+-],
+-"set_id": 22074
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 4,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 1,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15924,
++"id": 15907,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "NetworkManager-dispatcher-routing-rules",
+-"repository": "rhel9-AppStream"
++"name": "google-noto-serif-vithkuqi-vf-fonts",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22075
++"set_id": 22058
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573217,18 +572659,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15925,
++"id": 15908,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "libnma-gtk4",
++"name": "google-noto-serif-yezidi-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22076
++"set_id": 22059
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573251,18 +572693,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15926,
++"id": 15909,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts",
++"name": "google-noto-serif-yezidi-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22077
++"set_id": 22060
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573285,18 +572727,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15927,
++"id": 15910,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-chr",
++"name": "google-noto-traditional-nushu-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22078
++"set_id": 22061
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573319,18 +572761,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15928,
++"id": 15911,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-cjk",
++"name": "google-noto-traditional-nushu-vf-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22079
++"set_id": 22062
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573353,18 +572795,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15929,
++"id": 15912,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-cjk-mono",
++"name": "google-noto-sans-kawi-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22080
++"set_id": 22063
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573387,18 +572829,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15930,
++"id": 15913,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-cjk-serif",
++"name": "google-noto-fonts-all",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22081
++"set_id": 22064
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573421,18 +572863,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15931,
++"id": 15914,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-core",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-mono-vf-fonts",
++"repository": "rhel10-BaseOS"
+ }
+ ],
+-"set_id": 22082
++"set_id": 22065
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573448,101 +572890,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15932,
++"id": 15915,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-core-emoji",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-sans-display-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22083
++"set_id": 22066
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15933,
+-"in_packageset": {
+-"package": [
++"modulestream_maps": [
+ {
+-"modulestreams": [
+-null
+-],
+-"name": "default-fonts-core-math",
+-"repository": "rhel10-AppStream"
++"in_modulestream": null,
++"out_modulestream": null
+ }
+ ],
+-"set_id": 22084
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15934,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-core-mono",
++"name": "google-noto-sans-vf-fonts",
+ "repository": "rhel10-BaseOS"
+ }
+ ],
+-"set_id": 22085
+-},
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
++"set_id": 23754
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -573550,67 +572940,49 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 7,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15935,
++"id": 15916,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-core-serif",
+-"repository": "rhel10-BaseOS"
++"name": "google-noto-serif-display-vf-fonts",
++"repository": "rhel9-CRB"
+ }
+ ],
+-"set_id": 22086
++"set_id": 22067
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
++"modulestream_maps": [
+ {
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
++"in_modulestream": null,
++"out_modulestream": null
++}
+ ],
+-"id": 15936,
+-"in_packageset": {
++"out_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-dv",
+-"repository": "rhel10-AppStream"
++"name": "google-noto-serif-vf-fonts",
++"repository": "rhel10-BaseOS"
+ }
+ ],
+-"set_id": 22087
++"set_id": 23820
+ },
+-"initial_release": {
+-"major_version": 9,
+-"minor_version": 5,
+-"os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -573625,18 +572997,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15937,
++"id": 15920,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-hy",
++"name": "ibus-gtk4",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22088
++"set_id": 22071
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573652,25 +573024,25 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 1,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15938,
++"id": 15921,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-iu",
+-"repository": "rhel10-AppStream"
++"name": "NetworkManager-team",
++"repository": "rhel9-BaseOS"
+ }
+ ],
+-"set_id": 22089
++"set_id": 22072
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573686,25 +573058,25 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 1,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15939,
++"id": 15922,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-lo",
+-"repository": "rhel10-AppStream"
++"name": "NetworkManager-initscripts-updown",
++"repository": "rhel9-BaseOS"
+ }
+ ],
+-"set_id": 22090
++"set_id": 22073
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573720,93 +573092,59 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 2,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15940,
++"id": 15923,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-mni",
+-"repository": "rhel10-AppStream"
++"name": "NetworkManager-initscripts-updown",
++"repository": "rhel9-BaseOS"
+ }
+ ],
+-"set_id": 22091
++"set_id": 22074
+ },
+ "initial_release": {
+ "major_version": 9,
+-"minor_version": 5,
++"minor_version": 4,
+ "os_name": "RHEL"
+ },
+ "modulestream_maps": [],
+ "out_packageset": null,
+ "release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+-}
+-},
+-{
+-"action": 0,
+-"architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+-"x86_64"
+-],
+-"id": 15941,
+-"in_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "default-fonts-sat",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 22092
+-},
+-"initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+-},
+-"modulestream_maps": [],
+-"out_packageset": null,
+-"release": {
+-"major_version": 10,
+-"minor_version": 0,
+-"os_name": "RHEL"
+ }
+ },
+ {
+-"action": 0,
++"action": 1,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15942,
++"id": 15924,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-other",
+-"repository": "rhel10-AppStream"
++"name": "NetworkManager-dispatcher-routing-rules",
++"repository": "rhel9-AppStream"
+ }
+ ],
+-"set_id": 22093
++"set_id": 22075
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573829,18 +573167,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15943,
++"id": 15925,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-other-mono",
++"name": "libnma-gtk4",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22094
++"set_id": 22076
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573863,18 +573201,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15944,
++"id": 15926,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-other-sans",
++"name": "default-fonts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22095
++"set_id": 22077
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573897,18 +573235,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15945,
++"id": 15927,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "default-fonts-other-serif",
++"name": "default-fonts-chr",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22096
++"set_id": 22078
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573931,18 +573269,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15946,
++"id": 15928,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-af",
++"name": "default-fonts-cjk",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22097
++"set_id": 22079
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573965,18 +573303,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15947,
++"id": 15929,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-am",
++"name": "default-fonts-cjk-mono",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22098
++"set_id": 22080
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -573999,18 +573337,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15948,
++"id": 15930,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ar",
++"name": "default-fonts-cjk-serif",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22099
++"set_id": 22081
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574033,18 +573371,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15949,
++"id": 15931,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-as",
++"name": "default-fonts-core",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22100
++"set_id": 22082
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574067,18 +573405,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15950,
++"id": 15932,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ast",
++"name": "default-fonts-core-emoji",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22101
++"set_id": 22083
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574101,18 +573439,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15951,
++"id": 15933,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-be",
++"name": "default-fonts-core-math",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22102
++"set_id": 22084
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574135,18 +573473,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15952,
++"id": 15934,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-bg",
+-"repository": "rhel10-AppStream"
++"name": "default-fonts-core-mono",
++"repository": "rhel10-BaseOS"
+ }
+ ],
+-"set_id": 22103
++"set_id": 22085
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574169,18 +573507,52 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15953,
++"id": 15935,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-bn",
++"name": "default-fonts-core-serif",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 22086
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 15936,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "default-fonts-dv",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22104
++"set_id": 22087
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574203,18 +573575,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15954,
++"id": 15937,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-bo",
++"name": "default-fonts-hy",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22105
++"set_id": 22088
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574237,18 +573609,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15955,
++"id": 15938,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-br",
++"name": "default-fonts-iu",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22106
++"set_id": 22089
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574271,18 +573643,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15956,
++"id": 15939,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-bs",
++"name": "default-fonts-lo",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22107
++"set_id": 22090
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574305,18 +573677,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15957,
++"id": 15940,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ca",
++"name": "default-fonts-mni",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22108
++"set_id": 22091
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574339,18 +573711,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15958,
++"id": 15941,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-cs",
++"name": "default-fonts-sat",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22109
++"set_id": 22092
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574373,18 +573745,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15959,
++"id": 15942,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-cy",
++"name": "default-fonts-other",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22110
++"set_id": 22093
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574407,18 +573779,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15960,
++"id": 15943,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-da",
++"name": "default-fonts-other-mono",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22111
++"set_id": 22094
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574441,18 +573813,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15961,
++"id": 15944,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-de",
++"name": "default-fonts-other-sans",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22112
++"set_id": 22095
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574475,18 +573847,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15962,
++"id": 15945,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-dz",
++"name": "default-fonts-other-serif",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22113
++"set_id": 22096
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574509,18 +573881,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15963,
++"id": 15946,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-el",
++"name": "langpacks-fonts-af",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22114
++"set_id": 22097
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574543,18 +573915,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15964,
++"id": 15947,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-en",
++"name": "langpacks-fonts-am",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22115
++"set_id": 22098
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574577,18 +573949,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15965,
++"id": 15948,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-eo",
++"name": "langpacks-fonts-ar",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22116
++"set_id": 22099
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574611,18 +573983,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15966,
++"id": 15949,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-es",
++"name": "langpacks-fonts-as",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22117
++"set_id": 22100
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574645,18 +574017,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15967,
++"id": 15950,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-et",
++"name": "langpacks-fonts-ast",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22118
++"set_id": 22101
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574679,18 +574051,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15968,
++"id": 15951,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-eu",
++"name": "langpacks-fonts-be",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22119
++"set_id": 22102
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574713,18 +574085,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15969,
++"id": 15952,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-fa",
++"name": "langpacks-fonts-bg",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22120
++"set_id": 22103
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574747,18 +574119,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15970,
++"id": 15953,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-fi",
++"name": "langpacks-fonts-bn",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22121
++"set_id": 22104
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574781,18 +574153,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15971,
++"id": 15954,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-fr",
++"name": "langpacks-fonts-bo",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22122
++"set_id": 22105
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574815,18 +574187,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15972,
++"id": 15955,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ga",
++"name": "langpacks-fonts-br",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22123
++"set_id": 22106
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574849,18 +574221,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15973,
++"id": 15956,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-gl",
++"name": "langpacks-fonts-bs",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22124
++"set_id": 22107
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574883,18 +574255,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15974,
++"id": 15957,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-gu",
++"name": "langpacks-fonts-ca",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22125
++"set_id": 22108
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574917,18 +574289,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15975,
++"id": 15958,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-he",
++"name": "langpacks-fonts-cs",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22126
++"set_id": 22109
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574951,18 +574323,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15976,
++"id": 15959,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-hi",
++"name": "langpacks-fonts-cy",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22127
++"set_id": 22110
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -574985,18 +574357,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15977,
++"id": 15960,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-hr",
++"name": "langpacks-fonts-da",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22128
++"set_id": 22111
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575019,18 +574391,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15978,
++"id": 15961,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-hu",
++"name": "langpacks-fonts-de",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22129
++"set_id": 22112
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575053,18 +574425,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15979,
++"id": 15962,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ia",
++"name": "langpacks-fonts-dz",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22130
++"set_id": 22113
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575087,18 +574459,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15980,
++"id": 15963,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-id",
++"name": "langpacks-fonts-el",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22131
++"set_id": 22114
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575121,18 +574493,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15981,
++"id": 15964,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-is",
++"name": "langpacks-fonts-en",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22132
++"set_id": 22115
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575155,18 +574527,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15982,
++"id": 15965,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-it",
++"name": "langpacks-fonts-eo",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22133
++"set_id": 22116
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575189,18 +574561,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15983,
++"id": 15966,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ja",
++"name": "langpacks-fonts-es",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22134
++"set_id": 22117
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575223,18 +574595,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15984,
++"id": 15967,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ka",
++"name": "langpacks-fonts-et",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22135
++"set_id": 22118
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575257,18 +574629,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15985,
++"id": 15968,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-kk",
++"name": "langpacks-fonts-eu",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22136
++"set_id": 22119
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575291,18 +574663,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15986,
++"id": 15969,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-km",
++"name": "langpacks-fonts-fa",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22137
++"set_id": 22120
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575325,18 +574697,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15987,
++"id": 15970,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-kn",
++"name": "langpacks-fonts-fi",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22138
++"set_id": 22121
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575359,18 +574731,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15988,
++"id": 15971,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ko",
++"name": "langpacks-fonts-fr",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22139
++"set_id": 22122
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575393,18 +574765,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15989,
++"id": 15972,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ku",
++"name": "langpacks-fonts-ga",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22140
++"set_id": 22123
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575427,18 +574799,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15990,
++"id": 15973,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-lt",
++"name": "langpacks-fonts-gl",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22141
++"set_id": 22124
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575461,18 +574833,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15991,
++"id": 15974,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-lv",
++"name": "langpacks-fonts-gu",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22142
++"set_id": 22125
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575495,18 +574867,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15992,
++"id": 15975,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-mai",
++"name": "langpacks-fonts-he",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22143
++"set_id": 22126
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575529,18 +574901,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15993,
++"id": 15976,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-mk",
++"name": "langpacks-fonts-hi",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22144
++"set_id": 22127
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575563,18 +574935,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15994,
++"id": 15977,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ml",
++"name": "langpacks-fonts-hr",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22145
++"set_id": 22128
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575597,18 +574969,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15995,
++"id": 15978,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-mr",
++"name": "langpacks-fonts-hu",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22146
++"set_id": 22129
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575631,18 +575003,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15996,
++"id": 15979,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ms",
++"name": "langpacks-fonts-ia",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22147
++"set_id": 22130
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575665,18 +575037,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15997,
++"id": 15980,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-my",
++"name": "langpacks-fonts-id",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22148
++"set_id": 22131
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575699,18 +575071,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15998,
++"id": 15981,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-nb",
++"name": "langpacks-fonts-is",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22149
++"set_id": 22132
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575733,18 +575105,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 15999,
++"id": 15982,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ne",
++"name": "langpacks-fonts-it",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22150
++"set_id": 22133
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575767,18 +575139,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16000,
++"id": 15983,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-nl",
++"name": "langpacks-fonts-ja",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22151
++"set_id": 22134
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575801,18 +575173,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16001,
++"id": 15984,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-nn",
++"name": "langpacks-fonts-ka",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22152
++"set_id": 22135
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575835,18 +575207,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16002,
++"id": 15985,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-nr",
++"name": "langpacks-fonts-kk",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22153
++"set_id": 22136
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575869,18 +575241,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16003,
++"id": 15986,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-nso",
++"name": "langpacks-fonts-km",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22154
++"set_id": 22137
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575903,18 +575275,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16004,
++"id": 15987,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-or",
++"name": "langpacks-fonts-kn",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22155
++"set_id": 22138
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575937,18 +575309,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16005,
++"id": 15988,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-pa",
++"name": "langpacks-fonts-ko",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22156
++"set_id": 22139
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -575971,18 +575343,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16006,
++"id": 15989,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-pl",
++"name": "langpacks-fonts-ku",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22157
++"set_id": 22140
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576005,18 +575377,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16007,
++"id": 15990,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-pt",
++"name": "langpacks-fonts-lt",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22158
++"set_id": 22141
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576039,18 +575411,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16008,
++"id": 15991,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ro",
++"name": "langpacks-fonts-lv",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22159
++"set_id": 22142
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576073,18 +575445,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16009,
++"id": 15992,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ru",
++"name": "langpacks-fonts-mai",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22160
++"set_id": 22143
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576107,18 +575479,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16010,
++"id": 15993,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-si",
++"name": "langpacks-fonts-mk",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22161
++"set_id": 22144
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576141,18 +575513,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16011,
++"id": 15994,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-sk",
++"name": "langpacks-fonts-ml",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22162
++"set_id": 22145
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576175,18 +575547,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16012,
++"id": 15995,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-sl",
++"name": "langpacks-fonts-mr",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22163
++"set_id": 22146
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576209,18 +575581,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16013,
++"id": 15996,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-sq",
++"name": "langpacks-fonts-ms",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22164
++"set_id": 22147
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576243,18 +575615,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16014,
++"id": 15997,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-sr",
++"name": "langpacks-fonts-my",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22165
++"set_id": 22148
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576277,18 +575649,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16015,
++"id": 15998,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ss",
++"name": "langpacks-fonts-nb",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22166
++"set_id": 22149
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576311,18 +575683,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16016,
++"id": 15999,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-sv",
++"name": "langpacks-fonts-ne",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22167
++"set_id": 22150
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576345,18 +575717,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16017,
++"id": 16000,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ta",
++"name": "langpacks-fonts-nl",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22168
++"set_id": 22151
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576379,18 +575751,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16018,
++"id": 16001,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-te",
++"name": "langpacks-fonts-nn",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22169
++"set_id": 22152
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576413,18 +575785,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16019,
++"id": 16002,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-th",
++"name": "langpacks-fonts-nr",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22170
++"set_id": 22153
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576447,18 +575819,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16020,
++"id": 16003,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-tn",
++"name": "langpacks-fonts-nso",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22171
++"set_id": 22154
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576481,18 +575853,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16021,
++"id": 16004,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-tr",
++"name": "langpacks-fonts-or",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22172
++"set_id": 22155
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576515,18 +575887,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16022,
++"id": 16005,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ts",
++"name": "langpacks-fonts-pa",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22173
++"set_id": 22156
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576549,18 +575921,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16023,
++"id": 16006,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-uk",
++"name": "langpacks-fonts-pl",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22174
++"set_id": 22157
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576583,18 +575955,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16024,
++"id": 16007,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ur",
++"name": "langpacks-fonts-pt",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22175
++"set_id": 22158
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576617,18 +575989,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16025,
++"id": 16008,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-ve",
++"name": "langpacks-fonts-ro",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22176
++"set_id": 22159
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576651,18 +576023,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16026,
++"id": 16009,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-vi",
++"name": "langpacks-fonts-ru",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22177
++"set_id": 22160
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576685,18 +576057,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16027,
++"id": 16010,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-xh",
++"name": "langpacks-fonts-si",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22178
++"set_id": 22161
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576719,18 +576091,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16028,
++"id": 16011,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-yi",
++"name": "langpacks-fonts-sk",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22179
++"set_id": 22162
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576753,18 +576125,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16029,
++"id": 16012,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-zh_CN",
++"name": "langpacks-fonts-sl",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22180
++"set_id": 22163
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576787,18 +576159,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16030,
++"id": 16013,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-zh_HK",
++"name": "langpacks-fonts-sq",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22181
++"set_id": 22164
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576821,18 +576193,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16031,
++"id": 16014,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-zh_TW",
++"name": "langpacks-fonts-sr",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22182
++"set_id": 22165
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576855,18 +576227,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16032,
++"id": 16015,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "langpacks-fonts-zu",
++"name": "langpacks-fonts-ss",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22183
++"set_id": 22166
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576882,49 +576254,33 @@ null
+ }
+ },
+ {
+-"action": 7,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16033,
++"id": 16016,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "gcr",
+-"repository": "rhel9-AppStream"
++"name": "langpacks-fonts-sv",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22184
++"set_id": 22167
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "gcr3",
+-"repository": "rhel10-AppStream"
+-}
+-],
+-"set_id": 22185
+-},
++"modulestream_maps": [],
++"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -576939,18 +576295,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16034,
++"id": 16017,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "libdisplay-info",
++"name": "langpacks-fonts-ta",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22186
++"set_id": 22168
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -576968,20 +576324,23 @@ null
+ {
+ "action": 0,
+ "architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
+ "x86_64"
+ ],
+-"id": 16035,
++"id": 16018,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "virtio-win",
++"name": "langpacks-fonts-te",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22187
++"set_id": 22169
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577004,18 +576363,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16036,
++"id": 16019,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "freerdp-server",
+-"repository": "rhel10-CRB"
++"name": "langpacks-fonts-th",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22188
++"set_id": 22170
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577038,18 +576397,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16037,
++"id": 16020,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "gnome-autoar-devel",
+-"repository": "rhel10-CRB"
++"name": "langpacks-fonts-tn",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22189
++"set_id": 22171
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577072,18 +576431,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16038,
++"id": 16021,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "libexif-doc",
+-"repository": "rhel10-CRB"
++"name": "langpacks-fonts-tr",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22190
++"set_id": 22172
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577106,18 +576465,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16039,
++"id": 16022,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "libical-glib-doc",
+-"repository": "rhel10-CRB"
++"name": "langpacks-fonts-ts",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22191
++"set_id": 22173
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577140,18 +576499,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16040,
++"id": 16023,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "libmtp-examples",
+-"repository": "rhel10-CRB"
++"name": "langpacks-fonts-uk",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22192
++"set_id": 22174
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577174,18 +576533,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16041,
++"id": 16024,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "poppler-qt6",
++"name": "langpacks-fonts-ur",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22193
++"set_id": 22175
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577208,18 +576567,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16042,
++"id": 16025,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "PyQt-builder",
+-"repository": "rhel10-CRB"
++"name": "langpacks-fonts-ve",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22194
++"set_id": 22176
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577242,18 +576601,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16043,
++"id": 16026,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "python3-pyqt6-devel",
++"name": "langpacks-fonts-vi",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22195
++"set_id": 22177
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577276,18 +576635,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16044,
++"id": 16027,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "python-pyqt6-doc",
+-"repository": "rhel10-CRB"
++"name": "langpacks-fonts-xh",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22196
++"set_id": 22178
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577310,18 +576669,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16045,
++"id": 16028,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-assistant",
++"name": "langpacks-fonts-yi",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22197
++"set_id": 22179
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577344,18 +576703,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16046,
++"id": 16029,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qdbusviewer",
++"name": "langpacks-fonts-zh_CN",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22198
++"set_id": 22180
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577378,18 +576737,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16047,
++"id": 16030,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qttools-examples",
+-"repository": "rhel10-CRB"
++"name": "langpacks-fonts-zh_HK",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22199
++"set_id": 22181
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577412,18 +576771,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16048,
++"id": 16031,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qt3d",
++"name": "langpacks-fonts-zh_TW",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22200
++"set_id": 22182
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577446,18 +576805,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16049,
++"id": 16032,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qt3d-devel",
++"name": "langpacks-fonts-zu",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22201
++"set_id": 22183
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577480,18 +576839,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16050,
++"id": 16034,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qt3d-examples",
+-"repository": "rhel10-CRB"
++"name": "libdisplay-info",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22202
++"set_id": 22186
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577509,23 +576868,20 @@ null
+ {
+ "action": 0,
+ "architectures": [
+-"aarch64",
+-"ppc64le",
+-"s390x",
+ "x86_64"
+ ],
+-"id": 16051,
++"id": 16035,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qt5compat",
++"name": "virtio-win",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22203
++"set_id": 22187
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577548,18 +576904,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16052,
++"id": 16036,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qt5compat-devel",
+-"repository": "rhel10-AppStream"
++"name": "freerdp-server",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22204
++"set_id": 22188
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577582,18 +576938,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16053,
++"id": 16037,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qt5compat-examples",
++"name": "gnome-autoar-devel",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22205
++"set_id": 22189
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577616,18 +576972,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16054,
++"id": 16038,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase",
+-"repository": "rhel10-AppStream"
++"name": "libexif-doc",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22206
++"set_id": 22190
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577650,18 +577006,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16055,
++"id": 16039,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-common",
+-"repository": "rhel10-AppStream"
++"name": "libical-glib-doc",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22207
++"set_id": 22191
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577684,18 +577040,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16056,
++"id": 16040,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-devel",
+-"repository": "rhel10-AppStream"
++"name": "libmtp-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22208
++"set_id": 22192
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577718,18 +577074,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16057,
++"id": 16041,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-gui",
++"name": "poppler-qt6",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22209
++"set_id": 22193
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577752,18 +577108,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16058,
++"id": 16042,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-mysql",
+-"repository": "rhel10-AppStream"
++"name": "PyQt-builder",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22210
++"set_id": 22194
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577786,18 +577142,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16059,
++"id": 16043,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-odbc",
++"name": "python3-pyqt6-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22211
++"set_id": 22195
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577820,18 +577176,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16060,
++"id": 16044,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-postgresql",
+-"repository": "rhel10-AppStream"
++"name": "python-pyqt6-doc",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22212
++"set_id": 22196
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577854,18 +577210,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16061,
++"id": 16045,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-assistant",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22213
++"set_id": 22197
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577888,18 +577244,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16062,
++"id": 16046,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-private-devel",
+-"repository": "rhel10-CRB"
++"name": "qt6-qdbusviewer",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22214
++"set_id": 22198
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577922,18 +577278,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16063,
++"id": 16047,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtbase-static",
++"name": "qt6-qttools-examples",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22215
++"set_id": 22199
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577956,18 +577312,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16064,
++"id": 16048,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtcharts",
++"name": "qt6-qt3d",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22216
++"set_id": 22200
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -577990,18 +577346,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16065,
++"id": 16049,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtcharts-devel",
++"name": "qt6-qt3d-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22217
++"set_id": 22201
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578024,18 +577380,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16066,
++"id": 16050,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtcharts-examples",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qt3d-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22218
++"set_id": 22202
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578058,18 +577414,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16067,
++"id": 16051,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtconnectivity",
++"name": "qt6-qt5compat",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22219
++"set_id": 22203
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578092,18 +577448,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16068,
++"id": 16052,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtconnectivity-devel",
++"name": "qt6-qt5compat-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22220
++"set_id": 22204
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578126,18 +577482,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16069,
++"id": 16053,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtconnectivity-examples",
++"name": "qt6-qt5compat-examples",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22221
++"set_id": 22205
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578160,18 +577516,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16070,
++"id": 16054,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtdatavis3d",
++"name": "qt6-qtbase",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22222
++"set_id": 22206
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578194,18 +577550,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16071,
++"id": 16055,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtdatavis3d-devel",
++"name": "qt6-qtbase-common",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22223
++"set_id": 22207
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578228,18 +577584,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16072,
++"id": 16056,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtdatavis3d-examples",
++"name": "qt6-qtbase-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22224
++"set_id": 22208
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578262,18 +577618,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16073,
++"id": 16057,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtdeclarative",
++"name": "qt6-qtbase-gui",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22225
++"set_id": 22209
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578296,18 +577652,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16074,
++"id": 16058,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtdeclarative-devel",
++"name": "qt6-qtbase-mysql",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22226
++"set_id": 22210
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578330,18 +577686,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16075,
++"id": 16059,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtdeclarative-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtbase-odbc",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22227
++"set_id": 22211
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578364,18 +577720,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16076,
++"id": 16060,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtdeclarative-static",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtbase-postgresql",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22228
++"set_id": 22212
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578398,18 +577754,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16077,
++"id": 16061,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtimageformats",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtbase-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22229
++"set_id": 22213
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578432,18 +577788,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16078,
++"id": 16062,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtlanguageserver",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtbase-private-devel",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22230
++"set_id": 22214
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578466,18 +577822,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16079,
++"id": 16063,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtlanguageserver-devel",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtbase-static",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22231
++"set_id": 22215
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578500,18 +577856,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16080,
++"id": 16064,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtlocation",
++"name": "qt6-qtcharts",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22232
++"set_id": 22216
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578534,18 +577890,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16081,
++"id": 16065,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtlocation-devel",
++"name": "qt6-qtcharts-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22233
++"set_id": 22217
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578568,18 +577924,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16082,
++"id": 16067,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtlocation-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtconnectivity",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22234
++"set_id": 22219
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578602,18 +577958,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16083,
++"id": 16068,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtlottie",
++"name": "qt6-qtconnectivity-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22235
++"set_id": 22220
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578636,18 +577992,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16084,
++"id": 16069,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtlottie-devel",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtconnectivity-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22236
++"set_id": 22221
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578670,18 +578026,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16085,
++"id": 16070,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtmultimedia",
++"name": "qt6-qtdatavis3d",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22237
++"set_id": 22222
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578704,18 +578060,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16086,
++"id": 16071,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtmultimedia-devel",
++"name": "qt6-qtdatavis3d-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22238
++"set_id": 22223
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578738,18 +578094,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16087,
++"id": 16073,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtmultimedia-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtdeclarative",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22239
++"set_id": 22225
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578772,18 +578128,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16088,
++"id": 16074,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtnetworkauth",
++"name": "qt6-qtdeclarative-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22240
++"set_id": 22226
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578806,18 +578162,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16089,
++"id": 16075,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtnetworkauth-devel",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtdeclarative-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22241
++"set_id": 22227
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578840,18 +578196,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16090,
++"id": 16076,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtnetworkauth-examples",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtdeclarative-static",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22242
++"set_id": 22228
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578874,18 +578230,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16091,
++"id": 16077,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtpositioning",
++"name": "qt6-qtimageformats",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22243
++"set_id": 22229
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578908,18 +578264,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16092,
++"id": 16078,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtpositioning-devel",
++"name": "qt6-qtlanguageserver",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22244
++"set_id": 22230
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578942,18 +578298,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16093,
++"id": 16079,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtpositioning-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtlanguageserver-devel",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22245
++"set_id": 22231
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -578976,18 +578332,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16094,
++"id": 16080,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtquick3d",
++"name": "qt6-qtlocation",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22246
++"set_id": 22232
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579010,18 +578366,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16095,
++"id": 16081,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtquick3d-devel",
++"name": "qt6-qtlocation-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22247
++"set_id": 22233
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579044,18 +578400,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16096,
++"id": 16082,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtquick3d-examples",
++"name": "qt6-qtlocation-examples",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22248
++"set_id": 22234
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579078,18 +578434,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16097,
++"id": 16083,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtquicktimeline",
++"name": "qt6-qtlottie",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22249
++"set_id": 22235
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579112,18 +578468,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16098,
++"id": 16084,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtquicktimeline-devel",
++"name": "qt6-qtlottie-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22250
++"set_id": 22236
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579146,18 +578502,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16099,
++"id": 16085,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtremoteobjects",
++"name": "qt6-qtmultimedia",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22251
++"set_id": 22237
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579180,18 +578536,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16100,
++"id": 16086,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtremoteobjects-devel",
++"name": "qt6-qtmultimedia-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22252
++"set_id": 22238
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579214,18 +578570,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16101,
++"id": 16087,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtremoteobjects-examples",
++"name": "qt6-qtmultimedia-examples",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22253
++"set_id": 22239
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579248,18 +578604,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16102,
++"id": 16088,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtscxml",
++"name": "qt6-qtnetworkauth",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22254
++"set_id": 22240
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579282,18 +578638,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16103,
++"id": 16089,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtscxml-devel",
++"name": "qt6-qtnetworkauth-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22255
++"set_id": 22241
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579316,18 +578672,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16104,
++"id": 16091,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtscxml-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtpositioning",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22256
++"set_id": 22243
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579350,18 +578706,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16105,
++"id": 16092,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtsensors",
++"name": "qt6-qtpositioning-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22257
++"set_id": 22244
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579384,18 +578740,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16106,
++"id": 16093,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtsensors-devel",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtpositioning-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22258
++"set_id": 22245
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579418,18 +578774,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16107,
++"id": 16094,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtsensors-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtquick3d",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22259
++"set_id": 22246
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579452,18 +578808,51 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16108,
++"id": 16095,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtserialbus",
++"name": "qt6-qtquick3d-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22260
++"set_id": 22247
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"x86_64"
++],
++"id": 16096,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "qt6-qtquick3d-examples",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22248
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579486,18 +578875,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16109,
++"id": 16097,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtserialbus-devel",
++"name": "qt6-qtquicktimeline",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22261
++"set_id": 22249
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579520,18 +578909,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16110,
++"id": 16098,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtserialbus-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtquicktimeline-devel",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22262
++"set_id": 22250
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579554,18 +578943,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16111,
++"id": 16099,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtserialport",
++"name": "qt6-qtremoteobjects",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22263
++"set_id": 22251
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579588,18 +578977,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16112,
++"id": 16100,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtserialport-devel",
++"name": "qt6-qtremoteobjects-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22264
++"set_id": 22252
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579622,18 +579011,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16113,
++"id": 16101,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtserialport-examples",
++"name": "qt6-qtremoteobjects-examples",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22265
++"set_id": 22253
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579656,18 +579045,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16114,
++"id": 16102,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtshadertools",
++"name": "qt6-qtscxml",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22266
++"set_id": 22254
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579690,18 +579079,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16115,
++"id": 16103,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtshadertools-devel",
++"name": "qt6-qtscxml-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22267
++"set_id": 22255
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579724,18 +579113,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16116,
++"id": 16104,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtspeech",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtscxml-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22268
++"set_id": 22256
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579758,18 +579147,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16117,
++"id": 16105,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtspeech-devel",
++"name": "qt6-qtsensors",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22269
++"set_id": 22257
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579792,18 +579181,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16118,
++"id": 16106,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtspeech-speechd",
++"name": "qt6-qtsensors-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22270
++"set_id": 22258
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579826,18 +579215,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16119,
++"id": 16107,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtspeech-examples",
++"name": "qt6-qtsensors-examples",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22271
++"set_id": 22259
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579860,18 +579249,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16120,
++"id": 16108,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtsvg",
++"name": "qt6-qtserialbus",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22272
++"set_id": 22260
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579894,18 +579283,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16121,
++"id": 16109,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtsvg-devel",
++"name": "qt6-qtserialbus-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22273
++"set_id": 22261
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579928,18 +579317,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16122,
++"id": 16110,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtsvg-examples",
++"name": "qt6-qtserialbus-examples",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22274
++"set_id": 22262
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579962,18 +579351,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16123,
++"id": 16111,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qttranslations",
++"name": "qt6-qtserialport",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22275
++"set_id": 22263
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -579996,18 +579385,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16124,
++"id": 16112,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtvirtualkeyboard",
++"name": "qt6-qtserialport-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22276
++"set_id": 22264
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580030,18 +579419,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16125,
++"id": 16113,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtvirtualkeyboard-devel",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtserialport-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22277
++"set_id": 22265
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580064,18 +579453,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16126,
++"id": 16114,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtvirtualkeyboard-examples",
++"name": "qt6-qtshadertools",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22278
++"set_id": 22266
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580098,18 +579487,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16127,
++"id": 16115,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwayland",
++"name": "qt6-qtshadertools-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22279
++"set_id": 22267
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580132,18 +579521,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16128,
++"id": 16116,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwayland-devel",
++"name": "qt6-qtspeech",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22280
++"set_id": 22268
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580166,18 +579555,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16129,
++"id": 16117,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwayland-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtspeech-devel",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22281
++"set_id": 22269
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580200,18 +579589,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16130,
++"id": 16118,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwebchannel",
++"name": "qt6-qtspeech-speechd",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22282
++"set_id": 22270
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580234,18 +579623,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16131,
++"id": 16119,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwebchannel-devel",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtspeech-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22283
++"set_id": 22271
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580268,18 +579657,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16132,
++"id": 16120,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwebchannel-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtsvg",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22284
++"set_id": 22272
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580302,18 +579691,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16133,
++"id": 16121,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwebsockets",
++"name": "qt6-qtsvg-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22285
++"set_id": 22273
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580336,18 +579725,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16134,
++"id": 16122,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwebsockets-devel",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtsvg-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22286
++"set_id": 22274
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580370,18 +579759,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16135,
++"id": 16123,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-qtwebsockets-examples",
+-"repository": "rhel10-CRB"
++"name": "qt6-qttranslations",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22287
++"set_id": 22275
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580404,18 +579793,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16136,
++"id": 16124,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-rpm-macros",
++"name": "qt6-qtvirtualkeyboard",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22288
++"set_id": 22276
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580438,18 +579827,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16137,
++"id": 16125,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "qt6-srpm-macros",
++"name": "qt6-qtvirtualkeyboard-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22289
++"set_id": 22277
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580472,18 +579861,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16138,
++"id": 16127,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "rest-devel",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtwayland",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22290
++"set_id": 22279
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580506,18 +579895,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16139,
++"id": 16128,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "xdg-desktop-portal-devel",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtwayland-devel",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22291
++"set_id": 22280
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580540,18 +579929,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16140,
++"id": 16129,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "gnome-clocks",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtwayland-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22292
++"set_id": 22281
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580574,18 +579963,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16141,
++"id": 16130,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "gnome-desktop4",
++"name": "qt6-qtwebchannel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22293
++"set_id": 22282
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580608,18 +579997,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16142,
++"id": 16131,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "gnome-desktop4-devel",
+-"repository": "rhel10-CRB"
++"name": "qt6-qtwebchannel-devel",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22294
++"set_id": 22283
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580642,18 +580031,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16143,
++"id": 16132,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "gnome-calculator-devel",
++"name": "qt6-qtwebchannel-examples",
+ "repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22295
++"set_id": 22284
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580676,18 +580065,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16144,
++"id": 16133,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "glycin-loaders",
++"name": "qt6-qtwebsockets",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22296
++"set_id": 22285
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580710,18 +580099,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16145,
++"id": 16134,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "loupe",
++"name": "qt6-qtwebsockets-devel",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22297
++"set_id": 22286
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580744,18 +580133,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16146,
++"id": 16135,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "snapshot",
+-"repository": "rhel10-AppStream"
++"name": "qt6-qtwebsockets-examples",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22298
++"set_id": 22287
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580778,18 +580167,18 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16147,
++"id": 16136,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "vte291-gtk4",
++"name": "qt6-rpm-macros",
+ "repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22299
++"set_id": 22288
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580805,49 +580194,33 @@ null
+ }
+ },
+ {
+-"action": 6,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16148,
++"id": 16137,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "glib2-doc",
+-"repository": "rhel9-AppStream"
++"name": "qt6-srpm-macros",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22300
++"set_id": 22289
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [
+-{
+-"in_modulestream": null,
+-"out_modulestream": null
+-}
+-],
+-"out_packageset": {
+-"package": [
+-{
+-"modulestreams": [
+-null
+-],
+-"name": "glib2-doc",
+-"repository": "rhel10-CRB"
+-}
+-],
+-"set_id": 22301
+-},
++"modulestream_maps": [],
++"out_packageset": null,
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -580855,25 +580228,25 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16149,
++"id": 16138,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "yelp",
+-"repository": "rhel9-AppStream"
++"name": "rest-devel",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22302
++"set_id": 22290
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580889,59 +580262,59 @@ null
+ }
+ },
+ {
+-"action": 2,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16150,
++"id": 16139,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "yelp",
+-"repository": "rhel9-AppStream"
++"name": "xdg-desktop-portal-devel",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22303
++"set_id": 22291
+ },
+ "initial_release": {
+ "major_version": 9,
+-"minor_version": 4,
++"minor_version": 5,
+ "os_name": "RHEL"
+ },
+ "modulestream_maps": [],
+ "out_packageset": null,
+ "release": {
+-"major_version": 9,
+-"minor_version": 5,
++"major_version": 10,
++"minor_version": 0,
+ "os_name": "RHEL"
+ }
+ },
+ {
+-"action": 1,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16151,
++"id": 16140,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "yelp-libs",
+-"repository": "rhel9-AppStream"
++"name": "gnome-clocks",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22304
++"set_id": 22292
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -580957,59 +580330,59 @@ null
+ }
+ },
+ {
+-"action": 2,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16152,
++"id": 16141,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "yelp-libs",
+-"repository": "rhel9-AppStream"
++"name": "gnome-desktop4",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22305
++"set_id": 22293
+ },
+ "initial_release": {
+ "major_version": 9,
+-"minor_version": 4,
++"minor_version": 5,
+ "os_name": "RHEL"
+ },
+ "modulestream_maps": [],
+ "out_packageset": null,
+ "release": {
+-"major_version": 9,
+-"minor_version": 5,
++"major_version": 10,
++"minor_version": 0,
+ "os_name": "RHEL"
+ }
+ },
+ {
+-"action": 1,
++"action": 0,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16153,
++"id": 16142,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "yelp-devel",
+-"repository": "rhel9-CRB"
++"name": "gnome-desktop4-devel",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22306
++"set_id": 22294
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -581025,22 +580398,25 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 0,
+ "architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
+ "x86_64"
+ ],
+-"id": 16154,
++"id": 16143,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "mingw32-pcre",
+-"repository": "rhel9-CRB"
++"name": "gnome-calculator-devel",
++"repository": "rhel10-CRB"
+ }
+ ],
+-"set_id": 22307
++"set_id": 22295
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -581056,22 +580432,23 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 0,
+ "architectures": [
++"ppc64le",
+ "x86_64"
+ ],
+-"id": 16155,
++"id": 16144,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "mingw32-pcre-static",
+-"repository": "rhel9-CRB"
++"name": "glycin-loaders",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22308
++"set_id": 22296
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -581087,22 +580464,25 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 0,
+ "architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
+ "x86_64"
+ ],
+-"id": 16156,
++"id": 16147,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "mingw64-pcre",
+-"repository": "rhel9-CRB"
++"name": "vte291-gtk4",
++"repository": "rhel10-AppStream"
+ }
+ ],
+-"set_id": 22309
++"set_id": 22299
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -581118,30 +580498,49 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 6,
+ "architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
+ "x86_64"
+ ],
+-"id": 16157,
++"id": 16148,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "mingw64-pcre-static",
+-"repository": "rhel9-CRB"
++"name": "glib2-doc",
++"repository": "rhel9-AppStream"
+ }
+ ],
+-"set_id": 22310
++"set_id": 22300
+ },
+ "initial_release": {
+ "major_version": 9,
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "glib2-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22301
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -581149,22 +580548,25 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 1,
+ "architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
+ "x86_64"
+ ],
+-"id": 16158,
++"id": 16149,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "intel-lpmd",
+-"repository": "rhel10-AppStream"
++"name": "yelp",
++"repository": "rhel9-AppStream"
+ }
+ ],
+-"set_id": 22311
++"set_id": 22302
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -581180,36 +580582,36 @@ null
+ }
+ },
+ {
+-"action": 0,
++"action": 2,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16159,
++"id": 16150,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "ptyxis",
+-"repository": "rhel10-AppStream"
++"name": "yelp",
++"repository": "rhel9-AppStream"
+ }
+ ],
+-"set_id": 22312
++"set_id": 22303
+ },
+ "initial_release": {
+ "major_version": 9,
+-"minor_version": 5,
++"minor_version": 4,
+ "os_name": "RHEL"
+ },
+ "modulestream_maps": [],
+ "out_packageset": null,
+ "release": {
+-"major_version": 10,
+-"minor_version": 0,
++"major_version": 9,
++"minor_version": 5,
+ "os_name": "RHEL"
+ }
+ },
+@@ -581221,18 +580623,275 @@ null
+ "s390x",
+ "x86_64"
+ ],
+-"id": 16160,
++"id": 16151,
+ "in_packageset": {
+ "package": [
+ {
+ "modulestreams": [
+ null
+ ],
+-"name": "mesa-libGLw",
++"name": "yelp-libs",
+ "repository": "rhel9-AppStream"
+ }
+ ],
+-"set_id": 22313
++"set_id": 22304
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16152,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "yelp-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22305
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16153,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "yelp-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 22306
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 16154,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mingw32-pcre",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 22307
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 16155,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mingw32-pcre-static",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 22308
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 16156,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mingw64-pcre",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 22309
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 16157,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mingw64-pcre-static",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 22310
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"x86_64"
++],
++"id": 16158,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "intel-lpmd",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22311
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16160,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mesa-libGLw",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22313
+ },
+ "initial_release": {
+ "major_version": 9,
+@@ -584641,7 +584300,7 @@ null
+ }
+ },
+ {
+-"action": 1,
++"action": 3,
+ "architectures": [
+ "aarch64",
+ "ppc64le",
+@@ -584666,8 +584325,24 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ },
+-"modulestream_maps": [],
+-"out_packageset": null,
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ptyxis",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23160
++},
+ "release": {
+ "major_version": 10,
+ "minor_version": 0,
+@@ -601333,6 +601008,25188 @@ null
+ "minor_version": 5,
+ "os_name": "RHEL"
+ }
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16750,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++{
++"name": "postgresql",
++"stream": "16"
++}
++],
++"name": "pgvector",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22941
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 5,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16751,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "iwl1000-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl100-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl105-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl135-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl2000-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl2030-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl5000-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl5150-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl6000-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl6000g2a-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl6000g2b-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl6050-firmware",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 22942
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "iwlwifi-dvm-firmware",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 22943
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 5,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16752,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "iwl3160-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl7260-firmware",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 22944
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "iwlwifi-mvm-firmware",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 22945
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 5,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16753,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "iwl3945-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "iwl4965-firmware",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 22946
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "iwlegacy-firmware",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 22947
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 5,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16754,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libertas-sd8686-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "libertas-sd8787-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "libertas-usb8388-firmware",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "libertas-usb8388-olpc-firmware",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 22948
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libertas-firmware",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 22949
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 4,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16755,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "linux-firmware",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 22950
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "amd-gpu-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "amd-ucode-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "atheros-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "brcmfmac-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "cirrus-audio-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "dvb-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "intel-audio-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "intel-gpu-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "intel-vsc-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "linux-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "mlxsw_spectrum-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "mrvlprestera-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "mt7xxx-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "nvidia-gpu-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "nxpwireless-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "qcom-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "realtek-firmware",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "tiwilink-firmware",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 22951
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16756,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "redhat-cloud-client-configuration",
++"repository": "rhel7-base"
++}
++],
++"set_id": 22952
++},
++"initial_release": {
++"major_version": 7,
++"minor_version": 8,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 7,
++"minor_version": 9,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16757,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "redhat-cloud-client-configuration",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 22953
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16758,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "redhat-cloud-client-configuration",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22954
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16759,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "insights-client",
++"repository": "rhel7-base"
++}
++],
++"set_id": 22955
++},
++"initial_release": {
++"major_version": 7,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 7,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16760,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-lasso",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22956
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16761,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-lasso",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22957
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16762,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "lasso-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 22958
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16763,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "lasso",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22959
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 0,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 1,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16764,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "lasso",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22960
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16765,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "lasso",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22961
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16766,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22962
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16767,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22963
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16768,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22964
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16769,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22965
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16770,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince-nautilus",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22966
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16771,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince-nautilus",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22967
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16772,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince-previewer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22968
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16773,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince-previewer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22969
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16774,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince-thumbnailer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22970
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16775,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "evince-thumbnailer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22971
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16776,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "valadoc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22972
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16777,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "vala-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22973
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16778,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "valadoc-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22974
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16779,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libical-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22975
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libical-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22976
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16780,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libical-glib-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 22977
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libical-glib-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22978
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16781,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cairo-tools",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22979
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16782,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dbus-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22980
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16783,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "editorconfig",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22981
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16784,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "editorconfig-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22982
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16785,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "editorconfig-libs",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22983
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16786,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "enchant2-voikko",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22984
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16787,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcr3-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23184
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16788,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "xrdb",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22986
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16789,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcr-libs",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22987
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16790,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-shell-extension-light-style",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22988
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16792,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtk3-immodules",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22990
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16793,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtk4-devel-docs",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22991
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16794,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtk4-devel-tools",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22992
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16795,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtksourceview5",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22993
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16796,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtksourceview5-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22994
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16797,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libadwaita-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22995
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16798,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libgweather-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22996
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16799,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libhandy-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 22997
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16800,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libpanel",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22998
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16801,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libportal",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 22999
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16802,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libportal-gtk3",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23000
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16803,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libportal-gtk4",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23001
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16804,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libportal-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23002
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16805,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libportal-devel-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23003
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16806,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libportal-gtk3-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23004
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16807,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libportal-gtk4-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23005
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16808,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsoup3-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23006
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16809,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsysprof",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23007
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16810,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sysprof",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23008
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16811,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sysprof-agent",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23009
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16812,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sysprof-cli",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23010
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16813,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sysprof-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23011
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16814,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libxml2-static",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23012
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16815,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rsvg-pixbuf-loader",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23013
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16816,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "tecla",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23014
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16817,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "tecla-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23015
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16818,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "tracker-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23016
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16819,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "vte291-gtk4-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23017
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16820,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "yelp-xsl-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23018
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16821,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "geocode-glib-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23019
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "geocode-glib-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23020
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16822,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libgweather-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23021
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libgweather-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23022
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16823,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtkmm4.0",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23023
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16824,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtkmm4.0-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23024
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16825,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtkmm4.0-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23025
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16826,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsigc++30",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23026
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16827,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsigc++30-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23027
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16828,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsigc++30-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23028
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16832,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mm-common",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23032
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16833,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mm-common-docs",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23033
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16840,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "glibmm24",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23426
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "glibmm2.68",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23427
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16841,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "glibmm24-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23429
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "glibmm2.68-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23430
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16842,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "glibmm24-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23431
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "glibmm2.68-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23432
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16843,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-session-xsession",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23046
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16844,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-session-xsession",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23047
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16845,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtkmm30",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23433
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16846,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtkmm30-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23435
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16847,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtkmm30-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23436
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16848,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "brasero-nautilus",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23054
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16849,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "brasero-nautilus",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23055
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16850,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdex",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23056
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16851,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdex-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23057
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16852,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pycdlib",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23058
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16853,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pycdlib",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23059
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16854,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-jsonschema-specifications",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23060
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16855,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "langpacks-core-mni",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23061
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16856,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "langpacks-core-sat",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23062
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16857,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "langpacks-dv",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23063
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16858,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "langpacks-mni",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23064
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16859,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "langpacks-sat",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23065
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16860,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "langpacks-fonts-sat",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23066
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16861,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "langpacks-fonts-mni",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23067
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 16862,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mythes-eo",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23068
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"x86_64"
++],
++"id": 16863,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mythes-eo",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23069
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16864,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "usbredir-tools",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23070
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16865,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "zhongyi-song-fonts",
++"repository": "rhel9-Supplementary"
++}
++],
++"set_id": 23071
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16866,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "zhongyi-song-fonts",
++"repository": "rhel9-Supplementary"
++}
++],
++"set_id": 23072
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16867,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ghostscript-tools-dvipdf",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23073
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ghostscript-tools-dvipdf",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23074
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16868,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bind9.18",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23075
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16869,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bind9.18-chroot",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23076
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16870,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bind9.18-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23077
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16871,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bind9.18-dnssec-utils",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23078
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16872,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bind9.18-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23079
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16873,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bind9.18-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23080
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16874,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bind9.18-utils",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23081
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16875,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bind9.18-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23082
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16876,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "yggdrasil-worker-package-manager",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23083
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16877,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "vdo",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23084
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16878,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "plotnetcfg",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23085
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16879,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-grc",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23086
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16880,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-fo",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23087
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"s390x"
++],
++"id": 16881,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gettext-runtime",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23088
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16882,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-tk",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23089
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16883,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-sa",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23090
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16884,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-mn",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23091
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16885,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-mi",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23092
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16886,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-ku",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23093
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16887,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-is",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23094
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16888,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-ia",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23095
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16889,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "hyphen-hsb",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23096
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16890,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-fonts-common",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23097
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-fonts-common",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23098
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16891,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sil-nuosu-fonts",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23099
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sil-nuosu-fonts",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23100
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16892,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdbusmenu-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23101
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16893,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdbusmenu-gtk3-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23102
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16894,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "kyotocabinet-libs",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23103
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16895,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-kufi-arabic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23104
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16896,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-naskh-arabic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23105
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16897,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-naskh-arabic-ui-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23106
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16898,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-nastaliq-urdu-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23107
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16899,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-balinese-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23108
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16900,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-bamum-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23109
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16901,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-batak-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23110
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16902,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-buginese-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23111
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-buginese-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23683
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16903,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-buhid-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23112
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-buhid-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23684
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16904,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-canadian-aboriginal-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23113
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16905,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-cham-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23114
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16906,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-cuneiform-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23115
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-cuneiform-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23685
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16907,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-cypriot-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23116
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-cypriot-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23686
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16908,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-gothic-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23117
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-gothic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23722
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16909,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-gurmukhi-ui-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23118
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-gurmukhi-ui-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23723
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16910,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-hanunoo-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23119
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16911,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-inscriptional-pahlavi-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23120
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16912,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-inscriptional-parthian-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23121
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16913,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-javanese-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23122
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16914,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-lepcha-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23123
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16915,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-limbu-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23124
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16916,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-linear-b-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23125
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-linear-b-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23727
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16917,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-lisu-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23126
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16918,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-mandaic-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23127
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-mandaic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23728
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16919,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-meetei-mayek-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23128
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16920,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-mongolian-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23129
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16921,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-myanmar-ui-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23130
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-myanmar-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23756
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16922,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-new-tai-lue-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23131
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16923,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-ogham-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23132
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-ogham-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23759
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16924,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-ol-chiki-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23133
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16925,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-old-italic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23134
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16926,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-old-persian-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23135
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16927,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-oriya-ui-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23136
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-oriya-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23760
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16928,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-rejang-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23137
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16929,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-runic-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23138
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-runic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23762
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16930,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-samaritan-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23139
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16931,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-saurashtra-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23140
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16932,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-sundanese-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23141
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16933,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-syloti-nagri-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23142
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16934,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-syriac-eastern-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23143
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16935,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-syriac-western-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23144
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16936,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tagalog-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23145
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16937,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tagbanwa-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23146
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tagbanwa-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23787
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16938,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tai-le-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23147
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16939,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tai-tham-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23148
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16940,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tai-viet-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23149
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16941,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tifinagh-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23150
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16942,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-yi-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23151
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-yi-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23818
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16943,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-bengali-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23152
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16944,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-devanagari-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23153
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16945,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-gujarati-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23154
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16946,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-kannada-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23155
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16947,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-malayalam-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23156
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16948,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-tamil-slanted-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23157
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-tamil-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23823
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16949,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-telugu-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23158
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16950,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "eog",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23162
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16951,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cheese",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23166
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16952,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gedit",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23168
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16953,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++{
++"name": "redis",
++"stream": "7"
++},
++null
++],
++"name": "redis-doc",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23169
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16954,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libblockdev-smart",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23170
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16955,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libblockdev-smartmontools",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23171
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16956,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "authselect-compat",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23172
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16957,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "authselect-compat",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23173
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16958,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pam_ssh_agent_auth",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23174
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16959,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pam_ssh_agent_auth",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23175
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16960,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openssl-pkcs11",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23176
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pkcs11-provider",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23560
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16961,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ht-caladea-fonts",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23177
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-crosextra-caladea-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23178
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16964,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcr3",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23182
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16965,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcr3-base",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23183
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 4,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16966,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libkcapi-hmaccalc",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23185
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libkcapi-hasher",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "libkcapi-hmaccalc",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23186
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 5,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16967,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libproxy-gnome",
++"repository": "rhel9-AppStream"
++},
++{
++"modulestreams": [
++null
++],
++"name": "libproxy-webkitgtk4",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23187
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libproxy",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23188
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16968,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-libproxy",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23189
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16969,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-libproxy",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23190
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16970,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libpmemobj++-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23191
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16971,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libpmemobj++-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23192
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16972,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libpmemobj++-doc",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23193
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16973,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libpmemobj++-doc",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23194
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 16974,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pmdk-convert",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23195
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"x86_64"
++],
++"id": 16975,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pmdk-convert",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23196
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16976,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "iniparser",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23197
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16977,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cxl-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23198
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cxl-libs",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23199
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16978,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "liburing",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23200
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "liburing",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23201
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16979,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "nvme-stas",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23202
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16980,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "nvme-stas",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23203
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 16981,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "compat-sap-c++-13",
++"repository": "rhel9-SAP-Solutions"
++}
++],
++"set_id": 23204
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 4,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16984,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mysql-test",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23208
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mysql-test",
++"repository": "rhel10-CRB"
++},
++{
++"modulestreams": [
++null
++],
++"name": "mysql-test-data",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23209
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16985,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "erofs-fuse",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23210
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16986,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "erofs-utils",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23211
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16987,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcr-base",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23213
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16988,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-desktop3-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23214
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-desktop3-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23215
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"x86_64"
++],
++"id": 16989,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "fwupd-efi",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23216
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"x86_64"
++],
++"id": 16990,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnu-efi-compat",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23217
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"x86_64"
++],
++"id": 16991,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rust-std-static-x86_64-unknown-none",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23218
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16992,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-netifaces",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23219
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16993,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-netifaces",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23220
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16994,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "udev-hid-bpf",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23221
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16995,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "udev-hid-bpf-stable",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23222
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16996,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "opentelemetry-collector",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23223
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16997,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Digest-SHA1",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23224
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16998,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Digest-SHA1",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23225
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 16999,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rpmlint",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23226
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17000,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rpmlint",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23227
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17001,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "alsa-ucm-utils",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23228
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17002,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cockpit-ha-cluster",
++"repository": "rhel10-HighAvailability"
++}
++],
++"set_id": 23229
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17007,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "xxhash",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23244
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17008,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "xxhash-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23246
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17009,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "xxhash-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23247
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17010,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "xxhash-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23248
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17013,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "xxhash",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23245
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17014,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "xxhash-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23249
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17015,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ucs-miscfixed-fonts",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23250
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17016,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ucs-miscfixed-fonts",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23251
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"s390x"
++],
++"id": 17017,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gettext-envsubst",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23252
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17018,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mtx",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23253
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17020,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pam-docs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23255
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pam-doc",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23256
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17021,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pam-libs",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23257
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"ppc64le",
++"x86_64"
++],
++"id": 17022,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sap-hana-ha",
++"repository": "rhel10-SAP-Solutions"
++}
++],
++"set_id": 23258
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17023,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-cxx",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23259
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17024,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-cxx-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23260
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17025,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23261
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17026,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23262
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17027,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-devel-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23263
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17028,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-sql",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23264
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17029,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-sql-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23265
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17030,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-utils",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23266
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17031,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libdb-utils",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23267
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17032,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++{
++"name": "postgresql",
++"stream": "16"
++}
++],
++"name": "pgvector",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23268
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": {
++"name": "postgresql",
++"stream": "16"
++},
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pgvector",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23269
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17033,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libpq",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23270
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libpq",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23271
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"s390x"
++],
++"id": 17034,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "qclib-static",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23272
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17035,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "acpica-tools",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23273
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "acpica-tools",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23274
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17036,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libnsl2",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23275
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17037,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libnsl2",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23276
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17038,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "flexiblas-openblas-serial",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23277
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17039,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-Cython",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23278
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-cython",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23279
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17040,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "emacs-cython-mode",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23280
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 17041,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23281
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 17042,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-debug",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23282
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 17043,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-idle",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23283
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 17044,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-test",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23284
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 17045,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23285
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"x86_64"
++],
++"id": 17046,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23286
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 17047,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23287
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"x86_64"
++],
++"id": 17048,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23288
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 17049,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-tkinter",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23289
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"x86_64"
++],
++"id": 17050,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-tkinter",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23290
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17051,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-attrs",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23291
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17052,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libstemmer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23292
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17053,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libstemmer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23293
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17054,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libstemmer-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23294
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17055,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-cffi",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23295
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17056,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-cffi",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23296
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17057,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-charset-normalizer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23297
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17058,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-charset-normalizer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23298
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17059,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-cryptography",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23299
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17060,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-cryptography",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23300
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17061,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-Cython",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23301
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17062,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-idna",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23302
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17063,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-idna",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23303
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17064,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-iniconfig",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23304
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17065,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-lxml",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23305
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17066,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-lxml",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23306
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17067,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-mod_wsgi",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23307
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17068,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-mod_wsgi",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23308
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17069,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-numpy",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23309
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17070,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-numpy",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23310
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17071,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-numpy-f2py",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23311
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17072,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-numpy-f2py",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23312
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17073,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-packaging",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23313
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17074,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pip",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23314
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17075,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pip",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23315
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17076,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pip-wheel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23316
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17077,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pip-wheel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23317
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17078,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pluggy",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23318
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17079,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-ply",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23319
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17080,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-ply",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23320
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17081,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-psycopg2",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23321
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17082,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-psycopg2",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23322
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17083,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-psycopg2-debug",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23323
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17084,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-psycopg2-tests",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23324
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17085,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pybind11-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23325
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17086,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pybind11",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23326
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17087,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pycparser",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23327
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17088,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pycparser",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23328
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17089,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-PyMySQL+rsa",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23329
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17090,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-PyMySQL+rsa",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23330
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17091,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-PyMySQL",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23331
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17092,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-PyMySQL",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23332
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17093,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pyparsing",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23333
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17094,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pysocks",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23334
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17095,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pysocks",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23335
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17096,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pytest",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23336
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17097,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-requests",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23337
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17098,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-requests",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23338
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17099,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-requests+security",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23339
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17100,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-requests+security",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23340
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17101,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-requests+socks",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23341
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17102,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-requests+socks",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23342
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17103,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-scipy",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23343
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17104,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-scipy",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23344
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17105,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-semantic_version",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23345
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17106,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-setuptools",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23346
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17107,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-setuptools",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23347
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17108,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-setuptools-wheel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23348
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17109,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-setuptools-wheel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23349
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17110,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23350
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17111,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23351
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"x86_64"
++],
++"id": 17112,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-tkinter",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23352
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17113,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pyyaml",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23353
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17114,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-pyyaml",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23354
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17115,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-setuptools-rust",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23355
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17116,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-six",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23356
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17117,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-six",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23357
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17118,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-urllib3",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23358
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17119,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-urllib3",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23359
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17120,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-wheel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23360
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17121,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-wheel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23361
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17122,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.11-wheel-wheel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23362
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17123,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23363
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23364
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17124,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-debug",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23365
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-debug",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23366
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17125,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23367
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-devel",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23368
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17126,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-idle",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23369
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-idle",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23370
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17127,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23371
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-libs",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23372
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17128,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-test",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23373
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-test",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23374
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17129,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-tkinter",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23375
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-tkinter",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23376
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17130,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-cffi",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23377
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-cffi",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23378
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17131,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-charset-normalizer",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23379
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-charset-normalizer",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23380
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17132,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-cryptography",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23381
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-cryptography",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23382
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17133,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ansible-collection-microsoft-sql",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23383
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17134,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnutls-fips",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23384
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17135,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "liboqs-devel",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23385
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17136,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++{
++"name": "postgresql",
++"stream": "15"
++},
++{
++"name": "postgresql",
++"stream": "16"
++}
++],
++"name": "postgresql-test-rpm-macros",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23392
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17138,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "atkmm",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23395
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17139,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "atkmm",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23396
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17140,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "atkmm-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23397
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17141,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "atkmm-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23398
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17142,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cairomm",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23420
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cairomm1.16",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23421
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17143,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cairomm",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23400
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17144,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cairomm-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23422
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cairomm1.16-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23423
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17145,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cairomm-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23424
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cairomm1.16-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23425
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17146,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsigc++20",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23403
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17147,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsigc++20",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23404
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17148,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsigc++20-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23405
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17149,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libsigc++20-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23406
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17150,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pangomm",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23411
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pangomm2.48",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23412
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17151,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pangomm",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23413
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17152,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pangomm-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23416
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pangomm2.48-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23417
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 3,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17153,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pangomm-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23418
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pangomm2.48-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23419
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17154,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "glibmm24",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23428
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17155,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gtkmm30",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23434
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17158,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "harfbuzz-cairo",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23439
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17159,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sssd-polkit-rules",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23440
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17160,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "insights-client-ros",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23441
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17161,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-Cython",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23442
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-cython",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23443
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17162,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-flit-core",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23444
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-flit-core",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23445
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17163,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-idna",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23446
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-idna",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23447
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17164,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-iniconfig",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23448
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-iniconfig",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23449
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17165,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-lxml",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23450
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-lxml",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23451
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17166,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-mod_wsgi",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23452
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-mod_wsgi",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23453
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17167,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-numpy",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23454
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-numpy",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23455
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17168,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-numpy-f2py",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23456
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-numpy-f2py",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23457
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17169,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-packaging",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23458
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-packaging",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23459
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17170,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-pip",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23460
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pip",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23461
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17171,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-pip-wheel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23462
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pip-wheel",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23463
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17172,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-pluggy",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23464
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pluggy",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23465
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17173,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-ply",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23466
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-ply",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23467
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17174,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-psycopg2",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23468
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-psycopg2",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23469
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17175,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-psycopg2-debug",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23470
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17176,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-psycopg2-tests",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23471
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17177,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-pybind11",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23472
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pybind11",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23473
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17178,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-pybind11-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23474
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "pybind11-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23475
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17179,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-pycparser",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23476
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pycparser",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23477
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17180,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-PyMySQL",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23478
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-PyMySQL",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23479
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17181,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-PyMySQL+rsa",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23480
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17182,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-PyMySQL+rsa",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23481
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17183,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-pytest",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23482
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pytest",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23483
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17184,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-pyyaml",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23484
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pyyaml",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23485
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17185,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-requests",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23486
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-requests",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23487
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17186,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-scipy-tests",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23488
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17187,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-scipy",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23489
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-scipy",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23490
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17188,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-semantic_version",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23491
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17189,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-setuptools",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23492
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-setuptools",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23493
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17190,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-setuptools-wheel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23494
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-setuptools-wheel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23495
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17191,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-setuptools-rust",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23496
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"x86_64"
++],
++"id": 17192,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-tkinter",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23497
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-tkinter",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23498
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17193,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-urllib3",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23499
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-urllib3",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23500
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17194,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-wheel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23501
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-wheel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23502
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17195,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3.12-wheel-wheel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23503
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-wheel-wheel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23504
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17196,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-chardet",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23505
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17197,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-chardet",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23506
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17198,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-py",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23507
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17199,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-py",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23508
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17200,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pysocks",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23509
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17201,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pysocks",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23510
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17202,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pytz",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23511
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17203,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pytz",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23512
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17204,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-readthedocs-sphinx-ext",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23513
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17205,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-requests+security",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23514
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17206,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-requests+security",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23515
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17207,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-requests+socks",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23516
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17208,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-requests+socks",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23517
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17209,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-applehelp",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23518
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17210,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-devhelp",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23519
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17211,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-htmlhelp",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23520
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17212,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-httpdomain",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23521
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17213,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-jsmath",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23522
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17214,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-qthelp",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23523
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17215,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-serializinghtml",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23524
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17216,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-websupport",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23525
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17217,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-toml",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23526
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17218,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-toml",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23527
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17219,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-tomli",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23528
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17220,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-tomli",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23529
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17221,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python-packaging-doc",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23530
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17222,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "babel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23531
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "babel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23532
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17223,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mpdecimal",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23533
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "mpdecimal",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23534
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17224,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-babel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23535
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-babel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23536
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17225,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "micropipenv+toml",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23537
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17226,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-hatchling",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23538
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17227,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-jinja2+i18n",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23539
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17228,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-installer",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23540
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17229,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pathspec",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23541
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17230,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-pyproject-hooks",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23542
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17231,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-sphinxcontrib-jquery",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23543
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17232,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-testpath",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23544
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17233,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python-testpath-doc",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23545
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17234,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-trove-classifiers",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23546
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17235,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "jq",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23547
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 3,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "jq",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23548
++},
++"release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17236,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-dnf-plugin-pre-transaction-actions",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23549
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17237,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ha-openstack-support",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23550
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17238,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "ha-openstack-support",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23551
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17239,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "firefox",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23552
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17240,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "firefox",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23553
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17241,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "firefox-x11",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23554
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17242,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "firefox-x11",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23555
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17243,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "thunderbird",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23556
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17244,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "thunderbird",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23557
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17245,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rhc",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23561
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 3,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 4,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17246,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rhc-worker-playbook",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23562
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 3,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 4,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17247,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-cloud-what",
++"repository": "rhel8-BaseOS"
++}
++],
++"set_id": 23563
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17248,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rhc-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23564
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 0,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 1,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17249,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sequoia-sqv",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23565
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17250,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "sequoia-sq",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23566
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17251,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "teamd",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23567
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17252,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "teamd",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23568
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17253,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "avahi-gobject",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23569
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17254,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "avahi-gobject-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23570
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17255,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libev-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23571
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17256,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "avahi-autoipd",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23572
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17257,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libbabeltrace",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23573
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libbabeltrace",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23574
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17258,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-shell-extension-top-icons",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23575
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-shell-extension-status-icons",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23576
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17259,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rhc-worker-playbook",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23577
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17260,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "python3-ifaddr",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23578
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17261,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openscap-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23579
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17262,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openscap-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23580
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17263,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openscap-engine-sce-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23581
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17264,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openscap-python3",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23582
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17265,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openscap-python3",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23583
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17266,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openldap-servers",
++"repository": "rhel8-CRB"
++}
++],
++"set_id": 23584
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17267,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "aspnetcore-runtime-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23586
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17268,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "aspnetcore-runtime-dbg-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23587
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17269,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "aspnetcore-targeting-pack-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23588
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17270,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23589
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17271,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-apphost-pack-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23590
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17272,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-host",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23591
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17273,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-hostfxr-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23592
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17274,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-runtime-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23593
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17275,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-runtime-dbg-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23594
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17276,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-sdk-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23595
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17277,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-sdk-9.0-source-built-artifacts",
++"repository": "rhel8-CRB"
++}
++],
++"set_id": 23596
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17278,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-sdk-aot-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23597
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17279,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-sdk-dbg-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23598
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17280,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-targeting-pack-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23599
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17281,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dotnet-templates-9.0",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23600
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17282,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "netstandard-targeting-pack-2.1",
++"repository": "rhel8-AppStream"
++}
++],
++"set_id": 23601
++},
++"initial_release": {
++"major_version": 8,
++"minor_version": 9,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 8,
++"minor_version": 10,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17283,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "rust-std-static-wasm32-wasip1",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23602
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17284,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dlm",
++"repository": "rhel9-ResilientStorage"
++}
++],
++"set_id": 23603
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17285,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "dlm-lib",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23604
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17286,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "firefox",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23605
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 4,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17287,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openssh",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23606
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "openssh",
++"repository": "rhel10-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "openssh-keysign",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23607
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17288,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "postgresql-test-rpm-macros",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23608
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17289,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gnome-shell-extension-no-overview",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23609
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17290,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "opencryptoki-ccatok",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23610
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17291,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "opencryptoki-ccatok",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23612
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17292,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "yajl",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23613
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17293,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "yajl",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23614
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17294,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23615
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17295,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-runtime",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23616
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17296,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-annobin-annocheck",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23618
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17297,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-annobin-docs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23619
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17298,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-annobin-plugin-gcc",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23620
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17299,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-binutils",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23621
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17300,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-binutils-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23622
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17301,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-binutils-gold",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23623
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17302,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-binutils-gprofng",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23624
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17303,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-dwz",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23625
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17304,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-gcc",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23626
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17305,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-gcc-c++",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23627
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17306,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-gcc-gfortran",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23628
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17307,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-gcc-plugin-annobin",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23629
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17308,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-gcc-plugin-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23630
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17309,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libasan-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23631
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17310,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libatomic-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23632
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17311,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libgccjit",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23633
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17312,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libgccjit-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23634
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17313,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libitm-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23635
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17314,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-liblsan-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23636
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17315,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libquadmath-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23637
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17316,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libstdc++-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23638
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17317,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libstdc++-docs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23639
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17318,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libtsan-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23640
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17319,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-libubsan-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23641
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17320,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "gcc-toolset-14-offload-nvptx",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23642
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17321,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-avestan-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23657
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-avestan-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23658
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17322,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-bengali-ui-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23659
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-bengali-ui-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23660
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17323,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-carian-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23669
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-carian-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23670
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17324,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-deseret-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23675
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-deseret-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23676
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17325,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-devanagari-ui-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23677
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-devanagari-ui-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23678
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17326,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-display-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23679
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23680
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17327,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-egyptian-hieroglyphs-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23681
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-egyptian-hieroglyphs-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23682
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17328,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-imperial-aramaic-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23695
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-imperial-aramaic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23696
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17329,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-khmer-ui-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23697
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-khmer-vf-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23698
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17330,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-lycian-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23705
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-lycian-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23706
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17331,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-lydian-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23707
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-lydian-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23708
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17332,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-osmanya-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23748
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-osmanya-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23749
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17333,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-shavian-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23763
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-shavian-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23764
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17334,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tamil-supplement-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23773
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-tamil-vf-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23774
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17335,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-thai-ui-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23777
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-thai-vf-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23778
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17336,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-ugaritic-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23779
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-ugaritic-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23780
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17337,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-vai-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23781
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-vai-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23782
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 7,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17338,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-display-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23803
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-serif-fonts",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23804
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17339,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "google-noto-sans-phoenician-vf-fonts",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23826
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17340,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-client",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23827
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17341,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-client",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23828
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17342,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-common",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23829
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17343,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-common",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23830
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17344,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-console",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23831
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17345,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-console",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23832
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17346,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-director",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23833
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17347,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-director",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23834
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17348,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23835
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17349,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23836
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17350,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-libs-sql",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23837
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17351,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-libs-sql",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23838
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17352,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-logwatch",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23839
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17353,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-logwatch",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23840
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17354,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-storage",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23841
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17355,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "bacula-storage",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23842
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17356,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libcdio-paranoia",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23843
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17357,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libcdio-paranoia",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23844
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17358,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libcdio-paranoia-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23845
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 2,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17359,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "libcdio-paranoia-devel",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23846
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17360,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23847
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-libs",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23848
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17361,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-AutoLoader",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23849
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-AutoLoader",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23850
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17362,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-B",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23851
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-B",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23852
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17363,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Carp",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23853
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Carp",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23854
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17364,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Class-Struct",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23855
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Class-Struct",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23856
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17365,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Data-Dumper",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23857
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Data-Dumper",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23858
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17366,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Digest",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23859
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Digest",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23860
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17367,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Digest-MD5",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23861
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Digest-MD5",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23862
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17368,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-DynaLoader",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23863
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-DynaLoader",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23864
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17369,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Encode",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23865
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Encode",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23866
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17370,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Errno",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23867
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Errno",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23868
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17371,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Exporter",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23869
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Exporter",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23870
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17372,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Fcntl",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23871
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Fcntl",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23872
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17373,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-File-Basename",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23873
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-File-Basename",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23874
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17374,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-File-Path",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23875
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-File-Path",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23876
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17375,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-File-Temp",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23877
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-File-Temp",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23878
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17376,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-File-stat",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23879
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-File-stat",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23880
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17377,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-FileHandle",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23881
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-FileHandle",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23882
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17378,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Getopt-Long",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23883
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Getopt-Long",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23884
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17379,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Getopt-Std",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23885
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Getopt-Std",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23886
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17380,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-HTTP-Tiny",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23887
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-HTTP-Tiny",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23888
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17381,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-IO",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23889
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-IO",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23890
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17382,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-IO-Socket-IP",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23891
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-IO-Socket-IP",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23892
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17383,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-IO-Socket-SSL",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23893
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-IO-Socket-SSL",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23894
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17384,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-IPC-Open3",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23895
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-IPC-Open3",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23896
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17385,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-MIME-Base64",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23897
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-MIME-Base64",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23898
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17386,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Mozilla-CA",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23899
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Mozilla-CA",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23900
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17387,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Net-SSLeay",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23901
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Net-SSLeay",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23902
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17388,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-POSIX",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23903
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-POSIX",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23904
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17389,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-PathTools",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23905
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-PathTools",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23906
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17390,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Pod-Escapes",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23907
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Pod-Escapes",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23908
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17391,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Pod-Perldoc",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23909
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Pod-Perldoc",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23910
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17392,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Pod-Simple",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23911
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Pod-Simple",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23912
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17393,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Pod-Usage",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23913
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Pod-Usage",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23914
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17394,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Scalar-List-Utils",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23915
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Scalar-List-Utils",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23916
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17395,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-SelectSaver",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23917
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-SelectSaver",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23918
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17396,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Socket",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23919
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Socket",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23920
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17397,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Storable",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23921
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Storable",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23922
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17398,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Symbol",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23923
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Symbol",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23924
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17399,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Term-ANSIColor",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23925
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Term-ANSIColor",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23926
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17400,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Term-Cap",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23927
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Term-Cap",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23928
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17401,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Text-ParseWords",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23929
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Text-ParseWords",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23930
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17402,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Text-Tabs+Wrap",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23931
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Text-Tabs+Wrap",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23932
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17403,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Time-Local",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23933
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-Time-Local",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23934
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17404,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-URI",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23935
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-URI",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23936
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17405,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-base",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23937
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-base",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23938
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17406,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-constant",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23939
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-constant",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23940
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17407,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-if",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23941
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-if",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23942
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17408,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-interpreter",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23943
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-interpreter",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23944
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17409,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-libnet",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23945
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-libnet",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23946
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17410,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-locale",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23947
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-locale",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23948
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17411,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-mro",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23949
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-mro",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23950
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17412,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-overload",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23951
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-overload",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23952
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17413,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-overloading",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23953
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-overloading",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23954
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17414,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-parent",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23955
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-parent",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23956
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17415,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-podlators",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23957
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-podlators",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23958
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 6,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17416,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-vars",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23959
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "perl-vars",
++"repository": "rhel10-BaseOS"
++}
++],
++"set_id": 23960
++},
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17417,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "yara",
++"repository": "rhel10-AppStream"
++}
++],
++"set_id": 23961
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 1,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17418,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "doxygen-doxywizard",
++"repository": "rhel9-CRB"
++}
++],
++"set_id": 23963
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17420,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "zlib-ng",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23967
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17421,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "zlib-ng-devel",
++"repository": "rhel10-CRB"
++}
++],
++"set_id": 23968
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 10,
++"minor_version": 0,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"x86_64"
++],
++"id": 17422,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "fftw-openmpi-devel",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23969
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"x86_64"
++],
++"id": 17423,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "fftw-openmpi-libs",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23970
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"x86_64"
++],
++"id": 17424,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "fftw-openmpi-libs-double",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23971
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"x86_64"
++],
++"id": 17425,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "fftw-openmpi-libs-long",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23972
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"x86_64"
++],
++"id": 17426,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "fftw-openmpi-libs-single",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23973
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"x86_64"
++],
++"id": 17427,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "fftw-openmpi-static",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23974
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
++},
++{
++"action": 5,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17428,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cockpit-bridge",
++"repository": "rhel9-BaseOS"
++},
++{
++"modulestreams": [
++null
++],
++"name": "cockpit-pcp",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23975
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++},
++"modulestream_maps": [
++{
++"in_modulestream": null,
++"out_modulestream": null
++}
++],
++"out_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "cockpit-bridge",
++"repository": "rhel9-BaseOS"
++}
++],
++"set_id": 23976
++},
++"release": {
++"major_version": 9,
++"minor_version": 6,
++"os_name": "RHEL"
++}
++},
++{
++"action": 0,
++"architectures": [
++"aarch64",
++"ppc64le",
++"s390x",
++"x86_64"
++],
++"id": 17429,
++"in_packageset": {
++"package": [
++{
++"modulestreams": [
++null
++],
++"name": "samba-gpupdate",
++"repository": "rhel9-AppStream"
++}
++],
++"set_id": 23977
++},
++"initial_release": {
++"major_version": 9,
++"minor_version": 4,
++"os_name": "RHEL"
++},
++"modulestream_maps": [],
++"out_packageset": null,
++"release": {
++"major_version": 9,
++"minor_version": 5,
++"os_name": "RHEL"
++}
+ }
+ ]
+ }
+diff --git a/etc/leapp/files/repomap.json b/etc/leapp/files/repomap.json
+index d612f554..178225c6 100644
+--- a/etc/leapp/files/repomap.json
++++ b/etc/leapp/files/repomap.json
+@@ -1,6 +1,11 @@
+ {
+     "datetime": "202405281033Z",
+     "version_format": "1.2.1",
++    "provided_data_streams": [
++        "3.0",
++        "3.1",
++        "3.2"
++    ],
+     "mapping": [
+         {
+             "source_major_version": "7",
+@@ -4469,8 +4474,5 @@
+                 }
+             ]
+         }
+-    ],
+-    "provided_data_streams": [
+-        "3.1"
+     ]
+ }
+-- 
+2.47.0
+
diff --git a/SOURCES/0031-Packaging-Require-leapp-framework-6.x-update-leapp-d.patch b/SOURCES/0031-Packaging-Require-leapp-framework-6.x-update-leapp-d.patch
new file mode 100644
index 0000000..e910489
--- /dev/null
+++ b/SOURCES/0031-Packaging-Require-leapp-framework-6.x-update-leapp-d.patch
@@ -0,0 +1,56 @@
+From 89afbe8cb41f874f32acddc1e1696132f3531677 Mon Sep 17 00:00:00 2001
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Fri, 8 Nov 2024 17:40:01 +0100
+Subject: [PATCH 31/40] Packaging: Require leapp-framework 6.x + update leapp
+ deps
+
+The leapp actors configuration feature is present since
+leapp-framework 6.0. Update the dependencies to ensure the correct
+version of the framework is installed on the system.
+
+Also, leapp requirements have been updated - requiring python3-PyYAML
+as it requires YAML parser, bumping leapp-framework-dependencies to 6.
+Address the change in leapp-deps metapackage to satisfy leapp
+dependencies during the upgrade process.
+---
+ packaging/leapp-repository.spec                | 2 +-
+ packaging/other_specs/leapp-el7toel8-deps.spec | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec
+index 0d63ba02..570d0df2 100644
+--- a/packaging/leapp-repository.spec
++++ b/packaging/leapp-repository.spec
+@@ -120,7 +120,7 @@ Requires:       leapp-repository-dependencies = %{leapp_repo_deps}
+ 
+ # IMPORTANT: this is capability provided by the leapp framework rpm.
+ # Check that 'version' instead of the real framework rpm version.
+-Requires:       leapp-framework >= 5.0, leapp-framework < 6
++Requires:       leapp-framework >= 6.0, leapp-framework < 7
+ 
+ # Since we provide sub-commands for the leapp utility, we expect the leapp
+ # tool to be installed as well.
+diff --git a/packaging/other_specs/leapp-el7toel8-deps.spec b/packaging/other_specs/leapp-el7toel8-deps.spec
+index d9e94faa..2c662a37 100644
+--- a/packaging/other_specs/leapp-el7toel8-deps.spec
++++ b/packaging/other_specs/leapp-el7toel8-deps.spec
+@@ -14,7 +14,7 @@
+ 
+ 
+ %define leapp_repo_deps  10
+-%define leapp_framework_deps 5
++%define leapp_framework_deps 6
+ 
+ # NOTE: the Version contains the %{rhel} macro just for the convenience to
+ # have always upgrade path between newer and older deps packages. So for
+@@ -112,6 +112,7 @@ Requires:   python3
+ Requires:   python3-six
+ Requires:   python3-setuptools
+ Requires:   python3-requests
++Requires:   python3-PyYAML
+ 
+ 
+ %description -n %{ldname}
+-- 
+2.47.0
+
diff --git a/SOURCES/0032-spec-create-etc-leapp-actor_conf.d.patch b/SOURCES/0032-spec-create-etc-leapp-actor_conf.d.patch
new file mode 100644
index 0000000..d1a271f
--- /dev/null
+++ b/SOURCES/0032-spec-create-etc-leapp-actor_conf.d.patch
@@ -0,0 +1,48 @@
+From 36b93e4a2504f72e5a371a75a23e7cd2c695b84b Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Sun, 6 Oct 2024 21:01:13 +0200
+Subject: [PATCH 32/40] spec: create /etc/leapp/actor_conf.d
+
+Add additional build steps to the specfile that create the actor
+configuration directory. The directory is owned by the package, so
+it gets removed when the user uninstalls leapp.
+
+Also prepared some comment lines for future when we will want to
+include some configuration files as part of the rpm.
+---
+ etc/leapp/actor_conf.d/.gitkeep | 0
+ packaging/leapp-repository.spec | 7 +++++++
+ 2 files changed, 7 insertions(+)
+ create mode 100644 etc/leapp/actor_conf.d/.gitkeep
+
+diff --git a/etc/leapp/actor_conf.d/.gitkeep b/etc/leapp/actor_conf.d/.gitkeep
+new file mode 100644
+index 00000000..e69de29b
+diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec
+index 570d0df2..828355bf 100644
+--- a/packaging/leapp-repository.spec
++++ b/packaging/leapp-repository.spec
+@@ -250,6 +250,11 @@ install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/
+ install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction
+ install -m 0644 etc/leapp/files/* %{buildroot}%{_sysconfdir}/leapp/files
+ 
++# Actor configuration dir
++install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/actor_conf.d/
++# uncomment to install existing configs
++#install -m 0644 etc/leapp/actor_conf.d/* %%{buildroot}%%{_sysconfdir}/leapp/actor_conf.d
++
+ # install CLI commands for the leapp utility on the expected path
+ install -m 0755 -d %{buildroot}%{leapp_python_sitelib}/leapp/cli/
+ cp -r commands %{buildroot}%{leapp_python_sitelib}/leapp/cli/
+@@ -295,6 +300,8 @@ done;
+ %dir %{custom_repositorydir}
+ %dir %{leapp_python_sitelib}/leapp/cli/commands
+ %config %{_sysconfdir}/leapp/files/*
++# uncomment to package installed configs
++#%%config %%{_sysconfdir}/leapp/actor_conf.d/*
+ %{_sysconfdir}/leapp/repos.d/*
+ %{_sysconfdir}/leapp/transaction/*
+ %{repositorydir}/*
+-- 
+2.47.0
+
diff --git a/SOURCES/0033-spec-drop-.gitkeep-files-from-the-RPM.patch b/SOURCES/0033-spec-drop-.gitkeep-files-from-the-RPM.patch
new file mode 100644
index 0000000..42995b6
--- /dev/null
+++ b/SOURCES/0033-spec-drop-.gitkeep-files-from-the-RPM.patch
@@ -0,0 +1,31 @@
+From 87db66c863104fea824a4406732cbe233ffee412 Mon Sep 17 00:00:00 2001
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Wed, 13 Nov 2024 15:05:50 +0100
+Subject: [PATCH 33/40] spec: drop .gitkeep files from the RPM
+
+We have several .gitkeep files in the repo as we want to have some
+directories present in git however these directories are empty
+otherwise. This is common hack to achieve this, but we do not want
+to have these files really in the resulting RPMs. So we just remove
+them.
+---
+ packaging/leapp-repository.spec | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec
+index 828355bf..2bb52505 100644
+--- a/packaging/leapp-repository.spec
++++ b/packaging/leapp-repository.spec
+@@ -272,6 +272,9 @@ rm -rf %{buildroot}%{repositorydir}/common/actors/testactor
+ find %{buildroot}%{repositorydir}/common -name "test.py" -delete
+ rm -rf `find %{buildroot}%{repositorydir} -name "tests" -type d`
+ find %{buildroot}%{repositorydir} -name "Makefile" -delete
++# .gitkeep file is used to have a directory in the repo. but we do not want these
++# files in the resulting RPM
++find %{buildroot} -name .gitkeep -delete
+ 
+ for DIRECTORY in $(find  %{buildroot}%{repositorydir}/  -mindepth 1 -maxdepth 1 -type d);
+ do
+-- 
+2.47.0
+
diff --git a/SOURCES/0034-cli-load-actor-configuration.patch b/SOURCES/0034-cli-load-actor-configuration.patch
new file mode 100644
index 0000000..927b99c
--- /dev/null
+++ b/SOURCES/0034-cli-load-actor-configuration.patch
@@ -0,0 +1,95 @@
+From 140a0bbb689814041fa6a03ee2b703e70a20f2f2 Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Sun, 10 Nov 2024 13:54:20 +0100
+Subject: [PATCH 34/40] cli: load actor configuration
+
+Load actor configuration when running `leapp upgrade` or `leapp
+preupgrade`. The configuration is loaded, saved to leapp's DB,
+and remains available to all actors via framework's global variable.
+---
+ commands/command_utils.py       | 32 +++++++++++++++++++++++++++++++-
+ commands/preupgrade/__init__.py |  3 +++
+ commands/upgrade/__init__.py    |  3 +++
+ 3 files changed, 37 insertions(+), 1 deletion(-)
+
+diff --git a/commands/command_utils.py b/commands/command_utils.py
+index 2810a542..190f5f03 100644
+--- a/commands/command_utils.py
++++ b/commands/command_utils.py
+@@ -1,10 +1,12 @@
++import hashlib
+ import json
+ import os
+ import re
+ import resource
+ 
++from leapp.actors import config as actor_config
+ from leapp.exceptions import CommandError
+-from leapp.utils import path
++from leapp.utils import audit, path
+ 
+ HANA_BASE_PATH = '/hana/shared'
+ HANA_SAPCONTROL_PATH_X86_64 = 'exe/linuxx86_64/hdb/sapcontrol'
+@@ -178,3 +180,31 @@ def set_resource_limits():
+ 
+     if soft_fsize != fsize_limit:
+         set_resource_limit(resource.RLIMIT_FSIZE, fsize_limit, fsize_limit)
++
++
++def load_actor_configs_and_store_it_in_db(context, repositories, framework_cfg):
++    """
++    Load actor configuration so that actor's can access it and store it into leapp db.
++
++    :param context: Current execution context
++    :param repositories: Discovered repositories
++    :param framework_cfg: Leapp's configuration
++    """
++    # Read the Actor Config and validate it against the schemas saved in the
++    # configuration.
++
++    actor_config_schemas = tuple(actor.config_schemas for actor in repositories.actors)
++    actor_config_schemas = actor_config.normalize_schemas(actor_config_schemas)
++    actor_config_path = framework_cfg.get('actor_config', 'path')
++
++    # Note: actor_config.load() stores the loaded actor config into a global
++    # variable which can then be accessed by functions in that file.  Is this
++    # the right way to store that information?
++    actor_cfg = actor_config.load(actor_config_path, actor_config_schemas)
++
++    # Dump the collected configuration, checksum it and store it inside the DB
++    config_text = json.dumps(actor_cfg)
++    config_text_hash = hashlib.sha256(config_text.encode('utf-8')).hexdigest()
++    config_data = audit.ActorConfigData(config=config_text, hash_id=config_text_hash)
++    db_config = audit.ActorConfig(config=config_data, context=context)
++    db_config.store()
+diff --git a/commands/preupgrade/__init__.py b/commands/preupgrade/__init__.py
+index a9fa40e0..631eca6b 100644
+--- a/commands/preupgrade/__init__.py
++++ b/commands/preupgrade/__init__.py
+@@ -62,6 +62,9 @@ def preupgrade(args, breadcrumbs):
+     command_utils.set_resource_limits()
+ 
+     workflow = repositories.lookup_workflow('IPUWorkflow')()
++
++    command_utils.load_actor_configs_and_store_it_in_db(context, repositories, cfg)
++
+     util.warn_if_unsupported(configuration)
+     util.process_whitelist_experimental(repositories, workflow, configuration, logger)
+     with beautify_actor_exception():
+diff --git a/commands/upgrade/__init__.py b/commands/upgrade/__init__.py
+index c7487fde..3dedd438 100644
+--- a/commands/upgrade/__init__.py
++++ b/commands/upgrade/__init__.py
+@@ -93,6 +93,9 @@ def upgrade(args, breadcrumbs):
+     command_utils.set_resource_limits()
+ 
+     workflow = repositories.lookup_workflow('IPUWorkflow')(auto_reboot=args.reboot)
++
++    command_utils.load_actor_configs_and_store_it_in_db(context, repositories, cfg)
++
+     util.process_whitelist_experimental(repositories, workflow, configuration, logger)
+     util.warn_if_unsupported(configuration)
+     with beautify_actor_exception():
+-- 
+2.47.0
+
diff --git a/SOURCES/0035-configs-common-introduce-RHUI-configuration.patch b/SOURCES/0035-configs-common-introduce-RHUI-configuration.patch
new file mode 100644
index 0000000..7be8dfd
--- /dev/null
+++ b/SOURCES/0035-configs-common-introduce-RHUI-configuration.patch
@@ -0,0 +1,157 @@
+From f3d38325fb525bca427a2b00e2bfb73b9297c36a Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Sun, 10 Nov 2024 14:35:26 +0100
+Subject: [PATCH 35/40] configs(common): introduce RHUI configuration
+
+Introduce a common configuration definition for RHUI related decisions.
+The configuration has an atomic nature - if the user wants to overwrite
+leapp's decisions, he/she must overwrite all of them. Essentially, all
+fields of the RHUI_SETUPS cloud map entry can be configured. Almost no
+non-empty defaults are provided, as no reasonable defaults can be given.
+This is due to all setup parameters are different from provider to
+provider. Therefore, default values are empty values, so that it can
+later be detected by an actor whether all fields of the RHUI config
+has been filled.
+
+Jira ref: RHEL-56251
+---
+ repos/system_upgrade/common/configs/rhui.py | 127 ++++++++++++++++++++
+ 1 file changed, 127 insertions(+)
+ create mode 100644 repos/system_upgrade/common/configs/rhui.py
+
+diff --git a/repos/system_upgrade/common/configs/rhui.py b/repos/system_upgrade/common/configs/rhui.py
+new file mode 100644
+index 00000000..ade9bab9
+--- /dev/null
++++ b/repos/system_upgrade/common/configs/rhui.py
+@@ -0,0 +1,127 @@
++"""
++Configuration keys for RHUI.
++
++In case of RHUI in private regions it usual that publicly known RHUI data
++is not valid. In such cases it's possible to provide the correct expected
++RHUI data to correct the in-place upgrade process.
++"""
++
++from leapp.actors.config import Config
++from leapp.models import fields
++
++RHUI_CONFIG_SECTION = 'rhui'
++
++
++# @Note(mhecko): We use to distinguish config instantiated from default values that we should ignore
++# #              Maybe we could make all config values None and detect it that way, but then we cannot
++# #              give the user an example how the config should look like.
++class RhuiUseConfig(Config):
++    section = RHUI_CONFIG_SECTION
++    name = "use_config"
++    type_ = fields.Boolean()
++    default = False
++    description = """
++        Use values provided in the configuration file to override leapp's decisions.
++    """
++
++
++class RhuiSourcePkgs(Config):
++    section = RHUI_CONFIG_SECTION
++    name = "source_clients"
++    type_ = fields.List(fields.String())
++    default = []
++    description = """
++        The name of the source RHUI client RPMs (to be removed from the system).
++    """
++
++
++class RhuiTargetPkgs(Config):
++    section = RHUI_CONFIG_SECTION
++    name = "target_clients"
++    type_ = fields.List(fields.String())
++    default = []
++    description = """
++        The name of the target RHUI client RPM (to be installed on the system).
++    """
++
++
++class RhuiCloudProvider(Config):
++    section = RHUI_CONFIG_SECTION
++    name = "cloud_provider"
++    type_ = fields.String()
++    default = ""
++    description = """
++        Cloud provider name that should be used internally by leapp.
++
++        Leapp recognizes the following cloud providers:
++            - azure
++            - aws
++            - google
++
++        Cloud provider information is used for triggering some provider-specific modifications. The value also
++        influences how leapp determines target repositories to enable.
++    """
++
++
++# @Note(mhecko): We likely don't need this. We need the variant primarily to grab files from a correct directory
++# in leapp-rhui-<provider> folders.
++class RhuiCloudVariant(Config):
++    section = RHUI_CONFIG_SECTION
++    name = "image_variant"
++    type_ = fields.String()
++    default = "ordinary"
++    description = """
++        RHEL variant of the source system - is the source system SAP-specific image?
++
++        Leapp recognizes the following cloud providers:
++            - ordinary    # The source system has not been deployed from a RHEL with SAP image
++            - sap         # RHEL SAP images
++            - sap-apps    # RHEL SAP Apps images (Azure only)
++            - sap-ha      # RHEL HA Apps images (HA only)
++
++        Cloud provider information is used for triggering some provider-specific modifications. The value also
++        influences how leapp determines target repositories to enable.
++
++        Default:
++            "ordinary"
++    """
++
++
++class RhuiUpgradeFiles(Config):
++    section = RHUI_CONFIG_SECTION
++    name = "upgrade_files"
++    type_ = fields.StringMap(fields.String())
++    default = dict()
++    description = """
++        A mapping from source file paths to the destination where should they be
++        placed in the upgrade container.
++
++        Typically, these files should be provided by leapp-rhui-<PROVIDER> packages.
++
++        These files are needed to facilitate access to target repositories. Typical examples are: repofile(s),
++        certificates and keys.
++    """
++
++
++class RhuiTargetRepositoriesToUse(Config):
++    section = RHUI_CONFIG_SECTION
++    name = "rhui_target_repositories_to_use"
++    type_ = fields.List(fields.String())
++    description = """
++        List of target repositories enabled during the upgrade. Similar to executing leapp with --enablerepo.
++
++        The repositories to be enabled need to be either in the repofiles listed in the `upgrade_files` field,
++        or in repofiles present on the source system.
++    """
++    default = list()
++
++
++all_rhui_cfg = (
++    RhuiTargetPkgs,
++    RhuiUpgradeFiles,
++    RhuiTargetRepositoriesToUse,
++    RhuiCloudProvider,
++    RhuiCloudVariant,
++    RhuiSourcePkgs,
++    RhuiUseConfig
++)
+-- 
+2.47.0
+
diff --git a/SOURCES/0036-check_rhui-read-RHUI-configuration.patch b/SOURCES/0036-check_rhui-read-RHUI-configuration.patch
new file mode 100644
index 0000000..e3642fa
--- /dev/null
+++ b/SOURCES/0036-check_rhui-read-RHUI-configuration.patch
@@ -0,0 +1,457 @@
+From a03e8e5d10c1d6f3cdae216fafa0d7f0d0896494 Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Sun, 10 Nov 2024 14:36:07 +0100
+Subject: [PATCH 36/40] check_rhui: read RHUI configuration
+
+Extend the check_rhui actor to read user-provided RHUI configuration.
+If the provided configuration values say that the user wants to
+overrwrite leapp's decisions, then the patch checks whether all values
+are provided. If so, corresponding RHUIInfo message is produced. The
+only implemented safe-guards are those that prevent the user from
+accidentaly specifying a non-existing file to be copied into the
+scrach container during us preparing to download target userspace
+content. If the user provides only some of the configuration values
+the upgrade is terminated early with an error, providing quick feedback
+about misconfiguration. The patch has been designed to allow development
+of upgrades on previously unknown clouds (clouds without an entry in
+RHUI_SETUPS).
+
+Jira ref: RHEL-56251
+---
+ .../common/actors/cloud/checkrhui/actor.py    |   4 +
+ .../cloud/checkrhui/libraries/checkrhui.py    | 102 +++++++++-
+ .../tests/component_test_checkrhui.py         | 178 ++++++++++++++++--
+ 3 files changed, 265 insertions(+), 19 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/cloud/checkrhui/actor.py b/repos/system_upgrade/common/actors/cloud/checkrhui/actor.py
+index 593e73e5..933ffcb3 100644
+--- a/repos/system_upgrade/common/actors/cloud/checkrhui/actor.py
++++ b/repos/system_upgrade/common/actors/cloud/checkrhui/actor.py
+@@ -1,4 +1,5 @@
+ from leapp.actors import Actor
++from leapp.configs.common.rhui import all_rhui_cfg
+ from leapp.libraries.actor import checkrhui as checkrhui_lib
+ from leapp.models import (
+     CopyFile,
+@@ -8,6 +9,7 @@ from leapp.models import (
+     RequiredTargetUserspacePackages,
+     RHUIInfo,
+     RpmTransactionTasks,
++    TargetRepositories,
+     TargetUserSpacePreupgradeTasks
+ )
+ from leapp.reporting import Report
+@@ -21,6 +23,7 @@ class CheckRHUI(Actor):
+     """
+ 
+     name = 'checkrhui'
++    config_schemas = all_rhui_cfg
+     consumes = (InstalledRPM,)
+     produces = (
+         KernelCmdlineArg,
+@@ -28,6 +31,7 @@ class CheckRHUI(Actor):
+         RequiredTargetUserspacePackages,
+         Report, DNFPluginTask,
+         RpmTransactionTasks,
++        TargetRepositories,
+         TargetUserSpacePreupgradeTasks,
+         CopyFile,
+     )
+diff --git a/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py b/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py
+index 3b217917..64e36e08 100644
+--- a/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py
++++ b/repos/system_upgrade/common/actors/cloud/checkrhui/libraries/checkrhui.py
+@@ -2,17 +2,29 @@ import itertools
+ import os
+ from collections import namedtuple
+ 
++import leapp.configs.common.rhui as rhui_config_lib
+ from leapp import reporting
++from leapp.configs.common.rhui import (  # Import all config fields so we are not using their name attributes directly
++    RhuiCloudProvider,
++    RhuiCloudVariant,
++    RhuiSourcePkgs,
++    RhuiTargetPkgs,
++    RhuiTargetRepositoriesToUse,
++    RhuiUpgradeFiles,
++    RhuiUseConfig
++)
+ from leapp.exceptions import StopActorExecutionError
+ from leapp.libraries.common import rhsm, rhui
+ from leapp.libraries.common.config import version
+ from leapp.libraries.stdlib import api
+ from leapp.models import (
+     CopyFile,
++    CustomTargetRepository,
+     DNFPluginTask,
+     InstalledRPM,
+     RHUIInfo,
+     RpmTransactionTasks,
++    TargetRepositories,
+     TargetRHUIPostInstallTasks,
+     TargetRHUIPreInstallTasks,
+     TargetRHUISetupInfo,
+@@ -291,11 +303,11 @@ def produce_rhui_info_to_setup_target(rhui_family, source_setup_desc, target_set
+     api.produce(rhui_info)
+ 
+ 
+-def produce_rpms_to_install_into_target(source_setup, target_setup):
+-    to_install = sorted(target_setup.clients - source_setup.clients)
+-    to_remove = sorted(source_setup.clients - target_setup.clients)
++def produce_rpms_to_install_into_target(source_clients, target_clients):
++    to_install = sorted(target_clients - source_clients)
++    to_remove = sorted(source_clients - target_clients)
+ 
+-    api.produce(TargetUserSpacePreupgradeTasks(install_rpms=sorted(target_setup.clients)))
++    api.produce(TargetUserSpacePreupgradeTasks(install_rpms=sorted(target_clients)))
+     if to_install or to_remove:
+         api.produce(RpmTransactionTasks(to_install=to_install, to_remove=to_remove))
+ 
+@@ -316,7 +328,85 @@ def inform_about_upgrade_with_rhui_without_no_rhsm():
+     return False
+ 
+ 
++def emit_rhui_setup_tasks_based_on_config(rhui_config_dict):
++    config_upgrade_files = rhui_config_dict[RhuiUpgradeFiles.name]
++
++    nonexisting_files_to_copy = []
++    for source_path in config_upgrade_files:
++        if not os.path.exists(source_path):
++            nonexisting_files_to_copy.append(source_path)
++
++    if nonexisting_files_to_copy:
++        details_lines = ['The following files were not found:']
++        # Use .format and put backticks around paths so that weird unicode spaces will be easily seen
++        details_lines.extend('  - `{0}`'.format(path) for path in nonexisting_files_to_copy)
++        details = '\n'.join(details_lines)
++
++        reason = 'RHUI config lists nonexisting files in its `{0}` field.'.format(RhuiUpgradeFiles.name)
++        raise StopActorExecutionError(reason, details={'details': details})
++
++    files_to_copy_into_overlay = [CopyFile(src=key, dst=value) for key, value in config_upgrade_files.items()]
++    preinstall_tasks = TargetRHUIPreInstallTasks(files_to_copy_into_overlay=files_to_copy_into_overlay)
++
++    target_client_setup_info = TargetRHUISetupInfo(
++        preinstall_tasks=preinstall_tasks,
++        postinstall_tasks=TargetRHUIPostInstallTasks(),
++        bootstrap_target_client=False,  # We don't need to install the client into overlay - user provided all files
++    )
++
++    rhui_info = RHUIInfo(
++        provider=rhui_config_dict[RhuiCloudProvider.name],
++        variant=rhui_config_dict[RhuiCloudVariant.name],
++        src_client_pkg_names=rhui_config_dict[RhuiSourcePkgs.name],
++        target_client_pkg_names=rhui_config_dict[RhuiTargetPkgs.name],
++        target_client_setup_info=target_client_setup_info
++    )
++    api.produce(rhui_info)
++
++
++def request_configured_repos_to_be_enabled(rhui_config):
++    config_repos_to_enable = rhui_config[RhuiTargetRepositoriesToUse.name]
++    custom_repos = [CustomTargetRepository(repoid=repoid) for repoid in config_repos_to_enable]
++    if custom_repos:
++        target_repos = TargetRepositories(custom_repos=custom_repos, rhel_repos=[])
++        api.produce(target_repos)
++
++
++def stop_with_err_if_config_missing_fields(config):
++    required_fields = [
++        RhuiTargetRepositoriesToUse,
++        RhuiCloudProvider,
++        # RhuiCloudVariant, <- this is not required
++        RhuiSourcePkgs,
++        RhuiTargetPkgs,
++        RhuiUpgradeFiles,
++    ]
++
++    missing_fields = tuple(field for field in required_fields if not config[field.name])
++    if missing_fields:
++        field_names = (field.name for field in missing_fields)
++        missing_fields_str = ', '.join(field_names)
++        details = 'The following required RHUI config fields are missing or they are set to an empty value: {}'
++        details = details.format(missing_fields_str)
++        raise StopActorExecutionError('Provided RHUI config is missing values for required fields.',
++                                      details={'details': details})
++
++
+ def process():
++    rhui_config = api.current_actor().config[rhui_config_lib.RHUI_CONFIG_SECTION]
++
++    if rhui_config[RhuiUseConfig.name]:
++        api.current_logger().info('Skipping RHUI upgrade auto-configuration - using provided config instead.')
++        stop_with_err_if_config_missing_fields(rhui_config)
++        emit_rhui_setup_tasks_based_on_config(rhui_config)
++
++        src_clients = set(rhui_config[RhuiSourcePkgs.name])
++        target_clients = set(rhui_config[RhuiTargetPkgs.name])
++        produce_rpms_to_install_into_target(src_clients, target_clients)
++
++        request_configured_repos_to_be_enabled(rhui_config)
++        return
++
+     installed_rpm = itertools.chain(*[installed_rpm_msg.items for installed_rpm_msg in api.consume(InstalledRPM)])
+     installed_pkgs = {rpm.name for rpm in installed_rpm}
+ 
+@@ -342,7 +432,9 @@ def process():
+     # Instruction on how to access the target content
+     produce_rhui_info_to_setup_target(src_rhui_setup.family, src_rhui_setup.description, target_setup_desc)
+ 
+-    produce_rpms_to_install_into_target(src_rhui_setup.description, target_setup_desc)
++    source_clients = src_rhui_setup.description.clients
++    target_clients = target_setup_desc.clients
++    produce_rpms_to_install_into_target(source_clients, target_clients)
+ 
+     if src_rhui_setup.family.provider == rhui.RHUIProvider.AWS:
+         # We have to disable Amazon-id plugin in the initramdisk phase as there is no network
+diff --git a/repos/system_upgrade/common/actors/cloud/checkrhui/tests/component_test_checkrhui.py b/repos/system_upgrade/common/actors/cloud/checkrhui/tests/component_test_checkrhui.py
+index 27e70eea..3ac9c1b8 100644
+--- a/repos/system_upgrade/common/actors/cloud/checkrhui/tests/component_test_checkrhui.py
++++ b/repos/system_upgrade/common/actors/cloud/checkrhui/tests/component_test_checkrhui.py
+@@ -1,30 +1,43 @@
+-from collections import namedtuple
++import itertools
++import os
++from collections import defaultdict
+ from enum import Enum
+ 
+ import pytest
+ 
+ from leapp import reporting
++from leapp.configs.common.rhui import (
++    all_rhui_cfg,
++    RhuiCloudProvider,
++    RhuiCloudVariant,
++    RhuiSourcePkgs,
++    RhuiTargetPkgs,
++    RhuiTargetRepositoriesToUse,
++    RhuiUpgradeFiles,
++    RhuiUseConfig
++)
+ from leapp.exceptions import StopActorExecutionError
+ from leapp.libraries.actor import checkrhui as checkrhui_lib
+ from leapp.libraries.common import rhsm, rhui
+-from leapp.libraries.common.config import mock_configs, version
+ from leapp.libraries.common.rhui import mk_rhui_setup, RHUIFamily
+-from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked, produce_mocked
++from leapp.libraries.common.testutils import (
++    _make_default_config,
++    create_report_mocked,
++    CurrentActorMocked,
++    produce_mocked
++)
+ from leapp.libraries.stdlib import api
+ from leapp.models import (
+-    CopyFile,
+     InstalledRPM,
+-    RequiredTargetUserspacePackages,
+     RHUIInfo,
+     RPM,
+     RpmTransactionTasks,
++    TargetRepositories,
+     TargetRHUIPostInstallTasks,
+     TargetRHUIPreInstallTasks,
+     TargetRHUISetupInfo,
+     TargetUserSpacePreupgradeTasks
+ )
+-from leapp.reporting import Report
+-from leapp.snactor.fixture import current_actor_context
+ 
+ RH_PACKAGER = 'Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>'
+ 
+@@ -95,7 +108,8 @@ def mk_cloud_map(variants):
+     ]
+ )
+ def test_determine_rhui_src_variant(monkeypatch, extra_pkgs, rhui_setups, expected_result):
+-    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(src_ver='7.9'))
++    actor = CurrentActorMocked(src_ver='7.9', config=_make_default_config(all_rhui_cfg))
++    monkeypatch.setattr(api, 'current_actor', actor)
+     installed_pkgs = {'zip', 'zsh', 'bash', 'grubby'}.union(set(extra_pkgs))
+ 
+     if expected_result and not isinstance(expected_result, RHUIFamily):  # An exception
+@@ -167,7 +181,8 @@ def test_google_specific_customization(provider, should_mutate):
+ )
+ def test_aws_specific_customization(monkeypatch, rhui_family, target_major, should_mutate):
+     dst_ver = '{major}.0'.format(major=target_major)
+-    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(dst_ver=dst_ver))
++    actor = CurrentActorMocked(dst_ver=dst_ver, config=_make_default_config(all_rhui_cfg))
++    monkeypatch.setattr(api, 'current_actor', actor)
+ 
+     setup_info = mk_setup_info()
+     checkrhui_lib.customize_rhui_setup_for_aws(rhui_family, setup_info)
+@@ -215,12 +230,12 @@ def produce_rhui_info_to_setup_target(monkeypatch):
+ 
+ 
+ def test_produce_rpms_to_install_into_target(monkeypatch):
+-    source_rhui_setup = mk_rhui_setup(clients={'src_pkg'}, leapp_pkg='leapp_pkg')
+-    target_rhui_setup = mk_rhui_setup(clients={'target_pkg'}, leapp_pkg='leapp_pkg')
++    source_clients = {'src_pkg'}
++    target_clients = {'target_pkg'}
+ 
+     monkeypatch.setattr(api, 'produce', produce_mocked())
+ 
+-    checkrhui_lib.produce_rpms_to_install_into_target(source_rhui_setup, target_rhui_setup)
++    checkrhui_lib.produce_rpms_to_install_into_target(source_clients, target_clients)
+ 
+     assert len(api.produce.model_instances) == 2
+     userspace_tasks, target_rpm_tasks = api.produce.model_instances[0], api.produce.model_instances[1]
+@@ -276,7 +291,8 @@ def test_process(monkeypatch, extra_installed_pkgs, skip_rhsm, expected_action):
+     installed_rpms = InstalledRPM(items=installed_pkgs)
+ 
+     monkeypatch.setattr(api, 'produce', produce_mocked())
+-    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(src_ver='7.9', msgs=[installed_rpms]))
++    actor = CurrentActorMocked(src_ver='7.9', msgs=[installed_rpms], config=_make_default_config(all_rhui_cfg))
++    monkeypatch.setattr(api, 'current_actor', actor)
+     monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
+     monkeypatch.setattr(rhsm, 'skip_rhsm', lambda: skip_rhsm)
+     monkeypatch.setattr(rhui, 'RHUI_SETUPS', known_setups)
+@@ -315,7 +331,8 @@ def test_unknown_target_rhui_setup(monkeypatch, is_target_setup_known):
+     installed_rpms = InstalledRPM(items=installed_pkgs)
+ 
+     monkeypatch.setattr(api, 'produce', produce_mocked())
+-    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(src_ver='7.9', msgs=[installed_rpms]))
++    actor = CurrentActorMocked(src_ver='7.9', msgs=[installed_rpms], config=_make_default_config(all_rhui_cfg))
++    monkeypatch.setattr(api, 'current_actor', actor)
+     monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
+     monkeypatch.setattr(rhsm, 'skip_rhsm', lambda: True)
+     monkeypatch.setattr(rhui, 'RHUI_SETUPS', known_setups)
+@@ -374,3 +391,136 @@ def test_select_chronologically_closest(monkeypatch, setups, desired_minor, expe
+     setup = setups[0]
+ 
+     assert setup == expected_setup
++
++
++def test_config_overwrites_everything(monkeypatch):
++    rhui_config = {
++        RhuiUseConfig.name: True,
++        RhuiSourcePkgs.name: ['client_source'],
++        RhuiTargetPkgs.name: ['client_target'],
++        RhuiCloudProvider.name: 'aws',
++        RhuiUpgradeFiles.name: {
++            '/root/file.repo': '/etc/yum.repos.d/'
++        },
++        RhuiTargetRepositoriesToUse.name: [
++            'repoid_to_use'
++        ]
++    }
++    all_config = {'rhui': rhui_config}
++
++    actor = CurrentActorMocked(config=all_config)
++    monkeypatch.setattr(api, 'current_actor', actor)
++
++    function_calls = defaultdict(int)
++
++    def mk_function_probe(fn_name):
++        def probe(*args, **kwargs):
++            function_calls[fn_name] += 1
++        return probe
++
++    monkeypatch.setattr(checkrhui_lib,
++                        'emit_rhui_setup_tasks_based_on_config',
++                        mk_function_probe('emit_rhui_setup_tasks_based_on_config'))
++    monkeypatch.setattr(checkrhui_lib,
++                        'stop_with_err_if_config_missing_fields',
++                        mk_function_probe('stop_with_err_if_config_missing_fields'))
++    monkeypatch.setattr(checkrhui_lib,
++                        'produce_rpms_to_install_into_target',
++                        mk_function_probe('produce_rpms_to_install_into_target'))
++    monkeypatch.setattr(checkrhui_lib,
++                        'request_configured_repos_to_be_enabled',
++                        mk_function_probe('request_configured_repos_to_be_enabled'))
++
++    checkrhui_lib.process()
++
++    expected_function_calls = {
++        'emit_rhui_setup_tasks_based_on_config': 1,
++        'stop_with_err_if_config_missing_fields': 1,
++        'produce_rpms_to_install_into_target': 1,
++        'request_configured_repos_to_be_enabled': 1,
++    }
++
++    assert function_calls == expected_function_calls
++
++
++def test_request_configured_repos_to_be_enabled(monkeypatch):
++    monkeypatch.setattr(api, 'produce', produce_mocked())
++
++    rhui_config = {
++        RhuiUseConfig.name: True,
++        RhuiSourcePkgs.name: ['client_source'],
++        RhuiTargetPkgs.name: ['client_target'],
++        RhuiCloudProvider.name: 'aws',
++        RhuiUpgradeFiles.name: {
++            '/root/file.repo': '/etc/yum.repos.d/'
++        },
++        RhuiTargetRepositoriesToUse.name: [
++            'repoid1',
++            'repoid2',
++            'repoid3',
++        ]
++    }
++
++    checkrhui_lib.request_configured_repos_to_be_enabled(rhui_config)
++
++    assert api.produce.called
++    assert len(api.produce.model_instances) == 1
++
++    target_repos = api.produce.model_instances[0]
++    assert isinstance(target_repos, TargetRepositories)
++    assert not target_repos.rhel_repos
++
++    custom_repoids = sorted(custom_repo_model.repoid for custom_repo_model in target_repos.custom_repos)
++    assert custom_repoids == ['repoid1', 'repoid2', 'repoid3']
++
++
++@pytest.mark.parametrize(
++    ('upgrade_files', 'existing_files'),
++    (
++        (['/root/a', '/root/b'], ['/root/a', '/root/b']),
++        (['/root/a', '/root/b'], ['/root/b']),
++        (['/root/a', '/root/b'], []),
++    )
++)
++def test_missing_files_in_config(monkeypatch, upgrade_files, existing_files):
++    upgrade_files_map = dict((source_path, '/tmp/dummy') for source_path in upgrade_files)
++
++    rhui_config = {
++        RhuiUseConfig.name: True,
++        RhuiSourcePkgs.name: ['client_source'],
++        RhuiTargetPkgs.name: ['client_target'],
++        RhuiCloudProvider.name: 'aws',
++        RhuiCloudVariant.name: 'ordinary',
++        RhuiUpgradeFiles.name: upgrade_files_map,
++        RhuiTargetRepositoriesToUse.name: [
++            'repoid_to_use'
++        ]
++    }
++
++    monkeypatch.setattr(os.path, 'exists', lambda path: path in existing_files)
++    monkeypatch.setattr(api, 'produce', produce_mocked())
++
++    should_error = (len(upgrade_files) != len(existing_files))
++    if should_error:
++        with pytest.raises(StopActorExecutionError):
++            checkrhui_lib.emit_rhui_setup_tasks_based_on_config(rhui_config)
++    else:
++        checkrhui_lib.emit_rhui_setup_tasks_based_on_config(rhui_config)
++        assert api.produce.called
++        assert len(api.produce.model_instances) == 1
++
++        rhui_info = api.produce.model_instances[0]
++        assert isinstance(rhui_info, RHUIInfo)
++        assert rhui_info.provider == 'aws'
++        assert rhui_info.variant == 'ordinary'
++        assert rhui_info.src_client_pkg_names == ['client_source']
++        assert rhui_info.target_client_pkg_names == ['client_target']
++
++        setup_info = rhui_info.target_client_setup_info
++        assert not setup_info.bootstrap_target_client
++
++        _copies_to_perform = setup_info.preinstall_tasks.files_to_copy_into_overlay
++        copies_to_perform = sorted((copy.src, copy.dst) for copy in _copies_to_perform)
++        expected_copies = sorted(zip(upgrade_files, itertools.repeat('/tmp/dummy')))
++
++        assert copies_to_perform == expected_copies
+-- 
+2.47.0
+
diff --git a/SOURCES/0037-testutils-add-support-for-configs.patch b/SOURCES/0037-testutils-add-support-for-configs.patch
new file mode 100644
index 0000000..0ebbf0a
--- /dev/null
+++ b/SOURCES/0037-testutils-add-support-for-configs.patch
@@ -0,0 +1,53 @@
+From a206a7f02c68f50ab50c9f547669d3a4178c4bd2 Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Wed, 16 Oct 2024 17:38:36 +0200
+Subject: [PATCH 37/40] testutils: add support for configs
+
+Extend the CurrentActorMocked class to accept a `config` value,
+allowing developers to mock actors that rely on configuration.
+A library function `_make_default_config` is also introduced,
+allowing to instantiate default configs from config schemas.
+---
+ repos/system_upgrade/common/libraries/testutils.py | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/repos/system_upgrade/common/libraries/testutils.py b/repos/system_upgrade/common/libraries/testutils.py
+index c538af1a..afeb360a 100644
+--- a/repos/system_upgrade/common/libraries/testutils.py
++++ b/repos/system_upgrade/common/libraries/testutils.py
+@@ -4,6 +4,7 @@ import os
+ from collections import namedtuple
+ 
+ from leapp import reporting
++from leapp.actors.config import _normalize_config, normalize_schemas
+ from leapp.libraries.common.config import architecture
+ from leapp.models import EnvVar
+ from leapp.utils.deprecation import deprecated
+@@ -67,9 +68,15 @@ class logger_mocked(object):
+         return self
+ 
+ 
++def _make_default_config(actor_config_schema):
++    """ Make a config dict populated with default values. """
++    merged_schema = normalize_schemas((actor_config_schema, ))
++    return _normalize_config({}, merged_schema)  # Will fill default values during normalization
++
++
+ class CurrentActorMocked(object):  # pylint:disable=R0904
+     def __init__(self, arch=architecture.ARCH_X86_64, envars=None, kernel='3.10.0-957.43.1.el7.x86_64',
+-                 release_id='rhel', src_ver='7.8', dst_ver='8.1', msgs=None, flavour='default'):
++                 release_id='rhel', src_ver='7.8', dst_ver='8.1', msgs=None, flavour='default', config=None):
+         envarsList = [EnvVar(name=k, value=v) for k, v in envars.items()] if envars else []
+         version = namedtuple('Version', ['source', 'target'])(src_ver, dst_ver)
+         release = namedtuple('OS_release', ['release_id', 'version_id'])(release_id, src_ver)
+@@ -82,6 +89,7 @@ class CurrentActorMocked(object):  # pylint:disable=R0904
+             'configuration', ['architecture', 'kernel', 'leapp_env_vars', 'os_release', 'version', 'flavour']
+         )(arch, kernel, envarsList, release, version, flavour)
+         self._msgs = msgs or []
++        self.config = {} if config is None else config
+ 
+     def __call__(self):
+         return self
+-- 
+2.47.0
+
diff --git a/SOURCES/0038-userspacegen-rhui-remove-repofiles-only-if-now-owned.patch b/SOURCES/0038-userspacegen-rhui-remove-repofiles-only-if-now-owned.patch
new file mode 100644
index 0000000..27c7444
--- /dev/null
+++ b/SOURCES/0038-userspacegen-rhui-remove-repofiles-only-if-now-owned.patch
@@ -0,0 +1,70 @@
+From 0147bc268607e5931ebca95e3253087ec71a3c66 Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Sun, 20 Oct 2024 16:08:49 +0200
+Subject: [PATCH 38/40] userspacegen(rhui): remove repofiles only if now owned
+ by an RPM
+
+We copy files into the target userspace when setting up target
+repository content. If this file is named equally as some of the
+files installed by the target RHUI client installed during early
+phases of target userspace setup process, we would delete it in
+cleanup. Therefore, if we copy a repofile named /etc/yum.repos.d/X.repo
+and the target client also owns a file /etc/yum.repos.d/X.repo, we
+would remove it, making the container loose access to target content.
+This patch prevents us from blindly deleting files, keeping files that
+are owned by some RPM (usually that would be the target RHUI client).
+---
+ .../libraries/userspacegen.py                 | 30 ++++++++++++++-----
+ 1 file changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
+index d7698056..12736ab7 100644
+--- a/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
++++ b/repos/system_upgrade/common/actors/targetuserspacecreator/libraries/userspacegen.py
+@@ -1120,6 +1120,27 @@ def _get_target_userspace():
+     return constants.TARGET_USERSPACE.format(get_target_major_version())
+ 
+ 
++def _remove_injected_repofiles_from_our_rhui_packages(target_userspace_ctx, rhui_setup_info):
++    target_userspace_path = _get_target_userspace()
++    for copy in rhui_setup_info.preinstall_tasks.files_to_copy_into_overlay:
++        dst_in_container = get_copy_location_from_copy_in_task(target_userspace_path, copy)
++        dst_in_container = dst_in_container.strip('/')
++        dst_in_host = os.path.join(target_userspace_path, dst_in_container)
++
++        if os.path.isfile(dst_in_host) and dst_in_host.endswith('.repo'):
++            # The repofile might have been replaced by a new one provided by the RHUI client if names collide
++            # Performance: Do the query here and not earlier, because we would be running rpm needlessly
++            try:
++                path_with_root = '/' + dst_in_container
++                target_userspace_ctx.call(['rpm', '-q', '--whatprovides', path_with_root])
++                api.current_logger().debug('Repofile {0} kept as it is owned by some RPM.'.format(dst_in_host))
++            except CalledProcessError:
++                # rpm exists with 1 if the file is not owned by any RPM. We might be catching all kinds of other
++                # problems here, but still better than always removing repofiles.
++                api.current_logger().debug('Removing repofile - not owned by any RPM: {0}'.format(dst_in_host))
++                os.remove(dst_in_host)
++
++
+ def _create_target_userspace(context, indata, packages, files, target_repoids):
+     """Create the target userspace."""
+     target_path = _get_target_userspace()
+@@ -1139,14 +1160,7 @@ def _create_target_userspace(context, indata, packages, files, target_repoids):
+         )
+         setup_info = indata.rhui_info.target_client_setup_info
+         if not setup_info.bootstrap_target_client:
+-            target_userspace_path = _get_target_userspace()
+-            for copy in setup_info.preinstall_tasks.files_to_copy_into_overlay:
+-                dst_in_container = get_copy_location_from_copy_in_task(target_userspace_path, copy)
+-                dst_in_container = dst_in_container.strip('/')
+-                dst_in_host = os.path.join(target_userspace_path, dst_in_container)
+-                if os.path.isfile(dst_in_host) and dst_in_host.endswith('.repo'):
+-                    api.current_logger().debug('Removing repofile: {0}'.format(dst_in_host))
+-                    os.remove(dst_in_host)
++            _remove_injected_repofiles_from_our_rhui_packages(context, setup_info)
+ 
+     # and do not forget to set the rhsm into the container mode again
+     with mounting.NspawnActions(_get_target_userspace()) as target_context:
+-- 
+2.47.0
+
diff --git a/SOURCES/0039-Enable-IPU-for-EL-9.6-and-drop-EL-8.8-9.2.patch b/SOURCES/0039-Enable-IPU-for-EL-9.6-and-drop-EL-8.8-9.2.patch
new file mode 100644
index 0000000..ac99b4b
--- /dev/null
+++ b/SOURCES/0039-Enable-IPU-for-EL-9.6-and-drop-EL-8.8-9.2.patch
@@ -0,0 +1,857 @@
+From c2f2895bb570a75eb2aaa7b84a2bcd9dcd537b0e Mon Sep 17 00:00:00 2001
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Thu, 14 Nov 2024 14:24:15 +0100
+Subject: [PATCH 39/40] Enable IPU for EL 9.6 (and drop EL 8.8/9.2)
+
+* Add product certificates for RHEL 9.6
+* Introduce upgrade path 8.10 -> 9.6
+* Drop IPUs related to EL 8.8 and 9.2
+  * This will not be supported in this release.
+  * Keeping for now still IPU 8.10 -> 9.5 as it is a fresh release
+    so it has a value for us to run tests there. We will drop it
+    later during this lifecycle (CTC-2?).
+* Drop EL 8.8 from the list of supported versions
+* Update tests in packit
+  * Note that tests for 9.6 could be failing for a while until
+    composes are created.
+
+jira: RHEL-67621
+---
+ .packit.yaml                                  | 257 +++++-------------
+ .../common/files/prod-certs/9.6/279.pem       |  37 +++
+ .../common/files/prod-certs/9.6/362.pem       |  37 +++
+ .../common/files/prod-certs/9.6/363.pem       |  37 +++
+ .../common/files/prod-certs/9.6/419.pem       |  36 +++
+ .../common/files/prod-certs/9.6/433.pem       |  37 +++
+ .../common/files/prod-certs/9.6/479.pem       |  36 +++
+ .../common/files/prod-certs/9.6/486.pem       |  37 +++
+ .../common/files/prod-certs/9.6/72.pem        |  36 +++
+ .../common/files/upgrade_paths.json           |  18 +-
+ .../common/libraries/config/version.py        |   2 +-
+ 11 files changed, 363 insertions(+), 207 deletions(-)
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/9.6/279.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/9.6/362.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/9.6/363.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/9.6/419.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/9.6/433.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/9.6/479.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/9.6/486.pem
+ create mode 100644 repos/system_upgrade/common/files/prod-certs/9.6/72.pem
+
+diff --git a/.packit.yaml b/.packit.yaml
+index fbfd0eea..48c3cbbb 100644
+--- a/.packit.yaml
++++ b/.packit.yaml
+@@ -145,104 +145,6 @@ jobs:
+ # ######################### Individual tests ########################### #
+ # ###################################################################### #
+ 
+-# Tests: 7.9 -> 8.8
+-- &sanity-79to88-aws
+-  <<: *sanity-abstract-7to8-aws
+-  trigger: pull_request
+-  identifier: sanity-7.9to8.8-aws
+-  tf_extra_params:
+-    test:
+-      tmt:
+-        plan_filter: 'tag:7to8 & tag:upgrade_happy_path & enabled:true'
+-    environments:
+-      - tmt:
+-          context:
+-            distro: "rhel-7.9"
+-            distro_target: "rhel-8.8"
+-        settings:
+-          provisioning:
+-            post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
+-            tags:
+-              BusinessUnit: sst_upgrades@leapp_upstream_test
+-  env:
+-    SOURCE_RELEASE: "7.9"
+-    TARGET_RELEASE: "8.8"
+-    RHUI: "aws"
+-    LEAPPDATA_BRANCH: "upstream"
+-    LEAPP_NO_RHSM: "1"
+-    USE_CUSTOM_REPOS: rhui
+-
+-- &sanity-79to88
+-  <<: *sanity-abstract-7to8
+-  trigger: pull_request
+-  identifier: sanity-7.9to8.8
+-  tf_extra_params:
+-    test:
+-      tmt:
+-        plan_filter: 'tag:7to8 & tag:sanity & enabled:true'
+-    environments:
+-      - tmt:
+-          context:
+-            distro: "rhel-7.9"
+-            distro_target: "rhel-8.8"
+-        settings:
+-          provisioning:
+-            tags:
+-              BusinessUnit: sst_upgrades@leapp_upstream_test
+-  env:
+-    SOURCE_RELEASE: "7.9"
+-    TARGET_RELEASE: "8.8"
+-
+-- &beaker-minimal-79to88
+-  <<: *beaker-minimal-7to8-abstract-ondemand
+-  trigger: pull_request
+-  labels:
+-    - beaker-minimal
+-    - beaker-minimal-7.9to8.8
+-    - 7.9to8.8
+-  identifier: sanity-7.9to8.8-beaker-minimal-ondemand
+-  tf_extra_params:
+-    test:
+-      tmt:
+-        plan_filter: 'tag:7to8 & tag:partitioning & enabled:true'
+-    environments:
+-      - tmt:
+-          context:
+-            distro: "rhel-7.9"
+-            distro_target: "rhel-8.8"
+-        settings:
+-          provisioning:
+-            tags:
+-              BusinessUnit: sst_upgrades@leapp_upstream_test
+-  env:
+-    SOURCE_RELEASE: "7.9"
+-    TARGET_RELEASE: "8.8"
+-
+-- &kernel-rt-79to88
+-  <<: *kernel-rt-abstract-7to8-ondemand
+-  trigger: pull_request
+-  labels:
+-    - kernel-rt
+-    - kernel-rt-7.9to8.8
+-    - 7.9to8.8
+-  identifier: sanity-7.9to8.8-kernel-rt-ondemand
+-  tf_extra_params:
+-    test:
+-      tmt:
+-         plan_filter: 'tag:7to8 & tag:kernel-rt & enabled:true'
+-    environments:
+-      - tmt:
+-          context:
+-            distro: "rhel-7.9"
+-            distro_target: "rhel-8.8"
+-        settings:
+-          provisioning:
+-            tags:
+-              BusinessUnit: sst_upgrades@leapp_upstream_test
+-  env:
+-    SOURCE_RELEASE: "7.9"
+-    TARGET_RELEASE: "8.8"
+-
+ # Tests: 7.9 -> 8.10
+ - &sanity-79to810
+   <<: *sanity-abstract-7to8
+@@ -397,14 +299,11 @@ jobs:
+ # ######################### Individual tests ########################### #
+ # ###################################################################### #
+ 
+-# Tests: 8.8 -> 9.2
+-- &sanity-88to92
++# Tests: 8.10 -> 9.4
++- &sanity-810to94
+   <<: *sanity-abstract-8to9
+   trigger: pull_request
+-  targets:
+-    epel-8-x86_64:
+-      distros: [RHEL-8.8.0-Nightly]
+-  identifier: sanity-8.8to9.2
++  identifier: sanity-8.10to9.4
+   tf_extra_params:
+     test:
+       tmt:
+@@ -412,108 +311,74 @@ jobs:
+     environments:
+       - tmt:
+           context:
+-            distro: "rhel-8.8"
+-            distro_target: "rhel-9.2"
+-        settings:
+-          provisioning:
+-            tags:
+-              BusinessUnit: sst_upgrades@leapp_upstream_test
+-  env:
+-    SOURCE_RELEASE: "8.8"
+-    TARGET_RELEASE: "9.2"
+-    RHSM_REPOS_EUS: "eus"
+-
+-- &sanity-88to92-aws
+-  <<: *sanity-abstract-8to9-aws
+-  trigger: pull_request
+-  targets:
+-    epel-8-x86_64:
+-      distros: [RHEL-8.8-rhui]
+-  identifier: sanity-8.8to9.2-aws
+-  tf_extra_params:
+-    test:
+-      tmt:
+-        plan_filter: 'tag:8to9 & tag:rhui-tier[0] & enabled:true'
+-    environments:
+-      - tmt:
+-          context:
+-            distro: "rhel-8.8"
+-            distro_target: "rhel-9.2"
++            distro: "rhel-8.10"
++            distro_target: "rhel-9.4"
+         settings:
+           provisioning:
+-            post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+-    SOURCE_RELEASE: "8.8"
+-    TARGET_RELEASE: "9.2"
+-    RHUI_HYPERSCALER: aws
++    SOURCE_RELEASE: "8.10"
++    TARGET_RELEASE: "9.4"
+ 
+-- &beaker-minimal-88to92
++# On-demand minimal beaker tests
++- &beaker-minimal-810to94
+   <<: *beaker-minimal-8to9-abstract-ondemand
+   trigger: pull_request
+   labels:
+     - beaker-minimal
+-    - beaker-minimal-8.8to9.2
+-    - 8.8to9.2
+-  targets:
+-    epel-8-x86_64:
+-      distros: [RHEL-8.8.0-Nightly]
+-  identifier: sanity-8.8to9.2-beaker-minimal-ondemand
++    - beaker-minimal-8.10to9.4
++    - 8.10to9.4
++  identifier: sanity-8.10to9.4-beaker-minimal-ondemand
+   tf_extra_params:
+     test:
+       tmt:
+-        plan_filter: 'tag:8to9 &tag:partitioning & enabled:true'
++        plan_filter: 'tag:8to9 & tag:partitioning & enabled:true'
+     environments:
+       - tmt:
+           context:
+-            distro: "rhel-8.8"
+-            distro_target: "rhel-9.2"
++            distro: "rhel-8.10"
++            distro_target: "rhel-9.4"
+         settings:
+           provisioning:
+-            post_install_script: "#!/bin/sh\nsudo sed -i s/.*ssh-rsa/ssh-rsa/ /root/.ssh/authorized_keys"
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+-    SOURCE_RELEASE: "8.8"
+-    TARGET_RELEASE: "9.2"
+-    RHSM_REPOS_EUS: "eus"
++    SOURCE_RELEASE: "8.10"
++    TARGET_RELEASE: "9.4"
+ 
+-- &kernel-rt-88to92
++# On-demand kernel-rt tests
++- &kernel-rt-810to94
+   <<: *kernel-rt-abstract-8to9-ondemand
+   trigger: pull_request
+   labels:
+     - kernel-rt
+-    - kernel-rt-8.8to9.2
+-    - 8.8to9.2
+-  identifier: sanity-8.8to9.2-kernel-rt-ondemand
+-  targets:
+-    epel-8-x86_64:
+-      distros: [RHEL-8.8.0-Nightly]
++    - kernel-rt-8.10to9.4
++    - 8.10to9.4
++  identifier: sanity-8.10to9.4-kernel-rt-ondemand
+   tf_extra_params:
+     test:
+       tmt:
+-        plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
++         plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
+     environments:
+       - tmt:
+           context:
+-            distro: "rhel-8.8"
+-            distro_target: "rhel-9.2"
++            distro: "rhel-8.10"
++            distro_target: "rhel-9.4"
+         settings:
+           provisioning:
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+-    SOURCE_RELEASE: "8.8"
+-    TARGET_RELEASE: "9.2"
+-    RHSM_REPOS_EUS: "eus"
++    SOURCE_RELEASE: "8.10"
++    TARGET_RELEASE: "9.4"
+ 
+ 
+-# Tests: 8.10 -> 9.4
+-- &sanity-810to94
++# Tests: 8.10 -> 9.5
++- &sanity-810to95
+   <<: *sanity-abstract-8to9
+   trigger: pull_request
+-  identifier: sanity-8.10to9.4
++  identifier: sanity-8.10to9.5
+   tf_extra_params:
+     test:
+       tmt:
+@@ -522,24 +387,24 @@ jobs:
+       - tmt:
+           context:
+             distro: "rhel-8.10"
+-            distro_target: "rhel-9.4"
++            distro_target: "rhel-9.5"
+         settings:
+           provisioning:
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+     SOURCE_RELEASE: "8.10"
+-    TARGET_RELEASE: "9.4"
++    TARGET_RELEASE: "9.5"
+ 
+ # On-demand minimal beaker tests
+-- &beaker-minimal-810to94
++- &beaker-minimal-810to95
+   <<: *beaker-minimal-8to9-abstract-ondemand
+   trigger: pull_request
+   labels:
+     - beaker-minimal
+-    - beaker-minimal-8.10to9.4
+-    - 8.10to9.4
+-  identifier: sanity-8.10to9.4-beaker-minimal-ondemand
++    - beaker-minimal-8.10to9.5
++    - 8.10to9.5
++  identifier: sanity-8.10to9.5-beaker-minimal-ondemand
+   tf_extra_params:
+     test:
+       tmt:
+@@ -548,24 +413,24 @@ jobs:
+       - tmt:
+           context:
+             distro: "rhel-8.10"
+-            distro_target: "rhel-9.4"
++            distro_target: "rhel-9.5"
+         settings:
+           provisioning:
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+     SOURCE_RELEASE: "8.10"
+-    TARGET_RELEASE: "9.4"
++    TARGET_RELEASE: "9.5"
+ 
+ # On-demand kernel-rt tests
+-- &kernel-rt-810to94
++- &kernel-rt-810to95
+   <<: *kernel-rt-abstract-8to9-ondemand
+   trigger: pull_request
+   labels:
+     - kernel-rt
+-    - kernel-rt-8.10to9.4
+-    - 8.10to9.4
+-  identifier: sanity-8.10to9.4-kernel-rt-ondemand
++    - kernel-rt-8.10to9.5
++    - 8.10to9.5
++  identifier: sanity-8.10to9.5-kernel-rt-ondemand
+   tf_extra_params:
+     test:
+       tmt:
+@@ -574,21 +439,21 @@ jobs:
+       - tmt:
+           context:
+             distro: "rhel-8.10"
+-            distro_target: "rhel-9.4"
++            distro_target: "rhel-9.5"
+         settings:
+           provisioning:
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+     SOURCE_RELEASE: "8.10"
+-    TARGET_RELEASE: "9.4"
++    TARGET_RELEASE: "9.5"
+ 
+ 
+-# Tests: 8.10 -> 9.5
+-- &sanity-810to95
++# Tests: 8.10 -> 9.6
++- &sanity-810to96
+   <<: *sanity-abstract-8to9
+   trigger: pull_request
+-  identifier: sanity-8.10to9.5
++  identifier: sanity-8.10to9.6
+   tf_extra_params:
+     test:
+       tmt:
+@@ -597,24 +462,24 @@ jobs:
+       - tmt:
+           context:
+             distro: "rhel-8.10"
+-            distro_target: "rhel-9.5"
++            distro_target: "rhel-9.6"
+         settings:
+           provisioning:
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+     SOURCE_RELEASE: "8.10"
+-    TARGET_RELEASE: "9.5"
++    TARGET_RELEASE: "9.6"
+ 
+ # On-demand minimal beaker tests
+-- &beaker-minimal-810to95
++- &beaker-minimal-810to96
+   <<: *beaker-minimal-8to9-abstract-ondemand
+   trigger: pull_request
+   labels:
+     - beaker-minimal
+-    - beaker-minimal-8.10to9.5
+-    - 8.10to9.5
+-  identifier: sanity-8.10to9.5-beaker-minimal-ondemand
++    - beaker-minimal-8.10to9.6
++    - 8.10to9.6
++  identifier: sanity-8.10to9.6-beaker-minimal-ondemand
+   tf_extra_params:
+     test:
+       tmt:
+@@ -623,24 +488,24 @@ jobs:
+       - tmt:
+           context:
+             distro: "rhel-8.10"
+-            distro_target: "rhel-9.5"
++            distro_target: "rhel-9.6"
+         settings:
+           provisioning:
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+     SOURCE_RELEASE: "8.10"
+-    TARGET_RELEASE: "9.5"
++    TARGET_RELEASE: "9.6"
+ 
+ # On-demand kernel-rt tests
+-- &kernel-rt-810to95
++- &kernel-rt-810to96
+   <<: *kernel-rt-abstract-8to9-ondemand
+   trigger: pull_request
+   labels:
+     - kernel-rt
+-    - kernel-rt-8.10to9.5
+-    - 8.10to9.5
+-  identifier: sanity-8.10to9.5-kernel-rt-ondemand
++    - kernel-rt-8.10to9.6
++    - 8.10to9.6
++  identifier: sanity-8.10to9.6-kernel-rt-ondemand
+   tf_extra_params:
+     test:
+       tmt:
+@@ -649,11 +514,11 @@ jobs:
+       - tmt:
+           context:
+             distro: "rhel-8.10"
+-            distro_target: "rhel-9.5"
++            distro_target: "rhel-9.6"
+         settings:
+           provisioning:
+             tags:
+               BusinessUnit: sst_upgrades@leapp_upstream_test
+   env:
+     SOURCE_RELEASE: "8.10"
+-    TARGET_RELEASE: "9.5"
++    TARGET_RELEASE: "9.6"
+diff --git a/repos/system_upgrade/common/files/prod-certs/9.6/279.pem b/repos/system_upgrade/common/files/prod-certs/9.6/279.pem
+new file mode 100644
+index 00000000..a9ef267b
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/9.6/279.pem
+@@ -0,0 +1,37 @@
++-----BEGIN CERTIFICATE-----
++MIIGZTCCBE2gAwIBAgIJALDxRLt/tVEiMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDgxMjE5MDIwNVoXDTQ0MDgx
++MjE5MDIwNVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs1MzUwNTA4
++OC05ZTk5LTQyODItYmE4OS1mMjhhNjAwZWNhZWFdMIICIjANBgkqhkiG9w0BAQEF
++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
++AwEAAaOB7jCB6zAJBgNVHRMEAjAAMEMGDCsGAQQBkggJAYIXAQQzDDFSZWQgSGF0
++IEVudGVycHJpc2UgTGludXggZm9yIFBvd2VyLCBsaXR0bGUgZW5kaWFuMBUGDCsG
++AQQBkggJAYIXAgQFDAM5LjYwGQYMKwYBBAGSCAkBghcDBAkMB3BwYzY0bGUwJwYM
++KwYBBAGSCAkBghcEBBcMFXJoZWwtOSxyaGVsLTktcHBjNjRsZTAdBgNVHQ4EFgQU
++YeogtTV8r2dkOv9rCOYQeNDNH5UwHwYDVR0jBBgwFoAUlv27HEBA/0CErbIfCybB
++w2pv1nwwDQYJKoZIhvcNAQELBQADggIBACRmyYbMhmuV+w4E+Hlonlt0mooB6EF6
++h/xknuBRw/saSL+7sLfbItaxWH5euxDc/5XvII2t0Jjl+GDnAjI75xrTuN3gT88Z
++9wd1kvDVqt46GI6VKVH1SujJoJpGenfhTVwenATZwdq260RgYgM3Zv1d3I4Lu/GY
++65T//j0/8tBmgqMc6BRvIrDa1wtVUbEwH3b/jwZoeitps1hKIH9yKZV79HZ7WVdb
++otDtsAk7VKZGRjGdvYsfWZrjmyyyc5wX2AemzpnhSm1kkGvOAjSMsJ0QcrSu/5vj
++AAK64J1tDA93WKsAqDnK7tUOx6qwICllbgVmKWl/02JH8ELs/sJnsWBEigfdZmTh
++/3Q8DPNni7scYkJ5Vs0tL8pke29C1bgAYjoBiQgf/ffNunTOWgdkdFHbd9I3+aLh
++pO7qqkndEkl85xkQJrZWO35NvPD4NAwnsDrIP0oJg5mYNTB11C5SlHhllT/Iu374
++8afWtoHaB50vsqM2dtvh/UsCyGynWYc93TLsU6a4gBl19D7VAx0fiOwdD+CyweUp
++xcos6MIIuFAFUIVpD+/3w499Lw9m5dcfApl6HCyQgAoafXCJjM/aXsSsSWr2d9TF
++c6S/uA2egh4fUv8zYnlZKUvCTu8kn4Lv439wW0xyIEB/sD/gXk9e8H9KkUuKDExx
++yTSjzqnPM82N
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/9.6/362.pem b/repos/system_upgrade/common/files/prod-certs/9.6/362.pem
+new file mode 100644
+index 00000000..d7c1a6be
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/9.6/362.pem
+@@ -0,0 +1,37 @@
++-----BEGIN CERTIFICATE-----
++MIIGdDCCBFygAwIBAgIJALDxRLt/tVE4MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDgxMjE5MDIyNFoXDTQ0MDgx
++MjE5MDIyNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs2MjBmNzkx
++MC0xNDk5LTRmMzAtYTk3NS1hYWFiOGQyMWE1NmNdMIICIjANBgkqhkiG9w0BAQEF
++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
++AwEAAaOB/TCB+jAJBgNVHRMEAjAAMEgGDCsGAQQBkggJAYJqAQQ4DDZSZWQgSGF0
++IEVudGVycHJpc2UgTGludXggZm9yIFBvd2VyLCBsaXR0bGUgZW5kaWFuIEJldGEw
++GgYMKwYBBAGSCAkBgmoCBAoMCDkuNiBCZXRhMBkGDCsGAQQBkggJAYJqAwQJDAdw
++cGM2NGxlMCwGDCsGAQQBkggJAYJqBAQcDBpyaGVsLTkscmhlbC05LWJldGEtcHBj
++NjRsZTAdBgNVHQ4EFgQUYeogtTV8r2dkOv9rCOYQeNDNH5UwHwYDVR0jBBgwFoAU
++lv27HEBA/0CErbIfCybBw2pv1nwwDQYJKoZIhvcNAQELBQADggIBADzaMxiligMU
++vVUxGdlKgceVXcZR6TC/nACDxyRFm7JGKYC0Ncxum2RWQ10mMD1HM1xa0NVz3BLO
++a+VrZ3MGTpKuWQgN0TKIzjykxxfJMip8AVYx6UvQ4SxxZWFIVPuC0XYfYc2pOV5A
++OcO63O+R7QVvLpZ3q7tX3uAXCfWWvJkoJ+MzKCl3lEmeKAcaikcums+aOd/JwTSo
++bt5ExLgC4J1cvevH+IBCUbmN1r+xrkHNiNWjys0MIo1JsPmi1A1kDeORXPN4xXvH
++x69z9SuHrUd2iFXpMfezqZsmiaa/FP6UOKwpDyEqZGE+/aT/RBza9BeYX74vDpFI
++h0vMtx3lHE+PGh7a6kfXV2GL4IP7w5MbdZQIJ/ZS4oT/zG3E2wRnGD4+oQ3Bm/TV
++Or0IHnafxXYXgsQ6bsMsZN7BRZ8VfaEdM3IVRqVyPVWzo0kYkHZcnVQpabmCWPjc
++NUwMJDni3LfjxKreHLDQBEkwX4XoZnSq/xMHO6ppe0sZ2XgAOsw/B92ekTTEdoKZ
++dEQBkqv2FRUbMoILnNVWJp4yGMOPcTl7hrlcJjKRvKs1hKWkQKN6g4YDHCglkVfH
++ltDGkolsUYFvoygoi8VCCDfz7whn6pXmzlpk1VkzE+V1R88Tf5ygrSNWETOZMU/B
++5P07jdNriEBCZaCPq7T8odOt1cKZpVdg
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/9.6/363.pem b/repos/system_upgrade/common/files/prod-certs/9.6/363.pem
+new file mode 100644
+index 00000000..f75b478d
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/9.6/363.pem
+@@ -0,0 +1,37 @@
++-----BEGIN CERTIFICATE-----
++MIIGZjCCBE6gAwIBAgIJALDxRLt/tVE3MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDgxMjE5MDIyNFoXDTQ0MDgx
++MjE5MDIyNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs1MDE5NmU1
++ZC1lNDgzLTQwNDAtYjcwYS03NDg5NDliZTRjZmFdMIICIjANBgkqhkiG9w0BAQEF
++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
++AwEAAaOB7zCB7DAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYJrAQQqDChSZWQgSGF0
++IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NCBCZXRhMBoGDCsGAQQBkggJAYJr
++AgQKDAg5LjYgQmV0YTAZBgwrBgEEAZIICQGCawMECQwHYWFyY2g2NDAsBgwrBgEE
++AZIICQGCawQEHAwacmhlbC05LHJoZWwtOS1iZXRhLWFhcmNoNjQwHQYDVR0OBBYE
++FGHqILU1fK9nZDr/awjmEHjQzR+VMB8GA1UdIwQYMBaAFJb9uxxAQP9AhK2yHwsm
++wcNqb9Z8MA0GCSqGSIb3DQEBCwUAA4ICAQBiaXwTsDt1Kz79ZJ3TnNDuX3IntXuS
++DxIGAhpgJ+ynaSULh8xL6pq5L6EtYnVzpO6T+j2ADbJlLkIRV0fMD6MMZo4YQtHH
++NofoNgJoYI4uXcCKYS2vIUw+0Br7qx8BPTb5jP+VRl9LU8W299nYOTp+vY7GQ0Ny
++hT66G+FJfo5CqHZpMTGgJbpjoP3DMpXZcARBnjQ0LhvjvcalGmPP4//tcPNwft6r
++ei8fxBvpmCXDS9/vXwiEf6jEidqq1Q6bCdL20Y1ZPY13oUEYFqrf8PhexlV1yoD4
++F4gEbVHPQ4yvH3D6xIAFE4959+H+dgMfXqn9gkUvnTMdyfzcUYGLTAib3zb4eW/J
++anzwfBAcssBzjU1v/txWMRlZI1GJFNtboAixnRksj1epE848J3bjtiw3R/Z5grFn
++dieJwjfM4AEDrpRmA5tDnv5z73k1djJbacL7fTIyTuSnDbjH2J5PtCAvWTLYq/kP
++h8E3sJ9zXP2nJMBRgQiZJY98bPKLT63ngRScI+CZs1fLvaoCq0o+qkcfnDEja3aH
++TQYXHVZblA4TYnD8Vh8gKwCt8+1WF5C9BGcMmKvozuuIaIJgT21V+DLzfTESpZz7
++lcPKk/3dBFtFGOdA4SQ4o/dxItJ0Eay1SlOI9xL9KgTNqv6ftA+9kxZ0MSPwO7eG
++b5Am4gNTK734uQ==
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/9.6/419.pem b/repos/system_upgrade/common/files/prod-certs/9.6/419.pem
+new file mode 100644
+index 00000000..e2d3ee5b
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/9.6/419.pem
+@@ -0,0 +1,36 @@
++-----BEGIN CERTIFICATE-----
++MIIGVzCCBD+gAwIBAgIJALDxRLt/tVEhMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDgxMjE5MDIwNVoXDTQ0MDgx
++MjE5MDIwNVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtkN2E2ZDhi
++Mi0yZjMzLTRhYzMtYmM5Ni1mMjU5MTNmZTQxNWNdMIICIjANBgkqhkiG9w0BAQEF
++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
++AwEAAaOB4DCB3TAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYMjAQQlDCNSZWQgSGF0
++IEVudGVycHJpc2UgTGludXggZm9yIEFSTSA2NDAVBgwrBgEEAZIICQGDIwIEBQwD
++OS42MBkGDCsGAQQBkggJAYMjAwQJDAdhYXJjaDY0MCcGDCsGAQQBkggJAYMjBAQX
++DBVyaGVsLTkscmhlbC05LWFhcmNoNjQwHQYDVR0OBBYEFGHqILU1fK9nZDr/awjm
++EHjQzR+VMB8GA1UdIwQYMBaAFJb9uxxAQP9AhK2yHwsmwcNqb9Z8MA0GCSqGSIb3
++DQEBCwUAA4ICAQCJqWcTJezGVGxsNvFkbsrvbHhJBuBMeDZZuOLaXaQVyfNwYRS2
++2k/oUhhQQMfiDiaLkz7yz0Zw5clC/K5G6Sg9+nWDA57lsZuNV5CnSBYOJf2jY2fK
++ue/1M75Y4fJAKtBxpvkFaIaKyMQ/0VC67OFYtbBZEOuwIpQh9aPFHnrh2WnpcUvJ
++B93O0fsRjHK30E7jF8ncNmhevMLvVlxH0JjfbvcU3dGG964K41tFiozshvnAGFce
++kFzxVVYQL3ZKycqonwFr3BbzgKwx5EXUFBg/ax694aijeeVA6yuQXWJvV42IjUeW
++vn+dvRrHh2fv4MXuyc+oljbXaEZE7m9gtWBtUEBHqWoQz6rQ25uZylnK+SDWE5bt
++xM+1qGUSf90VvyFO3fu1qeVVr0LbnMAgO9YnJjLRQax0mgj3tZTRvM72W4hfBy36
++ndYnJE2le5xYWVl1Hd29dil70cokj5hN8nQI9eStfcOvs9Vw2ngIL/H3+QTRS/NO
++l7MHQXbriLAaHavED6B50dEfw8pQXybEju4Rs+nDgm5hdE7FjbVflVQejSjyHIMd
++AQnwrDSMPRezCJFHQeB0t7oaHpAHECc2zBpvcvy7qCN2Z08h6jdzfrp15UDkHEcy
++Qa9dtYRUthI3pjGGu7WTPwX9y0veot3EZRnEzeIprIsHcMKfmkMg4HRJ3A==
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/9.6/433.pem b/repos/system_upgrade/common/files/prod-certs/9.6/433.pem
+new file mode 100644
+index 00000000..ac588c1c
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/9.6/433.pem
+@@ -0,0 +1,37 @@
++-----BEGIN CERTIFICATE-----
++MIIGaTCCBFGgAwIBAgIJALDxRLt/tVE5MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDgxMjE5MDIyNFoXDTQ0MDgx
++MjE5MDIyNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs4NzcwNzQ4
++MS02MGEwLTQwYTUtYWVhMi0xNjNmODUyMzI3ZTFdMIICIjANBgkqhkiG9w0BAQEF
++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
++AwEAAaOB8jCB7zAJBgNVHRMEAjAAMEEGDCsGAQQBkggJAYMxAQQxDC9SZWQgSGF0
++IEVudGVycHJpc2UgTGludXggZm9yIElCTSB6IFN5c3RlbXMgQmV0YTAaBgwrBgEE
++AZIICQGDMQIECgwIOS42IEJldGEwFwYMKwYBBAGSCAkBgzEDBAcMBXMzOTB4MCoG
++DCsGAQQBkggJAYMxBAQaDBhyaGVsLTkscmhlbC05LWJldGEtczM5MHgwHQYDVR0O
++BBYEFGHqILU1fK9nZDr/awjmEHjQzR+VMB8GA1UdIwQYMBaAFJb9uxxAQP9AhK2y
++HwsmwcNqb9Z8MA0GCSqGSIb3DQEBCwUAA4ICAQC57eNKMpTQuIEEoYXkhD0oYkgD
++RzDFyqKZgyK0IdOy6t0d9GcMY/nI/uYQltUC+HWBUJWYkHc84xjfP3ITfuHWP8KP
++3qdXLPwTDcNVUGtLgXIfEz4FEM4OVwfM2X0jIcLfkDmZzffWjHgBpAUfZM6fBvXl
++soPJ+s4/vIUFNbVtcJh9iw4glt/GFBOX/bNPV9kniAAYuyabW43X7GxfREJY18Db
+++Fv7c+z2eM4fQFpLkSEZwsNN68G4OHDC7tWsYtCRocipWGs6lN5MBNXC0q90ds5O
++kOLRfHKOLFqbZnBNdgSOlsf+ENH3exUhoDvZE0gnAVALABVv6PCtsHn2rPLonsrB
++l9ZKqCVVDpQMDXmZC79XKB0nVrNQ7qYorCVnYqnTAkuvw4BuXpKASaSCDSRWLQN0
++H89phUM64VnyPD5pBTw+YJURDm8cwD5e6HaXhKzG1ca9PWL+RVxedB4Rl2VG00fE
++QUBbHZktH+H1P3MtqALB7IUav4IuBgdF27W55GExCgshRuyV6/VHmYiD+L52XxCH
++71mdWTp6JR1/hMYKPLhc5/ESBoMpqMXa4UWIOtMWiafWaDS4Cib+uyIIzCgqW8ee
++t+yQtCs7MUUd6t87XP7/TTQJe6e0JsyDnME9br0E4g57Y8cXjOILGg/ihqBFOGt1
++vhbX7w/YRjVpwJhi9w==
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/9.6/479.pem b/repos/system_upgrade/common/files/prod-certs/9.6/479.pem
+new file mode 100644
+index 00000000..c2bac3ee
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/9.6/479.pem
+@@ -0,0 +1,36 @@
++-----BEGIN CERTIFICATE-----
++MIIGVTCCBD2gAwIBAgIJALDxRLt/tVEkMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDgxMjE5MDIwNVoXDTQ0MDgx
++MjE5MDIwNVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFtjZWRlZTRi
++My0xOGFhLTQwMzMtYjE3OS01OTkwMjk2OGFkZjhdMIICIjANBgkqhkiG9w0BAQEF
++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
++AwEAAaOB3jCB2zAJBgNVHRMEAjAAMDUGDCsGAQQBkggJAYNfAQQlDCNSZWQgSGF0
++IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NDAVBgwrBgEEAZIICQGDXwIEBQwD
++OS42MBgGDCsGAQQBkggJAYNfAwQIDAZ4ODZfNjQwJgYMKwYBBAGSCAkBg18EBBYM
++FHJoZWwtOSxyaGVsLTkteDg2XzY0MB0GA1UdDgQWBBRh6iC1NXyvZ2Q6/2sI5hB4
++0M0flTAfBgNVHSMEGDAWgBSW/bscQED/QIStsh8LJsHDam/WfDANBgkqhkiG9w0B
++AQsFAAOCAgEADoQWjROe9jPuYIB5cW7URXgDPVK3cpGnlKxEINdXT+dL7N2qNijy
++BcV0+SCHmswZ+F7OTozyGzGbJCrSHZrvF2lp2L8YddvkIFsWqrPkseU/0/oog5Qf
++ULA5WzV12u0Ra/DWinhUq6NZWLAt/FvJ7+WHPdJ7B0WsiA751l7crvfKfen93Xzb
++0eakHrotcPi9YH/Jez8xjs4Wc3ra/7CbLqpsHuWzgzwJabiuLaf5PK95VVedzQIx
++lT+N6JydFIkXkofQJwTptPTh9lDbZDe33/dg5zX3l9CAQK7JYZKYoUzLirM2LO7s
++TGejW1mKGB+O23bQBGRkLoD4kbY17UMCFcKD7mZSO6laoOBOk8NYUxTDjT4e3cUB
++dHw5YVrj+BSHzgOGpc1KrmuBiOWZrZf4iaFuz4Kr88tL6TT6IH5UmfP3fuvvMyXs
++OWqTAfr/CPeJjLhjmbEagkS0kpgkyXodY8sq2Ph5vpn0o1QYNfy6KRtD/m6YaF7G
++SDkWEY5li338SROIFV6X8lKEzHMfQZzhqQWoJWQlFuAdByKrxz8x1RJZTkIT82h6
++uM/GO3v5xT5UXXa2x1X0JtS9rPGdnmAKQLJJz07s+2WCRqCFuBxJsV+aWCRLsab4
++jpo1NG0RH0KorjvBBMLx8bVSbl4YFJdOcomlRVrsC2iMUwl+PH5Ah4g=
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/9.6/486.pem b/repos/system_upgrade/common/files/prod-certs/9.6/486.pem
+new file mode 100644
+index 00000000..e130d5dc
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/9.6/486.pem
+@@ -0,0 +1,37 @@
++-----BEGIN CERTIFICATE-----
++MIIGZDCCBEygAwIBAgIJALDxRLt/tVE6MA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDgxMjE5MDIyNFoXDTQ0MDgx
++MjE5MDIyNFowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFsyMTM1ODk1
++Yi1mMDRiLTRlNjUtOWYzMC04MmRlYmQ0Njc0NjNdMIICIjANBgkqhkiG9w0BAQEF
++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
++AwEAAaOB7TCB6jAJBgNVHRMEAjAAMDoGDCsGAQQBkggJAYNmAQQqDChSZWQgSGF0
++IEVudGVycHJpc2UgTGludXggZm9yIHg4Nl82NCBCZXRhMBoGDCsGAQQBkggJAYNm
++AgQKDAg5LjYgQmV0YTAYBgwrBgEEAZIICQGDZgMECAwGeDg2XzY0MCsGDCsGAQQB
++kggJAYNmBAQbDBlyaGVsLTkscmhlbC05LWJldGEteDg2XzY0MB0GA1UdDgQWBBRh
++6iC1NXyvZ2Q6/2sI5hB40M0flTAfBgNVHSMEGDAWgBSW/bscQED/QIStsh8LJsHD
++am/WfDANBgkqhkiG9w0BAQsFAAOCAgEAHhaEBX5fhB2zweFT0SuLB3OB11aE3Tjy
++q0dNxm8t3d5glgtratmAkPD+6Ct0gkdoGJ8GcBsFVzzM2ig236YOy8dCPVWBzLtd
++Oni5DpjSqnMX6yq4PuSViF1w+9pCKPJqzQK/u/F0njkwdu0mAwc1fkiCR0B6oB7s
++m1rHhuyC4PkAj5RYQ6+M4MpGfce0HSpUCzlnAlHYgjvmT3qCUvlEYLPg4/Z+wihZ
++1xdhhhoLNi43IdfmFQlTSNZqTwLB780qzHzi+UYgWg7wflTn8m1LAOlad5HWJFnE
++y6JnX+c+vfzvxFBSZABKJsZY/YKIAV14g42XL8zhIpJHtdYnUaveo1M90UAvSECP
++RAnPUIKWM1VYKfa2PpEC2/157KOQ4y7BUrAUlqs1qh8FoGCZYHMRmgYqHoycIvw+
++gs1gH77O9EyOMMjwyQqBUnzylJfhjkEgINDIGbPEiQpI33TBniw5yMRZ74XWOoi3
++rOIiaYxHBDpJ25LwbZsJOQUPmIKBTOpLK9N4IK7UvA7O8HCEEJz2+VLVf2svaoU1
++fd7MUYh9aCjEocKRQknxScJLVBXcFRy0I+tfVQwkcLqWCOrp3qpNmYwhC+C0vYtR
++/LZ58vf60+m+mKUmEJWF6X7QGFZptsc0ERme6sE1E41iNAIq3BsBMU/hQIVP50k4
++T3KefQomWk4=
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/prod-certs/9.6/72.pem b/repos/system_upgrade/common/files/prod-certs/9.6/72.pem
+new file mode 100644
+index 00000000..35927fbc
+--- /dev/null
++++ b/repos/system_upgrade/common/files/prod-certs/9.6/72.pem
+@@ -0,0 +1,36 @@
++-----BEGIN CERTIFICATE-----
++MIIGVjCCBD6gAwIBAgIJALDxRLt/tVEjMA0GCSqGSIb3DQEBCwUAMIGuMQswCQYD
++VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExFjAUBgNVBAoMDVJlZCBI
++YXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0d29yazEuMCwGA1UEAwwlUmVk
++IEhhdCBFbnRpdGxlbWVudCBQcm9kdWN0IEF1dGhvcml0eTEkMCIGCSqGSIb3DQEJ
++ARYVY2Etc3VwcG9ydEByZWRoYXQuY29tMB4XDTI0MDgxMjE5MDIwNVoXDTQ0MDgx
++MjE5MDIwNVowRDFCMEAGA1UEAww5UmVkIEhhdCBQcm9kdWN0IElEIFs0ZDhmOTky
++Yy04NDBjLTQ4MzYtODVkOS0zYWI5YjA1ZjViY2FdMIICIjANBgkqhkiG9w0BAQEF
++AAOCAg8AMIICCgKCAgEAxj9J04z+Ezdyx1U33kFftLv0ntNS1BSeuhoZLDhs18yk
++sepG7hXXtHh2CMFfLZmTjAyL9i1XsxykQpVQdXTGpUF33C2qBQHB5glYs9+d781x
++8p8m8zFxbPcW82TIJXbgW3ErVh8vk5qCbG1cCAAHb+DWMq0EAyy1bl/JgAghYNGB
++RvKJObTdCrdpYh02KUqBLkSPZHvo6DUJFN37MXDpVeQq9VtqRjpKLLwuEfXb0Y7I
++5xEOrR3kYbOaBAWVt3mYZ1t0L/KfY2jVOdU5WFyyB9PhbMdLi1xE801j+GJrwcLa
++xmqvj4UaICRzcPATP86zVM1BBQa+lilkRQes5HyjZzZDiGYudnXhbqmLo/n0cuXo
++QBVVjhzRTMx71Eiiahmiw+U1vGqkHhQNxb13HtN1lcAhUCDrxxeMvrAjYdWpYlpI
++yW3NssPWt1YUHidMBSAJ4KctIf91dyE93aStlxwC/QnyFsZOmcEsBzVCnz9GmWMl
++1/6XzBS1yDUqByklx0TLH+z/sK9A+O2rZAy1mByCYwVxvbOZhnqGxAuToIS+A81v
++5hCjsCiOScVB+cil30YBu0cH85RZ0ILNkHdKdrLLWW4wjphK2nBn2g2i3+ztf+nQ
++ED2pQqZ/rhuW79jcyCZl9kXqe1wOdF0Cwah4N6/3LzIXEEKyEJxNqQwtNc2IVE8C
++AwEAAaOB3zCB3DAJBgNVHRMEAjAAMDsGCysGAQQBkggJAUgBBCwMKlJlZCBIYXQg
++RW50ZXJwcmlzZSBMaW51eCBmb3IgSUJNIHogU3lzdGVtczAUBgsrBgEEAZIICQFI
++AgQFDAM5LjYwFgYLKwYBBAGSCAkBSAMEBwwFczM5MHgwJAYLKwYBBAGSCAkBSAQE
++FQwTcmhlbC05LHJoZWwtOS1zMzkweDAdBgNVHQ4EFgQUYeogtTV8r2dkOv9rCOYQ
++eNDNH5UwHwYDVR0jBBgwFoAUlv27HEBA/0CErbIfCybBw2pv1nwwDQYJKoZIhvcN
++AQELBQADggIBANOzzfUKjlJsgJWUryjKfzPYISkCZXauHqBcST4N1HP1GA8tmMXi
++bgh14+l7ZO8EloFvEGANsX2ffMfauuJx2NV6ks07NHWuM7W9kghDe5ZccrJCz88E
++1zdvyWae5oSvTwfnvR/b63duOhs88u7NCQN2+n+pmJA0dPWbGTaIp3n4kJg8YKnd
++O8Nct2doNS+1rrLpRmVKQy/E7fAXQzt1Bxqs2hORqbgffiSE9a+4akitY97GXRBm
++nOO2DkyEW0xPtdy3zDvL7o7b1B0gdMOwqEolgGuDFsrfD+7ofpwOWjS+83gF6hMP
++5YVD3sugu6xzCx6y7Yl/BfX4qvvT4YHtYob5rQA/t7JY4u4ryadkUxQLMEccMsyS
++pKZQ8KFC5ZNJVK/ievkcBCsBlulbRftVJGF3TA2Hl2aBuMhGdUR5y/Q89WHUzeV6
++U6AVzyEsvIJguswvKvFAyHwNuViCfFCkjNkJolvd/g03OSy1A7piQaU20QyltWmx
++FILCR/DBUbCWIzKTfkLr93TbV2b1AH9uRW1SAGrftuevVXrNemWIwq1x/VgjDm3o
++nk637pnEfZZzX8T2gO5z5yjlP0PR4s7hKkmp3TmAeG9015pFxPnD3AMI261srQ+c
++KZBdIc5UseQo/4KvRKZ1CzxPh0WjJCzc/C/TKzIlEdELq/rnKGuqHKB9
++-----END CERTIFICATE-----
+diff --git a/repos/system_upgrade/common/files/upgrade_paths.json b/repos/system_upgrade/common/files/upgrade_paths.json
+index 5399f148..cc9dcdb5 100644
+--- a/repos/system_upgrade/common/files/upgrade_paths.json
++++ b/repos/system_upgrade/common/files/upgrade_paths.json
+@@ -1,19 +1,17 @@
+ {
+     "default": {
+-        "7.9": ["8.8", "8.10"],
+-        "8.8": ["9.2"],
+-        "8.10": ["9.4", "9.5"],
++        "7.9": ["8.10"],
++        "8.10": ["9.4", "9.5", "9.6"],
+         "9.6": ["10.0"],
+-        "7": ["8.8", "8.10"],
+-        "8": ["9.2", "9.4", "9.5"],
++        "7": ["8.10"],
++        "8": ["9.4", "9.5", "9.6"],
+         "9": ["10.0"]
+     },
+     "saphana": {
+-        "7.9": ["8.10", "8.8"],
+-        "7": ["8.10", "8.8"],
+-        "8.8": ["9.2"],
+-        "8.10": ["9.4"],
+-        "8": ["9.4", "9.2"],
++        "7.9": ["8.10"],
++        "7": ["8.10"],
++        "8.10": ["9.6", "9.4"],
++        "8": ["9.6", "9.4"],
+         "9.6": ["10.0"],
+         "9": ["10.0"]
+     }
+diff --git a/repos/system_upgrade/common/libraries/config/version.py b/repos/system_upgrade/common/libraries/config/version.py
+index 152d9112..d710a647 100644
+--- a/repos/system_upgrade/common/libraries/config/version.py
++++ b/repos/system_upgrade/common/libraries/config/version.py
+@@ -18,7 +18,7 @@ OP_MAP = {
+ _SUPPORTED_VERSIONS = {
+     # Note: 'rhel-alt' is detected when on 'rhel' with kernel 4.x
+     '7': {'rhel': ['7.9'], 'rhel-alt': [], 'rhel-saphana': ['7.9']},
+-    '8': {'rhel': ['8.8', '8.10'], 'rhel-saphana': ['8.8', '8.10']},
++    '8': {'rhel': ['8.10'], 'rhel-saphana': ['8.10']},
+     '9': {'rhel': ['9.4', '9.5', '9.6'], 'rhel-saphana': ['9.4', '9.6']},
+ }
+ 
+-- 
+2.47.0
+
diff --git a/SOURCES/0040-spec-drop-the-etc-leapp-actor_confid.d-dir.patch b/SOURCES/0040-spec-drop-the-etc-leapp-actor_confid.d-dir.patch
new file mode 100644
index 0000000..44aaa8c
--- /dev/null
+++ b/SOURCES/0040-spec-drop-the-etc-leapp-actor_confid.d-dir.patch
@@ -0,0 +1,29 @@
+From f50e3474a619ed338c2514933303320d986e6ffe Mon Sep 17 00:00:00 2001
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Thu, 14 Nov 2024 16:26:55 +0100
+Subject: [PATCH 40/40] spec: drop the /etc/leapp/actor_confid.d dir
+
+The directory should be provided by the framework. leapp-repository
+should provide only a content inside if any present.
+---
+ packaging/leapp-repository.spec | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/packaging/leapp-repository.spec b/packaging/leapp-repository.spec
+index 2bb52505..6676d907 100644
+--- a/packaging/leapp-repository.spec
++++ b/packaging/leapp-repository.spec
+@@ -250,9 +250,7 @@ install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/
+ install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction
+ install -m 0644 etc/leapp/files/* %{buildroot}%{_sysconfdir}/leapp/files
+ 
+-# Actor configuration dir
+-install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/actor_conf.d/
+-# uncomment to install existing configs
++# uncomment to install existing configs if any exists
+ #install -m 0644 etc/leapp/actor_conf.d/* %%{buildroot}%%{_sysconfdir}/leapp/actor_conf.d
+ 
+ # install CLI commands for the leapp utility on the expected path
+-- 
+2.47.0
+
diff --git a/SOURCES/0041-feat-net-naming-scheme-enable-by-default.patch b/SOURCES/0041-feat-net-naming-scheme-enable-by-default.patch
new file mode 100644
index 0000000..9400d4e
--- /dev/null
+++ b/SOURCES/0041-feat-net-naming-scheme-enable-by-default.patch
@@ -0,0 +1,74 @@
+From 3c3421a0f155fe3bdfaee74c5345e86874684a09 Mon Sep 17 00:00:00 2001
+From: Michal Hecko <mhecko@redhat.com>
+Date: Tue, 19 Nov 2024 10:56:50 +0100
+Subject: [PATCH] feat(net-naming-scheme): enable by default
+
+This commit enables the use of net.naming-scheme for 8>9 upgrades by
+default. The previously used environmental variablel
+LEAPP_USE_NET_NAMING_SCHEMES is replaced with
+LEAPP_DISABLE_NET_NAMING_SCHEMES with inverse semantics.
+---
+ .../libraries/persistentnetnamesconfig.py             | 11 ++++++++---
+ .../libraries/emit_net_naming.py                      |  4 ++--
+ .../tests/test_emit_net_naming_scheme.py              |  4 ++--
+ 3 files changed, 12 insertions(+), 7 deletions(-)
+
+diff --git a/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py b/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
+index b2c7f5ff..c90d13f2 100644
+--- a/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
++++ b/repos/system_upgrade/common/actors/persistentnetnamesconfig/libraries/persistentnetnamesconfig.py
+@@ -39,9 +39,14 @@ def generate_link_file(interface):
+ 
+ @suppress_deprecation(InitrdIncludes)
+ def process():
+-    if get_env('LEAPP_USE_NET_NAMING_SCHEMES', '0') == '1' and version.get_target_major_version() == '9':
+-        # We can use this only for 8>9, for now
+-        api.current_logger().info('Skipping generation of .link files renaming NICs as LEAPP_USE_NET_NAMING_SCHEMES=1')
++    are_net_schemes_enabled = get_env('LEAPP_DISABLE_NET_NAMING_SCHEMES', '0') != '1'
++    is_upgrade_8to9 = version.get_target_major_version() == '9'
++
++    if are_net_schemes_enabled and is_upgrade_8to9:
++        # For 8>9 we are using net.naming_scheme kernel arg by default - do not generate link files
++        msg = ('Skipping generation of .link files renaming NICs as net.naming-scheme '
++               '{LEAPP_DISABLE_NET_NAMING_SCHEMES != 1} is enabled and upgrade is 8>9')
++        api.current_logger().info(msg)
+         return
+ 
+     if get_env('LEAPP_NO_NETWORK_RENAMING', '0') == '1':
+diff --git a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
+index 726bb459..bab62a56 100644
+--- a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
++++ b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/libraries/emit_net_naming.py
+@@ -44,9 +44,9 @@ def is_net_scheme_compatible_with_current_cmdline():
+ 
+ 
+ def emit_msgs_to_use_net_naming_schemes():
+-    is_env_var_set = get_env('LEAPP_USE_NET_NAMING_SCHEMES', '0') == '1'
++    is_feature_enabled = get_env('LEAPP_DISABLE_NET_NAMING_SCHEMES', '0') != '1'
+     is_upgrade_8to9 = version.get_target_major_version() == '9'
+-    is_net_naming_enabled_and_permitted = is_env_var_set and is_upgrade_8to9
++    is_net_naming_enabled_and_permitted = is_feature_enabled and is_upgrade_8to9
+     if not is_net_naming_enabled_and_permitted:
+         return
+ 
+diff --git a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/tests/test_emit_net_naming_scheme.py b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/tests/test_emit_net_naming_scheme.py
+index 7a5eeba5..acf72241 100644
+--- a/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/tests/test_emit_net_naming_scheme.py
++++ b/repos/system_upgrade/el8toel9/actors/emit_net_naming_scheme/tests/test_emit_net_naming_scheme.py
+@@ -51,11 +51,11 @@ def test_is_net_scheme_compatible_with_current_cmdline(monkeypatch, kernel_args,
+     ]
+ )
+ def test_emit_msgs_to_use_net_naming_schemes(monkeypatch, is_net_scheme_enabled, is_current_cmdline_compatible):
+-    envvar_value = '1' if is_net_scheme_enabled else '0'
++    envvar_value = '0' if is_net_scheme_enabled else '1'
+ 
+     mocked_actor = CurrentActorMocked(src_ver='8.10',
+                                       dst_ver='9.5',
+-                                      envars={'LEAPP_USE_NET_NAMING_SCHEMES': envvar_value})
++                                      envars={'LEAPP_DISABLE_NET_NAMING_SCHEMES': envvar_value})
+     monkeypatch.setattr(api, 'current_actor', mocked_actor)
+ 
+     monkeypatch.setattr(api, 'produce', produce_mocked())
+-- 
+2.47.0
+
diff --git a/SPECS/leapp-repository.spec b/SPECS/leapp-repository.spec
index 54658b2..fa4506d 100644
--- a/SPECS/leapp-repository.spec
+++ b/SPECS/leapp-repository.spec
@@ -53,13 +53,13 @@ py2_byte_compile "%1" "%2"}
 Epoch:		1
 Name:           leapp-repository
 Version:        0.21.0
-Release:        2%{?dist}.elevate.4
+Release:        4%{?dist}.elevate.1
 Summary:        Repositories for leapp
 
 License:        ASL 2.0
 URL:            https://oamg.github.io/leapp/
 Source0:        https://github.com/oamg/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
-Source1:        deps-pkgs-10.tar.gz
+Source1:        deps-pkgs-11.tar.gz
 
 # NOTE: Our packages must be noarch. Do no drop this in any way.
 BuildArch:      noarch
@@ -67,7 +67,47 @@ BuildArch:      noarch
 ### PATCHES HERE
 # Patch0001:    filename.patch
 Patch0001:      0001-rhui-alibaba-add-ARM-RHEL8-and-RHEL9-setup-entries-1.patch
-Patch0010:      leapp-repository-0.21.0-elevate.patch
+Patch0002:      0002-don-t-require-all-versions-to-be-defined-for-obsolet.patch
+Patch0003:      0003-Add-RHEL-10.0-prod-certs.patch
+Patch0004:      0004-properly-scope-try-except-when-loading-obsoleted-key.patch
+Patch0005:      0005-Update-references-from-master-branch-to-main.patch
+Patch0006:      0006-ReadOfKernelArgsError-fix-the-error.patch
+Patch0007:      0007-pylint-exclude-rule-too-many-positional-arguments-co.patch
+Patch0008:      0008-pam_userdb-migrate-backend-database.patch
+Patch0009:      0009-Replace-mirror.centos.org-with-vault.centos.org-Cent.patch
+Patch0010:      0010-kernelcmdlineconfig-Add-Report-to-produces-tuple.patch
+Patch0011:      0011-kernelcmdlineconfig-Use-args-from-first-entry-when-m.patch
+Patch0012:      0012-check_microarch-refactor-to-handle-possible-future-r.patch
+Patch0013:      0013-check_microarch-add-rhel10-requirements.patch
+Patch0014:      0014-Skip-checking-files-under-.-directory-hash-dir.patch
+Patch0015:      0015-lib-overlay-cap-the-max-size-of-disk-images.patch
+Patch0016:      0016-Raise-proper-error-when-ModelViolationError-occurs.patch
+Patch0017:      0017-InhibitWhenLuks-simplify-the-logic.patch
+Patch0018:      0018-StorageScanner-Add-parent-device-name-to-lsblk.patch
+Patch0019:      0019-LuksScanner-Add-LUKS-dump-scanner-and-models.patch
+Patch0020:      0020-InhibitWhenLuks-allow-upgrades-for-LUKS2-bound-to-Cl.patch
+Patch0021:      0021-Rename-inhibitwhenluks-actor-to-checkluks.patch
+Patch0022:      0022-Fix-IPU-being-blocked-by-resource-limitations.patch
+Patch0023:      0023-feature-add-possibility-to-use-net.naming-scheme.patch
+Patch0024:      0024-prevent-the-feature-for-being-used-outside-8-9.patch
+Patch0025:      0025-fix-condition-on-when-net-naming-is-emitted.patch
+Patch0026:      0026-scangrubdevpartitionlayout-Skip-warning-msgs.patch
+Patch0027:      0027-Workaround-for-ARM-Upgrades-from-RHEL8-to-RHEL9.5.patch
+Patch0028:      0028-Add-el9toel10-actor-to-handle-symlink-directory-with.patch
+Patch0029:      0029-Expand-on-the-actor-docstring-for-the-el8-el9-rubyge.patch
+Patch0030:      0030-data-update-data-files.patch
+Patch0031:      0031-Packaging-Require-leapp-framework-6.x-update-leapp-d.patch
+Patch0032:      0032-spec-create-etc-leapp-actor_conf.d.patch
+Patch0033:      0033-spec-drop-.gitkeep-files-from-the-RPM.patch
+Patch0034:      0034-cli-load-actor-configuration.patch
+Patch0035:      0035-configs-common-introduce-RHUI-configuration.patch
+Patch0036:      0036-check_rhui-read-RHUI-configuration.patch
+Patch0037:      0037-testutils-add-support-for-configs.patch
+Patch0038:      0038-userspacegen-rhui-remove-repofiles-only-if-now-owned.patch
+Patch0039:      0039-Enable-IPU-for-EL-9.6-and-drop-EL-8.8-9.2.patch
+Patch0040:      0040-spec-drop-the-etc-leapp-actor_confid.d-dir.patch
+Patch0041:      0041-feat-net-naming-scheme-enable-by-default.patch
+Patch0100:      leapp-repository-0.21.0-elevate.patch
 
 
 %description
@@ -123,7 +163,7 @@ Requires:       leapp-repository-dependencies = %{leapp_repo_deps}
 
 # IMPORTANT: this is capability provided by the leapp framework rpm.
 # Check that 'version' instead of the real framework rpm version.
-Requires:       leapp-framework >= 5.0
+Requires:       leapp-framework >= 6.0
 
 # Since we provide sub-commands for the leapp utility, we expect the leapp
 # tool to be installed as well.
@@ -214,6 +254,12 @@ Requires:   dracut
 Requires:   NetworkManager-libnm
 Requires:   python3-gobject-base
 
+%endif
+
+%if 0%{?rhel} && 0%{?rhel} == 9
+############# RHEL 9 dependencies (when the source system is RHEL 9) ##########
+# Required to convert pam_userdb database from BerkeleyDB to GDBM
+Requires:   libdb-utils
 %endif
 ##################################################
 # end requirement
@@ -229,9 +275,49 @@ Requires:   python3-gobject-base
 %setup -q  -n %{name}-%{version} -D -T -a 1
 
 # APPLY PATCHES HERE
-# %%patch0001 -p1
-%patch0001 -p1
-%patch0010 -p1
+# %%patch -P 0001 -p1
+%patch -P 0001 -p1
+%patch -P 0002 -p1
+%patch -P 0003 -p1
+%patch -P 0004 -p1
+%patch -P 0005 -p1
+# %patch -P 0006 -p1 # the patch is a part of Vendors support
+%patch -P 0007 -p1
+%patch -P 0008 -p1
+%patch -P 0009 -p1
+%patch -P 0010 -p1
+%patch -P 0011 -p1
+%patch -P 0012 -p1
+%patch -P 0013 -p1
+%patch -P 0014 -p1
+%patch -P 0015 -p1
+%patch -P 0016 -p1
+%patch -P 0017 -p1
+%patch -P 0018 -p1
+%patch -P 0019 -p1
+%patch -P 0020 -p1
+%patch -P 0021 -p1
+%patch -P 0022 -p1
+%patch -P 0023 -p1
+%patch -P 0024 -p1
+%patch -P 0025 -p1
+%patch -P 0026 -p1
+%patch -P 0027 -p1
+%patch -P 0028 -p1
+%patch -P 0029 -p1
+%patch -P 0030 -p1
+%patch -P 0031 -p1
+%patch -P 0032 -p1
+%patch -P 0033 -p1
+%patch -P 0034 -p1
+%patch -P 0035 -p1
+%patch -P 0036 -p1
+%patch -P 0037 -p1
+%patch -P 0038 -p1
+# %patch -P 0039 -p1 # ELevate provides own upgrade_paths.json and version.py
+%patch -P 0040 -p1
+%patch -P 0041 -p1
+%patch -P 0100 -p1
 
 
 %build
@@ -249,6 +335,9 @@ install -m 0755 -d %{buildroot}%{_sysconfdir}/leapp/files/
 install -m 0644 etc/leapp/transaction/* %{buildroot}%{_sysconfdir}/leapp/transaction
 install -m 0644 etc/leapp/files/* %{buildroot}%{_sysconfdir}/leapp/files
 
+# uncomment to install existing configs if any exists
+#install -m 0644 etc/leapp/actor_conf.d/* %%{buildroot}%%{_sysconfdir}/leapp/actor_conf.d
+
 # install CLI commands for the leapp utility on the expected path
 install -m 0755 -d %{buildroot}%{leapp_python_sitelib}/leapp/cli/
 cp -r commands %{buildroot}%{leapp_python_sitelib}/leapp/cli/
@@ -267,6 +356,9 @@ find %{buildroot}%{repositorydir}/common -name "test.py" -delete
 rm -rf `find %{buildroot}%{repositorydir} -name "tests" -type d`
 find %{buildroot}%{repositorydir} -name "Makefile" -delete
 find %{buildroot} -name "*.py.orig" -delete
+# .gitkeep file is used to have a directory in the repo. but we do not want these
+# files in the resulting RPM
+find %{buildroot} -name .gitkeep -delete
 
 for DIRECTORY in $(find  %{buildroot}%{repositorydir}/  -mindepth 1 -maxdepth 1 -type d);
 do
@@ -289,12 +381,17 @@ done;
 %doc README.md
 %license LICENSE
 %dir %{_sysconfdir}/leapp/transaction
-%exclude %dir %{_sysconfdir}/leapp/files
+%dir %{_sysconfdir}/leapp/files
 %dir %{leapp_datadir}
 %dir %{repositorydir}
 %dir %{custom_repositorydir}
 %dir %{leapp_python_sitelib}/leapp/cli/commands
-%exclude %config %{_sysconfdir}/leapp/files/*
+%config %{_sysconfdir}/leapp/files/*
+%exclude %{_sysconfdir}/leapp/files/device_driver_deprecation_data.json
+%exclude %{_sysconfdir}/leapp/files/pes-events.json
+%exclude %{_sysconfdir}/leapp/files/repomap.json
+# uncomment to package installed configs
+#%%config %%{_sysconfdir}/leapp/actor_conf.d/*
 %{_sysconfdir}/leapp/repos.d/*
 %{_sysconfdir}/leapp/transaction/*
 %{repositorydir}/*
@@ -305,10 +402,38 @@ done;
 # no files here
 
 %changelog
+* Mon Nov 25 2024 Yuriy Kohut <ykohut@almalinux.org> - 0.21.0-4.elevate.1
+- Skip patches:
+ - 0006-ReadOfKernelArgsError-fix-the-error.patch
+ - 0039-Enable-IPU-for-EL-9.6-and-drop-EL-8.8-9.2.patch
+- Exclude data files (from /etc/leapp/files) which are part of leapp-data-*: device_driver_deprecation_data.json, pes-events.json, repomap.json
+
+* Tue Nov 19 2024 Matej Matuska <mmatuska@redhat.com> - 0.21.0-4
+- Use net.naming-scheme by default
+- Resolves: RHEL-23473
+
 * Tue Nov 19 2024 Yuriy Kohut <ykohut@almalinux.org> - 0.21.0-2.elevate.4
 - Update ELevate patch:
  - extend update path for 8 and 8.10 with 9.5 target
 
+* Mon Nov 18 2024 Petr Stodulka <pstodulk@redhat.com> - 0.21.0-3
+- Introduce upgrade path 8.10 -> 9.6
+- Require leapp-framework 6.0+
+- Update leapp-deps package to satisfy leapp-framework-dependencies 6
+- Add possibility to use net.naming-scheme during the upgrade
+- Cap max size of the sparse files to 1TiB for storage with large amount of free space
+- Enable upgrade for systems with LUKS bound to Clevis with TPM 2.0 token
+- Adjust resource limitations for leapp to be able to perform the upgrade
+- Fix problems with the bootloader when upgrading to RHEL 9.6 on ARM
+- Fix the report when handling broken parsing of kernel cmdline
+- Generate proper error message instead of ModelViolationError when parsing invalid repository definition
+- Handle default kernel cmdline when multiple boot entries for the default kernel are defined
+- Introduce a possibility to configure leapp actors covering RHUI on clouds
+- Skip checking of (PKI) `directory-hash` dir to speedup the upgrade process and clean logs
+- Update leapp upgrade data files
+- Resolves: RHEL-67621, RHEL-57064, RHEL-56251, RHEL-50686, RHEL-41193
+- Resolves: RHEL-34570, RHEL-26459, RHEL-23473, RHEL-16881, RHEL-3294
+
 * Mon Oct 07 2024 Yuriy Kohut <ykohut@almalinux.org> - 0.21.0-2.elevate.3
 - Update ELevate patch:
  - remove '9.5' target from upgrade path until it is not released
@@ -317,7 +442,7 @@ done;
 * Thu Aug 29 2024 Yuriy Kohut <ykohut@almalinux.org> - 0.21.0-2.elevate.2
 - Update ELevate patch:
  - make sure 'efi_finalization_fix' step runs before 'kernelcmdlineconfig'
- - fix no attribute 'Hints' error for 'leapp.reporting' module 
+ - fix no attribute 'Hints' error for 'leapp.reporting' module
 
 * Thu Aug 22 2024 Yuriy Kohut <ykohut@almalinux.org> - 0.21.0-2.elevate.1
 - ELevate vendors support
@@ -1077,4 +1202,3 @@ done;
 * Wed Nov 07 2018 Petr Stodulka <pstodulk@redhat.com> - 0.3-1
 - Initial RPM
   Resolves: #1636481
-