diff --git a/BUILD.gn b/BUILD.gn
index 096ef65..433aba5 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -624,10 +624,6 @@
     }
   }
 
-  if (ozone_platform_x11 && !is_castos && target_cpu != "arm") {
-    deps += [ "//gpu/tools/compositor_model_bench" ]
-  }
-
   if (is_mac) {
     deps += [
       "//third_party/breakpad:crash_inspector",
diff --git a/DEPS b/DEPS
index 8bc98c2b..c347188 100644
--- a/DEPS
+++ b/DEPS
@@ -299,7 +299,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'b942470a8611ff0b26010b266ff6ce4ea9e19bb8',
+  'v8_revision': '7157324f4c8e786b6b3439fa0afe3ebe53bf6ffe',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
@@ -374,7 +374,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': '1e884f69b3a175e2d76d223c74a0c4b42b09db85',
+  'devtools_frontend_revision': 'b4854279276a5049e9205c699f32f9920897029c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -782,7 +782,7 @@
 
   'src/clank': {
     'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' +
-    'ab420e476148b08c0d8785eefacc960609a0357f',
+    '56ecc6364a080a94ee7e886d58adfbca8ecc765b',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -971,7 +971,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'yZ2CHmAcfXf-46SFHT_5yGSy3VL6LXJTcVwFfceH6vIC',
+          'version': 'ahejXuXdnledP6wfeAw85DLd_8GGUiV4NFHYL5sgrNIC',
       },
     ],
     'condition': 'checkout_android',
@@ -1220,7 +1220,7 @@
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
 
   'src/third_party/devtools-frontend-internal': {
-      'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '779f7e8556813ced07419897222e8a6c519b90a7',
+      'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '7f08b66a8bcc37385c453b320204f198e06b5228',
     'condition': 'checkout_src_internal',
   },
 
@@ -1635,7 +1635,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '5f99acc936816759400c8ce5e4ee1cee2fc0633e',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '1af6f10d7c0429403e0f7ad4429a0023bb70c763',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1675,7 +1675,7 @@
       'packages': [
           {
               'package': 'chromium/third_party/r8',
-              'version': 'k8_Q0w26NqOFq3vAk2xCsVEvj7qmFQ_EsSszyYHOnFQC',
+              'version': 'WqQE6kGnQ571Jtmn-m9LD7Qnd7nOi46mty5n-fZznKQC',
           },
       ],
       'condition': 'checkout_android',
@@ -1820,7 +1820,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '09447faf1a22821f35ca4a3fc9c06e3bf1125756',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '840ea0f703825e04b0d32c20affd5e42514abdc7',
+    Var('webrtc_git') + '/src.git' + '@' + '569af3e80fcda6241f0e6d801c89f9ebbee310b3',
 
   # Wuffs' canonical repository is at github.com/google/wuffs, but we use
   # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file.
@@ -1890,7 +1890,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@7ae33fe12319497142dcc29439a657e5d997a865',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@50981db1f6c18360fa55dddf23f5b941c9be679e',
     'condition': 'checkout_src_internal',
   },
 
@@ -1920,7 +1920,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': 'q2trfhQR09csNfDawGNlfchsNXSvH9FexKVd92Ft_FUC',
+        'version': 'LDpxXKlrP6QdHktwvsBvL7zONbmkm-W6O6MgeWFPGrQC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -1931,7 +1931,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': 'ovlbDK4mGCF-zpo2FAOvHwT0PmQRlMQJiK-fJM58T78C',
+        'version': 'kupLLmB8V_UtZcVM4pMJmNmzN1KqngrfHAlB-wxv8rkC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb
index 7d38113..1feacc85 100644
--- a/ash/strings/ash_strings_bg.xtb
+++ b/ash/strings/ash_strings_bg.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">НОВ ОПИТ</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 известие}other{# известия}}</translation>
 <translation id="7724603315864178912">Изрязване</translation>
+<translation id="7742327441377685481">Няма известия</translation>
 <translation id="7745560842763881396">Показване на приложенията в лавицата</translation>
 <translation id="7749443890790263709">Достигнат е максималният брой работни кътове.</translation>
 <translation id="776344839111254542">Кликнете, за да видите подробности за актуализацията</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb
index 304107ba..c8962ca 100644
--- a/ash/strings/ash_strings_ca.xtb
+++ b/ash/strings/ash_strings_ca.xtb
@@ -1203,6 +1203,7 @@
 <translation id="7720410380936703141">TORNA-HO A PROVAR</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notificació}other{# notificacions}}</translation>
 <translation id="7724603315864178912">Retalla</translation>
+<translation id="7742327441377685481">Cap notificació</translation>
 <translation id="7745560842763881396">Mostra les aplicacions del prestatge</translation>
 <translation id="7749443890790263709">S'ha assolit el nombre màxim d'escriptoris.</translation>
 <translation id="776344839111254542">Fes clic per veure els detalls de l'actualització</translation>
diff --git a/ash/strings/ash_strings_cy.xtb b/ash/strings/ash_strings_cy.xtb
index 7a262f2..9cd7650 100644
--- a/ash/strings/ash_strings_cy.xtb
+++ b/ash/strings/ash_strings_cy.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">RHOI CYNNIG ARALL ARNI</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 hysbysiad}zero{# hysbysiad}two{# hysbysiad}few{# hysbysiad}many{# hysbysiad}other{# hysbysiad}}</translation>
 <translation id="7724603315864178912">Torri</translation>
+<translation id="7742327441377685481">Dim hysbysiadau</translation>
 <translation id="7745560842763881396">Dangos apiau ar y silff</translation>
 <translation id="7749443890790263709">Wedi cyrraedd y nifer uchaf o ddesgiau.</translation>
 <translation id="776344839111254542">Cliciwch i weld manylion y diweddariad</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
index 5e77514..0ffda7e 100644
--- a/ash/strings/ash_strings_de.xtb
+++ b/ash/strings/ash_strings_de.xtb
@@ -1205,6 +1205,7 @@
 <translation id="7720410380936703141">WIEDERHOLEN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 Benachrichtigung}other{# Benachrichtigungen}}</translation>
 <translation id="7724603315864178912">Ausschneiden</translation>
+<translation id="7742327441377685481">Keine Benachrichtigungen</translation>
 <translation id="7745560842763881396">Apps in Ablage anzeigen</translation>
 <translation id="7749443890790263709">Maximale Anzahl von Arbeitsbereichen erreicht.</translation>
 <translation id="776344839111254542">Zum Aufrufen von Aktualisierungsdetails klicken</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb
index 5755cfb..2e4dc4d 100644
--- a/ash/strings/ash_strings_es.xtb
+++ b/ash/strings/ash_strings_es.xtb
@@ -1021,6 +1021,7 @@
 <translation id="6670153871843998651">Escritorio 3</translation>
 <translation id="6671495933530132209">Copiar imagen</translation>
 <translation id="6671661918848783005">No se puede desbloquear tu Chromebook</translation>
+<translation id="6683022854667115063">Auriculares</translation>
 <translation id="6696025732084565524">Tu teclado independiente necesita una actualización crítica</translation>
 <translation id="6700713906295497288">Botón de menú de IME</translation>
 <translation id="6707693040195709527">El dispositivo ya debería haber cambiado a la versión anterior</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb
index 6ef7c91..fede2f0 100644
--- a/ash/strings/ash_strings_fi.xtb
+++ b/ash/strings/ash_strings_fi.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">YRITÄ UUDELLEEN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 ilmoitus}other{# ilmoitusta}}</translation>
 <translation id="7724603315864178912">Leikkaa</translation>
+<translation id="7742327441377685481">Ei ilmoituksia</translation>
 <translation id="7745560842763881396">Näytä sovellukset hyllyssä</translation>
 <translation id="7749443890790263709">Työpöytiä on enimmäismäärä.</translation>
 <translation id="776344839111254542">Klikkaa nähdäksesi päivityksen tiedot</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 27717d5..05012554 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Off sa isa app}one{Off sa # app}other{Off sa # na app}}</translation>
 <translation id="4066027111132117168">Naka-on, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Katamtaman ang signal</translation>
+<translation id="4086921558679520050">I-on ang pisikal na switch ng mikropono sa iyong device</translation>
 <translation id="4112140312785995938">Mag-seek Pabalik</translation>
 <translation id="4114315158543974537">I-on ang Phone Hub</translation>
 <translation id="4115378294792113321">Magenta</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, lakas ng signal <ph name="SIGNAL_STRENGTH" /> porsyento</translation>
 <translation id="4378551569595875038">Kumokonekta...</translation>
 <translation id="4379531060876907730">Ito ang iyong mga stylus tool</translation>
+<translation id="4381031910344220229">Pinapayagan nito ang access sa mikropono para sa <ph name="APP_NAME" /> at lahat ng app at website na may pahintulot sa mikropono</translation>
 <translation id="4389184120735010762">Napindot mo ang keyboard shortcut para sa naka-dock na magnifier. Gusto mo ba itong i-on?</translation>
 <translation id="439598569299422042">Naka-pause, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Hindi ma-save ang screencast</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913">Ang <ph name="DISPLAY_NAME" /> ay isang session na pinapamahalaan ng <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">Nakonekta ang <ph name="DEVICE_NAME" /></translation>
 <translation id="6351032674660237738">MGA IMINUMUNGKAHING APP</translation>
+<translation id="6352082849089527770">Mga hindi kilalang network</translation>
 <translation id="6359587239691116345">Makuha ang mga pinakabagong feature at pagpapahusay sa seguridad. Kung tatanggihan mo ang update na ito, posibleng hindi na gumana nang maayos ang iyong device, at posible kang makaranas ng mga isyu sa seguridad at performance.</translation>
 <translation id="6376931439017688372">Naka-on ang Bluetooth</translation>
 <translation id="6381109794406942707">Para i-unlock ang device, ilagay ang iyong PIN.</translation>
@@ -1133,6 +1136,7 @@
 <translation id="7360036564632145207">Kapag binago mo ang iyong setting ng proteksyon sa pag-access ng data para sa mga peripheral, mao-optimize ang performance</translation>
 <translation id="736045644501761622">Itakda ang wallpaper at style</translation>
 <translation id="7371404428569700291">I-record ang window</translation>
+<translation id="737315737514430195">Pinapayagan nito ang access sa mikropono para sa lahat ng app at website na may pahintulot sa mikropono</translation>
 <translation id="7377169924702866686">Naka-on ang Caps Lock.</translation>
 <translation id="7377481913241237033">Kumonekta gamit ang code</translation>
 <translation id="7378203170292176219">Mag-drag para pumili ng bahaging ire-record</translation>
@@ -1201,6 +1205,7 @@
 <translation id="7671610481353807627">Pinagbukod-bukod ang mga app ayon sa kulay</translation>
 <translation id="7672095158465655885">Nakakonekta sa <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Nakatakda ang input ng camera sa <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Pinapayagan nito ang access sa mikropono para sa <ph name="APP1_NAME" />, <ph name="APP2_NAME" />, at lahat ng app at website na may pahintulot sa mikropono</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Magdagdag ng bagong cellular network</translation>
 <translation id="7720400844887872976">Naka-on hanggang <ph name="TIME" /></translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb
index e214b47..f6092587 100644
--- a/ash/strings/ash_strings_fr.xtb
+++ b/ash/strings/ash_strings_fr.xtb
@@ -1206,6 +1206,7 @@
 <translation id="7720410380936703141">RÉESSAYER</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notification}one{# notification}other{# notifications}}</translation>
 <translation id="7724603315864178912">Couper</translation>
+<translation id="7742327441377685481">Aucune notification</translation>
 <translation id="7745560842763881396">Afficher les applis sur l'étagère</translation>
 <translation id="7749443890790263709">Vous avez atteint le nombre maximal de bureaux.</translation>
 <translation id="776344839111254542">Cliquer pour afficher les informations relatives à la mise à jour</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index a7b1f71..faf82ff9 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">फिर से कोशिश करें</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 सूचना}one{# सूचना}other{# सूचनाएं}}</translation>
 <translation id="7724603315864178912">काटें</translation>
+<translation id="7742327441377685481">कोई सूचना नहीं है</translation>
 <translation id="7745560842763881396">शेल्फ़ में मौजूद ऐप्लिकेशन दिखाएं</translation>
 <translation id="7749443890790263709">ज़्यादा से ज़्यादा इतने ही डेस्क जोड़े जा सकते हैं.</translation>
 <translation id="776344839111254542">अपडेट के विवरण देखने के लिए क्लिक करें</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb
index 39696c9..87b58bbd 100644
--- a/ash/strings/ash_strings_is.xtb
+++ b/ash/strings/ash_strings_is.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">REYNDU AFTUR</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{Ein tilkynning}one{# tilkynning}other{# tilkynningar}}</translation>
 <translation id="7724603315864178912">Klippa</translation>
+<translation id="7742327441377685481">Engar tilkynningar</translation>
 <translation id="7745560842763881396">Sýna forrit á hillu</translation>
 <translation id="7749443890790263709">Hámarksfjölda skjáborða náð.</translation>
 <translation id="776344839111254542">Smelltu til að skoða upplýsingar um uppfærsluna</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb
index 6bde829..074023e 100644
--- a/ash/strings/ash_strings_it.xtb
+++ b/ash/strings/ash_strings_it.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">RIPROVA</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 notifica}other{# notifiche}}</translation>
 <translation id="7724603315864178912">Taglia</translation>
+<translation id="7742327441377685481">Nessuna notifica</translation>
 <translation id="7745560842763881396">Mostra app nella barra delle app</translation>
 <translation id="7749443890790263709">Numero massimo di scrivanie raggiunto.</translation>
 <translation id="776344839111254542">Fai clic per visualizzare i dettagli dell'aggiornamento</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index 90409ec9..47f1732a 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -1208,6 +1208,7 @@
 <translation id="7720410380936703141">ניסיון חוזר</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{הודעה אחת}two{2 הודעות}many{# הודעות}other{# הודעות}}</translation>
 <translation id="7724603315864178912">חיתוך</translation>
+<translation id="7742327441377685481">אין התראות</translation>
 <translation id="7745560842763881396">הצגת האפליקציות במדף</translation>
 <translation id="7749443890790263709">הגעת למספר המקסימלי של שולחנות עבודה.</translation>
 <translation id="776344839111254542">יש ללחוץ כדי להציג את פרטי העדכון</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb
index 606bfd8b..6c8b03d 100644
--- a/ash/strings/ash_strings_ja.xtb
+++ b/ash/strings/ash_strings_ja.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">再試行</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 件の通知}other{# 件の通知}}</translation>
 <translation id="7724603315864178912">切り取り</translation>
+<translation id="7742327441377685481">通知なし</translation>
 <translation id="7745560842763881396">シェルフのアプリを表示</translation>
 <translation id="7749443890790263709">デスクの数が上限に達しました。</translation>
 <translation id="776344839111254542">クリックしてアップデートの詳細を表示する</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb
index 32d1193..4921104d 100644
--- a/ash/strings/ash_strings_ka.xtb
+++ b/ash/strings/ash_strings_ka.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{გამორთულია აპისთვის}other{გამორთულია # აპისთვის}}</translation>
 <translation id="4066027111132117168">ჩართული, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">სიგნალი საშუალოა</translation>
+<translation id="4086921558679520050">ჩართეთ მიკროფონის ფიზიკური ჩამრთველი თქვენს მოწყობილობაზე</translation>
 <translation id="4112140312785995938">უკან გადახვევა</translation>
 <translation id="4114315158543974537">Phone Hub-ის ჩართვა</translation>
 <translation id="4115378294792113321">მაგენტა</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, სიგნალის სიძლიერეა <ph name="SIGNAL_STRENGTH" /> პროცენტი</translation>
 <translation id="4378551569595875038">დაკავშირება…</translation>
 <translation id="4379531060876907730">ეს არის თქვენი სტილუსის ხელსაწყოები</translation>
+<translation id="4381031910344220229">მიკროფონზე წვდომა მიენიჭება <ph name="APP_NAME" />-ს, ასევე, ყველა აპსა და ვებსაიტს, რომელსაც მიკროფონის გამოყენების ნებართვა აქვს</translation>
 <translation id="4389184120735010762">თქვენ დააჭირეთ ჩამაგრებული ლუპის კლავიატურის მალსახმობს. გსურთ მისი ჩართვა?</translation>
 <translation id="439598569299422042">დაპაუზებულია, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">სკრინკასტის შენახვა ვერ მოხერხდა</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> არის მართული სესია, რომელსაც მართავს <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> დაკავშირებულია</translation>
 <translation id="6351032674660237738">აპების შემოთავაზებები</translation>
+<translation id="6352082849089527770">უცნობი ქსელები</translation>
 <translation id="6359587239691116345">ისარგებლეთ უახლესი ფუნქციებითა და უსაფრთხოების გაუმჯობესებებით. თუ ამ განახლებას უარყოფთ, თქვენმა მოწყობილობამ, შესაძლოა, სათანადოდ აღარ იმუშაოს, უსაფრთხოებასა და წარმადობასთან დაკავშირებით კი გარკვეული პრობლემები შეგექმნათ.</translation>
 <translation id="6376931439017688372">Bluetooth ჩართულია</translation>
 <translation id="6381109794406942707">მოწყობილობის განსაბლოკად შეიყვანეთ PIN-კოდი.</translation>
@@ -1133,6 +1136,7 @@
 <translation id="7360036564632145207">პერიფერიული მოწყობილობებისთვის მონაცემებზე წვდომის დაცვის პარამეტრების შეცვლით შესაძლებელია წარმადობის ოპტიმიზაცია</translation>
 <translation id="736045644501761622">ფონის და სტილის დაყენება</translation>
 <translation id="7371404428569700291">ფანჯრის ჩაწერა</translation>
+<translation id="737315737514430195">მიკროფონზე წვდომა მიენიჭება ყველა აპსა და ვებსაიტს, რომელსაც მიკროფონის გამოყენების ნებართვა აქვს</translation>
 <translation id="7377169924702866686">Caps Lock ჩართულია.</translation>
 <translation id="7377481913241237033">კოდით დაკავშირება</translation>
 <translation id="7378203170292176219">ჩავლებით გადაიტანეთ, ჩასაწერი არე რომ აირჩიოთ</translation>
@@ -1201,6 +1205,7 @@
 <translation id="7671610481353807627">აპები დალაგებულია ფერის მიხედვით</translation>
 <translation id="7672095158465655885">დაკავშირებულია <ph name="NAME" />-თან, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">კამერის შემავალ სიგნალად დაყენებულია <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">მიკროფონზე წვდომა მიენიჭება <ph name="APP1_NAME" />-ს, <ph name="APP2_NAME" />-ს, ასევე, ყველა აპსა და ვებსაიტს, რომელსაც მიკროფონის გამოყენების ნებართვა აქვს</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">ახალი ფიჭური ქსელის დამატება</translation>
 <translation id="7720400844887872976">ჩართულია <ph name="TIME" />-მდე</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
index 2702c10..1d0e457 100644
--- a/ash/strings/ash_strings_kk.xtb
+++ b/ash/strings/ash_strings_kk.xtb
@@ -1206,6 +1206,7 @@
 <translation id="7720410380936703141">ҚАЙТАЛАП КӨРУ</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 хабарландыру}other{# хабарландыру}}</translation>
 <translation id="7724603315864178912">Қиып алу</translation>
+<translation id="7742327441377685481">Хабарландырулар жоқ</translation>
 <translation id="7745560842763881396">Сөредегі қолданбаларды көрсету</translation>
 <translation id="7749443890790263709">Жұмыс үстелдерінің максималды санына жетті.</translation>
 <translation id="776344839111254542">Жаңарту мәліметтерін қарау үшін басыңыз</translation>
diff --git a/ash/strings/ash_strings_km.xtb b/ash/strings/ash_strings_km.xtb
index b94b1ce0..e0f1795c 100644
--- a/ash/strings/ash_strings_km.xtb
+++ b/ash/strings/ash_strings_km.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{បិទសម្រាប់កម្មវិធីមួយ}other{បិទសម្រាប់កម្មវិធីមួយ #}}</translation>
 <translation id="4066027111132117168">បើក <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">សេវាមធ្យម</translation>
+<translation id="4086921558679520050">បើក​ប៊ូតុងបិទបើក​មីក្រូហ្វូន​រូបវន្ត​នៅលើ​ឧបករណ៍​របស់អ្នក</translation>
 <translation id="4112140312785995938">សា​ថយក្រោយ</translation>
 <translation id="4114315158543974537">បើក Phone Hub</translation>
 <translation id="4115378294792113321">ស្វាយខ្ចី</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, កម្លាំងរលកសញ្ញា <ph name="SIGNAL_STRENGTH" /> ភាគរយ</translation>
 <translation id="4378551569595875038">កំពុងភ្ជាប់...</translation>
 <translation id="4379531060876907730">ទាំងនេះគឺជាប៊ិចរបស់អ្នក</translation>
+<translation id="4381031910344220229">ការធ្វើបែបនេះផ្ដល់សិទ្ធិចូលប្រើប្រាស់​មីក្រូហ្វូន​ដល់ <ph name="APP_NAME" /> រួមជាមួយកម្មវិធី និង​គេហទំព័រ​ទាំងអស់​ដែលមាន​ការអនុញ្ញាត​ឱ្យប្រើមីក្រូហ្វូន</translation>
 <translation id="4389184120735010762">អ្នក​បានចុច​ផ្លូវកាត់ក្ដារចុច​សម្រាប់​កែវពង្រីក​ដាក់​ខាង​លើ​បំផុត។ តើអ្នក​ចង់បើក​វាដែរទេ?</translation>
 <translation id="439598569299422042">បានផ្អាក <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">មិនអាចរក្សាទុកការថតអេក្រង់បានទេ</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> គឺជា​រយៈពេល​ចូលប្រើ​ដែល​ស្ថិតក្រោមការគ្រប់គ្រងរបស់ <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467">បានភ្ជាប់ <ph name="DEVICE_NAME" /></translation>
 <translation id="6351032674660237738">ការណែនាំកម្មវិធី</translation>
+<translation id="6352082849089527770">បណ្ដាញដែលមិនស្គាល់</translation>
 <translation id="6359587239691116345">ទទួលបាន​មុខងារ និងការកែលម្អផ្នែកសុវត្ថិភាពចុងក្រោយបំផុត។ ប្រសិនបើ​អ្នក​បដិសេធ​ការដំឡើងកំណែ​នេះ ឧបករណ៍​របស់អ្នក​ប្រហែលជា​មិន​ដំណើរការ​ត្រឹមត្រូវ​ទៀតទេ ហើយ​អ្នកប្រហែល​ជាជួប​បញ្ហា​ពាក់ព័ន្ធ​នឹងសុវត្ថិភាព និងប្រតិបត្តិការ។</translation>
 <translation id="6376931439017688372">ប៊្លូធូស​ត្រូវបាន​បើក</translation>
 <translation id="6381109794406942707">ដើម្បីដោះសោឧបករណ៍នេះ សូមបញ្ចូលកូដ PIN របស់អ្នក។</translation>
@@ -1133,6 +1136,7 @@
 <translation id="7360036564632145207">ការផ្លាស់ប្ដូរការការពារការចូលប្រើទិន្នន័យរបស់អ្នកសម្រាប់ការកំណត់ឧបករណ៍សម្រាប់​ភ្ជាប់​ជាមួយ​កុំព្យូទ័រអាចជំរុញឱ្យប្រតិបត្តិការមានប្រសិទ្ធភាពបំផុត</translation>
 <translation id="736045644501761622">កំណត់​ផ្ទាំងរូបភាព និង​រចនាប័ទ្ម</translation>
 <translation id="7371404428569700291">ថតវីដេអូ​វិនដូ</translation>
+<translation id="737315737514430195">ការធ្វើបែបនេះផ្ដល់សិទ្ធិចូលប្រើប្រាស់​មីក្រូហ្វូន​ដល់គ្រប់កម្មវិធី និង​គេហទំព័រ​ដែលមាន​ការអនុញ្ញាត​ឱ្យប្រើមីក្រូហ្វូន</translation>
 <translation id="7377169924702866686">Caps Lock ត្រូវបានបើក។</translation>
 <translation id="7377481913241237033">ភ្ជាប់ដោយប្រើកូដ</translation>
 <translation id="7378203170292176219">អូសដើម្បីជ្រើសរើសផ្នែកណាមួយ ដើម្បីថតវីដេអូ</translation>
@@ -1201,6 +1205,7 @@
 <translation id="7671610481353807627">កម្មវិធីត្រូវបាន​តម្រៀបតាមពណ៌</translation>
 <translation id="7672095158465655885">បានភ្ជាប់ជាមួយ <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">បានកំណត់​ការបញ្ចូលពី​កាមេរ៉ាទៅ <ph name="CAMERA_NAME" />។</translation>
+<translation id="7689817529363080918">ការធ្វើបែបនេះផ្ដល់សិទ្ធិចូលប្រើប្រាស់​មីក្រូហ្វូន​ដល់ <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> រួមជាមួយ​កម្មវិធី​និង​គេហទំព័រ​ទាំងអស់ដែលមាន​ការអនុញ្ញាត​ឱ្យប្រើមីក្រូហ្វូន</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">បញ្ចូលបណ្ដាញ​ចល័តថ្មី</translation>
 <translation id="7720400844887872976">បើករហូតដល់ម៉ោង <ph name="TIME" /></translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb
index 87d55adb..951ac1c8 100644
--- a/ash/strings/ash_strings_ko.xtb
+++ b/ash/strings/ash_strings_ko.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">다시 시도</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{알림 1개}other{알림 #개}}</translation>
 <translation id="7724603315864178912">잘라내기</translation>
+<translation id="7742327441377685481">알림 없음</translation>
 <translation id="7745560842763881396">실행기에 앱 표시</translation>
 <translation id="7749443890790263709">최대 데스크 개수에 도달했습니다.</translation>
 <translation id="776344839111254542">업데이트 세부정보를 보려면 클릭하세요.</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb
index 5937baa..24010fa 100644
--- a/ash/strings/ash_strings_lt.xtb
+++ b/ash/strings/ash_strings_lt.xtb
@@ -1206,6 +1206,7 @@
 <translation id="7720410380936703141">BANDYKITE DAR KARTĄ</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 pranešimas}one{# pranešimas}few{# pranešimai}many{# pranešimo}other{# pranešimų}}</translation>
 <translation id="7724603315864178912">Iškirpti</translation>
+<translation id="7742327441377685481">Nėra pranešimų</translation>
 <translation id="7745560842763881396">Rodyti programas lentynoje</translation>
 <translation id="7749443890790263709">Pasiektas didžiausias pultų skaičius.</translation>
 <translation id="776344839111254542">Spustelėkite ir peržiūrėkite išsamią atnaujinimo informaciją</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb
index 71a48c8..fa30611 100644
--- a/ash/strings/ash_strings_mr.xtb
+++ b/ash/strings/ash_strings_mr.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">पुन्हा प्रयत्न करा</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{एक सूचना}other{# सूचना}}</translation>
 <translation id="7724603315864178912">कट करा</translation>
+<translation id="7742327441377685481">सूचना नाहीत</translation>
 <translation id="7745560842763881396">शेल्फमधील अ‍ॅप्स दाखवा</translation>
 <translation id="7749443890790263709">डेस्कची कमाल मर्यादा गाठली आहे.</translation>
 <translation id="776344839111254542">अपडेट तपशील पाहण्यासाठी क्लिक करा</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
index 96d8cba..b19f1ee9 100644
--- a/ash/strings/ash_strings_nl.xtb
+++ b/ash/strings/ash_strings_nl.xtb
@@ -1204,6 +1204,7 @@
 <translation id="7720410380936703141">OPNIEUW PROBEREN</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{Eén melding}other{# meldingen}}</translation>
 <translation id="7724603315864178912">Knip</translation>
+<translation id="7742327441377685481">Geen meldingen</translation>
 <translation id="7745560842763881396">Apps in plank bekijken</translation>
 <translation id="7749443890790263709">Maximum aantal bureaus bereikt.</translation>
 <translation id="776344839111254542">Klik om updategegevens te bekijken</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb
index e7358deb..7af8232b 100644
--- a/ash/strings/ash_strings_pl.xtb
+++ b/ash/strings/ash_strings_pl.xtb
@@ -1206,6 +1206,7 @@
 <translation id="7720410380936703141">SPRÓBUJ PONOWNIE</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 powiadomienie}few{# powiadomienia}many{# powiadomień}other{# powiadomienia}}</translation>
 <translation id="7724603315864178912">Wytnij</translation>
+<translation id="7742327441377685481">Brak powiadomień</translation>
 <translation id="7745560842763881396">Pokaż aplikacje na półce</translation>
 <translation id="7749443890790263709">Osiągnięto maksymalną liczbę biurek.</translation>
 <translation id="776344839111254542">Kliknij, by wyświetlić szczegóły aktualizacji</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb
index 6d6335d..4f5c231 100644
--- a/ash/strings/ash_strings_ro.xtb
+++ b/ash/strings/ash_strings_ro.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Dezac., o apl.}few{Dezac., # apl.}other{Dezac., # apl.}}</translation>
 <translation id="4066027111132117168">Activată, <ph name="REMAINING_TIME" /></translation>
 <translation id="4072264167173457037">Semnal mediu</translation>
+<translation id="4086921558679520050">Activează comutatorul pentru microfonul fizic al dispozitivului</translation>
 <translation id="4112140312785995938">Derulează înapoi</translation>
 <translation id="4114315158543974537">Activează Phone Hub</translation>
 <translation id="4115378294792113321">Magenta</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" /> %</translation>
 <translation id="4378551569595875038">Se conectează</translation>
 <translation id="4379531060876907730">Acestea sunt instrumentele pentru creion</translation>
+<translation id="4381031910344220229">Aceasta permite accesul la microfon pentru <ph name="APP_NAME" /> și pentru toate aplicațiile și site-urile care au permisiune de microfon</translation>
 <translation id="4389184120735010762">Ai accesat comanda rapidă de la tastatură pentru lupa andocată. Vrei să o activezi?</translation>
 <translation id="439598569299422042">Întreruptă, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Nu se poate salva înregistrarea de pe ecran</translation>
@@ -959,6 +961,7 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> este o sesiune gestionată de <ph name="MANAGER" /></translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> s-a conectat</translation>
 <translation id="6351032674660237738">SUGESTII DE APLICAȚII</translation>
+<translation id="6352082849089527770">Rețele necunoscute</translation>
 <translation id="6359587239691116345">Obține cele mai noi funcții și îmbunătățiri ale securității. Dacă refuzi această actualizare, este posibil ca dispozitivul să nu mai funcționeze corespunzător și să întâmpini probleme de securitate și de performanță.</translation>
 <translation id="6376931439017688372">Bluetooth este activat</translation>
 <translation id="6381109794406942707">Pentru a debloca dispozitivul, introdu codul PIN.</translation>
@@ -1132,6 +1135,7 @@
 <translation id="7360036564632145207">Modificarea setării pentru protecția accesului la date pentru dispozitive periferice poate optimiza performanța</translation>
 <translation id="736045644501761622">Setează imaginea de fundal și stilul</translation>
 <translation id="7371404428569700291">Înregistrează fereastra</translation>
+<translation id="737315737514430195">Aceasta permite accesul la microfon pentru toate aplicațiile și site-urile care au permisiune de microfon</translation>
 <translation id="7377169924702866686">Tasta Caps Lock este activată.</translation>
 <translation id="7377481913241237033">Conectează-te cu un cod</translation>
 <translation id="7378203170292176219">Trage pentru a selecta o zonă de înregistrat</translation>
@@ -1200,6 +1204,7 @@
 <translation id="7671610481353807627">Aplicațiile se sortează după culoare</translation>
 <translation id="7672095158465655885">Conectat la <ph name="NAME" />, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067">Introducerea cu ajutorul camerei foto este setată la <ph name="CAMERA_NAME" />.</translation>
+<translation id="7689817529363080918">Aceasta permite accesul la microfon pentru <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> și pentru toate aplicațiile și site-urile care au permisiune de microfon</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Adaugă o nouă rețea de date mobile</translation>
 <translation id="7720400844887872976">Activată până la <ph name="TIME" /></translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index 36fd0d1..cbdb3ad8 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -1207,6 +1207,7 @@
 <translation id="7720410380936703141">POSKUSI ZNOVA</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 obvestilo}one{# obvestilo}two{# obvestili}few{# obvestila}other{# obvestil}}</translation>
 <translation id="7724603315864178912">Izreži</translation>
+<translation id="7742327441377685481">Ni obvestil</translation>
 <translation id="7745560842763881396">Prikaz aplikacij na polici</translation>
 <translation id="7749443890790263709">Doseženo je največje dovoljeno število namizij.</translation>
 <translation id="776344839111254542">Kliknite, če si želite ogledati podrobnosti o posodobitvi</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb
index 4f34e9dd..e623b60 100644
--- a/ash/strings/ash_strings_sq.xtb
+++ b/ash/strings/ash_strings_sq.xtb
@@ -118,7 +118,7 @@
 <translation id="1536604384701784949">Për të përdorur <ph name="USER_EMAIL_ADDRESS" /> duhet të dalësh nga të gjitha llogaritë përpara. Për të dalë, zgjidh "Anulo" për t'u kthyer mbrapa. Pastaj zgjidh kohën për të hapur zonën e statusit dhe zgjidh "Dil". Pastaj identifikohu përsëri në <ph name="USER_EMAIL_ADDRESS_2" />.</translation>
 <translation id="15373452373711364">Kursor i madh</translation>
 <translation id="1546492247443594934">Tavolina e punës 2</translation>
-<translation id="1546930421365146760">Kërkoji administratorit ta konfigurojë këtë pajisje te paneli komandues i administratorit të Google</translation>
+<translation id="1546930421365146760">Kërkoji administratorit ta konfigurojë këtë pajisje te "Paneli i administratorit të Google"</translation>
 <translation id="1550523713251050646">Kliko për opsione të tjera</translation>
 <translation id="1555130319947370107">E kaltër</translation>
 <translation id="1589090746204042747">Qasu te të gjitha aktivitetet e tua në këtë sesion</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb
index bbb1937..1b1ae4f 100644
--- a/ash/strings/ash_strings_th.xtb
+++ b/ash/strings/ash_strings_th.xtb
@@ -728,6 +728,7 @@
 <translation id="4987738733603015246">เดสก์ที่ 16</translation>
 <translation id="5003993274120026347">ประโยคถัดไป</translation>
 <translation id="5016558321564993266">เปิด/ปิดตัวทำเครื่องหมาย <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">การเข้าถึงไมโครโฟนของอุปกรณ์เปิดอยู่</translation>
 <translation id="5030687792513154421">หมดเวลา</translation>
 <translation id="5033299697334913360">คลิกที่ใดก็ได้เพื่อจับภาพแบบเต็มหน้าจอ</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> เชื่อมต่อโทรศัพท์เครื่องใหม่แล้ว</translation>
@@ -962,6 +963,7 @@
 <translation id="6359587239691116345">รับฟีเจอร์และการปรับปรุงด้านความปลอดภัยล่าสุด หากปฏิเสธการอัปเดตนี้ อุปกรณ์อาจทำงานไม่ถูกต้องอีกต่อไป และคุณอาจพบปัญหาด้านความปลอดภัยและประสิทธิภาพ</translation>
 <translation id="6376931439017688372">บลูทูธเปิดอยู่</translation>
 <translation id="6381109794406942707">ป้อน PIN เพื่อปลดล็อกอุปกรณ์</translation>
+<translation id="638716340450135524">เปิดการเข้าถึงกล้อง</translation>
 <translation id="639644700271529076">CAPS LOCK ปิดอยู่</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistant</translation>
@@ -969,6 +971,7 @@
 <translation id="642644398083277086">ล้างการแจ้งเตือนทั้งหมด</translation>
 <translation id="643147933154517414">เสร็จเรียบร้อย</translation>
 <translation id="6431865393913628856">บันทึกหน้าจอ</translation>
+<translation id="6442259747294754014">การเข้าถึงไมโครโฟนของอุปกรณ์ปิดอยู่</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> ใน<ph name="RECEIVER_NAME" /></translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> กิจกรรม</translation>
 <translation id="6449483711453944360">ขณะนี้ยังไม่รองรับแอป Linux และหน้าต่างที่ไม่ระบุตัวตน</translation>
@@ -1364,6 +1367,7 @@
 <translation id="8598235756057743477">จัดเรียงแอปตามชื่อหรือสี</translation>
 <translation id="8614517853887502247">การแจ้งเตือนของ <ph name="APP_1_TITLE" /> และ <ph name="APP_2_TITLE" /> ซ่อนอยู่เนื่องจากเปิดโหมดป้องกันการดูไว้</translation>
 <translation id="8627191004499078455">เชื่อมต่อ<ph name="DEVICE_NAME" />แล้ว</translation>
+<translation id="8630991711272431708">ปิดการเข้าถึงกล้อง</translation>
 <translation id="8631727435199967028">การตั้งค่าการช่วยเหลือพิเศษ</translation>
 <translation id="8637598503828012618"><ph name="CONNECTION_STATUS" />, ความแรงสัญญาณ <ph name="SIGNAL_STRENGTH" />, จัดการโดยผู้ดูแลระบบ</translation>
 <translation id="8639760480004882931">เหลือ <ph name="PERCENTAGE" />%</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb
index 74a8ed6..6ee384b 100644
--- a/ash/strings/ash_strings_uz.xtb
+++ b/ash/strings/ash_strings_uz.xtb
@@ -554,6 +554,7 @@
 <translation id="4065525899979931964">{NUM_APPS,plural, =1{Yoqilmagan, 1 ta ilova}other{Yoqilmagan, # ta ilova}}</translation>
 <translation id="4066027111132117168">Yoniq, <ph name="REMAINING_TIME" /> qoldi</translation>
 <translation id="4072264167173457037">Signal o‘rtacha</translation>
+<translation id="4086921558679520050">Qurilmadagi mikrofon tashqi tugmasini bosing</translation>
 <translation id="4112140312785995938">Orqaga qaytarish</translation>
 <translation id="4114315158543974537">Phone Hub funksiyasini yoqish</translation>
 <translation id="4115378294792113321">Siyohrang</translation>
@@ -606,6 +607,7 @@
 <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />, signal darajasi: <ph name="SIGNAL_STRENGTH" /> %.</translation>
 <translation id="4378551569595875038">Ulanmoqda...</translation>
 <translation id="4379531060876907730">Bular – stilus vositalaringiz</translation>
+<translation id="4381031910344220229">Bunda mikrofonga ruxsat beriladi. <ph name="APP_NAME" /> va barcha ilovalar va saytlar mikrofondan foydalana oladi</translation>
 <translation id="4389184120735010762">Qadalgan lupa tezkor havolasini bosdingiz. Ishga tushirilsinmi?</translation>
 <translation id="439598569299422042">Pauzada, <ph name="SIZE_INFO" /></translation>
 <translation id="440113666232554208">Skrinkast saqlanmadi</translation>
@@ -728,6 +730,7 @@
 <translation id="4987738733603015246">Desk 16</translation>
 <translation id="5003993274120026347">Keyingi gap</translation>
 <translation id="5016558321564993266">Marker holatini oʻzgartirish. <ph name="STATE_TEXT" /></translation>
+<translation id="5029356738310729434">Qurilma mikrofoniga ruxsat yoniq</translation>
 <translation id="5030687792513154421">Vaqt tugadi</translation>
 <translation id="5033299697334913360">Butun ekranni tasvirga olish uchun istalgan joyga bosing</translation>
 <translation id="5035236842988137213"><ph name="DEVICE_NAME" /> yangi telefonga ulandi</translation>
@@ -959,9 +962,11 @@
 <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> seansi <ph name="MANAGER" /> domenida boshqariladi</translation>
 <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ulandi</translation>
 <translation id="6351032674660237738">ILOVA TAKLIFLARI</translation>
+<translation id="6352082849089527770">Notanish tarmoqlar</translation>
 <translation id="6359587239691116345">Eng oxirgi funksiyalar va xavfsizlikka oid yangilanishlarni olish Bu yangilanishni rad qilsangiz, qurilmangiz ishlashi, xavfsizlik va unumdorlikda muammolar yuz berishi mumkin.</translation>
 <translation id="6376931439017688372">Bluetooth yoniq</translation>
 <translation id="6381109794406942707">Qurilmani qulfdan chiqarish uchun PIN kodingizni kiriting.</translation>
+<translation id="638716340450135524">Kamera ruxsatini yoqing</translation>
 <translation id="639644700271529076">CAPS LOCK o‘chiq</translation>
 <translation id="6406704438230478924">altgr</translation>
 <translation id="6417265370957905582">Google Assistent</translation>
@@ -969,6 +974,7 @@
 <translation id="642644398083277086">Barcha eslatmalarni tozalang</translation>
 <translation id="643147933154517414">Bajarildi</translation>
 <translation id="6431865393913628856">Ekran yozuvi</translation>
+<translation id="6442259747294754014">Qurilma mikrofoniga ruxsat oʻchiq</translation>
 <translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> <ph name="RECEIVER_NAME" /> qurilmasiga translatsiya qilinmoqda</translation>
 <translation id="6447111710783417522"><ph name="DATE" />, <ph name="NUMBER" /> ta tadbir</translation>
 <translation id="6449483711453944360">Linux ilovalari va inkognito oynalarida ishlamaydi</translation>
@@ -1133,6 +1139,7 @@
 <translation id="7360036564632145207">Samaradorlikni oshirish uchun tashqi qurilmalarga maʼlumotlaringizga kirish huquqlarini oʻzgartiring</translation>
 <translation id="736045644501761622">Fon rasmi va uslubini sozlash</translation>
 <translation id="7371404428569700291">Yozib olish oynasi</translation>
+<translation id="737315737514430195">Bunda mikrofonga ruxsat beriladi. Barcha ilovalar va saytlar mikrofondan foydalana oladi</translation>
 <translation id="7377169924702866686">Caps Lock yoniq.</translation>
 <translation id="7377481913241237033">Kod bilan ulanish</translation>
 <translation id="7378203170292176219">Yozib olinadigan hududni tanlash uchun suring</translation>
@@ -1201,6 +1208,7 @@
 <translation id="7671610481353807627">Ilovalar rangi asosida saralandi</translation>
 <translation id="7672095158465655885"><ph name="NAME" /> qurilmasiga ulangan, <ph name="SUBTEXT" /></translation>
 <translation id="7684531502177797067"><ph name="CAMERA_NAME" /> uchun kameradan kiritish sozlandi.</translation>
+<translation id="7689817529363080918">Bunda mikrofonga ruxsat beriladi. <ph name="APP1_NAME" />, <ph name="APP2_NAME" /> va barcha ilovalar va saytlar mikrofondan foydalana oladi</translation>
 <translation id="7705524343798198388">VPN</translation>
 <translation id="7714767791242455379">Yangi mobil tarmoq kiritish</translation>
 <translation id="7720400844887872976">Yoniqlik muddati: <ph name="TIME" /></translation>
@@ -1364,6 +1372,7 @@
 <translation id="8598235756057743477">Ilovalarni nomi yoki rangi asosida saralash</translation>
 <translation id="8614517853887502247">Xavfsiz koʻrish rejimi yoniqligi uchun <ph name="APP_1_TITLE" /> va <ph name="APP_2_TITLE" /> bildirishnomalari yashirildi</translation>
 <translation id="8627191004499078455"><ph name="DEVICE_NAME" /> qurilmasiga ulandi</translation>
+<translation id="8630991711272431708">Kameraga ruxsatni faolsizlantirish</translation>
 <translation id="8631727435199967028">Maxsus imkoniyatlar sozlamalari</translation>
 <translation id="8637598503828012618">Himoya: <ph name="CONNECTION_STATUS" />, Signal darajasi: <ph name="SIGNAL_STRENGTH" />, Administrator boshqaruvida</translation>
 <translation id="8639760480004882931"><ph name="PERCENTAGE" /> qoldi</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index 220efcd..09a1784 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -1204,6 +1204,7 @@
 <translation id="7720410380936703141">重试</translation>
 <translation id="7723389094756330927">{NUM_NOTIFICATIONS,plural, =1{1 条通知}other{# 条通知}}</translation>
 <translation id="7724603315864178912">剪切</translation>
+<translation id="7742327441377685481">无通知</translation>
 <translation id="7745560842763881396">显示任务栏中的应用</translation>
 <translation id="7749443890790263709">已达到桌面数量上限。</translation>
 <translation id="776344839111254542">点击即可查看相关更新的详情</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb
index 592ba7b8..13a31ac 100644
--- a/ash/strings/ash_strings_zh-HK.xtb
+++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -1018,7 +1018,7 @@
 <translation id="6670153871843998651">桌面 3</translation>
 <translation id="6671495933530132209">複製圖片</translation>
 <translation id="6671661918848783005">無法解鎖 Chromebook</translation>
-<translation id="6683022854667115063">耳罩式耳機</translation>
+<translation id="6683022854667115063">耳機</translation>
 <translation id="6696025732084565524">您的拆除式鍵盤需執行重要更新</translation>
 <translation id="6700713906295497288">IME 選單按鈕</translation>
 <translation id="6707693040195709527">未在期限內將裝置回復為先前的版本</translation>
diff --git a/ash/utility/cropping_util.cc b/ash/utility/cropping_util.cc
index e035448..1d9d6ae 100644
--- a/ash/utility/cropping_util.cc
+++ b/ash/utility/cropping_util.cc
@@ -4,6 +4,8 @@
 
 #include "ash/utility/cropping_util.h"
 
+#include <ostream>
+
 #include "base/check.h"
 #include "base/check_op.h"
 #include "base/notreached.h"
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 52efb56..0f68d70 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -4254,8 +4254,6 @@
       "android/java/src/org/chromium/base/library_loader/Linker.java",
       "android/java/src/org/chromium/base/library_loader/LinkerJni.java",
       "android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
-      "android/java/src/org/chromium/base/library_loader/ModernLinker.java",
-      "android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
       "android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
       "android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
       "android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
diff --git a/base/allocator/partition_allocator/partition_alloc.gni b/base/allocator/partition_allocator/partition_alloc.gni
index 6b8d4684..a71e6a10 100644
--- a/base/allocator/partition_allocator/partition_alloc.gni
+++ b/base/allocator/partition_allocator/partition_alloc.gni
@@ -75,6 +75,12 @@
   use_asan_backup_ref_ptr = is_asan && (is_win || is_android || is_linux)
 }
 
+# AsanBackupRefPtr is not supported outside Chromium. The implementation is
+# entangled with `//base`. The code is only physically located with the
+# rest of `raw_ptr` to keep it together.
+assert(build_with_chromium || !use_asan_backup_ref_ptr,
+       "AsanBackupRefPtr is not supported outside Chromium")
+
 # BackupRefPtr and AsanBackupRefPtr are mutually exclusive variants of raw_ptr.
 assert(
     !enable_backup_ref_ptr_support || !use_asan_backup_ref_ptr,
@@ -127,6 +133,7 @@
   use_partition_alloc_as_malloc = false
   enable_backup_ref_ptr_support = false
   enable_mte_checked_ptr_support = false
+  use_asan_backup_ref_ptr = false
   put_ref_count_in_previous_slot = false
   enable_backup_ref_ptr_slow_checks = false
   enable_dangling_raw_ptr_checks = false
diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
index 7622daa..bc1f72b 100644
--- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
+++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
@@ -508,8 +508,7 @@
     private Linker getLinker() {
         // This is only called if LibraryLoader.useChromiumLinker() returns true.
         synchronized (mLock) {
-            // TODO(pasko): Fold the ModernLinker into Linker.
-            if (mLinker == null) mLinker = new ModernLinker();
+            if (mLinker == null) mLinker = new Linker();
             return mLinker;
         }
     }
diff --git a/base/android/java/src/org/chromium/base/library_loader/Linker.java b/base/android/java/src/org/chromium/base/library_loader/Linker.java
index fdaa565..b503843 100644
--- a/base/android/java/src/org/chromium/base/library_loader/Linker.java
+++ b/base/android/java/src/org/chromium/base/library_loader/Linker.java
@@ -21,6 +21,10 @@
 import org.chromium.base.annotations.JniIgnoreNatives;
 import org.chromium.base.metrics.RecordHistogram;
 
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
@@ -69,14 +73,15 @@
  *   available to then send the Bundle to Linkers in other processes, consumed
  *   by takeSharedRelrosFromBundle().
  */
-abstract class Linker {
+@JniIgnoreNatives
+class Linker {
     private static final String TAG = "Linker";
 
     // Name of the library that contains the JNI code.
-    protected static final String LINKER_JNI_LIBRARY = "chromium_android_linker";
+    private static final String LINKER_JNI_LIBRARY = "chromium_android_linker";
 
     // Constant guarding debug logging.
-    protected static final boolean DEBUG = LibraryLoader.DEBUG;
+    private static final boolean DEBUG = LibraryLoader.DEBUG;
 
     // Constants used to pass the shared RELRO Bundle through Binder.
     @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
@@ -84,7 +89,7 @@
     private static final String BASE_LOAD_ADDRESS =
             "org.chromium.base.android.linker.base_load_address";
 
-    protected final Object mLock = new Object();
+    private final Object mLock = new Object();
 
     // Holds the address and the size of the reserved address range until the library is loaded.
     // After that its |mLoadAddress| and |mLoadSize| will reflect the state of the loaded library.
@@ -92,12 +97,13 @@
     // along with |mRelro{Start,Size}|. This object is serialized for use in other processes if the
     // process is a "RELRO producer".
     @GuardedBy("mLock")
+    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
     protected LibInfo mLocalLibInfo;
 
     // The library info that was transferred from another process. Only useful if it contains RELRO
     // FD.
     @GuardedBy("mLock")
-    protected LibInfo mRemoteLibInfo;
+    private LibInfo mRemoteLibInfo;
 
     // Whether this Linker instance should potentially create the RELRO region. Even if true, the
     // library loading can fall back to the system linker without producing the region. The default
@@ -141,7 +147,7 @@
      */
     @IntDef({State.UNINITIALIZED, State.INITIALIZED, State.DONE_PROVIDE_RELRO, State.DONE})
     @Retention(RetentionPolicy.SOURCE)
-    protected @interface State {
+    private @interface State {
         int UNINITIALIZED = 0;
         int INITIALIZED = 1;
         int DONE_PROVIDE_RELRO = 2;
@@ -150,7 +156,17 @@
 
     @GuardedBy("mLock")
     @State
-    protected int mState = State.UNINITIALIZED;
+    private int mState = State.UNINITIALIZED;
+
+    private static final String DETAILED_LOAD_TIME_HISTOGRAM_PREFIX =
+            "ChromiumAndroidLinker.ModernLinkerDetailedLoadTime.";
+
+    private static final String DETAILED_LOAD_TIME_HISTOGRAM_PREFIX_BLKIO_CGROUP =
+            "ChromiumAndroidLinker.ModernLinkerDetailedLoadTimeByBlkioCgroup.";
+
+    private static final String SUFFIX_UNKNOWN = "Unknown";
+
+    private static final String SELF_CGROUP_FILE_NAME = "/proc/self/cgroup";
 
     void pretendLibraryIsLoadedForTesting() {
         synchronized (mLock) {
@@ -160,7 +176,7 @@
 
     private static Linker sLinkerForAssert;
 
-    protected Linker() {
+    Linker() {
         // Only one instance is allowed in a given process because effects of loading a library are
         // global, and the list of loaded libraries is not maintained at this level.
         assert sLinkerForAssert == null;
@@ -314,8 +330,7 @@
                 }
                 // Intentional fallthrough.
             case PreferAddress.RESERVE_RANDOM:
-                // TODO(pasko): Avoid passing the last argument because it is always |true|.
-                getLinkerJni().findMemoryRegionAtRandomAddress(mLocalLibInfo, true);
+                getLinkerJni().findMemoryRegionAtRandomAddress(mLocalLibInfo);
         }
     }
 
@@ -495,7 +510,7 @@
     @IntDef({Linker.RelroSharingMode.NO_SHARING, Linker.RelroSharingMode.PRODUCE,
             Linker.RelroSharingMode.CONSUME})
     @Retention(RetentionPolicy.SOURCE)
-    protected @interface RelroSharingMode {
+    private @interface RelroSharingMode {
         // Do not attempt to create or use a RELRO region.
         int NO_SHARING = 0;
 
@@ -506,6 +521,36 @@
         int CONSUME = 2;
     }
 
+    // Loads the library via Linker for later consumption of the RELRO region, throws on
+    // failure to allow a safe retry.
+    @GuardedBy("mLock")
+    private void loadWithoutProducingRelro(String libFilePath) {
+        assert mRemoteLibInfo == null || libFilePath.equals(mRemoteLibInfo.mLibFilePath);
+        if (!getLinkerJni().loadLibrary(libFilePath, mLocalLibInfo, false /* spawnRelroRegion */)) {
+            resetAndThrow(String.format("Unable to load library: %s", libFilePath));
+        }
+        assert mLocalLibInfo.mRelroFd == -1;
+    }
+
+    // Loads the library via Linker. Does not throw on failure because in both cases
+    // System.loadLibrary() is useful. Records a histogram to count failures.
+    @GuardedBy("mLock")
+    private void loadAndProduceSharedRelro(String libFilePath) {
+        mLocalLibInfo.mLibFilePath = libFilePath;
+        if (getLinkerJni().loadLibrary(libFilePath, mLocalLibInfo, true /* spawnRelroRegion */)) {
+            if (DEBUG) {
+                Log.i(TAG, "Successfully spawned RELRO: mLoadAddress=0x%x, mLoadSize=%d",
+                        mLocalLibInfo.mLoadAddress, mLocalLibInfo.mLoadSize);
+            }
+        } else {
+            Log.e(TAG, "Unable to load with Linker, using the system linker instead");
+            // System.loadLibrary() below implements the fallback.
+            mLocalLibInfo.mRelroFd = -1;
+        }
+        RecordHistogram.recordBooleanHistogram(
+                "ChromiumAndroidLinker.RelroProvidedSuccessfully", mLocalLibInfo.mRelroFd != -1);
+    }
+
     /**
      * Linker-specific entry point for library loading. Loads the library into the address range
      * provided by mLocalLibInfo. Assumes that the range is reserved with mmap(2).
@@ -516,12 +561,79 @@
      * the RELRO region. Atomicity is required because the library code can be running concurrently
      * on another thread.
      *
-     * @param libraryName The name of the library to load.
+     * @param library The name of the library to load.
      * @param relroMode Tells whether to use RELRO sharing and whether to produce or consume the
      *                  RELRO region.
      */
-    protected abstract void loadLibraryImplLocked(
-            String libraryName, @RelroSharingMode int relroMode);
+    @GuardedBy("mLock")
+    private void loadLibraryImplLocked(String library, @RelroSharingMode int relroMode) {
+        // Only loading monochrome is supported.
+        if (!"monochrome".equals(library) || DEBUG) {
+            Log.i(TAG, "loadLibraryImplLocked: %s, relroMode=%d", library, relroMode);
+        }
+        assert mState == State.INITIALIZED; // Only one successful call.
+
+        // Determine whether library loading starts in a foreground or a background cgroup for the
+        // 'blkio' controller.
+        String backgroundStateBeforeLoad = readBackgroundStateFromCgroups();
+
+        // Load or declare fallback to System.loadLibrary.
+        UptimeMillisTimer timer = new UptimeMillisTimer();
+        String libFilePath = System.mapLibraryName(library);
+        boolean performedModernLoad = true;
+        if (relroMode == RelroSharingMode.NO_SHARING) {
+            // System.loadLibrary() below implements the fallback.
+            performedModernLoad = false;
+            mState = State.DONE;
+        } else if (relroMode == RelroSharingMode.PRODUCE) {
+            loadAndProduceSharedRelro(libFilePath); // Throws on a failed load.
+            // Next state is still to "provide relro", even if there is none, to indicate that
+            // consuming RELRO is not expected with this Linker instance.
+            mState = State.DONE_PROVIDE_RELRO;
+        } else {
+            assert relroMode == RelroSharingMode.CONSUME;
+            loadWithoutProducingRelro(libFilePath); // Does not throw.
+            // Done loading the library, but using an externally provided RELRO may happen later.
+            mState = State.DONE;
+        }
+
+        // The app can change the bg/fg state while loading the native library, but mostly only
+        // once. To reduce the likelihood of a foreground sample to be affected by partially
+        // backgrounded state, move the mixed samples to a separate category. The data collected may
+        // help proving this hypothesis: "The Linker is not a lot slower than the system
+        // linker when running in foreground".
+        String backgroundStateAfterLoad = readBackgroundStateFromCgroups();
+        if (!backgroundStateBeforeLoad.equals(backgroundStateAfterLoad)) {
+            if (backgroundStateBeforeLoad.equals(SUFFIX_UNKNOWN)
+                    || backgroundStateAfterLoad.equals(SUFFIX_UNKNOWN)) {
+                backgroundStateBeforeLoad = SUFFIX_UNKNOWN;
+            } else {
+                backgroundStateBeforeLoad = "Mixed";
+            }
+        }
+
+        if (performedModernLoad) {
+            recordDetailedLoadTimeSince(timer,
+                    relroMode == RelroSharingMode.PRODUCE ? "Produce" : "Consume",
+                    backgroundStateBeforeLoad);
+        }
+
+        // Load the library a second time, in order to keep using lazy JNI registration. When
+        // loading the library with the Chromium linker, ART doesn't know about our library, so
+        // cannot resolve JNI methods lazily. Loading the library a second time makes sure it
+        // knows about us.
+        //
+        // This is not wasteful though, as libraries are reference-counted, and as a consequence the
+        // library is not really loaded a second time, and we keep relocation sharing.
+        timer = new UptimeMillisTimer();
+        try {
+            System.loadLibrary(library);
+        } catch (UnsatisfiedLinkError e) {
+            resetAndThrow("Failed at System.loadLibrary()");
+        }
+        recordDetailedLoadTimeSince(
+                timer, performedModernLoad ? "Second" : "NoSharing", backgroundStateBeforeLoad);
+    }
 
     /**
      * Atomically replaces the RELRO with the shared memory region described in the
@@ -529,13 +641,29 @@
      * by inspecting |mLocalLibInfo| for equality of the library address range and the contents of
      * the RELRO region.
      *
-     * By *not* calling {@link #waitForSharedRelrosLocked()} when loading the library subclasses opt
-     * into supporting the atomic replacement of RELRO and override this method.
      * @param relroAvailableImmediately Whether the RELRO bundle arrived before
      * {@link #loadLibraryImplLocked(String, int)} was called.
      */
-    protected void atomicReplaceRelroLocked(boolean relroAvailableImmediately) {
-        assert false;
+    @GuardedBy("mLock")
+    private void atomicReplaceRelroLocked(boolean relroAvailableImmediately) {
+        assert mRemoteLibInfo != null;
+        assert mState == State.DONE;
+        if (mRemoteLibInfo.mRelroFd == -1) return;
+        if (DEBUG) {
+            Log.i(TAG, "Received mRemoteLibInfo: mLoadAddress=0x%x, mLoadSize=%d",
+                    mRemoteLibInfo.mLoadAddress, mRemoteLibInfo.mLoadSize);
+        }
+        if (mLocalLibInfo == null) return;
+        getLinkerJni().useRelros(mLocalLibInfo.mLoadAddress, mRemoteLibInfo);
+        // *Not* closing the RELRO FD after using it because the FD may need to be transferred to
+        // another process after this point.
+        if (DEBUG) Log.i(TAG, "Immediate RELRO availability: %b", relroAvailableImmediately);
+        RecordHistogram.recordBooleanHistogram(
+                "ChromiumAndroidLinker.RelroAvailableImmediately", relroAvailableImmediately);
+        int status = getLinkerJni().getRelroSharingResult();
+        assert status != RelroSharingStatus.NOT_ATTEMPTED;
+        RecordHistogram.recordEnumeratedHistogram(
+                "ChromiumAndroidLinker.RelroSharingStatus2", status, RelroSharingStatus.COUNT);
     }
 
     /** Loads the Linker JNI library. Throws UnsatisfiedLinkError on error. */
@@ -561,11 +689,78 @@
      * region. Should only be used as the last resort: when the simplicity of avoiding the explicit
      * initialization is preferred over memory savings, such as in tests.
      */
-    protected final void ensureInitializedImplicitlyAsLastResort() {
+    private void ensureInitializedImplicitlyAsLastResort() {
         ensureInitialized(
                 /* asRelroProducer= */ true, PreferAddress.RESERVE_RANDOM, /* addressHint= */ 0);
     }
 
+    private static String extractBlkioCgroupFromLine(String line) {
+        // The contents of /proc/self/cgroup for a background app looks like this:
+        // 5:schedtune:/background
+        // 4:memory:/
+        // 3:cpuset:/background
+        // 2:cpu:/system
+        // 1:blkio:/background
+        // 0::/uid_10179/pid_11869
+        //
+        // For a foreground app the relevant line looks like this:
+        // 1:blkio:/
+        int blkioStartsAt = line.indexOf(":blkio:");
+        if (blkioStartsAt == -1) return "";
+        return line.substring(blkioStartsAt + 7);
+    }
+
+    private String readBackgroundStateFromCgroups() {
+        String groupName = null;
+        try (BufferedReader reader = new BufferedReader(
+                     new InputStreamReader(new FileInputStream(SELF_CGROUP_FILE_NAME)));) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                groupName = extractBlkioCgroupFromLine(line);
+                if (!groupName.equals("")) break;
+            }
+            if (groupName == null || groupName.equals("")) return SUFFIX_UNKNOWN;
+        } catch (IOException e) {
+            Log.e(TAG, "IOException while reading %s", SELF_CGROUP_FILE_NAME);
+            return SUFFIX_UNKNOWN;
+        }
+        if (groupName.equals("/")) {
+            return "Foreground";
+        }
+        if (groupName.equals("/background")) {
+            return "Background";
+        }
+        Log.e(TAG, "blkio cgroup with unexpected name: '%s'", groupName);
+        return SUFFIX_UNKNOWN;
+    }
+
+    private void recordDetailedLoadTimeSince(
+            UptimeMillisTimer timer, String suffix, String backgroundStateSuffix) {
+        long durationMs = timer.getElapsedMillis();
+        RecordHistogram.recordTimesHistogram(
+                DETAILED_LOAD_TIME_HISTOGRAM_PREFIX + suffix, durationMs);
+        RecordHistogram.recordTimesHistogram(DETAILED_LOAD_TIME_HISTOGRAM_PREFIX_BLKIO_CGROUP
+                        + suffix + "." + backgroundStateSuffix,
+                durationMs);
+    }
+
+    @GuardedBy("mLock")
+    private void resetAndThrow(String message) {
+        mState = State.INITIALIZED;
+        Log.e(TAG, message);
+        throw new UnsatisfiedLinkError(message);
+    }
+
+    public static void reportDlopenExtTime(long millis) {
+        RecordHistogram.recordTimesHistogram(
+                "ChromiumAndroidLinker.ModernLinkerDlopenExtTime", millis);
+    }
+
+    public static void reportIteratePhdrTime(long millis) {
+        RecordHistogram.recordTimesHistogram(
+                "ChromiumAndroidLinker.ModernLinkerIteratePhdrTime", millis);
+    }
+
     /**
      * Holds the information for a given native library or the address range for the future library
      * load. Owns the shared RELRO file descriptor.
@@ -687,10 +882,8 @@
          *
          * @param libInfo holds the output values: |mLoadAddress| and |mLoadSize|. On failure sets
          *                the |libInfo.mLoadAddress| to 0.
-         * @param keepReserved is always |true| with ModernLinker.
-         *                     TODO(pasko): Eliminate this parameter.
          */
-        void findMemoryRegionAtRandomAddress(@NonNull LibInfo libInfo, boolean keepReserved);
+        void findMemoryRegionAtRandomAddress(@NonNull LibInfo libInfo);
 
         /**
          * Reserves the fixed address range starting at |libInfo.mLoadAddress| big enough to load
@@ -713,11 +906,39 @@
          * @return whether the region was found.
          */
         boolean findRegionReservedByWebViewZygote(@NonNull LibInfo libInfo);
+
+        /**
+         * Load the native library.
+         *
+         * @param libFilePath library file name.
+         * @param libInfo holds the information about the loaded library and the associated RELRO
+         *        region if the latter was created.
+         * @param spawnRelroRegion whether to spawn a new RELRO region.
+         * @return false on failure.
+         */
+        boolean loadLibrary(String libFilePath, LibInfo libInfo, boolean spawnRelroRegion);
+
+        /**
+         * Replace the current RELRO data in memory with the incoming RELRO region.
+         *
+         * @param localLoadAddress the address at which this Linker loaded the  native library.
+         * @param remoteLibInfo contains the RELRO region for replacement, and the start address
+         *        required for the library to be able to use this region.
+         * @return whether the operation was a success.
+         */
+        boolean useRelros(long localLoadAddress, LibInfo remoteLibInfo);
+
+        /**
+         * Reveals the result of RELRO sharing after the library has been loaded.
+         *
+         * @return RelroSharingStatus.
+         */
+        int getRelroSharingResult();
     }
 
     private static Linker.Natives sNativesInstance;
 
-    static void setNativesForTesting(Natives instance) {
+    static void setLinkerNativesForTesting(Natives instance) {
         sNativesInstance = instance;
         sLinkerForAssert = null; // Also allow to create Linker multiple times in tests.
     }
diff --git a/base/android/java/src/org/chromium/base/library_loader/LinkerJni.java b/base/android/java/src/org/chromium/base/library_loader/LinkerJni.java
index 5805fb6..c614e2e 100644
--- a/base/android/java/src/org/chromium/base/library_loader/LinkerJni.java
+++ b/base/android/java/src/org/chromium/base/library_loader/LinkerJni.java
@@ -6,6 +6,7 @@
 
 import androidx.annotation.NonNull;
 
+import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JniIgnoreNatives;
 
 /**
@@ -21,9 +22,8 @@
 @JniIgnoreNatives
 class LinkerJni implements Linker.Natives {
     @Override
-    public void findMemoryRegionAtRandomAddress(
-            @NonNull Linker.LibInfo libInfo, boolean keepReserved) {
-        nativeFindMemoryRegionAtRandomAddress(libInfo, keepReserved);
+    public void findMemoryRegionAtRandomAddress(@NonNull Linker.LibInfo libInfo) {
+        nativeFindMemoryRegionAtRandomAddress(libInfo);
     }
 
     @Override
@@ -36,9 +36,40 @@
         return nativeFindRegionReservedByWebViewZygote(libInfo);
     }
 
+    @Override
+    public boolean loadLibrary(
+            String libFilePath, Linker.LibInfo libInfo, boolean spawnRelroRegion) {
+        return nativeLoadLibrary(libFilePath, libInfo, spawnRelroRegion);
+    }
+
+    @Override
+    public boolean useRelros(long localLoadAddress, Linker.LibInfo remoteLibInfo) {
+        return nativeUseRelros(localLoadAddress, remoteLibInfo);
+    }
+
+    @Override
+    public int getRelroSharingResult() {
+        return nativeGetRelroSharingResult();
+    }
+
     private static native void nativeFindMemoryRegionAtRandomAddress(
-            @NonNull Linker.LibInfo libInfo, boolean keepReserved);
+            @NonNull Linker.LibInfo libInfo);
     private static native void nativeReserveMemoryForLibrary(@NonNull Linker.LibInfo libInfo);
     private static native boolean nativeFindRegionReservedByWebViewZygote(
             @NonNull Linker.LibInfo libInfo);
+    private static native boolean nativeLoadLibrary(
+            String libFilePath, Linker.LibInfo libInfo, boolean spawnRelroRegion);
+    private static native boolean nativeUseRelros(
+            long localLoadAddress, Linker.LibInfo remoteLibInfo);
+    private static native int nativeGetRelroSharingResult();
+
+    @CalledByNative
+    public static void reportDlopenExtTime(long millis) {
+        Linker.reportDlopenExtTime(millis);
+    }
+
+    @CalledByNative
+    public static void reportIteratePhdrTime(long millis) {
+        Linker.reportIteratePhdrTime(millis);
+    }
 }
diff --git a/base/android/java/src/org/chromium/base/library_loader/ModernLinker.java b/base/android/java/src/org/chromium/base/library_loader/ModernLinker.java
deleted file mode 100644
index 833dc58..0000000
--- a/base/android/java/src/org/chromium/base/library_loader/ModernLinker.java
+++ /dev/null
@@ -1,252 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.base.library_loader;
-
-import androidx.annotation.VisibleForTesting;
-
-import org.chromium.base.Log;
-import org.chromium.base.TimeUtils.UptimeMillisTimer;
-import org.chromium.base.annotations.JniIgnoreNatives;
-import org.chromium.base.metrics.RecordHistogram;
-
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import javax.annotation.concurrent.GuardedBy;
-
-/**
- * Provides a concrete implementation of the Chromium Linker, see {@link Linker}.
- */
-@JniIgnoreNatives
-class ModernLinker extends Linker {
-    private static final String TAG = "ModernLinker";
-
-    private static final String DETAILED_LOAD_TIME_HISTOGRAM_PREFIX =
-            "ChromiumAndroidLinker.ModernLinkerDetailedLoadTime.";
-
-    private static final String DETAILED_LOAD_TIME_HISTOGRAM_PREFIX_BLKIO_CGROUP =
-            "ChromiumAndroidLinker.ModernLinkerDetailedLoadTimeByBlkioCgroup.";
-
-    private static final String SUFFIX_UNKNOWN = "Unknown";
-
-    private static final String SELF_CGROUP_FILE_NAME = "/proc/self/cgroup";
-
-    ModernLinker() {}
-
-    private static String extractBlkioCgroupFromLine(String line) {
-        // The contents of /proc/self/cgroup for a background app looks like this:
-        // 5:schedtune:/background
-        // 4:memory:/
-        // 3:cpuset:/background
-        // 2:cpu:/system
-        // 1:blkio:/background
-        // 0::/uid_10179/pid_11869
-        //
-        // For a foreground app the relevant line looks like this:
-        // 1:blkio:/
-        int blkioStartsAt = line.indexOf(":blkio:");
-        if (blkioStartsAt == -1) return "";
-        return line.substring(blkioStartsAt + 7);
-    }
-
-    private String readBackgroundStateFromCgroups() {
-        String groupName = null;
-        try (BufferedReader reader = new BufferedReader(
-                     new InputStreamReader(new FileInputStream(SELF_CGROUP_FILE_NAME)));) {
-            String line;
-            while ((line = reader.readLine()) != null) {
-                groupName = extractBlkioCgroupFromLine(line);
-                if (!groupName.equals("")) break;
-            }
-            if (groupName == null || groupName.equals("")) return SUFFIX_UNKNOWN;
-        } catch (IOException e) {
-            Log.e(TAG, "IOException while reading %s", SELF_CGROUP_FILE_NAME);
-            return SUFFIX_UNKNOWN;
-        }
-        if (groupName.equals("/")) {
-            return "Foreground";
-        }
-        if (groupName.equals("/background")) {
-            return "Background";
-        }
-        Log.e(TAG, "blkio cgroup with unexpected name: '%s'", groupName);
-        return SUFFIX_UNKNOWN;
-    }
-
-    @Override
-    @GuardedBy("mLock")
-    protected void loadLibraryImplLocked(String library, @RelroSharingMode int relroMode) {
-        // Only loading monochrome is supported.
-        if (!"monochrome".equals(library) || DEBUG) {
-            Log.i(TAG, "loadLibraryImplLocked: %s, relroMode=%d", library, relroMode);
-        }
-        assert mState == State.INITIALIZED; // Only one successful call.
-
-        // Determine whether library loading starts in a foreground or a background cgroup for the
-        // 'blkio' controller.
-        String backgroundStateBeforeLoad = readBackgroundStateFromCgroups();
-
-        // Load or declare fallback to System.loadLibrary.
-        UptimeMillisTimer timer = new UptimeMillisTimer();
-        String libFilePath = System.mapLibraryName(library);
-        boolean performedModernLoad = true;
-        if (relroMode == RelroSharingMode.NO_SHARING) {
-            // System.loadLibrary() below implements the fallback.
-            performedModernLoad = false;
-            mState = State.DONE;
-        } else if (relroMode == RelroSharingMode.PRODUCE) {
-            loadAndProduceSharedRelro(libFilePath); // Throws on a failed load.
-            // Next state is still to "provide relro", even if there is none, to indicate that
-            // consuming RELRO is not expected with this Linker instance.
-            mState = State.DONE_PROVIDE_RELRO;
-        } else {
-            assert relroMode == RelroSharingMode.CONSUME;
-            loadWithoutProducingRelro(libFilePath); // Does not throw.
-            // Done loading the library, but using an externally provided RELRO may happen later.
-            mState = State.DONE;
-        }
-
-        // The app can change the bg/fg state while loading the native library, but mostly only
-        // once. To reduce the likelihood of a foreground sample to be affected by partially
-        // backgrounded state, move the mixed samples to a separate category. The data collected may
-        // help proving this hypothesis: "The ModernLinker is not a lot slower than the system
-        // linker when running in foreground".
-        String backgroundStateAfterLoad = readBackgroundStateFromCgroups();
-        if (!backgroundStateBeforeLoad.equals(backgroundStateAfterLoad)) {
-            if (backgroundStateBeforeLoad.equals(SUFFIX_UNKNOWN)
-                    || backgroundStateAfterLoad.equals(SUFFIX_UNKNOWN)) {
-                backgroundStateBeforeLoad = SUFFIX_UNKNOWN;
-            } else {
-                backgroundStateBeforeLoad = "Mixed";
-            }
-        }
-
-        if (performedModernLoad) {
-            recordDetailedLoadTimeSince(timer,
-                    relroMode == RelroSharingMode.PRODUCE ? "Produce" : "Consume",
-                    backgroundStateBeforeLoad);
-        }
-
-        // Load the library a second time, in order to keep using lazy JNI registration. When
-        // loading the library with the Chromium linker, ART doesn't know about our library, so
-        // cannot resolve JNI methods lazily. Loading the library a second time makes sure it
-        // knows about us.
-        //
-        // This is not wasteful though, as libraries are reference-counted, and as a consequence the
-        // library is not really loaded a second time, and we keep relocation sharing.
-        timer = new UptimeMillisTimer();
-        try {
-            System.loadLibrary(library);
-        } catch (UnsatisfiedLinkError e) {
-            resetAndThrow("Failed at System.loadLibrary()");
-        }
-        recordDetailedLoadTimeSince(
-                timer, performedModernLoad ? "Second" : "NoSharing", backgroundStateBeforeLoad);
-    }
-
-    private void recordDetailedLoadTimeSince(
-            UptimeMillisTimer timer, String suffix, String backgroundStateSuffix) {
-        long durationMs = timer.getElapsedMillis();
-        RecordHistogram.recordTimesHistogram(
-                DETAILED_LOAD_TIME_HISTOGRAM_PREFIX + suffix, durationMs);
-        RecordHistogram.recordTimesHistogram(DETAILED_LOAD_TIME_HISTOGRAM_PREFIX_BLKIO_CGROUP
-                        + suffix + "." + backgroundStateSuffix,
-                durationMs);
-    }
-
-    // Loads the library via ModernLinker for later consumption of the RELRO region, throws on
-    // failure to allow a safe retry.
-    @GuardedBy("mLock")
-    private void loadWithoutProducingRelro(String libFilePath) {
-        assert mRemoteLibInfo == null || libFilePath.equals(mRemoteLibInfo.mLibFilePath);
-        if (!getModernLinkerJni().loadLibrary(
-                    libFilePath, mLocalLibInfo, false /* spawnRelroRegion */)) {
-            resetAndThrow(String.format("Unable to load library: %s", libFilePath));
-        }
-        assert mLocalLibInfo.mRelroFd == -1;
-    }
-
-    // Loads the library via ModernLinker. Does not throw on failure because in both cases
-    // System.loadLibrary() is useful. Records a histogram to count failures.
-    @GuardedBy("mLock")
-    private void loadAndProduceSharedRelro(String libFilePath) {
-        mLocalLibInfo.mLibFilePath = libFilePath;
-        if (getModernLinkerJni().loadLibrary(
-                    libFilePath, mLocalLibInfo, true /* spawnRelroRegion */)) {
-            if (DEBUG) {
-                Log.i(TAG, "Successfully spawned RELRO: mLoadAddress=0x%x, mLoadSize=%d",
-                        mLocalLibInfo.mLoadAddress, mLocalLibInfo.mLoadSize);
-            }
-        } else {
-            Log.e(TAG, "Unable to load with ModernLinker, using the system linker instead");
-            // System.loadLibrary() below implements the fallback.
-            mLocalLibInfo.mRelroFd = -1;
-        }
-        RecordHistogram.recordBooleanHistogram(
-                "ChromiumAndroidLinker.RelroProvidedSuccessfully", mLocalLibInfo.mRelroFd != -1);
-    }
-
-    @Override
-    @GuardedBy("mLock")
-    protected void atomicReplaceRelroLocked(boolean relroAvailableImmediately) {
-        assert mRemoteLibInfo != null;
-        assert mState == State.DONE;
-        if (mRemoteLibInfo.mRelroFd == -1) return;
-        if (DEBUG) {
-            Log.i(TAG, "Received mRemoteLibInfo: mLoadAddress=0x%x, mLoadSize=%d",
-                    mRemoteLibInfo.mLoadAddress, mRemoteLibInfo.mLoadSize);
-        }
-        if (mLocalLibInfo == null) return;
-        getModernLinkerJni().useRelros(mLocalLibInfo.mLoadAddress, mRemoteLibInfo);
-        // *Not* closing the RELRO FD after using it because the FD may need to be transferred to
-        // another process after this point.
-        if (DEBUG) Log.i(TAG, "Immediate RELRO availability: %b", relroAvailableImmediately);
-        RecordHistogram.recordBooleanHistogram(
-                "ChromiumAndroidLinker.RelroAvailableImmediately", relroAvailableImmediately);
-        int status = getModernLinkerJni().getRelroSharingResult();
-        assert status != RelroSharingStatus.NOT_ATTEMPTED;
-        RecordHistogram.recordEnumeratedHistogram(
-                "ChromiumAndroidLinker.RelroSharingStatus2", status, RelroSharingStatus.COUNT);
-    }
-
-    @GuardedBy("mLock")
-    private void resetAndThrow(String message) {
-        mState = State.INITIALIZED;
-        Log.e(TAG, message);
-        throw new UnsatisfiedLinkError(message);
-    }
-
-    public static void reportDlopenExtTime(long millis) {
-        RecordHistogram.recordTimesHistogram(
-                "ChromiumAndroidLinker.ModernLinkerDlopenExtTime", millis);
-    }
-
-    public static void reportIteratePhdrTime(long millis) {
-        RecordHistogram.recordTimesHistogram(
-                "ChromiumAndroidLinker.ModernLinkerIteratePhdrTime", millis);
-    }
-
-    // Intentionally omitting @NativeMethods because generation of the stubs it requires (as
-    // GEN_JNI.java) is disabled by the @JniIgnoreNatives.
-    interface Natives {
-        boolean loadLibrary(String libFilePath, LibInfo libInfo, boolean spawnRelroRegion);
-        boolean useRelros(long localLoadAddress, LibInfo remoteLibInfo);
-        int getRelroSharingResult();
-    }
-
-    private static ModernLinker.Natives sNativesInstance;
-
-    static void setModernLinkerNativesForTesting(Natives instance) {
-        sNativesInstance = instance;
-    }
-
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
-    static ModernLinker.Natives getModernLinkerJni() {
-        if (sNativesInstance != null) return sNativesInstance;
-        return new ModernLinkerJni(); // R8 optimizes away all construction except the initial one.
-    }
-}
diff --git a/base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java b/base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java
deleted file mode 100644
index 463e5dd5..0000000
--- a/base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.base.library_loader;
-
-import org.chromium.base.annotations.CalledByNative;
-import org.chromium.base.annotations.JniIgnoreNatives;
-
-/**
- * Mockable stub for all native methods in ModernLinker.
- *
- * See LinkerJni.java for an explanation of why @JniIgnoreNatives is needed.
- */
-@JniIgnoreNatives
-class ModernLinkerJni implements ModernLinker.Natives {
-    private static final String TAG = "ModernLinkerJni";
-
-    @Override
-    public boolean loadLibrary(
-            String libFilePath, Linker.LibInfo libInfo, boolean spawnRelroRegion) {
-        return nativeLoadLibrary(libFilePath, libInfo, spawnRelroRegion);
-    }
-
-    @Override
-    public boolean useRelros(long localLoadAddress, Linker.LibInfo remoteLibInfo) {
-        return nativeUseRelros(localLoadAddress, remoteLibInfo);
-    }
-
-    @Override
-    public int getRelroSharingResult() {
-        return nativeGetRelroSharingResult();
-    }
-
-    private static native boolean nativeLoadLibrary(
-            String libFilePath, Linker.LibInfo libInfo, boolean spawnRelroRegion);
-    private static native boolean nativeUseRelros(
-            long localLoadAddress, Linker.LibInfo remoteLibInfo);
-    private static native int nativeGetRelroSharingResult();
-
-    @CalledByNative
-    public static void reportDlopenExtTime(long millis) {
-        ModernLinker.reportDlopenExtTime(millis);
-    }
-
-    @CalledByNative
-    public static void reportIteratePhdrTime(long millis) {
-        ModernLinker.reportIteratePhdrTime(millis);
-    }
-}
diff --git a/base/android/junit/src/org/chromium/base/library_loader/LinkerTest.java b/base/android/junit/src/org/chromium/base/library_loader/LinkerTest.java
index 618ae48c..c2e5ecd 100644
--- a/base/android/junit/src/org/chromium/base/library_loader/LinkerTest.java
+++ b/base/android/junit/src/org/chromium/base/library_loader/LinkerTest.java
@@ -37,23 +37,18 @@
     @Mock
     Linker.Natives mNativeMock;
 
-    @Mock
-    ModernLinker.Natives mModernLinkerNativeMock;
-
     @Rule
     public MockitoRule mMockitoRule = MockitoJUnit.rule().strictness(Strictness.STRICT_STUBS);
 
     @Before
     public void setUp() {
         UmaRecorderHolder.resetForTesting();
-        Linker.setNativesForTesting(mNativeMock);
-        ModernLinker.setModernLinkerNativesForTesting(mModernLinkerNativeMock);
+        Linker.setLinkerNativesForTesting(mNativeMock);
     }
 
     @After
     public void tearDown() {
-        Linker.setNativesForTesting(null);
-        ModernLinker.setModernLinkerNativesForTesting(null);
+        Linker.setLinkerNativesForTesting(null);
     }
 
     static Linker.LibInfo anyLibInfo() {
@@ -64,7 +59,7 @@
     @SmallTest
     public void testConsumer() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
 
         // Exercise.
@@ -83,7 +78,7 @@
     @SmallTest
     public void testProducer() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
 
         // Exercise.
@@ -91,8 +86,7 @@
 
         // Verify.
         Assert.assertTrue(linker.mRelroProducer);
-        Mockito.verify(mNativeMock)
-                .findMemoryRegionAtRandomAddress(anyLibInfo(), ArgumentMatchers.eq(true));
+        Mockito.verify(mNativeMock).findMemoryRegionAtRandomAddress(anyLibInfo());
         Assert.assertNotEquals(null, linker.mLocalLibInfo);
     }
 
@@ -100,37 +94,35 @@
     @SmallTest
     public void testConsumerReserveRandom() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
 
         // Exercise.
         linker.ensureInitialized(/* asRelroProducer= */ false, PreferAddress.RESERVE_RANDOM, 0);
 
         // Verify.
-        Mockito.verify(mNativeMock)
-                .findMemoryRegionAtRandomAddress(anyLibInfo(), ArgumentMatchers.eq(true));
+        Mockito.verify(mNativeMock).findMemoryRegionAtRandomAddress(anyLibInfo());
     }
 
     @Test
     @SmallTest
     public void testReservingZeroFallsBackToRandom() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
 
         // Exercise.
         linker.ensureInitialized(/* asRelroProducer= */ false, PreferAddress.RESERVE_HINT, 0);
 
         // Verify.
-        Mockito.verify(mNativeMock)
-                .findMemoryRegionAtRandomAddress(anyLibInfo(), ArgumentMatchers.eq(true));
+        Mockito.verify(mNativeMock).findMemoryRegionAtRandomAddress(anyLibInfo());
     }
 
     @Test
     @SmallTest
     public void testAppZygoteProducingRelro() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
         // The lookup of the region succeeds.
         Mockito.when(mNativeMock.findRegionReservedByWebViewZygote(anyLibInfo())).thenReturn(true);
@@ -141,8 +133,7 @@
 
         // Verify.
         Mockito.verify(mNativeMock).findRegionReservedByWebViewZygote(anyLibInfo());
-        Mockito.verify(mNativeMock, Mockito.never())
-                .findMemoryRegionAtRandomAddress(anyLibInfo(), ArgumentMatchers.anyBoolean());
+        Mockito.verify(mNativeMock, Mockito.never()).findMemoryRegionAtRandomAddress(anyLibInfo());
         Mockito.verify(mNativeMock, Mockito.never()).reserveMemoryForLibrary(anyLibInfo());
     }
 
@@ -150,7 +141,7 @@
     @SmallTest
     public void testAppZygoteFailsToFindReservedAddressRange() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
         // The lookup of the region fails.
         Mockito.when(mNativeMock.findRegionReservedByWebViewZygote(anyLibInfo())).thenReturn(false);
@@ -160,17 +151,16 @@
 
         // Verify.
         Mockito.verify(mNativeMock).findRegionReservedByWebViewZygote(anyLibInfo());
-        Mockito.verify(mNativeMock)
-                .findMemoryRegionAtRandomAddress(anyLibInfo(), ArgumentMatchers.anyBoolean());
+        Mockito.verify(mNativeMock).findMemoryRegionAtRandomAddress(anyLibInfo());
     }
 
     @Test
     @SmallTest
     public void testRelroSharingStatusHistogram() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
-        Mockito.when(mModernLinkerNativeMock.getRelroSharingResult()).thenReturn(1);
+        Mockito.when(mNativeMock.getRelroSharingResult()).thenReturn(1);
         Linker.LibInfo libInfo = Mockito.spy(new Linker.LibInfo());
         long someAddress = 1 << 12;
         libInfo.mLoadAddress = someAddress;
@@ -199,7 +189,7 @@
     @SmallTest
     public void testBrowserExpectingRelroFromZygote() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
         // The lookup of the region succeeds.
         Mockito.when(mNativeMock.findRegionReservedByWebViewZygote(anyLibInfo())).thenReturn(true);
@@ -210,8 +200,7 @@
 
         // Verify.
         Mockito.verify(mNativeMock).findRegionReservedByWebViewZygote(anyLibInfo());
-        Mockito.verify(mNativeMock, Mockito.never())
-                .findMemoryRegionAtRandomAddress(anyLibInfo(), ArgumentMatchers.anyBoolean());
+        Mockito.verify(mNativeMock, Mockito.never()).findMemoryRegionAtRandomAddress(anyLibInfo());
         Mockito.verify(mNativeMock, Mockito.never()).reserveMemoryForLibrary(anyLibInfo());
     }
 
@@ -219,7 +208,7 @@
     @SmallTest
     public void testPrivilegedProcessWithHint() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
         // The lookup of the region succeeds.
         Mockito.when(mNativeMock.findRegionReservedByWebViewZygote(anyLibInfo())).thenReturn(true);
@@ -241,7 +230,7 @@
     @SmallTest
     public void testWebviewRegionSearchHistograms() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
         // The lookup of the region succeeds.
         Mockito.when(mNativeMock.findRegionReservedByWebViewZygote(anyLibInfo())).thenReturn(true);
@@ -263,7 +252,7 @@
     @SmallTest
     public void testWebviewRegionSearchFailedHistograms() {
         // Set up.
-        Linker linker = Mockito.spy(new ModernLinker());
+        Linker linker = Mockito.spy(new Linker());
         Mockito.doNothing().when(linker).loadLinkerJniLibraryLocked();
         // The lookup of the region fails.
         Mockito.when(mNativeMock.findRegionReservedByWebViewZygote(anyLibInfo())).thenReturn(false);
diff --git a/base/android/linker/linker_jni.cc b/base/android/linker/linker_jni.cc
index d6fc1bf..9230ac2 100644
--- a/base/android/linker/linker_jni.cc
+++ b/base/android/linker/linker_jni.cc
@@ -238,15 +238,11 @@
 Java_org_chromium_base_library_1loader_LinkerJni_nativeFindMemoryRegionAtRandomAddress(
     JNIEnv* env,
     jclass clazz,
-    jobject lib_info_obj,
-    jboolean keep_reserved) {
+    jobject lib_info_obj) {
   LOG_INFO("Entering");
   uintptr_t address;
   size_t size;
   ReserveAddressWithHint(0, &address, &size);
-  if (!keep_reserved && address != 0) {
-    munmap(reinterpret_cast<void*>(address), size);
-  }
   s_lib_info_fields.SetLoadInfo(env, lib_info_obj, address, size);
 }
 
diff --git a/base/android/linker/modern_linker_jni.cc b/base/android/linker/modern_linker_jni.cc
index c0f7e94..09850c3 100644
--- a/base/android/linker/modern_linker_jni.cc
+++ b/base/android/linker/modern_linker_jni.cc
@@ -582,7 +582,7 @@
 }
 
 JNI_GENERATOR_EXPORT jboolean
-Java_org_chromium_base_library_1loader_ModernLinkerJni_nativeLoadLibrary(
+Java_org_chromium_base_library_1loader_LinkerJni_nativeLoadLibrary(
     JNIEnv* env,
     jclass clazz,
     jstring jdlopen_ext_path,
@@ -604,7 +604,7 @@
 }
 
 JNI_GENERATOR_EXPORT jboolean
-Java_org_chromium_base_library_1loader_ModernLinkerJni_nativeUseRelros(
+Java_org_chromium_base_library_1loader_LinkerJni_nativeUseRelros(
     JNIEnv* env,
     jclass clazz,
     jlong local_load_address,
@@ -630,7 +630,7 @@
 }
 
 JNI_GENERATOR_EXPORT jint
-Java_org_chromium_base_library_1loader_ModernLinkerJni_nativeGetRelroSharingResult(
+Java_org_chromium_base_library_1loader_LinkerJni_nativeGetRelroSharingResult(
     JNIEnv* env,
     jclass clazz) {
   return static_cast<jint>(s_relro_sharing_status);
diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h
index 669ee16..0202f7d 100644
--- a/base/memory/raw_ptr.h
+++ b/base/memory/raw_ptr.h
@@ -674,6 +674,7 @@
 
 #endif  // BUILDFLAG(USE_BACKUP_REF_PTR)
 
+#if BUILDFLAG(USE_ASAN_BACKUP_REF_PTR)
 // Implementation that allows us to detect BackupRefPtr problems in ASan builds.
 struct AsanBackupRefPtrImpl {
   // Wraps a pointer.
@@ -754,6 +755,7 @@
   static BASE_EXPORT PA_NOINLINE void AsanCheckIfValidExtraction(
       void const volatile* ptr);
 };
+#endif  // BUILDFLAG(USE_ASAN_BACKUP_REF_PTR)
 
 template <class Super>
 struct RawPtrCountingImplWrapperForTest
diff --git a/base/memory/raw_ref.h b/base/memory/raw_ref.h
index 0d328f5..a8b7115f 100644
--- a/base/memory/raw_ref.h
+++ b/base/memory/raw_ref.h
@@ -61,13 +61,15 @@
   // and aborts. Failure to clear would be indicated by the related death tests
   // not CHECKing appropriately.
   static constexpr bool need_clear_after_move =
-      std::is_same_v<Impl, internal::RawPtrNoOpImpl> ||
 #if defined(RAW_PTR_USE_MTE_CHECKED_PTR)
       std::is_same_v<Impl,
                      internal::MTECheckedPtrImpl<
                          internal::MTECheckedPtrImplPartitionAllocSupport>> ||
 #endif  // defined(RAW_PTR_USE_MTE_CHECKED_PTR)
-      std::is_same_v<Impl, internal::AsanBackupRefPtrImpl>;
+#if BUILDFLAG(USE_ASAN_BACKUP_REF_PTR)
+      std::is_same_v<Impl, internal::AsanBackupRefPtrImpl> ||
+#endif  // BUILDFLAG(USE_ASAN_BACKUP_REF_PTR)
+      std::is_same_v<Impl, internal::RawPtrNoOpImpl>;
 
  public:
   PA_ALWAYS_INLINE explicit raw_ref(T& p) noexcept
diff --git a/base/trace_event/trace_event_unittest.cc b/base/trace_event/trace_event_unittest.cc
index 240e138..e729446 100644
--- a/base/trace_event/trace_event_unittest.cc
+++ b/base/trace_event/trace_event_unittest.cc
@@ -43,6 +43,10 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+#if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+#include "third_party/perfetto/protos/perfetto/config/chrome/chrome_config.gen.h"  // nogncheck
+#endif
+
 namespace base {
 namespace trace_event {
 
@@ -2495,5 +2499,49 @@
 #endif
 }
 
+#if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+class ConfigObserver : public TraceLog::EnabledStateObserver {
+ public:
+  ConfigObserver() = default;
+  ~ConfigObserver() override = default;
+
+  void OnTraceLogEnabled() override {
+    observed_config = TraceLog::GetInstance()->GetCurrentTraceConfig();
+    tracing_enabled.Signal();
+  }
+
+  void OnTraceLogDisabled() override {}
+
+  TraceConfig observed_config;
+  WaitableEvent tracing_enabled{WaitableEvent::ResetPolicy::AUTOMATIC,
+                                WaitableEvent::InitialState::NOT_SIGNALED};
+};
+
+// Test that GetCurrentTraceConfig() returns the correct config when tracing
+// was started through Perfetto SDK.
+TEST_F(TraceEventTestFixture, GetCurrentTraceConfig) {
+  ConfigObserver observer;
+  TraceLog::GetInstance()->AddEnabledStateObserver(&observer);
+
+  const TraceConfig actual_config{"foo,bar", ""};
+  perfetto::TraceConfig perfetto_config;
+  perfetto_config.add_buffers()->set_size_kb(1000);
+  auto* source_config = perfetto_config.add_data_sources()->mutable_config();
+  source_config->set_name("track_event");
+  source_config->set_target_buffer(0);
+  source_config->mutable_chrome_config()->set_trace_config(
+      actual_config.ToString());
+
+  auto tracing_session = perfetto::Tracing::NewTrace();
+  tracing_session->Setup(perfetto_config);
+  tracing_session->Start();
+
+  observer.tracing_enabled.Wait();
+  tracing_session->Stop();
+
+  EXPECT_EQ(actual_config.ToString(), observer.observed_config.ToString());
+}
+#endif  // BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+
 }  // namespace trace_event
 }  // namespace base
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc
index deb5197..08763fd5 100644
--- a/base/trace_event/trace_log.cc
+++ b/base/trace_event/trace_log.cc
@@ -830,6 +830,8 @@
 #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
   DCHECK(!trace_config.IsArgumentFilterEnabled());
 
+  // TODO(khokhlov): Avoid duplication between this code and
+  // services/tracing/public/cpp/perfetto/perfetto_config.cc.
   perfetto::TraceConfig perfetto_config;
   size_t size_limit = trace_config.GetTraceBufferSizeInKb();
   if (size_limit == 0)
@@ -857,7 +859,9 @@
   auto* source_config = data_source->mutable_config();
   source_config->set_name("track_event");
   source_config->set_target_buffer(0);
-  source_config->mutable_chrome_config()->set_convert_to_legacy_json(true);
+  auto* source_chrome_config = source_config->mutable_chrome_config();
+  source_chrome_config->set_trace_config(trace_config.ToString());
+  source_chrome_config->set_convert_to_legacy_json(true);
 
   if (trace_config.GetTraceRecordMode() == base::trace_event::ECHO_TO_CONSOLE) {
     perfetto::ConsoleInterceptor::Register();
@@ -868,6 +872,16 @@
       trace_config.ToPerfettoTrackEventConfigRaw(
           /*privacy_filtering_enabled = */ false));
 
+  if (trace_config.IsCategoryGroupEnabled("disabled-by-default-memory-infra")) {
+    data_source = perfetto_config.add_data_sources();
+    source_config = data_source->mutable_config();
+    source_config->set_name("org.chromium.memory_instrumentation");
+    source_config->set_target_buffer(0);
+    source_chrome_config = source_config->mutable_chrome_config();
+    source_chrome_config->set_trace_config(trace_config.ToString());
+    source_chrome_config->set_convert_to_legacy_json(true);
+  }
+
   // Clear incremental state every 5 seconds, so that we lose at most the first
   // 5 seconds of the trace (if we wrap around Perfetto's central buffer).
   perfetto_config.mutable_incremental_state_config()->set_clear_period_ms(5000);
@@ -1043,8 +1057,14 @@
 }
 
 TraceConfig TraceLog::GetCurrentTraceConfig() const {
+#if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
+  const auto chrome_config =
+      GetCurrentTrackEventDataSourceConfig().chrome_config();
+  return TraceConfig(chrome_config.trace_config());
+#else   // !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
   AutoLock lock(lock_);
   return trace_config_;
+#endif  // !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
 }
 
 void TraceLog::SetDisabled() {
diff --git a/build/android/gyp/nocompile_test.py b/build/android/gyp/nocompile_test.py
index da88504..c3b02d2 100755
--- a/build/android/gyp/nocompile_test.py
+++ b/build/android/gyp/nocompile_test.py
@@ -13,10 +13,10 @@
 from util import build_utils
 
 _CHROMIUM_SRC = os.path.normpath(os.path.join(__file__, '..', '..', '..', '..'))
-_NINJA_PATH = os.path.join(_CHROMIUM_SRC, 'third_party', 'depot_tools', 'ninja')
+_NINJA_PATH = os.path.join(_CHROMIUM_SRC, 'third_party', 'ninja', 'ninja')
 
 # Relative to _CHROMIUM_SRC
-_GN_SRC_REL_PATH = os.path.join('third_party', 'depot_tools', 'gn')
+_GN_SRC_REL_PATH = os.path.join('buildtools', 'linux64', 'gn')
 
 # Regex for determining whether compile failed because 'gn gen' needs to be run.
 _GN_GEN_REGEX = re.compile(r'ninja: (error|fatal):')
diff --git a/build/android/list_java_targets.py b/build/android/list_java_targets.py
index 5390957..78e849a 100755
--- a/build/android/list_java_targets.py
+++ b/build/android/list_java_targets.py
@@ -54,17 +54,25 @@
 )
 
 
-def _resolve_ninja(cmd):
+def _resolve_ninja():
   # Prefer the version on PATH, but fallback to known version if PATH doesn't
   # have one (e.g. on bots).
-  if shutil.which(cmd) is None:
-    return os.path.join(_SRC_ROOT, 'third_party', 'depot_tools', cmd)
-  return cmd
+  if shutil.which('ninja') is None:
+    return os.path.join(_SRC_ROOT, 'third_party', 'ninja', 'ninja')
+  return 'ninja'
+
+
+def _resolve_autoninja():
+  # Prefer the version on PATH, but fallback to known version if PATH doesn't
+  # have one (e.g. on bots).
+  if shutil.which('autoninja') is None:
+    return os.path.join(_SRC_ROOT, 'third_party', 'depot_tools', 'autoninja')
+  return 'autoninja'
 
 
 def _run_ninja(output_dir, args, quiet=False):
   cmd = [
-      _resolve_ninja('autoninja'),
+      _resolve_autoninja(),
       '-C',
       output_dir,
   ]
@@ -80,7 +88,7 @@
   # Query ninja rather than GN since it's faster.
   # Use ninja rather than autoninja to avoid extra output if user has set the
   # NINJA_SUMMARIZE_BUILD environment variable.
-  cmd = [_resolve_ninja('ninja'), '-C', output_dir, '-t', 'targets']
+  cmd = [_resolve_ninja(), '-C', output_dir, '-t', 'targets']
   logging.info('Running: %r', cmd)
   ninja_output = subprocess.run(cmd,
                                 check=True,
diff --git a/build/android/test/incremental_javac_gn/incremental_javac_test_android_library.py b/build/android/test/incremental_javac_gn/incremental_javac_test_android_library.py
index 117592f..6407450 100755
--- a/build/android/test/incremental_javac_gn/incremental_javac_test_android_library.py
+++ b/build/android/test/incremental_javac_gn/incremental_javac_test_android_library.py
@@ -16,10 +16,10 @@
 import shutil
 
 _CHROMIUM_SRC = pathlib.Path(__file__).resolve().parents[4].resolve()
-_NINJA_PATH = _CHROMIUM_SRC / 'third_party' / 'depot_tools' / 'ninja'
+_NINJA_PATH = _CHROMIUM_SRC / 'third_party' / 'ninja' / 'ninja'
 
 # Relative to _CHROMIUM_SRC
-_GN_SRC_REL_PATH = 'third_party/depot_tools/gn'
+_GN_SRC_REL_PATH = 'buildtools/linux64/gn'
 
 _USING_PARTIAL_JAVAC_MSG = 'Using partial javac optimization'
 
diff --git a/build/linux/sysroot_scripts/generated_package_lists/bullseye.amd64 b/build/linux/sysroot_scripts/generated_package_lists/bullseye.amd64
index fa817a5..9f7f87a 100644
--- a/build/linux/sysroot_scripts/generated_package_lists/bullseye.amd64
+++ b/build/linux/sysroot_scripts/generated_package_lists/bullseye.amd64
@@ -1,391 +1,391 @@
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-0_2.36.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-dev_2.36.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.0-3~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.0-3~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/attr/libattr1_2.4.48-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/audit/libaudit1_3.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-client3_0.8-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-common3_0.8-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2_1.16.0-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/colord/libcolord2_1.4.5-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl3-gnutls_7.82.0-2~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl4-gnutls-dev_7.82.0-2~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf1_0.183-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf-dev_0.183-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi0_1.0.8-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libasan6_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libitm1_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/liblsan0_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libquadmath0_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libtsan0_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6_2.31-13+deb11u3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-1_4.6.2+ds-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-dev_4.6.2+ds-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu/libicu67_67.1-7_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap2_2.44-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap-dev_2.44-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate0_1.7-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate-dev_1.7-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-intel1_2.4.104-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi7_3.3-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi-dev_3.3-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libice/libice6_1.0.10-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn/libidn11_1.33-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput10_1.16.4-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libm/libmd/libmd0_1.0.3-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1_3.1-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1_3.1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsm/libsm6_1.2.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai0_0.1.28-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtool/libltdl7_2.4.6-15_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva2_2.10.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-dev_2.10.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-drm2_2.10.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-glx2_2.10.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-wayland2_2.10.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-x11-2_2.10.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwacom/libwacom2_1.8-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-6_1.7.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau6_1.0.9-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi6_1.7.10-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss1_1.2.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt6_1.2.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/linux/linux-libc-dev_5.16.12-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lz4/liblz4-1_1.9.3-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lzo2/liblzo2-2_2.10-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/md4c/libmd4c0_0.4.7-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm1_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip1_1.1-8+b1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libhogweed6_3.7.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libnettle8_3.7.3-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4_4.29-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4-dev_4.29-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus0_1.3.1-0.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci3_3.7.0-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-dev_10.36-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre16-3_8.39-13_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre32-3_8.39-13_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3_8.39-13_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.19-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.19-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.19-4_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse0_14.2-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.1-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.1-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd0_250.4-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd-dev_250.4-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev1_250.4-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev-dev_250.4-1~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff5_4.2.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff-dev_4.2.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiffxx5_4.2.0-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/unbound/libunbound8_1.13.1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/valgrind/valgrind_3.16.1-1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan1_1.2.182.0-2~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan-dev_1.2.182.0-2~bpo11+1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft2_2.3.2-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft-dev_2.3.2-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xz-utils/liblzma5_5.2.5-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2_amd64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-0_2.38.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-dev_2.38.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-4~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-4~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.1-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.1-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/attr/libattr1_2.4.48-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/audit/libaudit1_3.0-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-client3_0.8-5+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-common3_0.8-5+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2_1.16.0-5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/colord/libcolord2_1.4.5-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl3-gnutls_7.85.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl4-gnutls-dev_7.85.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf1_0.187-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf-dev_0.187-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi0_1.0.8-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libasan6_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libitm1_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/liblsan0_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libquadmath0_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libtsan0_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6_2.31-13+deb11u5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-1_4.8.1+ds-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-dev_4.8.1+ds-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu/libicu67_67.1-7_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap2_2.44-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap-dev_2.44-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate0_1.10-2~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate-dev_1.10-2~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-intel1_2.4.104-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi7_3.3-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi-dev_3.3-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libice/libice6_1.0.10-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn/libidn11_1.33-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput10_1.16.4-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libm/libmd/libmd0_1.0.3-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1_3.1-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1_3.1-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsm/libsm6_1.2.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai0_0.1.28-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtool/libltdl7_2.4.6-15_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva2_2.14.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-dev_2.14.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-drm2_2.14.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-glx2_2.14.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-wayland2_2.14.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-x11-2_2.14.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwacom/libwacom2_1.8-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-6_1.7.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau6_1.0.9-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi6_1.7.10-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss1_1.2.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt6_1.2.0-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/linux/linux-libc-dev_6.0.3-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lz4/liblz4-1_1.9.3-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lzo2/liblzo2-2_2.10-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/md4c/libmd4c0_0.4.7-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm1_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip1_1.1-8+b1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libhogweed6_3.7.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libnettle8_3.7.3-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4_4.29-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4-dev_4.29-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus0_1.3.1-0.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci3_3.7.0-5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-dev_10.36-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre16-3_8.39-13_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre32-3_8.39-13_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3_8.39-13_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.58-2~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.58-2~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.58-2~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse0_14.2-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.4-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.4-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd0_251.3-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd-dev_251.3-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev1_251.3-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev-dev_251.3-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff5_4.2.0-1+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff-dev_4.2.0-1+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiffxx5_4.2.0-1+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/unbound/libunbound8_1.13.1-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/valgrind/valgrind_3.16.1-1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan1_1.3.224.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan-dev_1.3.224.0-1~bpo11+1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft2_2.3.2-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft-dev_2.3.2-2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xz-utils/liblzma5_5.2.5-2.1~deb11u1_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2+deb11u2_amd64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2+deb11u2_amd64.deb
diff --git a/build/linux/sysroot_scripts/generated_package_lists/bullseye.arm b/build/linux/sysroot_scripts/generated_package_lists/bullseye.arm
index b6c12c4..20517dc 100644
--- a/build/linux/sysroot_scripts/generated_package_lists/bullseye.arm
+++ b/build/linux/sysroot_scripts/generated_package_lists/bullseye.arm
@@ -1,391 +1,391 @@
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-0_2.36.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-dev_2.36.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.0-3~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.0-3~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/attr/libattr1_2.4.48-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/audit/libaudit1_3.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-client3_0.8-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-common3_0.8-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2_1.16.0-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/colord/libcolord2_1.4.5-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl3-gnutls_7.82.0-2~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl4-gnutls-dev_7.82.0-2~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf1_0.183-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf-dev_0.183-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi0_1.0.8-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libasan6_10.2.1-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6_2.31-13+deb11u3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-1_4.6.2+ds-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-dev_4.6.2+ds-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu/libicu67_67.1-7_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap2_2.44-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap-dev_2.44-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate0_1.7-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate-dev_1.7-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-exynos1_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-omap1_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.104-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi7_3.3-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi-dev_3.3-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libice/libice6_1.0.10-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn/libidn11_1.33-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput10_1.16.4-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libm/libmd/libmd0_1.0.3-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1_3.1-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1_3.1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsm/libsm6_1.2.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai0_0.1.28-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtool/libltdl7_2.4.6-15_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva2_2.10.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-dev_2.10.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-drm2_2.10.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-glx2_2.10.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-wayland2_2.10.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-x11-2_2.10.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwacom/libwacom2_1.8-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-6_1.7.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau6_1.0.9-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi6_1.7.10-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss1_1.2.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt6_1.2.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/linux/linux-libc-dev_5.16.12-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lz4/liblz4-1_1.9.3-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lzo2/liblzo2-2_2.10-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/md4c/libmd4c0_0.4.7-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm1_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip1_1.1-8+b1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libhogweed6_3.7.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libnettle8_3.7.3-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4_4.29-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4-dev_4.29-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus0_1.3.1-0.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci3_3.7.0-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-dev_10.36-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre16-3_8.39-13_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre32-3_8.39-13_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3_8.39-13_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.19-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.19-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.19-4_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse0_14.2-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.1-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.1-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd0_250.4-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd-dev_250.4-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev1_250.4-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev-dev_250.4-1~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff5_4.2.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff-dev_4.2.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiffxx5_4.2.0-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/unbound/libunbound8_1.13.1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/valgrind/valgrind_3.16.1-1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan1_1.2.182.0-2~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan-dev_1.2.182.0-2~bpo11+1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft2_2.3.2-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft-dev_2.3.2-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xz-utils/liblzma5_5.2.5-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2_armhf.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-0_2.38.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-dev_2.38.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-4~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-4~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.1-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.1-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/attr/libattr1_2.4.48-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/audit/libaudit1_3.0-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-client3_0.8-5+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-common3_0.8-5+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2_1.16.0-5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/colord/libcolord2_1.4.5-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl3-gnutls_7.85.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl4-gnutls-dev_7.85.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf1_0.187-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf-dev_0.187-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi0_1.0.8-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libasan6_10.2.1-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6_2.31-13+deb11u5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-1_4.8.1+ds-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-dev_4.8.1+ds-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu/libicu67_67.1-7_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap2_2.44-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap-dev_2.44-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate0_1.10-2~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate-dev_1.10-2~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-exynos1_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-omap1_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.104-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi7_3.3-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi-dev_3.3-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libice/libice6_1.0.10-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn/libidn11_1.33-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput10_1.16.4-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libm/libmd/libmd0_1.0.3-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1_3.1-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1_3.1-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsm/libsm6_1.2.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai0_0.1.28-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtool/libltdl7_2.4.6-15_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva2_2.14.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-dev_2.14.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-drm2_2.14.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-glx2_2.14.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-wayland2_2.14.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-x11-2_2.14.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwacom/libwacom2_1.8-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-6_1.7.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau6_1.0.9-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi6_1.7.10-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss1_1.2.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt6_1.2.0-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/linux/linux-libc-dev_6.0.3-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lz4/liblz4-1_1.9.3-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lzo2/liblzo2-2_2.10-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/md4c/libmd4c0_0.4.7-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm1_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip1_1.1-8+b1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libhogweed6_3.7.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libnettle8_3.7.3-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4_4.29-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4-dev_4.29-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus0_1.3.1-0.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci3_3.7.0-5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-dev_10.36-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre16-3_8.39-13_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre32-3_8.39-13_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3_8.39-13_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.58-2~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.58-2~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.58-2~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse0_14.2-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.4-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.4-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd0_251.3-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd-dev_251.3-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev1_251.3-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev-dev_251.3-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff5_4.2.0-1+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff-dev_4.2.0-1+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiffxx5_4.2.0-1+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/unbound/libunbound8_1.13.1-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/valgrind/valgrind_3.16.1-1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan1_1.3.224.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan-dev_1.3.224.0-1~bpo11+1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft2_2.3.2-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft-dev_2.3.2-2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xz-utils/liblzma5_5.2.5-2.1~deb11u1_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2+deb11u2_armhf.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2+deb11u2_armhf.deb
diff --git a/build/linux/sysroot_scripts/generated_package_lists/bullseye.arm64 b/build/linux/sysroot_scripts/generated_package_lists/bullseye.arm64
index 5a7a4df..b191ace 100644
--- a/build/linux/sysroot_scripts/generated_package_lists/bullseye.arm64
+++ b/build/linux/sysroot_scripts/generated_package_lists/bullseye.arm64
@@ -1,394 +1,394 @@
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-0_2.36.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-dev_2.36.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.0-3~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.0-3~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/attr/libattr1_2.4.48-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/audit/libaudit1_3.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-client3_0.8-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-common3_0.8-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2_1.16.0-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/colord/libcolord2_1.4.5-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl3-gnutls_7.82.0-2~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl4-gnutls-dev_7.82.0-2~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf1_0.183-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf-dev_0.183-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi0_1.0.8-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libasan6_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libitm1_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/liblsan0_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libtsan0_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6_2.31-13+deb11u3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-1_4.6.2+ds-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-dev_4.6.2+ds-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu/libicu67_67.1-7_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap2_2.44-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap-dev_2.44-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate0_1.7-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate-dev_1.7-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.104-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.104-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.104-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi7_3.3-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi-dev_3.3-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libice/libice6_1.0.10-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn/libidn11_1.33-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput10_1.16.4-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libm/libmd/libmd0_1.0.3-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1_3.1-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1_3.1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsm/libsm6_1.2.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai0_0.1.28-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai0_0.1.28-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtool/libltdl7_2.4.6-15_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva2_2.10.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-dev_2.10.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-drm2_2.10.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-glx2_2.10.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-wayland2_2.10.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-x11-2_2.10.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwacom/libwacom2_1.8-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-6_1.7.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau6_1.0.9-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi6_1.7.10-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss1_1.2.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt6_1.2.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/linux/linux-libc-dev_5.16.12-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lz4/liblz4-1_1.9.3-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lzo2/liblzo2-2_2.10-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/md4c/libmd4c0_0.4.7-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm1_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip1_1.1-8+b1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libhogweed6_3.7.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libnettle8_3.7.3-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4_4.29-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4-dev_4.29-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus0_1.3.1-0.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci3_3.7.0-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-dev_10.36-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre16-3_8.39-13_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre32-3_8.39-13_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3_8.39-13_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.19-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.19-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.19-4_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse0_14.2-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.1-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.1-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd0_250.4-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd-dev_250.4-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev1_250.4-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev-dev_250.4-1~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff5_4.2.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff-dev_4.2.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiffxx5_4.2.0-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/unbound/libunbound8_1.13.1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/valgrind/valgrind_3.16.1-1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan1_1.2.182.0-2~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan-dev_1.2.182.0-2~bpo11+1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft2_2.3.2-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft-dev_2.3.2-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xz-utils/liblzma5_5.2.5-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2_arm64.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-0_2.38.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-dev_2.38.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-4~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-4~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.1-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.1-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/attr/libattr1_2.4.48-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/audit/libaudit1_3.0-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-client3_0.8-5+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-common3_0.8-5+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2_1.16.0-5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/colord/libcolord2_1.4.5-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl3-gnutls_7.85.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl4-gnutls-dev_7.85.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf1_0.187-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf-dev_0.187-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi0_1.0.8-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libasan6_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libitm1_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/liblsan0_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libtsan0_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6_2.31-13+deb11u5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-1_4.8.1+ds-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-dev_4.8.1+ds-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu/libicu67_67.1-7_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap2_2.44-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap-dev_2.44-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate0_1.10-2~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate-dev_1.10-2~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.104-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.104-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.104-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi7_3.3-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi-dev_3.3-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libice/libice6_1.0.10-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn/libidn11_1.33-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput10_1.16.4-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libm/libmd/libmd0_1.0.3-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1_3.1-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1_3.1-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsm/libsm6_1.2.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai0_0.1.28-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai0_0.1.28-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtool/libltdl7_2.4.6-15_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva2_2.14.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-dev_2.14.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-drm2_2.14.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-glx2_2.14.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-wayland2_2.14.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-x11-2_2.14.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwacom/libwacom2_1.8-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-6_1.7.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau6_1.0.9-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi6_1.7.10-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss1_1.2.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt6_1.2.0-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/linux/linux-libc-dev_6.0.3-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lz4/liblz4-1_1.9.3-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lzo2/liblzo2-2_2.10-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/md4c/libmd4c0_0.4.7-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm1_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip1_1.1-8+b1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libhogweed6_3.7.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libnettle8_3.7.3-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4_4.29-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4-dev_4.29-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus0_1.3.1-0.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci3_3.7.0-5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-dev_10.36-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre16-3_8.39-13_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre32-3_8.39-13_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3_8.39-13_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.58-2~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.58-2~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.58-2~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse0_14.2-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.4-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.4-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd0_251.3-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd-dev_251.3-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev1_251.3-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev-dev_251.3-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff5_4.2.0-1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff-dev_4.2.0-1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiffxx5_4.2.0-1+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/unbound/libunbound8_1.13.1-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/valgrind/valgrind_3.16.1-1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan1_1.3.224.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan-dev_1.3.224.0-1~bpo11+1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft2_2.3.2-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft-dev_2.3.2-2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xz-utils/liblzma5_5.2.5-2.1~deb11u1_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2+deb11u2_arm64.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2+deb11u2_arm64.deb
diff --git a/build/linux/sysroot_scripts/generated_package_lists/bullseye.armel b/build/linux/sysroot_scripts/generated_package_lists/bullseye.armel
index 00352f7c..d67cd5d 100644
--- a/build/linux/sysroot_scripts/generated_package_lists/bullseye.armel
+++ b/build/linux/sysroot_scripts/generated_package_lists/bullseye.armel
@@ -1,389 +1,389 @@
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-0_2.36.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-dev_2.36.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.0-3~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.0-3~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/attr/libattr1_2.4.48-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/audit/libaudit1_3.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-client3_0.8-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-common3_0.8-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2_1.16.0-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/colord/libcolord2_1.4.5-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl3-gnutls_7.82.0-2~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl4-gnutls-dev_7.82.0-2~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf1_0.183-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf-dev_0.183-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi0_1.0.8-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libasan6_10.2.1-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6_2.31-13+deb11u3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-1_4.6.2+ds-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-dev_4.6.2+ds-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu/libicu67_67.1-7_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap2_2.44-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap-dev_2.44-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate0_1.7-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate-dev_1.7-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-exynos1_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-omap1_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.104-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi7_3.3-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi-dev_3.3-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libice/libice6_1.0.10-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn/libidn11_1.33-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput10_1.16.4-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libm/libmd/libmd0_1.0.3-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1_3.1-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1_3.1-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsm/libsm6_1.2.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai0_0.1.28-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtool/libltdl7_2.4.6-15_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva2_2.10.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-dev_2.10.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-drm2_2.10.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-glx2_2.10.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-wayland2_2.10.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-x11-2_2.10.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwacom/libwacom2_1.8-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-6_1.7.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau6_1.0.9-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi6_1.7.10-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss1_1.2.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt6_1.2.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/linux/linux-libc-dev_5.16.12-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lz4/liblz4-1_1.9.3-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lzo2/liblzo2-2_2.10-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/md4c/libmd4c0_0.4.7-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm1_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip1_1.1-8+b1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libhogweed6_3.7.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libnettle8_3.7.3-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4_4.29-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4-dev_4.29-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus0_1.3.1-0.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci3_3.7.0-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-dev_10.36-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre16-3_8.39-13_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre32-3_8.39-13_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3_8.39-13_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.19-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.19-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.19-4_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse0_14.2-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.1-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.1-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd0_250.4-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd-dev_250.4-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev1_250.4-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev-dev_250.4-1~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff5_4.2.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff-dev_4.2.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiffxx5_4.2.0-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/unbound/libunbound8_1.13.1-1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan1_1.2.182.0-2~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan-dev_1.2.182.0-2~bpo11+1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft2_2.3.2-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft-dev_2.3.2-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xz-utils/liblzma5_5.2.5-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2_armel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-0_2.38.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-dev_2.38.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-4~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-4~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.1-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.1-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/attr/libattr1_2.4.48-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/audit/libaudit1_3.0-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-client3_0.8-5+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-common3_0.8-5+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2_1.16.0-5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/colord/libcolord2_1.4.5-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl3-gnutls_7.85.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl4-gnutls-dev_7.85.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf1_0.187-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf-dev_0.187-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi0_1.0.8-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libasan6_10.2.1-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6_2.31-13+deb11u5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-1_4.8.1+ds-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-dev_4.8.1+ds-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu/libicu67_67.1-7_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap2_2.44-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap-dev_2.44-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate0_1.10-2~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate-dev_1.10-2~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-exynos1_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-omap1_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.104-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi7_3.3-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi-dev_3.3-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libice/libice6_1.0.10-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn/libidn11_1.33-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput10_1.16.4-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libm/libmd/libmd0_1.0.3-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1_3.1-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1_3.1-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsm/libsm6_1.2.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai0_0.1.28-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtool/libltdl7_2.4.6-15_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva2_2.14.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-dev_2.14.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-drm2_2.14.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-glx2_2.14.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-wayland2_2.14.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-x11-2_2.14.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwacom/libwacom2_1.8-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-6_1.7.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau6_1.0.9-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi6_1.7.10-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss1_1.2.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt6_1.2.0-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/linux/linux-libc-dev_6.0.3-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lz4/liblz4-1_1.9.3-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lzo2/liblzo2-2_2.10-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/md4c/libmd4c0_0.4.7-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm1_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip1_1.1-8+b1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libhogweed6_3.7.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libnettle8_3.7.3-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4_4.29-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4-dev_4.29-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus0_1.3.1-0.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci3_3.7.0-5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-dev_10.36-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre16-3_8.39-13_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre32-3_8.39-13_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3_8.39-13_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.58-2~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.58-2~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.58-2~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse0_14.2-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.4-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.4-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd0_251.3-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd-dev_251.3-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev1_251.3-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev-dev_251.3-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff5_4.2.0-1+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff-dev_4.2.0-1+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiffxx5_4.2.0-1+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/unbound/libunbound8_1.13.1-1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan1_1.3.224.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan-dev_1.3.224.0-1~bpo11+1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft2_2.3.2-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft-dev_2.3.2-2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xz-utils/liblzma5_5.2.5-2.1~deb11u1_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2+deb11u2_armel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2+deb11u2_armel.deb
diff --git a/build/linux/sysroot_scripts/generated_package_lists/bullseye.i386 b/build/linux/sysroot_scripts/generated_package_lists/bullseye.i386
index 1d21041..4802e40 100644
--- a/build/linux/sysroot_scripts/generated_package_lists/bullseye.i386
+++ b/build/linux/sysroot_scripts/generated_package_lists/bullseye.i386
@@ -1,389 +1,389 @@
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-0_2.36.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-dev_2.36.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.0-3~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.0-3~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/attr/libattr1_2.4.48-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/audit/libaudit1_3.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-client3_0.8-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-common3_0.8-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2_1.16.0-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/colord/libcolord2_1.4.5-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl3-gnutls_7.82.0-2~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl4-gnutls-dev_7.82.0-2~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf1_0.183-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf-dev_0.183-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi0_1.0.8-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libasan6_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libitm1_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libquadmath0_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6_2.31-13+deb11u3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-1_4.6.2+ds-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-dev_4.6.2+ds-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu/libicu67_67.1-7_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap2_2.44-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap-dev_2.44-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate0_1.7-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate-dev_1.7-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-intel1_2.4.104-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi7_3.3-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi-dev_3.3-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libice/libice6_1.0.10-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn/libidn11_1.33-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput10_1.16.4-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libm/libmd/libmd0_1.0.3-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1_3.1-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1_3.1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsm/libsm6_1.2.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai0_0.1.28-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtool/libltdl7_2.4.6-15_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva2_2.10.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-dev_2.10.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-drm2_2.10.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-glx2_2.10.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-wayland2_2.10.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-x11-2_2.10.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwacom/libwacom2_1.8-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-6_1.7.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau6_1.0.9-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi6_1.7.10-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss1_1.2.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt6_1.2.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/linux/linux-libc-dev_5.16.12-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lz4/liblz4-1_1.9.3-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lzo2/liblzo2-2_2.10-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/md4c/libmd4c0_0.4.7-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm1_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip1_1.1-8+b1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libhogweed6_3.7.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libnettle8_3.7.3-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4_4.29-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4-dev_4.29-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus0_1.3.1-0.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci3_3.7.0-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-dev_10.36-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre16-3_8.39-13_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre32-3_8.39-13_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3_8.39-13_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.19-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.19-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.19-4_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse0_14.2-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.1-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.1-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd0_250.4-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd-dev_250.4-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev1_250.4-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev-dev_250.4-1~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff5_4.2.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff-dev_4.2.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiffxx5_4.2.0-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/unbound/libunbound8_1.13.1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/valgrind/valgrind_3.16.1-1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan1_1.2.182.0-2~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan-dev_1.2.182.0-2~bpo11+1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft2_2.3.2-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft-dev_2.3.2-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xz-utils/liblzma5_5.2.5-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2_i386.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-0_2.38.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-dev_2.38.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-4~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-4~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.1-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.1-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/attr/libattr1_2.4.48-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/audit/libaudit1_3.0-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-client3_0.8-5+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-common3_0.8-5+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2_1.16.0-5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/colord/libcolord2_1.4.5-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl3-gnutls_7.85.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl4-gnutls-dev_7.85.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf1_0.187-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf-dev_0.187-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi0_1.0.8-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libasan6_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libitm1_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libquadmath0_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libubsan1_10.2.1-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6_2.31-13+deb11u5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-1_4.8.1+ds-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-dev_4.8.1+ds-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu/libicu67_67.1-7_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap2_2.44-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap-dev_2.44-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate0_1.10-2~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate-dev_1.10-2~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-intel1_2.4.104-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi7_3.3-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi-dev_3.3-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libice/libice6_1.0.10-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn/libidn11_1.33-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput10_1.16.4-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libm/libmd/libmd0_1.0.3-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1_3.1-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1_3.1-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsm/libsm6_1.2.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai0_0.1.28-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtool/libltdl7_2.4.6-15_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva2_2.14.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-dev_2.14.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-drm2_2.14.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-glx2_2.14.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-wayland2_2.14.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-x11-2_2.14.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwacom/libwacom2_1.8-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-6_1.7.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau6_1.0.9-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi6_1.7.10-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss1_1.2.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt6_1.2.0-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/linux/linux-libc-dev_6.0.3-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lz4/liblz4-1_1.9.3-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lzo2/liblzo2-2_2.10-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/md4c/libmd4c0_0.4.7-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm1_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip1_1.1-8+b1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libhogweed6_3.7.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libnettle8_3.7.3-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4_4.29-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4-dev_4.29-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus0_1.3.1-0.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci3_3.7.0-5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-dev_10.36-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre16-3_8.39-13_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre32-3_8.39-13_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3_8.39-13_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.58-2~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.58-2~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.58-2~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse0_14.2-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.4-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.4-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd0_251.3-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd-dev_251.3-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev1_251.3-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev-dev_251.3-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff5_4.2.0-1+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff-dev_4.2.0-1+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiffxx5_4.2.0-1+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/unbound/libunbound8_1.13.1-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/valgrind/valgrind_3.16.1-1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan1_1.3.224.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan-dev_1.3.224.0-1~bpo11+1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft2_2.3.2-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft-dev_2.3.2-2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xz-utils/liblzma5_5.2.5-2.1~deb11u1_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2+deb11u2_i386.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2+deb11u2_i386.deb
diff --git a/build/linux/sysroot_scripts/generated_package_lists/bullseye.mips64el b/build/linux/sysroot_scripts/generated_package_lists/bullseye.mips64el
index b293cd6..39f6e39 100644
--- a/build/linux/sysroot_scripts/generated_package_lists/bullseye.mips64el
+++ b/build/linux/sysroot_scripts/generated_package_lists/bullseye.mips64el
@@ -1,384 +1,384 @@
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-0_2.36.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-dev_2.36.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.42.0-2~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.42.0-2~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/attr/libattr1_2.4.48-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/audit/libaudit1_3.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-client3_0.8-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-common3_0.8-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2_1.16.0-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/colord/libcolord2_1.4.5-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl3-gnutls_7.82.0-2~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl4-gnutls-dev_7.82.0-2~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf1_0.183-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf-dev_0.183-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi0_1.0.8-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6_2.31-13+deb11u3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-1_4.6.2+ds-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-dev_4.6.2+ds-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu/libicu67_67.1-7_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap2_2.44-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap-dev_2.44-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate0_1.7-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate-dev_1.7-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi7_3.3-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi-dev_3.3-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libice/libice6_1.0.10-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn/libidn11_1.33-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput10_1.16.4-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libm/libmd/libmd0_1.0.3-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1_3.1-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1_3.1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsm/libsm6_1.2.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai0_0.1.28-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtool/libltdl7_2.4.6-15_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva2_2.10.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-dev_2.10.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-drm2_2.10.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-glx2_2.10.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-wayland2_2.10.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-x11-2_2.10.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwacom/libwacom2_1.8-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-6_1.7.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau6_1.0.9-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi6_1.7.10-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss1_1.2.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt6_1.2.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/linux/linux-libc-dev_5.16.12-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lz4/liblz4-1_1.9.3-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lzo2/liblzo2-2_2.10-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/md4c/libmd4c0_0.4.7-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm1_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip1_1.1-8+b1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libhogweed6_3.7.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libnettle8_3.7.3-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4_4.29-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4-dev_4.29-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus0_1.3.1-0.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci3_3.7.0-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-dev_10.36-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre16-3_8.39-13_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre32-3_8.39-13_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3_8.39-13_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.19-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.19-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.19-4_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse0_14.2-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.1-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.1-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd0_250.4-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd-dev_250.4-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev1_250.4-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev-dev_250.4-1~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff5_4.2.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff-dev_4.2.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiffxx5_4.2.0-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/unbound/libunbound8_1.13.1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/valgrind/valgrind_3.16.1-1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan1_1.2.182.0-2~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan-dev_1.2.182.0-2~bpo11+1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft2_2.3.2-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft-dev_2.3.2-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xz-utils/liblzma5_5.2.5-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2_mips64el.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-0_2.38.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-dev_2.38.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-4~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-4~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.1-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.1-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/attr/libattr1_2.4.48-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/audit/libaudit1_3.0-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-client3_0.8-5+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-common3_0.8-5+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2_1.16.0-5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/colord/libcolord2_1.4.5-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl3-gnutls_7.85.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl4-gnutls-dev_7.85.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf1_0.187-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf-dev_0.187-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi0_1.0.8-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6_2.31-13+deb11u5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-1_4.8.1+ds-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-dev_4.8.1+ds-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu/libicu67_67.1-7_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap2_2.44-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap-dev_2.44-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate0_1.10-2~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate-dev_1.10-2~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi7_3.3-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi-dev_3.3-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libice/libice6_1.0.10-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn/libidn11_1.33-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput10_1.16.4-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libm/libmd/libmd0_1.0.3-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1_3.1-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1_3.1-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsm/libsm6_1.2.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai0_0.1.28-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtool/libltdl7_2.4.6-15_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva2_2.14.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-dev_2.14.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-drm2_2.14.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-glx2_2.14.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-wayland2_2.14.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-x11-2_2.14.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwacom/libwacom2_1.8-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-6_1.7.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau6_1.0.9-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi6_1.7.10-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss1_1.2.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt6_1.2.0-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/linux/linux-libc-dev_5.19.11-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lz4/liblz4-1_1.9.3-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lzo2/liblzo2-2_2.10-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/md4c/libmd4c0_0.4.7-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm1_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip1_1.1-8+b1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libhogweed6_3.7.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libnettle8_3.7.3-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4_4.29-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4-dev_4.29-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus0_1.3.1-0.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci3_3.7.0-5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-dev_10.36-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre16-3_8.39-13_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre32-3_8.39-13_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3_8.39-13_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.58-2~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.58-2~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.58-2~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse0_14.2-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.4-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.4-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd0_251.3-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd-dev_251.3-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev1_251.3-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev-dev_251.3-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff5_4.2.0-1+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff-dev_4.2.0-1+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiffxx5_4.2.0-1+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/unbound/libunbound8_1.13.1-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/valgrind/valgrind_3.16.1-1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan1_1.3.224.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan-dev_1.3.224.0-1~bpo11+1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft2_2.3.2-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft-dev_2.3.2-2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xz-utils/liblzma5_5.2.5-2.1~deb11u1_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2+deb11u2_mips64el.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2+deb11u2_mips64el.deb
diff --git a/build/linux/sysroot_scripts/generated_package_lists/bullseye.mipsel b/build/linux/sysroot_scripts/generated_package_lists/bullseye.mipsel
index 967c9ad..9027494 100644
--- a/build/linux/sysroot_scripts/generated_package_lists/bullseye.mipsel
+++ b/build/linux/sysroot_scripts/generated_package_lists/bullseye.mipsel
@@ -1,383 +1,383 @@
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-0_2.36.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/atk1.0/libatk1.0-dev_2.36.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.42.0-2~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.42.0-2~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/attr/libattr1_2.4.48-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/audit/libaudit1_3.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-client3_0.8-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/a/avahi/libavahi-common3_0.8-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2_1.16.0-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/colord/libcolord2_1.4.5-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl3-gnutls_7.82.0-2~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/curl/libcurl4-gnutls-dev_7.82.0-2~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf1_0.183-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/elfutils/libelf-dev_0.183-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi0_1.0.8-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6_2.31-13+deb11u3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-1_4.6.2+ds-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/g/gtk4/libgtk-4-dev_4.6.2+ds-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/i/icu/libicu67_67.1-7_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap2_2.44-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap2/libcap-dev_2.44-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate0_1.7-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdeflate/libdeflate-dev_1.7-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi7_3.3-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libf/libffi/libffi-dev_3.3-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libice/libice6_1.0.10-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libidn/libidn11_1.33-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput10_1.16.4-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libm/libmd/libmd0_1.0.3-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1_3.1-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1_3.1-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsm/libsm6_1.2.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai0_0.1.28-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libt/libtool/libltdl7_2.4.6-15_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva2_2.10.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-dev_2.10.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-drm2_2.10.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-glx2_2.10.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-wayland2_2.10.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libva/libva-x11-2_2.10.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwacom/libwacom2_1.8-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-6_1.7.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau6_1.0.9-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi6_1.7.10-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss1_1.2.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt6_1.2.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/linux/linux-libc-dev_5.16.12-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lz4/liblz4-1_1.9.3-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/l/lzo2/liblzo2-2_2.10-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/md4c/libmd4c0_0.4.7-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm1_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip1_1.1-8+b1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libhogweed6_3.7.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nettle/libnettle8_3.7.3-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4_4.29-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nspr/libnspr4-dev_4.29-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus0_1.3.1-0.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci3_3.7.0-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-dev_10.36-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre16-3_8.39-13_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre32-3_8.39-13_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3_8.39-13_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.19-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.19-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.19-4_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse0_14.2-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.1-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.1-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd0_250.4-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libsystemd-dev_250.4-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev1_250.4-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/s/systemd/libudev-dev_250.4-1~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff5_4.2.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiff-dev_4.2.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/t/tiff/libtiffxx5_4.2.0-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/unbound/libunbound8_1.13.1-1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan1_1.2.182.0-2~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/v/vulkan-loader/libvulkan-dev_1.2.182.0-2~bpo11+1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft2_2.3.2-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xft/libxft-dev_2.3.2-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/x/xz-utils/liblzma5_5.2.5-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2_mipsel.deb
-https://snapshot.debian.org/archive/debian/20220331T153654Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2_1.2.4-1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/alsa-lib/libasound2-dev_1.2.4-1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-0_2.38.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/atk1.0/libatk1.0-dev_2.38.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.38.0-4~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.38.0-4~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.44.1-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.44.1-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/attr/libattr1_2.4.48-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/audit/libaudit1_3.0-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-client3_0.8-5+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/a/avahi/libavahi-common3_0.8-5+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth3_5.55-3.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/bluez/libbluetooth-dev_5.55-3.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli1_1.0.9-2+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/b/brotli/libbrotli-dev_1.0.9-2+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2_1.16.0-5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo2-dev_1.16.0-5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/colord/libcolord2_1.4.5-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2_2.3.3op2-3+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcups2-dev_2.3.3op2-3+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2_2.3.3op2-3+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cups/libcupsimage2-dev_2.3.3op2-3+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl3-gnutls_7.85.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/curl/libcurl4-gnutls-dev_7.85.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/c/cyrus-sasl2/libsasl2-2_2.1.27+dfsg-2.1+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.8_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-3_1.12.20-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/dbus/libdbus-1-dev_1.12.20-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.46.5-2~bpo11+2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/e2fsprogs/libcom-err2_1.46.5-2~bpo11+2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf1_0.187-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/elfutils/libelf-dev_0.187-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1_2.2.10-2+deb11u3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/e/expat/libexpat1-dev_2.2.10-2+deb11u3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac8_1.3.3-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/flac/libflac-dev_1.3.3-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fontconfig/libfontconfig-dev_2.13.1-4.2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype6_2.10.4+dfsg-1+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/freetype/libfreetype-dev_2.10.4+dfsg-1+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi0_1.0.8-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/f/fribidi/libfribidi-dev_1.0.8-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libatomic1_10.2.1-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libgomp1_10.2.1-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-0_2.42.2+dfsg-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf-2.0-dev_2.42.2+dfsg-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-0_2.66.8-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glib2.0/libglib2.0-dev_2.66.8-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6_2.31-13+deb11u5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gmp/libgmp10_6.2.1+dfsg-1+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls28-dev_3.7.1-5+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls30_3.7.1-5+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-dane0_3.7.1-5+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutls-openssl27_3.7.1-5+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gnutls28/libgnutlsxx28_3.7.1-5+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.4+dfsg1-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.4+dfsg1-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-3_1.3.14-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/graphite2/libgraphite2-dev_1.3.14-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.33-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.24-4+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.24-4+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-1_4.8.1+ds-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/g/gtk4/libgtk-4-dev_4.8.1+ds-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz0b_2.7.4-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.7.4-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.7.4-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.7.4-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/i/icu/libicu67_67.1-7_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/jbigkit/libjbig-dev_2.1-3.1+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.6.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/keyutils/libkeyutils1_1.6.1-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/krb5-multidev_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssapi-krb5-2_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libgssrpc4_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libk5crypto3_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkadm5srv-mit12_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkdb5-10_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-3_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5-dev_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/k/krb5/libkrb5support0_1.18.3-6+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libb/libbsd/libbsd0_0.11.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap2_2.44-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap2/libcap-dev_2.44-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2.2+b1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libc/libcloudproviders/libcloudproviders0_0.3.0-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie1_0.2.13-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdatrie/libdatrie-dev_0.2.13-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr492+repack1-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr492+repack1-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr492+repack1-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate0_1.10-2~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdeflate/libdeflate-dev_1.10-2~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm2_2.4.104-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.104-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-dev_2.4.104-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.104-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.104-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy0_1.5.8-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.8-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev2_1.11.0+dfsg-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevdev/libevdev-dev_1.11.0+dfsg-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libe/libevent/libevent-2.1-7_2.1.12-stable-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi7_3.3-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libf/libffi/libffi-dev_3.3-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.7-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.7-6_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl1_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libegl-dev_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl1_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgl-dev_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles1_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles2_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libgles-dev_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglvnd-dev_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx0_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libglx-dev_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libglvnd/libopengl0_1.3.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error0_1.38-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.38-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libg/libgudev/libgudev-1.0-0_234-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libice/libice6_1.0.10-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn2/libidn2-0_2.3.0-5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libidn/libidn11_1.33-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput10_1.16.4-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libi/libinput/libinput-dev_1.16.4-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_2.0.6-4_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_2.0.6-4_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp24_1.9.4-4_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.9.4-4_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libm/libmd/libmd0_1.0.3-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnsl/libnsl2_1.3.0-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b10_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg0_1.3.4-0.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libo/libogg/libogg-dev_1.3.4-0.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpciaccess/libpciaccess0_0.16-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpsl/libpsl5_0.21.0-1.2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1_3.1-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libselinux/libselinux1-dev_3.1-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1_3.1-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsepol/libsepol1-dev_3.1-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsm/libsm6_1.2.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsndfile/libsndfile1_1.0.31-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.72.0-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.72.0-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libs/libssh2/libssh2-1_1.9.0-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtasn1-6/libtasn1-6_4.16.0-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai0_0.1.28-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libthai/libthai-dev_0.1.28-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtirpc/libtirpc3_1.3.1-1+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libt/libtool/libltdl7_2.4.6-15_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libunistring/libunistring2_0.9.10-4_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter0_1.2.1-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libu/libutempter/libutempter-dev_1.2.1-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva2_2.14.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-dev_2.14.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-drm2_2.14.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-glx2_2.14.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-wayland2_2.14.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libva/libva-x11-2_2.14.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbis0a_1.3.7-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.7-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwacom/libwacom2_1.8-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp6_0.6.1-2.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-6_1.7.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-dev_1.7.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb1_1.7.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libx11/libx11-xcb-dev_1.7.2-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau6_1.0.9-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxau/libxau-dev_1.0.9-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb1-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-dri3-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-present-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-randr0-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-render0-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shape0-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync1_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-sync-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xfixes0-dev_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinerama0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xinput0_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcb/libxcb-xkb1_1.14-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt1_4.4.18-4_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcrypt/libcrypt-dev_4.4.18-4_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext6_1.3.3-1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxext/libxext-dev_1.3.3-1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi6_1.7.10-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxi/libxi-dev_1.7.10-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon0_1.0.3-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_1.0.3-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.0.3-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2_2.9.10+dfsg-6.7+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxml2/libxml2-dev_2.9.10+dfsg-6.7+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxshmfence/libxshmfence-dev_1.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1.1_1.1.34-4+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxslt/libxslt1-dev_1.1.34-4+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss1_1.2.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt6_1.2.0-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxt/libxt-dev_1.2.0-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/libz/libzstd/libzstd1_1.4.8+dfsg-2.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lcms2/liblcms2-2_2.12~rc1-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/linux/linux-libc-dev_5.19.11-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lz4/liblz4-1_1.9.3-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/l/lzo2/liblzo2-2_2.10-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/md4c/libmd4c0_0.4.7-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libegl1-mesa-dev_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm1_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgbm-dev_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-dev_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libgl1-mesa-glx_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libglapi-mesa_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/libwayland-egl1-mesa_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mesa/mesa-common-dev_20.3.5-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip1_1.1-8+b1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/m/mtdev/libmtdev1_1.1.6-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses6_6.2+20201114-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncurses-dev_6.2+20201114-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libncursesw6_6.2+20201114-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/ncurses/libtinfo6_6.2+20201114-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libhogweed6_3.7.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nettle/libnettle8_3.7.3-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nghttp2/libnghttp2-14_1.43.0-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4_4.29-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nspr/libnspr4-dev_4.29-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3_3.61-1+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/n/nss/libnss3-dev_3.61-1+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openldap/libldap-2.4-2_2.4.59+dfsg-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/openssl/libssl-dev_1.1.1n-0+deb11u3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus0_1.3.1-0.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/o/opus/libopus-dev_1.3.1-0.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/p11-kit/libp11-kit0_0.23.22-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g_1.4.0-9+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pam/libpam0g-dev_1.4.0-9+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango-1.0-0_1.46.2-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpango1.0-dev_1.46.2-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.46.2-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.46.2-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.46.2-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci3_3.7.0-5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pciutils/libpci-dev_3.7.0-5_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-16-0_10.36-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-32-0_10.36-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-8-0_10.36-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-dev_10.36-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre2/libpcre2-posix2_10.36-2+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre16-3_8.39-13_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre32-3_8.39-13_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3_8.39-13_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcre3-dev_8.39-13_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-13_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-0_0.3.58-2~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libpipewire-0.3-dev_0.3.58-2~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pipewire/libspa-0.2-dev_0.3.58-2~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-0_0.40.0-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pixman/libpixman-1-dev_0.40.0-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse0_14.2-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-dev_14.2-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_14.2-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5core5a_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5dbus5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5gui5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5network5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5printsupport5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5sql5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5test5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5widgets5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/libqt5xml5_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.15.2+dfsg-9_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-9_20210201+dfsg-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/re2/libre2-dev_20210201+dfsg-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/r/rtmpdump/librtmp1_2.4+20151223.gitfa8646d.1-2+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/shared-mime-info/shared-mime-info_2.0-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy1v5_1.1.8-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/snappy/libsnappy-dev_1.1.8-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd2_0.11.4-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.11.4-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/sqlite3/libsqlite3-0_3.34.1-3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd0_251.3-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libsystemd-dev_251.3-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev1_251.3-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/s/systemd/libudev-dev_251.3-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-31_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff5_4.2.0-1+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiff-dev_4.2.0-1+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/t/tiff/libtiffxx5_4.2.0-1+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/unbound/libunbound8_1.13.1-1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid1_2.36.1-8+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libblkid-dev_2.36.1-8+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount1_2.36.1-8+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libmount-dev_2.36.1-8+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/libuuid1_2.36.1-8+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan1_1.3.224.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/v/vulkan-loader/libvulkan-dev_1.3.224.0-1~bpo11+1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-bin_1.18.0-2~exp1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-client0_1.18.0-2~exp1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-cursor0_1.18.0-2~exp1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-dev_1.18.0-2~exp1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl1_1.18.0-2~exp1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-egl-backend-dev_1.18.0-2~exp1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland/libwayland-server0_1.18.0-2~exp1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/w/wayland-protocols/wayland-protocols_1.20-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0_0.4.0-1+b3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-image/libxcb-image0-dev_0.4.0-1+b3_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-keysyms/libxcb-keysyms1_0.4.0-1+b2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util1_0.4.0-1+b1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util/libxcb-util-dev_0.4.0-1+b1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0_0.3.9-1+b1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-renderutil/libxcb-render-util0-dev_0.3.9-1+b1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xcb-util-wm/libxcb-icccm4_0.4.1-1.1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft2_2.3.2-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xft/libxft-dev_2.3.2-2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xorgproto/x11proto-dev_2020.1-1_all.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/x/xz-utils/liblzma5_5.2.5-2.1~deb11u1_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-2+deb11u2_mipsel.deb
+https://snapshot.debian.org/archive/debian/20221105T211506Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-2+deb11u2_mipsel.deb
diff --git a/build/linux/sysroot_scripts/sysroot-creator-bullseye.sh b/build/linux/sysroot_scripts/sysroot-creator-bullseye.sh
index 87584eb2..f11212c 100755
--- a/build/linux/sysroot_scripts/sysroot-creator-bullseye.sh
+++ b/build/linux/sysroot_scripts/sysroot-creator-bullseye.sh
@@ -13,7 +13,7 @@
 # It should not be incremented when adding packages.
 SYSROOT_RELEASE=0
 
-ARCHIVE_TIMESTAMP=20220331T153654Z
+ARCHIVE_TIMESTAMP=20221105T211506Z
 ARCHIVE_URL="https://snapshot.debian.org/archive/debian/$ARCHIVE_TIMESTAMP/"
 APT_SOURCES_LIST=(
   # Debian 12 (Bookworm) is needed for GTK4.  It should be kept before bullseye
diff --git a/cc/paint/BUILD.gn b/cc/paint/BUILD.gn
index 71b6dd6..152ec659 100644
--- a/cc/paint/BUILD.gn
+++ b/cc/paint/BUILD.gn
@@ -132,7 +132,6 @@
     "//components/crash/core/common:crash_key",
     "//gpu/command_buffer/common:mailbox",
     "//ui/gfx/animation",
-    "//ui/gfx/ipc/color",
   ]
 
   if (skia_support_skottie) {
diff --git a/chrome/VERSION b/chrome/VERSION
index e67eb3f..f2bb51e 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=110
 MINOR=0
-BUILD=5446
+BUILD=5447
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index fdee47a..774d15c2 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -4110,7 +4110,6 @@
     "java/src/org/chromium/chrome/browser/password_manager/AutoSigninSnackbarController.java",
     "java/src/org/chromium/chrome/browser/password_manager/Credential.java",
     "java/src/org/chromium/chrome/browser/password_manager/CredentialLeakDialogBridge.java",
-    "java/src/org/chromium/chrome/browser/password_manager/PasswordChangeLauncher.java",
     "java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupLauncher.java",
     "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogBridge.java",
     "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationPopupBridge.java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index bb5657ea..ea2743b3 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -876,7 +876,6 @@
   "java/src/org/chromium/chrome/browser/password_manager/Credential.java",
   "java/src/org/chromium/chrome/browser/password_manager/CredentialLeakDialogBridge.java",
   "java/src/org/chromium/chrome/browser/password_manager/GooglePasswordManagerUIProvider.java",
-  "java/src/org/chromium/chrome/browser/password_manager/PasswordChangeLauncher.java",
   "java/src/org/chromium/chrome/browser/password_manager/PasswordCheckupLauncher.java",
   "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogBridge.java",
   "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogCoordinator.java",
diff --git a/chrome/android/features/autofill_assistant/BUILD.gn b/chrome/android/features/autofill_assistant/BUILD.gn
index 952dbba..e44c239 100644
--- a/chrome/android/features/autofill_assistant/BUILD.gn
+++ b/chrome/android/features/autofill_assistant/BUILD.gn
@@ -103,7 +103,6 @@
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantOverlayIntegrationTest.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantOverlayUiTest.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantParseSingleTagXmlIntegrationTest.java",
-    "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPasswordManagerIntegrationTest.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPersonalDataManagerTest.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantProgressBarIntegrationTest.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPromptNavigationIntegrationTest.java",
@@ -122,9 +121,6 @@
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/InCctTriggeringFromNonGsaTest.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/JsFlowIntegrationTest.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/MiniActionTestUtil.java",
-    "javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureParameters.java",
-    "javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureTest.java",
-    "javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureTestUtils.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/ProtoTestUtil.java",
     "javatests/src/org/chromium/chrome/browser/autofill_assistant/TriggerContextTest.java",
   ]
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPasswordManagerIntegrationTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPasswordManagerIntegrationTest.java
deleted file mode 100644
index d819689..0000000
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantPasswordManagerIntegrationTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.autofill_assistant;
-
-import static androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed;
-import static androidx.test.espresso.matcher.ViewMatchers.withText;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.greaterThan;
-import static org.hamcrest.Matchers.is;
-
-import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.getElementValue;
-import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.waitUntilViewMatchesCondition;
-import static org.chromium.chrome.browser.autofill_assistant.MiniActionTestUtil.addSetValueSteps;
-import static org.chromium.chrome.browser.autofill_assistant.ProtoTestUtil.toCssSelector;
-
-import androidx.test.filters.MediumTest;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
-import org.junit.runner.RunWith;
-
-import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.chrome.browser.autofill_assistant.proto.ActionProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.GeneratePasswordForFormFieldProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.PasswordManagerValue;
-import org.chromium.chrome.browser.autofill_assistant.proto.PasswordManagerValue.CredentialType;
-import org.chromium.chrome.browser.autofill_assistant.proto.PresaveGeneratedPasswordProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.PromptProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.SaveGeneratedPasswordProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.SupportedScriptProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.SupportedScriptProto.PresentationProto;
-import org.chromium.chrome.browser.autofill_assistant.proto.TextValue;
-import org.chromium.chrome.browser.customtabs.CustomTabActivityTestRule;
-import org.chromium.chrome.browser.flags.ChromeSwitches;
-import org.chromium.chrome.browser.password_manager.PasswordChangeLauncher;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
-import org.chromium.content_public.browser.WebContents;
-import org.chromium.content_public.browser.test.util.TestThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-/**
- * Integration tests for password change flows.
- */
-@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
-@RunWith(ChromeJUnit4ClassRunner.class)
-public class AutofillAssistantPasswordManagerIntegrationTest {
-    private final CustomTabActivityTestRule mTestRule = new CustomTabActivityTestRule();
-
-    @Rule
-    public final TestRule mRulesChain = RuleChain.outerRule(mTestRule).around(
-            new AutofillAssistantCustomTabTestRule(mTestRule, "form_target_website.html"));
-
-    private WebContents getWebContents() {
-        return mTestRule.getWebContents();
-    }
-
-    /**
-     * Helper function to start a password change flow.
-     */
-    private void startPasswordChangeFlow(AutofillAssistantTestScript script, String username) {
-        AutofillAssistantTestService testService =
-                new AutofillAssistantTestService(Collections.singletonList(script));
-        testService.scheduleForInjection();
-        TestThreadUtils.runOnUiThreadBlocking(
-                ()
-                        -> PasswordChangeLauncher.start(getWebContents().getTopLevelNativeWindow(),
-                                getWebContents().getLastCommittedUrl(), username,
-                                /*skipLogin=*/false));
-    }
-
-    private static TextValue buildUsernameValue() {
-        return TextValue.newBuilder()
-                .setPasswordManagerValue(PasswordManagerValue.newBuilder().setCredentialType(
-                        CredentialType.USERNAME))
-                .build();
-    }
-
-    private static TextValue buildPasswordValue() {
-        return TextValue.newBuilder()
-                .setPasswordManagerValue(PasswordManagerValue.newBuilder().setCredentialType(
-                        CredentialType.PASSWORD))
-                .build();
-    }
-
-    private static TextValue buildClientMemoryValue(String clientMemoryKey) {
-        return TextValue.newBuilder().setClientMemoryKey(clientMemoryKey).build();
-    }
-
-    /**
-     * Run a password change flow (fill a form with username, old password, new
-     * password).
-     */
-    @Test
-    @MediumTest
-    public void testPasswordChangeFlow() throws Exception {
-        ArrayList<ActionProto> list = new ArrayList<>();
-
-        // Sets username
-        addSetValueSteps(toCssSelector("#username"), buildUsernameValue(), list);
-        // Generates new password
-        list.add(ActionProto.newBuilder()
-                         .setGeneratePasswordForFormField(
-                                 GeneratePasswordForFormFieldProto.newBuilder()
-                                         .setMemoryKey("memory-key")
-                                         .setElement(toCssSelector("#new-password")))
-                         .build());
-
-        // Presaves generated password
-        list.add(ActionProto.newBuilder()
-                         .setPresaveGeneratedPassword(
-                                 PresaveGeneratedPasswordProto.newBuilder().setMemoryKey(
-                                         "memory-key"))
-                         .build());
-
-        // Sets new password
-        addSetValueSteps(
-                toCssSelector("#new-password"), buildClientMemoryValue("memory-key"), list);
-
-        // Sets password confirmation
-        addSetValueSteps(
-                toCssSelector("#password-conf"), buildClientMemoryValue("memory-key"), list);
-
-        // Saves generated password
-        list.add(ActionProto.newBuilder()
-                         .setSaveGeneratedPassword(
-                                 SaveGeneratedPasswordProto.newBuilder().setMemoryKey("memory-key"))
-                         .build());
-
-        // Fills login password field with saved password
-        addSetValueSteps(toCssSelector("#login-password"), buildPasswordValue(), list);
-
-        // Shows prompt
-        list.add(ActionProto.newBuilder()
-                         .setPrompt(PromptProto.newBuilder().setMessage("Prompt").addChoices(
-                                 PromptProto.Choice.newBuilder()))
-                         .build());
-
-        AutofillAssistantTestScript script = new AutofillAssistantTestScript(
-                SupportedScriptProto.newBuilder()
-                        .setPath("form_target_website.html")
-                        .setPresentation(PresentationProto.newBuilder().setAutostart(true))
-                        .build(),
-                list);
-
-        String username = "test_username";
-        startPasswordChangeFlow(script, username);
-
-        waitUntilViewMatchesCondition(withText("Prompt"), isCompletelyDisplayed());
-        assertThat(getElementValue(getWebContents(), "username"), is(username));
-        String password = getElementValue(getWebContents(), "new-password");
-        String confirmation_password = getElementValue(getWebContents(), "password-conf");
-        String saved_password = getElementValue(getWebContents(), "login-password");
-        assertThat(password.length(), greaterThan(0));
-        assertThat(password, is(confirmation_password));
-        assertThat(saved_password.length(), greaterThan(0));
-        assertThat(saved_password, is(password));
-    }
-}
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureParameters.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureParameters.java
deleted file mode 100644
index a6d66e8..0000000
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureParameters.java
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.autofill_assistant;
-
-import org.chromium.base.CommandLine;
-import org.chromium.chrome.browser.password_manager.PasswordStoreCredential;
-import org.chromium.url.GURL;
-
-/**
- * Class that stores parameters for password change integration tests.
- */
-public class PasswordChangeFixtureParameters {
-    /**
-     * Autofill assistant backend URL. Provided via --autofill-assistant-url.
-     */
-    private String mAutofillAssistantUrl;
-    /**
-     * Domain URL to launch the test. Provided via --domain-url.
-     */
-    private GURL mDomainUrl;
-    /**
-     * Username that specifies what credential to update during script runs. Used in tests
-     * that run the script for a single credential.
-     *
-     * Provided via --run-for-username.
-     */
-    private String mUsername;
-    /**
-     * Url list for initial set of credentials. The urls should be separated by space. The
-     * number of urls should correspond to the number of passwords provided via
-     * --seed-passwords. Ex: "https://www.example.com https://app.example.com".
-     *
-     * Provided via --seed-urls.
-     */
-    private String mSeedUrls;
-    /**
-     * Username list for initial set of credentials. The usernames should be separated by space. The
-     * number of usernames should correspond to the number of passwords provided via
-     * --seed-passwords. Ex: "username1@example.com username2@example2.com username3@example3.com".
-     *
-     * Provided via --seed-usernames.
-     */
-    private String mSeedUsernames;
-    /**
-     * Password list for initial set of credentials. The passwords should be separated by space. The
-     * number of passwords should correspond to the number of usernames provided via
-     * --seed-usernames. Ex: "aeGcvLPXQwaT2Rf 5GPUXKBUmMxNZTK 7J4rNxgmj6c6BMA".
-     *
-     * Provided via --seed-passwords.
-     */
-    private String mSeedPasswords;
-    /**
-     * List of initial credentials to seed the password store. The list is created by one username
-     * and one password from --seed-usernames and --seed-passwords respectively from left to right.
-     */
-    private PasswordStoreCredential[] mSeedCredentials;
-    /**
-     * Script debug bundle id. Provided via --debug-bundle-id.
-     */
-    private String mDebugBundleId;
-    /**
-     * Script debug socket id. Provided via --debug-socket-id.
-     */
-    private String mDebugSocketId;
-    /**
-     * Number of consecutive script runs. Provided via --num-runs.
-     */
-    private int mNumRuns;
-
-    /**
-     * Loads test parameters from command line.
-     */
-    public static PasswordChangeFixtureParameters loadFromCommandLine() {
-        assert CommandLine.isInitialized() : "CommandLine is expected to be initialized.";
-
-        PasswordChangeFixtureParameters params = new PasswordChangeFixtureParameters();
-        params.mAutofillAssistantUrl =
-                CommandLine.getInstance().getSwitchValue("autofill-assistant-url");
-        params.mDomainUrl = new GURL(CommandLine.getInstance().getSwitchValue("domain-url"));
-        params.mUsername = CommandLine.getInstance().getSwitchValue("run-for-username");
-        params.mSeedUrls = CommandLine.getInstance().getSwitchValue("seed-urls", "");
-        params.mSeedUsernames = CommandLine.getInstance().getSwitchValue("seed-usernames", "");
-        params.mSeedPasswords = CommandLine.getInstance().getSwitchValue("seed-passwords", "");
-        params.mDebugBundleId = CommandLine.getInstance().getSwitchValue("debug-bundle-id");
-        params.mDebugSocketId = CommandLine.getInstance().getSwitchValue("debug-socket-id");
-        params.mNumRuns =
-                Integer.parseInt(CommandLine.getInstance().getSwitchValue("num-runs", "1"));
-
-        String[] seedUrls = params.mSeedUrls.trim().split("\\s+");
-        String[] seedUsernames = params.mSeedUsernames.trim().split("\\s+");
-        String[] seedPasswords = params.mSeedPasswords.trim().split("\\s+");
-        assert seedUsernames.length
-                == seedPasswords.length
-            : "Number of usernames and passwords provided must be equal.";
-        assert seedUrls.length
-                == seedPasswords.length : "Number of urls and passwords provided must be equal.";
-
-        params.mSeedCredentials = new PasswordStoreCredential[seedPasswords.length];
-        for (int i = 0; i < seedUsernames.length; i++) {
-            GURL url = new GURL(seedUrls[i]);
-            assert !GURL.isEmptyOrInvalid(url) : "--seed-urls should only contain valid urls.";
-            params.mSeedCredentials[i] =
-                    new PasswordStoreCredential(url, seedUsernames[i], seedPasswords[i]);
-        }
-
-        assert params.mAutofillAssistantUrl != null : "--autofill-assistant-url must be provided.";
-        assert !GURL.isEmptyOrInvalid(params.mDomainUrl) : "Valid --domain-url must be provided.";
-        assert params.mUsername != null : "--username must be provided.";
-        assert params.mDebugBundleId != null : "--debug-bundle-id must be provided.";
-        assert params.mDebugSocketId != null : "--debug-socket-id must be provided.";
-        assert params.mNumRuns > 0 : "--num-runs must be greater than 0.";
-
-        return params;
-    }
-
-    public String getAutofillAssistantUrl() {
-        return mAutofillAssistantUrl;
-    }
-
-    public GURL getDomainUrl() {
-        return mDomainUrl;
-    }
-
-    public String getUsername() {
-        return mUsername;
-    }
-
-    public PasswordStoreCredential[] getSeedCredentials() {
-        return mSeedCredentials;
-    }
-
-    public String getDebugBundleId() {
-        return mDebugBundleId;
-    }
-
-    public String getDebugSocketId() {
-        return mDebugSocketId;
-    }
-
-    public int getNumRuns() {
-        return mNumRuns;
-    }
-}
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureTest.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureTest.java
deleted file mode 100644
index f3bdee5..0000000
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureTest.java
+++ /dev/null
@@ -1,361 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.autofill_assistant;
-
-import static androidx.test.espresso.Espresso.onView;
-import static androidx.test.espresso.action.ViewActions.click;
-import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription;
-import static androidx.test.espresso.matcher.ViewMatchers.withText;
-
-import static org.hamcrest.Matchers.allOf;
-import static org.hamcrest.Matchers.anyOf;
-
-import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.waitUntil;
-import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.waitUntilViewMatchesCondition;
-import static org.chromium.chrome.browser.autofill_assistant.PasswordChangeFixtureTestUtils.MAX_WAIT_BETWEEN_TESTS_IN_MS;
-import static org.chromium.chrome.browser.autofill_assistant.PasswordChangeFixtureTestUtils.MAX_WAIT_TIME_IN_MS;
-import static org.chromium.chrome.browser.autofill_assistant.PasswordChangeFixtureTestUtils.TAG;
-import static org.chromium.chrome.browser.autofill_assistant.PasswordChangeFixtureTestUtils.checkCredentialsDifferByPassword;
-import static org.chromium.chrome.browser.autofill_assistant.PasswordChangeFixtureTestUtils.clearBrowsingData;
-import static org.chromium.chrome.browser.autofill_assistant.PasswordChangeFixtureTestUtils.getCredentialForDomainAndUser;
-import static org.chromium.chrome.browser.autofill_assistant.PasswordChangeFixtureTestUtils.logPasswordStoreCredentials;
-import static org.chromium.chrome.browser.autofill_assistant.PasswordChangeFixtureTestUtils.validateFullRun;
-
-import android.support.test.InstrumentationRegistry;
-
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import org.chromium.base.Log;
-import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.base.test.util.Manual;
-import org.chromium.chrome.browser.browsing_data.BrowsingDataType;
-import org.chromium.chrome.browser.browsing_data.TimePeriod;
-import org.chromium.chrome.browser.customtabs.CustomTabActivity;
-import org.chromium.chrome.browser.customtabs.CustomTabActivityTestRule;
-import org.chromium.chrome.browser.customtabs.CustomTabsIntentTestUtils;
-import org.chromium.chrome.browser.flags.ChromeSwitches;
-import org.chromium.chrome.browser.password_manager.PasswordChangeLauncher;
-import org.chromium.chrome.browser.password_manager.PasswordStoreBridge;
-import org.chromium.chrome.browser.password_manager.PasswordStoreCredential;
-import org.chromium.chrome.browser.preferences.Pref;
-import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
-import org.chromium.components.prefs.PrefService;
-import org.chromium.components.user_prefs.UserPrefs;
-import org.chromium.content_public.browser.WebContents;
-import org.chromium.content_public.browser.test.util.TestThreadUtils;
-
-/**
- * Integration test for automated password change scripts.
- */
-@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
-@RunWith(ChromeJUnit4ClassRunner.class)
-public class PasswordChangeFixtureTest implements PasswordStoreBridge.PasswordStoreObserver {
-    @Rule
-    public CustomTabActivityTestRule mTestRule = new CustomTabActivityTestRule();
-
-    /**
-     * Test settings parameters.
-     */
-    private PasswordChangeFixtureParameters mParameters;
-
-    /**
-     * Password store bridge.
-     */
-    private PasswordStoreBridge mPasswordStoreBridge;
-
-    /**
-     * Cache of the most recently obtained saved credentials.
-     */
-    private PasswordStoreCredential[] mCredentials;
-
-    private WebContents getWebContents() {
-        return mTestRule.getWebContents();
-    }
-
-    private CustomTabActivity getActivity() {
-        return mTestRule.getActivity();
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        mParameters = PasswordChangeFixtureParameters.loadFromCommandLine();
-
-        AutofillAssistantTestEndpointService testService =
-                new AutofillAssistantTestEndpointService(mParameters.getAutofillAssistantUrl());
-        testService.scheduleForInjection();
-
-        Log.i(TAG, "[Test started]");
-
-        mTestRule.startCustomTabActivityWithIntent(
-                CustomTabsIntentTestUtils.createMinimalCustomTabIntent(
-                        InstrumentationRegistry.getTargetContext(),
-                        mParameters.getDomainUrl().getSpec()));
-
-        TestThreadUtils.runOnUiThreadBlocking(() -> {
-            PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
-            prefService.setBoolean(Pref.AUTOFILL_ASSISTANT_CONSENT, true);
-            prefService.setBoolean(Pref.AUTOFILL_ASSISTANT_ENABLED, true);
-        });
-
-        /**
-         * PasswordStoreBridge requests credentials from the password store on initialization. The
-         * request needs to be posted from the main thread.
-         */
-        TestThreadUtils.runOnUiThreadBlocking(() -> {
-            mPasswordStoreBridge = new PasswordStoreBridge();
-            mPasswordStoreBridge.addObserver(this, /* callImmediatelyIfReady= */ true);
-            // Load initial credentials.
-            PasswordStoreCredential[] seedCredentials = mParameters.getSeedCredentials();
-            for (int i = 0; i < seedCredentials.length; i++) {
-                mPasswordStoreBridge.insertPasswordCredential(seedCredentials[i]);
-            }
-        });
-
-        // Wait until operation finishes and credentials cache is updated.
-        waitUntil(()
-                          -> mCredentials != null
-                        && mCredentials.length == mParameters.getSeedCredentials().length);
-    }
-
-    @After
-    public void tearDown() {
-        TestThreadUtils.runOnUiThreadBlocking(() -> {
-            if (mPasswordStoreBridge != null) {
-                mPasswordStoreBridge.removeObserver(this);
-                mPasswordStoreBridge.destroy();
-            }
-        });
-    }
-
-    /**
-     * Runs password change script on the provided domain for a particular user.
-     */
-    void runScriptForUser(String username) {
-        TestThreadUtils.runOnUiThreadBlocking(
-                ()
-                        -> PasswordChangeLauncher.start(getWebContents().getTopLevelNativeWindow(),
-                                mParameters.getDomainUrl(), username, /*skipLogin=*/false,
-                                mParameters.getDebugBundleId(), mParameters.getDebugSocketId()));
-    }
-
-    /**
-     * Performs and validates a single password change script run.
-     */
-    private void testRun(String username) {
-        // Fetch login credential.
-        PasswordStoreCredential initialCredential =
-                getCredentialForDomainAndUser(mCredentials, mParameters.getDomainUrl(), username);
-        // Run password change script for user.
-        runScriptForUser(username);
-
-        // Validate password change run. Update credential with generated password.
-        validateFullRun();
-
-        // Check credential has been updated.
-        waitUntil(() -> {
-            PasswordStoreCredential updatedCredential = getCredentialForDomainAndUser(
-                    mCredentials, mParameters.getDomainUrl(), username);
-            return checkCredentialsDifferByPassword(initialCredential, updatedCredential);
-        });
-    }
-
-    /**
-     * Runs the script multiple times (defined by --num-runs) consecutively. Checks the script
-     * successfully changes password in Chrome password manager. There should be only one entry for
-     * that domain with the new password.
-     */
-    @Test
-    @Manual
-    public void testDefaultRuns() throws Exception {
-        for (int i = 0; i < mParameters.getNumRuns(); i++) {
-            // Run and test script.
-            testRun(mParameters.getUsername());
-
-            if (i + 1 < mParameters.getNumRuns()) {
-                Log.i(TAG, "[Run #%s succeeded]", String.valueOf(i + 1));
-                Thread.sleep(MAX_WAIT_BETWEEN_TESTS_IN_MS);
-            }
-        }
-
-        logPasswordStoreCredentials(mPasswordStoreBridge, "Final password store state");
-    }
-
-    /**
-     * Clear all browsing data (E.g Cookies, site settings, history). Checks the script
-     * successfully changes password in Chrome password manager.
-     */
-    @Test
-    @Manual
-    public void testNoCookies() throws Exception {
-        for (int i = 0; i < mParameters.getNumRuns(); i++) {
-            clearBrowsingData(new int[] {BrowsingDataType.HISTORY, BrowsingDataType.CACHE,
-                                      BrowsingDataType.COOKIES, BrowsingDataType.SITE_SETTINGS},
-                    TimePeriod.ALL_TIME);
-            Log.i(TAG, "[Site settings cleared]");
-
-            // Run and test password change.
-            testRun(mParameters.getUsername());
-
-            if (i + 1 < mParameters.getNumRuns()) {
-                Log.i(TAG, "[Run #%s succeeded]", String.valueOf(i + 1));
-                Thread.sleep(MAX_WAIT_BETWEEN_TESTS_IN_MS);
-            }
-        }
-
-        logPasswordStoreCredentials(mPasswordStoreBridge, "Final password store state");
-    }
-
-    /**
-     * Checks the script fails at login due to wrong credentials.
-     */
-    @Test
-    @Manual
-    public void testInvalidCredentials() throws Exception {
-        // Fetch login credential for username.
-        PasswordStoreCredential initialCredential = getCredentialForDomainAndUser(
-                mCredentials, mParameters.getDomainUrl(), mParameters.getUsername());
-        // Run script.
-        runScriptForUser(mParameters.getUsername());
-
-        // Opening site's settings.
-        waitUntilViewMatchesCondition(
-                withText("Opening site's settings..."), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Should fail during login. Wait for error opening site's settings.
-        waitUntilViewMatchesCondition(
-                anyOf(withText("Can't change your password"),
-                        withText(
-                                "Sign in with your current password. If you don’t know it, reset it.")),
-                isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Assert initial credential has not changed.
-        PasswordStoreCredential newCredential = getCredentialForDomainAndUser(
-                mCredentials, mParameters.getDomainUrl(), mParameters.getUsername());
-        Assert.assertTrue(
-                "Initial credential was changed", initialCredential.equals(newCredential));
-
-        logPasswordStoreCredentials(mPasswordStoreBridge, "Final password store state");
-    }
-
-    /**
-     * Checks the script does not introduce unexpected changes if the generated password is
-     * rejected.
-     */
-    @Test
-    @Manual
-    public void testUserDeclinesGeneratedPassword() throws Exception {
-        // Fetch login credential for username.
-        PasswordStoreCredential initialCredential = getCredentialForDomainAndUser(
-                mCredentials, mParameters.getDomainUrl(), mParameters.getUsername());
-        // Run script.
-        runScriptForUser(mParameters.getUsername());
-
-        // Opening site's settings.
-        waitUntilViewMatchesCondition(
-                withText("Opening site's settings..."), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Filling out old password.
-        waitUntilViewMatchesCondition(
-                withText("Changing password..."), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Requesting authorization to change the password.
-        waitUntilViewMatchesCondition(
-                withText("Use suggested password?"), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Simulate the user declining the generated password.
-        onView(allOf(withContentDescription("Close"), isDisplayed())).perform(click());
-
-        // Assert initial credential has not changed.
-        PasswordStoreCredential newCredential = getCredentialForDomainAndUser(
-                mCredentials, mParameters.getDomainUrl(), mParameters.getUsername());
-        Assert.assertTrue(
-                "Initial credential was changed", initialCredential.equals(newCredential));
-
-        logPasswordStoreCredentials(mPasswordStoreBridge, "Final password store state");
-    }
-
-    /**
-     * Fills out the current password field with a wrong password, submits the
-     * password change form and validates that the script ends gracefully with an error.
-     */
-    @Test
-    @Manual
-    public void testWrongCurrentPassword() throws Exception {
-        // Fetch login credential for username.
-        PasswordStoreCredential initialCredential = getCredentialForDomainAndUser(
-                mCredentials, mParameters.getDomainUrl(), mParameters.getUsername());
-        // Run script.
-        runScriptForUser(mParameters.getUsername());
-
-        // Opening site's settings.
-        waitUntilViewMatchesCondition(
-                withText("Opening site's settings..."), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Filling out old password.
-        waitUntilViewMatchesCondition(
-                withText("Changing password..."), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        TestThreadUtils.runOnUiThreadBlocking(
-                () -> { mPasswordStoreBridge.editPassword(initialCredential, "wrongpassword"); });
-
-        // Requesting authorization to change the password.
-        waitUntilViewMatchesCondition(
-                withText("Use suggested password?"), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Accept generated password.
-        onView(withText("Use password")).perform(click());
-
-        // Password change submission failed.
-        waitUntilViewMatchesCondition(
-                withText("Can't change your password"), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        logPasswordStoreCredentials(mPasswordStoreBridge, "Final password store state");
-    }
-
-    /**
-     * Runs the password change flow for all credentials in the store and validates the changes.
-     */
-    @Test
-    @Manual
-    public void testMultipleCredentials() throws Exception {
-        for (int run = 0; run < mParameters.getNumRuns(); run++) {
-            // Maintain a reference to the current set of credentials.
-            PasswordStoreCredential[] initialCredentials = mCredentials;
-            // Run password change for all credentials.
-            for (int i = 0; i < initialCredentials.length; i++) {
-                // Run and test script.
-                testRun(initialCredentials[i].getUsername());
-                if (i + 1 < initialCredentials.length) {
-                    Thread.sleep(MAX_WAIT_BETWEEN_TESTS_IN_MS);
-                }
-            }
-
-            if (run + 1 < mParameters.getNumRuns()) {
-                Log.i(TAG, "[Run #%s succeeded]", String.valueOf(run + 1));
-                Thread.sleep(MAX_WAIT_BETWEEN_TESTS_IN_MS);
-            }
-        }
-
-        logPasswordStoreCredentials(mPasswordStoreBridge, "Final password store state");
-    }
-
-    @Override
-    public void onSavedPasswordsChanged(int count) {
-        logPasswordStoreCredentials(mPasswordStoreBridge, "New set of credentials available");
-        mCredentials = mPasswordStoreBridge.getAllCredentials();
-    }
-
-    @Override
-    public void onEdit(PasswordStoreCredential credential) {
-        Log.i(TAG, "[Credential %s edited]", credential.toString());
-    }
-}
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureTestUtils.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureTestUtils.java
deleted file mode 100644
index dd998c55..0000000
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/PasswordChangeFixtureTestUtils.java
+++ /dev/null
@@ -1,144 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.autofill_assistant;
-
-import static androidx.test.espresso.Espresso.onView;
-import static androidx.test.espresso.action.ViewActions.click;
-import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static androidx.test.espresso.matcher.ViewMatchers.withText;
-
-import static org.chromium.chrome.browser.autofill_assistant.AutofillAssistantUiTestUtil.waitUntilViewMatchesCondition;
-
-import androidx.annotation.Nullable;
-
-import org.chromium.base.Log;
-import org.chromium.base.test.util.CallbackHelper;
-import org.chromium.chrome.browser.browsing_data.BrowsingDataBridge;
-import org.chromium.chrome.browser.password_manager.PasswordStoreBridge;
-import org.chromium.chrome.browser.password_manager.PasswordStoreCredential;
-import org.chromium.content_public.browser.test.util.TestThreadUtils;
-import org.chromium.url.GURL;
-
-import java.util.concurrent.TimeoutException;
-
-/**
- * Contains utilities for password change integration tests.
- */
-public final class PasswordChangeFixtureTestUtils {
-    /** The default maximum time to wait for a criteria to become valid. */
-    public static final long MAX_WAIT_TIME_IN_MS = 90000;
-    /**
-     * The default maximum time to wait in-between consecutive tests.
-     *
-     * The small delay in-between tests allows for easier visualization during consecutive test
-     * runs.
-     * */
-    public static final long MAX_WAIT_BETWEEN_TESTS_IN_MS = 1000;
-    /** Default tag to log password change integration tests information. */
-    public static final String TAG = "PasswordChangeTest";
-
-    /**
-     * Checks if two credentials are equal except for their password.
-     *
-     * @return True if only the credentials password differ, false otherwise.
-     */
-    public static boolean checkCredentialsDifferByPassword(
-            PasswordStoreCredential credential1, PasswordStoreCredential credential2) {
-        if (credential1 == null || credential2 == null) {
-            return false;
-        }
-
-        return credential1.getUrl().equals(credential2.getUrl())
-                && credential1.getUsername().equals(credential2.getUsername())
-                && !credential1.getPassword().equals(credential2.getPassword());
-    }
-
-    /**
-     * Search for a credential matching domain and username from a collection.
-     *
-     * @param domain Credential domain.
-     * @param username Credential username.
-     * @return Credential matching domain and username, null otherwise.
-     */
-    public static @Nullable PasswordStoreCredential getCredentialForDomainAndUser(
-            PasswordStoreCredential[] credentials, GURL domain, String username) {
-        for (int i = 0; i < credentials.length; i++) {
-            PasswordStoreCredential credential = credentials[i];
-            if (credential.getUrl().equals(domain) && credential.getUsername().equals(username)) {
-                return credential;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Clears the browser's data for a certain time period.
-     *
-     * @param dataTypes List of BrowsingDataType elements to remove.
-     * @param timePeriod Time period range for data removal.
-     * @throws TimeoutException
-     */
-    public static void clearBrowsingData(int[] dataTypes, int timePeriod) throws TimeoutException {
-        CallbackHelper helper = new CallbackHelper();
-        TestThreadUtils.runOnUiThreadBlocking(() -> {
-            BrowsingDataBridge.getInstance().clearBrowsingData(
-                    helper::notifyCalled, dataTypes, timePeriod);
-        });
-        helper.waitForCallback(0);
-    }
-
-    /**
-     * Validates full password change run UI flow. Accepts generated password.
-     */
-    public static void validateFullRun() {
-        // Opening site's settings.
-        waitUntilViewMatchesCondition(
-                withText("Opening site's settings..."), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Filling out old password.
-        waitUntilViewMatchesCondition(
-                withText("Changing password..."), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Requesting authorization to change the password.
-        waitUntilViewMatchesCondition(
-                withText("Use suggested password?"), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-
-        // Accept generated password.
-        onView(withText("Use password")).perform(click());
-
-        // Password was changed successfully.
-        waitUntilViewMatchesCondition(
-                withText("Changed password successfully"), isDisplayed(), MAX_WAIT_TIME_IN_MS);
-    }
-
-    /**
-     * Logs all credentials in the password store.
-     *
-     * @param store Password store to log.
-     */
-    public static void logPasswordStoreCredentials(PasswordStoreBridge store) {
-        logPasswordStoreCredentials(store, "");
-    }
-
-    /**
-     * Logs all credentials in the password store.
-     *
-     * @param store Password store to log.
-     * @param header Log header.
-     */
-    public static void logPasswordStoreCredentials(PasswordStoreBridge store, String header) {
-        int numOfCredentials = store.getPasswordStoreCredentialsCount();
-        StringBuilder sb = new StringBuilder();
-        if (!header.isEmpty()) {
-            sb.append("[" + header + "] ");
-        }
-        sb.append("Number of stored credentials: ").append(numOfCredentials).append(". ");
-        sb.append("Credentials: ");
-        for (PasswordStoreCredential credential : store.getAllCredentials()) {
-            sb.append(credential).append(", ");
-        }
-        Log.i(TAG, sb.toString());
-    }
-}
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java
index 400dccf..0971c0f 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/TabSelectionEditorTest.java
@@ -37,7 +37,6 @@
 import static org.chromium.chrome.browser.flags.ChromeFeatureList.TAB_TO_GTS_ANIMATION;
 
 import android.content.Intent;
-import android.os.Build.VERSION_CODES;
 import android.support.test.InstrumentationRegistry;
 import android.view.View;
 import android.view.ViewGroup;
@@ -65,8 +64,6 @@
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.Criteria;
 import org.chromium.base.test.util.CriteriaHelper;
-import org.chromium.base.test.util.DisableIf;
-import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.RequiresRestart;
 import org.chromium.base.test.util.Restriction;
@@ -352,7 +349,6 @@
 
     @Test
     @MediumTest
-    @DisabledTest(message = "https://crbug.com/1237368")
     public void testToolbarGroupButton() {
         prepareBlankTab(2, false);
         List<Tab> tabs = getTabsInCurrentTabModel();
@@ -1235,7 +1231,6 @@
     @MediumTest
     @EnableFeatures({ChromeFeatureList.TAB_SELECTION_EDITOR_V2})
     @Restriction({UiRestriction.RESTRICTION_TYPE_PHONE})
-    @DisableIf.Build(sdk_is_less_than = VERSION_CODES.N, message = "crbug/1374370")
     public void testToolbarMenuItem_SelectAllMenu() {
         prepareBlankTab(2, false);
         List<Tab> tabs = getTabsInCurrentTabModel();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordChangeLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordChangeLauncher.java
deleted file mode 100644
index 682b2d2..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/PasswordChangeLauncher.java
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.password_manager;
-
-import org.chromium.base.annotations.CalledByNative;
-import org.chromium.chrome.browser.autofill_assistant.AutofillAssistantFacade;
-import org.chromium.components.autofill_assistant.TriggerContext;
-import org.chromium.ui.base.WindowAndroid;
-import org.chromium.url.GURL;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-
-/** Class for starting a password change flow in Autofill Assistant. */
-public class PasswordChangeLauncher {
-    /**
-     * Name for the parameter that stores session username. Should be synced with
-     * |kSessionUsernameParameterName| from
-     * components/autofill_assistant/browser/controller.cc
-     * TODO(b/151401974): Eliminate duplicate parameter definitions.
-     */
-    private static final String PASSWORD_CHANGE_USERNAME_PARAMETER = "PASSWORD_CHANGE_USERNAME";
-    private static final String PASSWORD_CHANGE_SKIP_LOGIN_PARAMETER = "PASSWORD_CHANGE_SKIP_LOGIN";
-    private static final String INTENT_PARAMETER = "INTENT";
-    private static final String SOURCE_PARAMETER = "SOURCE";
-    private static final String INTENT = "PASSWORD_CHANGE";
-    private static final String DEBUG_BUNDLE_ID = "DEBUG_BUNDLE_ID";
-    private static final String DEBUG_SOCKET_ID = "DEBUG_SOCKET_ID";
-
-    private static final int IN_CHROME_CALLER = 7;
-    private static final int SOURCE_PASSWORD_CHANGE_LEAK_WARNING = 10;
-    private static final int SOURCE_PASSWORD_CHANGE_SETTINGS = 11;
-
-    private static final String ENCODING = "UTF-8";
-
-    @CalledByNative
-    public static void start(
-            WindowAndroid windowAndroid, GURL origin, String username, boolean skipLogin) {
-        start(windowAndroid, origin, username, skipLogin, "", "");
-    }
-
-    public static void start(WindowAndroid windowAndroid, GURL origin, String username,
-            boolean skipLogin, String debugBundleId, String debutSocketId) {
-        // Note: All string-typed parameters must be URL-encoded, because the
-        // corresponding extraction logic will URL-*de*code them before use,
-        // see TriggerContext.java.
-        try {
-            AutofillAssistantFacade.start(windowAndroid.getActivity().get(),
-                    TriggerContext.newBuilder()
-                            .addParameter(DEBUG_BUNDLE_ID, debugBundleId)
-                            .addParameter(DEBUG_SOCKET_ID, debutSocketId)
-                            .addParameter(PASSWORD_CHANGE_USERNAME_PARAMETER,
-                                    URLEncoder.encode(username, ENCODING))
-                            .addParameter(PASSWORD_CHANGE_SKIP_LOGIN_PARAMETER, skipLogin)
-                            .addParameter(INTENT_PARAMETER, INTENT)
-                            .addParameter(TriggerContext.PARAMETER_START_IMMEDIATELY, true)
-                            .addParameter(TriggerContext.PARAMETER_ENABLED, true)
-                            .addParameter(TriggerContext.PARAMETER_ORIGINAL_DEEPLINK,
-                                    URLEncoder.encode(origin.getSpec(), ENCODING))
-                            .addParameter(TriggerContext.PARAMETER_CALLER, IN_CHROME_CALLER)
-                            .addParameter(SOURCE_PARAMETER,
-                                    skipLogin ? SOURCE_PASSWORD_CHANGE_LEAK_WARNING
-                                              : SOURCE_PASSWORD_CHANGE_SETTINGS)
-                            .build());
-        } catch (UnsupportedEncodingException e) {
-            throw new IllegalStateException("Encoding not available.", e);
-        }
-    }
-}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequestTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequestTest.java
index 98cea19..122d618 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequestTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequestTest.java
@@ -1200,6 +1200,7 @@
                         "One of the excluded credentials exists on the local device"));
 
         mCreationOptions.isPaymentCredentialCreation = true;
+        mCreationOptions.authenticatorSelection.residentKey = ResidentKeyRequirement.PREFERRED;
         Assert.assertFalse(mFrameHost.mIsPaymentCredentialCreation);
         mRequest.handleMakeCredentialRequest(mCreationOptions, mFrameHost, mOrigin,
                 (responseStatus, response)
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index c665a85..a92e766 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -14030,13 +14030,13 @@
       Esed purus vestibulum velit convalli
     </message>
     <message name="IDS_PRIVACY_SANDBOX_DIALOG_M1_CONSENT_LEARN_MORE_BULLET_1" translateable="false" desc="Learn more bullet point 1 in privacy sandbox consent dialog">
-      Nulla in tortor: a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
+      <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Nulla in tortor: <ph name="END_BOLD">&lt;/b&gt;</ph> a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
     </message>
     <message name="IDS_PRIVACY_SANDBOX_DIALOG_M1_CONSENT_LEARN_MORE_BULLET_2" translateable="false" desc="Learn more bullet point 2 in privacy sandbox consent dialog">
-      Consectetur adipiscing elit: Duis pretium pulvinar metus non mollis
+      <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Consectetur adipiscing elit:<ph name="END_BOLD">&lt;/b&gt;</ph> Duis pretium pulvinar metus non mollis
     </message>
     <message name="IDS_PRIVACY_SANDBOX_DIALOG_M1_CONSENT_LEARN_MORE_BULLET_3" translateable="false" desc="Learn more bullet point 3 in privacy sandbox consent dialog">
-      Sed purus vestibulum: velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
+      <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Sed purus vestibulum:<ph name="END_BOLD">&lt;/b&gt;</ph> velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
     </message>
     <message name="IDS_PRIVACY_SANDBOX_DIALOG_M1_CONSENT_LEARN_MORE_LINK" translateable="false" desc="Learn more link in privacy sandbox consent dialog">
       Esed purus vestibulum velit convalli
@@ -14079,13 +14079,13 @@
       Proin sed purus vestibulum velit velit eget dapibus.
     </message>
     <message name="IDS_PRIVACY_SANDBOX_DIALOG_M1_NOTICE_EEA_LEARN_MORE_BULLET_1" translateable="false" desc="Learn more bullet point 1 in privacy sandbox notice EEA dialog">
-      Nulla in tortor: a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
+      <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Nulla in tortor:<ph name="END_BOLD">&lt;/b&gt;</ph> a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
     </message>
     <message name="IDS_PRIVACY_SANDBOX_DIALOG_M1_NOTICE_EEA_LEARN_MORE_BULLET_2" translateable="false" desc="Learn more bullet point 2 in privacy sandbox notice EEA dialog">
-      Consectetur adipiscing elit: Duis pretium pulvinar metus non mollis
+      <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Consectetur adipiscing elit:<ph name="END_BOLD">&lt;/b&gt;</ph> Duis pretium pulvinar metus non mollis
     </message>
     <message name="IDS_PRIVACY_SANDBOX_DIALOG_M1_NOTICE_EEA_LEARN_MORE_BULLET_3" translateable="false" desc="Learn more bullet point 3 in privacy sandbox notice EEA dialog">
-      Sed purus vestibulum: velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
+      <ph name="BEGIN_BOLD">&lt;b&gt;</ph>Sed purus vestibulum:<ph name="END_BOLD">&lt;/b&gt;</ph> velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
     </message>
 
     <message name="IDS_PRIVACY_SANDBOX_DIALOG_M1_NOTICE_ROW_TITLE" translateable="false" desc="Title of privacy sandbox notice ROW dialog">
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index d6684fb..05258575 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -2350,6 +2350,7 @@
 <translation id="3105796011181310544">Искате ли да се върнете към Google?</translation>
 <translation id="310671807099593501">Сайтът използва Bluetooth</translation>
 <translation id="3108931485517391283">Не е възможно получаване</translation>
+<translation id="3108957152224931571">Цвят за открояване</translation>
 <translation id="3109206895301430738">Запазени групи раздели</translation>
 <translation id="3109724472072898302">Свито</translation>
 <translation id="3112292765614504292">Размер на приложението: <ph name="APP_SIZE" /></translation>
@@ -4596,6 +4597,7 @@
 <translation id="5260334392110301220">Smart Quotes</translation>
 <translation id="5260508466980570042">За съжаление имейлът или паролата ви не можаха да бъдат потвърдени. Моля, опитайте отново.</translation>
 <translation id="5260958083445173099">Когато е възможно, уебсайтовете ще показват съдържание на предпочитаните от вас езици</translation>
+<translation id="5261619498868361045">Името на контейнера трябва да се попълни.</translation>
 <translation id="5261683757250193089">Отваряне в уеб магазина</translation>
 <translation id="5262178194499261222">Премахване на паролата</translation>
 <translation id="5262784498883614021">Автоматично свързване с мрежа</translation>
@@ -5003,6 +5005,7 @@
 <translation id="562935524653278697">Администраторът ви е деактивирал синхронизирането на вашите отметки, история, пароли и други настройки.</translation>
 <translation id="5631017369956619646">Използване на процесора</translation>
 <translation id="5632059346822207074">Изисква се разрешение. Натиснете Ctrl + бутона за преминаване напред, за да отговорите</translation>
+<translation id="5632221585574759616">Научете повече за разрешенията за разширенията</translation>
 <translation id="5632566673632479864">Профилът ви <ph name="EMAIL" /> вече не може да се използва като основен. Тъй като този профил се управлява от <ph name="DOMAIN" />, вашите отметки, история, пароли и други настройки ще бъдат изчистени от устройството.</translation>
 <translation id="5632592977009207922">Изтегля се, още<ph name="PERCENT_REMAINING" />%</translation>
 <translation id="5633149627228920745">Научете повече за системните изисквания</translation>
@@ -5623,6 +5626,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> е офлайн. Свържете се с интернет и опитайте отново</translation>
 <translation id="6220413761270491930">Грешка при зареждането на разширението</translation>
 <translation id="6224481128663248237">Форматирането завърши успешно!</translation>
+<translation id="622474711739321877">Този контейнер вече съществува.</translation>
 <translation id="622537739776246443">Потребителският профил ще бъде изтрит</translation>
 <translation id="6225475702458870625">От устройството ви <ph name="PHONE_NAME" /> е налице връзка за пренос на данни</translation>
 <translation id="6226777517901268232">Файл с частен ключ (незадължително)</translation>
@@ -6422,6 +6426,7 @@
 <translation id="696780070563539690">Сайтовете не могат да използват „бисквитките“ ви, за да следят активността ви при сърфиране в различни сайтове, например за да персонализират реклами</translation>
 <translation id="6968288415730398122">Въведете паролата си, за да конфигурирате заключването на екрана</translation>
 <translation id="6969047215179982698">Изключване на „Споделяне наблизо“</translation>
+<translation id="6969216690072714773">Въведете нова или актуализирайте съществуващата информация, която да бъде свързана с това устройство.</translation>
 <translation id="6970480684834282392">Тип стартиране</translation>
 <translation id="6970543303783413625">Импортирането на паролите не е възможно. Не можете да импортирате едновременно повече от <ph name="COUNT" /> пароли.</translation>
 <translation id="6970856801391541997">Отпечатване на конкретни страници</translation>
@@ -6828,6 +6833,7 @@
 <translation id="7377481913241237033">Свързване чрез код</translation>
 <translation id="7378611153938412599">Ненадеждните пароли са лесни за отгатване. Уверете се, че създаваните от вас са надеждни. <ph name="BEGIN_LINK" />Вижте още съвети за сигурност<ph name="END_LINK" />.</translation>
 <translation id="73786666777299047">Отваряне на уеб магазина на Chrome</translation>
+<translation id="7380272457268061606">Да се деактивира ли възстановяването на локални данни?</translation>
 <translation id="7380459290951585794">Телефонът трябва да е наблизо, да е отключен и Bluetooth и функцията за Wi-Fi да са включени</translation>
 <translation id="7380622428988553498">Името на устройството съдържа невалидни знаци</translation>
 <translation id="7380768571499464492">Актуализирането на <ph name="PRINTER_NAME" /> завърши</translation>
@@ -7078,6 +7084,7 @@
 <translation id="7617263010641145920">Включване на Google Play Магазин</translation>
 <translation id="7617648809369507487">Използване на по-малко натрапчиви съобщения</translation>
 <translation id="7621382409404463535">Системата не успя да запази конфигурацията на устройството.</translation>
+<translation id="7621595347123595643">Няма да можете да възстановите локалните данни, ако забравите паролата или ПИН кода си.</translation>
 <translation id="7622114377921274169">Зарежда се.</translation>
 <translation id="7622768823216805500">Сайтовете обикновено инсталират инструменти за обработване на плащания, за да осигуряват функции за пазаруване, като например по-лесно плащане</translation>
 <translation id="7622903810087708234">Подробности за паролата</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index 293b3ea4..70dcf1f 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -2337,6 +2337,7 @@
 <translation id="3105796011181310544">Vols tornar a utilitzar Google?</translation>
 <translation id="310671807099593501">El lloc web està utilitzant el Bluetooth</translation>
 <translation id="3108931485517391283">No es pot rebre</translation>
+<translation id="3108957152224931571">Color de marcatge</translation>
 <translation id="3109206895301430738">Grups de pestanyes desats</translation>
 <translation id="3109724472072898302">Reduït</translation>
 <translation id="3112292765614504292">Mida de l'aplicació: <ph name="APP_SIZE" /></translation>
@@ -4574,6 +4575,7 @@
 <translation id="5260334392110301220">Cometes intel·ligents</translation>
 <translation id="5260508466980570042">No s'ha pogut verificar el correu electrònic o la contrasenya. Torna-ho a provar.</translation>
 <translation id="5260958083445173099">Quan sigui possible, els llocs web mostraran el contingut en els teus idiomes preferits</translation>
+<translation id="5261619498868361045">El nom del contenidor no pot estar buit.</translation>
 <translation id="5261683757250193089">Obre a Web Store</translation>
 <translation id="5262178194499261222">Suprimeix la contrasenya</translation>
 <translation id="5262784498883614021">Connecta a la xarxa automàticament</translation>
@@ -4979,6 +4981,7 @@
 <translation id="562935524653278697">L'administrador ha desactivat la sincronització de les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració.</translation>
 <translation id="5631017369956619646">Ús de la CPU</translation>
 <translation id="5632059346822207074">S'ha sol·licitat permís, prem Ctrl+Endavant per respondre</translation>
+<translation id="5632221585574759616">Més informació sobre els permisos d'extensions</translation>
 <translation id="5632566673632479864">Ja no es permet que <ph name="EMAIL" /> sigui el compte principal. Com que <ph name="DOMAIN" /> gestiona aquest compte, s'esborraran d'aquest dispositiu les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració.</translation>
 <translation id="5632592977009207922">S'està baixant. Queda un <ph name="PERCENT_REMAINING" />%.</translation>
 <translation id="5633149627228920745">Més informació sobre els requisits del sistema</translation>
@@ -5598,6 +5601,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> no té connexió. Connecta't a Internet i torna-ho a provar.</translation>
 <translation id="6220413761270491930">Error en carregar l'extensió</translation>
 <translation id="6224481128663248237">Ha finalitzat satisfactòriament el format.</translation>
+<translation id="622474711739321877">Aquest contenidor ja existeix.</translation>
 <translation id="622537739776246443">El perfil se suprimirà</translation>
 <translation id="6225475702458870625">Connexió de dades disponible des del teu <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Fitxer de clau privada (opcional)</translation>
@@ -6396,6 +6400,7 @@
 <translation id="696780070563539690">Els llocs web no poden fer servir les teves galetes per veure la teva activitat de navegació en diferents llocs web, per exemple, per personalitzar els anuncis</translation>
 <translation id="6968288415730398122">Introdueix la contrasenya per configurar el bloqueig de pantalla</translation>
 <translation id="6969047215179982698">Desactiva Compartició Nearby</translation>
+<translation id="6969216690072714773">Introdueix informació nova o actualitza la que ja hi ha per associar-la a aquest dispositiu.</translation>
 <translation id="6970480684834282392">Tipus d'inici</translation>
 <translation id="6970543303783413625">No es poden importar les contrasenyes. Només en pots importar fins a <ph name="COUNT" /> alhora.</translation>
 <translation id="6970856801391541997">Imprimeix pàgines específiques</translation>
@@ -6802,6 +6807,7 @@
 <translation id="7377481913241237033">Connecta't amb un codi</translation>
 <translation id="7378611153938412599">Les contrasenyes poc segures són fàcils d'endevinar. Assegura't de crear contrasenyes segures. <ph name="BEGIN_LINK" />Consulta més consells de seguretat<ph name="END_LINK" />.</translation>
 <translation id="73786666777299047">Obre Chrome Web Store</translation>
+<translation id="7380272457268061606">Vols desactivar la recuperació de dades locals?</translation>
 <translation id="7380459290951585794">Comprova que el telèfon sigui a prop teu, que estigui desbloquejat i que tingui el Bluetooth i la Wi‑Fi activats</translation>
 <translation id="7380622428988553498">El nom del dispositiu conté caràcters que no són vàlids</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> s'ha actualitzat</translation>
@@ -7051,6 +7057,7 @@
 <translation id="7617263010641145920">Activa Play Store</translation>
 <translation id="7617648809369507487">Utilitza missatges més discrets</translation>
 <translation id="7621382409404463535">El sistema no ha pogut desar la configuració del dispositiu.</translation>
+<translation id="7621595347123595643">No podràs recuperar les dades locals si oblides la contrasenya o el PIN.</translation>
 <translation id="7622114377921274169">S'està carregant.</translation>
 <translation id="7622768823216805500">Els llocs web solen instal·lar gestors de pagament per a funcions de compra com ara una tramitació més senzilla</translation>
 <translation id="7622903810087708234">Detalls de la contrasenya</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index e1c1ae09..a9233814 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -2357,6 +2357,7 @@
 <translation id="3105796011181310544">Newid yn ôl i Google?</translation>
 <translation id="310671807099593501">Mae'r wefan yn defnyddio Bluetooth</translation>
 <translation id="3108931485517391283">Methu â chael</translation>
+<translation id="3108957152224931571">Lliw amlygu</translation>
 <translation id="3109206895301430738">Cadwyd Grwpiau Tabiau</translation>
 <translation id="3109724472072898302">Wedi'i grebachu</translation>
 <translation id="3112292765614504292">Maint ap: <ph name="APP_SIZE" /></translation>
@@ -4602,6 +4603,7 @@
 <translation id="5260334392110301220">Dyfyniadau Smart</translation>
 <translation id="5260508466980570042">Mae'n ddrwg gennym, ni ellid dilysu'ch e-bost na'ch cyfrinair. Rhowch gynnig arall arni.</translation>
 <translation id="5260958083445173099">Bydd gwefannau yn ymddangos cynnwys yn eich ieithoedd a ffefrir, pan fydd hynny'n bosib</translation>
+<translation id="5261619498868361045">Ni all enw'r cynhwysydd fod yn wag.</translation>
 <translation id="5261683757250193089">Agor yn Web Store</translation>
 <translation id="5262178194499261222">Tynnu'r cyfrinair</translation>
 <translation id="5262784498883614021">Cysylltu â'r rhwydwaith yn awtomatig</translation>
@@ -5008,6 +5010,7 @@
 <translation id="562935524653278697">Mae eich gweinyddwr wedi analluogi cysoni'ch nodau tudalen, eich hanes, eich cyfrineiriau a'ch gosodiadau eraill.</translation>
 <translation id="5631017369956619646">Defnydd CPU</translation>
 <translation id="5632059346822207074">Gofynnwyd am ganiatâd, pwyswch Ctrl + Forward i ymateb</translation>
+<translation id="5632221585574759616">Dysgu rhagor am ganiatadau estyniad</translation>
 <translation id="5632566673632479864">Ni chaniateir eich cyfrif <ph name="EMAIL" /> fel y prif gyfrif mwyach. Oherwydd bod y cyfrif hwn yn cael ei reoli gan <ph name="DOMAIN" />, bydd eich nodau tudalen, hanes, cyfrineiriau, a gosodiadau eraill yn cael eu clirio o'r ddyfais hon.</translation>
 <translation id="5632592977009207922">Wrthi'n lawrlwytho, mae <ph name="PERCENT_REMAINING" />% ar ôl</translation>
 <translation id="5633149627228920745">Dysgu rhagor am ofynion system</translation>
@@ -5628,6 +5631,7 @@
 <translation id="6218058416316985984">Mae <ph name="DEVICE_TYPE" /> all-lein. Cysylltwch â'r rhyngrwyd a rhowch gynnig arall arni.</translation>
 <translation id="6220413761270491930">Gwall Llwytho Estyniad</translation>
 <translation id="6224481128663248237">Mae'r fformatio wedi'i gwblhau'n llwyddiannus!</translation>
+<translation id="622474711739321877">Mae'r cynhwysydd hwn eisoes yn bodoli.</translation>
 <translation id="622537739776246443">Bydd y proffil yn cael ei ddileu</translation>
 <translation id="6225475702458870625">Mae cysylltiad data ar gael o'ch <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Ffeil allwedd breifat (dewisol)</translation>
@@ -6435,6 +6439,7 @@
 <translation id="696780070563539690">Ni all gwefannau ddefnyddio eich cwcis i weld eich gweithgarwch pori ar draws gwahanol wefannau, er enghraifft, i bersonoleiddio hysbysebion</translation>
 <translation id="6968288415730398122">Rhowch eich cyfrinair i ffurfweddu'r clo sgrîn</translation>
 <translation id="6969047215179982698">Diffodd Rhannu Gerllaw</translation>
+<translation id="6969216690072714773">Rhowch wybodaeth newydd neu ddiweddarwch y wybodaeth bresennol i fod yn gysylltiedig â'r ddyfais hon.</translation>
 <translation id="6970480684834282392">Math o gychwyn</translation>
 <translation id="6970543303783413625">Methu â mewnforio cyfrineiriau. Dim ond hyd at <ph name="COUNT" /> o gyfrineiriau y gallwch eu mewnforio ar y tro.</translation>
 <translation id="6970856801391541997">Argraffu Tudalennau Penodol</translation>
@@ -6841,6 +6846,7 @@
 <translation id="7377481913241237033">Cysylltu gyda chod</translation>
 <translation id="7378611153938412599">Mae'n hawdd dyfalu cyfrineiriau gwan. Gwnewch yn siŵr eich bod yn creu cyfrineiriau cryf. <ph name="BEGIN_LINK" />Gweld rhagor o awgrymiadau diogelwch.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Agor Chrome Web Store</translation>
+<translation id="7380272457268061606">Analluogi adfer data lleol?</translation>
 <translation id="7380459290951585794">Gwnewch yn siŵr bod eich ffôn gerllaw, wedi'i ddatgloi, a bod Bluetooth a Wi-Fi wedi'u troi ymlaen</translation>
 <translation id="7380622428988553498">Mae enw'r ddyfais yn cynnwys nodau annilys</translation>
 <translation id="7380768571499464492">Diweddarwyd <ph name="PRINTER_NAME" /></translation>
@@ -7091,6 +7097,7 @@
 <translation id="7617263010641145920">Troi Play Store ymlaen</translation>
 <translation id="7617648809369507487">Defnyddiwch negeseuon tawelach</translation>
 <translation id="7621382409404463535">Gwnaeth y system fethu â chadw ffufrweddiad dyfais.</translation>
+<translation id="7621595347123595643">Ni fyddwch yn gallu adfer data lleol os byddwch yn anghofio eich cyfrinair neu PIN.</translation>
 <translation id="7622114377921274169">Wrthi'n gwefru.</translation>
 <translation id="7622768823216805500">Mae gwefannau fel arfer yn gosod trinyddion taliadau ar gyfer nodweddion siopa megis talu'n haws</translation>
 <translation id="7622903810087708234">Manylion cyfrinair</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 5ecb781..7dd3a9a3 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -2334,6 +2334,7 @@
 <translation id="3105796011181310544">Wieder zu Google wechseln?</translation>
 <translation id="310671807099593501">Die Website verwendet Bluetooth</translation>
 <translation id="3108931485517391283">Empfang nicht möglich</translation>
+<translation id="3108957152224931571">Hervorhebungsfarbe</translation>
 <translation id="3109206895301430738">Gespeicherte Tabgruppen</translation>
 <translation id="3109724472072898302">Minimiert</translation>
 <translation id="3112292765614504292">App-Größe: <ph name="APP_SIZE" /></translation>
@@ -4571,6 +4572,7 @@
 <translation id="5260334392110301220">Intelligente Anführungszeichen</translation>
 <translation id="5260508466980570042">Deine E-Mail-Adresse oder Dein Passwort konnte nicht bestätigt werden. Bitte versuche es noch einmal.</translation>
 <translation id="5260958083445173099">Inhalte auf Websites werden dir nach Möglichkeit in deinen bevorzugten Sprachen angezeigt</translation>
+<translation id="5261619498868361045">Containername darf nicht leer sein.</translation>
 <translation id="5261683757250193089">Im Web Store öffnen</translation>
 <translation id="5262178194499261222">Passwort entfernen</translation>
 <translation id="5262784498883614021">Automatisch mit Netzwerk verbinden</translation>
@@ -4975,6 +4977,7 @@
 <translation id="562935524653278697">Dein Administrator hat die Synchronisierung des Verlaufs sowie deiner Lesezeichen, Passwörter und sonstigen Einstellungen deaktiviert.</translation>
 <translation id="5631017369956619646">CPU-Auslastung</translation>
 <translation id="5632059346822207074">Berechtigung angefordert. Drücke „Ctrl + Weiter“, um zu reagieren.</translation>
+<translation id="5632221585574759616">Weitere Informationen zu Erweiterungsberechtigungen</translation>
 <translation id="5632566673632479864">Dein Konto <ph name="EMAIL" /> ist nicht mehr als primäres Konto zugelassen. Da dieses Konto von <ph name="DOMAIN" /> verwaltet wird, werden dein Verlauf sowie deine Lesezeichen, Passwörter und sonstigen Einstellungen von diesem Gerät gelöscht.</translation>
 <translation id="5632592977009207922">Wird heruntergeladen, <ph name="PERCENT_REMAINING" /> % verbleibend</translation>
 <translation id="5633149627228920745">Weitere Informationen zu den Systemanforderungen</translation>
@@ -5594,6 +5597,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> ist offline. Stelle eine Internetverbindung her und versuche es noch einmal.</translation>
 <translation id="6220413761270491930">Fehler beim Laden der Erweiterung</translation>
 <translation id="6224481128663248237">Formatierung abgeschlossen</translation>
+<translation id="622474711739321877">Dieser Container ist bereits vorhanden.</translation>
 <translation id="622537739776246443">Profil wird gelöscht</translation>
 <translation id="6225475702458870625">Datenverbindung von deinem <ph name="PHONE_NAME" /> verfügbar</translation>
 <translation id="6226777517901268232">Datei mit privatem Schlüssel (optional)</translation>
@@ -6392,6 +6396,7 @@
 <translation id="696780070563539690">Websites können deine Cookies nicht dazu verwenden, deine Browseraktivitäten auf anderen Websites aufzuzeichnen und damit zum Beispiel Werbung zu personalisieren</translation>
 <translation id="6968288415730398122">Gib dein Passwort ein, um die Displaysperre zu konfigurieren</translation>
 <translation id="6969047215179982698">Nearby Share deaktivieren</translation>
+<translation id="6969216690072714773">Eingabe neuer oder Aktualisierung vorhandener Informationen für dieses Gerät.</translation>
 <translation id="6970480684834282392">Starttyp</translation>
 <translation id="6970543303783413625">Import der Passwörter nicht möglich. Du kannst nur maximal <ph name="COUNT" /> Passwörter gleichzeitig importieren.</translation>
 <translation id="6970856801391541997">Bestimmte Seiten drucken</translation>
@@ -6798,6 +6803,7 @@
 <translation id="7377481913241237033">Verbindung per Code herstellen</translation>
 <translation id="7378611153938412599">Schwache Passwörter sind einfach zu erraten. Erstelle deshalb am besten starke Passwörter. <ph name="BEGIN_LINK" />Weitere Sicherheitstipps ansehen.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome Web Store öffnen</translation>
+<translation id="7380272457268061606">Wiederherstellung lokaler Daten deaktivieren?</translation>
 <translation id="7380459290951585794">Dein Smartphone muss sich in der Nähe befinden und entsperrt sein und Bluetooth sowie WLAN müssen aktiviert sein</translation>
 <translation id="7380622428988553498">Gerätename enthält ungültige Zeichen</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> aktualisiert</translation>
@@ -7047,6 +7053,7 @@
 <translation id="7617263010641145920">Play Store aktivieren</translation>
 <translation id="7617648809369507487">Unaufdringlichere Benachrichtigungen verwenden</translation>
 <translation id="7621382409404463535">Das System konnte die Gerätekonfiguration nicht speichern.</translation>
+<translation id="7621595347123595643">Wenn du dein Passwort oder deine PIN vergisst, kannst du keine lokalen Daten wiederherstellen.</translation>
 <translation id="7622114377921274169">Wird aufgeladen.</translation>
 <translation id="7622768823216805500">Websites installieren normalerweise Zahlungs-Handler für Einkaufsfunktionen wie eine schnellere Bezahlung</translation>
 <translation id="7622903810087708234">Passwortdetails</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 5f01618..0d44c9e 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -620,6 +620,7 @@
 <translation id="1573117025466282241">Usar teléfono con un código QR</translation>
 <translation id="1575741822946219011">Idiomas y métodos de introducción de texto</translation>
 <translation id="1576594961618857597">Avatar blanco predeterminado</translation>
+<translation id="1576729678809834061">Denunciar este resultado de búsqueda</translation>
 <translation id="1578558981922970608">Forzar cierre</translation>
 <translation id="1580772913177567930">Ponte en contacto con el administrador</translation>
 <translation id="1581962803218266616">Mostrar en Finder</translation>
@@ -1011,6 +1012,7 @@
 <translation id="1909880997794698664">¿Seguro que quieres que se utilice el modo de kiosco en este dispositivo de forma permanente?</translation>
 <translation id="1910721550319506122">¡Te damos la bienvenida!</translation>
 <translation id="1910736334623230603">No se pueden buscar varias imágenes a la vez. Añade las imágenes de una en una.</translation>
+<translation id="1910908536872421421">La versión <ph name="BROWSER_VERSION" /> de Chrome for Testing solo sirve para hacer pruebas automatizadas. Para navegar de la forma habitual, utiliza una versión estándar de Chrome que se actualice automáticamente.</translation>
 <translation id="1915073950770830761">canary</translation>
 <translation id="1915307458270490472">Colgar</translation>
 <translation id="1916502483199172559">Avatar rojo predeterminado</translation>
@@ -3052,6 +3054,7 @@
 <translation id="3798449238516105146">Versión</translation>
 <translation id="3798632811625902122">El dispositivo Bluetooth <ph name="DEVICE" /> solicita permiso para emparejarse.</translation>
 <translation id="3799128412641261490">Ajustes de accesibilidad con interruptores</translation>
+<translation id="3800030395703848668">Ver opciones de la lista</translation>
 <translation id="3800806661949714323">Mostrar todo (recomendado)</translation>
 <translation id="3800828618615365228">Términos Adicionales de Google Chrome y Chrome OS</translation>
 <translation id="3802486193901166966">Esta extensión no requiere permisos especiales y no tiene acceso adicional al sitio</translation>
@@ -3245,6 +3248,7 @@
 <translation id="3965811923470826124">Con</translation>
 <translation id="3965965397408324205">Salir de <ph name="PROFILE_NAME" /></translation>
 <translation id="3966072572894326936">Seleccionar otra carpeta...</translation>
+<translation id="3966094581547899417">Detalles del punto de acceso</translation>
 <translation id="3967822245660637423">Descarga completa</translation>
 <translation id="3967841595862839006">Seleccionar idioma y teclado</translation>
 <translation id="3968739731834770921">Kana</translation>
@@ -3296,6 +3300,7 @@
 <translation id="4014432863917027322">¿Reparar "<ph name="EXTENSION_NAME" />"?</translation>
 <translation id="4015163439792426608">¿Tienes extensiones? <ph name="BEGIN_LINK" />Gestiona tus extensiones<ph name="END_LINK" /> en un solo sitio sin complicaciones.</translation>
 <translation id="4017225831995090447">Crear código QR para este enlace</translation>
+<translation id="4019983356493507433">Editar lista de marcadores</translation>
 <translation id="4020327272915390518">Menú de opciones</translation>
 <translation id="4021279097213088397">–</translation>
 <translation id="402184264550408568">(TCP)</translation>
@@ -3507,6 +3512,7 @@
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{Esta extensión no está permitida}other{Algunas extensiones no están permitidas}}</translation>
 <translation id="4231095370974836764">Instala aplicaciones y juegos de Google Play en tu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="4231141543165771749">Cerrar controles del juego</translation>
+<translation id="4231542173270219144">Cuando las pruebas están activas, la reducción del spam y el fraude se basa en tokens de confianza que ayudan a los sitios a luchar contra el fraude y a distinguir a los bots de las personas.</translation>
 <translation id="4232375817808480934">Configurar Kerberos</translation>
 <translation id="4235965441080806197">Cancelar inicio de sesión</translation>
 <translation id="4236163961381003811">Descubrir más extensiones</translation>
@@ -3702,6 +3708,7 @@
 <translation id="4412698727486357573">Centro de Ayuda</translation>
 <translation id="44141919652824029">¿Permitir que "<ph name="APP_NAME" />" obtenga la lista de tus dispositivos USB adjuntos?</translation>
 <translation id="4414232939543644979">Nueva ventana de &amp;incógnito</translation>
+<translation id="4414648713167199100">Utiliza los datos móviles de tu Chromebook, y tu operador te podría cobrar cargos adicionales. También puede aumentar el uso de la batería. <ph name="BEGIN_LINK_LEARN_MORE" />Más información<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4415213869328311284">Ya puedes empezar a usar <ph name="DEVICE_TYPE" />.</translation>
 <translation id="4415245286584082850">No se ha encontrado ningún dispositivo. Abre un artículo del Centro de Ayuda en una pestaña nueva.</translation>
 <translation id="4415276339145661267">Gestionar tu cuenta de Google</translation>
@@ -4211,6 +4218,7 @@
 <translation id="4885692421645694729">Esta extensión no tiene acceso adicional al sitio</translation>
 <translation id="4887424188275796356">Abrir con el visor del sistema</translation>
 <translation id="488785315393301722">Mostrar detalles</translation>
+<translation id="488862352499217187">Crear carpeta nueva</translation>
 <translation id="4890773143211625964">Mostrar opciones avanzadas de la impresora</translation>
 <translation id="4891089016822695758">Foro beta</translation>
 <translation id="4892229439761351791">El sitio web puede usar el Bluetooth</translation>
@@ -4332,6 +4340,7 @@
 <translation id="5009463889040999939">Cambiando el nombre del perfil. Este proceso puede durar unos minutos.</translation>
 <translation id="5010043101506446253">Entidad emisora de certificados</translation>
 <translation id="501057610015570208">La aplicación con el atributo del archivo de manifiesto "kiosk_only" se debe instalar en el modo Kiosco de ChromeOS Flex</translation>
+<translation id="5010886807652684893">Vista visual</translation>
 <translation id="5015344424288992913">Resolviendo proxy...</translation>
 <translation id="5016491575926936899">Puedes enviar mensajes de texto desde tu ordenador, compartir tu conexión a Internet, responder a notificaciones de conversaciones y desbloquear tu <ph name="DEVICE_TYPE" /> con el teléfono.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation>
 <translation id="5017643436812738274">Puedes desplazarte por las páginas con un cursor de texto. Pulsa Ctrl + tecla de búsqueda + 7 para desactivar esta función.</translation>
@@ -6076,6 +6085,7 @@
 <translation id="6674571176963658787">Para iniciar la sincronización, escribe tu frase de contraseña</translation>
 <translation id="6675665718701918026">Dispositivo señalador conectado</translation>
 <translation id="6676212663108450937">Te recomendamos utilizar auriculares cuando entrenes tu voz</translation>
+<translation id="6677942524382973058">Los tokens de confianza mejoran la privacidad en la Web y no se pueden usar para averiguar quién eres.</translation>
 <translation id="6678717876183468697">URL de la consulta</translation>
 <translation id="6680442031740878064">Disponible: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Velocidad</translation>
@@ -6903,6 +6913,7 @@
 <translation id="7465522323587461835">{NUM_OPEN_TABS,plural, =1{# pestaña abierta: pulsar para activar o desactivar la barra de pestañas}other{# pestañas abiertas; pulsar para activar o desactivar la barra de pestañas}}</translation>
 <translation id="7465635034594602553">Algo no va bien. Espera unos minutos y vuelve a ejecutar <ph name="APP_NAME" />.</translation>
 <translation id="7465778193084373987">URL de revocación de certificado de Netscape</translation>
+<translation id="7466431077154602932">Vista compacta</translation>
 <translation id="746861123368584540">Extensión cargada</translation>
 <translation id="7470424110735398630">Puede ver tu portapapeles</translation>
 <translation id="747114903913869239">Error: no es posible decodificar la extensión.</translation>
@@ -7821,6 +7832,7 @@
 <translation id="8288539437195337464">Comprueba que tu dispositivo esté actualizado y vuelve a intentarlo</translation>
 <translation id="8289128870594824098">Tamaño de disco</translation>
 <translation id="8289509909262565712">Te damos la bienvenida a <ph name="DEVICE_OS" /></translation>
+<translation id="8291415872436043161">Descarga Chrome</translation>
 <translation id="8293206222192510085">Añadir marcador</translation>
 <translation id="8294431847097064396">Origen</translation>
 <translation id="8298429963694909221">Ahora puedes recibir notificaciones de tu teléfono en tu <ph name="DEVICE_TYPE" />. Cuando descartes una notificación en tu <ph name="DEVICE_TYPE" />, también se descartará en tu teléfono. Asegúrate de que tengas el teléfono cerca y de que el Bluetooth y el Wi‑Fi estén activados.</translation>
@@ -8124,6 +8136,7 @@
 <translation id="8602674530529411098">Aplicaciones (beta)</translation>
 <translation id="8602851771975208551">Otro programa de tu ordenador ha añadido una aplicación que puede cambiar el funcionamiento de Chrome.</translation>
 <translation id="8605428685123651449">Memoria SQLite</translation>
+<translation id="8607326572516521315">La reducción del spam y el fraude se basa en tokens de confianza que ayudan a los sitios a luchar contra el fraude y a distinguir a los bots de las personas.</translation>
 <translation id="8608618451198398104">Añadir un ticket de Kerberos</translation>
 <translation id="8609465669617005112">Subir</translation>
 <translation id="8610103157987623234">El formato no es correcto; inténtalo de nuevo</translation>
@@ -8448,6 +8461,7 @@
 <translation id="8890170499370378450">Es posible que se apliquen cargos por el uso de datos móviles</translation>
 <translation id="8890516388109605451">Fuentes</translation>
 <translation id="8890529496706615641">No se ha podido cambiar el nombre del perfil. Inténtalo de nuevo o ponte en contacto con tu operador para obtener asistencia técnica.</translation>
+<translation id="8891996167592415151">Un sitio, en función de cuál sea tu interacción con él (por ejemplo, si habitualmente inicias sesión con una cuenta), puede emitir un token de confianza a tu navegador. Después, si otros sitios que visites buscan y encuentran un token de confianza válido, es más probable que te traten como a una persona y no como a un bot.</translation>
 <translation id="8892168913673237979">¡Todo listo!</translation>
 <translation id="8893801527741465188">Desinstalación completada</translation>
 <translation id="8893928184421379330">No se ha podido reconocer el dispositivo <ph name="DEVICE_LABEL" />.</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 9bc1760..7da64638 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -2353,6 +2353,7 @@
 <translation id="3105796011181310544">Vaihdetaanko takaisin Googleen?</translation>
 <translation id="310671807099593501">Sivusto käyttää Bluetoothia</translation>
 <translation id="3108931485517391283">Ei voi vastaanottaa</translation>
+<translation id="3108957152224931571">Korostusväri</translation>
 <translation id="3109206895301430738">Tallennetut välilehtiryhmät</translation>
 <translation id="3109724472072898302">Tiivistetty</translation>
 <translation id="3112292765614504292">Sovelluksen koko: <ph name="APP_SIZE" /></translation>
@@ -4595,6 +4596,7 @@
 <translation id="5260334392110301220">Älykkäät lainausmerkit</translation>
 <translation id="5260508466980570042">Sähköpostiosoitteesi tai salasanasi vahvistaminen epäonnistui. Yritä uudelleen.</translation>
 <translation id="5260958083445173099">Verkkosivustojen sisältö näkyy haluamillasi kielillä, jos mahdollista</translation>
+<translation id="5261619498868361045">Säilön nimi ei voi olla tyhjä.</translation>
 <translation id="5261683757250193089">Avaa Web Storessa</translation>
 <translation id="5262178194499261222">Poista salasana</translation>
 <translation id="5262784498883614021">Yhdistä verkkoon automaattisesti</translation>
@@ -5001,6 +5003,7 @@
 <translation id="562935524653278697">Järjestelmänvalvoja on poistanut käytöstä kirjanmerkkien, historian, salasanojen ja muiden asetusten synkronoinnin.</translation>
 <translation id="5631017369956619646">Suorittimen käyttö</translation>
 <translation id="5632059346822207074">Lupaa pyydetty, vastaa painamalla Ctrl + seuraava</translation>
+<translation id="5632221585574759616">Lue lisää laajennusten luvista</translation>
 <translation id="5632566673632479864">Tilisi <ph name="EMAIL" /> ei ole enää sallittu ensisijaisena tilinä. Koska <ph name="DOMAIN" /> ylläpitää tätä tiliä, kirjanmerkit, historia, salasanat ja muut asetukset tyhjennetään tältä laitteelta.</translation>
 <translation id="5632592977009207922">Ladataan, <ph name="PERCENT_REMAINING" /> % jäljellä</translation>
 <translation id="5633149627228920745">Lue lisää järjestelmävaatimuksista</translation>
@@ -5621,6 +5624,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> on offline-tilassa. Muodosta internetyhteys ja yritä uudelleen.</translation>
 <translation id="6220413761270491930">Virhe ladattaessa laajennusta</translation>
 <translation id="6224481128663248237">Alustus onnistui!</translation>
+<translation id="622474711739321877">Tämä säilö on jo olemassa.</translation>
 <translation id="622537739776246443">Profiili poistetaan</translation>
 <translation id="6225475702458870625">Datayhteys käytettävissä puhelimella <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Yksityinen avaintiedosto (valinnainen)</translation>
@@ -6420,6 +6424,7 @@
 <translation id="696780070563539690">Sivustot eivät voi nähdä evästeiden kautta selaustoimintaasi eri sivustoilla esim. personoidakseen mainoksia</translation>
 <translation id="6968288415730398122">Määritä näytön lukitus antamalla salasanasi.</translation>
 <translation id="6969047215179982698">Laita lähijakaminen pois päältä</translation>
+<translation id="6969216690072714773">Lisää uudet tai päivitä aiemmat tiedot, jotta laiteyhteyden voi muodostaa.</translation>
 <translation id="6970480684834282392">Käynnistystyyppi</translation>
 <translation id="6970543303783413625">Salasanojen siirto ei onnistu. Voit siirtää vain <ph name="COUNT" /> salasanaa kerrallaan.</translation>
 <translation id="6970856801391541997">Tulosta tietyt sivut</translation>
@@ -6826,6 +6831,7 @@
 <translation id="7377481913241237033">Muodosta yhteys koodilla</translation>
 <translation id="7378611153938412599">Heikko salasana on helppo arvata. Muista käyttää vahvoja salasanoja. <ph name="BEGIN_LINK" />Katso muita tietoturvavinkkejä.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Avaa Chrome Web Store</translation>
+<translation id="7380272457268061606">Poistetaanko paikallisen datan palautus käytöstä?</translation>
 <translation id="7380459290951585794">Varmista, että puhelin on lähellä, sen lukitus on avattu ja Bluetooth ja Wi-Fi ovat päällä</translation>
 <translation id="7380622428988553498">Laitteen nimi sisältää virheellisiä merkkejä</translation>
 <translation id="7380768571499464492">Päivitetty <ph name="PRINTER_NAME" /></translation>
@@ -7076,6 +7082,7 @@
 <translation id="7617263010641145920">Ota Play Kauppa käyttöön</translation>
 <translation id="7617648809369507487">Käytä hiljaisempia viestejä</translation>
 <translation id="7621382409404463535">Laitteen kokoonpanon tallentaminen järjestelmään epäonnistui.</translation>
+<translation id="7621595347123595643">Et voi palauttaa paikallista dataa, jos unohdat salasanan tai PIN-koodin.</translation>
 <translation id="7622114377921274169">Ladataan</translation>
 <translation id="7622768823216805500">Sivustot asentavat yleensä maksunkäsittelijöitä tarjotakseen osto-ominaisuuksia, esim. helpomman maksamisen</translation>
 <translation id="7622903810087708234">Salasanan tiedot</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index f65255c9a..f7f720a5 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -1300,6 +1300,7 @@
 <translation id="2157875535253991059">Full screen na ngayon ang pahinang ito.</translation>
 <translation id="2158475082070321257">Kopyahin ang link sa highlight</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Saklaw ng <ph name="SHORTCUT" /> para sa <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Magdagdag ng Wi-Fi...</translation>
 <translation id="2162155940152307086">Magsisimula ang pag-sync sa sandaling umalis ka sa mga setting ng pag-sync</translation>
 <translation id="2162705204091149050">Basahin ang impormasyon tungkol sa iyong browser, OS, device, naka-install na software, at mga file</translation>
@@ -2689,6 +2690,7 @@
 <translation id="3445047461171030979">Mga mabilisang sagot ng Google Assistant</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> (na) min</translation>
 <translation id="344537926140058498">Na-block ng iyong organisasyon ang file na ito dahil mayroon itong sensitibo o mapanganib na content Hilingin sa may-ari nitong ayusin ito.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Inalis ang mga pahintulot sa <ph name="BEGIN_BOLD" />1 site<ph name="END_BOLD" /> na hindi mo nabisita kamakailan}one{Inalis ang mga pahintulot sa <ph name="BEGIN_BOLD" />{NUM_SITES} site<ph name="END_BOLD" /> na hindi mo nabisita kamakailan}other{Inalis ang mga pahintulot sa <ph name="BEGIN_BOLD" />{NUM_SITES} na site<ph name="END_BOLD" /> na hindi mo nabisita kamakailan}}</translation>
 <translation id="3445925074670675829">USB-C device</translation>
 <translation id="3446274660183028131">Pakilunsad ang Parallels Desktop para ma-install ang Windows.</translation>
 <translation id="344630545793878684">Basahin ang iyong data sa ilang website</translation>
@@ -2900,6 +2902,7 @@
 <translation id="3642699533549879077">Kapag may ibang taong tumitingin sa iyong screen, makakatanggap ka ng alerto at itatago ang content ng notification.</translation>
 <translation id="3643962751030964445">Pinapamahalaan ng <ph name="DEVICE_MANAGER" /> ang device na ito. Humihiling ang <ph name="DEVICE_MANAGER" /> ng bagong profile para sa account na <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="3645372836428131288">Gumalaw nang bahagya para mag-capture ng ibang bahagi ng fingerprint.</translation>
+<translation id="3647051300407077858">Suriin ang mga pahintulot sa notification</translation>
 <translation id="3647654707956482440">Hindi magamit ang link na ito. Tingnan kung may mga typo o gumamit ng ibang link para subukan ulit.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> ang natanggap mula sa <ph name="DEVICE_NAME" />}one{<ph name="ATTACHMENTS" /> ang natanggap mula sa <ph name="DEVICE_NAME" />}other{<ph name="ATTACHMENTS" /> ang natanggap mula sa <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">Natukoy ang <ph name="USB_DEVICE_NAME" /></translation>
@@ -3079,6 +3082,7 @@
 <translation id="380408572480438692">Makakatulong sa Google ang pag-e-enable sa pagkolekta ng data ng pagganap na pahusayin ang system sa paglipas ng panahon. Walang ipinapadalang data hanggang sa maghain ka ng ulat ng feedback (Alt-Shift-I) at magsama ng data ng pagganap. Makakabalik ka sa screen na ito upang i-disable ang pagkolekta anumang oras.</translation>
 <translation id="3807249107536149332">Ang <ph name="EXTENSION_NAME" /> (extension ID "<ph name="EXTENSION_ID" />") ay hindi pinapayagan sa screen sa pag-login.</translation>
 <translation id="3807747707162121253">&amp;Kanselahin</translation>
+<translation id="3808202562160426447">I-dim ang content sa background</translation>
 <translation id="3808443763115411087">Pag-develop ng Android app sa Crostini</translation>
 <translation id="38089336910894858">Magpakita ng babala bago lumabas sa ⌘Q</translation>
 <translation id="3809272675881623365">Kuneho</translation>
@@ -3670,6 +3674,7 @@
 <translation id="4364567974334641491">Nagbabahagi ng window ang <ph name="APP_NAME" />.</translation>
 <translation id="4364830672918311045">Ipakita ang mga notification</translation>
 <translation id="4366138410738374926">Nagsimula ang pag-print</translation>
+<translation id="4367513928820380646">Suriin ang mga inalis na pahintulot</translation>
 <translation id="4369121877634339065">Mag-drag ng anumang larawan para maghanap</translation>
 <translation id="4369215744064167350">Inaprubahan ang kahilingan sa website</translation>
 <translation id="4370975561335139969">Hindi nagtutugma ang inilagay mong email at password</translation>
@@ -4390,6 +4395,7 @@
 <translation id="5045550434625856497">Hindi wastong password</translation>
 <translation id="504561833207953641">Binubuksan sa kasalukuyang session ng browser.</translation>
 <translation id="5049614114599109018">Gamitin ang History ng Input</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Nagpadala ang site ng maraming notification kamakailan. Puwede mong ihinto ang pagpapadala nito ng mga notification sa hinaharap.}one{Nagpadala ang mga site na ito ng maraming notification kamakailan. Puwede mong ihinto ang pagpapadala ng mga ito ng mga notification sa hinaharap.}other{Nagpadala ang mga site na ito ng maraming notification kamakailan. Puwede mong ihinto ang pagpapadala ng mga ito ng mga notification sa hinaharap.}}</translation>
 <translation id="5051836348807686060">Hindi sinusuportahan ang spellcheck para sa mga pinili mong wika</translation>
 <translation id="5052499409147950210">I-edit ang site</translation>
 <translation id="505347685865235222">Grupong walang pangalan - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7288,6 +7294,7 @@
 <translation id="7775694664330414886">Inilipat ang tab sa isang grupong walang pangalan - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340">Matitingnan ng <ph name="ORIGIN" /> ang mga file sa <ph name="FOLDERNAME" /> hanggang sa isara mo ang lahat ng tab para sa site na ito</translation>
 <translation id="7776701556330691704">Walang nakitang boses</translation>
+<translation id="7777624210360383048">Shortcut na <ph name="SHORTCUT" /> para sa <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Aalisin ang lahat ng user account at lokal na data.</translation>
 <translation id="7782102568078991263">Wala nang mga suhestiyon mula sa Google</translation>
 <translation id="7782717250816686129">I-store ang mga persistent data sa screen sa pag-log in at ilagay ang mga kredensyal sa session.</translation>
@@ -7320,6 +7327,7 @@
 <translation id="7807711621188256451">Palaging pahintulutan ang <ph name="HOST" /> na i-access ang iyong camera</translation>
 <translation id="7810202088502699111">Hinarangan ang mga pop-up sa pahinang ito.</translation>
 <translation id="7814458197256864873">&amp;Kopyahin</translation>
+<translation id="7815583197273433531">I-edit ang shortcut na <ph name="SHORTCUT" /> para sa <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">Na-block ang mapanganib na download</translation>
 <translation id="7817361223956157679">Hindi pa gumagana ang on-screen na keyboard sa mga app ng Linux</translation>
 <translation id="7818135753970109980">Nagdagdag ng bagong tema (<ph name="EXTENSION_NAME" />)</translation>
@@ -7394,6 +7402,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Tingnan ang Account</translation>
 <translation id="7883792253546618164">Mag-unsubscribe anumang oras.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Suriin ang 1 site na nagpadala ng maraming notification}one{Suriin ang {NUM_SITES} site na nagpadala ng maraming notification}other{Suriin ang {NUM_SITES} na site na nagpadala ng maraming notification}}</translation>
 <translation id="788453346724465748">Nilo-load ang impormasyon ng account...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{isang item}one{# item}other{# na item}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 64e84fc..02ebb1c 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -2340,6 +2340,7 @@
 <translation id="3105796011181310544">Revenir à Google ?</translation>
 <translation id="310671807099593501">Le site utilise le Bluetooth</translation>
 <translation id="3108931485517391283">Impossible de recevoir le transfert</translation>
+<translation id="3108957152224931571">Couleur de surlignage</translation>
 <translation id="3109206895301430738">Groupes d'onglets enregistrés</translation>
 <translation id="3109724472072898302">Réduit</translation>
 <translation id="3112292765614504292">Taille de l'appli : <ph name="APP_SIZE" /></translation>
@@ -4584,6 +4585,7 @@
 <translation id="5260334392110301220">Guillemets courbes</translation>
 <translation id="5260508466980570042">Adresse e-mail ou mot de passe incorrect. Veuillez réessayer.</translation>
 <translation id="5260958083445173099">Les sites Web s'afficheront dans vos langues préférées, si possible</translation>
+<translation id="5261619498868361045">Vous devez indiquer un nom de conteneur.</translation>
 <translation id="5261683757250193089">Ouvrir sur le Web Store</translation>
 <translation id="5262178194499261222">Supprimer le mot de passe</translation>
 <translation id="5262784498883614021">Se connecter automatiquement au réseau</translation>
@@ -4991,6 +4993,7 @@
 <translation id="562935524653278697">Votre administrateur a désactivé la synchronisation de vos favoris, de votre historique, de vos mots de passe et d'autres paramètres.</translation>
 <translation id="5631017369956619646">Utilisation de l'UC</translation>
 <translation id="5632059346822207074">Autorisation demandée, appuyez sur Ctrl+Suivant pour répondre</translation>
+<translation id="5632221585574759616">En savoir plus sur les autorisations des extensions</translation>
 <translation id="5632566673632479864">Votre compte <ph name="EMAIL" /> n'est plus autorisé comme compte principal. Étant donné que ce compte est géré par <ph name="DOMAIN" />, vos favoris, votre historique, vos mots de passe et les autres paramètres seront effacés de cet appareil.</translation>
 <translation id="5632592977009207922">Téléchargement en cours, <ph name="PERCENT_REMAINING" /> % restant</translation>
 <translation id="5633149627228920745">En savoir plus sur la configuration système requise</translation>
@@ -5611,6 +5614,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> est hors connexion. Connectez-vous à Internet, puis réessayez.</translation>
 <translation id="6220413761270491930">Erreur lors du chargement de l'extension</translation>
 <translation id="6224481128663248237">Formatage réussi !</translation>
+<translation id="622474711739321877">Ce nom de conteneur existe déjà.</translation>
 <translation id="622537739776246443">Le profil va être supprimé</translation>
 <translation id="6225475702458870625">Connexion de données disponible sur votre <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Fichier de clé privée (facultatif)</translation>
@@ -6412,6 +6416,7 @@
 <translation id="696780070563539690">Les sites ne peuvent pas utiliser vos cookies pour voir votre activité de navigation sur l'ensemble des différents sites (par exemple, pour personnaliser les annonces)</translation>
 <translation id="6968288415730398122">Saisissez votre mot de passe pour configurer le verrouillage de l'écran</translation>
 <translation id="6969047215179982698">Désactiver le Partage à proximité</translation>
+<translation id="6969216690072714773">Saisissez ou mettez à jour les informations associées à cet appareil.</translation>
 <translation id="6970480684834282392">Type de démarrage</translation>
 <translation id="6970543303783413625">Impossible d'importer les mots de passe. Vous ne pouvez en importer que <ph name="COUNT" /> à la fois.</translation>
 <translation id="6970856801391541997">Imprimer des pages spécifiques</translation>
@@ -6818,6 +6823,7 @@
 <translation id="7377481913241237033">Connecter un appareil avec un code</translation>
 <translation id="7378611153938412599">Les mots de passe peu sécurisés sont faciles à deviner. Assurez-vous de créer des mots de passe sécurisés. <ph name="BEGIN_LINK" />Découvrez d'autres conseils de sécurité.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Ouvrir le Chrome Web Store</translation>
+<translation id="7380272457268061606">Désactiver la récupération des données locales ?</translation>
 <translation id="7380459290951585794">Vérifiez que votre téléphone est déverrouillé et à proximité, et que le Bluetooth et le Wi-Fi sont activés</translation>
 <translation id="7380622428988553498">Le nom de l'appareil comporte des caractères non valides</translation>
 <translation id="7380768571499464492">L'imprimante "<ph name="PRINTER_NAME" />" a bien été mise à jour</translation>
@@ -7068,6 +7074,7 @@
 <translation id="7617263010641145920">Activer le Play Store</translation>
 <translation id="7617648809369507487">Activer les notifications discrètes</translation>
 <translation id="7621382409404463535">Échec de l'enregistrement de la configuration de l'appareil.</translation>
+<translation id="7621595347123595643">Vous ne pourrez pas récupérer de données locales si vous oubliez votre mot de passe ou votre code.</translation>
 <translation id="7622114377921274169">En charge.</translation>
 <translation id="7622768823216805500">Les sites installent généralement des gestionnaires de paiement pour proposer certaines fonctionnalités d'achat, comme un règlement plus simple</translation>
 <translation id="7622903810087708234">Détails du mot de passe</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 8c352de..e6fc0442 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -2353,6 +2353,7 @@
 <translation id="3105796011181310544">इसे बदलकर फिर से Google करें?</translation>
 <translation id="310671807099593501">साइट ब्लूटूथ का इस्तेमाल कर रही है</translation>
 <translation id="3108931485517391283">फ़ाइल नहीं मिल सकी</translation>
+<translation id="3108957152224931571">हाइलाइट करने के लिए रंग</translation>
 <translation id="3109206895301430738">सेव किए हुए टैब ग्रुप</translation>
 <translation id="3109724472072898302">संक्षिप्त</translation>
 <translation id="3112292765614504292">ऐप्लिकेशन का साइज़: <ph name="APP_SIZE" /></translation>
@@ -4590,6 +4591,7 @@
 <translation id="5260334392110301220">Smart Quotes</translation>
 <translation id="5260508466980570042">क्षमा करें, आपका ईमेल या पासवर्ड सत्‍यापित नहीं हो सका. कृपया फिर से प्रयास करें.</translation>
 <translation id="5260958083445173099">जब भी संभव होगा, वेबसाइटों पर आपकी पसंदीदा भाषाओं में कॉन्टेंट दिखाया जाएगा</translation>
+<translation id="5261619498868361045">कंटेनर का नाम डालना ज़रूरी है.</translation>
 <translation id="5261683757250193089">वेब स्टोर में खोलें</translation>
 <translation id="5262178194499261222">पासवर्ड हटाएं</translation>
 <translation id="5262784498883614021">नेटवर्क से अपने-आप कनेक्ट हो</translation>
@@ -4996,6 +4998,7 @@
 <translation id="562935524653278697">आपके व्यवस्थापक ने आपके बुकमार्क, इतिहास, पासवर्ड और अन्य सेटिंग को सिंक करना अक्षम कर दिया है.</translation>
 <translation id="5631017369956619646">CPU का उपयोग</translation>
 <translation id="5632059346822207074">अनुमति मांगी गई है, जवाब देने के लिए Ctrl + Forward बटन दबाएं</translation>
+<translation id="5632221585574759616">एक्सटेंशन को दी गई अनुमतियों के बारे में ज़्यादा जानें</translation>
 <translation id="5632566673632479864">आपका खाता <ph name="EMAIL" /> अब प्राथमिक खाते के रूप में काम नहीं कर सकता. इस खाते का प्रबंधन <ph name="DOMAIN" /> करता है. इसलिए, आपके बुकमार्क, इतिहास, पासवर्ड, और दूसरी सेटिंग को इस डिवाइस से हटा दिया जाएगा.</translation>
 <translation id="5632592977009207922">डाउनलोड हो रहा है, <ph name="PERCENT_REMAINING" />% बचा है</translation>
 <translation id="5633149627228920745">सिस्टम से जुड़ी ज़रूरतों के बारे में ज़्यादा जानें</translation>
@@ -5616,6 +5619,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> ऑफ़लाइन है. इंटरनेट से कनेक्ट करें और फिर से कोशिश करें.</translation>
 <translation id="6220413761270491930">एक्सटेंशन लोड करने में गड़बड़ी</translation>
 <translation id="6224481128663248237">स्‍वरूपण सफलतापूर्वक खत्म हो गया!</translation>
+<translation id="622474711739321877">इस नाम का कंटेनर पहले से मौजूद है.</translation>
 <translation id="622537739776246443">प्रोफ़ाइल मिटा दी जाएगी</translation>
 <translation id="6225475702458870625">आपके <ph name="PHONE_NAME" /> से डेटा कनेक्शन उपलब्ध है</translation>
 <translation id="6226777517901268232">निजी कुंजी फ़ाइल (वैकल्पिक)</translation>
@@ -6416,6 +6420,7 @@
 <translation id="696780070563539690">अलग-अलग साइटों पर आपकी ब्राउज़िंग गतिविधि देखने के लिए, साइटें कुकी का इस्तेमाल नहीं कर सकतीं. जैसे, दर्शकों की पसंद को ध्यान में रखकर विज्ञापन दिखाने के लिए</translation>
 <translation id="6968288415730398122">स्क्रीन लॉक कॉन्फ़िगर करने के लिए अपना पासवर्ड डालें</translation>
 <translation id="6969047215179982698">आस-पास शेयर करने की सुविधा बंद करें</translation>
+<translation id="6969216690072714773">इस डिवाइस के साथ जोड़ी जाने वाली नई जानकारी डालें या मौजूदा जानकारी को अपडेट करें.</translation>
 <translation id="6970480684834282392">स्टार्टअप प्रकार</translation>
 <translation id="6970543303783413625">पासवर्ड इंपोर्ट नहीं किए जा सके. एक बार में सिर्फ़ <ph name="COUNT" /> पासवर्ड इंपोर्ट किए जा सकते हैं.</translation>
 <translation id="6970856801391541997">विशेष पेज प्रिंट करें</translation>
@@ -6822,6 +6827,7 @@
 <translation id="7377481913241237033">कोड का इस्तेमाल करके कनेक्ट करें</translation>
 <translation id="7378611153938412599">कमज़ोर पासवर्ड का अंदाज़ा लगाना आसान होता है. पक्का करें कि आप मज़बूत पासवर्ड बना रहे हैं. <ph name="BEGIN_LINK" />सुरक्षा से जुड़ी और सलाह देखें.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome वेब स्टोर खोलें</translation>
+<translation id="7380272457268061606">डिवाइस पर सेव किए गए डेटा को वापस पाने की सुविधा बंद करनी है?</translation>
 <translation id="7380459290951585794">पक्का करें कि आपका फ़ोन आस-पास हो और अनलॉक हो. साथ ही, उसका ब्लूटूथ और वाई-फ़ाई चालू हो</translation>
 <translation id="7380622428988553498">डिवाइस के नाम में अमान्य वर्ण हैं</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> अपडेट किया गया</translation>
@@ -7071,6 +7077,7 @@
 <translation id="7617263010641145920">'Play Store' चालू करें</translation>
 <translation id="7617648809369507487">काम में किसी रुकावट के बिना सूचनाएं पाएं</translation>
 <translation id="7621382409404463535">सिस्टम, डिवाइस कॉन्फ़िगरेशन को सेव नहीं कर सका.</translation>
+<translation id="7621595347123595643">अपना पासवर्ड या पिन भूल जाने पर, डिवाइस पर सेव किया गया डेटा वापस नहीं पाया जा सकेगा.</translation>
 <translation id="7622114377921274169">चार्ज हो रहा है.</translation>
 <translation id="7622768823216805500">आम तौर पर, साइटें आसान चेकआउट जैसी खरीदारी से जुड़ी सुविधाओं के लिए, पेमेंट हैंडलर (पैसे चुकाने से जुड़े सॉफ़्टवेयर) इंस्टॉल करती हैं</translation>
 <translation id="7622903810087708234">पासवर्ड की जानकारी</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index f93b6e0..2a63994 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -2355,6 +2355,7 @@
 <translation id="3105796011181310544">Skipta aftur yfir í Google?</translation>
 <translation id="310671807099593501">Vefsvæði er að nota Bluetooth</translation>
 <translation id="3108931485517391283">Ekki er hægt að taka við</translation>
+<translation id="3108957152224931571">Yfirstrikunarlitur</translation>
 <translation id="3109206895301430738">Vistaðir flipahópar</translation>
 <translation id="3109724472072898302">Minnkað</translation>
 <translation id="3112292765614504292">Stærð forrits <ph name="APP_SIZE" /></translation>
@@ -4600,6 +4601,7 @@
 <translation id="5260334392110301220">Sjálfvirkar gæsalappir</translation>
 <translation id="5260508466980570042">Því miður tókst ekki að staðfesta netfangið þitt eða aðgangsorðið. Reyndu aftur.</translation>
 <translation id="5260958083445173099">Vefsvæði birta efni á kjörtungumálum ef mögulegt er</translation>
+<translation id="5261619498868361045">Heiti geymis má ekki vera autt.</translation>
 <translation id="5261683757250193089">Opna í vefverslun</translation>
 <translation id="5262178194499261222">Fjarlægja aðgangsorð</translation>
 <translation id="5262784498883614021">Tengjast netkerfi sjálfkrafa</translation>
@@ -5006,6 +5008,7 @@
 <translation id="562935524653278697">Kerfisstjóri hefur gert samstillingu bókamerkja, ferla, aðgangsorða og annarra stillinga óvirka.</translation>
 <translation id="5631017369956619646">Örgjörvanotkun</translation>
 <translation id="5632059346822207074">Heimildar óskað, ýttu á Ctrl + Áfram til að svara</translation>
+<translation id="5632221585574759616">Nánar um heimildir viðbóta</translation>
 <translation id="5632566673632479864">Reikningurinn þinn <ph name="EMAIL" /> er ekki lengur leyfður sem aðalreikningur. Þar sem <ph name="DOMAIN" /> stýrir þessum reikningi verða bókamerkin þín, ferillinn, aðgangsorðin og aðrar stillingar hreinsuð úr tækinu.</translation>
 <translation id="5632592977009207922">Sækir, <ph name="PERCENT_REMAINING" />% eftir</translation>
 <translation id="5633149627228920745">Nánar um kerfiskröfur</translation>
@@ -5626,6 +5629,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> er án nettengingar. Tengdu við internetið og reyndu aftur.</translation>
 <translation id="6220413761270491930">Villa við að hlaða viðbót</translation>
 <translation id="6224481128663248237">Lokið við að sníða!</translation>
+<translation id="622474711739321877">Þessi geymir er þegar til.</translation>
 <translation id="622537739776246443">Prófílnum verður eytt</translation>
 <translation id="6225475702458870625">Gagnatenging tiltæk úr <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Skrá einkalykils (valfrjálst)</translation>
@@ -6427,6 +6431,7 @@
 <translation id="696780070563539690">Vefsvæði geta ekki notað fótsporin þín til að sjá vafranotkun þína á vefsvæðum, til dæmis til að sérsníða auglýsingar</translation>
 <translation id="6968288415730398122">Sláðu inn aðgangsorðið til að stilla skjálásinn</translation>
 <translation id="6969047215179982698">Slökkva á Nærdeilingu</translation>
+<translation id="6969216690072714773">Færðu inn eða breyttu upplýsingunum sem á að tengja við þetta tæki.</translation>
 <translation id="6970480684834282392">Gerð ræsingar</translation>
 <translation id="6970543303783413625">Ekki er hægt að flytja inn aðgangsorð. Aðeins er hægt að flytja inn allt að <ph name="COUNT" /> aðgangsorð í einu.</translation>
 <translation id="6970856801391541997">Prenta tilteknar síður</translation>
@@ -6833,6 +6838,7 @@
 <translation id="7377481913241237033">Tengjast með kóða</translation>
 <translation id="7378611153938412599">Léleg aðgangsorð eru þau sem auðvelt er að giska á. Passaðu að búa til traust aðgangsorð. <ph name="BEGIN_LINK" />Sjá fleiri öryggisábendingar.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Opna vefverslun Chrome</translation>
+<translation id="7380272457268061606">Slökkva á endurheimt staðbundinna gagna?</translation>
 <translation id="7380459290951585794">Gakktu úr skugga um að síminn sé nálægt, ólæstur og með kveikt á Bluetooth og Wi-Fi</translation>
 <translation id="7380622428988553498">Heiti tækis inniheldur ógilda stafi</translation>
 <translation id="7380768571499464492">Uppfært <ph name="PRINTER_NAME" /></translation>
@@ -7083,6 +7089,7 @@
 <translation id="7617263010641145920">Kveikja á Play Store</translation>
 <translation id="7617648809369507487">Nota hljóðlátari skilaboð</translation>
 <translation id="7621382409404463535">Kerfið gat ekki vistað stillingu tækisins.</translation>
+<translation id="7621595347123595643">Þú getur ekki endurheimt staðbundin gögn ef þú gleymir aðgangsorðinu þínu eða PIN-númerinu.</translation>
 <translation id="7622114377921274169">Í hleðslu.</translation>
 <translation id="7622768823216805500">Vefsvæði setja yfirleitt upp greiðslumiðlara fyrir verslunareiginleika eins og einfaldari greiðslu</translation>
 <translation id="7622903810087708234">Upplýsingar um aðgangsorð</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 84e4303..dc102514 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -2337,6 +2337,7 @@
 <translation id="3105796011181310544">Tornare a Google?</translation>
 <translation id="310671807099593501">Il sito sta usando il Bluetooth</translation>
 <translation id="3108931485517391283">Impossibile ricevere</translation>
+<translation id="3108957152224931571">Colore di evidenziazione</translation>
 <translation id="3109206895301430738">Gruppi di schede salvati</translation>
 <translation id="3109724472072898302">Compresso</translation>
 <translation id="3112292765614504292">Dimensioni app: <ph name="APP_SIZE" /></translation>
@@ -4574,6 +4575,7 @@
 <translation id="5260334392110301220">Virgolette smart</translation>
 <translation id="5260508466980570042">Spiacenti, impossibile verificare l'email o la password. Riprova.</translation>
 <translation id="5260958083445173099">Se possibile, i contenuti dei siti web verranno mostrati nelle tue lingue preferite</translation>
+<translation id="5261619498868361045">È necessario specificare il nome del contenitore.</translation>
 <translation id="5261683757250193089">Apri nel Web Store</translation>
 <translation id="5262178194499261222">Rimuovi password</translation>
 <translation id="5262784498883614021">Collegati automaticamente alla rete</translation>
@@ -4978,6 +4980,7 @@
 <translation id="562935524653278697">L'amministratore ha disattivato la sincronizzazione dei tuoi preferiti, della cronologia, delle password e di altre impostazioni.</translation>
 <translation id="5631017369956619646">Utilizzo CPU</translation>
 <translation id="5632059346822207074">Autorizzazione richiesta, premi Ctrl + Avanti per rispondere</translation>
+<translation id="5632221585574759616">Scopri di più sulle autorizzazioni delle estensioni</translation>
 <translation id="5632566673632479864">Il tuo account <ph name="EMAIL" /> non è più consentito come account principale. Siccome l'account è gestito da <ph name="DOMAIN" />, i preferiti, la cronologia, le password e altre impostazioni verranno cancellati da questo dispositivo.</translation>
 <translation id="5632592977009207922">Download in corso: <ph name="PERCENT_REMAINING" />% rimanente</translation>
 <translation id="5633149627228920745">Scopri di più sui requisiti di sistema</translation>
@@ -5597,6 +5600,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> è offline. Connettiti a Internet e riprova.</translation>
 <translation id="6220413761270491930">Errore di caricamento dell'estensione</translation>
 <translation id="6224481128663248237">Formattazione terminata.</translation>
+<translation id="622474711739321877">Questo contenitore esiste già.</translation>
 <translation id="622537739776246443">Il profilo verrà eliminato</translation>
 <translation id="6225475702458870625">Connessione dati disponibile dal tuo dispositivo <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">File chiave privata (facoltativo)</translation>
@@ -6395,6 +6399,7 @@
 <translation id="696780070563539690">I siti non possono utilizzare i cookie per conoscere la tua attività di navigazione su siti diversi, ad esempio per personalizzare gli annunci</translation>
 <translation id="6968288415730398122">Inserisci la password per configurare il blocco schermo</translation>
 <translation id="6969047215179982698">Disattiva Condivisione nelle vicinanze</translation>
+<translation id="6969216690072714773">Inserisci nuove informazioni o aggiorna informazioni esistenti da associare a questo dispositivo.</translation>
 <translation id="6970480684834282392">Tipo di avvio</translation>
 <translation id="6970543303783413625">Impossibile importare le password. Puoi importarne massimo <ph name="COUNT" /> alla volta.</translation>
 <translation id="6970856801391541997">Stampa pagine specifiche</translation>
@@ -6801,6 +6806,7 @@
 <translation id="7377481913241237033">Connessione tramite codice</translation>
 <translation id="7378611153938412599">Le password inefficaci sono facili da indovinare. Assicurati di creare password efficaci. <ph name="BEGIN_LINK" />Leggi altri suggerimenti per la sicurezza.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Apri Chrome Web Store</translation>
+<translation id="7380272457268061606">Vuoi disattivare il recupero dei dati locali?</translation>
 <translation id="7380459290951585794">Assicurati che il tuo telefono sia nelle vicinanze, sbloccato e che il Bluetooth e il Wi-Fi siano attivi</translation>
 <translation id="7380622428988553498">Il nome del dispositivo contiene caratteri non validi</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> è stata aggiornata</translation>
@@ -7050,6 +7056,7 @@
 <translation id="7617263010641145920">Attivare il Play Store</translation>
 <translation id="7617648809369507487">Usa messaggi più discreti</translation>
 <translation id="7621382409404463535">Il sistema non è riuscito a salvare la configurazione del dispositivo.</translation>
+<translation id="7621595347123595643">Non potrai recuperare i dati locali se non ricordi la password o il PIN.</translation>
 <translation id="7622114377921274169">In carica.</translation>
 <translation id="7622768823216805500">In genere, i siti installano gestori dei pagamenti per funzionalità di acquisto come il pagamento semplificato</translation>
 <translation id="7622903810087708234">Dettagli password</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 1d121ed6..b90be28 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -2352,6 +2352,7 @@
 <translation id="3105796011181310544">‏להחזיר אל Google?</translation>
 <translation id="310671807099593501">‏האתר משתמש ב-Bluetooth</translation>
 <translation id="3108931485517391283">לא ניתן לקבל את הקובץ</translation>
+<translation id="3108957152224931571">הצבע להדגשה</translation>
 <translation id="3109206895301430738">קבוצות כרטיסיות שמורות</translation>
 <translation id="3109724472072898302">מכווץ</translation>
 <translation id="3112292765614504292">גודל האפליקציה: <ph name="APP_SIZE" /></translation>
@@ -4590,6 +4591,7 @@
 <translation id="5260334392110301220">מירכאות חכמות</translation>
 <translation id="5260508466980570042">מצטערים, לא ניתן לאמת את האימייל או את הסיסמה שלך. יש לנסות שוב.</translation>
 <translation id="5260958083445173099">התוכן באתרים יוצג בשפות המועדפות שלך כשזה יהיה אפשרי.</translation>
+<translation id="5261619498868361045">שם הקונטיינר לא יכול להיות ריק.</translation>
 <translation id="5261683757250193089">פתיחה בחנות האינטרנט</translation>
 <translation id="5262178194499261222">הסרת הסיסמה</translation>
 <translation id="5262784498883614021">התחברות אוטומטית לרשת</translation>
@@ -4996,6 +4998,7 @@
 <translation id="562935524653278697">מנהל המערכת השבית את הסנכרון של סימניות, היסטוריה, סיסמאות והגדרות אחרות שלך.</translation>
 <translation id="5631017369956619646">שימוש במעבד</translation>
 <translation id="5632059346822207074">‏נשלחה בקשת הרשאה, יש ללחוץ על Ctrl + 'קדימה' כדי להשיב</translation>
+<translation id="5632221585574759616">מידע נוסף על הרשאות לתוספים</translation>
 <translation id="5632566673632479864">הסתיימה ההרשאה של החשבון שלך <ph name="EMAIL" /> כחשבון ראשי. החשבון הזה מנוהל על ידי <ph name="DOMAIN" />, ולכן הסימניות, ההיסטוריה, הסיסמאות והגדרות אחרות יימחקו מהמכשיר הזה.</translation>
 <translation id="5632592977009207922">‏מתבצעת הורדה, נשארו ‎<ph name="PERCENT_REMAINING" />%‎</translation>
 <translation id="5633149627228920745">מידע נוסף על דרישות המערכת</translation>
@@ -5616,6 +5619,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> לא מחובר לרשת. צריך להתחבר לאינטרנט ולנסות שוב.</translation>
 <translation id="6220413761270491930">אירעה שגיאה בטעינת תוסף</translation>
 <translation id="6224481128663248237">הפרמוט הסתיים בהצלחה!</translation>
+<translation id="622474711739321877">הקונטיינר הזה כבר קיים.</translation>
 <translation id="622537739776246443">הפרופיל יימחק</translation>
 <translation id="6225475702458870625">יש חיבור נתונים זמין ב-<ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">קובץ מפתח פרטי (אופציונלי)</translation>
@@ -6418,6 +6422,7 @@
 <translation id="696780070563539690">‏אתרים לא יכולים להשתמש בקובצי ה-cookie שלך כדי לראות את פעילות הגלישה באתרים שונים, למשל לצורך התאמה אישית של מודעות</translation>
 <translation id="6968288415730398122">יש להזין את הסיסמה כדי להגדיר את נעילת המסך</translation>
 <translation id="6969047215179982698">כיבוי של 'שיתוף בקרבת מקום'</translation>
+<translation id="6969216690072714773">הזנת פרטים חדשים או עדכון פרטים קיימים שישויכו למכשיר הזה.</translation>
 <translation id="6970480684834282392">סוג הפעלה</translation>
 <translation id="6970543303783413625">לא ניתן לייבא את הסיסמאות. ניתן לייבא רק עד <ph name="COUNT" /> סיסמאות בכל פעם.</translation>
 <translation id="6970856801391541997">הדפסת דפים ספציפיים</translation>
@@ -6824,6 +6829,7 @@
 <translation id="7377481913241237033">התחברות באמצעות קוד</translation>
 <translation id="7378611153938412599">קל לנחש סיסמאות חלשות. חשוב להגדיר סיסמאות חזקות. <ph name="BEGIN_LINK" />לטיפים נוספים לגבי אבטחה.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">‏פתיחת חנות האינטרנט של Chrome</translation>
+<translation id="7380272457268061606">להשבית את שחזור הנתונים המקומיים?</translation>
 <translation id="7380459290951585794">‏חשוב לוודא שהטלפון נמצא בקרבת מקום, שהוא לא נעול ושה‑Bluetooth וה‑Wi‑Fi פועלים</translation>
 <translation id="7380622428988553498">שם המכשיר מכיל תווים לא חוקיים</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> עודכנה</translation>
@@ -7073,6 +7079,7 @@
 <translation id="7617263010641145920">‏הפעלה של חנות Play</translation>
 <translation id="7617648809369507487">שימוש במצב שקט יותר של העברת הודעות</translation>
 <translation id="7621382409404463535">המערכת לא הצליחה לשמור את תצורת המכשיר.</translation>
+<translation id="7621595347123595643">לא תהיה אפשרות לשחזר נתונים מקומיים אם שוכחים את הסיסמה או קוד האימות.</translation>
 <translation id="7622114377921274169">בטעינה.</translation>
 <translation id="7622768823216805500">‏אתרים מתקינים בדרך כלל רכיבי handler של תשלומים כדי להציע תכונות קנייה, כמו תשלום קל יותר בקופה</translation>
 <translation id="7622903810087708234">פרטי סיסמה</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 335c74c..ff37090 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -2331,6 +2331,7 @@
 <translation id="3105796011181310544">Google に戻しますか?</translation>
 <translation id="310671807099593501">サイトで Bluetooth が使用されています</translation>
 <translation id="3108931485517391283">受信できません</translation>
+<translation id="3108957152224931571">ハイライトの色</translation>
 <translation id="3109206895301430738">保存したタブグループ</translation>
 <translation id="3109724472072898302">折りたたみ表示中</translation>
 <translation id="3112292765614504292">アプリのサイズ: <ph name="APP_SIZE" /></translation>
@@ -4565,6 +4566,7 @@
 <translation id="5260334392110301220">スマート引用符</translation>
 <translation id="5260508466980570042">メールまたはパスワードを確認できませんでした。もう一度お試しください。</translation>
 <translation id="5260958083445173099">ウェブサイトのコンテンツが指定した言語で表示されるようになります(可能な場合)</translation>
+<translation id="5261619498868361045">コンテナ名を空白にすることはできません。</translation>
 <translation id="5261683757250193089">ウェブストアで開く</translation>
 <translation id="5262178194499261222">パスワードを削除</translation>
 <translation id="5262784498883614021">ネットワークに自動接続する</translation>
@@ -4970,6 +4972,7 @@
 <translation id="562935524653278697">管理者がブックマーク、履歴、パスワードなどの設定の同期を無効にしました。</translation>
 <translation id="5631017369956619646">CPU 使用状況</translation>
 <translation id="5632059346822207074">権限がリクエストされました。対応するには、Ctrl+Forward キーを押してください</translation>
+<translation id="5632221585574759616">拡張機能の権限の詳細</translation>
 <translation id="5632566673632479864">お使いのアカウント <ph name="EMAIL" /> は、メイン アカウントとして使用できなくなりました。このアカウントは <ph name="DOMAIN" /> で管理されているため、ブックマーク、履歴、パスワードなどの設定はこのデバイスから削除されます。</translation>
 <translation id="5632592977009207922">ダウンロードしています(残り <ph name="PERCENT_REMAINING" />%)</translation>
 <translation id="5633149627228920745">システム要件の詳細</translation>
@@ -5590,6 +5593,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> はオフラインです。インターネットに接続してもう一度お試しください。</translation>
 <translation id="6220413761270491930">拡張機能の読み込みエラー</translation>
 <translation id="6224481128663248237">フォーマットが完了しました。</translation>
+<translation id="622474711739321877">このコンテナはすでに存在します。</translation>
 <translation id="622537739776246443">プロフィールは削除されます</translation>
 <translation id="6225475702458870625"><ph name="PHONE_NAME" /> からデータ接続が可能です</translation>
 <translation id="6226777517901268232">秘密鍵ファイル(省略可能)</translation>
@@ -6386,6 +6390,7 @@
 <translation id="696780070563539690">サイトは、Cookie を使用して別のサイトでのあなたの閲覧アクティビティを確認できません(広告のカスタマイズなどが行えません)</translation>
 <translation id="6968288415730398122">画面ロックを設定するにはパスワードを入力します</translation>
 <translation id="6969047215179982698">ニアバイシェアをオフにする</translation>
+<translation id="6969216690072714773">このデバイスに関連付ける新しい情報を入力するか、既存の情報を更新します。</translation>
 <translation id="6970480684834282392">起動タイプ</translation>
 <translation id="6970543303783413625">パスワードをインポートできません。一度にインポートできるパスワードは最大 <ph name="COUNT" /> 件です。</translation>
 <translation id="6970856801391541997">指定したページを印刷</translation>
@@ -6791,6 +6796,7 @@
 <translation id="7377481913241237033">コードを使用して接続</translation>
 <translation id="7378611153938412599">脆弱なパスワードは簡単に推測されてしまいます。安全なパスワードを作成してください。<ph name="BEGIN_LINK" />セキュリティに関する他のヒントを見る<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome ウェブストアを開きます</translation>
+<translation id="7380272457268061606">ローカルデータの復元を無効にしますか?</translation>
 <translation id="7380459290951585794">Bluetooth 搭載のスマートフォンが近くにあり、Wi-Fi がオンになっていて、ロックも解除されていることを確認してください</translation>
 <translation id="7380622428988553498">デバイス名に無効な文字が含まれています</translation>
 <translation id="7380768571499464492">更新: <ph name="PRINTER_NAME" /></translation>
@@ -7040,6 +7046,7 @@
 <translation id="7617263010641145920">Play ストアをオンにする</translation>
 <translation id="7617648809369507487">静かな方法で通知する</translation>
 <translation id="7621382409404463535">デバイスの設定を保存できませんでした。</translation>
+<translation id="7621595347123595643">パスワードや PIN を忘れた場合、ローカルデータを復元できなくなります。</translation>
 <translation id="7622114377921274169">充電しています。</translation>
 <translation id="7622768823216805500">多くのサイトは、お支払い手続きを簡易化するなど、ショッピングをより快適にするために支払いハンドラをインストールします。</translation>
 <translation id="7622903810087708234">パスワードの詳細</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index 6507a6d..0e205f2 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -1287,6 +1287,7 @@
 <translation id="2157875535253991059">ეს გვერდი ახლა მთელ ეკრანზეა.</translation>
 <translation id="2158475082070321257">გამოყოფილთან ბმულის კოპირება</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">სფერო <ph name="SHORTCUT" /> გაფართოებისთვის <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Wi-Fi-ს დამატება…</translation>
 <translation id="2162155940152307086">სინქრონიზაცია დაიწყება სინქრონიზაციის პარამეტრებიდან გამოსვლის შემდეგ</translation>
 <translation id="2162705204091149050">ინფორმაციის წაკითხვა თქვენი ბრაუზერის, ოპერაციული სისტემის, მოწყობილობის, დაინსტალირებული პროგრამული უზრუნველყოფისა და ფაილების შესახებ</translation>
@@ -2672,6 +2673,7 @@
 <translation id="3445047461171030979">Google ასისტენტის სწრაფი პასუხები</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> წთ</translation>
 <translation id="344537926140058498">თქვენმა ორგანიზაციამ დაბლოკა ეს ფაილი, რადგან ის შეიცავს სენსიტიურ ან სახიფათო კონტენტს. სთხოვეთ მის მფლობელს აღნიშნულის გამოსწორება.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{ნებართვები გაუუქმდა <ph name="BEGIN_BOLD" />1 საიტს<ph name="END_BOLD" />, რომელიც ახლახან არ მოგინახულებიათ}other{ნებართვები გაუუქმდა <ph name="BEGIN_BOLD" />{NUM_SITES} საიტს<ph name="END_BOLD" />, რომლებიც ახლახან არ მოგინახულებიათ}}</translation>
 <translation id="3445925074670675829">USB-C მოწყობილობა</translation>
 <translation id="3446274660183028131">Windows-ის ინსტალაციისთვის გაუშვით Parallels Desktop.</translation>
 <translation id="344630545793878684">წაიკითხეთ თქვენი მონაცემები რამდენიმე ვებსაიტზე</translation>
@@ -2883,6 +2885,7 @@
 <translation id="3642699533549879077">როცა ვინმე სხვა შეხედავს თქვენს ეკრანს, თქვენ მიიღებთ ამაზე გაფრთხილებას და შეტყობინების შინაარსი დაიმალება.</translation>
 <translation id="3643962751030964445">ამ მოწყობილობას მართავს <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> ითხოვს ახალ პროფილს ანგარიშისთვის <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="3645372836428131288">გთხოვთ, ოდნავ გადააადგილოთ თითი თქვენი თითის ანაბეჭდის სხვა ნაწილის აღსაბეჭდად.</translation>
+<translation id="3647051300407077858">შეტყობინებების ნებართვების შემოწმება</translation>
 <translation id="3647654707956482440">ამ ბმულის გამოყენება შეუძლებელია. ხელახლა საცდელად შეამოწმეთ, ხომ არ შეიცავს ბმული შეცდომებს, ან გამოიყენეთ სხვა ბმული.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="ATTACHMENTS" /> მიღებულია <ph name="DEVICE_NAME" />-დან}other{<ph name="ATTACHMENTS" /> მიღებულია <ph name="DEVICE_NAME" />-დან}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> აღმოჩენილია</translation>
@@ -3062,6 +3065,7 @@
 <translation id="380408572480438692">ეფექტურობის მონაცემების შეგროვების ჩართვის შემთხვევაში თქვენ დაეხმარებით Google-ს სისტემის გაუმჯობესებაში. მონაცემები არ გაიგზავნება, სანამ არ გაგზავნით შეფასების მოხსენებას (Alt-Shift-I) ეფექტურობის მონაცემებით. შეგიძლიათ ნებისმიერ დროს გამორთოთ შეგროვების ფუნქცია ამ ფანჯარაში.</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (გაფართოების ID „<ph name="EXTENSION_ID" />“) არ არის ნებადართული შესვლის ეკრანზე.</translation>
 <translation id="3807747707162121253">&amp;გაუქმება</translation>
+<translation id="3808202562160426447">კონტენტის ფონის ჩაბნელება</translation>
 <translation id="3808443763115411087">Crostini-ს Android აპის შემუშავება</translation>
 <translation id="38089336910894858">გაფრთხილების ჩვენება ⌘Q-ის მეშვეობით გასვლამდე</translation>
 <translation id="3809272675881623365">კურდღელი</translation>
@@ -3653,6 +3657,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> ფანჯარას აზიარებს.</translation>
 <translation id="4364830672918311045">შეტყობინებების ჩვენება</translation>
 <translation id="4366138410738374926">ბეჭდვა დაიწყო</translation>
+<translation id="4367513928820380646">გაუქმებული ნებართვების შემოწმება</translation>
 <translation id="4369121877634339065">ძიებისთვის ჩავლებით გადაიტანეთ ნებისმიერ სურათზე</translation>
 <translation id="4369215744064167350">ვებსაიტის მოთხოვნა დაკმაყოფილდა</translation>
 <translation id="4370975561335139969">თქვენ მიერ შეყვანილი ელფოსტა და პაროლი არ ემთხვევა</translation>
@@ -4372,6 +4377,7 @@
 <translation id="5045550434625856497">არასწორი პაროლი</translation>
 <translation id="504561833207953641">მიმდინარეობს ბრაუზერის არსებულ სესიაში გახსნა.</translation>
 <translation id="5049614114599109018">შეყვანის ისტორიის გამოყენება</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{ამ საიტმა ზედმეტად ბევრი შეტყობინება გამოგზავნა ახლახან. სურვილისამებრ, შეგიძლიათ აღუკვეთოთ მას შეტყობინებების გამოგზავნა მომავალში.}other{ამ საიტებმა ზედმეტად ბევრი შეტყობინება გამოგზავნა ახლახან. სურვილისამებრ, შეგიძლიათ აღუკვეთოთ მათ შეტყობინებების გამოგზავნა მომავალში.}}</translation>
 <translation id="5051836348807686060">მართლწერის შემოწმება მხარდაუჭერელია თქვენ მიერ არჩეული ენებისთვის</translation>
 <translation id="5052499409147950210">საიტის რედაქტირება</translation>
 <translation id="505347685865235222">უსახელო ჯგუფი — <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7262,6 +7268,7 @@
 <translation id="7775694664330414886">ჩანართი გადატანილია უსახელო ჯგუფში — <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> შეძლებს „<ph name="FOLDERNAME" />“-ში არსებული ფაილების ნახვას ამ საიტის ყველა ჩანართის დახურვამდე</translation>
 <translation id="7776701556330691704">ხმები ვერ მოიძებნა</translation>
+<translation id="7777624210360383048">მალსახმობი <ph name="SHORTCUT" /> გაფართოებისთვის <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">მომხმარებლის ყველა ანგარიში და ლოკალური მონაცემები წაიშლება.</translation>
 <translation id="7782102568078991263">Google-ის სხვა შემოთავაზება აღარ არის</translation>
 <translation id="7782717250816686129">შესვლის ეკრანზე მონაცემების ხანგრძლივად შენახვა და ავტორიზაციის მონაცემების შეტანა სესიაში.</translation>
@@ -7294,6 +7301,7 @@
 <translation id="7807711621188256451">ყოველთვის მიეცით <ph name="HOST" />-ს თქვენს კამერაზე წვდომის ნება</translation>
 <translation id="7810202088502699111">კონტექსტური ფანჯრები დაბლოკილია ამ გვერდზე.</translation>
 <translation id="7814458197256864873">&amp;კოპირება</translation>
+<translation id="7815583197273433531">მალსახმობი <ph name="SHORTCUT" />-ის რედაქტირება გაფართოებისთვის <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">სახიფათო ჩამოტვირთვა დაიბლოკა</translation>
 <translation id="7817361223956157679">ეკრანული კლავიატურა ჯერ არ მუშაობს Linux აპებში</translation>
 <translation id="7818135753970109980">დამატებულია ახალი თემა (<ph name="EXTENSION_NAME" />)</translation>
@@ -7368,6 +7376,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">ანგარიშის ნახვა</translation>
 <translation id="7883792253546618164">გამოწერის გაუქმება ნებისმიერ დროს შეგიძლიათ.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{შეამოწმეთ 1 საიტი, რომელმაც ზედმეტად ბევრი შეტყობინება გამოგზავნა}other{შეამოწმეთ {NUM_SITES} საიტი, რომლებმაც ზედმეტად ბევრი შეტყობინება გამოგზავნა}}</translation>
 <translation id="788453346724465748">მიმდინარეობს ანგარიშის ინფორმაციის ჩატვირთვა...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{ერთეული}other{# ერთეული}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 3ac4bb5a..4dfbec1f 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -2334,6 +2334,7 @@
 <translation id="3105796011181310544">Google іздеу жүйесіне қайта ораласыз ба?</translation>
 <translation id="310671807099593501">Сайт Bluetooth функциясын пайдалануда</translation>
 <translation id="3108931485517391283">Қабылдау мүмкін емес.</translation>
+<translation id="3108957152224931571">Ерекшелеу түсі</translation>
 <translation id="3109206895301430738">Қойындылар тобына сақталды.</translation>
 <translation id="3109724472072898302">Жиылған</translation>
 <translation id="3112292765614504292">Қолданба көлемі: <ph name="APP_SIZE" /></translation>
@@ -4571,6 +4572,7 @@
 <translation id="5260334392110301220">Смарт тырнақшалар</translation>
 <translation id="5260508466980570042">Кешіріңіз, электрондық поштаңызды немесе құпия сөзіңіз растау мүмкін болмады. Әрекетті қайталап көріңіз.</translation>
 <translation id="5260958083445173099">Мүмкін болған кезде веб-сайттар мазмұнды өзіңізге ыңғайлы тілде көрсетіледі.</translation>
+<translation id="5261619498868361045">Контейнер аты бос болмауы керек.</translation>
 <translation id="5261683757250193089">Веб-дүкеннен ашу</translation>
 <translation id="5262178194499261222">Құпия сөзді өшіру</translation>
 <translation id="5262784498883614021">Желіге автоматты қосылу</translation>
@@ -4975,6 +4977,7 @@
 <translation id="562935524653278697">Әкімшіңіз бетбелгілерді, тарихты, құпия сөздерді және басқа параметрлерді синхрондау мүмкіндігін бөгеген.</translation>
 <translation id="5631017369956619646">Орталық процессорды пайдалану</translation>
 <translation id="5632059346822207074">Рұқсат сұралды, жауап беру үшін Ctrl + Forward пернелер тіркесімін басыңыз.</translation>
+<translation id="5632221585574759616">Кеңейтім рұқсаттары туралы толық ақпарат</translation>
 <translation id="5632566673632479864"><ph name="EMAIL" /> енді негізгі аккаунтыңыз емес. Аккаунтыңызды <ph name="DOMAIN" /> домені басқаратындықтан, бетбелгілер, тарих, құпия сөздер және басқа параметрлер құрылғыңыздан өшіріледі.</translation>
 <translation id="5632592977009207922">Жүктеп алынуда, <ph name="PERCENT_REMAINING" />% қалды</translation>
 <translation id="5633149627228920745">Жүйе талаптары туралы толық ақпарат алыңыз</translation>
@@ -5594,6 +5597,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> офлайн режимде тұр. Интернетке қосылып, қайталап көріңіз.</translation>
 <translation id="6220413761270491930">Кеңейтім жүктеу қатесі</translation>
 <translation id="6224481128663248237">Пішімдеу сәтті аяқталды!</translation>
+<translation id="622474711739321877">Бұл контейнер бұрыннан бар.</translation>
 <translation id="622537739776246443">Профиль жойылады</translation>
 <translation id="6225475702458870625">Деректер байланысы <ph name="PHONE_NAME" /> телефонынан қолжетімді</translation>
 <translation id="6226777517901268232">Жеке негізгі файл (міндетті емес)</translation>
@@ -6392,6 +6396,7 @@
 <translation id="696780070563539690">Сайттар, мысалы, жарнамаларды жекелендіру үшін түрлі сайттарда браузерді пайдалану мәліметіңізді көру үшін cookie файлдарын пайдалана алмайды.</translation>
 <translation id="6968288415730398122">Экран құлпын конфигурациялау үшін құпия сөзді енгізіңіз</translation>
 <translation id="6969047215179982698">Nearby Share функциясын өшіру</translation>
+<translation id="6969216690072714773">Осы құрылғымен байланыстырылатын жаңа ақпаратты енгізіңіз немесе бұрыннан бар ақпаратты жаңартыңыз.</translation>
 <translation id="6970480684834282392">Іске қосу түрі</translation>
 <translation id="6970543303783413625">Құпия сөздерді импорттау мүмкін емес. Бір уақытта тек <ph name="COUNT" /> құпия сөзге дейін импорттай аласыз.</translation>
 <translation id="6970856801391541997">Арнайы беттерді басып шығару</translation>
@@ -6798,6 +6803,7 @@
 <translation id="7377481913241237033">Код арқылы қосылу</translation>
 <translation id="7378611153938412599">Құпия сөзіңіз оңай болса, оны табу да оңай. Күрделі құпия сөз орнатыңыз. <ph name="BEGIN_LINK" />Қауіпсіздікке қатысты басқа кеңестерді де көріңіз.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome Web Store қызметін ашу</translation>
+<translation id="7380272457268061606">Жергілікті деректерді қалпына келтіру мүмкіндігін өшіру керек пе?</translation>
 <translation id="7380459290951585794">Телефоныңыз жаныңызда, құлпы ашық және Bluetooth бен Wi-Fi қосылып тұруы керек.</translation>
 <translation id="7380622428988553498">Құрылғы атауында жарамсыз таңбалар бар.</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> жаңартылды.</translation>
@@ -7047,6 +7053,7 @@
 <translation id="7617263010641145920">Play Store қызметін қосу</translation>
 <translation id="7617648809369507487">Дыбыссыз хабар алмасу</translation>
 <translation id="7621382409404463535">Жүйе құрылғы конфигурациясын сақтай алмады.</translation>
+<translation id="7621595347123595643">Құпия сөзді немесе PIN кодын ұмытып қалсаңыз, жергілікті деректерді қалпына келтіре алмайсыз.</translation>
 <translation id="7622114377921274169">Зарядталуда.</translation>
 <translation id="7622768823216805500">Тапсырысты оңай рәсімдеу сияқты сауда-саттық функциялары үшін әдетте сайттарда төлем өңдегіштері орнатылады.</translation>
 <translation id="7622903810087708234">Құпия сөз мәліметтері</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index cd10e5a..0f4ae6e 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -1299,6 +1299,7 @@
 <translation id="2157875535253991059">ឥឡូវនេះទំព័រនេះពេញអេក្រង់ហើយ។</translation>
 <translation id="2158475082070321257">ចម្លងតំណទៅកាន់អត្ថបទ​ដែលបានរំលេច</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">វិសាលភាពនៃ <ph name="SHORTCUT" /> សម្រាប់ <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">បន្ថែម Wi-Fi...</translation>
 <translation id="2162155940152307086">ការធ្វើ​សមកាលកម្ម​នឹងចាប់ផ្ដើម បន្ទាប់ពី​អ្នកចាកចេញ​ពីការកំណត់ការ​ធ្វើសមកាលកម្ម</translation>
 <translation id="2162705204091149050">អានព័ត៌មានអំពីកម្មវិធីរុករកតាមអ៊ីនធឺណិត ប្រព័ន្ធប្រតិបត្តិការ ឧបករណ៍ កម្មវិធីដែលបានដំឡើង និងឯកសាររបស់អ្នក</translation>
@@ -2688,6 +2689,7 @@
 <translation id="3445047461171030979">ចម្លើយ​រហ័សរបស់ Google ជំនួយការ</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> នាទី</translation>
 <translation id="344537926140058498">ស្ថាប័ន​របស់អ្នក​បានទប់ស្កាត់​ឯកសារនេះ ដោយសារ​វាមាន​ខ្លឹមសារ​រសើប ឬ​គ្រោះថ្នាក់។ សូមស្នើឱ្យ​ម្ចាស់​ឯកសារ​នេះធ្វើការកែ។</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{បានដក​ការអនុញ្ញាត​ចេញពី​<ph name="BEGIN_BOLD" />គេហទំព័រ 1<ph name="END_BOLD" /> ដែល​អ្នក​មិន​បាន​ចូលមើល​ថ្មីៗនេះ}other{បានដក​ការអនុញ្ញាត​ចេញពី​<ph name="BEGIN_BOLD" />គេហទំព័រ {NUM_SITES}​<ph name="END_BOLD" /> ដែល​អ្នក​មិន​បាន​ចូលមើល​ថ្មីៗនេះ}}</translation>
 <translation id="3445925074670675829">ឧបករណ៍ USB-C</translation>
 <translation id="3446274660183028131">សូមចាប់ផ្ដើម Parallels Desktop ដើម្បីដំឡើង Windows។</translation>
 <translation id="344630545793878684">អានទិន្នន័យរបស់អ្នកនៅលើគេហទំព័រមួយចំនួន</translation>
@@ -2899,6 +2901,7 @@
 <translation id="3642699533549879077">នៅពេលនរណា​ម្នាក់ផ្សេងទៀត​មើលអេក្រង់​របស់អ្នក អ្នកនឹងទទួលបានការជូនដំណឹង ហើយខ្លឹមសារអំពីការជូនដំណឹងនឹងត្រូវបានលាក់។</translation>
 <translation id="3643962751030964445">ឧបករណ៍នេះ​ស្ថិតក្រោម​ការគ្រប់គ្រងរបស់ <ph name="DEVICE_MANAGER" />។ តម្រូវឱ្យមានកម្រងព័ត៌មានថ្មីសម្រាប់គណនី <ph name="USER_EMAIL_ADDRESS" /> ដោយ <ph name="DEVICE_MANAGER" /></translation>
 <translation id="3645372836428131288">រំកិលតិចៗ​ដើម្បី​ថត​ផ្នែកផ្សេង​នៃស្នាមម្រាមដៃ។</translation>
+<translation id="3647051300407077858">ពិនិត្យមើល​ការអនុញ្ញាតឱ្យជូនដំណឹង</translation>
 <translation id="3647654707956482440">មិនអាចប្រើតំណនេះបានទេ។ សូមពិនិត្យមើល​កំហុសវាយបញ្ចូល ឬប្រើ​តំណ​ផ្សេង ដើម្បីព្យាយាម​ម្ដងទៀត។</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{បានទទួល <ph name="ATTACHMENTS" /> ពី <ph name="DEVICE_NAME" />}other{បានទទួល <ph name="ATTACHMENTS" /> ពី <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">បានរកឃើញ <ph name="USB_DEVICE_NAME" /></translation>
@@ -3078,6 +3081,7 @@
 <translation id="380408572480438692">ការបើកដំណើរការការប្រមូលទិន្នន័យប្រតិបត្តិការនឹងជួយឲ្យ Google ធ្វើឲ្យប្រព័ន្ធប្រសើរឡើងមានពេលខាងមុខ។ គ្មានទិន្នន័យណាមួយត្រូវបានផ្ញើទេ លុះត្រាអ្នកផ្ញើរបាយការណ៍មតិ  (Alt-Shift-I) ហើយរាប់បញ្ចូលទាំងទិន្នន័យប្រតិបត្តិការរបស់អ្នក។ អ្នកអាចត្រលប់ទៅអេក្រង់នេះដើម្បីបិទដំណើរការការប្រមូលទិន្នន័យគ្រប់ពេល។</translation>
 <translation id="3807249107536149332"><ph name="EXTENSION_NAME" /> (លេខសម្គាល់កម្មវិធីបន្ថែម "<ph name="EXTENSION_ID" />") មិនត្រូវបានអនុញ្ញាតឲ្យប្រើនៅលើអេក្រង់ចូលទេ។</translation>
 <translation id="3807747707162121253">បដិសេធ</translation>
+<translation id="3808202562160426447">បន្ថយពន្លឺ​ខ្លឹមសារ​ផ្ទៃខាងក្រោយ</translation>
 <translation id="3808443763115411087">ការអភិវឌ្ឍកម្មវិធី Android នៅក្នុង Crostini</translation>
 <translation id="38089336910894858">បង្ហាញ​ការព្រមាន មុនពេល​ចាកចេញ​ដោយប្រើ ⌘Q</translation>
 <translation id="3809272675881623365">ទន្សាយ</translation>
@@ -3669,6 +3673,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> កំពុងចែករំលែកផ្ទាំងវិនដូ</translation>
 <translation id="4364830672918311045">បង្ហាញការជូនដំណឹង</translation>
 <translation id="4366138410738374926">បានចាប់ផ្ដើម​បោះពុម្ព</translation>
+<translation id="4367513928820380646">ពិនិត្យមើល​ការអនុញ្ញាត​ដែលបានដកចេញ</translation>
 <translation id="4369121877634339065">អូសពីលើ​រូបភាពណាមួយ ដើម្បី​ស្វែងរក</translation>
 <translation id="4369215744064167350">បានអនុម័តលើសំណើចូលប្រើគេហទំព័រ</translation>
 <translation id="4370975561335139969">អ៊ីមែល និងពាក្យសម្ងាត់ដែលអ្នកបញ្ចូលមិនត្រូវគ្នាទេ</translation>
@@ -4389,6 +4394,7 @@
 <translation id="5045550434625856497">ពាក្យសម្ងាត់មិនត្រឹមត្រូវ</translation>
 <translation id="504561833207953641">កំពុង​បើក​នៅក្នុង​រយៈពេលចូលប្រើកម្មវិធីរុករកដែលមានស្រាប់។</translation>
 <translation id="5049614114599109018">ប្រើ​ប្រវត្តិ​បញ្ចូល</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{គេហទំព័រ​នេះ​បានផ្ញើ​ការជូនដំណឹង​ជាច្រើន​ថ្មីៗនេះ។ អ្នកអាច​បញ្ឈប់​កុំឱ្យវាផ្ញើ​ការជូនដំណឹង​ក្រោយៗទៀត។}other{គេហទំព័រ​ទាំងនេះ​បានផ្ញើ​ការជូនដំណឹង​ជាច្រើន​ថ្មីៗនេះ។ អ្នកអាច​បញ្ឈប់​កុំឱ្យពួកវាផ្ញើ​ការជូនដំណឹង​ក្រោយៗទៀត។}}</translation>
 <translation id="5051836348807686060">មិនស្គាល់​ការពិនិត្យ​អក្ខរាវិរុទ្ធសម្រាប់​ភាសា​ដែលអ្នក​បានជ្រើសរើស​ទេ</translation>
 <translation id="5052499409147950210">កែ​សម្រួល​ទំព័រ</translation>
 <translation id="505347685865235222">ក្រុមដែលគ្មានឈ្មោះ - <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7286,6 +7292,7 @@
 <translation id="7775694664330414886">បានផ្លាស់ទី​ផ្ទាំង​ទៅក្នុង​ក្រុម​ដែលគ្មានឈ្មោះ - <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> នឹងអាច​មើលឯកសារ​នៅក្នុង <ph name="FOLDERNAME" /> បាន រហូតទាល់តែអ្នក​បិទផ្ទាំងទាំងអស់​សម្រាប់គេហទំព័រនេះ</translation>
 <translation id="7776701556330691704">រក​មិន​ឃើញ​សំឡេង​ទេ</translation>
+<translation id="7777624210360383048">ផ្លូវកាត់ <ph name="SHORTCUT" /> សម្រាប់ <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">គណនីអ្នកប្រើ និងទិន្នន័យមូលដ្ឋានទាំងអស់នឹងត្រូវបានដកចេញ។</translation>
 <translation id="7782102568078991263">គ្មានការផ្តល់យោបល់ផ្សេងទៀតពី Google ទេ</translation>
 <translation id="7782717250816686129">រក្សាទុក​ទិន្នន័យអចិន្ត្រៃយ៍នៅលើ​អេក្រង់ចូល រួច​បញ្ចូល​ព័ត៌មានផ្ទៀងផ្ទាត់​នៅពេលចូលប្រើ។</translation>
@@ -7318,6 +7325,7 @@
 <translation id="7807711621188256451">អនុញ្ញាត <ph name="HOST" /> ឲ្យចូលប្រើកាមេរ៉ារបស់អ្នកជានិច្ច</translation>
 <translation id="7810202088502699111">ការលេចឡើងត្រូវបានរារាំងនៅលើទំព័រនេះ។</translation>
 <translation id="7814458197256864873">ចម្លង</translation>
+<translation id="7815583197273433531">កែ​ផ្លូវកាត់ <ph name="SHORTCUT" /> សម្រាប់ <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">បាន​ទប់ស្កាត់​ការទាញយក​ដែល​មាន​គ្រោះថ្នាក់</translation>
 <translation id="7817361223956157679">ក្ដារចុចលើ​អេក្រង់មិនទាន់ដំណើរការ​នៅក្នុង​កម្មវិធី Linux នៅឡើយទេ</translation>
 <translation id="7818135753970109980">ធីមថ្មីត្រូវបានបន្ថែម (<ph name="EXTENSION_NAME" />)</translation>
@@ -7392,6 +7400,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">មើលគណនី</translation>
 <translation id="7883792253546618164">ឈប់ជាវ​ពេលណាក៏បាន។</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{ពិនិត្យមើល​គេហទំព័រ 1 ដែលបានផ្ញើ​ការជូនដំណឹង​ជាច្រើន}other{ពិនិត្យមើល​គេហទំព័រ {NUM_SITES} ដែលបានផ្ញើ​ការជូនដំណឹង​ជាច្រើន}}</translation>
 <translation id="788453346724465748">កំពុងផ្ទុក​ព័ត៌មាន​គណនី...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{ធាតុមួយ}other{ធាតុ #}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 6787ef8c..35c1af13 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -2355,6 +2355,7 @@
 <translation id="3105796011181310544">Google로 되돌리시겠습니까?</translation>
 <translation id="310671807099593501">사이트에서 블루투스를 사용하고 있습니다.</translation>
 <translation id="3108931485517391283">수신할 수 없습니다.</translation>
+<translation id="3108957152224931571">강조 색상</translation>
 <translation id="3109206895301430738">저장된 탭 그룹</translation>
 <translation id="3109724472072898302">접힘</translation>
 <translation id="3112292765614504292">앱 크기: <ph name="APP_SIZE" /></translation>
@@ -4598,6 +4599,7 @@
 <translation id="5260334392110301220">스마트 인용</translation>
 <translation id="5260508466980570042">이메일 또는 비밀번호를 확인할 수 없습니다. 다시 시도해 주세요.</translation>
 <translation id="5260958083445173099">가능한 경우 웹사이트 콘텐츠가 기본 언어로 표시됩니다.</translation>
+<translation id="5261619498868361045">컨테이너 이름은 비워 둘 수 없습니다.</translation>
 <translation id="5261683757250193089">웹 스토어에서 열기</translation>
 <translation id="5262178194499261222">비밀번호 삭제</translation>
 <translation id="5262784498883614021">자동으로 네트워크에 연결</translation>
@@ -5004,6 +5006,7 @@
 <translation id="562935524653278697">관리자가 북마크, 방문 기록, 비밀번호 및 기타 설정의 동기화를 사용 중지했습니다.</translation>
 <translation id="5631017369956619646">CPU 사용</translation>
 <translation id="5632059346822207074">권한 요청됨, Ctrl 키와 앞으로를 눌러 응답</translation>
+<translation id="5632221585574759616">확장 프로그램 권한에 관해 자세히 알아보기</translation>
 <translation id="5632566673632479864"><ph name="EMAIL" /> 계정이 더 이상 기본 계정으로 허용되지 않습니다. 이 계정은 <ph name="DOMAIN" />에 의해 관리되므로 북마크, 방문 기록, 비밀번호 및 기타 설정이 기기에서 삭제됩니다.</translation>
 <translation id="5632592977009207922">다운로드 중, <ph name="PERCENT_REMAINING" />% 남음</translation>
 <translation id="5633149627228920745">시스템 요구사항 자세히 알아보기</translation>
@@ -5624,6 +5627,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" />이(가) 오프라인 상태입니다. 인터넷에 연결하고 다시 시도해 보세요.</translation>
 <translation id="6220413761270491930">확장 프로그램 로드 중 오류</translation>
 <translation id="6224481128663248237">포맷을 마쳤습니다.</translation>
+<translation id="622474711739321877">이미 존재하는 컨테이너입니다.</translation>
 <translation id="622537739776246443">프로필이 삭제됩니다</translation>
 <translation id="6225475702458870625">데이터 연결을 <ph name="PHONE_NAME" />에서 사용할 수 있습니다.</translation>
 <translation id="6226777517901268232">비공개 키 파일(선택사항)</translation>
@@ -6423,6 +6427,7 @@
 <translation id="696780070563539690">사이트에서 사용자의 다양한 사이트 탐색 활동 정보를 이용해 광고 맞춤설정 등의 작업을 하기 위해 쿠키를 사용할 수 없습니다.</translation>
 <translation id="6968288415730398122">비밀번호를 입력하여 화면 잠금을 설정하세요.</translation>
 <translation id="6969047215179982698">Nearby Share 사용 중지</translation>
+<translation id="6969216690072714773">이 기기와 연결되도록 새 카드를 입력하거나 기존 카드 정보를 업데이트하세요.</translation>
 <translation id="6970480684834282392">시작 유형</translation>
 <translation id="6970543303783413625">비밀번호를 가져올 수 없습니다. 비밀번호는 한 번에 최대 <ph name="COUNT" />개까지 가져올 수 있습니다.</translation>
 <translation id="6970856801391541997">특정 페이지 인쇄</translation>
@@ -6829,6 +6834,7 @@
 <translation id="7377481913241237033">코드를 사용한 연결</translation>
 <translation id="7378611153938412599">취약한 비밀번호는 추측하기 쉽습니다. 안전한 비밀번호를 설정하세요. <ph name="BEGIN_LINK" />보안 도움말 더보기<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome 웹 스토어 열기</translation>
+<translation id="7380272457268061606">로컬 데이터 복구를 사용 중지하시겠어요?</translation>
 <translation id="7380459290951585794">휴대전화가 근처에 있고, 잠금이 해제되어 있으며, 블루투스와 Wi-Fi가 켜져 있어야 합니다.</translation>
 <translation id="7380622428988553498">기기 이름에 잘못된 문자가 포함되어 있습니다.</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> 업데이트됨</translation>
@@ -7079,6 +7085,7 @@
 <translation id="7617263010641145920">Play 스토어 사용 설정</translation>
 <translation id="7617648809369507487">눈에 띄지 않는 메시지 사용</translation>
 <translation id="7621382409404463535">시스템에서 기기 설정을 저장하지 못했습니다.</translation>
+<translation id="7621595347123595643">비밀번호 또는 PIN을 잊어버린 경우 로컬 데이터를 복구할 수 없습니다.</translation>
 <translation id="7622114377921274169">충전 중</translation>
 <translation id="7622768823216805500">사이트에서는 일반적으로 간편 결제와 같은 쇼핑 기능을 사용하기 위해 결제 핸들러를 설치합니다.</translation>
 <translation id="7622903810087708234">비밀번호 세부정보</translation>
@@ -8643,7 +8650,7 @@
 <translation id="9040661932550800571"><ph name="ORIGIN" /> 비밀번호를 업데이트하시겠습니까?</translation>
 <translation id="9041692268811217999">관리자가 시스템의 로컬 파일 액세스를 차단했습니다</translation>
 <translation id="904224458472510106">이 작업은 되돌릴 수 없습니다.</translation>
-<translation id="9042893549633094279">개인정보 및 보안</translation>
+<translation id="9042893549633094279">개인 정보 보호 및 보안</translation>
 <translation id="9044646465488564462">네트워크 연결 실패: <ph name="DETAILS" /></translation>
 <translation id="9045160989383249058">읽기 목록을 새 측면 패널로 이동했습니다. 여기에서 사용해 보세요.</translation>
 <translation id="9045430190527754450">사용자가 접속하려는 페이지의 웹 주소를 Google에 전송</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 6efd0c7..6ea2e66 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -2355,6 +2355,7 @@
 <translation id="3105796011181310544">Pakeisti atgal į „Google“?</translation>
 <translation id="310671807099593501">Svetainė naudoja „Bluetooth“</translation>
 <translation id="3108931485517391283">Nepavyko gauti</translation>
+<translation id="3108957152224931571">Paryškinimo spalva</translation>
 <translation id="3109206895301430738">Išsaugotos skirtukų grupės</translation>
 <translation id="3109724472072898302">Suskleista</translation>
 <translation id="3112292765614504292">Programos dydis: <ph name="APP_SIZE" /></translation>
@@ -4593,6 +4594,7 @@
 <translation id="5260334392110301220">Išmaniosios kabutės</translation>
 <translation id="5260508466980570042">Atsiprašome, el. pašto ir slaptažodžio patvirtinti nepavyko. Bandykite dar kartą.</translation>
 <translation id="5260958083445173099">Kai bus įmanoma, svetainių turinys bus rodomas pageidaujamomis kalbomis</translation>
+<translation id="5261619498868361045">Sudėtinio failo pavadinimo laukas negali būti tuščias.</translation>
 <translation id="5261683757250193089">Atidaryti internetinėje parduotuvėje</translation>
 <translation id="5262178194499261222">Pašalinti slaptažodį</translation>
 <translation id="5262784498883614021">Automatiškai prisijungti prie tinklo</translation>
@@ -5000,6 +5002,7 @@
 <translation id="562935524653278697">Administratorius išjungė žymių, istorijos, slaptažodžių ir kitų nustatymų sinchronizavimą.</translation>
 <translation id="5631017369956619646">Centrinio procesoriaus naudojimas</translation>
 <translation id="5632059346822207074">Pateikta užklausa dėl leidimo; paspauskite Ctrl + pirmyn, kad atsakytumėte</translation>
+<translation id="5632221585574759616">Sužinokite daugiau apie plėtinių leidimus</translation>
 <translation id="5632566673632479864">Jūsų paskyra <ph name="EMAIL" /> nebeleidžiama kaip pagrindinė paskyra. Kadangi ši paskyra tvarkoma <ph name="DOMAIN" />, jūsų žymės, istorija, slaptažodžiai ir kiti nustatymai bus išvalyti iš šio įrenginio.</translation>
 <translation id="5632592977009207922">Atsisiunčiama, liko <ph name="PERCENT_REMAINING" /> %</translation>
 <translation id="5633149627228920745">Sužinokite daugiau apie sistemos reikalavimus</translation>
@@ -5620,6 +5623,7 @@
 <translation id="6218058416316985984">„<ph name="DEVICE_TYPE" />“ įrenginyje neįjungtas internetas. Prisijunkite prie interneto ir bandykite dar kartą.</translation>
 <translation id="6220413761270491930">Klaida įkeliant plėtinį</translation>
 <translation id="6224481128663248237">Formatavimas sėkmingai baigtas!</translation>
+<translation id="622474711739321877">Šis sudėtinis failas jau yra.</translation>
 <translation id="622537739776246443">Profilis bus ištrintas</translation>
 <translation id="6225475702458870625">Duomenų ryšys pasiekiamas iš „<ph name="PHONE_NAME" />“ telefono</translation>
 <translation id="6226777517901268232">Privataus rakto failas (pasirenkama)</translation>
@@ -6424,6 +6428,7 @@
 <translation id="696780070563539690">Svetainės negali naudoti slapukų, siekdamos sužinoti apie naršymo veiklą skirtingose svetainėse, pavyzdžiui, kad galėtų suasmeninti skelbimus</translation>
 <translation id="6968288415730398122">Įveskite slaptažodį ir konfigūruokite ekrano užraktą</translation>
 <translation id="6969047215179982698">Išjungti Bendrinimo netoliese funkciją</translation>
+<translation id="6969216690072714773">Įveskite naują arba atnaujinkite esamą informaciją, kuri bus susieta su šiuo įrenginiu.</translation>
 <translation id="6970480684834282392">Paleisties tipas</translation>
 <translation id="6970543303783413625">Nepavyko importuoti slaptažodžių. Vienu metu galite importuoti daugiausia tik tiek slaptažodžių: <ph name="COUNT" />.</translation>
 <translation id="6970856801391541997">Spausdinti konkrečius puslapius</translation>
@@ -6830,6 +6835,7 @@
 <translation id="7377481913241237033">Susieti naudojant kodą</translation>
 <translation id="7378611153938412599">Nesudėtingus slaptažodžius lengva atspėti. Įsitikinkite, kad kuriate sudėtingus slaptažodžius. <ph name="BEGIN_LINK" />Žr. daugiau saugos patarimų.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Atidarykite „Chrome“ internetinę parduotuvę</translation>
+<translation id="7380272457268061606">Išjungti vietinių duomenų atkūrimą?</translation>
 <translation id="7380459290951585794">Įsitikinkite, kad telefonas netoliese, atrakintas ir jame įjungtas „Bluetooth“ bei „Wi-Fi“ ryšys</translation>
 <translation id="7380622428988553498">Įrenginio pavadinime yra netinkamų simbolių</translation>
 <translation id="7380768571499464492">Atnaujintas „<ph name="PRINTER_NAME" />“</translation>
@@ -7079,6 +7085,7 @@
 <translation id="7617263010641145920">Įjungti „Play“ parduotuvę</translation>
 <translation id="7617648809369507487">Naudoti tylesnio susirašinėjimo funkcijas</translation>
 <translation id="7621382409404463535">Sistemai nepavyko išsaugoti įrenginio konfigūracijos.</translation>
+<translation id="7621595347123595643">Negalėsite atkurti vietinių duomenų, jei pamiršite slaptažodį ar PIN kodą.</translation>
 <translation id="7622114377921274169">Įkraunama.</translation>
 <translation id="7622768823216805500">Paprastai svetainėse įdiegiamos mokėjimų doroklės, naudojamos vykdant apsipirkimo funkcijas, pvz., norint supaprastinti atsiskaitymo procesą</translation>
 <translation id="7622903810087708234">Išsami slaptažodžio informacija</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 793b7e54..76e1ab0d 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -2353,6 +2353,7 @@
 <translation id="3105796011181310544">Google वर परत बदलायचे आहे का?</translation>
 <translation id="310671807099593501">साइट ब्लूटूथ वापरत आहे</translation>
 <translation id="3108931485517391283">मिळवू शकत नाही</translation>
+<translation id="3108957152224931571">हायलाइटचा रंग</translation>
 <translation id="3109206895301430738">सेव्ह केलेले टॅब गट</translation>
 <translation id="3109724472072898302">संकुचित केलेले</translation>
 <translation id="3112292765614504292">अ‍ॅपचा आकार: <ph name="APP_SIZE" /></translation>
@@ -4596,6 +4597,7 @@
 <translation id="5260334392110301220">स्मार्ट कोट</translation>
 <translation id="5260508466980570042">सॉरी, तुमचा ईमेल किंवा पासवर्ड पडताळणी करणे शक्य नाही. कृपया पुन्हा प्रयत्न करा.</translation>
 <translation id="5260958083445173099">शक्य असेल तेव्हा, वेबसाइट या तुमच्या प्राधान्य दिलेल्या भाषांमध्ये आशय दाखवतील.</translation>
+<translation id="5261619498868361045">कंटेनरचे नाव रिक्त असू शकत नाही.</translation>
 <translation id="5261683757250193089">वेब स्टोअर मध्ये उघडा</translation>
 <translation id="5262178194499261222">पासवर्ड काढा</translation>
 <translation id="5262784498883614021">नेटवर्कशी आपोआप कनेक्ट करा</translation>
@@ -5002,6 +5004,7 @@
 <translation id="562935524653278697">तुमच्या ॲडमिनिस्ट्रेटरने तुमचे बुकमार्क, इतिहास, संंकेतशब्द आणि अन्य सेटिंग्ज सिंक करणे अक्षम केले आहे.</translation>
 <translation id="5631017369956619646">CPU वापर</translation>
 <translation id="5632059346822207074">परवानगीची विनंती केली आहे, प्रतिसाद देण्यासाठी Ctrl + Forward दाबा</translation>
+<translation id="5632221585574759616">एक्स्टेंशन परवानग्यांबद्दल अधिक जाणून घ्या</translation>
 <translation id="5632566673632479864">तुमच्या <ph name="EMAIL" /> खात्याला यापुढे प्राथमिक खाते म्हणून अनुमती नाही. हे खाते <ph name="DOMAIN" /> ने व्यवस्थापित केले असल्याने, तुमचे बुकमार्क, इतिहास, पासवर्ड आणि इतर सेटिंग्ज या डिव्हाइस वरून साफ केले जाईल.</translation>
 <translation id="5632592977009207922">डाउनलोड करत आहे, <ph name="PERCENT_REMAINING" />% शिल्लक</translation>
 <translation id="5633149627228920745">सिस्टीमशी संबंधित आवश्यकतांबद्दल अधिक जाणून घ्या</translation>
@@ -5623,6 +5626,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> ऑफलाइन आहे. इंटरनेटशी कनेक्ट करा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="6220413761270491930">एक्स्टेंशन लोड करताना एरर</translation>
 <translation id="6224481128663248237">स्वरुपन यशस्वीरित्या समाप्त!</translation>
+<translation id="622474711739321877">हा कंटेनर आधीच अस्तित्वात आहे.</translation>
 <translation id="622537739776246443">प्रोफाइल हटवली जाईल</translation>
 <translation id="6225475702458870625">आपल्या <ph name="PHONE_NAME" /> वरून डेटा कनेक्शन उपलब्ध आहे</translation>
 <translation id="6226777517901268232">प्रायव्हेट की फाईल (पर्यायी)</translation>
@@ -6422,6 +6426,7 @@
 <translation id="696780070563539690">वेगवेगळ्या साइटवरील तुमची ब्राउझिंग ॲक्टिव्हिटी पाहण्यासाठी साइट कुकी वापरू शकत नाहीत, उदाहरणार्थ, जाहिराती पर्सनलाइझ करण्यासाठी</translation>
 <translation id="6968288415730398122">स्क्रीन लॉक कॉंफिगर करण्यासाठी तुमचा पासवर्ड एंटर करा</translation>
 <translation id="6969047215179982698">Nearby सह शेअरिंग बंद करा</translation>
+<translation id="6969216690072714773">या डिव्हाइसशी संलग्न करण्यासाठी नवीन माहिती एंटर करा किंवा सद्य माहिती अपडेट करा.</translation>
 <translation id="6970480684834282392">सुरू वेळ</translation>
 <translation id="6970543303783413625">पासवर्ड इंपोर्ट करू शकत नाही. तुम्ही एका वेळी कमाल <ph name="COUNT" /> पासवर्ड इंपोर्ट करू शकता.</translation>
 <translation id="6970856801391541997">विशिष्ट पेज प्रिंट करा</translation>
@@ -6828,6 +6833,7 @@
 <translation id="7377481913241237033">कोड वापरून कनेक्ट करा</translation>
 <translation id="7378611153938412599">कमकुवत पासवर्ड ओळखणे सोपे असते. तुम्ही क्लिष्ट पासवर्ड तयार करत असल्याची खात्री करा. <ph name="BEGIN_LINK" />आणखी सुरक्षा टिपा पहा.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome वेब स्टोअर उघडा</translation>
+<translation id="7380272457268061606">स्थानिक डेटा रिकव्‍हरी बंद करायची का?</translation>
 <translation id="7380459290951585794">तुमचा फोन जवळपास असल्याची, अनलॉक केलेला असल्याची आणि त्याचे ब्लूटूथ व वाय-फाय सुरू असल्याची खात्री करा</translation>
 <translation id="7380622428988553498">डिव्हाइसच्या नावामध्ये चुकीच्या वर्णांचा समावेश आहे</translation>
 <translation id="7380768571499464492"><ph name="PRINTER_NAME" /> अपडेट केला</translation>
@@ -7078,6 +7084,7 @@
 <translation id="7617263010641145920">Play स्टोअर सुरू करा</translation>
 <translation id="7617648809369507487">व्यत्यय न आणणारे मेसेजिंग वापरा</translation>
 <translation id="7621382409404463535">सिस्टमला डिव्हाइस काँफिगरेशन सेव्ह करता आले नाही.</translation>
+<translation id="7621595347123595643">तुम्ही तुमचा पासवर्ड किंवा पिन विसरल्यास, तुम्हाला स्थानिक डेटा रिकव्‍हर करता येणार नाही.</translation>
 <translation id="7622114377921274169">चार्ज होत आहे.</translation>
 <translation id="7622768823216805500">आणखी सोपे चेकआउट यासारख्या खरेदी वैशिष्ट्यांसाठी साइट सामान्यपणे पेमेंट हँडलर इंस्टॉल करतात</translation>
 <translation id="7622903810087708234">पासवर्डचे तपशील</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 0eadea4..d07330cd 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -2339,6 +2339,7 @@
 <translation id="3105796011181310544">Teruggaan naar Google?</translation>
 <translation id="310671807099593501">Site gebruikt Bluetooth</translation>
 <translation id="3108931485517391283">Kan niet ontvangen</translation>
+<translation id="3108957152224931571">Markeringskleur</translation>
 <translation id="3109206895301430738">Opgeslagen tabbladgroepen</translation>
 <translation id="3109724472072898302">Samengevouwen</translation>
 <translation id="3112292765614504292">App-grootte: <ph name="APP_SIZE" /></translation>
@@ -4581,6 +4582,7 @@
 <translation id="5260334392110301220">Slimme aanhalingstekens</translation>
 <translation id="5260508466980570042">Je e-mailadres of wachtwoord kan niet worden geverifieerd. Probeer het opnieuw.</translation>
 <translation id="5260958083445173099">Als het mogelijk is, tonen websites content in je voorkeurstalen</translation>
+<translation id="5261619498868361045">Containernaam mag niet leeg zijn.</translation>
 <translation id="5261683757250193089">Openen in Web Store</translation>
 <translation id="5262178194499261222">Wachtwoord verwijderen</translation>
 <translation id="5262784498883614021">Automatisch verbinding maken met netwerk</translation>
@@ -4985,6 +4987,7 @@
 <translation id="562935524653278697">Je beheerder heeft de synchronisatie van je bookmarks, geschiedenis, wachtwoorden en andere instellingen uitgezet.</translation>
 <translation id="5631017369956619646">CPU-gebruik</translation>
 <translation id="5632059346822207074">Rechten gevraagd, druk op Ctrl + Volgende om te reageren</translation>
+<translation id="5632221585574759616">Meer informatie over extensierechten</translation>
 <translation id="5632566673632479864">Je account <ph name="EMAIL" /> is niet meer toegestaan als het primaire account. Omdat dit account wordt beheerd door <ph name="DOMAIN" />, worden je bookmarks, geschiedenis, wachtwoorden en andere instellingen gewist op dit apparaat.</translation>
 <translation id="5632592977009207922">Downloaden, <ph name="PERCENT_REMAINING" />% resterend</translation>
 <translation id="5633149627228920745">Meer informatie over systeemvereisten</translation>
@@ -5603,6 +5606,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> is offline. Maak verbinding met internet en probeer het opnieuw.</translation>
 <translation id="6220413761270491930">Fout bij laden van extensie</translation>
 <translation id="6224481128663248237">Het formatteren is voltooid.</translation>
+<translation id="622474711739321877">Deze container bestaat al.</translation>
 <translation id="622537739776246443">Profiel wordt verwijderd</translation>
 <translation id="6225475702458870625">Gegevensverbinding beschikbaar via je <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Privésleutelbestand (optioneel)</translation>
@@ -6401,6 +6405,7 @@
 <translation id="696780070563539690">Sites mogen je cookies niet gebruiken om je browse-activiteit op verschillende sites te bekijken, bijvoorbeeld om advertenties te personaliseren</translation>
 <translation id="6968288415730398122">Geef je wachtwoord op om de schermvergrendeling te configureren</translation>
 <translation id="6969047215179982698">Dichtbij delen uitzetten</translation>
+<translation id="6969216690072714773">Voer nieuwe informatie in of update bestaande informatie die aan dit apparaat moet worden gekoppeld.</translation>
 <translation id="6970480684834282392">Opstarttype</translation>
 <translation id="6970543303783413625">Kan wachtwoorden niet importeren. Je kunt maximaal <ph name="COUNT" /> wachtwoorden tegelijk importeren.</translation>
 <translation id="6970856801391541997">Specifieke pagina's afdrukken</translation>
@@ -6807,6 +6812,7 @@
 <translation id="7377481913241237033">Koppelen met een code</translation>
 <translation id="7378611153938412599">Zwakke wachtwoorden zijn makkelijk te raden. Stel sterke wachtwoorden in. <ph name="BEGIN_LINK" />Meer beveiligingstips bekijken<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Chrome Web Store openen</translation>
+<translation id="7380272457268061606">Herstel van lokale gegevens uitzetten?</translation>
 <translation id="7380459290951585794">Zorg dat je telefoon in de buurt en ontgrendeld is en dat bluetooth en wifi aanstaan.</translation>
 <translation id="7380622428988553498">Apparaatnaam bevat ongeldige tekens</translation>
 <translation id="7380768571499464492">Geüpdatet: <ph name="PRINTER_NAME" /></translation>
@@ -7057,6 +7063,7 @@
 <translation id="7617263010641145920">Play Store aanzetten</translation>
 <translation id="7617648809369507487">Stillere berichten gebruiken</translation>
 <translation id="7621382409404463535">Het systeem kan de apparaatconfiguratie niet opslaan.</translation>
+<translation id="7621595347123595643">Als je je wachtwoord of pincode vergeet, kun je geen lokale gegevens herstellen.</translation>
 <translation id="7622114377921274169">Opladen.</translation>
 <translation id="7622768823216805500">Sites installeren betalingshandlers meestal voor winkelfuncties zoals gemakkelijk betalen</translation>
 <translation id="7622903810087708234">Wachtwoordgegevens</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index b6283939..c5a1347 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -2326,6 +2326,7 @@
 <translation id="3105796011181310544">Zmienić z powrotem na Google?</translation>
 <translation id="310671807099593501">Strona używa Bluetootha</translation>
 <translation id="3108931485517391283">Nie udało się odebrać</translation>
+<translation id="3108957152224931571">Kolor wyróżnienia</translation>
 <translation id="3109206895301430738">Zapisane grupy kart</translation>
 <translation id="3109724472072898302">Zwinięty</translation>
 <translation id="3112292765614504292">Rozmiar aplikacji: <ph name="APP_SIZE" /></translation>
@@ -4570,6 +4571,7 @@
 <translation id="5260334392110301220">Inteligentne cudzysłowy</translation>
 <translation id="5260508466980570042">Niestety, nie udało się zweryfikować Twojego adresu e-mail lub hasła. Spróbuj ponownie.</translation>
 <translation id="5260958083445173099">Gdy będzie to możliwe, zawartość stron internetowych będzie się wyświetlać w wybranych językach</translation>
+<translation id="5261619498868361045">Nazwa kontenera nie może być pusta.</translation>
 <translation id="5261683757250193089">Otwórz w Chrome Web Store</translation>
 <translation id="5262178194499261222">Usuń hasło</translation>
 <translation id="5262784498883614021">Automatycznie łącz z siecią</translation>
@@ -4975,6 +4977,7 @@
 <translation id="562935524653278697">Synchronizację zakładek, historii, haseł i innych ustawień wyłączył administrator.</translation>
 <translation id="5631017369956619646">Wykorzystanie procesora</translation>
 <translation id="5632059346822207074">Zgłoszono prośbę o uprawnienia. Aby odpowiedzieć, naciśnij Ctrl + Dalej.</translation>
+<translation id="5632221585574759616">Więcej informacji o uprawnieniach rozszerzeń</translation>
 <translation id="5632566673632479864">Twoje konto <ph name="EMAIL" /> nie może być już kontem podstawowym. To konto jest zarządzane przez <ph name="DOMAIN" />, dlatego Twoje zakładki, historia, hasła i inne ustawienia zostaną usunięte z tego urządzenia.</translation>
 <translation id="5632592977009207922">Pobieram, pozostało <ph name="PERCENT_REMAINING" />%</translation>
 <translation id="5633149627228920745">Więcej informacji o wymaganiach systemowych</translation>
@@ -5595,6 +5598,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> jest offline. Połącz się z internetem i spróbuj ponownie.</translation>
 <translation id="6220413761270491930">Błąd podczas ładowania rozszerzenia</translation>
 <translation id="6224481128663248237">Formatowanie zostało zakończone pomyślnie.</translation>
+<translation id="622474711739321877">Ten kontener już istnieje.</translation>
 <translation id="622537739776246443">Profil zostanie usunięty</translation>
 <translation id="6225475702458870625">Połączenie transmisji danych jest dostępne z telefonu <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Plik klucza prywatnego (opcjonalnie)</translation>
@@ -6396,6 +6400,7 @@
 <translation id="696780070563539690">Strony nie mogą używać plików cookie do śledzenia Twojej aktywność związanej z przeglądaniem różnych stron, na przykład w celu personalizowania reklam</translation>
 <translation id="6968288415730398122">Wpisz hasło, by skonfigurować blokadę ekranu</translation>
 <translation id="6969047215179982698">Wyłącz Udostępnianie w pobliżu</translation>
+<translation id="6969216690072714773">Dodaj lub popraw informacje, które mają być powiązane z tym urządzeniem.</translation>
 <translation id="6970480684834282392">Typ uruchamiania</translation>
 <translation id="6970543303783413625">Nie udało się zaimportować haseł. Maksymalna liczba haseł, jaką możesz zaimportować jednocześnie, to <ph name="COUNT" />.</translation>
 <translation id="6970856801391541997">Drukuj wybrane strony</translation>
@@ -6802,6 +6807,7 @@
 <translation id="7377481913241237033">Połącz przy użyciu kodu</translation>
 <translation id="7378611153938412599">Słabe hasła są łatwe do odgadnięcia. Pamiętaj, by używać tylko silnych haseł. <ph name="BEGIN_LINK" />Więcej wskazówek dotyczących bezpieczeństwa<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Otwórz Chrome Web Store</translation>
+<translation id="7380272457268061606">Wyłączyć odzyskiwanie danych lokalnych?</translation>
 <translation id="7380459290951585794">Sprawdź, czy telefon jest w pobliżu, jest odblokowany i ma włączone Bluetooth oraz Wi-Fi</translation>
 <translation id="7380622428988553498">Nazwa urządzenia zawiera niedozwolone znaki</translation>
 <translation id="7380768571499464492">Zaktualizowano: <ph name="PRINTER_NAME" /></translation>
@@ -7052,6 +7058,7 @@
 <translation id="7617263010641145920">Włącz Sklep Play</translation>
 <translation id="7617648809369507487">Pokazuj wiadomości dyskretnie</translation>
 <translation id="7621382409404463535">Systemowi nie udało się zapisać konfiguracji urządzenia.</translation>
+<translation id="7621595347123595643">Jeśli zapomnisz hasło lub kod PIN, nie będzie można odzyskać danych lokalnych.</translation>
 <translation id="7622114377921274169">Ładuję.</translation>
 <translation id="7622768823216805500">Strony zwykle instalują moduły obsługi płatności na przykład w celu ułatwienia płatności za zakupy</translation>
 <translation id="7622903810087708234">Szczegóły haseł</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index ecb931b..0db1f2f 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1286,6 +1286,7 @@
 <translation id="2157875535253991059">Acum această pagină este în modul ecran complet.</translation>
 <translation id="2158475082070321257">Copiază linkul către textul evidențiat</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758">Aria de acoperire <ph name="SHORTCUT" /> pentru <ph name="EXTENSION_NAME" /></translation>
 <translation id="216169395504480358">Adăugați o rețea Wi-Fi...</translation>
 <translation id="2162155940152307086">Sincronizarea va porni după ce părăsești setările pentru sincronizare</translation>
 <translation id="2162705204091149050">Citește informații despre browserul, sistemul de operare, dispozitivul, software-ul instalat și fișierele tale</translation>
@@ -2672,6 +2673,7 @@
 <translation id="3445047461171030979">Răspunsuri rapide de la Asistentul Google</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> min.</translation>
 <translation id="344537926140058498">Organizația ta a blocat fișierul, deoarece include conținut sensibil sau periculos. Solicită-i proprietarului să îl remedieze.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{S-au eliminat permisiunile de pe <ph name="BEGIN_BOLD" />un site<ph name="END_BOLD" /> pe care nu l-ai accesat recent}few{S-au eliminat permisiunile pentru <ph name="BEGIN_BOLD" />{NUM_SITES} site-uri<ph name="END_BOLD" /> pe care nu le-ai accesat recent}other{S-au eliminat permisiunile pentru <ph name="BEGIN_BOLD" />{NUM_SITES} de site-uri<ph name="END_BOLD" /> pe care nu le-ai accesat recent}}</translation>
 <translation id="3445925074670675829">Dispozitiv USB-C</translation>
 <translation id="3446274660183028131">Lansează Parallels Desktop pentru a instala Windows.</translation>
 <translation id="344630545793878684">Citește datele de pe un număr de site-uri</translation>
@@ -2883,6 +2885,7 @@
 <translation id="3642699533549879077">Când altcineva îți privește ecranul, vei primi o alertă și conținutul notificării va fi ascuns.</translation>
 <translation id="3643962751030964445">Acest dispozitiv este gestionat de <ph name="DEVICE_MANAGER" />. <ph name="DEVICE_MANAGER" /> solicită un profil nou pentru contul <ph name="USER_EMAIL_ADDRESS" />.</translation>
 <translation id="3645372836428131288">Mută ușor pentru a înregistra o altă parte a amprentei</translation>
+<translation id="3647051300407077858">Examinează permisiunile pentru notificări</translation>
 <translation id="3647654707956482440">Linkul nu poate fi folosit. Verifică dacă există greșeli de scriere sau folosește alt link pentru a încerca din nou.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{Ai primit <ph name="ATTACHMENTS" /> de la <ph name="DEVICE_NAME" />}few{Ai primit <ph name="ATTACHMENTS" /> de la <ph name="DEVICE_NAME" />}other{Ai primit <ph name="ATTACHMENTS" /> de la <ph name="DEVICE_NAME" />}}</translation>
 <translation id="3648348069317717750">S-a detectat <ph name="USB_DEVICE_NAME" /></translation>
@@ -3061,6 +3064,7 @@
 <translation id="380408572480438692">Activarea culegerii datelor privind performanța va permite Google să îmbunătățească sistemul în timp. Nu sunt trimise date decât după ce completați un raport de feedback (Alt-Shift-I) și includeți date privind performanța. Puteți să reveniți oricând la acest ecran pentru a dezactiva culegerea datelor.</translation>
 <translation id="3807249107536149332">Extensia <ph name="EXTENSION_NAME" /> (cu ID-ul „<ph name="EXTENSION_ID" />”) nu este permisă într-un ecran de conectare.</translation>
 <translation id="3807747707162121253">&amp;Anulează</translation>
+<translation id="3808202562160426447">Redu luminozitatea fundalului</translation>
 <translation id="3808443763115411087">Dezvoltarea aplicațiilor pentru Android în Crostini</translation>
 <translation id="38089336910894858">Arată un avertisment înainte de a închide cu ⌘Q</translation>
 <translation id="3809272675881623365">Iepure</translation>
@@ -3649,6 +3653,7 @@
 <translation id="4364567974334641491"><ph name="APP_NAME" /> trimite conținutul unei ferestre.</translation>
 <translation id="4364830672918311045">Afișează notificările</translation>
 <translation id="4366138410738374926">A început printarea</translation>
+<translation id="4367513928820380646">Examinează permisiunile eliminate</translation>
 <translation id="4369121877634339065">Trage aici orice imagine pentru a căuta</translation>
 <translation id="4369215744064167350">Solicitarea de site a fost aprobată</translation>
 <translation id="4370975561335139969">Adresa de e-mail și parola pe care le-ai introdus nu se potrivesc</translation>
@@ -4365,6 +4370,7 @@
 <translation id="5045550434625856497">Parolă incorectă</translation>
 <translation id="504561833207953641">Se deschide în sesiunea de browser existentă.</translation>
 <translation id="5049614114599109018">Folosește istoricul de introducere a textului</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Recent, acest site a trimis multe notificări. Poți să-l împiedici să trimită notificări pe viitor.}few{Aceste site-uri au trimis recent multe notificări. Poți să le împiedici să trimită notificări pe viitor.}other{Aceste site-uri au trimis recent multe notificări. Poți să le împiedici să trimită notificări pe viitor.}}</translation>
 <translation id="5051836348807686060">Verificarea ortografiei nu este acceptată pentru limbile selectate</translation>
 <translation id="5052499409147950210">Editează site-ul</translation>
 <translation id="505347685865235222">Grup nedenumit – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7261,6 +7267,7 @@
 <translation id="7775694664330414886">Fila a fost mutată într-un grup nedenumit – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340"><ph name="ORIGIN" /> va putea vedea fișierele din <ph name="FOLDERNAME" /> până când închizi toate filele pentru acest site</translation>
 <translation id="7776701556330691704">Nu s-a găsit nicio voce</translation>
+<translation id="7777624210360383048">Comanda rapidă <ph name="SHORTCUT" /> pentru <ph name="EXTENSION_NAME" /></translation>
 <translation id="7781335840981796660">Toate conturile de utilizator și datele locale vor fi eliminate.</translation>
 <translation id="7782102568078991263">Nu mai există sugestii de la Google</translation>
 <translation id="7782717250816686129">Stochează datele persistente pe ecranul de conectare și introdu datele de conectare în sesiune.</translation>
@@ -7293,6 +7300,7 @@
 <translation id="7807711621188256451">Permiteți întotdeauna accesul <ph name="HOST" /> la camera dvs.</translation>
 <translation id="7810202088502699111">Ferestrele pop-up au fost blocate pe această pagină.</translation>
 <translation id="7814458197256864873">&amp;Copiază</translation>
+<translation id="7815583197273433531">Editează comanda rapidă <ph name="SHORTCUT" /> pentru <ph name="EXTENSION_NAME" /></translation>
 <translation id="7815680994978050279">A fost blocată o descărcare periculoasă</translation>
 <translation id="7817361223956157679">Tastatura de pe ecran nu funcționează încă în aplicațiile Linux</translation>
 <translation id="7818135753970109980">A fost adăugată o temă (<ph name="EXTENSION_NAME" />)</translation>
@@ -7367,6 +7375,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Afișați contul</translation>
 <translation id="7883792253546618164">Te poți dezabona în orice moment.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Examinează un site care a trimis multe notificări}few{Examinează {NUM_SITES} site-uri care au trimis multe notificări}other{Examinează {NUM_SITES} de site-uri care au trimis multe notificări}}</translation>
 <translation id="788453346724465748">Se încarcă informațiile despre cont…</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{un element}few{# elemente}other{# de elemente}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 6bdc25a9..73cde6b 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -2357,6 +2357,7 @@
 <translation id="3105796011181310544">Želite preklopiti nazaj na Google?</translation>
 <translation id="310671807099593501">Spletno mesto uporablja Bluetooth</translation>
 <translation id="3108931485517391283">Ni mogoče prejemati</translation>
+<translation id="3108957152224931571">Barva za označevanje</translation>
 <translation id="3109206895301430738">Shranjene skupine zavihkov</translation>
 <translation id="3109724472072898302">Strnjeno</translation>
 <translation id="3112292765614504292">Velikost aplikacije: <ph name="APP_SIZE" /></translation>
@@ -4602,6 +4603,7 @@
 <translation id="5260334392110301220">Pametni navedki</translation>
 <translation id="5260508466980570042">Žal vašega e-poštnega naslova ali gesla ni bilo mogoče preveriti. Poskusite znova.</translation>
 <translation id="5260958083445173099">Vsebina na spletnih mestih bo prikazana v jezikih, ki ste jih izbrali, če je mogoče.</translation>
+<translation id="5261619498868361045">Ime vsebnika ne sme biti prazno.</translation>
 <translation id="5261683757250193089">Odpiranje v Spletni trgovini</translation>
 <translation id="5262178194499261222">Odstrani geslo</translation>
 <translation id="5262784498883614021">Samodejna povezava z omrežjem</translation>
@@ -5010,6 +5012,7 @@
 <translation id="562935524653278697">Skrbnik je onemogočil sinhroniziranje zaznamkov, zgodovine, gesel in drugih nastavitev.</translation>
 <translation id="5631017369956619646">Uporaba CPE</translation>
 <translation id="5632059346822207074">Zahtevano je dovoljenje; pritisnite Ctrl + tipko za naprej, če se želite odzvati.</translation>
+<translation id="5632221585574759616">Preberite več o dovoljenjih za razširitve</translation>
 <translation id="5632566673632479864">Vaš račun <ph name="EMAIL" /> ni več dovoljen kot glavni račun. Ker ta račun upravlja domena <ph name="DOMAIN" />, bodo vaši zaznamki, zgodovina, gesla in druge nastavitve izbrisani iz te naprave.</translation>
 <translation id="5632592977009207922">Prenos, še <ph name="PERCENT_REMAINING" /> %</translation>
 <translation id="5633149627228920745">Preberite več o sistemskih zahtevah</translation>
@@ -5630,6 +5633,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> nima povezave. Povežite se v internet in poskusite znova.</translation>
 <translation id="6220413761270491930">Napaka pri nalaganju razširitve</translation>
 <translation id="6224481128663248237">Formatiranje je uspešno končano.</translation>
+<translation id="622474711739321877">Ta vsebnik že obstaja.</translation>
 <translation id="622537739776246443">Profil bo izbrisan</translation>
 <translation id="6225475702458870625">Podatkovna povezava je na voljo v napravi <ph name="PHONE_NAME" /></translation>
 <translation id="6226777517901268232">Datoteka z zasebnim ključem (izbirno)</translation>
@@ -6435,6 +6439,7 @@
 <translation id="696780070563539690">Spletna mesta ne morejo uporabljati vaših piškotkov za ogled dejavnosti brskanja na različnih spletnih mestih, na primer za osebno prilagajanje oglasov</translation>
 <translation id="6968288415730398122">Vnesite geslo, če želite konfigurirati zaklepanje zaslona</translation>
 <translation id="6969047215179982698">Izklop deljenja v bližini</translation>
+<translation id="6969216690072714773">Vnesite nove ali posodobite obstoječe podatke, ki jih želite povezati s to napravo.</translation>
 <translation id="6970480684834282392">Vrsta zagona</translation>
 <translation id="6970543303783413625">Gesel ni mogoče uvoziti. Naenkrat lahko uvozite največ toliko gesel: <ph name="COUNT" />.</translation>
 <translation id="6970856801391541997">Natisni določene strani</translation>
@@ -6841,6 +6846,7 @@
 <translation id="7377481913241237033">Povezava s kodo</translation>
 <translation id="7378611153938412599">Šibka gesla je preprosto ugotoviti. Ustvarite zapletena gesla. <ph name="BEGIN_LINK" />Oglejte si več varnostnih nasvetov.<ph name="END_LINK" /></translation>
 <translation id="73786666777299047">Odpiranje Spletne trgovine Chrome</translation>
+<translation id="7380272457268061606">Želite onemogočiti obnovitev lokalnih podatkov?</translation>
 <translation id="7380459290951585794">Preverite, ali imate telefon v bližini, ali je vklopljen in ali ima vklopljeno povezavo Bluetooth ter omrežje Wi-Fi.</translation>
 <translation id="7380622428988553498">Ime naprave vsebuje neveljavne znake.</translation>
 <translation id="7380768571499464492">Posodobljeno: <ph name="PRINTER_NAME" /></translation>
@@ -7091,6 +7097,7 @@
 <translation id="7617263010641145920">Vklop Trgovine Play</translation>
 <translation id="7617648809369507487">Uporabite tišje sporočanje</translation>
 <translation id="7621382409404463535">Sistemu ni uspelo shraniti konfiguracije naprave.</translation>
+<translation id="7621595347123595643">Če pozabite geslo ali kodo PIN, ne bo mogoče obnoviti lokalnih podatkov.</translation>
 <translation id="7622114377921274169">Polnjenje.</translation>
 <translation id="7622768823216805500">Spletna mesta običajno namestijo rutine za obravnavo plačil za funkcije nakupovanja, kot je lažje dokončanje nakupa.</translation>
 <translation id="7622903810087708234">Podrobnosti gesla</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index 2ee3f4e..42c0b89 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -1286,6 +1286,7 @@
 <translation id="2157875535253991059">Ushbu sahifa hozir to‘liq ekran rejimida.</translation>
 <translation id="2158475082070321257">Havolani tanlangan matnga nusxalash</translation>
 <translation id="2159488579268505102">USB-C</translation>
+<translation id="2161058806218011758"><ph name="EXTENSION_NAME" /> uchun <ph name="SHORTCUT" /> ishlatilishi</translation>
 <translation id="216169395504480358">Wi-Fi ulanishini qo‘shish...</translation>
 <translation id="2162155940152307086">Sync sozlamalaridan chiqishingiz bilan sinxronizatsiya boshlanadi</translation>
 <translation id="2162705204091149050">Brauzer, OT, qurilma, oʻrnatilgan dasturlar va fayllar haqidagi axborot bilan tanishing</translation>
@@ -2675,6 +2676,7 @@
 <translation id="3445047461171030979">Google Assistent tezkor javoblari</translation>
 <translation id="3445288400492335833"><ph name="MINUTES" /> daq</translation>
 <translation id="344537926140058498">Bu faylda maxfiy yoki xavfli kontent borligi uchun tashkilotingiz uni bloklagan. Egasidan uni tuzatishni soʻrang.</translation>
+<translation id="344546372406570257">{NUM_SITES,plural, =1{Yaqinda ochilgan <ph name="BEGIN_BOLD" />1 ta sayt<ph name="END_BOLD" /> ruxsatlari olib tashlandi}other{Yaqinda ochilgan <ph name="BEGIN_BOLD" />{NUM_SITES} ta sayt<ph name="END_BOLD" /> ruxsatlari olib tashlandi}}</translation>
 <translation id="3445925074670675829">USB-C qurilma</translation>
 <translation id="3446274660183028131">Windowsni oʻrnatish uchun Parallels Desktopni ishga tushiring.</translation>
 <translation id="344630545793878684">Bir nechta saytlardagi ma’lumotlarni ko‘rish</translation>
@@ -2886,6 +2888,7 @@
 <translation id="3642699533549879077">Kimdir ekraningizga qarasa, bu haqida ogohlantirilasiz va bildirishnoma kontenti berkitiladi.</translation>
 <translation id="3643962751030964445">Bu – <ph name="DEVICE_MANAGER" /> tomonidan boshqariladigan qurilma. <ph name="DEVICE_MANAGER" /> <ph name="USER_EMAIL_ADDRESS" /> hisobi uchun yangi profil yaratilishini talab qiladi</translation>
 <translation id="3645372836428131288">Barmoqning boshqa qismlari hamq qayd qilinishi uchun uni biroz siljiting.</translation>
+<translation id="3647051300407077858">Bildirishnoma ruxsatlarini tekshirish</translation>
 <translation id="3647654707956482440">Bu havola ishlamadi. Qayta urinish uchun imlo xatolarini tekshiring yoki boshqa havoladan foydalaning.</translation>
 <translation id="3647998456578545569">{COUNT,plural, =1{<ph name="DEVICE_NAME" /> qurilmasidan <ph name="ATTACHMENTS" /> qabul qilindi}other{<ph name="DEVICE_NAME" /> qurilmasidan <ph name="ATTACHMENTS" /> qabul qilindi}}</translation>
 <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ulandi</translation>
@@ -3065,6 +3068,7 @@
 <translation id="380408572480438692">Unumdorlik ma’lumotlarini yig‘ish yordamida Google tizim faoliyatiga yaxshilanishlar kiritadi. Ma’lumotlar faqatgina foydalanuvchi fikr-mulohaza jo‘natish (Alt-Shift-I) vaqtida unumdorlik ma’lumotlarini biriktirsa jo‘natiladi. Xohlagan vaqtda bu sahifaga qaytib ma’lumotlarni yig‘ish funksiyasini o‘chirib qo‘yish mumkin.</translation>
 <translation id="3807249107536149332">Kirish ekranida “<ph name="EXTENSION_NAME" />” kengaytmasidan (identifikatori: <ph name="EXTENSION_ID" />) foydalanish taqiqlanadi.</translation>
 <translation id="3807747707162121253">&amp;Bekor qilish</translation>
+<translation id="3808202562160426447">Fondagi kontentni xiralashtirish</translation>
 <translation id="3808443763115411087">Crostini tizimida Android ilovalarini ishlab chiqish</translation>
 <translation id="38089336910894858">⌘Q yordamida chiqishda ogohlantirilsin</translation>
 <translation id="3809272675881623365">Quyon</translation>
@@ -3656,6 +3660,7 @@
 <translation id="4364567974334641491">“<ph name="APP_NAME" />” ilovasi oynaga kirish uchun ruxsat berdi.</translation>
 <translation id="4364830672918311045">Bildirishnomalarni ko‘rsatish</translation>
 <translation id="4366138410738374926">Chop etish boshlangan</translation>
+<translation id="4367513928820380646">Olib tashlangan ruxsatlarni tekshirish</translation>
 <translation id="4369121877634339065">Qidirish uchun istalgan rasmni tortib tashlang</translation>
 <translation id="4369215744064167350">Saytga ruxsat berildi</translation>
 <translation id="4370975561335139969">Siz kiritgan e-pochta va parol mos kelmadi</translation>
@@ -4376,6 +4381,7 @@
 <translation id="5045550434625856497">Parol noto‘g‘ri</translation>
 <translation id="504561833207953641">Mavjud brauzer seansida ochilmoqda.</translation>
 <translation id="5049614114599109018">Kiritish tarixidan foydalanilsin</translation>
+<translation id="5050063070033073713">{NUM_SITES,plural, =1{Bu sayt yaqinda ortiqcha bildirishnoma yuborgan. Ularning bildirishnoma yuborishigini toʻxtatish mumkin.}other{Bu saytlar yaqinda ortiqcha bildirishnoma yuborgan. Ularning bildirishnoma yuborishigini toʻxtatish mumkin.}}</translation>
 <translation id="5051836348807686060">Tanlangan tilda imlo tekshirilmaydi</translation>
 <translation id="5052499409147950210">Saytni tahrirlash</translation>
 <translation id="505347685865235222">Nomsiz guruh – <ph name="GROUP_CONTENT_STRING" /></translation>
@@ -7272,6 +7278,7 @@
 <translation id="7775694664330414886">Varaq nomsiz guruhga olindi – <ph name="GROUP_CONTENTS" /></translation>
 <translation id="7776156998370251340">Bu sayt uchun varaqlar yopilmasa, <ph name="ORIGIN" /> sayti <ph name="FOLDERNAME" /> jildidagi barcha fayllarni ocha oladi</translation>
 <translation id="7776701556330691704">Ovoz namunalari topilmadi</translation>
+<translation id="7777624210360383048"><ph name="EXTENSION_NAME" /> uchun <ph name="SHORTCUT" /> tezkor tugmasi</translation>
 <translation id="7781335840981796660">Barcha hisoblar va mahalliy ma’lumotlar o‘chib ketadi.</translation>
 <translation id="7782102568078991263">Google‘dan boshqa takliflar yo‘q</translation>
 <translation id="7782717250816686129">Doimiy maʼlumotlarni kirish ekranida saqlash va hisob maʼlumotlarini seansga kiritish.</translation>
@@ -7303,6 +7310,7 @@
 <translation id="7807711621188256451"><ph name="HOST" /> saytiga kameradan foydalanishga doim ruxsat berish</translation>
 <translation id="7810202088502699111">Qalqib chiquvchi oynalar bloklandi.</translation>
 <translation id="7814458197256864873">&amp;Nuxsa olish</translation>
+<translation id="7815583197273433531"><ph name="EXTENSION_NAME" /> uchun <ph name="SHORTCUT" /> tezkor tugmasini tahrirlash</translation>
 <translation id="7815680994978050279">Xavfli yuklanma bloklandi</translation>
 <translation id="7817361223956157679">Ekran klaviaturasi hozircha Linux ilovalarda ishlamaydi</translation>
 <translation id="7818135753970109980">Yangi mavzu qo‘shildi (<ph name="EXTENSION_NAME" />)</translation>
@@ -7377,6 +7385,7 @@
 <translation id="7881066108824108340">DNS</translation>
 <translation id="7881483672146086348">Hisobni ko‘rish</translation>
 <translation id="7883792253546618164">Istalgan vaqt obunani bekor qilish mumkin.</translation>
+<translation id="7884372232153418877">{NUM_SITES,plural, =1{Ortiqcha bildirishnoma yuborgan 1 ta saytni tekshiring}other{Ortiqcha bildirishnoma yuborgan {NUM_SITES} ta saytni tekshiring}}</translation>
 <translation id="788453346724465748">Hisob axboroti yuklanmoqda...</translation>
 <translation id="7886279613512920452">{COUNT,plural, =1{element}other{# ta element}}</translation>
 <translation id="7886605625338676841">eSIM</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 048bbb1..83e6538 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -2331,6 +2331,7 @@
 <translation id="3105796011181310544">改回 Google?</translation>
 <translation id="310671807099593501">该网站正在使用蓝牙</translation>
 <translation id="3108931485517391283">无法接收</translation>
+<translation id="3108957152224931571">突出显示颜色</translation>
 <translation id="3109206895301430738">已保存的标签页分组</translation>
 <translation id="3109724472072898302">已收起</translation>
 <translation id="3112292765614504292">应用大小:<ph name="APP_SIZE" /></translation>
@@ -4572,6 +4573,7 @@
 <translation id="5260334392110301220">智能引号</translation>
 <translation id="5260508466980570042">抱歉,您的电子邮件地址或密码无法进行验证,请重试。</translation>
 <translation id="5260958083445173099">网站会尽可能以您的首选语言显示内容</translation>
+<translation id="5261619498868361045">容器名称不得为空。</translation>
 <translation id="5261683757250193089">在 Chrome 应用商店中打开</translation>
 <translation id="5262178194499261222">移除密码</translation>
 <translation id="5262784498883614021">自动连接到网络</translation>
@@ -4976,6 +4978,7 @@
 <translation id="562935524653278697">您的管理员已停止同步您的书签、历史记录、密码及其他设置。</translation>
 <translation id="5631017369956619646">CPU 使用情况</translation>
 <translation id="5632059346822207074">收到了权限请求,按 Ctrl + 前进键即可回复</translation>
+<translation id="5632221585574759616">详细了解扩展程序的权限</translation>
 <translation id="5632566673632479864">您的帐号 <ph name="EMAIL" /> 已无法再用作主帐号。该帐号由 <ph name="DOMAIN" /> 管理,因此您的书签、历史记录、密码及其他设置将从此设备中清除。</translation>
 <translation id="5632592977009207922">正在下载,还剩 <ph name="PERCENT_REMAINING" />%</translation>
 <translation id="5633149627228920745">详细了解系统要求</translation>
@@ -5595,6 +5598,7 @@
 <translation id="6218058416316985984"><ph name="DEVICE_TYPE" /> 处于离线状态。请连接到互联网,然后重试。</translation>
 <translation id="6220413761270491930">加载扩展程序时出错</translation>
 <translation id="6224481128663248237">格式化成功完成!</translation>
+<translation id="622474711739321877">此容器已存在。</translation>
 <translation id="622537739776246443">个人资料将被删除</translation>
 <translation id="6225475702458870625">可通过您的<ph name="PHONE_NAME" />使用数据网络连接</translation>
 <translation id="6226777517901268232">私钥文件(选填)</translation>
@@ -6394,6 +6398,7 @@
 <translation id="696780070563539690">网站无法使用您的 Cookie 查看您在各个不同网站上的浏览活动,因而无法实现某些功能或目的(例如为您展示个性化广告)</translation>
 <translation id="6968288415730398122">需输入您的密码,才能配置屏幕锁定</translation>
 <translation id="6969047215179982698">关闭“附近分享”功能</translation>
+<translation id="6969216690072714773">输入要与此设备关联的新信息,或者更新要与此设备关联的现有信息。</translation>
 <translation id="6970480684834282392">启动类型</translation>
 <translation id="6970543303783413625">无法导入密码。您一次最多只能导入 <ph name="COUNT" /> 个密码。</translation>
 <translation id="6970856801391541997">打印特定页面</translation>
@@ -6800,6 +6805,7 @@
 <translation id="7377481913241237033">利用代码连接</translation>
 <translation id="7378611153938412599">安全系数低的密码容易被人猜到。请务必设置安全系数高的密码。<ph name="BEGIN_LINK" />查看更多安全提示<ph name="END_LINK" />。</translation>
 <translation id="73786666777299047">打开 Chrome 应用商店</translation>
+<translation id="7380272457268061606">停用“本地数据恢复”?</translation>
 <translation id="7380459290951585794">请确保您的手机就在附近、处于解锁状态,且已开启蓝牙和 Wi-Fi</translation>
 <translation id="7380622428988553498">设备名称包含无效字符</translation>
 <translation id="7380768571499464492">已更新<ph name="PRINTER_NAME" /></translation>
@@ -7050,6 +7056,7 @@
 <translation id="7617263010641145920">开启 Play 商店</translation>
 <translation id="7617648809369507487">使用干扰性更低的提示方式</translation>
 <translation id="7621382409404463535">系统未能保存设备配置。</translation>
+<translation id="7621595347123595643">如果忘记了密码或 PIN 码,您将无法恢复本地数据。</translation>
 <translation id="7622114377921274169">正在充电。</translation>
 <translation id="7622768823216805500">网站通常会安装付款处理程序以实现购物功能(例如更轻松的结算)</translation>
 <translation id="7622903810087708234">密码详细信息</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 47ae24e..8f4a7411 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -623,7 +623,7 @@
 <translation id="1573117025466282241">透過 QR 碼使用手機</translation>
 <translation id="1575741822946219011">語言和輸入方法</translation>
 <translation id="1576594961618857597">預設白色圖示</translation>
-<translation id="1576729678809834061">檢舉這個搜尋結果</translation>
+<translation id="1576729678809834061">舉報此搜尋結果</translation>
 <translation id="1578558981922970608">強制關閉</translation>
 <translation id="1580772913177567930">請聯絡您的管理員</translation>
 <translation id="1581962803218266616">在 Finder 中顯示</translation>
@@ -1024,7 +1024,7 @@
 <translation id="1909880997794698664">您確定要讓這部裝置永久使用 Kiosk 模式嗎?</translation>
 <translation id="1910721550319506122">歡迎!</translation>
 <translation id="1910736334623230603">無法搜尋多張圖片。請每次只搜尋一張圖片。</translation>
-<translation id="1910908536872421421">Chrome for Testing v<ph name="BROWSER_VERSION" /> 僅適用於自動化測試。如果是一般瀏覽用途,請使用會自動更新的 Chrome 標準版。</translation>
+<translation id="1910908536872421421">Chrome for Testing v<ph name="BROWSER_VERSION" /> 只適用於自動測試。如要一般瀏覽,請使用會自動更新的 Chrome 標準版本。</translation>
 <translation id="1915073950770830761">Canary</translation>
 <translation id="1915307458270490472">結束通話</translation>
 <translation id="1916502483199172559">預設紅色圖示</translation>
@@ -3264,7 +3264,7 @@
 <translation id="3965811923470826124">包含</translation>
 <translation id="3965965397408324205">退出「<ph name="PROFILE_NAME" />」</translation>
 <translation id="3966072572894326936">選擇其他資料夾…</translation>
-<translation id="3966094581547899417">無線基地台詳細資料</translation>
+<translation id="3966094581547899417">熱點詳情</translation>
 <translation id="3967822245660637423">下載完成</translation>
 <translation id="3967841595862839006">選擇語言和鍵盤</translation>
 <translation id="3968739731834770921">假名</translation>
@@ -3528,7 +3528,7 @@
 <translation id="4228209296591583948">{NUM_EXTENSIONS,plural, =1{不允許這個擴充程式}other{不允許部分擴充程式}}</translation>
 <translation id="4231095370974836764">在 <ph name="DEVICE_TYPE" /> 上透過 Google Play 安裝應用程式和遊戲。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
 <translation id="4231141543165771749">關閉遊戲控制項</translation>
-<translation id="4231542173270219144">在試用期間,網站會使用私密狀態權杖來減少垃圾內容和詐欺情形,藉此防範詐欺及辨別機器人和真人。</translation>
+<translation id="4231542173270219144">在試用期間,為減少垃圾內容和欺詐行為,系統需依賴 Private State Token,以協助網站對抗欺詐行為,並分辨機器人和真人。</translation>
 <translation id="4232375817808480934">設定 Kerberos</translation>
 <translation id="4235965441080806197">取消登入</translation>
 <translation id="4236163961381003811">探索更多擴充程式</translation>
@@ -3724,7 +3724,7 @@
 <translation id="4412698727486357573">說明中心</translation>
 <translation id="44141919652824029">允許「<ph name="APP_NAME" />」取得已連結 USB 裝置的清單嗎?</translation>
 <translation id="4414232939543644979">新增無痕式視窗(&amp;I)</translation>
-<translation id="4414648713167199100">使用 Chromebook 的行動數據,且電信業者可能會向你收取費用。此外,這麼做也可能會增加電池用量。<ph name="BEGIN_LINK_LEARN_MORE" />瞭解詳情<ph name="END_LINK_LEARN_MORE" /></translation>
+<translation id="4414648713167199100">使用 Chromebook 的流動數據,且流動網絡供應商可能會收取額外費用。這麼做可能會增加電池用量。<ph name="BEGIN_LINK_LEARN_MORE" />瞭解詳情<ph name="END_LINK_LEARN_MORE" /></translation>
 <translation id="4415213869328311284">您的 <ph name="DEVICE_TYPE" /> 已準備就緒。</translation>
 <translation id="4415245286584082850">搵唔到裝置。你可以喺新分頁度開啟說明中心文章。</translation>
 <translation id="4415276339145661267">管理您的 Google 帳戶</translation>
@@ -6103,7 +6103,7 @@
 <translation id="6674571176963658787">如要開始同步處理,請輸入密碼短語</translation>
 <translation id="6675665718701918026">已連接指標裝置</translation>
 <translation id="6676212663108450937">訓練聲音時,建議您使用耳機</translation>
-<translation id="6677942524382973058">私密狀態權杖能進一步保護網路使用者的隱私,且無法用來識別個人身分。</translation>
+<translation id="6677942524382973058">Private State Token 能夠改善網絡上的私隱,而且系統無法透過信任憑證來識別您的身分。</translation>
 <translation id="6678717876183468697">查詢網址</translation>
 <translation id="6680442031740878064">可用空間:<ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">語速</translation>
@@ -8157,7 +8157,7 @@
 <translation id="8602674530529411098">應用程式 (Beta 版本)</translation>
 <translation id="8602851771975208551">電腦中其他程式所新增的應用程式可能會變更 Chrome 的工作方式。</translation>
 <translation id="8605428685123651449">SQLite 記憶體使用量</translation>
-<translation id="8607326572516521315">網站可透過私密狀態權杖來減少垃圾內容和詐欺情形,藉此防範詐欺及辨別機器人和真人。</translation>
+<translation id="8607326572516521315">為減少垃圾內容和欺詐行為,系統需依賴 Private State Token,以協助網站對抗欺詐行為,並分辨機器人和真人。</translation>
 <translation id="8608618451198398104">新增 Kerberos 票證</translation>
 <translation id="8609465669617005112">上移</translation>
 <translation id="8610103157987623234">格式不正確,請再試一次</translation>
@@ -8482,7 +8482,7 @@
 <translation id="8890170499370378450">您可能需要支付流動數據費用</translation>
 <translation id="8890516388109605451">來源</translation>
 <translation id="8890529496706615641">無法重新命名設定檔。請再試一次,或聯絡您的流動網絡供應商以獲取技術支援。</translation>
-<translation id="8891996167592415151">網站可根據你與網站的互動 (例如定期登入帳戶) 情形,核發私密狀態權杖給你的瀏覽器。在此之後,假如你造訪的其他網站查看並找到有效的私密狀態權杖,這些網站就較有可能會判斷你是真人,而非機器人。</translation>
+<translation id="8891996167592415151">網站可根據您與網站的互動 (例如定期登入網站),向您的瀏覽器發出 Private State Token。日後,如果您瀏覽的其他網站檢查並找到有效的 Private State Token,則這些網站更有可能將您視為真人,而不是機器人。</translation>
 <translation id="8892168913673237979">大功告成!</translation>
 <translation id="8893801527741465188">解除安裝完成</translation>
 <translation id="8893928184421379330">很抱歉,系統無法識別 <ph name="DEVICE_LABEL" /> 裝置。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 0b80ab0..b23ffa1 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -4626,7 +4626,7 @@
 <translation id="5293170712604732402">將設定還原成原始預設值</translation>
 <translation id="5294097441441645251">開頭必須是小寫字元或底線</translation>
 <translation id="5294618183559481278"><ph name="DEVICE_TYPE" /> 會使用內建感應器偵測裝置前方的人員。所有資料都會立即在這部裝置上處理,完成後便會全數刪除。感應器資料絕不會傳送給 Google。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation>
-<translation id="5296350763804564124">系統會提供互動朗讀內容,讓你不用看螢幕也能夠輕鬆使用裝置。你可透過已連結的裝置使用點字反饋功能。</translation>
+<translation id="5296350763804564124">系統會提供互動朗讀內容,讓你不用看螢幕也能夠輕鬆使用裝置。你可透過已連結的裝置使用點字回饋功能。</translation>
 <translation id="5297005732522718715">重新整理網路共用設定</translation>
 <translation id="5297082477358294722">密碼已儲存。你可以查看及管理 <ph name="SAVED_PASSWORDS_STORE" />中儲存的密碼。</translation>
 <translation id="5297946558563358707">有人在窺探你的螢幕時,螢幕右下方會顯示「隱私權」眼睛圖示</translation>
@@ -8787,7 +8787,7 @@
 <translation id="9186963452600581158">使用孩子的 Google 帳戶登入</translation>
 <translation id="9187967020623675250">按鍵不符。按下任意鍵即可<ph name="RESPONSE" />。</translation>
 <translation id="9188732951356337132">傳送使用狀況與診斷資料。這個裝置目前會自動將診斷資料以及裝置和應用程式的使用狀況資料傳送給 Google。這些資料將有助於系統和應用程式提高穩定性及做出其他改善,並不會用於識別貴子女的身分。部分匯總資料還能夠為 Google 應用程式和合作夥伴 (例如 Android 開發人員) 提供幫助。如果貴子女的「其他網路和應用程式活動」設定為開啟,系統可能會將這些資料儲存到他們的 Google 帳戶。<ph name="BEGIN_LINK2" />瞭解詳情<ph name="END_LINK2" /></translation>
-<translation id="9192019773545828776">系統會提供互動朗讀內容,讓你不用看螢幕也能夠輕鬆使用裝置。你可透過已連結的裝置使用點字反饋功能。使用 Ctrl + Alt + Z 鍵即可開啟或關閉 ChromeVox。使用搜尋鍵 + 向左鍵或向右鍵即可瀏覽。使用搜尋鍵 + 空格鍵即可選取 (亦即啟用)。</translation>
+<translation id="9192019773545828776">系統會提供互動朗讀內容,讓你不用看螢幕也能夠輕鬆使用裝置。你可透過已連結的裝置使用點字回饋功能。使用 Ctrl + Alt + Z 鍵即可開啟或關閉 ChromeVox。使用搜尋鍵 + 向左鍵或向右鍵即可瀏覽。使用搜尋鍵 + 空格鍵即可選取 (亦即啟用)。</translation>
 <translation id="919686179725692564">進一步瞭解如何備份應用程式</translation>
 <translation id="9198090666959937775">使用你的 Android 手機做為安全金鑰</translation>
 <translation id="9199503643457729322">按一下即可離開「隱私權指南」頁面。</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 7789e6e..ccb9275 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -4072,10 +4072,14 @@
       "profile_resetter/triggered_profile_resetter.h",
       "profile_resetter/triggered_profile_resetter_factory.cc",
       "profile_resetter/triggered_profile_resetter_factory.h",
+      "profiles/delete_profile_helper.cc",
+      "profiles/delete_profile_helper.h",
       "profiles/guest_mode_policy_handler.cc",
       "profiles/guest_mode_policy_handler.h",
       "profiles/guest_profile_creation_logger.cc",
       "profiles/guest_profile_creation_logger.h",
+      "profiles/nuke_profile_directory_utils.cc",
+      "profiles/nuke_profile_directory_utils.h",
       "profiles/profile_shortcut_manager.cc",
       "profiles/profile_shortcut_manager.h",
       "profiles/profile_theme_update_service.cc",
@@ -6978,6 +6982,10 @@
     sources += [
       "signin/bound_session_credentials/bound_session_cookie_fetcher.cc",
       "signin/bound_session_credentials/bound_session_cookie_fetcher.h",
+      "signin/bound_session_credentials/bound_session_cookie_refresh_service.cc",
+      "signin/bound_session_credentials/bound_session_cookie_refresh_service.h",
+      "signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.cc",
+      "signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.h",
     ]
   }
 
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index a94709c..a8d7522 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -6644,6 +6644,11 @@
      FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kTangibleSync,
                                     kTangibleSyncVariations,
                                     "TangibleSyncVariations")},
+
+    {"identity-status-consistency",
+     flag_descriptions::kIdentityStatusConsistencyName,
+     flag_descriptions::kIdentityStatusConsistencyDescription, kOsAndroid,
+     FEATURE_VALUE_TYPE(switches::kIdentityStatusConsistency)},
 #endif  // BUILDFLAG(IS_ANDROID)
 
     {"autofill-use-improved-label-disambiguation",
diff --git a/chrome/browser/app_controller_mac_browsertest.mm b/chrome/browser/app_controller_mac_browsertest.mm
index fa58824..2456715 100644
--- a/chrome/browser/app_controller_mac_browsertest.mm
+++ b/chrome/browser/app_controller_mac_browsertest.mm
@@ -36,11 +36,13 @@
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/lifetime/application_lifetime_desktop.h"
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_init_params.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_observer.h"
 #include "chrome/browser/profiles/profile_test_util.h"
 #include "chrome/browser/signin/signin_util.h"
@@ -829,8 +831,9 @@
                                            ServiceAccessType::EXPLICIT_ACCESS));
 
   // Delete profile2.
-  profile_manager->ScheduleProfileForDeletion(profile2->GetPath(),
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile2->GetPath(), base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   // Verify the controller's history is back to profile1.
diff --git a/chrome/browser/app_controller_mac_unittest.mm b/chrome/browser/app_controller_mac_unittest.mm
index f88dfca..cb0a786 100644
--- a/chrome/browser/app_controller_mac_unittest.mm
+++ b/chrome/browser/app_controller_mac_unittest.mm
@@ -16,7 +16,9 @@
 #include "chrome/app/chrome_command_ids.h"
 #import "chrome/browser/app_controller_mac.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/testing_browser_process.h"
@@ -199,8 +201,11 @@
   base::scoped_nsobject<AppController> ac([[AppController alloc] init]);
 
   // Delete the active profile.
-  profile_manager_.profile_manager()->ScheduleProfileForDeletion(
-      dest_path1, base::DoNothing());
+  profile_manager_.profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          dest_path1, base::DoNothing(),
+          ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
 
   base::RunLoop().RunUntilIdle();
 
diff --git a/chrome/browser/ash/app_mode/kiosk_profile_loader.cc b/chrome/browser/ash/app_mode/kiosk_profile_loader.cc
index 06ac29e..bd3d2e22 100644
--- a/chrome/browser/ash/app_mode/kiosk_profile_loader.cc
+++ b/chrome/browser/ash/app_mode/kiosk_profile_loader.cc
@@ -217,9 +217,9 @@
 }
 
 void KioskProfileLoader::OnOldEncryptionDetected(
-    const UserContext& user_context,
+    std::unique_ptr<UserContext> user_context,
     bool has_incomplete_migration) {
-  delegate_->OnOldEncryptionDetected(user_context);
+  delegate_->OnOldEncryptionDetected(std::move(user_context));
 }
 
 void KioskProfileLoader::OnProfilePrepared(Profile* profile,
diff --git a/chrome/browser/ash/app_mode/kiosk_profile_loader.h b/chrome/browser/ash/app_mode/kiosk_profile_loader.h
index 86db5c0..a78fa10 100644
--- a/chrome/browser/ash/app_mode/kiosk_profile_loader.h
+++ b/chrome/browser/ash/app_mode/kiosk_profile_loader.h
@@ -33,7 +33,8 @@
    public:
     virtual void OnProfileLoaded(Profile* profile) = 0;
     virtual void OnProfileLoadFailed(KioskAppLaunchError::Error error) = 0;
-    virtual void OnOldEncryptionDetected(const UserContext& user_context) = 0;
+    virtual void OnOldEncryptionDetected(
+        std::unique_ptr<UserContext> user_context) = 0;
 
    protected:
     virtual ~Delegate() {}
@@ -60,7 +61,7 @@
   void OnAuthFailure(const AuthFailure& error) override;
   void AllowlistCheckFailed(const std::string& email) override;
   void PolicyLoadFailed() override;
-  void OnOldEncryptionDetected(const UserContext& user_context,
+  void OnOldEncryptionDetected(std::unique_ptr<UserContext> user_context,
                                bool has_incomplete_migration) override;
 
   // UserSessionManagerDelegate implementation:
diff --git a/chrome/browser/ash/dbus/fusebox_service_provider.cc b/chrome/browser/ash/dbus/fusebox_service_provider.cc
index 359cbe7..9e6469e1 100644
--- a/chrome/browser/ash/dbus/fusebox_service_provider.cc
+++ b/chrome/browser/ash/dbus/fusebox_service_provider.cc
@@ -179,6 +179,16 @@
                                            weak_ptr_factory_.GetWeakPtr()),
                        base::BindOnce(&OnExportedCallback));
   object->ExportMethod(fusebox::kFuseBoxServiceInterface,
+                       fusebox::kTruncateMethod,
+                       base::BindRepeating(&FuseBoxServiceProvider::Truncate,
+                                           weak_ptr_factory_.GetWeakPtr()),
+                       base::BindOnce(&OnExportedCallback));
+  object->ExportMethod(fusebox::kFuseBoxServiceInterface,
+                       fusebox::kUnlinkMethod,
+                       base::BindRepeating(&FuseBoxServiceProvider::Unlink,
+                                           weak_ptr_factory_.GetWeakPtr()),
+                       base::BindOnce(&OnExportedCallback));
+  object->ExportMethod(fusebox::kFuseBoxServiceInterface,
                        fusebox_staging::kWrite2Method,
                        base::BindRepeating(&FuseBoxServiceProvider::Write2,
                                            weak_ptr_factory_.GetWeakPtr()),
@@ -419,6 +429,47 @@
                base::BindOnce(&ReplyToStat, method_call, std::move(sender)));
 }
 
+void FuseBoxServiceProvider::Truncate(
+    dbus::MethodCall* method_call,
+    dbus::ExportedObject::ResponseSender sender) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  dbus::MessageReader reader(method_call);
+  fusebox_staging::TruncateRequestProto request_proto;
+  if (!reader.PopArrayOfBytesAsProto(&request_proto)) {
+    fusebox_staging::TruncateResponseProto response_proto;
+    response_proto.set_posix_error_code(EINVAL);
+    ReplyToProtoMethod(method_call, std::move(sender), response_proto);
+    return;
+  }
+
+  server_.Truncate(
+      request_proto,
+      base::BindOnce(
+          &ReplyToProtoMethod<fusebox_staging::TruncateResponseProto>,
+          method_call, std::move(sender)));
+}
+
+void FuseBoxServiceProvider::Unlink(
+    dbus::MethodCall* method_call,
+    dbus::ExportedObject::ResponseSender sender) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  dbus::MessageReader reader(method_call);
+  fusebox_staging::UnlinkRequestProto request_proto;
+  if (!reader.PopArrayOfBytesAsProto(&request_proto)) {
+    fusebox_staging::UnlinkResponseProto response_proto;
+    response_proto.set_posix_error_code(EINVAL);
+    ReplyToProtoMethod(method_call, std::move(sender), response_proto);
+    return;
+  }
+
+  server_.Unlink(
+      request_proto,
+      base::BindOnce(&ReplyToProtoMethod<fusebox_staging::UnlinkResponseProto>,
+                     method_call, std::move(sender)));
+}
+
 void FuseBoxServiceProvider::Write2(
     dbus::MethodCall* method_call,
     dbus::ExportedObject::ResponseSender sender) {
diff --git a/chrome/browser/ash/dbus/fusebox_service_provider.h b/chrome/browser/ash/dbus/fusebox_service_provider.h
index c5d6567..c770ffd 100644
--- a/chrome/browser/ash/dbus/fusebox_service_provider.h
+++ b/chrome/browser/ash/dbus/fusebox_service_provider.h
@@ -58,6 +58,10 @@
              dbus::ExportedObject::ResponseSender sender);
   void Stat(dbus::MethodCall* method_call,
             dbus::ExportedObject::ResponseSender sender);
+  void Truncate(dbus::MethodCall* method_call,
+                dbus::ExportedObject::ResponseSender sender);
+  void Unlink(dbus::MethodCall* method_call,
+              dbus::ExportedObject::ResponseSender sender);
   void Write2(dbus::MethodCall* method_call,
               dbus::ExportedObject::ResponseSender sender);
 
diff --git a/chrome/browser/ash/fusebox/fusebox_server.cc b/chrome/browser/ash/fusebox/fusebox_server.cc
index e040a75f..9e471ab 100644
--- a/chrome/browser/ash/fusebox/fusebox_server.cc
+++ b/chrome/browser/ash/fusebox/fusebox_server.cc
@@ -359,6 +359,84 @@
   std::move(callback).Run(response_proto);
 }
 
+void RunTruncateAndThenStatCallback(
+    Server::TruncateCallback callback,
+    scoped_refptr<storage::FileSystemContext> fs_context,  // See § above.
+    bool read_only,
+    base::File::Error error_code,
+    const base::File::Info& info) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  int posix_error_code = FileErrorToErrno(error_code);
+  if (posix_error_code) {
+    fusebox_staging::TruncateResponseProto response_proto;
+    response_proto.set_posix_error_code(posix_error_code);
+    std::move(callback).Run(response_proto);
+    return;
+  }
+
+  fusebox_staging::TruncateResponseProto response_proto;
+  fusebox_staging::DirEntryProto* stat = response_proto.mutable_stat();
+  stat->set_mode_bits(Server::MakeModeBits(info.is_directory, read_only));
+  stat->set_size(info.size);
+  stat->set_mtime(
+      info.last_modified.ToDeltaSinceWindowsEpoch().InMicroseconds());
+  std::move(callback).Run(response_proto);
+}
+
+void RunTruncateCallback(
+    Server::TruncateCallback callback,
+    scoped_refptr<storage::FileSystemContext> fs_context,  // See § above.
+    storage::FileSystemURL fs_url,
+    bool read_only,
+    base::File::Error error_code) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  int posix_error_code = FileErrorToErrno(error_code);
+  if (posix_error_code) {
+    fusebox_staging::TruncateResponseProto response_proto;
+    response_proto.set_posix_error_code(posix_error_code);
+    std::move(callback).Run(response_proto);
+    return;
+  }
+
+  constexpr auto metadata_fields =
+      storage::FileSystemOperation::GET_METADATA_FIELD_IS_DIRECTORY |
+      storage::FileSystemOperation::GET_METADATA_FIELD_SIZE |
+      storage::FileSystemOperation::GET_METADATA_FIELD_LAST_MODIFIED;
+
+  auto outer_callback = base::BindPostTask(
+      base::SequencedTaskRunner::GetCurrentDefault(),
+      base::BindOnce(&RunTruncateAndThenStatCallback, std::move(callback),
+                     fs_context, read_only));
+
+  content::GetIOThreadTaskRunner({})->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          base::IgnoreResult(&storage::FileSystemOperationRunner::GetMetadata),
+          // Unretained is safe: fs_context owns its operation_runner.
+          base::Unretained(fs_context->operation_runner()), fs_url,
+          metadata_fields, std::move(outer_callback)));
+}
+
+void RunUnlinkCallback(
+    Server::UnlinkCallback callback,
+    scoped_refptr<storage::FileSystemContext> fs_context,  // See § above.
+    base::File::Error error_code) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  int posix_error_code = FileErrorToErrno(error_code);
+  if (posix_error_code) {
+    fusebox_staging::UnlinkResponseProto response_proto;
+    response_proto.set_posix_error_code(posix_error_code);
+    std::move(callback).Run(response_proto);
+    return;
+  }
+
+  fusebox_staging::UnlinkResponseProto response_proto;
+  std::move(callback).Run(response_proto);
+}
+
 void RunWrite2CallbackFailure(Server::Write2Callback callback,
                               base::File::Error error_code) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -1117,6 +1195,79 @@
           common.fs_url, metadata_fields, std::move(outer_callback)));
 }
 
+void Server::Truncate(
+    const fusebox_staging::TruncateRequestProto& request_proto,
+    TruncateCallback callback) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  std::string fs_url_as_string = request_proto.has_file_system_url()
+                                     ? request_proto.file_system_url()
+                                     : std::string();
+
+  auto common = ParseFileSystemURL(moniker_map_, prefix_map_, fs_url_as_string);
+  if (common.error_code != base::File::Error::FILE_OK) {
+    fusebox_staging::TruncateResponseProto response_proto;
+    response_proto.set_posix_error_code(FileErrorToErrno(common.error_code));
+    std::move(callback).Run(response_proto);
+    return;
+  } else if (common.read_only) {
+    fusebox_staging::TruncateResponseProto response_proto;
+    response_proto.set_posix_error_code(EACCES);
+    std::move(callback).Run(response_proto);
+    return;
+  }
+
+  auto outer_callback = base::BindPostTask(
+      base::SequencedTaskRunner::GetCurrentDefault(),
+      base::BindOnce(&RunTruncateCallback, std::move(callback),
+                     common.fs_context, common.fs_url, common.read_only));
+
+  content::GetIOThreadTaskRunner({})->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          base::IgnoreResult(&storage::FileSystemOperationRunner::Truncate),
+          // Unretained is safe: context owns operation runner.
+          base::Unretained(common.fs_context->operation_runner()),
+          common.fs_url,
+          request_proto.has_length() ? request_proto.length() : 0,
+          std::move(outer_callback)));
+}
+
+void Server::Unlink(const fusebox_staging::UnlinkRequestProto& request_proto,
+                    UnlinkCallback callback) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  std::string fs_url_as_string = request_proto.has_file_system_url()
+                                     ? request_proto.file_system_url()
+                                     : std::string();
+
+  auto common = ParseFileSystemURL(moniker_map_, prefix_map_, fs_url_as_string);
+  if (common.error_code != base::File::Error::FILE_OK) {
+    fusebox_staging::UnlinkResponseProto response_proto;
+    response_proto.set_posix_error_code(FileErrorToErrno(common.error_code));
+    std::move(callback).Run(response_proto);
+    return;
+  } else if (common.read_only) {
+    fusebox_staging::UnlinkResponseProto response_proto;
+    response_proto.set_posix_error_code(EACCES);
+    std::move(callback).Run(response_proto);
+    return;
+  }
+
+  auto outer_callback =
+      base::BindPostTask(base::SequencedTaskRunner::GetCurrentDefault(),
+                         base::BindOnce(&RunUnlinkCallback, std::move(callback),
+                                        common.fs_context));
+
+  content::GetIOThreadTaskRunner({})->PostTask(
+      FROM_HERE,
+      base::BindOnce(
+          base::IgnoreResult(&storage::FileSystemOperationRunner::RemoveFile),
+          // Unretained is safe: context owns operation runner.
+          base::Unretained(common.fs_context->operation_runner()),
+          common.fs_url, std::move(outer_callback)));
+}
+
 void Server::Write2(const fusebox_staging::Write2RequestProto& request_proto,
                     Write2Callback callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
diff --git a/chrome/browser/ash/fusebox/fusebox_server.h b/chrome/browser/ash/fusebox/fusebox_server.h
index 67bb97d..9f060b0 100644
--- a/chrome/browser/ash/fusebox/fusebox_server.h
+++ b/chrome/browser/ash/fusebox/fusebox_server.h
@@ -164,6 +164,18 @@
                                                bool read_only)>;
   void Stat(const std::string& fs_url_as_string, StatCallback callback);
 
+  // Truncate sets a file's size.
+  using TruncateCallback = base::OnceCallback<void(
+      const fusebox_staging::TruncateResponseProto& response)>;
+  void Truncate(const fusebox_staging::TruncateRequestProto& request,
+                TruncateCallback callback);
+
+  // Unlink deletes a file.
+  using UnlinkCallback = base::OnceCallback<void(
+      const fusebox_staging::UnlinkResponseProto& response)>;
+  void Unlink(const fusebox_staging::UnlinkRequestProto& request,
+              UnlinkCallback callback);
+
   // Write2 writes to a virtual file opened by Open2.
   using Write2Callback = base::OnceCallback<void(
       const fusebox_staging::Write2ResponseProto& response)>;
diff --git a/chrome/browser/ash/fusebox/fusebox_staging.proto b/chrome/browser/ash/fusebox/fusebox_staging.proto
index 38ad8d6c..a64e3de7 100644
--- a/chrome/browser/ash/fusebox/fusebox_staging.proto
+++ b/chrome/browser/ash/fusebox/fusebox_staging.proto
@@ -133,6 +133,29 @@
   optional int32 posix_error_code = 1;
 }
 
+// Truncate sets a file's size.
+
+message TruncateRequestProto {
+  optional string file_system_url = 3;
+  optional int64 length = 5;
+}
+
+message TruncateResponseProto {
+  optional int32 posix_error_code = 1;
+  optional DirEntryProto stat = 3;
+}
+
+// Unlink deletes a file, like "rm". It truly deletes (it does not "move to
+// trash", an undo-able operation).
+
+message UnlinkRequestProto {
+  optional string file_system_url = 3;
+}
+
+message UnlinkResponseProto {
+  optional int32 posix_error_code = 1;
+}
+
 // Write2 writes to a fuse_handle previously returned by Open2.
 
 message Write2RequestProto {
diff --git a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc
index e406793..69e18bad 100644
--- a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc
+++ b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.cc
@@ -587,7 +587,7 @@
 }
 
 void KioskLaunchController::OnOldEncryptionDetected(
-    const UserContext& user_context) {
+    std::unique_ptr<UserContext> user_context) {
   if (kiosk_app_id_.type != KioskAppType::kArcApp) {
     NOTREACHED();
     return;
@@ -597,7 +597,7 @@
       static_cast<EncryptionMigrationScreen*>(
           host_->GetWizardController()->current_screen());
   DCHECK(migration_screen);
-  migration_screen->SetUserContext(user_context);
+  migration_screen->SetUserContext(std::move(user_context));
   migration_screen->SetupInitialView();
 }
 
diff --git a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.h b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.h
index e74fc41..326a877d 100644
--- a/chrome/browser/ash/login/app_mode/kiosk_launch_controller.h
+++ b/chrome/browser/ash/login/app_mode/kiosk_launch_controller.h
@@ -161,7 +161,8 @@
   // KioskProfileLoader::Delegate:
   void OnProfileLoaded(Profile* profile) override;
   void OnProfileLoadFailed(KioskAppLaunchError::Error error) override;
-  void OnOldEncryptionDetected(const UserContext& user_context) override;
+  void OnOldEncryptionDetected(
+      std::unique_ptr<UserContext> user_context) override;
 
   void OnOwnerSigninSuccess();
 
diff --git a/chrome/browser/ash/login/app_mode/test/web_kiosk_browsertest.cc b/chrome/browser/ash/login/app_mode/test/web_kiosk_browsertest.cc
index fa791ad54..0f933fa 100644
--- a/chrome/browser/ash/login/app_mode/test/web_kiosk_browsertest.cc
+++ b/chrome/browser/ash/login/app_mode/test/web_kiosk_browsertest.cc
@@ -62,7 +62,7 @@
  public:
   MOCK_METHOD1(OnProfileLoaded, void(Profile*));
   MOCK_METHOD1(OnProfileLoadFailed, void(KioskAppLaunchError::Error));
-  MOCK_METHOD1(OnOldEncryptionDetected, void(const UserContext&));
+  MOCK_METHOD1(OnOldEncryptionDetected, void(std::unique_ptr<UserContext>));
 };
 
 class WebKioskTest : public OobeBaseTest {
diff --git a/chrome/browser/ash/login/existing_user_controller.cc b/chrome/browser/ash/login/existing_user_controller.cc
index 6d4ea53..7f16a16 100644
--- a/chrome/browser/ash/login/existing_user_controller.cc
+++ b/chrome/browser/ash/login/existing_user_controller.cc
@@ -671,16 +671,15 @@
 
 void ExistingUserController::ContinuePerformLogin(
     LoginPerformer::AuthorizationMode auth_mode,
-    const UserContext& user_context) {
-  login_performer_->PerformLogin(user_context, auth_mode);
+    std::unique_ptr<UserContext> user_context) {
+  login_performer_->LoginAuthenticated(std::move(user_context));
 }
 
 void ExistingUserController::ContinuePerformLoginWithoutMigration(
     LoginPerformer::AuthorizationMode auth_mode,
-    const UserContext& user_context) {
-  UserContext user_context_ecryptfs = user_context;
-  user_context_ecryptfs.SetIsForcingDircrypto(false);
-  ContinuePerformLogin(auth_mode, user_context_ecryptfs);
+    std::unique_ptr<UserContext> user_context) {
+  user_context->SetIsForcingDircrypto(false);
+  ContinuePerformLogin(auth_mode, std::move(user_context));
 }
 
 void ExistingUserController::OnGaiaScreenReady() {
@@ -741,10 +740,10 @@
 }
 
 void ExistingUserController::ShowEncryptionMigrationScreen(
-    const UserContext& user_context,
+    std::unique_ptr<UserContext> user_context,
     EncryptionMigrationMode migration_mode) {
   GetLoginDisplayHost()->GetSigninUI()->StartEncryptionMigration(
-      user_context, migration_mode,
+      std::move(user_context), migration_mode,
       base::BindOnce(&ExistingUserController::ContinuePerformLogin,
                      weak_factory_.GetWeakPtr(),
                      login_performer_->auth_mode()));
@@ -1077,16 +1076,16 @@
 }
 
 void ExistingUserController::OnOldEncryptionDetected(
-    const UserContext& user_context,
+    std::unique_ptr<UserContext> user_context,
     bool has_incomplete_migration) {
   absl::optional<EncryptionMigrationMode> encryption_migration_mode =
-      GetEncryptionMigrationMode(user_context, has_incomplete_migration);
+      GetEncryptionMigrationMode(*user_context, has_incomplete_migration);
   if (!encryption_migration_mode.has_value()) {
     ContinuePerformLoginWithoutMigration(login_performer_->auth_mode(),
-                                         user_context);
+                                         std::move(user_context));
     return;
   }
-  ShowEncryptionMigrationScreen(user_context,
+  ShowEncryptionMigrationScreen(std::move(user_context),
                                 encryption_migration_mode.value());
 }
 
diff --git a/chrome/browser/ash/login/existing_user_controller.h b/chrome/browser/ash/login/existing_user_controller.h
index 63f388b..6a6e5a57 100644
--- a/chrome/browser/ash/login/existing_user_controller.h
+++ b/chrome/browser/ash/login/existing_user_controller.h
@@ -172,7 +172,7 @@
   void OnAuthSuccess(const UserContext& user_context) override;
   void OnOffTheRecordAuthSuccess() override;
   void OnPasswordChangeDetected(const UserContext& user_context) override;
-  void OnOldEncryptionDetected(const UserContext& user_context,
+  void OnOldEncryptionDetected(std::unique_ptr<UserContext>,
                                bool has_incomplete_migration) override;
   void AllowlistCheckFailed(const std::string& email) override;
   void PolicyLoadFailed() override;
@@ -208,7 +208,7 @@
   void ShowKioskEnableScreen();
 
   // Shows "filesystem encryption migration" screen.
-  void ShowEncryptionMigrationScreen(const UserContext& user_context,
+  void ShowEncryptionMigrationScreen(std::unique_ptr<UserContext> user_context,
                                      EncryptionMigrationMode migration_mode);
 
   // Shows "critical TPM error" screen.
@@ -223,13 +223,13 @@
 
   // Calls login() on previously-used `login_performer_`.
   void ContinuePerformLogin(LoginPerformer::AuthorizationMode auth_mode,
-                            const UserContext& user_context);
+                            std::unique_ptr<UserContext> user_context);
 
   // Removes the constraint that user home mount requires ext4 encryption from
   // `user_context`, then calls login() on previously-used `login_performer`.
   void ContinuePerformLoginWithoutMigration(
       LoginPerformer::AuthorizationMode auth_mode,
-      const UserContext& user_context);
+      std::unique_ptr<UserContext> user_context);
 
   // Asks the user to enter their password again.
   void RestartLogin(const UserContext& user_context);
diff --git a/chrome/browser/ash/login/screens/encryption_migration_screen.cc b/chrome/browser/ash/login/screens/encryption_migration_screen.cc
index d6eb621..ac0f9b1 100644
--- a/chrome/browser/ash/login/screens/encryption_migration_screen.cc
+++ b/chrome/browser/ash/login/screens/encryption_migration_screen.cc
@@ -258,8 +258,8 @@
 void EncryptionMigrationScreen::HideImpl() {}
 
 void EncryptionMigrationScreen::SetUserContext(
-    const UserContext& user_context) {
-  user_context_ = user_context;
+    std::unique_ptr<UserContext> user_context) {
+  user_context_ = std::move(user_context);
 }
 
 void EncryptionMigrationScreen::SetMode(EncryptionMigrationMode mode) {
@@ -361,8 +361,8 @@
   // In this case, the user can not launch ARC apps in the session, and will be
   // asked to do the migration again in the next log-in attempt.
   if (!skip_migration_callback_.is_null()) {
-    user_context_.SetIsForcingDircrypto(false);
-    std::move(skip_migration_callback_).Run(user_context_);
+    user_context_->SetIsForcingDircrypto(false);
+    std::move(skip_migration_callback_).Run(std::move(user_context_));
   }
 }
 
@@ -481,7 +481,7 @@
   // Mount the existing eCryptfs vault to a temporary location for migration.
   user_data_auth::MountRequest mount;
   *mount.mutable_account() = cryptohome::CreateAccountIdentifierFromAccountId(
-      user_context_.GetAccountId());
+      user_context_->GetAccountId());
   cryptohome::AuthorizationRequest auth_request;
   mount.set_to_migrate_from_ecryptfs(true);
   if (IsArcKiosk()) {
@@ -509,7 +509,7 @@
   user_data_auth::StartMigrateToDircryptoRequest request;
   *request.mutable_account_id() =
       cryptohome::CreateAccountIdentifierFromAccountId(
-          user_context_.GetAccountId());
+          user_context_->GetAccountId());
   userdataauth_observer_ = std::make_unique<base::ScopedObservation<
       UserDataAuthClient, UserDataAuthClient::Observer>>(this);
   userdataauth_observer_->Observe(UserDataAuthClient::Get());
@@ -542,10 +542,10 @@
   // Set invalid token status so that user is forced to go through Gaia on the
   // next sign-in.
   user_manager::UserManager::Get()->SaveUserOAuthStatus(
-      user_context_.GetAccountId(),
+      user_context_->GetAccountId(),
       user_manager::User::OAUTH2_TOKEN_STATUS_INVALID);
 
-  const cryptohome::Identification cryptohome_id(user_context_.GetAccountId());
+  const cryptohome::Identification cryptohome_id(user_context_->GetAccountId());
 
   user_data_auth::RemoveRequest request;
   request.mutable_identifier()->set_account_id(cryptohome_id.id());
@@ -572,7 +572,7 @@
 cryptohome::AuthorizationRequest
 EncryptionMigrationScreen::CreateAuthorizationRequest() {
   // |key| is created in the same manner as CryptohomeAuthenticator.
-  const Key* key = user_context_.GetKey();
+  const Key* key = user_context_->GetKey();
   // If the |key| is a plain text password, crash rather than attempting to
   // mount the cryptohome with a plain text password.
   CHECK_NE(Key::KEY_TYPE_PASSWORD_PLAIN, key->GetKeyType());
@@ -588,7 +588,7 @@
 }
 
 bool EncryptionMigrationScreen::IsArcKiosk() const {
-  return user_context_.GetUserType() == user_manager::USER_TYPE_ARC_KIOSK_APP;
+  return user_context_->GetUserType() == user_manager::USER_TYPE_ARC_KIOSK_APP;
 }
 
 void EncryptionMigrationScreen::DircryptoMigrationProgress(
diff --git a/chrome/browser/ash/login/screens/encryption_migration_screen.h b/chrome/browser/ash/login/screens/encryption_migration_screen.h
index 2038940..5676e5e4 100644
--- a/chrome/browser/ash/login/screens/encryption_migration_screen.h
+++ b/chrome/browser/ash/login/screens/encryption_migration_screen.h
@@ -35,7 +35,8 @@
  public:
   using TView = EncryptionMigrationScreenView;
 
-  using SkipMigrationCallback = base::OnceCallback<void(const UserContext&)>;
+  using SkipMigrationCallback =
+      base::OnceCallback<void(std::unique_ptr<UserContext>)>;
 
   class EncryptionMigrationScreenTestDelegate {
    public:
@@ -55,7 +56,7 @@
   ~EncryptionMigrationScreen() override;
 
   // Sets the UserContext for a user whose cryptohome should be migrated.
-  void SetUserContext(const UserContext& user_context);
+  void SetUserContext(std::unique_ptr<UserContext> user_context);
 
   // Sets the migration mode.
   void SetMode(EncryptionMigrationMode mode);
@@ -137,7 +138,7 @@
 
   // The current user's UserContext, which is used to request the migration to
   // cryptohome.
-  UserContext user_context_;
+  std::unique_ptr<UserContext> user_context_;
 
   // The callback which is used to log in to the session from the migration UI.
   SkipMigrationCallback skip_migration_callback_;
diff --git a/chrome/browser/ash/login/screens/encryption_migration_screen_unittest.cc b/chrome/browser/ash/login/screens/encryption_migration_screen_unittest.cc
index 0ff7f08..88439e08 100644
--- a/chrome/browser/ash/login/screens/encryption_migration_screen_unittest.cc
+++ b/chrome/browser/ash/login/screens/encryption_migration_screen_unittest.cc
@@ -128,8 +128,9 @@
         chromeos::PowerManagerClient::Get());
 
     // Build dummy user context.
-    user_context_.SetAccountId(account_id_);
-    user_context_.SetKey(
+    auto user_context = std::make_unique<UserContext>();
+    user_context->SetAccountId(account_id_);
+    user_context->SetKey(
         Key(Key::KeyType::KEY_TYPE_SALTED_SHA256, "salt", "secret"));
 
     encryption_migration_screen_ =
@@ -139,7 +140,7 @@
                        base::Unretained(this)));
     encryption_migration_screen_->set_free_disk_space(
         arc::kMigrationMinimumAvailableStorage);
-    encryption_migration_screen_->SetUserContext(user_context_);
+    encryption_migration_screen_->SetUserContext(std::move(user_context));
   }
 
   void TearDown() override {
@@ -168,12 +169,11 @@
 
   const AccountId account_id_ =
       AccountId::FromUserEmail(user_manager::kStubUserEmail);
-  UserContext user_context_;
 
  private:
   // This will be called by EncryptionMigrationScreen upon finished
   // minimal migration when sign-in should continue.
-  void OnContinueLogin(const UserContext& user_context) {
+  void OnContinueLogin(std::unique_ptr<UserContext> user_context) {
     EXPECT_FALSE(skip_migration_callback_called_)
         << "ContinueLogin/RestartLogin may only be called once.";
 
diff --git a/chrome/browser/ash/login/screens/sync_consent_browsertest.cc b/chrome/browser/ash/login/screens/sync_consent_browsertest.cc
index 4ab6aea..a0c6009 100644
--- a/chrome/browser/ash/login/screens/sync_consent_browsertest.cc
+++ b/chrome/browser/ash/login/screens/sync_consent_browsertest.cc
@@ -431,7 +431,8 @@
 };
 
 // TODO(crbug.com/1312384): Test failed on linux-chromeos-dbg.
-#if !defined(NDEBUG)
+// TODO(crbug.com/1392782): Test failed on MSan/LSan.
+#if !defined(NDEBUG) || defined(MEMORY_SANITIZER) || defined(LEAK_SANITIZER)
 #define MAYBE_Accept DISABLED_Accept
 #else
 #define MAYBE_Accept Accept
@@ -745,7 +746,8 @@
 }
 
 // TODO(crbug.com/1312384): Test failed on linux-chromeos-dbg.
-#if !defined(NDEBUG)
+// TODO(crbug.com/1392782): Test failed on MSan/LSan.
+#if !defined(NDEBUG) || defined(MEMORY_SANITIZER) || defined(LEAK_SANITIZER)
 #define MAYBE_Decline DISABLED_Decline
 #else
 #define MAYBE_Decline Decline
diff --git a/chrome/browser/ash/login/ui/login_display_host_common.cc b/chrome/browser/ash/login/ui/login_display_host_common.cc
index fb93582..05b0f13 100644
--- a/chrome/browser/ash/login/ui/login_display_host_common.cc
+++ b/chrome/browser/ash/login/ui/login_display_host_common.cc
@@ -515,16 +515,16 @@
 }
 
 void LoginDisplayHostCommon::StartEncryptionMigration(
-    const UserContext& user_context,
+    std::unique_ptr<UserContext> user_context,
     EncryptionMigrationMode migration_mode,
-    base::OnceCallback<void(const UserContext&)> on_skip_migration) {
+    base::OnceCallback<void(std::unique_ptr<UserContext>)> on_skip_migration) {
   StartWizard(EncryptionMigrationScreenView::kScreenId);
 
   EncryptionMigrationScreen* migration_screen =
       GetWizardController()->GetScreen<EncryptionMigrationScreen>();
 
   DCHECK(migration_screen);
-  migration_screen->SetUserContext(user_context);
+  migration_screen->SetUserContext(std::move(user_context));
   migration_screen->SetMode(migration_mode);
   migration_screen->SetSkipMigrationCallback(std::move(on_skip_migration));
   migration_screen->SetupInitialView();
diff --git a/chrome/browser/ash/login/ui/login_display_host_common.h b/chrome/browser/ash/login/ui/login_display_host_common.h
index c382ba0..a731315 100644
--- a/chrome/browser/ash/login/ui/login_display_host_common.h
+++ b/chrome/browser/ash/login/ui/login_display_host_common.h
@@ -81,9 +81,10 @@
   void ShowTosForExistingUser() final;
   void ShowNewTermsForFlexUsers() final;
   void StartEncryptionMigration(
-      const UserContext& user_context,
+      std::unique_ptr<UserContext> user_context,
       EncryptionMigrationMode migration_mode,
-      base::OnceCallback<void(const UserContext&)> on_skip_migration) final;
+      base::OnceCallback<void(std::unique_ptr<UserContext>)> on_skip_migration)
+      final;
   void ShowSigninError(SigninError error, const std::string& details) final;
   void SAMLConfirmPassword(::login::StringList scraped_passwords,
                            std::unique_ptr<UserContext> user_context) final;
diff --git a/chrome/browser/ash/login/ui/login_display_host_mojo.cc b/chrome/browser/ash/login/ui/login_display_host_mojo.cc
index 0b0f614..59f86e44 100644
--- a/chrome/browser/ash/login/ui/login_display_host_mojo.cc
+++ b/chrome/browser/ash/login/ui/login_display_host_mojo.cc
@@ -654,7 +654,7 @@
 }
 
 void LoginDisplayHostMojo::OnOldEncryptionDetected(
-    const UserContext& user_context,
+    std::unique_ptr<UserContext> user_context,
     bool has_incomplete_migration) {}
 
 void LoginDisplayHostMojo::OnCurrentScreenChanged(OobeScreenId current_screen,
diff --git a/chrome/browser/ash/login/ui/login_display_host_mojo.h b/chrome/browser/ash/login/ui/login_display_host_mojo.h
index 10290f7..313742f 100644
--- a/chrome/browser/ash/login/ui/login_display_host_mojo.h
+++ b/chrome/browser/ash/login/ui/login_display_host_mojo.h
@@ -131,7 +131,7 @@
   void OnAuthFailure(const AuthFailure& error) override;
   void OnAuthSuccess(const UserContext& user_context) override;
   void OnPasswordChangeDetected(const UserContext& user_context) override;
-  void OnOldEncryptionDetected(const UserContext& user_context,
+  void OnOldEncryptionDetected(std::unique_ptr<UserContext> user_context,
                                bool has_incomplete_migration) override;
 
   // OobeUI::Observer:
diff --git a/chrome/browser/ash/login/ui/mock_signin_ui.h b/chrome/browser/ash/login/ui/mock_signin_ui.h
index 7fd558310..f2a381e 100644
--- a/chrome/browser/ash/login/ui/mock_signin_ui.h
+++ b/chrome/browser/ash/login/ui/mock_signin_ui.h
@@ -28,9 +28,9 @@
   MOCK_METHOD(void, ShowNewTermsForFlexUsers, (), (override));
   MOCK_METHOD(void,
               StartEncryptionMigration,
-              (const UserContext&,
+              (std::unique_ptr<UserContext>,
                EncryptionMigrationMode,
-               base::OnceCallback<void(const UserContext&)>),
+               base::OnceCallback<void(std::unique_ptr<UserContext>)>),
               (override));
   MOCK_METHOD(void,
               SetAuthSessionForOnboarding,
diff --git a/chrome/browser/ash/login/ui/signin_ui.h b/chrome/browser/ash/login/ui/signin_ui.h
index 2d4eeff..9d7953b 100644
--- a/chrome/browser/ash/login/ui/signin_ui.h
+++ b/chrome/browser/ash/login/ui/signin_ui.h
@@ -58,9 +58,10 @@
   virtual void ShowNewTermsForFlexUsers() = 0;
 
   virtual void StartEncryptionMigration(
-      const UserContext& user_context,
+      std::unique_ptr<UserContext> user_context,
       EncryptionMigrationMode migration_mode,
-      base::OnceCallback<void(const UserContext&)> skip_migration_callback) = 0;
+      base::OnceCallback<void(std::unique_ptr<UserContext>)>
+          skip_migration_callback) = 0;
 
   // Might store authentication data so that additional auth factors can be
   // added during user onboarding.
diff --git a/chrome/browser/ash/policy/status_collector/managed_session_service.h b/chrome/browser/ash/policy/status_collector/managed_session_service.h
index 2c4df7da..257786d4 100644
--- a/chrome/browser/ash/policy/status_collector/managed_session_service.h
+++ b/chrome/browser/ash/policy/status_collector/managed_session_service.h
@@ -115,7 +115,7 @@
 
   void OnPasswordChangeDetected(const ash::UserContext& user_context) override {
   }
-  void OnOldEncryptionDetected(const ash::UserContext& user_context,
+  void OnOldEncryptionDetected(std::unique_ptr<ash::UserContext> user_context,
                                bool has_incomplete_migration) override {}
   void OnAuthSuccess(const ash::UserContext& user_context) override {}
 
diff --git a/chrome/browser/autofill/autofill_across_iframes_browsertest.cc b/chrome/browser/autofill/autofill_across_iframes_browsertest.cc
index 4f9d0231..1204b20 100644
--- a/chrome/browser/autofill/autofill_across_iframes_browsertest.cc
+++ b/chrome/browser/autofill/autofill_across_iframes_browsertest.cc
@@ -491,10 +491,8 @@
 // This test seemed flaky in one patchset due to a DCHECK in
 // content_settings::PatternPair GetPatternsFromScopingType(), but the issue
 // didn't occur afterwards.
-//
-// TODO(crbug.com/1392914): Re-enable when the flaky DCHECK is fixed.
 IN_PROC_BROWSER_TEST_F(AutofillAcrossIframesTest_Simple,
-                       DISABLED_Sandboxed_FillOnlyNumber) {
+                       Sandboxed_FillOnlyNumber) {
   // Our test fixture needs allow-scripts to extract the field values.
   static constexpr char sandbox[] = "sandbox=allow-scripts";
   const FormStructure* form =
@@ -834,8 +832,16 @@
 
 // Tests that a deeply nested form where some iframes don't even contain any
 // fields (but their subframes do) is extracted and filled correctly.
+// TODO(crbug.com/1393990): flaky on linux-ubsan-vptr.
+#if defined(UNDEFINED_SANITIZER) && BUILDFLAG(IS_LINUX)
+#define MAYBE_FlattenFormEvenAcrossFramesWithoutFields \
+    DISABLED_FlattenFormEvenAcrossFramesWithoutFields
+#else
+#define MAYBE_FlattenFormEvenAcrossFramesWithoutFields \
+    FlattenFormEvenAcrossFramesWithoutFields
+#endif
 IN_PROC_BROWSER_TEST_F(AutofillAcrossIframesTest_NestedAndLargeForm,
-                       FlattenFormEvenAcrossFramesWithoutFields) {
+                       MAYBE_FlattenFormEvenAcrossFramesWithoutFields) {
   SetUrlContent("/", MakeCss(3) +
                          R"(<iframe src="$4/3.html"></iframe>
                             <iframe src="$3/3.html"></iframe>
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index b71d47dd..c6e96b2 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -203,6 +203,7 @@
 #include "chrome/browser/ui/page_info/chrome_page_info_client.h"
 #include "ui/base/resource/resource_bundle_android.h"
 #else
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/resource_coordinator/tab_activity_watcher.h"
 #include "chrome/browser/resource_coordinator/tab_manager.h"
 #include "chrome/browser/resources_integrity.h"
@@ -1156,9 +1157,13 @@
 
 #if !BUILDFLAG(IS_ANDROID)
   // Ephemeral profiles may have been left behind if the browser crashed.
-  g_browser_process->profile_manager()->CleanUpEphemeralProfiles();
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .CleanUpEphemeralProfiles();
   // Files of deleted profiles can also be left behind after a crash.
-  g_browser_process->profile_manager()->CleanUpDeletedProfiles();
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .CleanUpDeletedProfiles();
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_histogram_helper.h b/chrome/browser/chromeos/policy/dlp/dlp_histogram_helper.h
index a58e53b..6fad526 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_histogram_helper.h
+++ b/chrome/browser/chromeos/policy/dlp/dlp_histogram_helper.h
@@ -56,6 +56,7 @@
 constexpr char kReportedEventStatus[] = "ReportedEventStatus";
 constexpr char kConfidentialContentsCount[] = "ConfidentialContentsCount";
 constexpr char kActiveFileEventsCount[] = "ActiveFileEventsCount";
+constexpr char kErrorsReportQueueNotReady[] = "Errors.ReportQueueNotReady";
 
 }  // namespace dlp
 
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_reporting_manager.cc b/chrome/browser/chromeos/policy/dlp/dlp_reporting_manager.cc
index 6ea02a8..836bfe01 100644
--- a/chrome/browser/chromeos/policy/dlp/dlp_reporting_manager.cc
+++ b/chrome/browser/chromeos/policy/dlp/dlp_reporting_manager.cc
@@ -306,6 +306,7 @@
 void DlpReportingManager::ReportEvent(DlpPolicyEvent event) {
   // TODO(1187506, marcgrimme) Refactor to handle gracefully with user
   // interaction when queue is not ready.
+  DlpBooleanHistogram(dlp::kErrorsReportQueueNotReady, !report_queue_.get());
   if (!report_queue_.get()) {
     DLOG(WARNING) << "Report queue could not be initialized. DLP reporting "
                      "functionality will be disabled.";
diff --git a/chrome/browser/data_saver/data_saver.cc b/chrome/browser/data_saver/data_saver.cc
index 471824f0..a964f40 100644
--- a/chrome/browser/data_saver/data_saver.cc
+++ b/chrome/browser/data_saver/data_saver.cc
@@ -67,7 +67,7 @@
     return g_cached_data_saver_setting.value();
   }
 
-  // There is a cached value, updated it asynchronously and return the cached
+  // There is a cached value. Update it asynchronously and return the cached
   // value immediately.
   FetchDataSaverOSSettingAsynchronously();
   DCHECK(g_cached_data_saver_setting);
diff --git a/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc b/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
index f683a22..571678c 100644
--- a/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
+++ b/chrome/browser/extensions/api/passwords_private/password_check_delegate_unittest.cc
@@ -1148,7 +1148,8 @@
   // Use a local delegate instead of |delegate()| so that the Password Store can
   // be set-up prior to constructing the object.
   password_manager::MockAffiliationService affiliation_service;
-  SavedPasswordsPresenter new_presenter(&affiliation_service, &store());
+  SavedPasswordsPresenter new_presenter(&affiliation_service, &store(),
+                                        /*account_store=*/nullptr);
   PasswordCheckDelegate delegate = CreateDelegate(&new_presenter);
   new_presenter.Init();
   delegate.StartPasswordCheck(callback1.Get());
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 74495d8..8d29c8ef 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -4055,6 +4055,11 @@
     "expiry_milestone": 97
   },
   {
+    "name": "identity-status-consistency",
+    "owners": [ "triploblastic", "chrome-signin-team" ],
+    "expiry_milestone":120
+  },
+  {
     "name": "ignore-gpu-blocklist",
     "owners": [ "kbr", "zmo" ],
     // A debugging flag intended for end-users where there may not be any other
@@ -4168,6 +4173,11 @@
     "expiry_milestone": 112
   },
   {
+    "name": "intents-on-phone-number",
+    "owners": [ "djean@google.com", "erahmaoui@google.com", "bling-flags@google.com" ],
+    "expiry_milestone": 112
+  },
+  {
     "name": "interest-feed-notice-card-auto-dismiss",
     "owners": [ "//chrome/android/feed/OWNERS", "feed@chromium.org", "edchin@chromium.org" ],
     "expiry_milestone": 95
@@ -5527,6 +5537,11 @@
     "owners": [ "finnur" ],
     "expiry_milestone": 110
   },
+    {
+    "name": "popout-omnibox-ipad",
+    "owners": [ "stkhapugin", "christianxu", "bling-flags@google.com" ],
+    "expiry_milestone": 120
+  },
   {
     "name": "post-quantum-cecpq2",
     "owners": [ "agl" ],
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 8487e95..35cd761b 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -134,6 +134,10 @@
     "If enabled, starts fetching gaia id from android accounts in "
     "AccountManagerFacade (AMF)";
 
+const char kIdentityStatusConsistencyName[] = "Identity Status Consistency";
+const char kIdentityStatusConsistencyDescription[] =
+    "If enabled, always show identity status - even for signed-out users";
+
 const char kTangibleSyncName[] = "Tangible Sync";
 const char kTangibleSyncDescription[] =
     "Enables the tangible sync when a user starts the sync consent flow";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 3e07617..02b235d3 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -113,6 +113,9 @@
 extern const char kGaiaIdCacheInAccountManagerFacadeName[];
 extern const char kGaiaIdCacheInAccountManagerFacadeDescription[];
 
+extern const char kIdentityStatusConsistencyName[];
+extern const char kIdentityStatusConsistencyDescription[];
+
 extern const char kTangibleSyncName[];
 extern const char kTangibleSyncDescription[];
 
diff --git a/chrome/browser/lacros/account_manager/account_profile_mapper.cc b/chrome/browser/lacros/account_manager/account_profile_mapper.cc
index 217cb69a..4360c15c 100644
--- a/chrome/browser/lacros/account_manager/account_profile_mapper.cc
+++ b/chrome/browser/lacros/account_manager/account_profile_mapper.cc
@@ -19,6 +19,7 @@
 #include "base/ranges/algorithm.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/lacros/account_manager/add_account_helper.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
@@ -510,9 +511,11 @@
       // profile.
       // TODO(https://crbug.com/1257610): ensure that the user cannot cancel the
       // profile deletion.
-      g_browser_process->profile_manager()->MaybeScheduleProfileForDeletion(
-          entry->GetPath(), base::DoNothing(),
-          ProfileMetrics::DELETE_PROFILE_PRIMARY_ACCOUNT_REMOVED_LACROS);
+      g_browser_process->profile_manager()
+          ->GetDeleteProfileHelper()
+          .MaybeScheduleProfileForDeletion(
+              entry->GetPath(), base::DoNothing(),
+              ProfileMetrics::DELETE_PROFILE_PRIMARY_ACCOUNT_REMOVED_LACROS);
     }
   }
   return removed_ids;
diff --git a/chrome/browser/lifetime/browser_shutdown.cc b/chrome/browser/lifetime/browser_shutdown.cc
index 17d63fc..e09b41d6 100644
--- a/chrome/browser/lifetime/browser_shutdown.cc
+++ b/chrome/browser/lifetime/browser_shutdown.cc
@@ -30,7 +30,7 @@
 #include "chrome/browser/buildflags.h"
 #include "chrome/browser/lifetime/application_lifetime_chromeos.h"
 #include "chrome/browser/lifetime/switch_utils.h"
-#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
@@ -289,7 +289,7 @@
 
   // crbug.com/95079 - This needs to happen after the browser process object
   // goes away.
-  ProfileManager::NukeDeletedProfilesFromDisk();
+  NukeDeletedProfilesFromDisk();
 
 #if BUILDFLAG(IS_CHROMEOS_ASH)
   ash::BootTimesRecorder::Get()->AddLogoutTimeMarker("BrowserDeleted", true);
diff --git a/chrome/browser/page_load_metrics/observers/formfill_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/formfill_page_load_metrics_observer.cc
index a250f4b..188be88 100644
--- a/chrome/browser/page_load_metrics/observers/formfill_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/formfill_page_load_metrics_observer.cc
@@ -87,10 +87,9 @@
           GetDelegate().GetWebContents()->GetBrowserContext()));
   DCHECK(settings_map);
 
-  const url::Origin& origin = rfh->GetLastCommittedOrigin();
+  const GURL& url = rfh->GetLastCommittedURL();
   base::Value formfill_metadata = settings_map->GetWebsiteSetting(
-      origin.GetURL(), origin.GetURL(), ContentSettingsType::FORMFILL_METADATA,
-      nullptr);
+      url, url, ContentSettingsType::FORMFILL_METADATA, nullptr);
 
   if (!formfill_metadata.is_dict()) {
     formfill_metadata = base::Value(base::Value::Type::DICTIONARY);
@@ -100,8 +99,8 @@
     formfill_metadata.SetBoolKey(kUserDataFieldFilledKey, true);
 
     settings_map->SetWebsiteSettingDefaultScope(
-        origin.GetURL(), origin.GetURL(),
-        ContentSettingsType::FORMFILL_METADATA, std::move(formfill_metadata));
+        url, url, ContentSettingsType::FORMFILL_METADATA,
+        std::move(formfill_metadata));
   }
 }
 
@@ -114,12 +113,11 @@
           GetDelegate().GetWebContents()->GetBrowserContext()));
   DCHECK(settings_map);
 
-  const url::Origin& origin =
-      navigation_handle->GetRenderFrameHost()->GetLastCommittedOrigin();
+  const GURL& url =
+      navigation_handle->GetRenderFrameHost()->GetLastCommittedURL();
 
   base::Value formfill_metadata = settings_map->GetWebsiteSetting(
-      origin.GetURL(), origin.GetURL(), ContentSettingsType::FORMFILL_METADATA,
-      nullptr);
+      url, url, ContentSettingsType::FORMFILL_METADATA, nullptr);
 
   // User data field was detected on this site before.
   if (formfill_metadata.is_dict() &&
diff --git a/chrome/browser/password_manager/android/credential_leak_controller_android.cc b/chrome/browser/password_manager/android/credential_leak_controller_android.cc
index bcb1e104..f5c9258b 100644
--- a/chrome/browser/password_manager/android/credential_leak_controller_android.cc
+++ b/chrome/browser/password_manager/android/credential_leak_controller_android.cc
@@ -9,7 +9,6 @@
 #include "base/android/jni_android.h"
 #include "base/android/jni_string.h"
 #include "base/strings/utf_string_conversions.h"
-#include "chrome/android/chrome_jni_headers/PasswordChangeLauncher_jni.h"
 #include "chrome/browser/password_manager/android/password_checkup_launcher_helper.h"
 #include "chrome/browser/ui/android/passwords/credential_leak_dialog_view_android.h"
 #include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
@@ -54,6 +53,7 @@
 
 void CredentialLeakControllerAndroid::OnAcceptDialog() {
   LeakDialogType dialog_type = password_manager::GetLeakDialogType(leak_type_);
+  DCHECK(dialog_type != LeakDialogType::kChangeAutomatically);
   LeakDialogDismissalReason dismissal_reason =
       LeakDialogDismissalReason::kClickedOk;
   switch (dialog_type) {
@@ -65,16 +65,6 @@
       dismissal_reason = LeakDialogDismissalReason::kClickedCheckPasswords;
       break;
     case LeakDialogType::kChangeAutomatically:
-      dismissal_reason =
-          LeakDialogDismissalReason::kClickedChangePasswordAutomatically;
-      // Register that an automated password change flow was started.
-      // |password_change_success_tracker_| might be null in tests.
-      if (password_change_success_tracker_) {
-        password_change_success_tracker_->OnChangePasswordFlowStarted(
-            origin_, base::UTF16ToUTF8(username_),
-            PasswordChangeSuccessTracker::StartEvent::kAutomatedFlow,
-            PasswordChangeSuccessTracker::EntryPoint::kLeakWarningDialog);
-      }
       break;
   }
 
@@ -90,6 +80,7 @@
 
   switch (dialog_type) {
     case LeakDialogType::kChange:
+    case LeakDialogType::kChangeAutomatically:
       // No-op.
       break;
     case LeakDialogType::kCheckup:
@@ -98,13 +89,6 @@
           env, window_android_->GetJavaObject(),
           PasswordCheckReferrerAndroid::kLeakDialog);
       break;
-    case LeakDialogType::kChangeAutomatically:
-      Java_PasswordChangeLauncher_start(
-          env, window_android_->GetJavaObject(),
-          url::GURLAndroid::FromNativeGURL(env, origin_),
-          base::android::ConvertUTF16ToJavaString(env, username_),
-          /*skip_login=*/true);
-      break;
   }
 
   delete this;
diff --git a/chrome/browser/password_manager/android/credential_leak_controller_android.h b/chrome/browser/password_manager/android/credential_leak_controller_android.h
index 297e49e..60895c1 100644
--- a/chrome/browser/password_manager/android/credential_leak_controller_android.h
+++ b/chrome/browser/password_manager/android/credential_leak_controller_android.h
@@ -23,6 +23,8 @@
 // detected. It is self-owned and it owns the dialog view.
 class CredentialLeakControllerAndroid {
  public:
+  // TODO(crbug.com/1386065): Remove |password_change_success_tracker| as part
+  // of APC clean up.
   CredentialLeakControllerAndroid(
       password_manager::CredentialLeakType leak_type,
       const GURL& origin,
diff --git a/chrome/browser/payments/BUILD.gn b/chrome/browser/payments/BUILD.gn
index 1a80866..3593f42 100644
--- a/chrome/browser/payments/BUILD.gn
+++ b/chrome/browser/payments/BUILD.gn
@@ -65,6 +65,7 @@
 
   if (!is_android) {
     sources += [
+      "capability_delegation_browsertest.cc",
       "manifest_verifier_browsertest.cc",
       "payment_manifest_parser_browsertest.cc",
       "secure_payment_confirmation_authenticator_browsertest.cc",
diff --git a/chrome/browser/capability_delegation_browsertest.cc b/chrome/browser/payments/capability_delegation_browsertest.cc
similarity index 97%
rename from chrome/browser/capability_delegation_browsertest.cc
rename to chrome/browser/payments/capability_delegation_browsertest.cc
index fa0f363..6bd8736 100644
--- a/chrome/browser/capability_delegation_browsertest.cc
+++ b/chrome/browser/payments/capability_delegation_browsertest.cc
@@ -42,7 +42,7 @@
   // Install a payment app that responds to the abortpayment event, which is
   // used by this test to determine that the app was successfully run.
   std::string payment_method;
-  InstallPaymentApp("a.com", "abort_responder_app.js", &payment_method);
+  InstallPaymentApp("a.com", "/abort_responder_app.js", &payment_method);
 
   // Navigate the top frame.
   GURL main_url(
@@ -122,7 +122,7 @@
   // Install a payment app that responds to the abortpayment event, which is
   // used by this test to determine that the app was successfully run.
   std::string payment_method;
-  InstallPaymentApp("a.com", "abort_responder_app.js", &payment_method);
+  InstallPaymentApp("a.com", "/abort_responder_app.js", &payment_method);
 
   // Navigate the top frame.
   GURL main_url(
diff --git a/chrome/browser/payments/payment_request_can_make_payment_browsertest.cc b/chrome/browser/payments/payment_request_can_make_payment_browsertest.cc
index 84e885b..747554a9c 100644
--- a/chrome/browser/payments/payment_request_can_make_payment_browsertest.cc
+++ b/chrome/browser/payments/payment_request_can_make_payment_browsertest.cc
@@ -37,7 +37,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestCanMakePaymentQueryTest,
                        AppRespondsFalseToCanMakePaymentEvent) {
   std::string method;
-  InstallPaymentApp("a.com", "can_make_payment_false_responder.js", &method);
+  InstallPaymentApp("a.com", "/can_make_payment_false_responder.js", &method);
 
   NavigateTo("b.com", "/payment_request_can_make_payment_query_test.html");
 
@@ -51,7 +51,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestCanMakePaymentQueryTest,
                        AppRespondsTrueToCanMakePaymentEvent) {
   std::string method;
-  InstallPaymentApp("a.com", "can_make_payment_true_responder.js", &method);
+  InstallPaymentApp("a.com", "/can_make_payment_true_responder.js", &method);
 
   NavigateTo("b.com", "/payment_request_can_make_payment_query_test.html");
 
@@ -66,7 +66,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestCanMakePaymentQueryTest,
                        IncognitoModeWithInstalledPaymentHandler) {
   std::string method;
-  InstallPaymentApp("a.com", "can_make_payment_true_responder.js", &method);
+  InstallPaymentApp("a.com", "/can_make_payment_true_responder.js", &method);
 
   NavigateTo("b.com", "/payment_request_can_make_payment_query_test.html");
   test_controller()->SetOffTheRecord(true);
@@ -111,7 +111,7 @@
   test_controller()->SetCanMakePaymentEnabledPref(false);
 
   std::string method;
-  InstallPaymentApp("a.com", "can_make_payment_true_responder.js", &method);
+  InstallPaymentApp("a.com", "/can_make_payment_true_responder.js", &method);
 
   NavigateTo("b.com", "/payment_request_can_make_payment_query_test.html");
 
@@ -124,7 +124,7 @@
 // show().
 IN_PROC_BROWSER_TEST_F(PaymentRequestCanMakePaymentQueryTest, InvalidSSL) {
   std::string method;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js", &method);
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js", &method);
 
   NavigateTo("b.com", "/payment_request_can_make_payment_query_test.html");
   test_controller()->SetValidSsl(false);
diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
index add36f4..54a9ced3 100644
--- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
+++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
@@ -44,10 +44,6 @@
     ChromeCommandLinePrefStore::string_switch_map_[] = {
         {switches::kLang, language::prefs::kApplicationLocale},
         {switches::kAcceptLang, language::prefs::kSelectedLanguages},
-        // `switches::kAuthServerAllowlistDeprecated` must be before
-        // `switches::kAuthServerAllowlist` so that the deprecated value is
-        // overridden in `ChromeCommandLinePrefStore::ApplyStringSwitches`.
-        {switches::kAuthServerAllowlistDeprecated, prefs::kAuthServerAllowlist},
         {switches::kAuthServerAllowlist, prefs::kAuthServerAllowlist},
         {switches::kSSLVersionMin, prefs::kSSLVersionMin},
         {switches::kSSLVersionMax, prefs::kSSLVersionMax},
diff --git a/chrome/browser/profiles/delete_profile_helper.cc b/chrome/browser/profiles/delete_profile_helper.cc
new file mode 100644
index 0000000..ef3047b
--- /dev/null
+++ b/chrome/browser/profiles/delete_profile_helper.cc
@@ -0,0 +1,388 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/profiles/delete_profile_helper.h"
+
+#include "base/bind.h"
+#include "base/feature_list.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/functional/callback.h"
+#include "base/json/values_util.h"
+#include "base/logging.h"
+#include "base/task/thread_pool.h"
+#include "chrome/browser/browser_features.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/download/download_core_service.h"
+#include "chrome/browser/download/download_core_service_factory.h"
+#include "chrome/browser/password_manager/password_store_factory.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
+#include "chrome/browser/profiles/profile_attributes_entry.h"
+#include "chrome/browser/profiles/profile_attributes_storage.h"
+#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profiles_state.h"
+#include "chrome/browser/sync/sync_service_factory.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_finder.h"
+#include "chrome/browser/ui/browser_list.h"
+#include "chrome/common/pref_names.h"
+#include "components/keep_alive_registry/keep_alive_types.h"
+#include "components/keep_alive_registry/scoped_keep_alive.h"
+#include "components/password_manager/core/browser/password_store_interface.h"
+#include "components/prefs/scoped_user_pref_update.h"
+#include "components/sync/driver/sync_service.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
+
+namespace {
+
+// Called after a deleted profile was checked and cleaned up.
+void ProfileCleanedUp(base::Value profile_path_value) {
+  ScopedListPrefUpdate deleted_profiles(g_browser_process->local_state(),
+                                        prefs::kProfilesDeleted);
+  deleted_profiles->EraseValue(profile_path_value);
+}
+
+// Helper function that deletes entries from the kProfilesLastActive pref list.
+// It is called when every ephemeral profile is handled.
+void RemoveFromLastActiveProfilesPrefList(const base::FilePath& path) {
+  PrefService* local_state = g_browser_process->local_state();
+  DCHECK(local_state);
+  ScopedListPrefUpdate update(local_state, prefs::kProfilesLastActive);
+  base::Value::List& profile_list = update.Get();
+  base::Value entry_value = base::Value(path.BaseName().AsUTF8Unsafe());
+  profile_list.EraseValue(entry_value);
+}
+
+bool IsRegisteredAsEphemeral(ProfileAttributesStorage* storage,
+                             const base::FilePath& profile_dir) {
+  ProfileAttributesEntry* entry =
+      storage->GetProfileAttributesWithPath(profile_dir);
+  return entry && entry->IsEphemeral();
+}
+
+}  // namespace
+
+DeleteProfileHelper::DeleteProfileHelper(ProfileManager& profile_manager)
+    : profile_manager_(profile_manager) {}
+
+DeleteProfileHelper::~DeleteProfileHelper() = default;
+
+void DeleteProfileHelper::MaybeScheduleProfileForDeletion(
+    const base::FilePath& profile_dir,
+    ProfileLoadedCallback callback,
+    ProfileMetrics::ProfileDelete deletion_source) {
+  if (!ScheduleProfileDirectoryForDeletion(profile_dir))
+    return;
+
+  ProfileAttributesStorage& storage =
+      profile_manager_->GetProfileAttributesStorage();
+  ProfileAttributesEntry* entry =
+      storage.GetProfileAttributesWithPath(profile_dir);
+  if (entry) {
+    storage.RecordDeletedProfileState(entry);
+  }
+  ProfileMetrics::LogProfileDeleteUser(deletion_source);
+
+  DCHECK(profiles::IsMultipleProfilesEnabled());
+  DCHECK(!IsProfileDirectoryMarkedForDeletion(profile_dir));
+
+  Profile* profile = profile_manager_->GetProfileByPath(profile_dir);
+  if (profile) {
+#if BUILDFLAG(IS_CHROMEOS_LACROS)
+    CHECK(!profile->IsMainProfile());
+#endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
+    // Cancel all in-progress downloads before deleting the profile to prevent a
+    // "Do you want to exit Google Chrome and cancel the downloads?" prompt
+    // (crbug.com/336725).
+    DownloadCoreService* service =
+        DownloadCoreServiceFactory::GetForBrowserContext(profile);
+    service->CancelDownloads();
+    DCHECK_EQ(0, service->NonMaliciousDownloadCount());
+
+    // Close all browser windows before deleting the profile. If the user
+    // cancels the closing of any tab in an OnBeforeUnload event, profile
+    // deletion is also cancelled. (crbug.com/289390)
+    BrowserList::CloseAllBrowsersWithProfile(
+        profile,
+        base::BindRepeating(
+            &DeleteProfileHelper::EnsureActiveProfileExistsBeforeDeletion,
+            base::Unretained(this), base::Passed(std::move(callback))),
+        base::BindRepeating(&CancelProfileDeletion), false);
+  } else {
+    EnsureActiveProfileExistsBeforeDeletion(std::move(callback), profile_dir);
+  }
+}
+
+void DeleteProfileHelper::ScheduleEphemeralProfileForDeletion(
+    const base::FilePath& profile_dir) {
+  DCHECK(IsRegisteredAsEphemeral(
+      &profile_manager_->GetProfileAttributesStorage(), profile_dir));
+  DCHECK_EQ(0u, chrome::GetBrowserCount(
+                    profile_manager_->GetProfileByPath(profile_dir)));
+  absl::optional<base::FilePath> new_active_profile_dir =
+      profile_manager_->FindLastActiveProfile(base::BindRepeating(
+          [](const base::FilePath& profile_dir, ProfileAttributesEntry* entry) {
+            return entry->GetPath() != profile_dir;
+          },
+          profile_dir));
+  if (!new_active_profile_dir.has_value())
+    new_active_profile_dir =
+        profile_manager_->GenerateNextProfileDirectoryPath();
+  DCHECK(!new_active_profile_dir->empty());
+  RemoveFromLastActiveProfilesPrefList(profile_dir);
+
+  FinishDeletingProfile(profile_dir, new_active_profile_dir.value());
+}
+
+void DeleteProfileHelper::CleanUpEphemeralProfiles() {
+  base::FilePath last_used_profile_base_name =
+      profile_manager_->GetLastUsedProfileBaseName();
+  bool last_active_profile_deleted = false;
+  base::FilePath new_profile_path;
+  std::vector<base::FilePath> profiles_to_delete;
+  ProfileAttributesStorage& storage =
+      profile_manager_->GetProfileAttributesStorage();
+  std::vector<ProfileAttributesEntry*> entries =
+      storage.GetAllProfilesAttributes();
+  for (ProfileAttributesEntry* entry : entries) {
+    base::FilePath profile_path = entry->GetPath();
+    if (entry->IsEphemeral()) {
+      profiles_to_delete.push_back(profile_path);
+      RemoveFromLastActiveProfilesPrefList(profile_path);
+      if (profile_path.BaseName() == last_used_profile_base_name)
+        last_active_profile_deleted = true;
+    } else if (new_profile_path.empty()) {
+      new_profile_path = profile_path;
+    }
+  }
+
+  // If the last active profile was ephemeral or all profiles are deleted due to
+  // ephemeral, set a new one.
+  if (last_active_profile_deleted ||
+      (entries.size() == profiles_to_delete.size() &&
+       !profiles_to_delete.empty())) {
+    if (new_profile_path.empty())
+      new_profile_path = profile_manager_->GenerateNextProfileDirectoryPath();
+
+    profiles::SetLastUsedProfile(new_profile_path.BaseName());
+  }
+
+  for (const base::FilePath& profile_path : profiles_to_delete) {
+    base::ThreadPool::PostTask(
+        FROM_HERE,
+        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+        base::BindOnce(&NukeProfileFromDisk, profile_path,
+                       base::OnceClosure()));
+
+    storage.RemoveProfile(profile_path);
+  }
+}
+
+void DeleteProfileHelper::CleanUpDeletedProfiles() {
+  PrefService* local_state = g_browser_process->local_state();
+  DCHECK(local_state);
+  const base::Value::List& deleted_profiles =
+      local_state->GetList(prefs::kProfilesDeleted);
+
+  for (const base::Value& value : deleted_profiles) {
+    absl::optional<base::FilePath> profile_path = base::ValueToFilePath(value);
+    // Although it should never happen, make sure this is a valid path in the
+    // user_data_dir, so we don't accidentally delete something else.
+    if (profile_path && profile_manager_->IsAllowedProfilePath(*profile_path)) {
+      if (base::PathExists(*profile_path)) {
+        LOG(WARNING) << "Files of a deleted profile still exist after restart. "
+                        "Cleaning up now.";
+        base::ThreadPool::PostTask(
+            FROM_HERE,
+            {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+             base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+            base::BindOnce(&NukeProfileFromDisk, *profile_path,
+                           base::BindOnce(&ProfileCleanedUp, value.Clone())));
+      } else {
+        // Everything is fine, the profile was removed on shutdown.
+        content::GetUIThreadTaskRunner({})->PostTask(
+            FROM_HERE, base::BindOnce(&ProfileCleanedUp, value.Clone()));
+      }
+    } else {
+      LOG(ERROR) << "Found invalid profile path in deleted_profiles: "
+                 << profile_path->AsUTF8Unsafe();
+      NOTREACHED();
+    }
+  }
+}
+
+void DeleteProfileHelper::EnsureActiveProfileExistsBeforeDeletion(
+    ProfileLoadedCallback callback,
+    const base::FilePath& profile_dir) {
+  // In case we delete non-active profile and current profile is valid, proceed.
+  const base::FilePath last_used_profile_path =
+      profile_manager_->GetLastUsedProfileDir();
+  const base::FilePath guest_profile_path =
+      profile_manager_->GetGuestProfilePath();
+  Profile* last_used_profile =
+      profile_manager_->GetProfileByPath(last_used_profile_path);
+  if (last_used_profile_path != profile_dir &&
+      last_used_profile_path != guest_profile_path && last_used_profile) {
+    FinishDeletingProfile(profile_dir, last_used_profile_path);
+    return;
+  }
+
+  // Search for an active browser and use its profile as active if possible.
+  for (Browser* browser : *BrowserList::GetInstance()) {
+    Profile* profile = browser->profile();
+    base::FilePath cur_path = profile->GetPath();
+    if (cur_path != profile_dir && cur_path != guest_profile_path &&
+        !IsProfileDirectoryMarkedForDeletion(cur_path)) {
+      OnNewActiveProfileInitialized(profile_dir, cur_path, std::move(callback),
+                                    nullptr, profile);
+      return;
+    }
+  }
+
+  // There no valid browsers to fallback, search for any existing valid profile.
+  ProfileAttributesStorage& storage =
+      profile_manager_->GetProfileAttributesStorage();
+  base::FilePath fallback_profile_path;
+  std::vector<ProfileAttributesEntry*> entries =
+      storage.GetAllProfilesAttributes();
+  for (ProfileAttributesEntry* entry : entries) {
+    base::FilePath cur_path = entry->GetPath();
+    // Make sure that this profile is not pending deletion.
+    if (cur_path != profile_dir && cur_path != guest_profile_path &&
+        !IsProfileDirectoryMarkedForDeletion(cur_path)) {
+      fallback_profile_path = cur_path;
+      break;
+    }
+  }
+
+  // If we're deleting the last profile, then create a new profile in its place.
+  // Load existing profile otherwise.
+  if (fallback_profile_path.empty()) {
+    fallback_profile_path =
+        profile_manager_->GenerateNextProfileDirectoryPath();
+    // A new profile about to be created.
+    ProfileMetrics::LogProfileAddNewUser(
+        ProfileMetrics::ADD_NEW_USER_LAST_DELETED);
+  }
+
+  // When this is called all browser windows may be about to be destroyed
+  // (but still exist in BrowserList), which means shutdown may be about to
+  // start. Use a KeepAlive to ensure shutdown doesn't start.
+  std::unique_ptr<ScopedKeepAlive> keep_alive =
+      std::make_unique<ScopedKeepAlive>(KeepAliveOrigin::PROFILE_MANAGER,
+                                        KeepAliveRestartOption::DISABLED);
+  // Create and/or load fallback profile.
+  profile_manager_->CreateProfileAsync(
+      fallback_profile_path,
+      base::BindOnce(&DeleteProfileHelper::OnNewActiveProfileInitialized,
+                     base::Unretained(this), profile_dir, fallback_profile_path,
+                     std::move(callback), std::move(keep_alive)));
+}
+
+void DeleteProfileHelper::FinishDeletingProfile(
+    const base::FilePath& profile_dir,
+    const base::FilePath& new_active_profile_dir) {
+  // Update the last used profile pref before closing browser windows. This
+  // way the correct last used profile is set for any notification observers.
+  profiles::SetLastUsedProfile(new_active_profile_dir.BaseName());
+
+  // Attempt to load the profile before deleting it to properly clean up
+  // profile-specific data stored outside the profile directory.
+  profile_manager_->LoadProfileByPath(
+      profile_dir, false,
+      base::BindOnce(&DeleteProfileHelper::OnLoadProfileForProfileDeletion,
+                     base::Unretained(this), profile_dir));
+  if (!IsProfileDirectoryMarkedForDeletion(profile_dir)) {
+    // Prevents CreateProfileAsync from re-creating the profile.
+    MarkProfileDirectoryForDeletion(profile_dir);
+  }
+}
+
+void DeleteProfileHelper::OnLoadProfileForProfileDeletion(
+    const base::FilePath& profile_dir,
+    Profile* profile) {
+  ProfileAttributesStorage& storage =
+      profile_manager_->GetProfileAttributesStorage();
+
+  if (!IsProfileDirectoryMarkedForDeletion(profile_dir)) {
+    // Ensure RemoveProfile() knows to nuke the profile directory after it's
+    // done.
+    MarkProfileDirectoryForDeletion(profile_dir);
+  }
+
+  if (profile) {
+    // TODO(estade): Migrate additional code in this block to observe
+    // ProfileManager instead of handling shutdown here.
+    profile_manager_->NotifyOnProfileMarkedForPermanentDeletion(profile);
+
+    // Disable sync for doomed profile.
+    if (SyncServiceFactory::HasSyncService(profile)) {
+      syncer::SyncService* sync_service =
+          SyncServiceFactory::GetForProfile(profile);
+      // Ensure data is cleared even if sync was already off.
+      sync_service->StopAndClear();
+    }
+
+    // Some platforms store passwords in keychains. They should be removed.
+    scoped_refptr<password_manager::PasswordStoreInterface> password_store =
+        PasswordStoreFactory::GetForProfile(profile,
+                                            ServiceAccessType::EXPLICIT_ACCESS)
+            .get();
+    if (password_store.get()) {
+      password_store->RemoveLoginsCreatedBetween(base::Time(),
+                                                 base::Time::Max());
+    }
+
+    // The Profile Data doesn't get wiped until Chrome closes. Since we promised
+    // that the user's data would be removed, do so immediately.
+    //
+    // With DestroyProfileOnBrowserClose, this adds a KeepAlive. So the Profile*
+    // only gets deleted *after* browsing data is removed. This also clears some
+    // keepalives in the process, e.g. due to background extensions getting
+    // uninstalled.
+    profiles::RemoveBrowsingDataForProfile(profile_dir);
+
+    // Clean-up pref data that won't be cleaned up by deleting the profile dir.
+    profile->GetPrefs()->OnStoreDeletionFromDisk();
+
+  } else {
+    // We failed to load the profile, but it's safe to delete a not yet loaded
+    // Profile from disk.
+    base::ThreadPool::PostTask(
+        FROM_HERE,
+        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+        base::BindOnce(&NukeProfileFromDisk, profile_dir, base::OnceClosure()));
+  }
+
+  storage.RemoveProfile(profile_dir);
+
+  if (profile &&
+      base::FeatureList::IsEnabled(features::kDestroyProfileOnBrowserClose)) {
+    // Allow the Profile* to be deleted, even if it had no browser windows.
+    profile_manager_->ClearFirstBrowserWindowKeepAlive(profile);
+  }
+}
+
+void DeleteProfileHelper::OnNewActiveProfileInitialized(
+    const base::FilePath& profile_to_delete_path,
+    const base::FilePath& new_active_profile_path,
+    ProfileLoadedCallback callback,
+    std::unique_ptr<ScopedKeepAlive> keep_alive,
+    Profile* loaded_profile) {
+  DCHECK(loaded_profile);
+  if (IsProfileDirectoryMarkedForDeletion(new_active_profile_path)) {
+    // If the profile we tried to load as the next active profile has been
+    // deleted, then retry deleting this profile to redo the logic to load
+    // the next available profile.
+    EnsureActiveProfileExistsBeforeDeletion(std::move(callback),
+                                            profile_to_delete_path);
+    return;
+  }
+
+  FinishDeletingProfile(profile_to_delete_path, new_active_profile_path);
+  std::move(callback).Run(loaded_profile);
+}
diff --git a/chrome/browser/profiles/delete_profile_helper.h b/chrome/browser/profiles/delete_profile_helper.h
new file mode 100644
index 0000000..e7d097bd
--- /dev/null
+++ b/chrome/browser/profiles/delete_profile_helper.h
@@ -0,0 +1,93 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PROFILES_DELETE_PROFILE_HELPER_H_
+#define CHROME_BROWSER_PROFILES_DELETE_PROFILE_HELPER_H_
+
+#include "base/functional/callback_forward.h"
+#include "base/memory/raw_ref.h"
+#include "chrome/browser/profiles/profile_metrics.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+
+namespace base {
+class FilePath;
+}
+
+class Profile;
+class ProfileManager;
+class ScopedKeepAlive;
+
+// This class offers a few helper functions for profile deletion. Note that the
+// `DeleteProfileHelper` does not delete actual C++ Profile objects, as this is
+// done through the `ScopedProfileKeepAlive` mechanism and
+// `ProfileManager::RemoveProfile()`.
+// The `DeleteProfileHelper` is responsible for:
+// - deleting the profile as a user-visible concept: removes it from the
+//   `ProfileAttributesStorage` and deletes the user data on disk.
+// - creates or loads another profile before the last profile is deleted.
+class DeleteProfileHelper {
+ public:
+  using ProfileLoadedCallback = base::OnceCallback<void(Profile*)>;
+
+  explicit DeleteProfileHelper(ProfileManager& profile_manager);
+
+  ~DeleteProfileHelper();
+
+  DeleteProfileHelper(const DeleteProfileHelper&) = delete;
+  DeleteProfileHelper& operator=(const DeleteProfileHelper&) = delete;
+
+  // Schedules the profile at the given path to be deleted on shutdown. If we're
+  // deleting the last profile, a new one will be created in its place, and in
+  // that case the callback will be called when profile creation is complete.
+  // Silently exits if profile is either scheduling or marked for deletion.
+  void MaybeScheduleProfileForDeletion(
+      const base::FilePath& profile_dir,
+      ProfileLoadedCallback callback,
+      ProfileMetrics::ProfileDelete deletion_source);
+
+  // Schedules the ephemeral profile at the given path to be deleted on
+  // shutdown. New profiles will not be created.
+  void ScheduleEphemeralProfileForDeletion(const base::FilePath& profile_dir);
+
+  // Checks if any ephemeral profiles are left behind (e.g. because of a browser
+  // crash) and schedule them for deletion.
+  void CleanUpEphemeralProfiles();
+
+  // Checks if files of deleted profiles are left behind (e.g. because of a
+  // browser crash) and delete them in case they still exist.
+  void CleanUpDeletedProfiles();
+
+ private:
+  // Continues the scheduled profile deletion after closing all the profile's
+  // browsers tabs. Creates a new profile if the profile to be deleted is the
+  // last non-supervised profile. In the Mac, loads the next non-supervised
+  // profile if the profile to be deleted is the active profile.
+  void EnsureActiveProfileExistsBeforeDeletion(
+      ProfileLoadedCallback callback,
+      const base::FilePath& profile_dir);
+
+  // Schedules the profile at the given path to be deleted on shutdown,
+  // and marks the new profile as active.
+  void FinishDeletingProfile(const base::FilePath& profile_dir,
+                             const base::FilePath& new_active_profile_dir);
+  void OnLoadProfileForProfileDeletion(const base::FilePath& profile_dir,
+                                       Profile* profile);
+
+  // If the `loaded_profile` has been loaded successfully and isn't already
+  // scheduled for deletion, then finishes adding `profile_to_delete_dir` to the
+  // queue of profiles to be deleted, and updates the kProfileLastUsed
+  // preference based on `last_non_supervised_profile_path`. `keep_alive` may be
+  // null and is used to ensure shutdown does not start.
+  void OnNewActiveProfileInitialized(
+      const base::FilePath& profile_to_delete_path,
+      const base::FilePath& last_non_supervised_profile_path,
+      ProfileLoadedCallback callback,
+      std::unique_ptr<ScopedKeepAlive> keep_alive,
+      Profile* loaded_profile);
+
+  const raw_ref<ProfileManager>
+      profile_manager_;  // Owns the `DeleteProfileHelper`.
+};
+
+#endif  // CHROME_BROWSER_PROFILES_DELETE_PROFILE_HELPER_H_
diff --git a/chrome/browser/profiles/nuke_profile_directory_utils.cc b/chrome/browser/profiles/nuke_profile_directory_utils.cc
new file mode 100644
index 0000000..7f947f3
--- /dev/null
+++ b/chrome/browser/profiles/nuke_profile_directory_utils.cc
@@ -0,0 +1,163 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
+
+#include <map>
+
+#include "base/check_op.h"
+#include "base/containers/contains.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/json/values_util.h"
+#include "base/metrics/histogram_functions.h"
+#include "base/no_destructor.h"
+#include "base/task/thread_pool.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/profile_metrics.h"
+#include "chrome/common/chrome_paths_internal.h"
+#include "chrome/common/pref_names.h"
+#include "components/prefs/scoped_user_pref_update.h"
+#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
+
+namespace {
+
+// Used in metrics for NukeProfileFromDisk(). Keep in sync with enums.xml.
+//
+// Entries should not be renumbered and numeric values should never be reused.
+//
+// Note: there are maximum 3 attempts to nuke a profile.
+enum class NukeProfileResult {
+  // Success values. Make sure they are consecutive.
+  kSuccessFirstAttempt = 0,
+  kSuccessSecondAttempt = 1,
+  kSuccessThirdAttempt = 2,
+
+  // Failure values. Make sure they are consecutive.
+  kFailureFirstAttempt = 10,
+  kFailureSecondAttempt = 11,
+  kFailureThirdAttempt = 12,
+  kMaxValue = kFailureThirdAttempt,
+};
+
+const size_t kNukeProfileMaxRetryCount = 3;
+
+// Profile deletion can pass through two stages:
+enum class ProfileDeletionStage {
+  // At SCHEDULING stage some actions are made before profile deletion,
+  // where one of them is the closure of browser windows. Deletion is cancelled
+  // if the user choose explicitly not to close any of the tabs.
+  SCHEDULING,
+  // At MARKED stage profile can be safely removed from disk.
+  MARKED
+};
+
+using ProfileDeletionMap = std::map<base::FilePath, ProfileDeletionStage>;
+ProfileDeletionMap& ProfilesToDelete() {
+  static base::NoDestructor<ProfileDeletionMap> profiles_to_delete;
+  return *profiles_to_delete;
+}
+
+NukeProfileResult GetNukeProfileResult(size_t retry_count, bool success) {
+  DCHECK_LT(retry_count, kNukeProfileMaxRetryCount);
+  const size_t value =
+      retry_count +
+      static_cast<size_t>(success ? NukeProfileResult::kSuccessFirstAttempt
+                                  : NukeProfileResult::kFailureFirstAttempt);
+  DCHECK_LE(value, static_cast<size_t>(NukeProfileResult::kMaxValue));
+  return static_cast<NukeProfileResult>(value);
+}
+
+// Implementation of NukeProfileFromDisk(), retrying at most |max_retry_count|
+// times on failure. |retry_count| (initially 0) keeps track of the
+// number of attempts so far.
+void NukeProfileFromDiskImpl(const base::FilePath& profile_path,
+                             size_t retry_count,
+                             size_t max_retry_count,
+                             base::OnceClosure done_callback) {
+  // TODO(crbug.com/1191455): Make FileSystemProxy/FileSystemImpl expose its
+  // LockTable, and/or fire events when locks are released. That way we could
+  // wait for all the locks in |profile_path| to be released, rather than having
+  // this retry logic.
+  const base::TimeDelta kRetryDelay = base::Seconds(1);
+
+  // Delete both the profile directory and its corresponding cache.
+  base::FilePath cache_path;
+  chrome::GetUserCacheDirectory(profile_path, &cache_path);
+
+  bool success = base::DeletePathRecursively(profile_path);
+  success = base::DeletePathRecursively(cache_path) && success;
+
+  base::UmaHistogramEnumeration("Profile.NukeFromDisk.Result",
+                                GetNukeProfileResult(retry_count, success));
+
+  if (!success && retry_count < max_retry_count - 1) {
+    // Failed, try again in |kRetryDelay| seconds.
+    base::ThreadPool::PostDelayedTask(
+        FROM_HERE,
+        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
+         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+        base::BindOnce(&NukeProfileFromDiskImpl, profile_path, retry_count + 1,
+                       max_retry_count, std::move(done_callback)),
+        kRetryDelay);
+    return;
+  }
+
+  if (done_callback) {
+    content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE,
+                                                 std::move(done_callback));
+  }
+}
+
+}  // namespace
+
+void NukeDeletedProfilesFromDisk() {
+  for (const auto& item : ProfilesToDelete()) {
+    if (item.second == ProfileDeletionStage::MARKED) {
+      NukeProfileFromDiskImpl(item.first, /*retry_count=*/0,
+                              /*max_retry_count=*/1, base::OnceClosure());
+    }
+  }
+  ProfilesToDelete().clear();
+}
+
+void NukeProfileFromDisk(const base::FilePath& profile_path,
+                         base::OnceClosure done_callback) {
+  NukeProfileFromDiskImpl(profile_path, /*retry_count=*/0,
+                          kNukeProfileMaxRetryCount, std::move(done_callback));
+}
+
+bool IsProfileDirectoryMarkedForDeletion(const base::FilePath& profile_path) {
+  const auto it = ProfilesToDelete().find(profile_path);
+  return it != ProfilesToDelete().end() &&
+         it->second == ProfileDeletionStage::MARKED;
+}
+
+void CancelProfileDeletion(const base::FilePath& path) {
+  DCHECK(!base::Contains(ProfilesToDelete(), path) ||
+         ProfilesToDelete()[path] == ProfileDeletionStage::SCHEDULING);
+  ProfilesToDelete().erase(path);
+  ProfileMetrics::LogProfileDeleteUser(ProfileMetrics::DELETE_PROFILE_ABORTED);
+}
+
+// Schedule a profile for deletion if it isn't already scheduled.
+// Returns whether the profile has been newly scheduled.
+bool ScheduleProfileDirectoryForDeletion(const base::FilePath& path) {
+  if (base::Contains(ProfilesToDelete(), path))
+    return false;
+  ProfilesToDelete()[path] = ProfileDeletionStage::SCHEDULING;
+  return true;
+}
+
+void MarkProfileDirectoryForDeletion(const base::FilePath& path) {
+  DCHECK(!base::Contains(ProfilesToDelete(), path) ||
+         ProfilesToDelete()[path] == ProfileDeletionStage::SCHEDULING);
+  ProfilesToDelete()[path] = ProfileDeletionStage::MARKED;
+  // Remember that this profile was deleted and files should have been deleted
+  // on shutdown. In case of a crash remaining files are removed on next start.
+  ScopedListPrefUpdate deleted_profiles(g_browser_process->local_state(),
+                                        prefs::kProfilesDeleted);
+  deleted_profiles->Append(base::FilePathToValue(path));
+}
diff --git a/chrome/browser/profiles/nuke_profile_directory_utils.h b/chrome/browser/profiles/nuke_profile_directory_utils.h
new file mode 100644
index 0000000..3719ad6
--- /dev/null
+++ b/chrome/browser/profiles/nuke_profile_directory_utils.h
@@ -0,0 +1,37 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PROFILES_NUKE_PROFILE_DIRECTORY_UTILS_H_
+#define CHROME_BROWSER_PROFILES_NUKE_PROFILE_DIRECTORY_UTILS_H_
+
+#include "base/functional/callback_forward.h"
+
+namespace base {
+class FilePath;
+}
+
+// Physically remove deleted profile directories from disk.
+void NukeDeletedProfilesFromDisk();
+
+// Physically remove deleted profile directories from disk. Afterwards, calls
+// |done_callback| on the UI thread.
+void NukeProfileFromDisk(const base::FilePath& profile_path,
+                         base::OnceClosure done_callback);
+
+// Returns if profile is marked for deletion.
+bool IsProfileDirectoryMarkedForDeletion(const base::FilePath& profile_path);
+
+// Cancel a scheduling deletion, so ScheduleProfileDirectoryForDeletion can be
+// called again successfully.
+void CancelProfileDeletion(const base::FilePath& path);
+
+// Schedule a profile for deletion if it isn't already scheduled.
+// Returns whether the profile has been newly scheduled.
+bool ScheduleProfileDirectoryForDeletion(const base::FilePath& path);
+
+// Marks the profile path for deletion. It will be deleted when
+// `NukeDeletedProfilesFromDisk()` is called.
+void MarkProfileDirectoryForDeletion(const base::FilePath& path);
+
+#endif  // CHROME_BROWSER_PROFILES_NUKE_PROFILE_DIRECTORY_UTILS_H_
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
index fc3709fc..1964c9f7 100644
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -25,14 +25,11 @@
 #include "base/json/values_util.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/histogram_macros.h"
-#include "base/metrics/user_metrics.h"
-#include "base/no_destructor.h"
 #include "base/observer_list.h"
 #include "base/ranges/algorithm.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "base/task/deferred_sequenced_task_runner.h"
 #include "base/task/thread_pool.h"
 #include "base/threading/scoped_blocking_call.h"
 #include "base/trace_event/trace_event.h"
@@ -40,24 +37,20 @@
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/accessibility/accessibility_labels_service.h"
 #include "chrome/browser/accessibility/accessibility_labels_service_factory.h"
-#include "chrome/browser/bookmarks/bookmark_model_factory.h"
 #include "chrome/browser/browser_features.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.h"
 #include "chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager_factory.h"
 #include "chrome/browser/buildflags.h"
 #include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
-#include "chrome/browser/download/download_core_service.h"
-#include "chrome/browser/download/download_core_service_factory.h"
 #include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/navigation_predictor/navigation_predictor_keyed_service_factory.h"
-#include "chrome/browser/password_manager/password_store_factory.h"
 #include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h"
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
-#include "chrome/browser/profiles/bookmark_model_loaded_observer.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_init_params.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
@@ -65,31 +58,25 @@
 #include "chrome/browser/profiles/profile_destroyer.h"
 #include "chrome/browser/profiles/profile_key.h"
 #include "chrome/browser/profiles/profile_manager_observer.h"
-#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_selections.h"
 #include "chrome/browser/profiles/profiles_state.h"
 #include "chrome/browser/signin/account_reconcilor_factory.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
 #include "chrome/browser/signin/primary_account_policy_manager_factory.h"
 #include "chrome/browser/signin/signin_util.h"
-#include "chrome/browser/sync/sync_service_factory.h"
-#include "chrome/browser/ui/startup/startup_browser_creator.h"
 #include "chrome/browser/ui/sync/sync_promo_ui.h"
 #include "chrome/browser/unified_consent/unified_consent_service_factory.h"
 #include "chrome/common/buildflags.h"
 #include "chrome/common/chrome_constants.h"
-#include "chrome/common/chrome_paths_internal.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/logging_chrome.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/account_id/account_id.h"
-#include "components/bookmarks/browser/bookmark_model.h"
 #include "components/bookmarks/common/bookmark_pref_names.h"
 #include "components/browsing_data/core/pref_names.h"
 #include "components/content_settings/core/browser/host_content_settings_map.h"
-#include "components/password_manager/core/browser/password_store_interface.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/scoped_user_pref_update.h"
 #include "components/search_engines/default_search_manager.h"
@@ -100,7 +87,6 @@
 #include "components/signin/public/identity_manager/identity_manager.h"
 #include "components/signin/public/identity_manager/primary_account_mutator.h"
 #include "components/sync/base/stop_source.h"
-#include "components/sync/driver/sync_service.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/notification_service.h"
@@ -137,8 +123,6 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_list.h"
-#include "components/keep_alive_registry/keep_alive_types.h"
-#include "components/keep_alive_registry/scoped_keep_alive.h"
 #include "components/live_caption/live_caption_controller.h"
 #endif
 
@@ -178,46 +162,10 @@
 #include "chrome/browser/chromeos/extensions/contact_center_insights/contact_center_insights_extension_manager.h"
 #endif
 
-using base::UserMetricsAction;
 using content::BrowserThread;
 
 namespace {
 
-// Used in metrics for NukeProfileFromDisk(). Keep in sync with enums.xml.
-//
-// Entries should not be renumbered and numeric values should never be reused.
-//
-// Note: there are maximum 3 attempts to nuke a profile.
-enum class NukeProfileResult {
-  // Success values. Make sure they are consecutive.
-  kSuccessFirstAttempt = 0,
-  kSuccessSecondAttempt = 1,
-  kSuccessThirdAttempt = 2,
-
-  // Failure values. Make sure they are consecutive.
-  kFailureFirstAttempt = 10,
-  kFailureSecondAttempt = 11,
-  kFailureThirdAttempt = 12,
-  kMaxValue = kFailureThirdAttempt,
-};
-
-const size_t kNukeProfileMaxRetryCount = 3;
-
-// Profile deletion can pass through two stages:
-enum class ProfileDeletionStage {
-  // At SCHEDULING stage some actions are made before profile deletion,
-  // where one of them is the closure of browser windows. Deletion is cancelled
-  // if the user choose explicitly not to close any of the tabs.
-  SCHEDULING,
-  // At MARKED stage profile can be safely removed from disk.
-  MARKED
-};
-using ProfileDeletionMap = std::map<base::FilePath, ProfileDeletionStage>;
-ProfileDeletionMap& ProfilesToDelete() {
-  static base::NoDestructor<ProfileDeletionMap> profiles_to_delete;
-  return *profiles_to_delete;
-}
-
 int64_t ComputeFilesSize(const base::FilePath& directory,
                          const base::FilePath::StringType& pattern) {
   int64_t running_size = 0;
@@ -279,103 +227,6 @@
     UMA_HISTOGRAM_COUNTS_10000("Profile.AppCount", enabled_app_count);
 }
 
-#if !BUILDFLAG(IS_ANDROID)
-// Schedule a profile for deletion if it isn't already scheduled.
-// Returns whether the profile has been newly scheduled.
-bool ScheduleProfileDirectoryForDeletion(const base::FilePath& path) {
-  if (base::Contains(ProfilesToDelete(), path))
-    return false;
-  ProfilesToDelete()[path] = ProfileDeletionStage::SCHEDULING;
-  return true;
-}
-
-void MarkProfileDirectoryForDeletion(const base::FilePath& path) {
-  DCHECK(!base::Contains(ProfilesToDelete(), path) ||
-         ProfilesToDelete()[path] == ProfileDeletionStage::SCHEDULING);
-  ProfilesToDelete()[path] = ProfileDeletionStage::MARKED;
-  // Remember that this profile was deleted and files should have been deleted
-  // on shutdown. In case of a crash remaining files are removed on next start.
-  ScopedListPrefUpdate deleted_profiles(g_browser_process->local_state(),
-                                        prefs::kProfilesDeleted);
-  deleted_profiles->Append(base::FilePathToValue(path));
-}
-
-// Cancel a scheduling deletion, so ScheduleProfileDirectoryForDeletion can be
-// called again successfully.
-void CancelProfileDeletion(const base::FilePath& path) {
-  DCHECK(!base::Contains(ProfilesToDelete(), path) ||
-         ProfilesToDelete()[path] == ProfileDeletionStage::SCHEDULING);
-  ProfilesToDelete().erase(path);
-  ProfileMetrics::LogProfileDeleteUser(ProfileMetrics::DELETE_PROFILE_ABORTED);
-}
-#endif
-
-NukeProfileResult GetNukeProfileResult(size_t retry_count, bool success) {
-  DCHECK_LT(retry_count, kNukeProfileMaxRetryCount);
-  const size_t value =
-      retry_count +
-      static_cast<size_t>(success ? NukeProfileResult::kSuccessFirstAttempt
-                                  : NukeProfileResult::kFailureFirstAttempt);
-  DCHECK_LE(value, static_cast<size_t>(NukeProfileResult::kMaxValue));
-  return static_cast<NukeProfileResult>(value);
-}
-
-// Implementation of NukeProfileFromDisk(), retrying at most |max_retry_count|
-// times on failure. |retry_count| (initially 0) keeps track of the
-// number of attempts so far.
-void NukeProfileFromDiskImpl(const base::FilePath& profile_path,
-                             size_t retry_count,
-                             size_t max_retry_count,
-                             base::OnceClosure done_callback) {
-  // TODO(crbug.com/1191455): Make FileSystemProxy/FileSystemImpl expose its
-  // LockTable, and/or fire events when locks are released. That way we could
-  // wait for all the locks in |profile_path| to be released, rather than having
-  // this retry logic.
-  const base::TimeDelta kRetryDelay = base::Seconds(1);
-
-  // Delete both the profile directory and its corresponding cache.
-  base::FilePath cache_path;
-  chrome::GetUserCacheDirectory(profile_path, &cache_path);
-
-  bool success = base::DeletePathRecursively(profile_path);
-  success = base::DeletePathRecursively(cache_path) && success;
-
-  base::UmaHistogramEnumeration("Profile.NukeFromDisk.Result",
-                                GetNukeProfileResult(retry_count, success));
-
-  if (!success && retry_count < max_retry_count - 1) {
-    // Failed, try again in |kRetryDelay| seconds.
-    base::ThreadPool::PostDelayedTask(
-        FROM_HERE,
-        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
-        base::BindOnce(&NukeProfileFromDiskImpl, profile_path, retry_count + 1,
-                       max_retry_count, std::move(done_callback)),
-        kRetryDelay);
-    return;
-  }
-
-  if (done_callback) {
-    content::GetUIThreadTaskRunner({})->PostTask(FROM_HERE,
-                                                 std::move(done_callback));
-  }
-}
-
-// Physically remove deleted profile directories from disk. Afterwards, calls
-// |done_callback| on the UI thread.
-void NukeProfileFromDisk(const base::FilePath& profile_path,
-                         base::OnceClosure done_callback) {
-  NukeProfileFromDiskImpl(profile_path, /*retry_count=*/0,
-                          kNukeProfileMaxRetryCount, std::move(done_callback));
-}
-
-// Called after a deleted profile was checked and cleaned up.
-void ProfileCleanedUp(base::Value profile_path_value) {
-  ScopedListPrefUpdate deleted_profiles(g_browser_process->local_state(),
-                                        prefs::kProfilesDeleted);
-  deleted_profiles->EraseValue(profile_path_value);
-}
-
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 
 // Returns the number of installed (and enabled) apps, excluding any component
@@ -429,17 +280,6 @@
   return entry && entry->IsEphemeral();
 }
 
-// Helper function that deletes entries from the kProfilesLastActive pref list.
-// It is called when every ephemeral profile is handled.
-void RemoveFromLastActiveProfilesPrefList(base::FilePath path) {
-  PrefService* local_state = g_browser_process->local_state();
-  DCHECK(local_state);
-  ScopedListPrefUpdate update(local_state, prefs::kProfilesLastActive);
-  base::Value::List& profile_list = update.Get();
-  base::Value entry_value = base::Value(path.BaseName().AsUTF8Unsafe());
-  profile_list.EraseValue(entry_value);
-}
-
 #if BUILDFLAG(IS_CHROMEOS_ASH)
 bool IsLoggedIn() {
   return user_manager::UserManager::IsInitialized() &&
@@ -478,21 +318,6 @@
   return out;
 }
 
-base::FilePath GetLastUsedProfileBaseName() {
-  PrefService* local_state = g_browser_process->local_state();
-  DCHECK(local_state);
-  base::FilePath last_used_profile_base_name =
-      local_state->GetFilePath(prefs::kProfileLastUsed);
-  // Make sure the system profile can't be the one marked as the last one used
-  // since it shouldn't get a browser.
-  if (!last_used_profile_base_name.empty() &&
-      last_used_profile_base_name.value() != chrome::kSystemProfileDir) {
-    return last_used_profile_base_name;
-  }
-
-  return base::FilePath::FromASCII(chrome::kInitialProfile);
-}
-
 #if BUILDFLAG(IS_CHROMEOS)
 void UpdateSupervisedUserPref(Profile* profile, bool is_child) {
   DCHECK(profile);
@@ -542,7 +367,12 @@
 }  // namespace
 
 ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
-    : user_data_dir_(user_data_dir) {
+    : user_data_dir_(user_data_dir)
+#if !BUILDFLAG(IS_ANDROID)
+      ,
+      delete_profile_helper_(std::make_unique<DeleteProfileHelper>(*this))
+#endif
+{
 #if !BUILDFLAG(IS_ANDROID)
   closing_all_browsers_subscription_ = chrome::AddClosingAllBrowsersCallback(
       base::BindRepeating(&ProfileManager::OnClosingAllBrowsersChanged,
@@ -588,14 +418,6 @@
   ProfileDestroyer::DestroyPendingProfilesForShutdown();
 }
 
-// static
-bool ProfileManager::IsProfileDirectoryMarkedForDeletion(
-    const base::FilePath& profile_path) {
-  const auto it = ProfilesToDelete().find(profile_path);
-  return it != ProfilesToDelete().end() &&
-         it->second == ProfileDeletionStage::MARKED;
-}
-
 #if BUILDFLAG(ENABLE_SESSION_SERVICE)
 // static
 void ProfileManager::ShutdownSessionServices() {
@@ -616,16 +438,6 @@
 #endif
 
 // static
-void ProfileManager::NukeDeletedProfilesFromDisk() {
-  for (const auto& item : ProfilesToDelete()) {
-    if (item.second == ProfileDeletionStage::MARKED)
-      NukeProfileFromDiskImpl(item.first, /*retry_count=*/0,
-                              /*max_retry_count=*/1, base::OnceClosure());
-  }
-  ProfilesToDelete().clear();
-}
-
-// static
 Profile* ProfileManager::GetLastUsedProfile() {
   ProfileManager* profile_manager = g_browser_process->profile_manager();
 
@@ -936,6 +748,22 @@
   return user_data_dir_.Append(GetLastUsedProfileBaseName());
 }
 
+// static
+base::FilePath ProfileManager::GetLastUsedProfileBaseName() {
+  PrefService* local_state = g_browser_process->local_state();
+  DCHECK(local_state);
+  base::FilePath last_used_profile_base_name =
+      local_state->GetFilePath(prefs::kProfileLastUsed);
+  // Make sure the system profile can't be the one marked as the last one used
+  // since it shouldn't get a browser.
+  if (!last_used_profile_base_name.empty() &&
+      last_used_profile_base_name.value() != chrome::kSystemProfileDir) {
+    return last_used_profile_base_name;
+  }
+
+  return base::FilePath::FromASCII(chrome::kInitialProfile);
+}
+
 base::FilePath ProfileManager::GetProfileDirForEmail(const std::string& email) {
   for (const auto* entry :
        GetProfileAttributesStorage().GetAllProfilesAttributes()) {
@@ -977,8 +805,10 @@
     return false;
   }
 
+#if !BUILDFLAG(IS_ANDROID)
   if (IsProfileDirectoryMarkedForDeletion(path))
     return false;
+#endif
 
   return true;
 }
@@ -1158,77 +988,6 @@
 }
 #endif
 
-#if !BUILDFLAG(IS_ANDROID)
-void ProfileManager::MaybeScheduleProfileForDeletion(
-    const base::FilePath& profile_dir,
-    ProfileLoadedCallback callback,
-    ProfileMetrics::ProfileDelete deletion_source) {
-  if (!ScheduleProfileDirectoryForDeletion(profile_dir))
-    return;
-
-  ProfileAttributesStorage& storage = GetProfileAttributesStorage();
-  ProfileAttributesEntry* entry =
-      storage.GetProfileAttributesWithPath(profile_dir);
-  if (entry) {
-    storage.RecordDeletedProfileState(entry);
-  }
-  ProfileMetrics::LogProfileDeleteUser(deletion_source);
-
-  ScheduleProfileForDeletion(profile_dir, std::move(callback));
-}
-
-void ProfileManager::ScheduleProfileForDeletion(
-    const base::FilePath& profile_dir,
-    ProfileLoadedCallback callback) {
-  DCHECK(profiles::IsMultipleProfilesEnabled());
-  DCHECK(!IsProfileDirectoryMarkedForDeletion(profile_dir));
-
-  Profile* profile = GetProfileByPath(profile_dir);
-  if (profile) {
-#if BUILDFLAG(IS_CHROMEOS_LACROS)
-    CHECK(!profile->IsMainProfile());
-#endif  // BUILDFLAG(IS_CHROMEOS_LACROS)
-    // Cancel all in-progress downloads before deleting the profile to prevent a
-    // "Do you want to exit Google Chrome and cancel the downloads?" prompt
-    // (crbug.com/336725).
-    DownloadCoreService* service =
-        DownloadCoreServiceFactory::GetForBrowserContext(profile);
-    service->CancelDownloads();
-    DCHECK_EQ(0, service->NonMaliciousDownloadCount());
-
-    // Close all browser windows before deleting the profile. If the user
-    // cancels the closing of any tab in an OnBeforeUnload event, profile
-    // deletion is also cancelled. (crbug.com/289390)
-    BrowserList::CloseAllBrowsersWithProfile(
-        profile,
-        base::BindRepeating(
-            &ProfileManager::EnsureActiveProfileExistsBeforeDeletion,
-            base::Unretained(this), base::Passed(std::move(callback))),
-        base::BindRepeating(&CancelProfileDeletion), false);
-  } else {
-    EnsureActiveProfileExistsBeforeDeletion(std::move(callback), profile_dir);
-  }
-}
-
-void ProfileManager::ScheduleEphemeralProfileForDeletion(
-    const base::FilePath& profile_dir) {
-  DCHECK_EQ(0u, chrome::GetBrowserCount(GetProfileByPath(profile_dir)));
-  DCHECK(IsRegisteredAsEphemeral(&GetProfileAttributesStorage(), profile_dir));
-  absl::optional<base::FilePath> new_active_profile_dir =
-      FindLastActiveProfile(base::BindRepeating(
-          [](const base::FilePath& profile_dir, ProfileAttributesEntry* entry) {
-            return entry->GetPath() != profile_dir;
-          },
-          profile_dir));
-  if (!new_active_profile_dir.has_value())
-    new_active_profile_dir = GenerateNextProfileDirectoryPath();
-  DCHECK(!new_active_profile_dir->empty());
-  RemoveFromLastActiveProfilesPrefList(profile_dir);
-
-  FinishDeletingProfile(profile_dir, new_active_profile_dir.value());
-}
-#endif  // !BUILDFLAG(IS_ANDROID)
-
 void ProfileManager::AutoloadProfiles() {
   // If running in the background is disabled for the browser, do not autoload
   // any profiles.
@@ -1251,83 +1010,6 @@
   }
 }
 
-void ProfileManager::CleanUpEphemeralProfiles() {
-  const base::FilePath last_used_profile_base_name =
-      GetLastUsedProfileBaseName();
-  bool last_active_profile_deleted = false;
-  base::FilePath new_profile_path;
-  std::vector<base::FilePath> profiles_to_delete;
-  ProfileAttributesStorage& storage = GetProfileAttributesStorage();
-  std::vector<ProfileAttributesEntry*> entries =
-      storage.GetAllProfilesAttributes();
-  for (ProfileAttributesEntry* entry : entries) {
-    base::FilePath profile_path = entry->GetPath();
-    if (entry->IsEphemeral()) {
-      profiles_to_delete.push_back(profile_path);
-      RemoveFromLastActiveProfilesPrefList(profile_path);
-      if (profile_path.BaseName() == last_used_profile_base_name)
-        last_active_profile_deleted = true;
-    } else if (new_profile_path.empty()) {
-      new_profile_path = profile_path;
-    }
-  }
-
-  // If the last active profile was ephemeral or all profiles are deleted due to
-  // ephemeral, set a new one.
-  if (last_active_profile_deleted ||
-      (entries.size() == profiles_to_delete.size() &&
-       !profiles_to_delete.empty())) {
-    if (new_profile_path.empty())
-      new_profile_path = GenerateNextProfileDirectoryPath();
-
-    profiles::SetLastUsedProfile(new_profile_path.BaseName());
-  }
-
-  for (const base::FilePath& profile_path : profiles_to_delete) {
-    base::ThreadPool::PostTask(
-        FROM_HERE,
-        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
-        base::BindOnce(&NukeProfileFromDisk, profile_path,
-                       base::OnceClosure()));
-
-    storage.RemoveProfile(profile_path);
-  }
-}
-
-void ProfileManager::CleanUpDeletedProfiles() {
-  PrefService* local_state = g_browser_process->local_state();
-  DCHECK(local_state);
-  const base::Value::List& deleted_profiles =
-      local_state->GetList(prefs::kProfilesDeleted);
-
-  for (const base::Value& value : deleted_profiles) {
-    absl::optional<base::FilePath> profile_path = base::ValueToFilePath(value);
-    // Although it should never happen, make sure this is a valid path in the
-    // user_data_dir, so we don't accidentally delete something else.
-    if (profile_path && IsAllowedProfilePath(*profile_path)) {
-      if (base::PathExists(*profile_path)) {
-        LOG(WARNING) << "Files of a deleted profile still exist after restart. "
-                        "Cleaning up now.";
-        base::ThreadPool::PostTask(
-            FROM_HERE,
-            {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-             base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
-            base::BindOnce(&NukeProfileFromDisk, *profile_path,
-                           base::BindOnce(&ProfileCleanedUp, value.Clone())));
-      } else {
-        // Everything is fine, the profile was removed on shutdown.
-        content::GetUIThreadTaskRunner({})->PostTask(
-            FROM_HERE, base::BindOnce(&ProfileCleanedUp, value.Clone()));
-      }
-    } else {
-      LOG(ERROR) << "Found invalid profile path in deleted_profiles: "
-                 << profile_path->AsUTF8Unsafe();
-      NOTREACHED();
-    }
-  }
-}
-
 void ProfileManager::InitProfileUserPrefs(Profile* profile) {
   TRACE_EVENT0("browser", "ProfileManager::InitProfileUserPrefs");
   ProfileAttributesStorage& storage = GetProfileAttributesStorage();
@@ -1615,6 +1297,12 @@
   DeleteProfileIfNoKeepAlive(info);
 }
 
+void ProfileManager::NotifyOnProfileMarkedForPermanentDeletion(
+    Profile* profile) {
+  for (auto& observer : observers_)
+    observer.OnProfileMarkedForPermanentDeletion(profile);
+}
+
 void ProfileManager::DeleteProfileIfNoKeepAlive(const ProfileInfo* info) {
 #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
   if (GetTotalRefCount(info->keep_alives) != 0)
@@ -2054,153 +1742,6 @@
 }
 
 #if !BUILDFLAG(IS_ANDROID)
-void ProfileManager::EnsureActiveProfileExistsBeforeDeletion(
-    ProfileLoadedCallback callback,
-    const base::FilePath& profile_dir) {
-  // In case we delete non-active profile and current profile is valid, proceed.
-  const base::FilePath last_used_profile_path = GetLastUsedProfileDir();
-  const base::FilePath guest_profile_path = GetGuestProfilePath();
-  Profile* last_used_profile = GetProfileByPath(last_used_profile_path);
-  if (last_used_profile_path != profile_dir &&
-      last_used_profile_path != guest_profile_path && last_used_profile) {
-    FinishDeletingProfile(profile_dir, last_used_profile_path);
-    return;
-  }
-
-  // Search for an active browser and use its profile as active if possible.
-  for (Browser* browser : *BrowserList::GetInstance()) {
-    Profile* profile = browser->profile();
-    base::FilePath cur_path = profile->GetPath();
-    if (cur_path != profile_dir && cur_path != guest_profile_path &&
-        !IsProfileDirectoryMarkedForDeletion(cur_path)) {
-      OnNewActiveProfileInitialized(profile_dir, cur_path, std::move(callback),
-                                    nullptr, profile);
-      return;
-    }
-  }
-
-  // There no valid browsers to fallback, search for any existing valid profile.
-  ProfileAttributesStorage& storage = GetProfileAttributesStorage();
-  base::FilePath fallback_profile_path;
-  std::vector<ProfileAttributesEntry*> entries =
-      storage.GetAllProfilesAttributes();
-  for (ProfileAttributesEntry* entry : entries) {
-    base::FilePath cur_path = entry->GetPath();
-    // Make sure that this profile is not pending deletion.
-    if (cur_path != profile_dir && cur_path != guest_profile_path &&
-        !IsProfileDirectoryMarkedForDeletion(cur_path)) {
-      fallback_profile_path = cur_path;
-      break;
-    }
-  }
-
-  // If we're deleting the last profile, then create a new profile in its place.
-  // Load existing profile otherwise.
-  if (fallback_profile_path.empty()) {
-    fallback_profile_path = GenerateNextProfileDirectoryPath();
-    // A new profile about to be created.
-    ProfileMetrics::LogProfileAddNewUser(
-        ProfileMetrics::ADD_NEW_USER_LAST_DELETED);
-  }
-
-  // When this is called all browser windows may be about to be destroyed
-  // (but still exist in BrowserList), which means shutdown may be about to
-  // start. Use a KeepAlive to ensure shutdown doesn't start.
-  std::unique_ptr<ScopedKeepAlive> keep_alive =
-      std::make_unique<ScopedKeepAlive>(KeepAliveOrigin::PROFILE_MANAGER,
-                                        KeepAliveRestartOption::DISABLED);
-  // Create and/or load fallback profile.
-  CreateProfileAsync(
-      fallback_profile_path,
-      base::BindOnce(&ProfileManager::OnNewActiveProfileInitialized,
-                     base::Unretained(this), profile_dir, fallback_profile_path,
-                     std::move(callback), std::move(keep_alive)));
-}
-
-void ProfileManager::OnLoadProfileForProfileDeletion(
-    const base::FilePath& profile_dir,
-    Profile* profile) {
-  ProfileAttributesStorage& storage = GetProfileAttributesStorage();
-
-  if (!IsProfileDirectoryMarkedForDeletion(profile_dir)) {
-    // Ensure RemoveProfile() knows to nuke the profile directory after it's
-    // done.
-    MarkProfileDirectoryForDeletion(profile_dir);
-  }
-
-  if (profile) {
-    // TODO(estade): Migrate additional code in this block to observe
-    // ProfileManager instead of handling shutdown here.
-    for (auto& observer : observers_)
-      observer.OnProfileMarkedForPermanentDeletion(profile);
-
-    // Disable sync for doomed profile.
-    if (SyncServiceFactory::HasSyncService(profile)) {
-      syncer::SyncService* sync_service =
-          SyncServiceFactory::GetForProfile(profile);
-      // Ensure data is cleared even if sync was already off.
-      sync_service->StopAndClear();
-    }
-
-    // Some platforms store passwords in keychains. They should be removed.
-    scoped_refptr<password_manager::PasswordStoreInterface> password_store =
-        PasswordStoreFactory::GetForProfile(profile,
-                                            ServiceAccessType::EXPLICIT_ACCESS)
-            .get();
-    if (password_store.get()) {
-      password_store->RemoveLoginsCreatedBetween(base::Time(),
-                                                 base::Time::Max());
-    }
-
-    // The Profile Data doesn't get wiped until Chrome closes. Since we promised
-    // that the user's data would be removed, do so immediately.
-    //
-    // With DestroyProfileOnBrowserClose, this adds a KeepAlive. So the Profile*
-    // only gets deleted *after* browsing data is removed. This also clears some
-    // keepalives in the process, e.g. due to background extensions getting
-    // uninstalled.
-    profiles::RemoveBrowsingDataForProfile(profile_dir);
-
-    // Clean-up pref data that won't be cleaned up by deleting the profile dir.
-    profile->GetPrefs()->OnStoreDeletionFromDisk();
-
-  } else {
-    // We failed to load the profile, but it's safe to delete a not yet loaded
-    // Profile from disk.
-    base::ThreadPool::PostTask(
-        FROM_HERE,
-        {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-         base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
-        base::BindOnce(&NukeProfileFromDisk, profile_dir, base::OnceClosure()));
-  }
-
-  storage.RemoveProfile(profile_dir);
-
-  if (profile &&
-      base::FeatureList::IsEnabled(features::kDestroyProfileOnBrowserClose)) {
-    // Allow the Profile* to be deleted, even if it had no browser windows.
-    ClearFirstBrowserWindowKeepAlive(profile);
-  }
-}
-
-void ProfileManager::FinishDeletingProfile(
-    const base::FilePath& profile_dir,
-    const base::FilePath& new_active_profile_dir) {
-  // Update the last used profile pref before closing browser windows. This
-  // way the correct last used profile is set for any notification observers.
-  profiles::SetLastUsedProfile(new_active_profile_dir.BaseName());
-
-  // Attempt to load the profile before deleting it to properly clean up
-  // profile-specific data stored outside the profile directory.
-  LoadProfileByPath(
-      profile_dir, false,
-      base::BindOnce(&ProfileManager::OnLoadProfileForProfileDeletion,
-                     base::Unretained(this), profile_dir));
-  if (!IsProfileDirectoryMarkedForDeletion(profile_dir)) {
-    // Prevents CreateProfileAsync from re-creating the profile.
-    MarkProfileDirectoryForDeletion(profile_dir);
-  }
-}
 
 absl::optional<base::FilePath> ProfileManager::FindLastActiveProfile(
     base::RepeatingCallback<bool(ProfileAttributesEntry*)> predicate) {
@@ -2242,6 +1783,10 @@
 #endif  //! BUILDFLAG(IS_CHROMEOS_ASH)
 }
 
+DeleteProfileHelper& ProfileManager::GetDeleteProfileHelper() {
+  return *delete_profile_helper_;
+}
+
 #endif  // !BUILDFLAG(IS_ANDROID)
 
 ProfileManager::ProfileInfo* ProfileManager::RegisterOwnedProfile(
@@ -2481,7 +2026,7 @@
     // Delete if the profile is an ephemeral profile and it is not in the
     // profile creation flow.
     // TODO(crbug.com/1369535): Delete the profile when there is no keep alive.
-    ScheduleEphemeralProfileForDeletion(path);
+    delete_profile_helper_->ScheduleEphemeralProfileForDeletion(path);
   } else if (!profile->IsOffTheRecord()) {
     auto* browsing_data_lifetime_manager =
         ChromeBrowsingDataLifetimeManagerFactory::GetForProfile(
@@ -2557,26 +2102,6 @@
   profile_manager_->UpdateLastUser(last_active);
 }
 
-void ProfileManager::OnNewActiveProfileInitialized(
-    const base::FilePath& profile_to_delete_path,
-    const base::FilePath& new_active_profile_path,
-    ProfileLoadedCallback callback,
-    std::unique_ptr<ScopedKeepAlive> keep_alive,
-    Profile* loaded_profile) {
-  DCHECK(loaded_profile);
-  if (IsProfileDirectoryMarkedForDeletion(new_active_profile_path)) {
-    // If the profile we tried to load as the next active profile has been
-    // deleted, then retry deleting this profile to redo the logic to load
-    // the next available profile.
-    EnsureActiveProfileExistsBeforeDeletion(std::move(callback),
-                                            profile_to_delete_path);
-    return;
-  }
-
-  FinishDeletingProfile(profile_to_delete_path, new_active_profile_path);
-  std::move(callback).Run(loaded_profile);
-}
-
 void ProfileManager::OnClosingAllBrowsersChanged(bool closing) {
   // Save active profiles when the browser begins shutting down, or if shutdown
   // is cancelled. The active profiles won't be changed during the shutdown
diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
index e0d0b86..57173de2 100644
--- a/chrome/browser/profiles/profile_manager.h
+++ b/chrome/browser/profiles/profile_manager.h
@@ -25,6 +25,7 @@
 #include "base/timer/timer.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_shortcut_manager.h"
@@ -38,10 +39,10 @@
 class AccountProfileMapper;
 #endif
 
+class DeleteProfileHelper;
 class ProfileAttributesStorage;
 enum class ProfileKeepAliveOrigin;
 class ProfileManagerObserver;
-class ScopedKeepAlive;
 class ScopedProfileKeepAlive;
 
 // Manages the lifecycle of Profile objects.
@@ -62,9 +63,6 @@
   static void ShutdownSessionServices();
 #endif
 
-  // Physically remove deleted profile directories from disk.
-  static void NukeDeletedProfilesFromDisk();
-
   // Get the Profile last used (the Profile to which owns the most recently
   // focused window) with this Chrome build. If no signed profile has been
   // stored in Local State, hand back the Default profile.
@@ -187,6 +185,7 @@
   // Get the path of the last used profile, or if that's undefined, the default
   // profile.
   base::FilePath GetLastUsedProfileDir();
+  static base::FilePath GetLastUsedProfileBaseName();
 
   // Returns the path of a profile with the requested account, or the empty
   // path if none exists.
@@ -261,42 +260,21 @@
 #endif
 
 #if !BUILDFLAG(IS_ANDROID)
-  // Less strict version of ScheduleProfileForDeletion(), silently exits if
-  // profile is either scheduling or marked for deletion.
-  void MaybeScheduleProfileForDeletion(
-      const base::FilePath& profile_dir,
-      ProfileLoadedCallback callback,
-      ProfileMetrics::ProfileDelete deletion_source);
-
-  // Schedules the profile at the given path to be deleted on shutdown. If we're
-  // deleting the last profile, a new one will be created in its place, and in
-  // that case the callback will be called when profile creation is complete.
-  void ScheduleProfileForDeletion(const base::FilePath& profile_dir,
-                                  ProfileLoadedCallback callback);
-
-  // Schedules the ephemeral profile at the given path to be deleted on
-  // shutdown. New profiles will not be created.
-  void ScheduleEphemeralProfileForDeletion(const base::FilePath& profile_dir);
+  // Searches for the latest active profile that respects |predicate|, already
+  // loaded preferably. Returns nullopt if no existing profile respects all the
+  // conditions.
+  absl::optional<base::FilePath> FindLastActiveProfile(
+      base::RepeatingCallback<bool(ProfileAttributesEntry*)> predicate);
 
   // Deletes Guest profile's browsing data.
   static void CleanUpGuestProfile();
-#endif
 
-  // Returns if profile is marked for deletion.
-  static bool IsProfileDirectoryMarkedForDeletion(
-      const base::FilePath& profile_dir);
+  DeleteProfileHelper& GetDeleteProfileHelper();
+#endif
 
   // Autoloads profiles if they are running background apps.
   void AutoloadProfiles();
 
-  // Checks if any ephemeral profiles are left behind (e.g. because of a browser
-  // crash) and schedule them for deletion.
-  void CleanUpEphemeralProfiles();
-
-  // Checks if files of deleted profiles are left behind (e.g. because of a
-  // browser crash) and delete them in case they still exist.
-  void CleanUpDeletedProfiles();
-
   // Initializes user prefs of |profile|. This includes profile name and
   // avatar values.
   void InitProfileUserPrefs(Profile* profile);
@@ -350,6 +328,12 @@
   // browser window.
   void ClearFirstBrowserWindowKeepAlive(const Profile* profile);
 
+  // Returns whether |path| is allowed for profile creation.
+  bool IsAllowedProfilePath(const base::FilePath& path) const;
+
+  // Notifies `OnProfileMarkedForPermanentDeletion()` to the observers.
+  void NotifyOnProfileMarkedForPermanentDeletion(Profile* profile);
+
  protected:
   // Creates a new profile by calling into the profile's profile creation
   // method. Virtual so that unittests can return a TestingProfile instead
@@ -480,29 +464,6 @@
   // null if creation fails.
   Profile* CreateAndInitializeProfile(const base::FilePath& profile_dir);
 
-#if !BUILDFLAG(IS_ANDROID)
-  // Continues the scheduled profile deletion after closing all the profile's
-  // browsers tabs. Creates a new profile if the profile to be deleted is the
-  // last non-supervised profile. In the Mac, loads the next non-supervised
-  // profile if the profile to be deleted is the active profile.
-  void EnsureActiveProfileExistsBeforeDeletion(
-      ProfileLoadedCallback callback,
-      const base::FilePath& profile_dir);
-
-  // Schedules the profile at the given path to be deleted on shutdown,
-  // and marks the new profile as active.
-  void FinishDeletingProfile(const base::FilePath& profile_dir,
-                             const base::FilePath& new_active_profile_dir);
-  void OnLoadProfileForProfileDeletion(const base::FilePath& profile_dir,
-                                       Profile* profile);
-
-  // Searches for the latest active profile that respects |predicate|, already
-  // loaded preferably. Returns nullopt if no existing profile respects all the
-  // conditions.
-  absl::optional<base::FilePath> FindLastActiveProfile(
-      base::RepeatingCallback<bool(ProfileAttributesEntry*)> predicate);
-#endif
-
   // Registers profile with given info. Returns pointer to created ProfileInfo
   // entry.
   ProfileInfo* RegisterUnownedProfile(Profile* profile);
@@ -517,9 +478,6 @@
   // should be used carefully.
   Profile* GetProfileByPathInternal(const base::FilePath& path) const;
 
-  // Returns whether |path| is allowed for profile creation.
-  bool IsAllowedProfilePath(const base::FilePath& path) const;
-
   // Whether a new profile can be created at |path|.
   bool CanCreateProfileAtPath(const base::FilePath& path) const;
 
@@ -562,18 +520,6 @@
     raw_ptr<ProfileManager> profile_manager_;
   };
 
-  // If the `loaded_profile` has been loaded successfully and isn't already
-  // scheduled for deletion, then finishes adding `profile_to_delete_dir` to the
-  // queue of profiles to be deleted, and updates the kProfileLastUsed
-  // preference based on `last_non_supervised_profile_path`. `keep_alive` may be
-  // null and is used to ensure shutdown does not start.
-  void OnNewActiveProfileInitialized(
-      const base::FilePath& profile_to_delete_path,
-      const base::FilePath& last_non_supervised_profile_path,
-      ProfileLoadedCallback callback,
-      std::unique_ptr<ScopedKeepAlive> keep_alive,
-      Profile* loaded_profile);
-
   void OnClosingAllBrowsersChanged(bool closing);
 #endif  // !BUILDFLAG(IS_ANDROID)
 
@@ -608,6 +554,8 @@
 
 #if !BUILDFLAG(IS_ANDROID)
   BrowserListObserver browser_list_observer_{this};
+
+  std::unique_ptr<DeleteProfileHelper> delete_profile_helper_;
 #endif  // !BUILDFLAG(IS_ANDROID)
 
   // Maps profile path to ProfileInfo (if profile has been created). Use
diff --git a/chrome/browser/profiles/profile_manager_browsertest.cc b/chrome/browser/profiles/profile_manager_browsertest.cc
index fe57097..c4f252d 100644
--- a/chrome/browser/profiles/profile_manager_browsertest.cc
+++ b/chrome/browser/profiles/profile_manager_browsertest.cc
@@ -28,6 +28,7 @@
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_test_util.h"
 #include "chrome/browser/profiles/profile_window.h"
 #include "chrome/browser/profiles/profiles_state.h"
@@ -313,8 +314,9 @@
       storage.GetAllProfilesAttributes().front()->GetPath();
   EXPECT_FALSE(singleton_profile_path.empty());
   MultipleProfileDeletionObserver profile_deletion_observer(1u);
-  profile_manager->ScheduleProfileForDeletion(singleton_profile_path,
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      singleton_profile_path, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
 
   // Run the message loop until the profile is actually deleted (as indicated
   // by the callback above being called).
@@ -353,7 +355,8 @@
 
   // Delete inactive profile.
   MultipleProfileDeletionObserver profile_deletion_observer(1u);
-  profile_manager->ScheduleProfileForDeletion(new_path, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      new_path, base::DoNothing(), ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   profile_deletion_observer.Wait();
 
   // Make sure there only preexisted profile left.
@@ -380,7 +383,7 @@
   base::FilePath current_profile_path = browser()->profile()->GetPath();
   base::FilePath new_last_used_path = new_profile_path;
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
-  // Deleting the main profile on Lacros is not allowed.
+  // Deleting the main profile on Lacros is not allwed.
   // Set the current profile to the new profile.
   new_last_used_path = browser()->profile()->GetPath();
   ASSERT_EQ(Browser::GetCreationStatusForProfile(new_profile),
@@ -396,8 +399,9 @@
 
   // Delete current profile.
   MultipleProfileDeletionObserver profile_deletion_observer(1u);
-  profile_manager->ScheduleProfileForDeletion(current_profile_path,
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      current_profile_path, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   profile_deletion_observer.Wait();
 
   // Make sure a profile created earlier become the only profile.
@@ -447,8 +451,9 @@
     if (Profile::IsMainProfilePath(profile_path))
       continue;
 #endif
-    profile_manager->ScheduleProfileForDeletion(profile_path,
-                                                base::DoNothing());
+    profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+        profile_path, base::DoNothing(),
+        ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
     old_profile_paths.push_back(profile_path);
   }
   profile_deletion_observer.Wait();
@@ -768,8 +773,11 @@
   EXPECT_EQ(1u, verify_add.GetPasswords().size());
 
   MultipleProfileDeletionObserver profile_deletion_observer(1U);
-  g_browser_process->profile_manager()->ScheduleProfileForDeletion(
-      profile->GetPath(), base::DoNothing());
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          profile->GetPath(), base::DoNothing(),
+          ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   // run_loop.Run();
   profile_deletion_observer.Wait();
 
diff --git a/chrome/browser/profiles/profile_manager_unittest.cc b/chrome/browser/profiles/profile_manager_unittest.cc
index 5462092..2f36295 100644
--- a/chrome/browser/profiles/profile_manager_unittest.cc
+++ b/chrome/browser/profiles/profile_manager_unittest.cc
@@ -28,6 +28,7 @@
 #include "chrome/browser/policy/profile_policy_connector.h"
 #include "chrome/browser/prefs/browser_prefs.h"
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h"
 #include "chrome/browser/profiles/profile.h"
@@ -1543,7 +1544,7 @@
   initial_last_active_profile_list.Append(
       base::Value(path2.BaseName().MaybeAsASCII()));
 
-  profile_manager->CleanUpEphemeralProfiles();
+  profile_manager->GetDeleteProfileHelper().CleanUpEphemeralProfiles();
   content::RunAllTasksUntilIdle();
   const base::Value::List& final_last_active_profile_list =
       local_state->GetList(prefs::kProfilesLastActive);
@@ -1561,7 +1562,7 @@
 
   // Mark the remaining profile ephemeral and clean up.
   storage.GetAllProfilesAttributes()[0]->SetIsEphemeral(true);
-  profile_manager->CleanUpEphemeralProfiles();
+  profile_manager->GetDeleteProfileHelper().CleanUpEphemeralProfiles();
   content::RunAllTasksUntilIdle();
 
   // The profile should be deleted, and the last used profile set to a new one.
@@ -1614,7 +1615,7 @@
   initial_last_active_profile_list.Append(
       base::Value(path.BaseName().MaybeAsASCII()));
 
-  profile_manager->CleanUpEphemeralProfiles();
+  profile_manager->GetDeleteProfileHelper().CleanUpEphemeralProfiles();
   content::RunAllTasksUntilIdle();
   const base::Value::List& final_last_active_profile_list =
       local_state->GetList(prefs::kProfilesLastActive);
@@ -1653,7 +1654,7 @@
   PrefService* local_state = g_browser_process->local_state();
   local_state->SetString(prefs::kProfileLastUsed, std::string("Guest Profile"));
 
-  profile_manager->CleanUpEphemeralProfiles();
+  profile_manager->GetDeleteProfileHelper().CleanUpEphemeralProfiles();
   content::RunAllTasksUntilIdle();
 
   ASSERT_EQ(0u, storage.GetNumberOfProfiles());
@@ -1770,7 +1771,9 @@
   local_state->SetString(prefs::kProfileLastUsed, profile_basename1);
 
   // Delete the active profile.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   EXPECT_EQ(profile_path2, profile_manager->GetLastUsedProfile()->GetPath());
@@ -1803,7 +1806,9 @@
   local_state->SetString(prefs::kProfileLastUsed, profile_basename1);
 
   // Delete the active profile.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   // A new profile should have been created
@@ -1863,7 +1868,9 @@
   local_state->SetString(prefs::kProfileLastUsed, guest_profile_basename);
 
   // Delete the other profile.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   // A new profile should have been created.
@@ -1907,8 +1914,9 @@
             profiles::GetAvatarNameForProfile(profile2->GetPath()));
 
   // Deleting a profile means returning to the default name.
-  profile_manager->ScheduleProfileForDeletion(profile2->GetPath(),
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile2->GetPath(), base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
   EXPECT_EQ(default_profile_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
@@ -1951,8 +1959,9 @@
             profiles::GetAvatarNameForProfile(profile2->GetPath()));
 
   // Deleting a profile means returning to the original, custom name.
-  profile_manager->ScheduleProfileForDeletion(profile2->GetPath(),
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile2->GetPath(), base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
   EXPECT_EQ(custom_profile_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
@@ -2004,8 +2013,9 @@
             profiles::GetAvatarNameForProfile(profile2->GetPath()));
 
   // Deleting a profile means returning to the original, actual profile name.
-  profile_manager->ScheduleProfileForDeletion(profile2->GetPath(),
-                                              base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile2->GetPath(), base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
   EXPECT_EQ(gaia_given_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
@@ -2127,7 +2137,9 @@
 
   // Delete the active profile. This should switch and load the unloaded
   // profile.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
 
   content::RunAllTasksUntilIdle();
 
@@ -2201,10 +2213,14 @@
   // Try to break this flow by setting the active profile to Profile2 in the
   // middle (so after the first posted message), and trying to delete Profile2,
   // so that the ProfileManager has to look for a different profile to load.
-  profile_manager->ScheduleProfileForDeletion(profile_path1, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path1, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   local_state->SetString(prefs::kProfileLastUsed,
                          profile_path2.BaseName().MaybeAsASCII());
-  profile_manager->ScheduleProfileForDeletion(profile_path2, base::DoNothing());
+  profile_manager->GetDeleteProfileHelper().MaybeScheduleProfileForDeletion(
+      profile_path2, base::DoNothing(),
+      ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   content::RunAllTasksUntilIdle();
 
   EXPECT_EQ(profile_path3, profile_manager->GetLastUsedProfile()->GetPath());
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb
index 3fdab65..0496c43 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb
@@ -25,6 +25,7 @@
 <translation id="1156488781945104845">Hora actual</translation>
 <translation id="1161762950103988776">Saltar</translation>
 <translation id="1164857107703583584">Los comandos de salto se pueden usar para navegar de forma eficiente por una página web.</translation>
+<translation id="116896278675803795">Cambiar automáticamente el idioma para que coincida con el contenido seleccionado</translation>
 <translation id="1175914831232945926">Dígitos</translation>
 <translation id="1181003590763099524">mover al principio</translation>
 <translation id="1188858454923323853">complementario</translation>
diff --git a/chrome/browser/resources/chromeos/assistant_optin/BUILD.gn b/chrome/browser/resources/chromeos/assistant_optin/BUILD.gn
index 864805ce..c1e6ae4 100644
--- a/chrome/browser/resources/chromeos/assistant_optin/BUILD.gn
+++ b/chrome/browser/resources/chromeos/assistant_optin/BUILD.gn
@@ -81,8 +81,6 @@
     "assistant_common_styles.html",
     "assistant_optin.html",
     "assistant_optin.js",
-    "assistant_value_prop.html",
-    "assistant_value_prop.js",
     "assistant_voice_match.html",
     "assistant_voice_match.js",
     "browser_proxy.html",
@@ -104,7 +102,6 @@
   in_files = [
     "assistant_common_styles.m.js",
     "assistant_icon.m.js",
-    "assistant_value_prop.m.js",
     "assistant_voice_match.m.js",
     "browser_proxy.m.js",
     "utils.m.js",
@@ -123,6 +120,7 @@
     "assistant_loading.js",
     "assistant_optin_flow.js",
     "assistant_related_info.js",
+    "assistant_value_prop.js",
     "setting_zippy.js",
   ]
 }
@@ -135,7 +133,7 @@
   is_polymer3 = true
   closure_flags = default_closure_args
   deps = [
-    #"assistant_value_prop.m",
+    #"assistant_value_prop",
     #":assistant_voice_match.m",
     #":assistant_optin_flow",
     ":voice_match_entry.m",
@@ -169,13 +167,13 @@
   extra_deps = [ ":web_components" ]
 }
 
-js_library("assistant_value_prop.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.m.js" ]
+js_library("assistant_value_prop") {
+  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js" ]
   deps = [
     "../login/components/behaviors:oobe_i18n_behavior.m",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
-  extra_deps = [ ":assistant_value_prop_module" ]
+  extra_deps = [ ":web_components" ]
 }
 
 js_library("voice_match_entry.m") {
@@ -207,7 +205,6 @@
   public_deps = [
     ":assistant_common_styles_module",
     ":assistant_icon_module",
-    ":assistant_value_prop_module",
     ":assistant_voice_match_module",
     ":modulize",
     ":voice_match_entry_module",
@@ -226,15 +223,6 @@
   html_type = "iron-iconset"
 }
 
-polymer_modulizer("assistant_value_prop") {
-  js_file = "assistant_value_prop.js"
-  html_file = "assistant_value_prop.html"
-  html_type = "dom-module"
-  auto_imports = assistant_auto_imports
-  migrated_imports = assistant_migrated_imports
-  namespace_rewrites = assistant_namespace_rewrites
-}
-
 polymer_modulizer("assistant_voice_match") {
   js_file = "assistant_voice_match.js"
   html_file = "assistant_voice_match.html"
@@ -266,6 +254,7 @@
     "assistant_loading.js",
     "assistant_optin_flow.js",
     "assistant_related_info.js",
+    "assistant_value_prop.js",
     "setting_zippy.js",
   ]
 }
diff --git a/chrome/browser/resources/chromeos/assistant_optin/assistant_optin_flow.js b/chrome/browser/resources/chromeos/assistant_optin/assistant_optin_flow.js
index ba3de846..b7a840f 100644
--- a/chrome/browser/resources/chromeos/assistant_optin/assistant_optin_flow.js
+++ b/chrome/browser/resources/chromeos/assistant_optin/assistant_optin_flow.js
@@ -14,7 +14,7 @@
 import './assistant_loading.js';
 import './assistant_related_info.js';
 import './assistant_voice_match.m.js';
-import './assistant_value_prop.m.js';
+import './assistant_value_prop.js';
 import './setting_zippy.js';
 
 import {loadTimeData} from '//resources/js/load_time_data.m.js';
diff --git a/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.html b/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.html
index 0de8ec9..39da00e 100644
--- a/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.html
+++ b/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.html
@@ -4,114 +4,91 @@
 found in the LICENSE file.
 -->
 
-<link rel="import" href="chrome://resources/html/polymer.html">
+<style include="oobe-dialog-host-styles assistant-common-styles">
+  :host-context([orientation=vertical]) oobe-adaptive-dialog {
+    --oobe-adaptive-dialog-content-top-padding: 0;
+  }
 
-<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/iron-icon/iron-icon.html">
+  .subtitle-text {
+    color: var(--cros-text-color-primary);
+    font-size: 15px;
+    font-weight: 500;
+    line-height: 24px;
+  }
 
-<link rel="import" href="../components/dialogs/oobe_adaptive_dialog.html">
-<link rel="import" href="../components/behaviors/oobe_dialog_host_behavior.html">
-<link rel="import" href="../components/behaviors/oobe_i18n_behavior.html">
-<link rel="import" href="../components/buttons/oobe_next_button.html">
-<link rel="import" href="../components/buttons/oobe_text_button.html">
-<link rel="import" href="../components/common_styles/oobe_dialog_host_styles.html">
+  .subtitle-message-text {
+    padding: 0 8px 16px 0;
+  }
 
-<link rel="import" href="./assistant_common_styles.html">
-<link rel="import" href="./assistant_icon.html">
-<link rel="import" href="./browser_proxy.html">
-<link rel="import" href="./setting_zippy.html">
-<link rel="import" href="./utils.html">
+  .subtitle-message-text-minor {
+    color: var(--cros-text-color-primary);
+    padding: 0 8px 16px 0;
+  }
 
-<dom-module id="assistant-value-prop">
-  <template>
-    <style include="oobe-dialog-host-styles assistant-common-styles">
-      :host-context([orientation=vertical]) oobe-adaptive-dialog {
-        --oobe-adaptive-dialog-content-top-padding: 0;
-      }
+  .username-text {
+    padding-bottom: 30px;
+  }
 
-      .subtitle-text {
-        color: var(--cros-text-color-primary);
-        font-size: 15px;
-        font-weight: 500;
-        line-height: 24px;
-      }
+  #footer-text {
+    padding-top: 16px;
+  }
 
-      .subtitle-message-text {
-        padding: 0 8px 16px 0;
-      }
+  #overlay-text {
+    box-sizing: border-box;
+    font-size: 13px;
+    margin: auto;
+    min-height: 200px;
+    padding: 16px;
+    width: 100%;
+  }
 
-      .subtitle-message-text-minor {
-        color: var(--cros-text-color-primary);
-        padding: 0 8px 16px 0;
-      }
+  #overlay-title-text {
+    font-size: 15px;
+  }
 
-      .username-text {
-        padding-bottom: 30px;
-      }
+  #overlay-additional-info-text {
+    color: var(--cros-text-color-disabled);
+    line-height: 20px;
+    padding-top: 20px;
+  }
+</style>
+<oobe-adaptive-dialog id="value-prop-dialog" role="dialog">
+  <iron-icon slot="icon" icon="assistant-32:assistant"
+      aria-label$="[[i18nDynamic(locale, 'assistantLogo')]]">
+  </iron-icon>
+  <h1 slot="title" id="title-text"></h1>
+  <div id="animation-container">
+    <webview id="value-prop-view" tabindex="-1"></webview>
+  </div>
+  <div slot="content" id="content-container"
+      class="landscape-vertical-centered">
+    <div class="content" id="subtitle-container"></div>
+    <div class="line" hidden$="[[isMinorMode_]]"></div>
+    <div id="consents-container"></div>
+    <div class="content" id="footer-text" hidden$="[[isMinorMode_]]"></div>
+  </div>
+  <div slot="bottom-buttons">
+    <oobe-text-button id="skip-button" on-click="onSkipTap_"
+        disabled="[[buttonsDisabled]]">
+      <div id="skip-button-text" slot="text"></div>
+    </oobe-text-button>
+    <oobe-text-button id="next-button" inverse="[[!equalWeightButtons_]]"
+        on-click="onNextTap_" disabled="[[buttonsDisabled]]">
+      <div id="next-button-text" slot="text"></div>
+    </oobe-text-button>
+  </div>
+</oobe-adaptive-dialog>
 
-      #footer-text {
-        padding-top: 16px;
-      }
-
-      #overlay-text {
-        box-sizing: border-box;
-        font-size: 13px;
-        margin: auto;
-        min-height: 200px;
-        padding: 16px;
-        width: 100%;
-      }
-
-      #overlay-title-text {
-        font-size: 15px;
-      }
-
-      #overlay-additional-info-text {
-        color: var(--cros-text-color-disabled);
-        line-height: 20px;
-        padding-top: 20px;
-      }
-    </style>
-    <oobe-adaptive-dialog id="value-prop-dialog" role="dialog">
-      <iron-icon slot="icon" icon="assistant-32:assistant"
-          aria-label$="[[i18nDynamic(locale, 'assistantLogo')]]">
-      </iron-icon>
-      <h1 slot="title" id="title-text"></h1>
-      <div id="animation-container">
-        <webview id="value-prop-view" tabindex="-1"></webview>
-      </div>
-      <div slot="content" id="content-container"
-          class="landscape-vertical-centered">
-        <div class="content" id="subtitle-container"></div>
-        <div class="line" hidden$="[[isMinorMode_]]"></div>
-        <div id="consents-container"></div>
-        <div class="content" id="footer-text" hidden$="[[isMinorMode_]]"></div>
-      </div>
-      <div slot="bottom-buttons">
-        <oobe-text-button id="skip-button" on-click="onSkipTap_"
-            disabled="[[buttonsDisabled]]">
-          <div id="skip-button-text" slot="text"></div>
-        </oobe-text-button>
-        <oobe-text-button id="next-button" inverse="[[!equalWeightButtons_]]"
-            on-click="onNextTap_" disabled="[[buttonsDisabled]]">
-          <div id="next-button-text" slot="text"></div>
-        </oobe-text-button>
-      </div>
-    </oobe-adaptive-dialog>
-
-    <cr-dialog id="learn-more-overlay">
-      <div slot="body">
-        <div id="overlay-text">
-          <div id="overlay-title-text"></div>
-          <div id="overlay-additional-info-text"></div>
-        </div>
-      </div>
-      <div slot="button-container">
-        <oobe-text-button inverse id="overlay-close-button">
-          <div id="overlay-close-button-text" slot="text"></div>
-        </oobe-text-button>
-      </div>
-    </cr-dialog>
-  </template>
-  <script src="assistant_value_prop.js"></script>
-</dom-module>
+<cr-dialog id="learn-more-overlay">
+  <div slot="body">
+    <div id="overlay-text">
+      <div id="overlay-title-text"></div>
+      <div id="overlay-additional-info-text"></div>
+    </div>
+  </div>
+  <div slot="button-container">
+    <oobe-text-button inverse id="overlay-close-button">
+      <div id="overlay-close-button-text" slot="text"></div>
+    </oobe-text-button>
+  </div>
+</cr-dialog>
\ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js b/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js
index e12dc115..d5099bc 100644
--- a/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js
+++ b/chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.js
@@ -11,7 +11,24 @@
  * Event 'loaded' will be fired when the page has been successfully loaded.
  */
 
-/* #js_imports_placeholder */
+import '//resources/cr_elements/cr_dialog/cr_dialog.js';
+import '//resources/polymer/v3_0/iron-icon/iron-icon.js';
+import '../components/dialogs/oobe_adaptive_dialog.js';
+import '../components/buttons/oobe_next_button.js';
+import '../components/buttons/oobe_text_button.js';
+import '../components/common_styles/oobe_dialog_host_styles.m.js';
+import './assistant_common_styles.m.js';
+import './assistant_icon.m.js';
+import './setting_zippy.js';
+
+import {afterNextRender, html, mixinBehaviors, Polymer, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
+
+import {OobeDialogHostBehavior} from '../components/behaviors/oobe_dialog_host_behavior.m.js';
+import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../components/behaviors/oobe_i18n_behavior.m.js';
+
+import {BrowserProxyImpl} from './browser_proxy.m.js';
+import {AssistantNativeIconType, HtmlSanitizer, webviewStripLinksContentScript} from './utils.m.js';
+
 
 /**
  * Name of the screen.
@@ -23,8 +40,8 @@
  * @constructor
  * @extends {PolymerElement}
  */
-const AssistantValuePropBase = Polymer.mixinBehaviors(
-    [OobeI18nBehavior, OobeDialogHostBehavior], Polymer.Element);
+const AssistantValuePropBase =
+    mixinBehaviors([OobeI18nBehavior, OobeDialogHostBehavior], PolymerElement);
 
 /**
  * @polymer
@@ -34,7 +51,9 @@
     return `assistant-value-prop`;
   }
 
-  /* #html_template_placeholder */
+  static get template() {
+    return html`{__html_template__}`;
+  }
 
   static get properties() {
     return {
@@ -165,8 +184,8 @@
      */
     this.sanitizer_ = new HtmlSanitizer();
 
-    /** @private {?assistant.BrowserProxy} */
-    this.browserProxy_ = assistant.BrowserProxyImpl.getInstance();
+    /** @private {?BrowserProxy} */
+    this.browserProxy_ = BrowserProxyImpl.getInstance();
   }
 
   setUrlTemplateForTesting(url) {
@@ -487,8 +506,7 @@
     this.$['overlay-close-button'].addEventListener(
         'click', () => this.hideOverlay());
 
-    Polymer.RenderStatus.afterNextRender(
-        this, () => this.$['next-button'].focus());
+    afterNextRender(this, () => this.$['next-button'].focus());
 
     if (!this.initialized_) {
       this.valuePropView_ = this.$['value-prop-view'];
diff --git a/chrome/browser/resources/chromeos/assistant_optin/modulization_utils.gni b/chrome/browser/resources/chromeos/assistant_optin/modulization_utils.gni
index dbee7aaa..ee507173 100644
--- a/chrome/browser/resources/chromeos/assistant_optin/modulization_utils.gni
+++ b/chrome/browser/resources/chromeos/assistant_optin/modulization_utils.gni
@@ -38,6 +38,7 @@
   # Assistant
   "chrome/browser/resources/chromeos/assistant_optin/assistant_loading.html",
   "chrome/browser/resources/chromeos/assistant_optin/assistant_related_info.html",
+  "chrome/browser/resources/chromeos/assistant_optin/assistant_value_prop.html",
   "chrome/browser/resources/chromeos/assistant_optin/setting_zippy.html",
 
   # Chrome
diff --git a/chrome/browser/resources/chromeos/login/BUILD.gn b/chrome/browser/resources/chromeos/login/BUILD.gn
index c00c9ace..355e2326 100644
--- a/chrome/browser/resources/chromeos/login/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/BUILD.gn
@@ -152,6 +152,7 @@
   out_folder = "$target_gen_dir/$oobe_preprocessed_folder"
   out_manifest = "$target_gen_dir/$existing_unconditional_files_manifest"
   in_files = [
+    "components/display_manager_types.js",
     "cr_ui.js",
     "display_manager.js",
     "i18n_setup.js",
@@ -199,12 +200,10 @@
     "components/behaviors/oobe_focus_behavior.m.js",
     "components/behaviors/oobe_i18n_behavior.m.js",
     "components/behaviors/oobe_scrollable_behavior.m.js",
-    "components/dialogs/oobe_modal_dialog.m.js",
     "components/common_styles/common_styles.m.js",
     "components/common_styles/oobe_dialog_host_styles.m.js",
     "components/common_styles/oobe_flex_layout_styles.m.js",
     "components/oobe_vars/oobe_shared_vars_css.m.js",
-    "components/display_manager_types.m.js",
     "components/long_touch_detector.m.js",
     "components/oobe_icons.m.js",
     "components/oobe_network_icons.m.js",
@@ -239,6 +238,7 @@
     "components/dialogs/oobe_adaptive_dialog.js",
     "components/dialogs/oobe_content_dialog.js",
     "components/dialogs/oobe_loading_dialog.js",
+    "components/dialogs/oobe_modal_dialog.js",
     "components/gaia_button.js",
     "components/gaia_dialog.js",
     "components/gaia_header.js",
@@ -389,7 +389,7 @@
   deps = [
     ":multi_tap_detector",
     "../keyboard:keyboard_utils.m",
-    "components:display_manager_types.m",
+    "components:display_manager_types",
     "components:oobe_types.m",
   ]
   extra_deps = [
diff --git a/chrome/browser/resources/chromeos/login/components/BUILD.gn b/chrome/browser/resources/chromeos/login/components/BUILD.gn
index 33fbebe..8ae59408 100644
--- a/chrome/browser/resources/chromeos/login/components/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/components/BUILD.gn
@@ -18,7 +18,7 @@
     "oobe_vars:closure_compile",
 
     # Local targets
-    ":display_manager_types.m",
+    ":display_manager_types",
     ":gaia_button",
     ":gaia_dialog",
     ":gaia_header",
@@ -53,7 +53,6 @@
   public_deps = [
                   "behaviors:modulize",
                   "common_styles:polymer3_elements",
-                  "dialogs:polymer3_elements",
                   "oobe_vars:polymer3_elements",
 
                   # Local targets
@@ -66,10 +65,10 @@
 ###############################
 # Closure compiler libraries below
 
-js_library("display_manager_types.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/components/display_manager_types.m.js" ]
+js_library("display_manager_types") {
+  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/components/display_manager_types.js" ]
   deps = []
-  extra_deps = [ ":modulize" ]
+  extra_deps = [ ":copy_js" ]
 }
 
 js_library("gaia_button") {
@@ -290,7 +289,6 @@
 
 js_modulizer("modulize") {
   input_files = [
-    "display_manager_types.js",
     "long_touch_detector.js",
     "oobe_select.js",
     "oobe_types.js",
@@ -301,6 +299,15 @@
   namespace_rewrites = []
 }
 
+# Copy existing files to output directory for closure compilation.
+copy("copy_js") {
+  sources = [
+    "display_manager_types.js",
+  ]
+  outputs = [ "$target_gen_dir/{{source_file_part}}" ]
+}
+
+
 html_to_js("web_components") {
   js_files = [
     "gaia_button.js",
diff --git a/chrome/browser/resources/chromeos/login/components/behaviors/BUILD.gn b/chrome/browser/resources/chromeos/login/components/behaviors/BUILD.gn
index 8984a33..10ac0fa 100644
--- a/chrome/browser/resources/chromeos/login/components/behaviors/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/components/behaviors/BUILD.gn
@@ -21,7 +21,7 @@
 js_library("login_screen_behavior.m") {
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/components/behaviors/login_screen_behavior.m.js" ]
   deps = [
-    "..:display_manager_types.m",
+    "..:display_manager_types",
     "..:oobe_types.m",
   ]
   extra_deps = [ ":modulize" ]
diff --git a/chrome/browser/resources/chromeos/login/components/behaviors/login_screen_behavior.js b/chrome/browser/resources/chromeos/login/components/behaviors/login_screen_behavior.js
index aad0b04..45d9cd1 100644
--- a/chrome/browser/resources/chromeos/login/components/behaviors/login_screen_behavior.js
+++ b/chrome/browser/resources/chromeos/login/components/behaviors/login_screen_behavior.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// #import {OOBE_UI_STATE} from '../display_manager_types.m.js';
+// #import {OOBE_UI_STATE} from '../display_manager_types.js';
 // #import {OobeTypes} from '../oobe_types.m.js';
 // #import {Oobe} from '../../cr_ui.js';
 
diff --git a/chrome/browser/resources/chromeos/login/components/dialogs/BUILD.gn b/chrome/browser/resources/chromeos/login/components/dialogs/BUILD.gn
index b2d6e4ab..a059d71 100644
--- a/chrome/browser/resources/chromeos/login/components/dialogs/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/components/dialogs/BUILD.gn
@@ -4,12 +4,6 @@
 
 import("//third_party/closure_compiler/compile_js.gni")
 import("//tools/polymer/html_to_js.gni")
-import("//tools/polymer/polymer.gni")
-import("../../oobe_auto_imports.gni")
-
-group("polymer3_elements") {
-  public_deps = [ ":oobe_modal_dialog_module" ]
-}
 
 js_type_check("closure_compile") {
   is_polymer3 = true
@@ -17,12 +11,10 @@
     ":oobe_adaptive_dialog",
     ":oobe_content_dialog",
     ":oobe_loading_dialog",
-    ":oobe_modal_dialog.m",
+    ":oobe_modal_dialog",
   ]
 }
 
-#### Polymer3 / JS Modules libraries
-
 js_library("oobe_adaptive_dialog") {
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/components/dialogs/oobe_adaptive_dialog.js" ]
   deps = [
@@ -56,8 +48,8 @@
   extra_deps = [ ":web_components" ]
 }
 
-js_library("oobe_modal_dialog.m") {
-  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.m.js" ]
+js_library("oobe_modal_dialog") {
+  sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.js" ]
   deps = [
     "../behaviors:oobe_i18n_behavior.m",
     "../buttons:oobe_text_button",
@@ -68,17 +60,7 @@
     "$externs_path/chrome_send.js",
     "//ui/webui/resources/cr_elements/cr_dialog/cr_dialog_externs.js",
   ]
-  extra_deps = [ ":oobe_modal_dialog_module" ]
-}
-
-#### Polymer3 auto generation
-
-polymer_modulizer("oobe_modal_dialog") {
-  js_file = "oobe_modal_dialog.js"
-  html_file = "oobe_modal_dialog.html"
-  html_type = "dom-module"
-  auto_imports = oobe_auto_imports
-  migrated_imports = oobe_migrated_imports
+  extra_deps = [ ":web_components" ]
 }
 
 html_to_js("web_components") {
@@ -86,5 +68,6 @@
     "oobe_adaptive_dialog.js",
     "oobe_content_dialog.js",
     "oobe_loading_dialog.js",
+    "oobe_modal_dialog.js",
   ]
 }
diff --git a/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.html b/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.html
index 7594af7b..ff28b6a 100644
--- a/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.html
+++ b/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.html
@@ -4,92 +4,62 @@
 found in the LICENSE file.
 -->
 
-<link rel="import" href="chrome://resources/html/polymer.html">
-<link rel="import" href="chrome://resources/polymer/v1_0/paper-styles/color.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
-<link rel="import" href="chrome://resources/cr_elements/cr_shared_style.css.html">
+<style include="oobe-common-styles">
+  :host {
+    --cr-dialog-title-slot-padding-bottom:
+        var(--oobe-modal-dialog-title-slot-padding-bottom, 8px);
+    --cr-dialog-width: var(--oobe-modal-dialog-width, 552px);
+    --cr-primary-text-color: var(--oobe-header-text-color);
+    --cr-secondary-text-color: var(--oobe-text-color);
+    --cr-dialog-top-container-min-height : 0;
+    flex: 1 1 auto;
+  }
 
-<link rel="import" href="../behaviors/oobe_i18n_behavior.html">
-<link rel="import" href="../buttons/oobe_text_button.html">
-<link rel="import" href="../common_styles/common_styles.html">
+  #modalDialogTitle {
+    font-family: var(--oobe-default-font-family);
+    font-size: var(--oobe-modal-dialog-header-font-size);
+    font-weight: var(--oobe-modal-dialog-header-font-weight);
+    margin: 0;
+    user-select: none;
+  }
 
-<!--
-OOBE Modal Dialog
-
-Implements the 'OOBE Modal Dialog' according to MD specs.
-
-The dialog provides two properties that can be set directly from HTML.
-  - titleKey - ID of the localized string to be used for the title.
-  - contentKey - ID of the localized string to be used for the content.
-
-  Alternatively, one can set their own title and content into the 'title'
-  and 'content' slots.
-
-  Buttons are optional and go into the 'buttons' slot. If none are specified,
-  a default button with the text 'Close' will be shown. Users might want to
-  trigger some action on their side by using 'on-close=myMethod'.
--->
-<dom-module id="oobe-modal-dialog">
-  <template>
-    <style include="oobe-common-styles">
-      :host {
-        --cr-dialog-title-slot-padding-bottom:
-            var(--oobe-modal-dialog-title-slot-padding-bottom, 8px);
-        --cr-dialog-width: var(--oobe-modal-dialog-width, 552px);
-        --cr-primary-text-color: var(--oobe-header-text-color);
-        --cr-secondary-text-color: var(--oobe-text-color);
-        --cr-dialog-top-container-min-height : 0;
-        flex: 1 1 auto;
-      }
-
-      #modalDialogTitle {
-        font-family: var(--oobe-default-font-family);
-        font-size: var(--oobe-modal-dialog-header-font-size);
-        font-weight: var(--oobe-modal-dialog-header-font-weight);
-        margin: 0;
-        user-select: none;
-      }
-
-      #contentContainer {
-        height: var(--oobe-modal-dialog-content-height);
-        padding-bottom:
-            var(--oobe-modal-dialog-content-slot-padding-bottom, 12px);
-        padding-inline-end:
-            var(--oobe-modal-dialog-content-slot-padding-end, 20px);
-        padding-inline-start:
-            var(--oobe-modal-dialog-content-slot-padding-start, 20px);
-      }
-    </style>
-    <cr-dialog hide-backdrop$="[[shouldHideBackdrop]]" id="modalDialog"
-        on-close="onClose_">
-      <!-- Title -->
-      <div id="modalDialogTitle" slot="title" hidden="[[shouldHideTitleRow]]">
-        <slot name="title">
-          <template is="dom-if" if="[[titleKey]]">
-            [[i18nDynamic(locale, titleKey)]]
-          </template>
-        </slot>
-      </div>
-      <!-- Content to be shown -->
-      <div id="contentContainer" class="oobe-default-font" slot="body"
-          class="flex-grow layout vertical not-resizable">
-        <slot name="content">
-          <template is="dom-if" if="[[contentKey]]">
-            [[i18nDynamic(locale, contentKey)]]
-          </template>
-        </slot>
-      </div>
-      <!-- Close Button -->
-      <div id="buttonContainer" slot="button-container"
-          hidden="[[shouldHideCloseButton]]"
-          class="layout horizontal">
-        <slot name="buttons">
-          <oobe-text-button inverse id="closeButton" on-click="hideDialog"
-              text-key="oobeModalDialogClose">
-          </oobe-text-button>
-        </slot>
-      </div>
-    </cr-dialog>
-  </template>
-  <script src="oobe_modal_dialog.js"></script>
-</dom-module>
+  #contentContainer {
+    height: var(--oobe-modal-dialog-content-height);
+    padding-bottom:
+        var(--oobe-modal-dialog-content-slot-padding-bottom, 12px);
+    padding-inline-end:
+        var(--oobe-modal-dialog-content-slot-padding-end, 20px);
+    padding-inline-start:
+        var(--oobe-modal-dialog-content-slot-padding-start, 20px);
+  }
+</style>
+<cr-dialog hide-backdrop$="[[shouldHideBackdrop]]" id="modalDialog"
+    on-close="onClose_">
+  <!-- Title -->
+  <div id="modalDialogTitle" slot="title" hidden="[[shouldHideTitleRow]]">
+    <slot name="title">
+      <template is="dom-if" if="[[titleKey]]">
+        [[i18nDynamic(locale, titleKey)]]
+      </template>
+    </slot>
+  </div>
+  <!-- Content to be shown -->
+  <div id="contentContainer" class="oobe-default-font" slot="body"
+      class="flex-grow layout vertical not-resizable">
+    <slot name="content">
+      <template is="dom-if" if="[[contentKey]]">
+        [[i18nDynamic(locale, contentKey)]]
+      </template>
+    </slot>
+  </div>
+  <!-- Close Button -->
+  <div id="buttonContainer" slot="button-container"
+      hidden="[[shouldHideCloseButton]]"
+      class="layout horizontal">
+    <slot name="buttons">
+      <oobe-text-button inverse id="closeButton" on-click="hideDialog"
+          text-key="oobeModalDialogClose">
+      </oobe-text-button>
+    </slot>
+  </div>
+</cr-dialog>
diff --git a/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.js b/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.js
index 0da550a7..b79d82d7 100644
--- a/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.js
+++ b/chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.js
@@ -2,71 +2,117 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-Polymer({
-  is: 'oobe-modal-dialog',
+/**
+ * @fileoverview
+ * OOBE Modal Dialog
+ *
+ * Implements the 'OOBE Modal Dialog' according to MD specs.
+ *
+ * The dialog provides two properties that can be set directly from HTML.
+ *  - titleKey - ID of the localized string to be used for the title.
+ *  - contentKey - ID of the localized string to be used for the content.
+ *
+ *  Alternatively, one can set their own title and content into the 'title'
+ *  and 'content' slots.
+ *
+ *  Buttons are optional and go into the 'buttons' slot. If none are specified,
+ *  a default button with the text 'Close' will be shown. Users might want to
+ *  trigger some action on their side by using 'on-close=myMethod'.
+ */
 
-  behaviors: [OobeI18nBehavior],
+import '//resources/polymer/v3_0/paper-styles/color.js';
+import '//resources/cr_elements/cr_dialog/cr_dialog.js';
+import '//resources/cr_elements/cr_shared_style.css.js';
+import '../buttons/oobe_text_button.js';
+import '../common_styles/common_styles.m.js';
 
-  properties: {
-    /* The ID of the localized string to be used as title text when no "title"
-     * slot elements are specified.
-     */
-    titleKey: {
-      type: String,
-    },
-    /* The ID of the localized string to be used as the content when no
-     * "content" slot elements are specified.
-     */
-    contentKey: {
-      type: String,
-    },
+import {html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
-    /**
-     * True if close button should be hidden.
-     * @type {boolean}
-     */
-    shouldHideCloseButton: {
-      type: Boolean,
-      value: false,
-    },
+import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../behaviors/oobe_i18n_behavior.m.js';
 
-    /**
-     * True if title row should be hidden.
-     * @type {boolean}
-     */
-    shouldHideTitleRow: {
-      type: Boolean,
-      value: false,
-    },
+/**
+ * @constructor
+ * @extends {PolymerElement}
+ * @implements {OobeI18nBehaviorInterface}
+ */
+const OobeModalDialogBase = mixinBehaviors([OobeI18nBehavior], PolymerElement);
 
-    /**
-     * True if confirmation dialog backdrop should be hidden.
-     * @type {boolean}
-     */
-    shouldHideBackdrop: {
-      type: Boolean,
-      value: false,
-    },
-  },
+/** @polymer */
+export class OobeModalDialog extends OobeModalDialogBase {
+  static get template() {
+    return html`{__html_template__}`;
+  }
+
+  static get is() {
+    return 'oobe-modal-dialog';
+  }
+
+  static get properties() {
+    return {
+      /* The ID of the localized string to be used as title text when no "title"
+       * slot elements are specified.
+       */
+      titleKey: {
+        type: String,
+      },
+      /* The ID of the localized string to be used as the content when no
+       * "content" slot elements are specified.
+       */
+      contentKey: {
+        type: String,
+      },
+
+      /**
+       * True if close button should be hidden.
+       * @type {boolean}
+       */
+      shouldHideCloseButton: {
+        type: Boolean,
+        value: false,
+      },
+
+      /**
+       * True if title row should be hidden.
+       * @type {boolean}
+       */
+      shouldHideTitleRow: {
+        type: Boolean,
+        value: false,
+      },
+
+      /**
+       * True if confirmation dialog backdrop should be hidden.
+       * @type {boolean}
+       */
+      shouldHideBackdrop: {
+        type: Boolean,
+        value: false,
+      },
+    };
+  }
 
   get open() {
     return this.$.modalDialog.open;
-  },
+  }
 
-  ready() {},
+  ready() {
+    super.ready();
+  }
 
   /* Shows the modal dialog and changes the focus to the close button. */
   showDialog() {
     chrome.send('enableShelfButtons', [false]);
     this.$.modalDialog.showModal();
     this.$.closeButton.focus();
-  },
+  }
 
   hideDialog() {
     this.$.modalDialog.close();
-  },
+  }
 
   onClose_() {
     chrome.send('enableShelfButtons', [true]);
-  },
-});
+  }
+}
+
+customElements.define(OobeModalDialog.is, OobeModalDialog);
diff --git a/chrome/browser/resources/chromeos/login/components/display_manager_types.js b/chrome/browser/resources/chromeos/login/components/display_manager_types.js
index 181d9ddf..28a5809 100644
--- a/chrome/browser/resources/chromeos/login/components/display_manager_types.js
+++ b/chrome/browser/resources/chromeos/login/components/display_manager_types.js
@@ -11,7 +11,7 @@
  * Possible types of UI.
  * @enum {string}
  */
-/* #export */ const DISPLAY_TYPE = {
+export const DISPLAY_TYPE = {
   UNKNOWN: 'unknown',
   OOBE: 'oobe',
   LOGIN: 'login',
@@ -25,7 +25,7 @@
  * Should be in sync with login_types.h
  * @enum {number}
  */
-/* #export */ const OOBE_UI_STATE = {
+export const OOBE_UI_STATE = {
   HIDDEN: 0, /* Any OOBE screen without specific state */
   GAIA_SIGNIN: 1,
   ACCOUNT_PICKER: 2,
@@ -47,11 +47,11 @@
 };
 
 // TODO(crbug.com/1229130) - Refactor/remove these constants.
-/* #export */ const SCREEN_WELCOME = 'connect';
-/* #export */ const SCREEN_GAIA_SIGNIN = 'gaia-signin';
-/* #export */ const SCREEN_DEVICE_DISABLED = 'device-disabled';
+export const SCREEN_WELCOME = 'connect';
+export const SCREEN_GAIA_SIGNIN = 'gaia-signin';
+export const SCREEN_DEVICE_DISABLED = 'device-disabled';
 
 /* Accelerator identifiers.
  * Must be kept in sync with webui_accelerator_mapping.cc.
  */
-/* #export */ const ACCELERATOR_CANCEL = 'cancel';
+export const ACCELERATOR_CANCEL = 'cancel';
diff --git a/chrome/browser/resources/chromeos/login/cr_ui.js b/chrome/browser/resources/chromeos/login/cr_ui.js
index 1505ad5..df662a0 100644
--- a/chrome/browser/resources/chromeos/login/cr_ui.js
+++ b/chrome/browser/resources/chromeos/login/cr_ui.js
@@ -14,7 +14,7 @@
 import {addSingletonGetter} from 'chrome://resources/ash/common/cr_deprecated.js';
 
 import {DisplayManager} from './display_manager.js';
-import {DISPLAY_TYPE} from './components/display_manager_types.m.js';
+import {DISPLAY_TYPE} from './components/display_manager_types.js';
 import {loadTimeData} from './i18n_setup.js';
 import {OobeTypes} from './components/oobe_types.m.js';
 
diff --git a/chrome/browser/resources/chromeos/login/display_manager.js b/chrome/browser/resources/chromeos/login/display_manager.js
index da11872d..42ffe6e 100644
--- a/chrome/browser/resources/chromeos/login/display_manager.js
+++ b/chrome/browser/resources/chromeos/login/display_manager.js
@@ -11,7 +11,7 @@
 import {loadTimeData} from './i18n_setup.js';
 import {OobeTypes} from './components/oobe_types.m.js';
 
-import {DISPLAY_TYPE, SCREEN_DEVICE_DISABLED, OOBE_UI_STATE, SCREEN_WELCOME } from './components/display_manager_types.m.js';
+import {DISPLAY_TYPE, SCREEN_DEVICE_DISABLED, OOBE_UI_STATE, SCREEN_WELCOME } from './components/display_manager_types.js';
 import {MultiTapDetector} from './multi_tap_detector.js';
 import {keyboard} from './keyboard_utils.m.js';
 
diff --git a/chrome/browser/resources/chromeos/login/gaia_icon_button.css b/chrome/browser/resources/chromeos/login/gaia_icon_button.css
deleted file mode 100644
index b343d96..0000000
--- a/chrome/browser/resources/chromeos/login/gaia_icon_button.css
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Copyright 2015 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file. */
-
-cr-icon-button {
-  --cr-icon-button-fill-color: currentColor;
-  --cr-icon-button-icon-size: 24px;
-  --cr-icon-button-size: 24px;
-  margin: 0;
-}
diff --git a/chrome/browser/resources/chromeos/login/oobe_auto_imports.gni b/chrome/browser/resources/chromeos/login/oobe_auto_imports.gni
index 17d11de..910198d 100644
--- a/chrome/browser/resources/chromeos/login/oobe_auto_imports.gni
+++ b/chrome/browser/resources/chromeos/login/oobe_auto_imports.gni
@@ -117,6 +117,8 @@
   "chrome/browser/resources/chromeos/login/components/dialogs/oobe_adaptive_dialog.html",
   "chrome/browser/resources/chromeos/login/components/dialogs/oobe_content_dialog.html",
   "chrome/browser/resources/chromeos/login/components/dialogs/oobe_loading_dialog.html",
+  "chrome/browser/resources/chromeos/login/components/dialogs/oobe_modal_dialog.html",
+  "chrome/browser/resources/chromeos/login/components/display_manager_types.html",
   "chrome/browser/resources/chromeos/login/components/gaia_button.html",
   "chrome/browser/resources/chromeos/login/components/gaia_dialog.html",
   "chrome/browser/resources/chromeos/login/components/hd_iron_icon.html",
diff --git a/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn b/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
index d61560e..62fae82 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/screens/common/BUILD.gn
@@ -134,7 +134,7 @@
     "../../components/buttons:oobe_text_button",
     "../../components/dialogs:oobe_adaptive_dialog",
     "../../components/dialogs:oobe_loading_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
   ]
 
   externs_list = [
@@ -166,7 +166,7 @@
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js" ]
   deps = [
     "../..:display_manager",
-    "../../components:display_manager_types.m",
+    "../../components:display_manager_types",
     "../../components:oobe_select.m",
     "../../components:oobe_types.m",
     "../../components:web_view_helper.m",
@@ -179,7 +179,7 @@
     "../../components/buttons:oobe_text_button",
     "../../components/dialogs:oobe_adaptive_dialog",
     "../../components/dialogs:oobe_loading_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
   extra_deps = [ ":web_components" ]
@@ -242,7 +242,7 @@
 js_library("fingerprint_setup") {
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/fingerprint_setup.js" ]
   deps = [
-    "../../components:display_manager_types.m",
+    "../../components:display_manager_types",
     "../../components:oobe_cr_lottie",
     "../../components/behaviors:login_screen_behavior.m",
     "../../components/behaviors:multi_step_behavior.m",
@@ -306,7 +306,7 @@
     "../../components/buttons:oobe_text_button",
     "../../components/dialogs:oobe_adaptive_dialog",
     "../../components/dialogs:oobe_loading_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
   extra_deps = [ ":web_components" ]
@@ -365,7 +365,7 @@
 js_library("marketing_opt_in") {
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.js" ]
   deps = [
-    "../../components:display_manager_types.m",
+    "../../components:display_manager_types",
     "../../components:oobe_a11y_option",
     "../../components:oobe_cr_lottie",
     "../../components/behaviors:login_screen_behavior.m",
@@ -426,7 +426,7 @@
     "../../components/behaviors:multi_step_behavior.m",
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/dialogs:oobe_adaptive_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
 
@@ -445,7 +445,7 @@
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_text_button",
     "../../components/dialogs:oobe_adaptive_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
     "//ui/webui/resources/js:util",
   ]
@@ -464,7 +464,7 @@
     "../../components/buttons:oobe_text_button",
     "../../components/dialogs:oobe_adaptive_dialog",
     "../../components/dialogs:oobe_loading_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
 
@@ -554,7 +554,7 @@
     "../../components/buttons:oobe_text_button",
     "../../components/dialogs:oobe_adaptive_dialog",
     "../../components/dialogs:oobe_loading_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
   ]
   extra_deps = [ ":web_components" ]
 }
@@ -562,7 +562,7 @@
 js_library("signin_fatal_error") {
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/signin_fatal_error.js" ]
   deps = [
-    "../../components:display_manager_types.m",
+    "../../components:display_manager_types",
     "../../components:oobe_types.m",
     "../../components/behaviors:login_screen_behavior.m",
     "../../components/behaviors:oobe_dialog_host_behavior.m",
@@ -590,7 +590,7 @@
 js_library("sync_consent.m") {
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/sync_consent.m.js" ]
   deps = [
-    "../../components:display_manager_types.m",
+    "../../components:display_manager_types",
     "../../components/behaviors:multi_step_behavior.m",
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_text_button",
@@ -605,7 +605,7 @@
 js_library("theme_selection") {
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/theme_selection.js" ]
   deps = [
-    "../../components:display_manager_types.m",
+    "../../components:display_manager_types",
     "../../components/behaviors:login_screen_behavior.m",
     "../../components/behaviors:oobe_dialog_host_behavior.m",
     "../../components/behaviors:oobe_i18n_behavior.m",
@@ -661,7 +661,7 @@
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/common/error_message.js" ]
   deps = [
     "../../:cr_ui",
-    "../../components:display_manager_types.m",
+    "../../components:display_manager_types",
     "../../components:network_select_login",
     "../../components/behaviors:login_screen_behavior.m",
     "../../components/behaviors:oobe_dialog_host_behavior.m",
diff --git a/chrome/browser/resources/chromeos/login/screens/common/app_downloading.js b/chrome/browser/resources/chromeos/login/screens/common/app_downloading.js
index ef4c4f1..31febea1 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/app_downloading.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/app_downloading.js
@@ -20,7 +20,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 
 
 /**
diff --git a/chrome/browser/resources/chromeos/login/screens/common/app_launch_splash.js b/chrome/browser/resources/chromeos/login/screens/common/app_launch_splash.js
index 4fcaebf6..a3915b5 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/app_launch_splash.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/app_launch_splash.js
@@ -14,7 +14,7 @@
 
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 
 
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/arc_terms_of_service.js b/chrome/browser/resources/chromeos/login/screens/common/arc_terms_of_service.js
index 3a253a85..dfe820af 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/arc_terms_of_service.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/arc_terms_of_service.js
@@ -16,7 +16,6 @@
 import '../../components/common_styles/common_styles.m.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_loading_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 
 import {loadTimeData} from '//resources/js/load_time_data.m.js';
 import {html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -26,7 +25,8 @@
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 import {getSelectedValue} from '../../components/oobe_select.m.js';
 import {OobeTypes} from '../../components/oobe_types.m.js';
 import {WebViewHelper} from '../../components/web_view_helper.m.js';
@@ -59,18 +59,18 @@
 
 /**
  * @typedef {{
- *   arcBackupRestoreChildPopup: OobeModalDialogElement,
- *   arcBackupRestorePopup: OobeModalDialogElement,
- *   arcLocationServicePopup: OobeModalDialogElement,
- *   arcMetricsPopup: OobeModalDialogElement,
+ *   arcBackupRestoreChildPopup: OobeModalDialog,
+ *   arcBackupRestorePopup: OobeModalDialog,
+ *   arcLocationServicePopup: OobeModalDialog,
+ *   arcMetricsPopup: OobeModalDialog,
  *   arcTosAcceptButton: OobeTextButton,
  *   arcTosDialog: OobeAdaptiveDialog,
  *   arcTosNextButton: OobeTextButton,
- *   arcTosOverlayPrivacyPolicy: OobeModalDialogElement,
+ *   arcTosOverlayPrivacyPolicy: OobeModalDialog,
  *   arcTosOverlayWebview: WebView,
  *   arcTosRetryButton: OobeTextButton,
  *   arcTosView: WebView,
- *   arcPaiPopup: OobeModalDialogElement,
+ *   arcPaiPopup: OobeModalDialog,
  * }}
  */
 ArcTermsOfserviceBase.$;
diff --git a/chrome/browser/resources/chromeos/login/screens/common/assistant_optin.js b/chrome/browser/resources/chromeos/login/screens/common/assistant_optin.js
index 97fc531..8cb2d9a 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/assistant_optin.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/assistant_optin.js
@@ -13,7 +13,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 
 
 /**
diff --git a/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js b/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js
index bdb9340f..24f3101 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/consolidated_consent.js
@@ -19,7 +19,7 @@
 import '../../components/oobe_icons.m.js';
 import '../../components/dialogs/oobe_adaptive_dialog.js';
 import '../../components/dialogs/oobe_loading_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
+import '../../components/dialogs/oobe_modal_dialog.js';
 
 import {loadTimeData} from '//resources/js/load_time_data.m.js';
 import {dom, html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -27,7 +27,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 import {getSelectedTitle, getSelectedValue, SelectListType, setupSelect} from '../../components/oobe_select.m.js';
 import {OobeTypes} from '../../components/oobe_types.m.js';
 import {WebViewHelper} from '../../components/web_view_helper.m.js';
diff --git a/chrome/browser/resources/chromeos/login/screens/common/device_disabled.js b/chrome/browser/resources/chromeos/login/screens/common/device_disabled.js
index 2221dbc..036b6fb 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/device_disabled.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/device_disabled.js
@@ -17,7 +17,7 @@
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 
 
 /**
diff --git a/chrome/browser/resources/chromeos/login/screens/common/error_message.js b/chrome/browser/resources/chromeos/login/screens/common/error_message.js
index 11abba2..c7d39a1 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/error_message.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/error_message.js
@@ -21,7 +21,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 import {Oobe} from '../../cr_ui.js';
 
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/fingerprint_setup.js b/chrome/browser/resources/chromeos/login/screens/common/fingerprint_setup.js
index 1346d20..834c6768 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/fingerprint_setup.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/fingerprint_setup.js
@@ -22,7 +22,7 @@
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 import {OobeCrLottie} from '../../components/oobe_cr_lottie.js';
 
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.js b/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.js
index 97dbc125..ea35d3c 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/gaia_signin.js
@@ -28,7 +28,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 import {OobeTypes} from '../../components/oobe_types.m.js';
 import {Oobe} from '../../cr_ui.js';
 import {invokePolymerMethod} from '../../display_manager.js';
diff --git a/chrome/browser/resources/chromeos/login/screens/common/guest_tos.js b/chrome/browser/resources/chromeos/login/screens/common/guest_tos.js
index d8f9678..00787c8 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/guest_tos.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/guest_tos.js
@@ -14,7 +14,7 @@
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/oobe_icons.m.js';
 import '../../components/dialogs/oobe_loading_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
+import '../../components/dialogs/oobe_modal_dialog.js';
 
 import {html, mixinBehaviors, Polymer, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
@@ -25,7 +25,7 @@
 import {OobeNextButton} from '../../components/buttons/oobe_next_button.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 import {WebViewHelper} from '../../components/web_view_helper.m.js';
 import {WebViewLoader} from '../../components/web_view_loader.m.js';
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/local_state_error.js b/chrome/browser/resources/chromeos/login/screens/common/local_state_error.js
index d199847..6c2bfb4 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/local_state_error.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/local_state_error.js
@@ -18,7 +18,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 
 
 /**
diff --git a/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.js b/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.js
index 92d895d..cc95498 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/marketing_opt_in.js
@@ -24,7 +24,7 @@
 import {OobeIconButton} from '../../components/buttons/oobe_icon_button.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 import {OobeA11yOption} from '../../components/oobe_a11y_option.js';
 
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/oobe_eula.js b/chrome/browser/resources/chromeos/login/screens/common/oobe_eula.js
index f560189..04a27a7 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/oobe_eula.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/oobe_eula.js
@@ -10,7 +10,6 @@
 import '../../components/oobe_icons.m.js';
 import '../../components/common_styles/common_styles.m.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 import '../../components/buttons/oobe_back_button.js';
 import '../../components/buttons/oobe_text_button.js';
 
@@ -22,6 +21,7 @@
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
 import {WebViewHelper} from '../../components/web_view_helper.m.js';
 import {Oobe} from '../../cr_ui.js';
 
@@ -287,7 +287,7 @@
  * @typedef {{
  *   additionalChromeToSFrame: WebView,
  *   additionalTerms: HTMLElement,
- *   additionalToS: OobeModalDialogElement,
+ *   additionalToS: OobeModalDialog,
  *   closeAdditionalTos: PolymerElement,
  *   crosEulaFrame: WebView,
  *   eulaDialog:  OobeAdaptiveDialog,
diff --git a/chrome/browser/resources/chromeos/login/screens/common/oobe_reset.js b/chrome/browser/resources/chromeos/login/screens/common/oobe_reset.js
index 62c116e..2545d5a 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/oobe_reset.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/oobe_reset.js
@@ -12,7 +12,6 @@
 import '../../components/oobe_icons.m.js';
 import '../../components/common_styles/common_styles.m.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 import '../../components/buttons/oobe_text_button.js';
 
 import {announceAccessibleMessage} from '//resources/js/util.js';
@@ -22,6 +21,7 @@
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
 
 
 /** @enum {number} */
@@ -75,7 +75,7 @@
 /**
  * @typedef {{
  *   resetDialog:  OobeAdaptiveDialog,
- *   confirmationDialog:  OobeModalDialogElement,
+ *   confirmationDialog:  OobeModalDialog,
  *   tpmFirmwareUpdateCheckbox, CrCheckBox,
  * }}
  */
diff --git a/chrome/browser/resources/chromeos/login/screens/common/os_install.js b/chrome/browser/resources/chromeos/login/screens/common/os_install.js
index 60312f82..3987c04 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/os_install.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/os_install.js
@@ -15,7 +15,7 @@
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_adaptive_dialog.js';
 import '../../components/dialogs/oobe_loading_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
+import '../../components/dialogs/oobe_modal_dialog.js';
 
 import {afterNextRender, html, mixinBehaviors, Polymer, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/pin_setup.js b/chrome/browser/resources/chromeos/login/screens/common/pin_setup.js
index 09109ed..cd32b8a 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/pin_setup.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/pin_setup.js
@@ -22,7 +22,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 import {OobeTypes} from '../../components/oobe_types.m.js';
 
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/recommend_apps.js b/chrome/browser/resources/chromeos/login/screens/common/recommend_apps.js
index 1b14545f..ee46896 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/recommend_apps.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/recommend_apps.js
@@ -21,7 +21,7 @@
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 import {OobeAppsList} from '../../components/oobe_apps_list.js';
 
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/saml_confirm_password.js b/chrome/browser/resources/chromeos/login/screens/common/saml_confirm_password.js
index 835a6765..85e79a5 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/saml_confirm_password.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/saml_confirm_password.js
@@ -11,7 +11,6 @@
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_adaptive_dialog.js';
 import '../../components/dialogs/oobe_loading_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 import '../../components/buttons/oobe_next_button.js';
 import '../../components/buttons/oobe_text_button.js';
 
@@ -20,7 +19,8 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 import {addSubmitListener} from '../../login_ui_tools.js';
 
 
@@ -47,7 +47,7 @@
  * @typedef {{
  *   passwordInput:  CrInputElement,
  *   confirmPasswordInput: CrInputElement,
- *   cancelConfirmDlg: OobeModalDialogElement
+ *   cancelConfirmDlg: OobeModalDialog
  * }}
  */
 SamlConfirmPasswordBase.$;
diff --git a/chrome/browser/resources/chromeos/login/screens/common/signin_fatal_error.js b/chrome/browser/resources/chromeos/login/screens/common/signin_fatal_error.js
index c8923f8..dad3e6b 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/signin_fatal_error.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/signin_fatal_error.js
@@ -19,7 +19,7 @@
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 import {OobeTypes} from '../../components/oobe_types.m.js';
 
 
diff --git a/chrome/browser/resources/chromeos/login/screens/common/theme_selection.js b/chrome/browser/resources/chromeos/login/screens/common/theme_selection.js
index f4a1722..9ba1570 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/theme_selection.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/theme_selection.js
@@ -20,7 +20,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 
 
 /**
diff --git a/chrome/browser/resources/chromeos/login/screens/common/user_creation.js b/chrome/browser/resources/chromeos/login/screens/common/user_creation.js
index c5b1b9ab..b3c9a739 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/user_creation.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/user_creation.js
@@ -13,14 +13,14 @@
 import '../../components/common_styles/cr_card_radio_group_styles.css.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_adaptive_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 
 import {html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 import {Oobe} from '../../cr_ui.js';
 
 
@@ -62,7 +62,7 @@
 
 /**
  * @typedef {{
- *   learnMoreDialog:  OobeModalDialogElement,
+ *   learnMoreDialog:  OobeModalDialog,
  *   learnMoreLink: HTMLAnchorElement,
  * }}
  */
diff --git a/chrome/browser/resources/chromeos/login/screens/common/wrong_hwid.js b/chrome/browser/resources/chromeos/login/screens/common/wrong_hwid.js
index f02db09..9e08601a 100644
--- a/chrome/browser/resources/chromeos/login/screens/common/wrong_hwid.js
+++ b/chrome/browser/resources/chromeos/login/screens/common/wrong_hwid.js
@@ -18,7 +18,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 
 
 /**
diff --git a/chrome/browser/resources/chromeos/login/screens/login/BUILD.gn b/chrome/browser/resources/chromeos/login/screens/login/BUILD.gn
index f206dbd..398d974 100644
--- a/chrome/browser/resources/chromeos/login/screens/login/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/screens/login/BUILD.gn
@@ -36,7 +36,7 @@
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_next_button",
     "../../components/buttons:oobe_text_button",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
   ]
   externs_list =
       [ "//ui/webui/resources/cr_elements/cr_input/cr_input_externs.js" ]
@@ -115,7 +115,7 @@
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_next_button",
     "../../components/buttons:oobe_text_button",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
   ]
   extra_deps = [ ":web_components" ]
 }
@@ -128,7 +128,7 @@
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_next_button",
     "../../components/buttons:oobe_text_button",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
   ]
   extra_deps = [ ":web_components" ]
   externs_list =
@@ -144,7 +144,7 @@
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_next_button",
     "../../components/buttons:oobe_text_button",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
   extra_deps = [ ":web_components" ]
diff --git a/chrome/browser/resources/chromeos/login/screens/login/active_directory_password_change.js b/chrome/browser/resources/chromeos/login/screens/login/active_directory_password_change.js
index f9e6860..99d4d70 100644
--- a/chrome/browser/resources/chromeos/login/screens/login/active_directory_password_change.js
+++ b/chrome/browser/resources/chromeos/login/screens/login/active_directory_password_change.js
@@ -16,7 +16,6 @@
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_adaptive_dialog.js';
 import '../../components/dialogs/oobe_loading_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 
 import {html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
@@ -24,6 +23,7 @@
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
 
 
 /**
@@ -64,7 +64,7 @@
 
 /**
  * @typedef {{
- *   errorDialog:  OobeModalDialogElement,
+ *   errorDialog:  OobeModalDialog,
  *   oldPassword:  CrInputElement,
  *   newPassword:  CrInputElement,
  * }}
diff --git a/chrome/browser/resources/chromeos/login/screens/login/encryption_migration.js b/chrome/browser/resources/chromeos/login/screens/login/encryption_migration.js
index 9aeb9b5..847eabd 100644
--- a/chrome/browser/resources/chromeos/login/screens/login/encryption_migration.js
+++ b/chrome/browser/resources/chromeos/login/screens/login/encryption_migration.js
@@ -19,7 +19,7 @@
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 
 
 /**
diff --git a/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.js b/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.js
index 8b1c2eb..dca04bb 100644
--- a/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.js
+++ b/chrome/browser/resources/chromeos/login/screens/login/gaia_password_changed.js
@@ -22,7 +22,7 @@
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 import {addSubmitListener} from '../../login_ui_tools.js';
 
 
diff --git a/chrome/browser/resources/chromeos/login/screens/login/update_required_card.js b/chrome/browser/resources/chromeos/login/screens/login/update_required_card.js
index dff3bae..64ae099 100644
--- a/chrome/browser/resources/chromeos/login/screens/login/update_required_card.js
+++ b/chrome/browser/resources/chromeos/login/screens/login/update_required_card.js
@@ -12,7 +12,6 @@
 import '../../components/common_styles/common_styles.m.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_adaptive_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 
 import {sanitizeInnerHtml} from '//resources/ash/common/parse_html_subset.js';
 import {loadTimeData} from '//resources/js/load_time_data.m.js';
@@ -21,7 +20,8 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
-import {OOBE_UI_STATE} from '../../components/display_manager_types.m.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
+import {OOBE_UI_STATE} from '../../components/display_manager_types.js';
 
 import {CheckingDownloadingUpdate} from './checking_downloading_update.js';
 
@@ -53,7 +53,7 @@
 
 /**
  * @typedef {{
- *   confirmationDialog: OobeModalDialogElement,
+ *   confirmationDialog: OobeModalDialog,
  *   downloadingUpdate: CheckingDownloadingUpdate,
  * }}
  */
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/BUILD.gn b/chrome/browser/resources/chromeos/login/screens/oobe/BUILD.gn
index 83ded0b..eaf9535 100644
--- a/chrome/browser/resources/chromeos/login/screens/oobe/BUILD.gn
+++ b/chrome/browser/resources/chromeos/login/screens/oobe/BUILD.gn
@@ -94,7 +94,7 @@
   sources = [ "$root_gen_dir/chrome/browser/resources/chromeos/login/screens/oobe/enterprise_enrollment.js" ]
   deps = [
     "../../../keyboard:keyboard_utils.m",
-    "../../components:display_manager_types.m",
+    "../../components:display_manager_types",
     "../../components:gaia_dialog",
     "../../components:keyboard_utils_for_injection.m",
     "../../components/behaviors:login_screen_behavior.m",
@@ -117,7 +117,7 @@
     "../../components/behaviors:oobe_dialog_host_behavior.m",
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/dialogs:oobe_adaptive_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/iron-a11y-announcer:iron-a11y-announcer",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
@@ -190,7 +190,7 @@
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_text_button",
     "../../components/dialogs:oobe_adaptive_dialog",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
   extra_deps = [ ":web_components" ]
@@ -208,7 +208,7 @@
     "../../components/behaviors:oobe_i18n_behavior.m",
     "../../components/buttons:oobe_icon_button",
     "../../components/buttons:oobe_text_button",
-    "../../components/dialogs:oobe_modal_dialog.m",
+    "../../components/dialogs:oobe_modal_dialog",
     "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
   ]
   extra_deps = [ ":web_components" ]
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/enterprise_enrollment.js b/chrome/browser/resources/chromeos/login/screens/oobe/enterprise_enrollment.js
index a810283ea..06fb3086 100644
--- a/chrome/browser/resources/chromeos/login/screens/oobe/enterprise_enrollment.js
+++ b/chrome/browser/resources/chromeos/login/screens/oobe/enterprise_enrollment.js
@@ -14,7 +14,7 @@
 import '../../components/common_styles/common_styles.m.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_loading_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
+import '../../components/dialogs/oobe_modal_dialog.js';
 
 import {loadTimeData} from '//resources/js/load_time_data.m.js';
 import {html, mixinBehaviors, Polymer, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -27,7 +27,7 @@
 import {OobeNextButton} from '../../components/buttons/oobe_next_button.js';
 import {OobeTextButton} from '../../components/buttons/oobe_text_button.js';
 import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js';
-import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.m.js';
+import {OOBE_UI_STATE, SCREEN_GAIA_SIGNIN} from '../../components/display_manager_types.js';
 import {KEYBOARD_UTILS_FOR_INJECTION} from '../../components/keyboard_utils_for_injection.m.js';
 import {OobeTypes} from '../../components/oobe_types.m.js';
 import {Oobe} from '../../cr_ui.js';
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/hid_detection.js b/chrome/browser/resources/chromeos/login/screens/oobe/hid_detection.js
index fa92154..b769118 100644
--- a/chrome/browser/resources/chromeos/login/screens/oobe/hid_detection.js
+++ b/chrome/browser/resources/chromeos/login/screens/oobe/hid_detection.js
@@ -14,7 +14,7 @@
 import '../../components/common_styles/common_styles.m.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_adaptive_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
+import '../../components/dialogs/oobe_modal_dialog.js';
 
 import {loadTimeData} from '//resources/js/load_time_data.m.js';
 import {afterNextRender, html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/welcome.js b/chrome/browser/resources/chromeos/login/screens/oobe/welcome.js
index d45f648..1447ea25d 100644
--- a/chrome/browser/resources/chromeos/login/screens/oobe/welcome.js
+++ b/chrome/browser/resources/chromeos/login/screens/oobe/welcome.js
@@ -14,7 +14,6 @@
 import '../../components/common_styles/common_styles.m.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
 import '../../components/dialogs/oobe_adaptive_dialog.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 
 import {loadTimeData} from '//resources/js/load_time_data.m.js';
 import {html, mixinBehaviors, PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
@@ -22,6 +21,7 @@
 import {LoginScreenBehavior, LoginScreenBehaviorInterface} from '../../components/behaviors/login_screen_behavior.m.js';
 import {MultiStepBehavior, MultiStepBehaviorInterface} from '../../components/behaviors/multi_step_behavior.m.js';
 import {OobeI18nBehavior, OobeI18nBehaviorInterface} from '../../components/behaviors/oobe_i18n_behavior.m.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
 import {getSelectedTitle, SelectListType} from '../../components/oobe_select.m.js';
 import {OobeTypes} from '../../components/oobe_types.m.js';
 import {Oobe} from '../../cr_ui.js';
@@ -67,10 +67,10 @@
 /**
  * @typedef {{
  *   welcomeScreen:  OobeWelcomeDialog,
- *   demoModeConfirmationDialog:  OobeModalDialogElement,
- *   editRequisitionDialog:  OobeModalDialogElement,
+ *   demoModeConfirmationDialog:  OobeModalDialog,
+ *   editRequisitionDialog:  OobeModalDialog,
  *   editRequisitionInput: CrInputElement,
- *   remoraRequisitionDialog: OobeModalDialogElement,
+ *   remoraRequisitionDialog: OobeModalDialog,
  * }}
  */
 OobeWelcomeScreenBase.$;
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.js b/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.js
index 2c90788..2a2efab7 100644
--- a/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.js
+++ b/chrome/browser/resources/chromeos/login/screens/oobe/welcome_dialog.js
@@ -9,7 +9,6 @@
 import '//resources/cr_elements/cr_shared_style.css.js';
 import '../../components/oobe_icons.m.js';
 import '../../components/common_styles/oobe_dialog_host_styles.m.js';
-import '../../components/dialogs/oobe_modal_dialog.m.js';
 import '../../components/oobe_vars/oobe_shared_vars_css.m.js';
 
 import {assert} from '//resources/js/assert.js';
@@ -18,6 +17,7 @@
 
 import {OobeDialogHostBehavior} from '../../components/behaviors/oobe_dialog_host_behavior.m.js';
 import {OobeI18nBehavior} from '../../components/behaviors/oobe_i18n_behavior.m.js';
+import {OobeModalDialog} from '../../components/dialogs/oobe_modal_dialog.js';
 import {LongTouchDetector} from '../../components/long_touch_detector.m.js';
 import {OobeCrLottie} from '../../components/oobe_cr_lottie.js';
 
@@ -31,7 +31,7 @@
 /**
  * @typedef {{
  *   title:  HTMLAnchorElement,
- *   chromeVoxHint:  OobeModalDialogElement,
+ *   chromeVoxHint:  OobeModalDialog,
  *   welcomeAnimation:  OobeCrLottie,
  * }}
  */
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_combined_dialog.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_combined_dialog.html
index 5a1663af..7c37bfb 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_combined_dialog.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_combined_dialog.html
@@ -3,8 +3,6 @@
 <head>
   <meta charset="utf-8">
   <meta name="color-scheme" content="light dark">
-  <meta name="viewport" content="width=device-width initial-scale=1.0,
-      user-scalable=no">
   <title>Combined dialog</title>
   <link rel="stylesheet" href="chrome://resources/css/md_colors.css">
   <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html
index e90c0d6b..98dd641e 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_consent_step.html
@@ -22,9 +22,9 @@
       title="$i18n{m1ConsentLearnMoreExpandLabel}">
     <div><b>$i18n{m1ConsentLearnMoreHeading}</b></div>
       <ul class="cr-secondary-text">
-        <li>$i18n{m1ConsentLearnMoreBullet1}</li>
-        <li>$i18n{m1ConsentLearnMoreBullet2}</li>
-        <li>$i18n{m1ConsentLearnMoreBullet3}</li>
+        <li>$i18nRaw{m1ConsentLearnMoreBullet1}</li>
+        <li>$i18nRaw{m1ConsentLearnMoreBullet2}</li>
+        <li>$i18nRaw{m1ConsentLearnMoreBullet3}</li>
       </ul>
       <div class="cr-secondary-text">$i18n{m1ConsentLearnMoreLink}</div>
   </privacy-sandbox-dialog-learn-more>
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html
index 0df9678..072b44c 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_notice_step.html
@@ -35,9 +35,9 @@
       </div>
       <div><b>$i18n{m1NoticeEeaLearnMoreHeading2}</b></div>
       <ul class="cr-secondary-text">
-        <li>$i18n{m1NoticeEeaLearnMoreBullet1}</li>
-        <li>$i18n{m1NoticeEeaLearnMoreBullet2}</li>
-        <li>$i18n{m1NoticeEeaLearnMoreBullet3}</li>
+        <li>$i18nRaw{m1NoticeEeaLearnMoreBullet1}</li>
+        <li>$i18nRaw{m1NoticeEeaLearnMoreBullet2}</li>
+        <li>$i18nRaw{m1NoticeEeaLearnMoreBullet3}</li>
       </ul>
     </privacy-sandbox-dialog-learn-more>
     <div class="section cr-secondary-text">
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog.html
index 5cf35bf..4fb6156 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog.html
@@ -3,8 +3,6 @@
 <head>
   <meta charset="utf-8">
   <meta name="color-scheme" content="light dark">
-  <meta name="viewport" content="width=device-width initial-scale=1.0,
-      user-scalable=no">
   <title>Notice dialog</title>
   <link rel="stylesheet" href="chrome://resources/css/md_colors.css">
   <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html
index 0828975..7ce217f 100644
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html
+++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_notice_dialog_app.html
@@ -1,6 +1,6 @@
 <style include="cr-shared-style shared-style"></style>
 
-<div fill-content>
+<div fill-content role="main">
   <div class="content-area custom-scrollbar" scrollable tabindex="-1">
     <div class="header">
       <img class="logo" alt="">
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.cc b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.cc
new file mode 100644
index 0000000..29ce19e
--- /dev/null
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.cc
@@ -0,0 +1,9 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.h"
+
+BoundSessionCookieRefreshService::BoundSessionCookieRefreshService() = default;
+
+BoundSessionCookieRefreshService::~BoundSessionCookieRefreshService() = default;
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.h b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.h
new file mode 100644
index 0000000..e3a2f9b
--- /dev/null
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.h
@@ -0,0 +1,24 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_SIGNIN_BOUND_SESSION_CREDENTIALS_BOUND_SESSION_COOKIE_REFRESH_SERVICE_H_
+#define CHROME_BROWSER_SIGNIN_BOUND_SESSION_CREDENTIALS_BOUND_SESSION_COOKIE_REFRESH_SERVICE_H_
+
+#include "components/keyed_service/core/keyed_service.h"
+
+// This service is responsible for the following:
+// - Receive requests to refresh the SIDTS cookie
+// - Request a signature from the [future] token binding service
+// - Create a fetcher to do the network refresh request
+// - Runs callbacks to resume blocked requests when the cookie is set in the
+//   cookie Jar
+// - Monitor cookie changes and update the renderers
+// This class is still work in progress.
+class BoundSessionCookieRefreshService : public KeyedService {
+ public:
+  BoundSessionCookieRefreshService();
+  ~BoundSessionCookieRefreshService() override;
+};
+
+#endif  // CHROME_BROWSER_SIGNIN_BOUND_SESSION_CREDENTIALS_BOUND_SESSION_COOKIE_REFRESH_SERVICE_H_
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.cc b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.cc
new file mode 100644
index 0000000..3549e77
--- /dev/null
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.cc
@@ -0,0 +1,36 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.h"
+
+#include "base/no_destructor.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_keyed_service_factory.h"
+#include "chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service.h"
+
+// static
+BoundSessionCookieRefreshServiceFactory*
+BoundSessionCookieRefreshServiceFactory::GetInstance() {
+  static base::NoDestructor<BoundSessionCookieRefreshServiceFactory> factory;
+  return factory.get();
+}
+
+// static
+BoundSessionCookieRefreshService*
+BoundSessionCookieRefreshServiceFactory::GetForProfile(Profile* profile) {
+  return static_cast<BoundSessionCookieRefreshService*>(
+      GetInstance()->GetServiceForBrowserContext(profile, true));
+}
+
+BoundSessionCookieRefreshServiceFactory::
+    BoundSessionCookieRefreshServiceFactory()
+    : ProfileKeyedServiceFactory("BoundSessionCookieRefreshService") {}
+
+BoundSessionCookieRefreshServiceFactory::
+    ~BoundSessionCookieRefreshServiceFactory() = default;
+
+KeyedService* BoundSessionCookieRefreshServiceFactory::BuildServiceInstanceFor(
+    content::BrowserContext* context) const {
+  return new BoundSessionCookieRefreshService();
+}
diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.h b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.h
new file mode 100644
index 0000000..f707ddc
--- /dev/null
+++ b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.h
@@ -0,0 +1,32 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_SIGNIN_BOUND_SESSION_CREDENTIALS_BOUND_SESSION_COOKIE_REFRESH_SERVICE_FACTORY_H_
+#define CHROME_BROWSER_SIGNIN_BOUND_SESSION_CREDENTIALS_BOUND_SESSION_COOKIE_REFRESH_SERVICE_FACTORY_H_
+
+#include "base/no_destructor.h"
+#include "chrome/browser/profiles/profile_keyed_service_factory.h"
+
+class BoundSessionCookieRefreshService;
+
+class BoundSessionCookieRefreshServiceFactory
+    : public ProfileKeyedServiceFactory {
+ public:
+  // Returns an instance of the factory singleton.
+  static BoundSessionCookieRefreshServiceFactory* GetInstance();
+
+  static BoundSessionCookieRefreshService* GetForProfile(Profile* profile);
+
+ private:
+  friend base::NoDestructor<BoundSessionCookieRefreshServiceFactory>;
+
+  BoundSessionCookieRefreshServiceFactory();
+  ~BoundSessionCookieRefreshServiceFactory() override;
+
+  // BrowserContextKeyedServiceFactory:
+  KeyedService* BuildServiceInstanceFor(
+      content::BrowserContext* context) const override;
+};
+
+#endif  // CHROME_BROWSER_SIGNIN_BOUND_SESSION_CREDENTIALS_BOUND_SESSION_COOKIE_REFRESH_SERVICE_FACTORY_H_
diff --git a/chrome/browser/signin/primary_account_policy_manager.cc b/chrome/browser/signin/primary_account_policy_manager.cc
index 313753c..e6a33db 100644
--- a/chrome/browser/signin/primary_account_policy_manager.cc
+++ b/chrome/browser/signin/primary_account_policy_manager.cc
@@ -8,6 +8,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profiles_state.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
@@ -296,10 +297,13 @@
 
   DCHECK(profiles::IsMultipleProfilesEnabled());
 
-  g_browser_process->profile_manager()->MaybeScheduleProfileForDeletion(
-      profile_path,
-      hide_ui_for_testing_ ? base::DoNothing()
-                           : base::BindOnce(&webui::OpenNewWindowForProfile),
-      ProfileMetrics::DELETE_PROFILE_PRIMARY_ACCOUNT_NOT_ALLOWED);
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          profile_path,
+          hide_ui_for_testing_
+              ? base::DoNothing()
+              : base::BindOnce(&webui::OpenNewWindowForProfile),
+          ProfileMetrics::DELETE_PROFILE_PRIMARY_ACCOUNT_NOT_ALLOWED);
 }
 #endif  // defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_CHROMEOS)
diff --git a/chrome/browser/signin/signin_ui_util_browsertest.cc b/chrome/browser/signin/signin_ui_util_browsertest.cc
index 7778e28..f95f77e 100644
--- a/chrome/browser/signin/signin_ui_util_browsertest.cc
+++ b/chrome/browser/signin/signin_ui_util_browsertest.cc
@@ -11,6 +11,7 @@
 #include "base/test/bind.h"
 #include "build/buildflag.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_finder.h"
@@ -65,8 +66,11 @@
   EXPECT_EQ(1, browser->tab_strip_model()->count());
 
   // Profile deletion closes the browser.
-  g_browser_process->profile_manager()->ScheduleProfileForDeletion(
-      new_profile->GetPath(), base::DoNothing());
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          new_profile->GetPath(), base::DoNothing(),
+          ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   ui_test_utils::WaitForBrowserToClose(browser);
   EXPECT_FALSE(chrome::FindBrowserWithProfile(new_profile));
 
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fr.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fr.xtb
index d34f8e8..42ff1e2e 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fr.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fr.xtb
@@ -11,7 +11,7 @@
 <translation id="3653689374478248324">Vous serez connecté à <ph name="SITE_NAME" /></translation>
 <translation id="3950820424414687140">Connexion</translation>
 <translation id="4598345735110653698">Gérer les clés d'accès</translation>
-<translation id="4907224763885298217">Utiliser le verrouillage de l'écran</translation>
+<translation id="4907224763885298217">Utiliser le verrouillage votre écran</translation>
 <translation id="5012523644916800014">Gérer les mots de passe et les clés d'accès</translation>
 <translation id="5441504010984421144">La liste des identifiants à renseigner de façon tactile est ouverte à pleine hauteur.</translation>
 <translation id="5591247451101092906">Utiliser un mot de passe ou une clé d'accès enregistrés ?</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
index 9448e87..d25cdf5 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -283,6 +283,11 @@
 <translation id="2569733278091928697">Podrás gestionar fácilmente los controles multimedia, las sesiones de incógnito, las descargas y más</translation>
 <translation id="2571711316400087311">Ofrecer que se traduzcan páginas en otros idiomas con el Traductor de Google</translation>
 <translation id="2573452357057307036">Descubre cómo establecer Chrome como navegador predeterminado</translation>
+<translation id="2580436639406015883">La reducción del spam y el fraude se basa en tokens de confianza que ayudan a los sitios a luchar contra el fraude y a distinguir a los bots de las personas.
+
+Un sitio, en función de cuál sea tu interacción con él (por ejemplo, si habitualmente inicias sesión con una cuenta), puede emitir un token de confianza a tu navegador. Después, si otros sitios que visites buscan y encuentran un token de confianza válido, es más probable que te traten como a una persona y no como a un bot.
+
+Los tokens de confianza mejoran la privacidad en la Web y no se pueden usar para averiguar quién eres.</translation>
 <translation id="2581165646603367611">Se borrarán las cookies, la caché y otros datos de los sitios que Chrome no considere importantes.</translation>
 <translation id="2587052924345400782">Hay una nueva versión disponible</translation>
 <translation id="2593272815202181319">Monoespaciado</translation>
@@ -571,6 +576,11 @@
 <translation id="4137746084635924146">Idioma actual del dispositivo</translation>
 <translation id="414128724510021958">Sitios para ordenadores solicitados de forma predeterminada</translation>
 <translation id="4141536112466364990">Información sobre Chrome</translation>
+<translation id="4147131678541801076">Cuando las pruebas están activas, la reducción del spam y el fraude se basa en tokens de confianza que ayudan a los sitios a luchar contra el fraude y a distinguir a los bots de las personas.
+
+Un sitio, en función de cuál sea tu interacción con él (por ejemplo, si habitualmente inicias sesión con una cuenta), puede emitir un token de confianza a tu navegador. Después, si otros sitios que visites buscan y encuentran un token de confianza válido, es más probable que te traten como a una persona y no como a un bot.
+
+Los tokens de confianza mejoran la privacidad en la Web y no se pueden usar para averiguar quién eres.</translation>
 <translation id="4162867837470729563">Lista de opciones para compartir abierta a altura completa.</translation>
 <translation id="4170011742729630528">El servicio no está disponible. Vuelve a intentarlo más tarde.</translation>
 <translation id="4177222230309051052">Accede a todos tus marcadores</translation>
@@ -679,6 +689,7 @@
 <translation id="4766313118839197559">Las contraseñas se guardan en el gestor de contraseñas en este dispositivo</translation>
 <translation id="4766678251456904326">Añadir cuenta al dispositivo</translation>
 <translation id="4769095993849849966">Nuevo nombre de archivo</translation>
+<translation id="4778653490315793244">Aún no hay nada que mostrar</translation>
 <translation id="4787736314074622408">¿Eliminar <ph name="ITEM_TITLE" />?</translation>
 <translation id="4791358705705538979">Te ayuda a completar tareas en la Web, como la tramitación de compras</translation>
 <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
@@ -1295,6 +1306,7 @@
 <translation id="7971136598759319605">Activo hace 1 día</translation>
 <translation id="7975379999046275268">Revisar página <ph name="BEGIN_NEW" />Nuevo<ph name="END_NEW" /></translation>
 <translation id="7986497153528221272">Para ver las contraseñas, primero debes establecer un bloqueo de pantalla en tu dispositivo</translation>
+<translation id="7995059495660416932">Verás contenido cuando esté disponible</translation>
 <translation id="799576009106109668">Navegarás más rápido porque el contenido se cargará de forma proactiva en función de la página web en la que estés.</translation>
 <translation id="7998918019931843664">Volver a abrir pestaña cerrada</translation>
 <translation id="8004582292198964060">Navegador</translation>
@@ -1503,6 +1515,7 @@
 <translation id="8998729206196772491">Estás iniciando sesión con una cuenta gestionada por <ph name="MANAGED_DOMAIN" />, lo que significa que vas a proporcionar a su administrador el control sobre tus datos de Chrome. Los datos se vincularán de forma permanente a esta cuenta. Si cierras sesión en Chrome, se eliminarán los datos de este dispositivo, pero permanecerán almacenados en tu cuenta de Google.</translation>
 <translation id="9022774213089566801">Visitados con frecuencia</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# vídeo}other{# vídeos}}</translation>
+<translation id="9042827002460091668">Comprueba tu conexión a Internet y vuelve a intentarlo</translation>
 <translation id="9042893549633094279">Privacidad y seguridad</translation>
 <translation id="9050666287014529139">Frase de contraseña</translation>
 <translation id="9063523880881406963">Desactivar opción para ver como ordenador</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
index b2f91f9..89d92be 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -1516,7 +1516,7 @@
 <translation id="9022774213089566801">자주 방문한 웹사이트</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{동영상 #개}other{동영상 #개}}</translation>
 <translation id="9042827002460091668">인터넷 연결 상태를 확인하고 다시 시도해 주세요.</translation>
-<translation id="9042893549633094279">개인정보 및 보안</translation>
+<translation id="9042893549633094279">개인 정보 보호 및 보안</translation>
 <translation id="9050666287014529139">암호</translation>
 <translation id="9063523880881406963">데스크톱 버전으로 보기 사용 중지</translation>
 <translation id="9065203028668620118">수정</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
index 66b19c3..885e99f8 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -283,11 +283,11 @@
 <translation id="2569733278091928697">您將能輕鬆管理媒體控制項、無痕工作階段、下載項目等等</translation>
 <translation id="2571711316400087311">詢問是否將其他語言的網頁傳送至「Google 翻譯」</translation>
 <translation id="2573452357057307036">瞭解如何將 Chrome 設定為預設瀏覽器</translation>
-<translation id="2580436639406015883">網站可透過私密狀態權杖來減少垃圾內容和詐欺情形,藉此防範詐欺及辨別機器人和真人。
+<translation id="2580436639406015883">為減少垃圾內容和欺詐行為,系統需依賴 Private State Token,以協助網站對抗欺詐行為,並分辨機器人和真人。
 
-網站可根據你與網站的互動 (例如定期登入帳戶) 情形,核發私密狀態權杖給你的瀏覽器。在此之後,假如你造訪的其他網站查看並找到有效的私密狀態權杖,這些網站就較有可能會判斷你是真人,而非機器人。
+網站可根據您與網站的互動 (例如定期登入網站),向您的瀏覽器發出 Private State Token。日後,如果您瀏覽的其他網站檢查並找到有效的 Private State Token,則這些網站更有可能將您視為真人,而不是機器人。
 
-私密狀態權杖能進一步保護網路使用者的隱私,且無法用來識別個人身分。</translation>
+Private State Token 能夠改善網絡上的私隱,而且系統無法透過信任憑證來識別您的身分。</translation>
 <translation id="2581165646603367611">這會清除 Chrome 認為不重要的網站內的 Cookie、快取和其他資料。</translation>
 <translation id="2587052924345400782">全新版本現已推出</translation>
 <translation id="2593272815202181319">等寬</translation>
@@ -576,9 +576,11 @@
 <translation id="4137746084635924146">目前的裝置語言</translation>
 <translation id="414128724510021958">已根據預設要求顯示桌面版網站</translation>
 <translation id="4141536112466364990">瞭解 Chrome</translation>
-<translation id="4147131678541801076">在試用期間,網站會使用私密狀態權杖來減少垃圾內容和詐欺情形,藉此防範詐欺及辨別機器人和真人。網站可根據你與網站的互動 (例如定期登入帳戶) 情形,核發私密狀態權杖給你的瀏覽器。在此之後,假如你造訪的其他網站查看並找到有效的私密狀態權杖,這些網站就較有可能會判斷你是真人,而非機器人。
+<translation id="4147131678541801076">在試用期間,為減少垃圾內容和欺詐行為,系統需依賴 Private State Token,以協助網站對抗欺詐行為,並分辨機器人和真人。
 
-私密狀態權杖能進一步保護網路使用者的隱私,且無法用來識別個人身分。</translation>
+網站可根據您與網站的互動 (例如定期登入網站),向您的瀏覽器發出 Private State Token。日後,如果您瀏覽的其他網站檢查並找到有效的 Private State Token,則這些網站更有可能將您視為真人,而不是機器人。
+
+Private State Token 能夠改善網絡上的私隱,而且系統無法透過信任憑證來識別您的身分。</translation>
 <translation id="4162867837470729563">分享選項清單宜家顯示喺成個畫面。</translation>
 <translation id="4170011742729630528">服務無法使用,請稍後再試。</translation>
 <translation id="4177222230309051052">取得所有書籤</translation>
@@ -687,7 +689,7 @@
 <translation id="4766313118839197559">密碼會儲存至此裝置上的「密碼管理工具」。</translation>
 <translation id="4766678251456904326">將帳戶新增至裝置</translation>
 <translation id="4769095993849849966">新檔案名稱</translation>
-<translation id="4778653490315793244">目前還沒有內容</translation>
+<translation id="4778653490315793244">未有可以顯示內容</translation>
 <translation id="4787736314074622408">係咪想刪除 <ph name="ITEM_TITLE" />?</translation>
 <translation id="4791358705705538979">協助您在網絡完成結帳等工作</translation>
 <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
@@ -1513,7 +1515,7 @@
 <translation id="8998729206196772491">您即將登入由 <ph name="MANAGED_DOMAIN" /> 管理的帳戶,並讓帳戶管理員控制您的 Chrome 資料。您的資料將與這個帳戶建立永久連結。如果您登出 Chrome,系統將刪除此裝置上的資料,但這些資料仍會保留在您的 Google 帳戶中。</translation>
 <translation id="9022774213089566801">經常瀏覽</translation>
 <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# 部影片}other{# 部影片}}</translation>
-<translation id="9042827002460091668">請檢查你的網際網路連線,然後再試一次</translation>
+<translation id="9042827002460091668">請檢查您的互聯網連線,然後再試一次</translation>
 <translation id="9042893549633094279">私隱權和安全性</translation>
 <translation id="9050666287014529139">複雜密碼</translation>
 <translation id="9063523880881406963">關閉「切換為電腦版網站」</translation>
diff --git a/chrome/browser/ui/ash/app_access_notifier_unittest.cc b/chrome/browser/ui/ash/app_access_notifier_unittest.cc
index 793888d..c5cf71f 100644
--- a/chrome/browser/ui/ash/app_access_notifier_unittest.cc
+++ b/chrome/browser/ui/ash/app_access_notifier_unittest.cc
@@ -310,7 +310,7 @@
 
   // Returned list of application names should only contain "name_rose".
   std::vector<std::u16string> app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 1);
+  EXPECT_EQ(app_names.size(), 1u);
   EXPECT_EQ(app_names[0], u"name_rose");
 }
 
@@ -328,7 +328,7 @@
   // Most recently launched mic-using app should be in front of the returned
   // list.
   std::vector<std::u16string> app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 3);
+  EXPECT_EQ(app_names.size(), 3u);
   EXPECT_EQ(app_names[0], u"name_zara");
 
   // Oscar starts using the mic, Oscar should be the front element of the
@@ -336,7 +336,7 @@
   LaunchAppUsingCameraOrMicrophone(
       "id_oscar", "name_oscar", /*use_camera=*/false, /*use_microphone=*/true);
   app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 4);
+  EXPECT_EQ(app_names.size(), 4u);
   EXPECT_EQ(app_names[0], u"name_oscar");
 
   // If we "kill" Oscar (set to no longer be using the mic or camera), Oscar
@@ -344,7 +344,7 @@
   LaunchAppUsingCameraOrMicrophone(
       "id_oscar", "name_oscar", /*use_camera=*/false, /*use_microphone=*/false);
   app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 3);
+  EXPECT_EQ(app_names.size(), 3u);
   EXPECT_TRUE(std::find(app_names.begin(), app_names.end(), u"name_oscar") ==
               app_names.end());
   EXPECT_EQ(app_names[0], u"name_zara");
@@ -365,7 +365,7 @@
   // App we just launched should be the front and only element of the returned
   // list.
   std::vector<std::u16string> app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 1);
+  EXPECT_EQ(app_names.size(), 1u);
   EXPECT_EQ(app_names[0], u"name_primary_user");
 
   // Secondary user is now the primary user.
@@ -379,7 +379,7 @@
   // App we just launched should be the front and only element of the returned
   // list.
   app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 1);
+  EXPECT_EQ(app_names.size(), 1u);
   EXPECT_EQ(app_names[0], u"name_secondary_user");
 
   // Switch back to the primary user and "kill" the app it was running, no app
@@ -395,7 +395,7 @@
   // shows up at the front of the returned list.
   SetActiveUserAccountId(/*is_primary=*/false);
   app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 1);
+  EXPECT_EQ(app_names.size(), 1u);
   EXPECT_EQ(app_names[0], u"name_secondary_user");
 
   // Now "kill" our secondary user's app and verify that there's no name to
@@ -422,7 +422,7 @@
   // App we just launched should be the front and only element of the returned
   // list.
   std::vector<std::u16string> app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 1);
+  EXPECT_EQ(app_names.size(), 1u);
   EXPECT_EQ(app_names[0], u"name_primary_user");
 
   // Primary user launches a second mic-using app.
@@ -434,7 +434,7 @@
   // The returned list should contain two application names ordered by most
   // recently launched.
   app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 2);
+  EXPECT_EQ(app_names.size(), 2u);
   EXPECT_EQ(app_names[0], u"name_primary_user_another_app");
   EXPECT_EQ(app_names[1], u"name_primary_user");
 
@@ -449,7 +449,7 @@
   // App we just launched should be the front and only element of the returned
   // list.
   app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 1);
+  EXPECT_EQ(app_names.size(), 1u);
   EXPECT_EQ(app_names[0], u"name_secondary_user");
 
   // Secondary user launches a second mic-using app.
@@ -460,7 +460,7 @@
   // The returned list should contain two application names ordered by most
   // recently launched.
   app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 2);
+  EXPECT_EQ(app_names.size(), 2u);
   EXPECT_EQ(app_names[0], u"name_secondary_user_another_app");
   EXPECT_EQ(app_names[1], u"name_secondary_user");
 
@@ -470,7 +470,7 @@
   // Both of the apps we launced for the primary user should be in the list
   // ordered by most recently launched.
   app_names = GetAppsAccessingMicrophone();
-  EXPECT_EQ((int)app_names.size(), 2);
+  EXPECT_EQ(app_names.size(), 2u);
   EXPECT_EQ(app_names[0], u"name_primary_user_another_app");
   EXPECT_EQ(app_names[1], u"name_primary_user");
 }
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 7cbabbcd..e1273f18 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -69,6 +69,7 @@
 #include "chrome/browser/printing/background_printing_manager.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_destroyer.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -431,7 +432,7 @@
   if (!IncognitoModePrefs::CanOpenBrowser(profile) ||
       (profile->IsGuestSession() && !profile->IsOffTheRecord()) ||
       !profile->AllowsBrowserWindows() ||
-      ProfileManager::IsProfileDirectoryMarkedForDeletion(profile->GetPath())) {
+      IsProfileDirectoryMarkedForDeletion(profile->GetPath())) {
     return CreationStatus::kErrorProfileUnsuitable;
   }
 
diff --git a/chrome/browser/ui/passwords/password_generation_popup_controller.h b/chrome/browser/ui/passwords/password_generation_popup_controller.h
index df42c3b4..7c93fd06 100644
--- a/chrome/browser/ui/passwords/password_generation_popup_controller.h
+++ b/chrome/browser/ui/passwords/password_generation_popup_controller.h
@@ -41,6 +41,7 @@
   virtual bool password_selected() const = 0;
   virtual const std::u16string& password() const = 0;
   virtual bool IsUserTypedPasswordWeak() const = 0;
+  virtual bool IsStateMinimized() const = 0;
 
   // Translated strings
   virtual std::u16string SuggestedText() = 0;
diff --git a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc
index dbe10279..cc8c46b 100644
--- a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc
+++ b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc
@@ -31,6 +31,7 @@
 #include "components/password_manager/core/browser/password_manager.h"
 #include "components/password_manager/core/browser/password_manager_client.h"
 #include "components/password_manager/core/browser/password_manager_driver.h"
+#include "components/password_manager/core/common/password_manager_features.h"
 #include "components/strings/grit/components_strings.h"
 #include "content/public/browser/native_web_keyboard_event.h"
 #include "content/public/browser/navigation_handle.h"
@@ -53,6 +54,14 @@
 
 using autofill::PopupHidingReason;
 
+namespace {
+
+// Minimum number of characters of the typed password to display a minimized
+// version of the generation popup.
+constexpr int kMinCharsForMinimizedPopup = 6;
+
+}  // namespace
+
 // Handles registration for key events with RenderFrameHost.
 class PasswordGenerationPopupControllerImpl::KeyPressRegistrator {
  public:
@@ -228,8 +237,14 @@
 
 // TODO(crbug.com/1345766): Add test checking that delayed call to this function
 // does not hide generation popup triggered by an empty password field.
-void PasswordGenerationPopupControllerImpl::OnWeakCheckComplete(bool is_weak) {
+void PasswordGenerationPopupControllerImpl::OnWeakCheckComplete(
+    const std::string& checked_password,
+    bool is_weak) {
   user_typed_password_is_weak_ = is_weak;
+  state_minimized_ =
+      is_weak && checked_password.length() >= kMinCharsForMinimizedPopup &&
+      password_manager::features::kPasswordStrengthIndicatorWithMinimizedState
+          .Get();
 
   if (is_weak) {
     Show(kOfferGeneration);
@@ -249,9 +264,6 @@
   }
   state_ = state;
 
-  // TODO(crbug.com/1345766): Call the password strength calculation from the
-  // utility process. Store the strength and use it accordingly in the
-  // PasswordGenerationPopupViewViews.
   if (!view_) {
     view_ = PasswordGenerationPopupView::Create(GetWeakPtr());
 
@@ -286,6 +298,7 @@
     UpdatePopupBasedOnTypedPasswordStrength() {
   if (user_typed_password_.empty()) {
     user_typed_password_is_weak_ = false;
+    state_minimized_ = false;
     Show(kOfferGeneration);
     return;
   }
@@ -295,12 +308,14 @@
     password_strength_calculation_ =
         std::make_unique<password_manager::PasswordStrengthCalculation>();
   }
+  const std::string user_typed_password =
+      base::UTF16ToUTF8(user_typed_password_);
   password_manager::PasswordStrengthCalculation::CompletionCallback completion =
       base::BindOnce(
           &PasswordGenerationPopupControllerImpl::OnWeakCheckComplete,
-          weak_ptr_factory_.GetWeakPtr());
+          weak_ptr_factory_.GetWeakPtr(), user_typed_password);
   password_strength_calculation_->CheckPasswordWeakInSandbox(
-      base::UTF16ToUTF8(user_typed_password_), std::move(completion));
+      user_typed_password, std::move(completion));
 #endif  // !BUILDFLAG(IS_ANDROID)
 }
 
@@ -445,3 +460,7 @@
 bool PasswordGenerationPopupControllerImpl::IsUserTypedPasswordWeak() const {
   return user_typed_password_is_weak_;
 }
+
+bool PasswordGenerationPopupControllerImpl::IsStateMinimized() const {
+  return state_minimized_;
+}
diff --git a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.h b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.h
index 35efbf9..8e56342 100644
--- a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.h
+++ b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.h
@@ -171,6 +171,7 @@
   std::u16string SuggestedText() override;
   const std::u16string& HelpText() override;
   bool IsUserTypedPasswordWeak() const override;
+  bool IsStateMinimized() const override;
 
   bool HandleKeyPressEvent(const content::NativeWebKeyboardEvent& event);
 
@@ -181,8 +182,10 @@
   bool PossiblyAcceptPassword();
 
   // Displays password generation dropdown with strength indicator when
-  // `is_weak` is true, hides the dropdown otherwise.
-  void OnWeakCheckComplete(bool is_weak);
+  // `is_weak` is true, hides the dropdown otherwise. If the length of
+  // `checked_password` is higher than 5 and the user is in the experiment with
+  // minimized state, displayed popup is just a warning icon.
+  void OnWeakCheckComplete(const std::string& checked_password, bool is_weak);
 
   // Handle to the popup. May be NULL if popup isn't showing.
   raw_ptr<PasswordGenerationPopupView> view_;
@@ -230,6 +233,9 @@
   // The state of the generation popup.
   GenerationUIState state_;
 
+  // Whether the popup is in a minimized state.
+  bool state_minimized_ = false;
+
 #if !BUILDFLAG(IS_ANDROID)
   // Calculates password strength in a sandboxed utility process.
   std::unique_ptr<password_manager::PasswordStrengthCalculation>
diff --git a/chrome/browser/ui/passwords/password_generation_popup_view_browsertest.cc b/chrome/browser/ui/passwords/password_generation_popup_view_browsertest.cc
index fb4fd65e..9ad324e 100644
--- a/chrome/browser/ui/passwords/password_generation_popup_view_browsertest.cc
+++ b/chrome/browser/ui/passwords/password_generation_popup_view_browsertest.cc
@@ -38,6 +38,21 @@
   base::test::ScopedFeatureList feature_list_;
 };
 
+class PasswordGenerationPopupViewWithMinimizedStrengthIndicatorTest
+    : public InProcessBrowserTest {
+ public:
+  PasswordGenerationPopupViewWithMinimizedStrengthIndicatorTest() {
+    feature_list_.InitWithFeaturesAndParameters(
+        /*enabled_features=*/{{password_manager::features::
+                                   kPasswordStrengthIndicator,
+                               {{"strength_indicator_minimized", "true"}}}},
+        /*disabled_features=*/{});
+  }
+
+ private:
+  base::test::ScopedFeatureList feature_list_;
+};
+
 // Regression test for crbug.com/400543. Verifying that moving the mouse in the
 // editing dialog doesn't crash.
 IN_PROC_BROWSER_TEST_F(PasswordGenerationPopupViewTest,
@@ -232,4 +247,109 @@
   EXPECT_FALSE(controller);
 }
 
+IN_PROC_BROWSER_TEST_F(
+    PasswordGenerationPopupViewWithStrengthIndicatorTest,
+    ShowsFullPopupWithWeakPasswordTypedInNonMinimizedExperiment) {
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  password_generation::PasswordGenerationUIData ui_data(
+      gfx::RectF(web_contents->GetContainerBounds().x(),
+                 web_contents->GetContainerBounds().y(), 10, 10),
+      /*max_length=*/10,
+      /*generation_element=*/std::u16string(),
+      /*user_typed_password=*/std::u16string(), FieldRendererId(100),
+      /*is_generation_element_password_type=*/true, base::i18n::TextDirection(),
+      FormData());
+
+  TestGenerationPopupObserver observer;
+  base::WeakPtr<PasswordGenerationPopupControllerImpl> controller =
+      PasswordGenerationPopupControllerImpl::GetOrCreate(
+          /*previous=*/nullptr, ui_data.bounds, ui_data,
+          password_manager::ContentPasswordManagerDriverFactory::
+              FromWebContents(web_contents)
+                  ->GetDriverForFrame(web_contents->GetPrimaryMainFrame())
+                  ->AsWeakPtr(),
+          &observer, web_contents, web_contents->GetPrimaryMainFrame());
+
+  EXPECT_FALSE(controller->IsVisible());
+  controller->UpdateTypedPassword(u"weak123");
+  controller->UpdatePopupBasedOnTypedPasswordStrength();
+  observer.WaitForStatus(TestGenerationPopupObserver::GenerationPopup::kShown);
+  EXPECT_TRUE(controller->IsVisible());
+  EXPECT_FALSE(PasswordGenerationPopupViewTester::For(controller->view())
+                   ->IsPopupMinimized());
+
+  web_contents->Close();
+}
+
+IN_PROC_BROWSER_TEST_F(
+    PasswordGenerationPopupViewWithMinimizedStrengthIndicatorTest,
+    ShowsFullPopupWithMoreThanFiveCharWeakPasswordTyped) {
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  password_generation::PasswordGenerationUIData ui_data(
+      gfx::RectF(web_contents->GetContainerBounds().x(),
+                 web_contents->GetContainerBounds().y(), 10, 10),
+      /*max_length=*/10,
+      /*generation_element=*/std::u16string(),
+      /*user_typed_password=*/std::u16string(), FieldRendererId(100),
+      /*is_generation_element_password_type=*/true, base::i18n::TextDirection(),
+      FormData());
+
+  TestGenerationPopupObserver observer;
+  base::WeakPtr<PasswordGenerationPopupControllerImpl> controller =
+      PasswordGenerationPopupControllerImpl::GetOrCreate(
+          /*previous=*/nullptr, ui_data.bounds, ui_data,
+          password_manager::ContentPasswordManagerDriverFactory::
+              FromWebContents(web_contents)
+                  ->GetDriverForFrame(web_contents->GetPrimaryMainFrame())
+                  ->AsWeakPtr(),
+          &observer, web_contents, web_contents->GetPrimaryMainFrame());
+
+  EXPECT_FALSE(controller->IsVisible());
+  controller->UpdateTypedPassword(u"weak12");
+  controller->UpdatePopupBasedOnTypedPasswordStrength();
+  observer.WaitForStatus(TestGenerationPopupObserver::GenerationPopup::kShown);
+  EXPECT_TRUE(controller->IsVisible());
+  EXPECT_TRUE(PasswordGenerationPopupViewTester::For(controller->view())
+                  ->IsPopupMinimized());
+
+  web_contents->Close();
+}
+
+IN_PROC_BROWSER_TEST_F(
+    PasswordGenerationPopupViewWithMinimizedStrengthIndicatorTest,
+    ShowsFullPopupWithFiveCharWeakPasswordTyped) {
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  password_generation::PasswordGenerationUIData ui_data(
+      gfx::RectF(web_contents->GetContainerBounds().x(),
+                 web_contents->GetContainerBounds().y(), 10, 10),
+      /*max_length=*/10,
+      /*generation_element=*/std::u16string(),
+      /*user_typed_password=*/std::u16string(), FieldRendererId(100),
+      /*is_generation_element_password_type=*/true, base::i18n::TextDirection(),
+      FormData());
+
+  TestGenerationPopupObserver observer;
+  base::WeakPtr<PasswordGenerationPopupControllerImpl> controller =
+      PasswordGenerationPopupControllerImpl::GetOrCreate(
+          /*previous=*/nullptr, ui_data.bounds, ui_data,
+          password_manager::ContentPasswordManagerDriverFactory::
+              FromWebContents(web_contents)
+                  ->GetDriverForFrame(web_contents->GetPrimaryMainFrame())
+                  ->AsWeakPtr(),
+          &observer, web_contents, web_contents->GetPrimaryMainFrame());
+
+  EXPECT_FALSE(controller->IsVisible());
+  controller->UpdateTypedPassword(u"weak1");
+  controller->UpdatePopupBasedOnTypedPasswordStrength();
+  observer.WaitForStatus(TestGenerationPopupObserver::GenerationPopup::kShown);
+  EXPECT_TRUE(controller->IsVisible());
+  EXPECT_FALSE(PasswordGenerationPopupViewTester::For(controller->view())
+                   ->IsPopupMinimized());
+
+  web_contents->Close();
+}
+
 }  // namespace autofill
diff --git a/chrome/browser/ui/passwords/password_generation_popup_view_tester.h b/chrome/browser/ui/passwords/password_generation_popup_view_tester.h
index fbf910d..f825be7 100644
--- a/chrome/browser/ui/passwords/password_generation_popup_view_tester.h
+++ b/chrome/browser/ui/passwords/password_generation_popup_view_tester.h
@@ -20,6 +20,8 @@
   virtual ~PasswordGenerationPopupViewTester() {}
 
   virtual void SimulateMouseMovementAt(const gfx::Point& point) = 0;
+
+  virtual bool IsPopupMinimized() const = 0;
 };
 
 #endif  // CHROME_BROWSER_UI_PASSWORDS_PASSWORD_GENERATION_POPUP_VIEW_TESTER_H_
diff --git a/chrome/browser/ui/passwords/settings/password_manager_porter_unittest.cc b/chrome/browser/ui/passwords/settings/password_manager_porter_unittest.cc
index db4c6c25..045184c4 100644
--- a/chrome/browser/ui/passwords/settings/password_manager_porter_unittest.cc
+++ b/chrome/browser/ui/passwords/settings/password_manager_porter_unittest.cc
@@ -295,8 +295,9 @@
       static_cast<password_manager::TestPasswordStore*>(store.get());
   EXPECT_THAT(test_password_store->stored_passwords(), IsEmpty());
   password_manager::MockAffiliationService affiliation_service;
-  password_manager::SavedPasswordsPresenter presenter{&affiliation_service,
-                                                      test_password_store};
+  password_manager::SavedPasswordsPresenter presenter{
+      &affiliation_service, test_password_store,
+      /*account_store=*/nullptr};
   presenter.Init();
 
   PasswordManagerPorter porter(
@@ -380,8 +381,9 @@
   ASSERT_TRUE(base::WriteFile(temp_file_path, tc.csv));
 
   password_manager::MockAffiliationService affiliation_service;
-  password_manager::SavedPasswordsPresenter presenter{&affiliation_service,
-                                                      test_password_store};
+  password_manager::SavedPasswordsPresenter presenter{
+      &affiliation_service, test_password_store,
+      /*account_store=*/nullptr};
   presenter.Init();
 
   PasswordManagerPorter porter(
diff --git a/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc b/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc
index 1fc44b7..bec3ccc 100644
--- a/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc
+++ b/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc
@@ -196,6 +196,7 @@
     // navigates into the menu, otherwise some screen readers will ignore
     // any focus events outside of the menu, including a focus event on
     // the form control itself.
+    NotifyAccessibilityEvent(ax::mojom::Event::kMenuPopupEnd, true);
     NotifyAccessibilityEvent(ax::mojom::Event::kMenuEnd, true);
     GetViewAccessibility().EndPopupFocusOverride();
 
@@ -235,6 +236,8 @@
     // reader will restore the focus back to the appropriate textfield when the
     // menu closes.
     NotifyAccessibilityEvent(ax::mojom::Event::kMenuStart, true);
+    NotifyAccessibilityEvent(ax::mojom::Event::kMenuPopupStart, true);
+
     is_ax_menu_start_event_fired_ = true;
   }
   selected_view->GetViewAccessibility().SetPopupFocusOverride();
diff --git a/chrome/browser/ui/views/extensions/extensions_tabbed_menu_view_interactive_uitest.cc b/chrome/browser/ui/views/extensions/extensions_tabbed_menu_view_interactive_uitest.cc
index 3c6ce0a..dcd4159c 100644
--- a/chrome/browser/ui/views/extensions/extensions_tabbed_menu_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/extensions/extensions_tabbed_menu_view_interactive_uitest.cc
@@ -296,9 +296,17 @@
   DismissUi();
 }
 
+// TODO(crbug.com/1393696): Flaky on Mac.
+#if BUILDFLAG(IS_MAC)
+#define MAYBE_InstalledTab_PinnedExtensionShowsCorrectContextMenuPinOption \
+  DISABLED_InstalledTab_PinnedExtensionShowsCorrectContextMenuPinOption
+#else
+#define MAYBE_InstalledTab_PinnedExtensionShowsCorrectContextMenuPinOption \
+  InstalledTab_PinnedExtensionShowsCorrectContextMenuPinOption
+#endif
 IN_PROC_BROWSER_TEST_F(
     ExtensionsTabbedMenuViewInteractiveUITest,
-    InstalledTab_PinnedExtensionShowsCorrectContextMenuPinOption) {
+    MAYBE_InstalledTab_PinnedExtensionShowsCorrectContextMenuPinOption) {
   LoadTestExtension("extensions/simple_with_popup");
   ShowMenu();
 
diff --git a/chrome/browser/ui/views/location_bar/intent_chip_button_browsertest.cc b/chrome/browser/ui/views/location_bar/intent_chip_button_browsertest.cc
index 1ed56289a..7e01560 100644
--- a/chrome/browser/ui/views/location_bar/intent_chip_button_browsertest.cc
+++ b/chrome/browser/ui/views/location_bar/intent_chip_button_browsertest.cc
@@ -396,7 +396,9 @@
   base::CallbackListSubscription subscription_;
 };
 
-IN_PROC_BROWSER_TEST_F(IntentChipButtonIPHBubbleBrowserTest, ShowAndCloseIPH) {
+// TODO(crbug.com/1393003): This test is flaky on all platforms.
+IN_PROC_BROWSER_TEST_F(IntentChipButtonIPHBubbleBrowserTest,
+                       DISABLED_ShowAndCloseIPH) {
   const GURL in_scope_url =
       https_server().GetURL(GetAppUrlHost(), GetInScopeUrlPath());
 
diff --git a/chrome/browser/ui/views/passwords/password_generation_popup_view_tester_views.cc b/chrome/browser/ui/views/passwords/password_generation_popup_view_tester_views.cc
index 5bce9f28..10f25c3 100644
--- a/chrome/browser/ui/views/passwords/password_generation_popup_view_tester_views.cc
+++ b/chrome/browser/ui/views/passwords/password_generation_popup_view_tester_views.cc
@@ -26,3 +26,7 @@
                             ui::EventTimeForNow(), 0, 0);
   static_cast<views::View*>(view_)->OnMouseMoved(mouse_down);
 }
+
+bool PasswordGenerationPopupViewTesterViews::IsPopupMinimized() const {
+  return view_->IsPopupMinimized();
+}
diff --git a/chrome/browser/ui/views/passwords/password_generation_popup_view_tester_views.h b/chrome/browser/ui/views/passwords/password_generation_popup_view_tester_views.h
index 5d42ae4b..79b6d202 100644
--- a/chrome/browser/ui/views/passwords/password_generation_popup_view_tester_views.h
+++ b/chrome/browser/ui/views/passwords/password_generation_popup_view_tester_views.h
@@ -25,6 +25,8 @@
 
   void SimulateMouseMovementAt(const gfx::Point& point) override;
 
+  bool IsPopupMinimized() const override;
+
  private:
   // Weak reference
   raw_ptr<PasswordGenerationPopupViewViews> view_;
diff --git a/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc b/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc
index 2addf34..5bbc375 100644
--- a/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc
+++ b/chrome/browser/ui/views/passwords/password_generation_popup_view_views.cc
@@ -35,6 +35,7 @@
 #include "ui/views/controls/label.h"
 #include "ui/views/controls/styled_label.h"
 #include "ui/views/layout/box_layout.h"
+#include "ui/views/layout/fill_layout.h"
 #include "ui/views/widget/widget.h"
 
 namespace {
@@ -228,7 +229,9 @@
 void PasswordGenerationPopupViewViews::Hide() {
   // The controller is no longer valid after it hides us.
   controller_ = nullptr;
-  password_view_->reset_controller();
+  if (password_view_) {
+    password_view_->reset_controller();
+  }
 
   DoHide();
 }
@@ -241,7 +244,9 @@
 }
 
 void PasswordGenerationPopupViewViews::UpdateGeneratedPasswordValue() {
-  password_view_->UpdateGeneratedPassword(controller_->password());
+  if (password_view_) {
+    password_view_->UpdateGeneratedPassword(controller_->password());
+  }
   Layout();
 }
 
@@ -256,13 +261,25 @@
   if (!GetWidget())
     return;
 
-  password_view_->UpdateBackground(controller_->password_selected()
-                                       ? GetSelectedBackgroundColor()
-                                       : GetBackgroundColor());
+  if (password_view_) {
+    password_view_->UpdateBackground(controller_->password_selected()
+                                         ? GetSelectedBackgroundColor()
+                                         : GetBackgroundColor());
+  }
   SchedulePaint();
 }
 
 void PasswordGenerationPopupViewViews::CreateLayoutAndChildren() {
+  if (controller_->IsStateMinimized()) {
+    SetLayoutManager(std::make_unique<views::FillLayout>());
+    auto warning_icon = std::make_unique<views::ImageView>();
+    warning_icon->SetImage(ui::ImageModel::FromVectorIcon(
+        vector_icons::kNotificationWarningIcon, ui::kColorAlertMediumSeverity,
+        kIconSize));
+    AddChildView(std::move(warning_icon));
+    return;
+  }
+
   // Add 1px distance between views for the separator.
   views::BoxLayout* box_layout =
       SetLayoutManager(std::make_unique<views::BoxLayout>(
@@ -315,9 +332,11 @@
 void PasswordGenerationPopupViewViews::OnThemeChanged() {
   autofill::AutofillPopupBaseView::OnThemeChanged();
   SetBackground(views::CreateSolidBackground(GetBackgroundColor()));
-  password_view_->UpdateBackground(controller_->password_selected()
-                                       ? GetSelectedBackgroundColor()
-                                       : GetBackgroundColor());
+  if (password_view_) {
+    password_view_->UpdateBackground(controller_->password_selected()
+                                         ? GetSelectedBackgroundColor()
+                                         : GetBackgroundColor());
+  }
   if (help_styled_label_) {
     help_styled_label_->SetDisplayedOnBackgroundColor(
         GetFooterBackgroundColor());
@@ -333,10 +352,12 @@
 
   // Divider line needs to be drawn after OnPaint() otherwise the background
   // will overwrite the divider.
-  gfx::Rect divider_bounds(0, password_view_->bounds().bottom(),
-                           password_view_->width(), 1);
-  canvas->FillRect(divider_bounds,
-                   GetColorProvider()->GetColor(GetSeparatorColorId()));
+  if (password_view_) {
+    gfx::Rect divider_bounds(0, password_view_->bounds().bottom(),
+                             password_view_->width(), 1);
+    canvas->FillRect(divider_bounds,
+                     GetColorProvider()->GetColor(GetSeparatorColorId()));
+  }
 }
 
 void PasswordGenerationPopupViewViews::GetAccessibleNodeData(
@@ -351,6 +372,10 @@
 }
 
 gfx::Size PasswordGenerationPopupViewViews::CalculatePreferredSize() const {
+  if (!password_view_) {
+    return GetLayoutManager()->GetPreferredSize(this);
+  }
+
   int width =
       std::max(password_view_->GetPreferredSize().width(),
                gfx::ToEnclosingRect(controller_->element_bounds()).width());
diff --git a/chrome/browser/ui/views/passwords/password_generation_popup_view_views.h b/chrome/browser/ui/views/passwords/password_generation_popup_view_views.h
index 169e6d5..bec5883 100644
--- a/chrome/browser/ui/views/passwords/password_generation_popup_view_views.h
+++ b/chrome/browser/ui/views/passwords/password_generation_popup_view_views.h
@@ -36,6 +36,12 @@
   [[nodiscard]] bool UpdateBoundsAndRedrawPopup() override;
   void PasswordSelectionUpdated() override;
 
+#if defined(UNIT_TEST)
+  // Returns true if a minimized version with just a warning icon is created
+  // instead of the whole `password_view_`.
+  bool IsPopupMinimized() const { return !password_view_; }
+#endif
+
  private:
   class GeneratedPasswordBox;
   ~PasswordGenerationPopupViewViews() override;
diff --git a/chrome/browser/ui/views/payments/contact_info_editor_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/contact_info_editor_view_controller_browsertest.cc
index b21f790a..15663b3 100644
--- a/chrome/browser/ui/views/payments/contact_info_editor_view_controller_browsertest.cc
+++ b/chrome/browser/ui/views/payments/contact_info_editor_view_controller_browsertest.cc
@@ -50,10 +50,10 @@
 IN_PROC_BROWSER_TEST_F(MAYBE_PaymentRequestContactInfoEditorTest, HappyPath) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_contact_details_test.html");
@@ -106,10 +106,10 @@
                        EnterAcceleratorHappyPath) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_contact_details_test.html");
@@ -159,10 +159,10 @@
 IN_PROC_BROWSER_TEST_F(MAYBE_PaymentRequestContactInfoEditorTest, Validation) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_contact_details_test.html");
@@ -226,10 +226,10 @@
                        ModifyExisting) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_contact_details_test.html");
@@ -286,10 +286,10 @@
                        ModifyExistingSelectsIt) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_contact_details_test.html");
@@ -354,10 +354,10 @@
                        HappyPathInIncognito) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   SetIncognito();
@@ -410,10 +410,10 @@
                        RetryWithPayerErrors) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_retry_with_payer_errors.html");
@@ -462,10 +462,10 @@
     RetryWithPayerErrors_HasSameValueButDifferentErrorsShown) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_retry_with_payer_errors.html");
@@ -516,10 +516,10 @@
                        RetryWithPayerErrors_NoPaymentOptions) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_retry_with_no_payment_options.html");
diff --git a/chrome/browser/ui/views/payments/empty_update_browsertest.cc b/chrome/browser/ui/views/payments/empty_update_browsertest.cc
index 9037ea5..b4b57ca 100644
--- a/chrome/browser/ui/views/payments/empty_update_browsertest.cc
+++ b/chrome/browser/ui/views/payments/empty_update_browsertest.cc
@@ -17,10 +17,10 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestEmptyUpdateTest, NoCrash) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_empty_update_test.html");
diff --git a/chrome/browser/ui/views/payments/error_message_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/error_message_view_controller_browsertest.cc
index b4943153..80ad702 100644
--- a/chrome/browser/ui/views/payments/error_message_view_controller_browsertest.cc
+++ b/chrome/browser/ui/views/payments/error_message_view_controller_browsertest.cc
@@ -18,7 +18,7 @@
 // Testing the use of the complete('fail') JS API and the error message.
 IN_PROC_BROWSER_TEST_F(PaymentRequestErrorMessageTest, CompleteFail) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_fail_complete_test.html");
diff --git a/chrome/browser/ui/views/payments/modifiers_browsertest.cc b/chrome/browser/ui/views/payments/modifiers_browsertest.cc
index 5cb93e3..60ceca6 100644
--- a/chrome/browser/ui/views/payments/modifiers_browsertest.cc
+++ b/chrome/browser/ui/views/payments/modifiers_browsertest.cc
@@ -44,10 +44,10 @@
   // without an icon - this makes ServiceWorkerPaymentApp::CanPreselect false
   // for it and so the other app should be selected.
   std::string payment_method_name_1;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name_1);
   std::string payment_method_name_2;
-  InstallPaymentAppWithoutIcon("b.com", "payment_request_success_responder.js",
+  InstallPaymentAppWithoutIcon("b.com", "/payment_request_success_responder.js",
                                &payment_method_name_2);
 
   NavigateTo("/payment_request_with_modifiers_test.html");
@@ -70,10 +70,10 @@
   // The modifier without the total applies to the first method; to make sure
   // that it is always selected we install the second method without an icon.
   std::string payment_method_name_1;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name_1);
   std::string payment_method_name_2;
-  InstallPaymentAppWithoutIcon("b.com", "payment_request_success_responder.js",
+  InstallPaymentAppWithoutIcon("b.com", "/payment_request_success_responder.js",
                                &payment_method_name_2);
 
   NavigateTo("/payment_request_with_modifiers_test.html");
diff --git a/chrome/browser/ui/views/payments/order_summary_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/order_summary_view_controller_browsertest.cc
index 9f4f534..30863eb 100644
--- a/chrome/browser/ui/views/payments/order_summary_view_controller_browsertest.cc
+++ b/chrome/browser/ui/views/payments/order_summary_view_controller_browsertest.cc
@@ -20,7 +20,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestOrderSummaryViewControllerTest,
                        OrderSummaryReflectsShippingOption) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_dynamic_shipping_test.html");
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_browsertest.cc
index c5eaddbe..fcbce1a 100644
--- a/chrome/browser/ui/views/payments/payment_request_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_browsertest.cc
@@ -56,10 +56,10 @@
   void OpenPaymentRequestDialog() {
     // Installs two apps so that the Payment Request UI will be shown.
     std::string a_method_name;
-    InstallPaymentApp("a.com", "payment_request_success_responder.js",
+    InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                       &a_method_name);
     std::string b_method_name;
-    InstallPaymentApp("b.com", "payment_request_success_responder.js",
+    InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                       &b_method_name);
 
     NavigateTo("/payment_request_no_shipping_test.html");
@@ -108,10 +108,10 @@
 
 IN_PROC_BROWSER_TEST_F(PaymentRequestNoShippingTest, InactiveBrowserWindow) {
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_no_shipping_test.html");
@@ -128,10 +128,10 @@
 
 IN_PROC_BROWSER_TEST_F(PaymentRequestNoShippingTest, InvalidSSL) {
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_no_shipping_test.html");
@@ -152,10 +152,10 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestAbortTest, OpenThenAbort) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_abort_test.html");
@@ -188,10 +188,10 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestPaymentMethodIdentifierTest, Url_Valid) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_payment_method_identifier_test.html");
@@ -239,10 +239,10 @@
 IN_PROC_BROWSER_TEST_F(PaymentsRequestVisualTest, InvokeUi_NoShipping) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name_);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name_);
 
   NavigateTo("/payment_request_no_shipping_test.html");
@@ -261,10 +261,10 @@
 
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_no_shipping_test.html");
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
index 9d20031..a85b597 100644
--- a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
+++ b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
@@ -27,6 +27,7 @@
 #include "chrome/browser/ui/views/payments/validating_textfield.h"
 #include "chrome/browser/ui/views/payments/view_stack.h"
 #include "chrome/test/base/ui_test_utils.h"
+#include "chrome/test/payments/payment_app_install_util.h"
 #include "components/autofill/core/browser/data_model/autofill_profile.h"
 #include "components/autofill/core/browser/data_model/credit_card.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
@@ -266,38 +267,21 @@
     const std::string& hostname,
     const std::string& service_worker_filename,
     std::string* url_method_output) {
-  NavigateTo(hostname, "/payment_handler_installer.html");
-  *url_method_output = https_server()->GetURL(hostname, "/").spec();
-  *url_method_output =
-      url_method_output->substr(0, url_method_output->length() - 1);
-  ASSERT_NE('/', (*url_method_output)[url_method_output->length() - 1]);
-  ASSERT_EQ("success",
-            content::EvalJs(GetActiveWebContents(),
-                            content::JsReplace("install($1, [$2], false)",
-                                               service_worker_filename,
-                                               *url_method_output)));
-  // We can't output `url_method_output` by return because the ASSERTs require
-  // the method to return void.
+  *url_method_output = PaymentAppInstallUtil::InstallPaymentApp(
+      *GetActiveWebContents(), *https_server(), hostname,
+      service_worker_filename, PaymentAppInstallUtil::IconInstall::kWithIcon);
+  ASSERT_FALSE(url_method_output->empty()) << "Failed to install payment app";
 }
 
-// The default |InstallPaymentApp| uses a manifest file that contains an icon.
-// This path doesn't install an icon.
 void PaymentRequestBrowserTestBase::InstallPaymentAppWithoutIcon(
     const std::string& hostname,
     const std::string& service_worker_filename,
     std::string* url_method_output) {
-  NavigateTo(hostname, "/payment_handler_installer_no_icon.html");
-  *url_method_output = https_server()->GetURL(hostname, "/").spec();
-  *url_method_output =
-      url_method_output->substr(0, url_method_output->length() - 1);
-  ASSERT_NE('/', (*url_method_output)[url_method_output->length() - 1]);
-  ASSERT_EQ("success",
-            content::EvalJs(GetActiveWebContents(),
-                            content::JsReplace("install($1, [$2], false)",
-                                               service_worker_filename,
-                                               *url_method_output)));
-  // We can't output `url_method_output` by return because the ASSERTs require
-  // the method to return void.
+  *url_method_output = PaymentAppInstallUtil::InstallPaymentApp(
+      *GetActiveWebContents(), *https_server(), hostname,
+      service_worker_filename,
+      PaymentAppInstallUtil::IconInstall::kWithoutIcon);
+  ASSERT_FALSE(url_method_output->empty()) << "Failed to install payment app";
 }
 
 void PaymentRequestBrowserTestBase::InvokePaymentRequestUI() {
diff --git a/chrome/browser/ui/views/payments/payment_request_can_make_payment_metrics_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_can_make_payment_metrics_browsertest.cc
index 156a127..89bda0e 100644
--- a/chrome/browser/ui/views/payments/payment_request_can_make_payment_metrics_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_can_make_payment_metrics_browsertest.cc
@@ -46,11 +46,11 @@
 
   void InstallTwoPaymentHandlersAndQueryShow() {
     std::string a_method_name;
-    InstallPaymentApp("a.com", "payment_request_success_responder.js",
+    InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                       &a_method_name);
 
     std::string b_method_name;
-    InstallPaymentApp("b.com", "payment_request_success_responder.js",
+    InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                       &b_method_name);
 
     NavigateTo("c.com", "/payment_request_can_make_payment_metrics_test.html");
@@ -77,11 +77,11 @@
 
   void InstallTwoPaymentHandlersAndNoQueryShow() {
     std::string a_method_name;
-    InstallPaymentApp("a.com", "payment_request_success_responder.js",
+    InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                       &a_method_name);
 
     std::string b_method_name;
-    InstallPaymentApp("b.com", "payment_request_success_responder.js",
+    InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                       &b_method_name);
 
     NavigateTo("c.com", "/payment_request_can_make_payment_metrics_test.html");
@@ -109,7 +109,7 @@
   base::HistogramTester histogram_tester;
 
   std::string a_method_name;
-  InstallPaymentApp("a.com", "can_make_payment_true_responder.js",
+  InstallPaymentApp("a.com", "/can_make_payment_true_responder.js",
                     &a_method_name);
 
   NavigateTo("b.com", "/payment_request_can_make_payment_metrics_test.html");
@@ -395,7 +395,7 @@
   base::HistogramTester histogram_tester;
 
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
 
   NavigateTo("b.com", "/payment_request_can_make_payment_metrics_test.html");
diff --git a/chrome/browser/ui/views/payments/payment_request_completion_status_metrics_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_completion_status_metrics_browsertest.cc
index f02da25..2105fdb7 100644
--- a/chrome/browser/ui/views/payments/payment_request_completion_status_metrics_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_completion_status_metrics_browsertest.cc
@@ -69,10 +69,10 @@
                        MerchantAborted_Reload) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_can_make_payment_metrics_test.html");
@@ -131,10 +131,10 @@
                        MerchantAborted_Navigation) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_can_make_payment_metrics_test.html");
@@ -195,11 +195,11 @@
                        MerchantAborted_Abort) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
 
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
   NavigateTo("/payment_request_can_make_payment_metrics_test.html");
   base::HistogramTester histogram_tester;
@@ -260,10 +260,10 @@
                        UserAborted_Navigation) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_can_make_payment_metrics_test.html");
@@ -320,10 +320,10 @@
                        DISABLED_UserAborted_CancelButton) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_can_make_payment_metrics_test.html");
@@ -380,10 +380,10 @@
                        DISABLED_UserAborted_TabClosed) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_can_make_payment_metrics_test.html");
@@ -441,10 +441,10 @@
                        UserAborted_Reload) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_can_make_payment_metrics_test.html");
diff --git a/chrome/browser/ui/views/payments/payment_request_journey_logger_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_journey_logger_browsertest.cc
index 9022796..a5e14cdb 100644
--- a/chrome/browser/ui/views/payments/payment_request_journey_logger_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_journey_logger_browsertest.cc
@@ -31,10 +31,10 @@
                        TestSelectedPaymentMethod) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_no_shipping_test.html");
@@ -138,10 +138,10 @@
                        ShowSameRequest) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("c.com", "/payment_request_multiple_show_test.html");
@@ -205,10 +205,10 @@
                        StartNewRequest) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_multiple_show_test.html");
@@ -323,11 +323,11 @@
                        NumberOfSuggestionsShown_Completed) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
 
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("c.com",
@@ -392,11 +392,11 @@
                        NumberOfSuggestionsShown_UserAborted) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
 
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("c.com",
@@ -463,10 +463,10 @@
                        NumberOfSuggestionsShown_Completed) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("c.com", "/payment_request_contact_details_test.html");
@@ -531,10 +531,10 @@
                        NumberOfSuggestionsShown_UserAborted) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("c.com", "/payment_request_contact_details_test.html");
@@ -602,10 +602,10 @@
     NumberOfSuggestionsShown_Completed) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("c.com", "/payment_request_free_shipping_test.html");
@@ -672,10 +672,10 @@
     NumberOfSuggestionsShown_UserAborted) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_free_shipping_test.html");
@@ -741,10 +741,10 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestNotShownTest, OnlyNotShownMetricsLogged) {
   // Installs two apps so that canMakePayment is true.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_can_make_payment_metrics_test.html");
@@ -798,10 +798,10 @@
                        UserHadCompleteSuggestionsForEverything) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_email_test.html");
@@ -869,9 +869,11 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestIframeTest, CrossOriginIframe) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js", &a_method);
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
+                    &a_method);
   std::string b_method;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js", &b_method);
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
+                    &b_method);
 
   base::HistogramTester histogram_tester;
 
@@ -939,9 +941,11 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestIframeTest, IframeNavigation_UserAborted) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js", &a_method);
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
+                    &a_method);
   std::string b_method;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js", &b_method);
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
+                    &b_method);
 
   NavigateTo("c.com", "/payment_request_free_shipping_with_iframe_test.html");
   base::HistogramTester histogram_tester;
@@ -992,9 +996,11 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestIframeTest, IframeNavigation_Completed) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js", &a_method);
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
+                    &a_method);
   std::string b_method;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js", &b_method);
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
+                    &b_method);
 
   NavigateTo("/payment_request_free_shipping_with_iframe_test.html");
   base::HistogramTester histogram_tester;
@@ -1051,9 +1057,11 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestIframeTest, HistoryPushState_UserAborted) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js", &a_method);
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
+                    &a_method);
   std::string b_method;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js", &b_method);
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
+                    &b_method);
 
   NavigateTo("/payment_request_free_shipping_with_iframe_test.html");
   base::HistogramTester histogram_tester;
@@ -1106,9 +1114,11 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestIframeTest, HistoryPushState_Completed) {
   // Installs two apps to ensure that the payment request UI is shown.
   std::string a_method;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js", &a_method);
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
+                    &a_method);
   std::string b_method;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js", &b_method);
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
+                    &b_method);
 
   NavigateTo("/payment_request_free_shipping_with_iframe_test.html");
   base::HistogramTester histogram_tester;
diff --git a/chrome/browser/ui/views/payments/payment_request_no_update_with_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_no_update_with_browsertest.cc
index f9dde2e2..e2062cb 100644
--- a/chrome/browser/ui/views/payments/payment_request_no_update_with_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_no_update_with_browsertest.cc
@@ -20,10 +20,10 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestNoUpdateWithTest, BuyWithoutListeners) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_no_update_with_test.html");
@@ -69,10 +69,10 @@
                        BuyWithoutCallingUpdateWith) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_no_update_with_test.html");
@@ -117,10 +117,10 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestNoUpdateWithTest, BuyWithoutPromises) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_no_update_with_test.html");
diff --git a/chrome/browser/ui/views/payments/payment_request_payment_response_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_payment_response_browsertest.cc
index 86d8cb0..b714df7 100644
--- a/chrome/browser/ui/views/payments/payment_request_payment_response_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_payment_response_browsertest.cc
@@ -28,14 +28,15 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestPaymentResponseShippingAddressTest,
                        TestPaymentResponse) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_free_shipping_test.html");
 
   // Create two shipping addresses, one with a higher frequency score so that it
   // is selected as the default shipping address.
-  autofill::AutofillProfile shipping_address1 = autofill::test::GetFullProfile();
+  autofill::AutofillProfile shipping_address1 =
+      autofill::test::GetFullProfile();
   AddAutofillProfile(shipping_address1);
   autofill::AutofillProfile shipping_address2 =
       autofill::test::GetFullProfile2();
@@ -70,7 +71,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestPaymentResponseAllContactDetailsTest,
                        TestPaymentResponse) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_contact_details_and_free_shipping_test.html");
@@ -98,10 +99,10 @@
     RetryWithPayerErrors_HasSameValueButDifferentErrorsShown) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_retry_with_payer_errors.html");
@@ -156,7 +157,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestPaymentResponseOneContactDetailTest,
                        TestPaymentResponse) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_email_and_free_shipping_test.html");
diff --git a/chrome/browser/ui/views/payments/payment_request_retry_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_retry_browsertest.cc
index e47986d..8be2375 100644
--- a/chrome/browser/ui/views/payments/payment_request_retry_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_retry_browsertest.cc
@@ -18,10 +18,10 @@
                        DoNotAllowPaymentInstrumentChange) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_retry_with_payer_errors.html");
diff --git a/chrome/browser/ui/views/payments/payment_request_shipping_address_instance_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_shipping_address_instance_browsertest.cc
index 8937a44..8775c55 100644
--- a/chrome/browser/ui/views/payments/payment_request_shipping_address_instance_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_shipping_address_instance_browsertest.cc
@@ -18,7 +18,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressInstanceTest,
                        ShouldBeSameInstance) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   autofill::AutofillProfile billing_address = autofill::test::GetFullProfile();
diff --git a/chrome/browser/ui/views/payments/payment_request_update_with_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_update_with_browsertest.cc
index 9df3d4e4..e73f7cd 100644
--- a/chrome/browser/ui/views/payments/payment_request_update_with_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_update_with_browsertest.cc
@@ -41,7 +41,7 @@
   AddAutofillProfile(autofill::test::GetFullProfile2());
 
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_update_with_test.html");
@@ -95,7 +95,7 @@
   AddAutofillProfile(autofill::test::GetFullProfile2());
 
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_update_with_test.html");
@@ -148,7 +148,7 @@
   AddAutofillProfile(autofill::test::GetFullProfile2());
 
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_update_with_test.html");
@@ -202,7 +202,7 @@
   AddAutofillProfile(autofill::test::GetFullProfile2());
 
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_update_with_test.html");
@@ -255,7 +255,7 @@
   AddAutofillProfile(autofill::test::GetFullProfile2());
 
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_update_with_test.html");
@@ -310,7 +310,7 @@
   AddAutofillProfile(autofill::test::GetFullProfile2());
 
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_update_with_test.html");
diff --git a/chrome/browser/ui/views/payments/payment_request_use_stats_browsertest.cc b/chrome/browser/ui/views/payments/payment_request_use_stats_browsertest.cc
index 0ef42bc0..9462d433 100644
--- a/chrome/browser/ui/views/payments/payment_request_use_stats_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_request_use_stats_browsertest.cc
@@ -34,7 +34,7 @@
 // properly updated upon completion.
 IN_PROC_BROWSER_TEST_F(PaymentRequestShippingAddressUseStatsTest, RecordUse) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_free_shipping_test.html");
@@ -79,7 +79,7 @@
 // properly updated upon completion.
 IN_PROC_BROWSER_TEST_F(PaymentRequestContactAddressUseStatsTest, RecordUse) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_name_test.html");
@@ -125,7 +125,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentRequestSameShippingAndContactAddressUseStatsTest,
                        RecordUse) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_contact_details_and_free_shipping_test.html");
diff --git a/chrome/browser/ui/views/payments/payment_sheet_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/payment_sheet_view_controller_browsertest.cc
index bb76c96..240ef73 100644
--- a/chrome/browser/ui/views/payments/payment_sheet_view_controller_browsertest.cc
+++ b/chrome/browser/ui/views/payments/payment_sheet_view_controller_browsertest.cc
@@ -26,7 +26,7 @@
 IN_PROC_BROWSER_TEST_F(PaymentSheetViewControllerNoShippingTest,
                        NoShippingNoContactRows) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_no_shipping_test.html");
diff --git a/chrome/browser/ui/views/payments/profile_list_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/profile_list_view_controller_browsertest.cc
index 7f1238aa..d7e1499 100644
--- a/chrome/browser/ui/views/payments/profile_list_view_controller_browsertest.cc
+++ b/chrome/browser/ui/views/payments/profile_list_view_controller_browsertest.cc
@@ -30,7 +30,7 @@
 
 IN_PROC_BROWSER_TEST_F(PaymentRequestProfileListTest, PrioritizeCompleteness) {
   std::string payment_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &payment_method_name);
 
   NavigateTo("/payment_request_free_shipping_test.html");
diff --git a/chrome/browser/ui/views/payments/shipping_option_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/shipping_option_view_controller_browsertest.cc
index bfbb331d..b564a7a95 100644
--- a/chrome/browser/ui/views/payments/shipping_option_view_controller_browsertest.cc
+++ b/chrome/browser/ui/views/payments/shipping_option_view_controller_browsertest.cc
@@ -22,10 +22,10 @@
                        SelectingVariousShippingOptions) {
   // Installs two apps so that the Payment Request UI will be shown.
   std::string a_method_name;
-  InstallPaymentApp("a.com", "payment_request_success_responder.js",
+  InstallPaymentApp("a.com", "/payment_request_success_responder.js",
                     &a_method_name);
   std::string b_method_name;
-  InstallPaymentApp("b.com", "payment_request_success_responder.js",
+  InstallPaymentApp("b.com", "/payment_request_success_responder.js",
                     &b_method_name);
 
   NavigateTo("/payment_request_dynamic_shipping_test.html");
diff --git a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.cc b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.cc
index 4568b37..e93358b8 100644
--- a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.cc
+++ b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.cc
@@ -20,6 +20,7 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_ui.h"
 #include "net/base/url_util.h"
+#include "third_party/blink/public/common/page/page_zoom.h"
 #include "ui/base/metadata/metadata_impl_macros.h"
 #include "ui/views/layout/fill_layout.h"
 
@@ -122,6 +123,14 @@
       AddChildView(std::make_unique<views::WebView>(browser->profile()));
   web_view_->LoadInitialURL(GetDialogURL(prompt_type));
 
+  // Override the default zoom level for the Privacy Sandbox dialog. Its size
+  // should align with native UI elements, rather than web content.
+  auto* web_contents = web_view_->GetWebContents();
+  auto* rfh = web_contents->GetPrimaryMainFrame();
+  auto* zoom_map = content::HostZoomMap::GetForWebContents(web_contents);
+  zoom_map->SetTemporaryZoomLevel(rfh->GetGlobalId(),
+                                  blink::PageZoomFactorToZoomLevel(1.0f));
+
   auto width = views::LayoutProvider::Get()->GetSnappedDialogWidth(
       GetDialogWidth(prompt_type));
   // TODO(crbug.com/1378703): Adjust default values for new prompt types.
diff --git a/chrome/browser/ui/views/profiles/profile_management_step_controller.cc b/chrome/browser/ui/views/profiles/profile_management_step_controller.cc
index 827e349..ff0e8f2 100644
--- a/chrome/browser/ui/views/profiles/profile_management_step_controller.cc
+++ b/chrome/browser/ui/views/profiles/profile_management_step_controller.cc
@@ -6,6 +6,7 @@
 
 #include "base/memory/raw_ptr.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -152,8 +153,9 @@
       finish_flow_callback_->Reset();
 
       // The profile setup did not continue. Schedule it for deletion.
-      g_browser_process->profile_manager()->ScheduleEphemeralProfileForDeletion(
-          profile_->GetPath());
+      g_browser_process->profile_manager()
+          ->GetDeleteProfileHelper()
+          .ScheduleEphemeralProfileForDeletion(profile_->GetPath());
     }
   }
 
diff --git a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
index 6b6623c..1af51a56 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.cc
@@ -5,7 +5,9 @@
 #include "chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.h"
 
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
@@ -70,10 +72,10 @@
       // Schedule the ephemeral profile for deletion if it wasn't deleted yet,
       // since it's not needed any more.
       if (!profile_path_.has_value() &&
-          !ProfileManager::IsProfileDirectoryMarkedForDeletion(
-              profile_->GetPath())) {
+          !IsProfileDirectoryMarkedForDeletion(profile_->GetPath())) {
         g_browser_process->profile_manager()
-            ->ScheduleEphemeralProfileForDeletion(profile_->GetPath());
+            ->GetDeleteProfileHelper()
+            .ScheduleEphemeralProfileForDeletion(profile_->GetPath());
       }
     }
 
diff --git a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider_browsertest.cc b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider_browsertest.cc
index ab003b3..ce63419 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider_browsertest.cc
@@ -2,11 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.h"
+
 #include "base/functional/callback_helpers.h"
 #include "base/test/mock_callback.h"
-#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
+#include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/views/profiles/profile_picker_dice_sign_in_provider.h"
 #include "chrome/browser/ui/views/profiles/profile_picker_web_contents_host.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "content/public/browser/web_contents.h"
@@ -91,8 +93,7 @@
   }
 
   // On exit, the provider should schedule the profile it created for deletion.
-  EXPECT_TRUE(ProfileManager::IsProfileDirectoryMarkedForDeletion(
-      provider_profile_path));
+  EXPECT_TRUE(IsProfileDirectoryMarkedForDeletion(provider_profile_path));
 }
 
 IN_PROC_BROWSER_TEST_F(ProfilePickerDiceSignInProviderBrowserTest,
@@ -129,6 +130,5 @@
   }
 
   // Since a profile has been passed in, the provider should not delete it.
-  EXPECT_FALSE(ProfileManager::IsProfileDirectoryMarkedForDeletion(
-      provider_profile_path));
+  EXPECT_FALSE(IsProfileDirectoryMarkedForDeletion(provider_profile_path));
 }
diff --git a/chrome/browser/ui/views/profiles/profile_picker_flow_controller.cc b/chrome/browser/ui/views/profiles/profile_picker_flow_controller.cc
index f0d1caf3..467a9ce 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_flow_controller.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_flow_controller.cc
@@ -8,6 +8,7 @@
 
 #include "base/trace_event/trace_event.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/profiles/profile_metrics.h"
@@ -135,8 +136,9 @@
     // Record unfinished signed-in profile creation.
     if (!is_finishing_) {
       // Schedule the profile for deletion, it's not needed any more.
-      g_browser_process->profile_manager()->ScheduleEphemeralProfileForDeletion(
-          profile()->GetPath());
+      g_browser_process->profile_manager()
+          ->GetDeleteProfileHelper()
+          .ScheduleEphemeralProfileForDeletion(profile()->GetPath());
 
       // TODO(crbug.com/1300109): Consider moving this recording into
       // ProfilePickerTurnSyncOnDelegate and unify this code with Cancel().
@@ -169,8 +171,9 @@
     is_finishing_ = true;
 
     // Schedule the profile for deletion, it's not needed any more.
-    g_browser_process->profile_manager()->ScheduleEphemeralProfileForDeletion(
-        profile()->GetPath());
+    g_browser_process->profile_manager()
+        ->GetDeleteProfileHelper()
+        .ScheduleEphemeralProfileForDeletion(profile()->GetPath());
   }
 
   void FinishAndOpenBrowser(PostHostClearedCallback callback) override {
diff --git a/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
index 8ad4a31..0fbb7b52 100644
--- a/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
+++ b/chrome/browser/ui/views/profiles/profile_picker_view_browsertest.cc
@@ -32,6 +32,7 @@
 #include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
 #include "chrome/browser/policy/profile_policy_connector.h"
 #include "chrome/browser/policy/profile_policy_connector_builder.h"
+#include "chrome/browser/profiles/nuke_profile_directory_utils.h"
 #include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_attributes_storage.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -1813,7 +1814,7 @@
 #else
   EXPECT_FALSE(contents_profile->IsSystemProfile());
   // The sign-in profile should be marked for deletion.
-  ProfileManager::IsProfileDirectoryMarkedForDeletion(contents_profile_path);
+  IsProfileDirectoryMarkedForDeletion(contents_profile_path);
 #endif
   EXPECT_EQ(initial_profile_count, g_browser_process->profile_manager()
                                        ->GetProfileAttributesStorage()
diff --git a/chrome/browser/ui/views/side_panel/side_panel.cc b/chrome/browser/ui/views/side_panel/side_panel.cc
index b1666a07..7846e55f 100644
--- a/chrome/browser/ui/views/side_panel/side_panel.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel.cc
@@ -213,9 +213,8 @@
 }
 
 gfx::Size SidePanel::GetMinimumSize() const {
-  const int min_side_panel_contents_width = 320;
   const int min_height = 0;
-  return gfx::Size(min_side_panel_contents_width + kBorderInsets.width(),
+  return gfx::Size(min_side_panel_contents_width_ + kBorderInsets.width(),
                    min_height);
 }
 
@@ -253,8 +252,21 @@
     starting_width_on_resize_ = -1;
   }
   const int minimum_width = GetMinimumSize().width();
-  if (proposed_width < minimum_width) {
+  // The side panel may be resized up to leaving the main contents at
+  // kMainBrowserContentsMinimumWidth.
+  DCHECK_EQ(browser_view_->GetMinimumSize().width(),
+            BrowserViewLayout::kMainBrowserContentsMinimumWidth);
+  const int maximum_width = width() +
+                            browser_view_->contents_web_view()->width() -
+                            BrowserViewLayout::kMainBrowserContentsMinimumWidth;
+  // Side panel must stay at minimum width if either:
+  // a) The proposed width is less than the minimum.
+  // b) There is not enough room for the side panel to be wider than the
+  //    minimum.
+  if (proposed_width < minimum_width || maximum_width < minimum_width) {
     proposed_width = minimum_width;
+  } else if (proposed_width > maximum_width) {
+    proposed_width = maximum_width;
   }
   if (width() != proposed_width) {
     SetPanelWidth(proposed_width);
diff --git a/chrome/browser/ui/views/side_panel/side_panel.h b/chrome/browser/ui/views/side_panel/side_panel.h
index fc411e9b..0a83a10 100644
--- a/chrome/browser/ui/views/side_panel/side_panel.h
+++ b/chrome/browser/ui/views/side_panel/side_panel.h
@@ -37,6 +37,9 @@
   HorizontalAlignment GetHorizontalAlignment();
   bool IsRightAligned();
   gfx::Size GetMinimumSize() const override;
+  void SetMinimumSidePanelContentsWidthForTesting(int width) {
+    min_side_panel_contents_width_ = width;
+  }
 
   // views::ResizeAreaDelegate:
   void OnResize(int resize_amount, bool done_resizing) override;
@@ -72,6 +75,8 @@
 
   // Observes and listens to side panel alignment changes.
   PrefChangeRegistrar pref_change_registrar_;
+
+  int min_side_panel_contents_width_ = 320;
 };
 
 #endif  // CHROME_BROWSER_UI_VIEWS_SIDE_PANEL_SIDE_PANEL_H_
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc b/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
index a63d734..1abcfea 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
@@ -119,6 +119,19 @@
     return coordinator_->header_combobox_ != nullptr;
   }
 
+  void SetBrowserViewWidth(const int width) {
+    // If browser window is maximized then explicitly restore it, as otherwise
+    // the SetBounds call would be a no-op.
+    // TODO(crbug.com/1393153): Fix this on lacros builds and remove buildflag.
+#if !BUILDFLAG(IS_CHROMEOS_LACROS)
+    if (browser_view()->IsMaximized())
+      browser_view()->Restore();
+#endif
+
+    browser_view()->SetBounds(
+        gfx::Rect(width, browser_view()->GetBounds().height()));
+  }
+
  protected:
   raw_ptr<SidePanelCoordinator> coordinator_;
   raw_ptr<SidePanelRegistry> global_registry_;
@@ -142,8 +155,22 @@
   // Set side panel to right-aligned
   browser_view()->GetProfile()->GetPrefs()->SetBoolean(
       prefs::kSidePanelHorizontalAlignment, true);
+
+  // The side panel can only be widened when the browser main web contents width
+  // is greater than |BrowserViewLayout::kMainBrowserContentsMinimumWidth|,
+  // which is 500. Therefore the side panel can only be widened when the total
+  // browser view width is greater than the minimum side panel contents width +
+  // 500. The browser view maximum width is constrained by the display maximum,
+  // which is 800 on win32 and ChromeOS.
+  // Therefore, we set the browser view width to be 800 and we reduce the side
+  // panel width to 100 so that it can be widened and shrunk.
+  SetBrowserViewWidth(800);
+  browser_view()
+      ->unified_side_panel()
+      ->SetMinimumSidePanelContentsWidthForTesting(100);
+
   coordinator_->Toggle();
-  const int starting_width = 500;
+  const int starting_width = 200;
   browser_view()->unified_side_panel()->SetPanelWidth(starting_width);
   views::test::RunScheduledLayout(browser_view());
   EXPECT_EQ(browser_view()->unified_side_panel()->width(), starting_width);
@@ -168,8 +195,21 @@
 }
 
 TEST_F(SidePanelCoordinatorTest, ChangeSidePanelWidthMaxMin) {
+  // The side panel can only be widened when the browser main web contents width
+  // is greater than |BrowserViewLayout::kMainBrowserContentsMinimumWidth|,
+  // which is 500. Therefore the side panel can only be widened when the total
+  // browser view width is greater than the minimum side panel contents width +
+  // 500. The browser view maximum width is constrained by the display maximum,
+  // which is 800 on win32 and ChromeOS.
+  // Therefore, we set the browser view width to be 800 and we reduce the side
+  // panel width to 100 so that it can be widened and shrunk.
+  SetBrowserViewWidth(800);
+  browser_view()
+      ->unified_side_panel()
+      ->SetMinimumSidePanelContentsWidthForTesting(100);
+
   coordinator_->Toggle();
-  const int starting_width = 500;
+  const int starting_width = 200;
   browser_view()->unified_side_panel()->SetPanelWidth(starting_width);
   views::test::RunScheduledLayout(browser_view());
   EXPECT_EQ(browser_view()->unified_side_panel()->width(), starting_width);
@@ -184,22 +224,32 @@
 
   browser_view()->unified_side_panel()->OnResize(-large_increment, true);
   views::test::RunScheduledLayout(browser_view());
-  BrowserViewLayout* layout_manager =
-      static_cast<BrowserViewLayout*>(browser_view()->GetLayoutManager());
-  const int min_web_contents_width =
-      layout_manager->GetMinWebContentsWidthForTesting();
+  EXPECT_GT(browser_view()->unified_side_panel()->width(), starting_width);
   EXPECT_EQ(browser_view()->contents_web_view()->width(),
-            min_web_contents_width);
+            BrowserViewLayout::kMainBrowserContentsMinimumWidth);
 }
 
 TEST_F(SidePanelCoordinatorTest, ChangeSidePanelWidthRTL) {
+  // The side panel can only be widened when the browser main web contents width
+  // is greater than |BrowserViewLayout::kMainBrowserContentsMinimumWidth|,
+  // which is 500. Therefore the side panel can only be widened when the total
+  // browser view width is greater than the minimum side panel contents width +
+  // 500. The browser view maximum width is constrained by the display maximum,
+  // which is 800 on win32 and ChromeOS.
+  // Therefore, we set the browser view width to be 800 and we reduce the side
+  // panel width to 100 so that it can be widened and shrunk.
+  SetBrowserViewWidth(800);
+  browser_view()
+      ->unified_side_panel()
+      ->SetMinimumSidePanelContentsWidthForTesting(100);
+
   // Set side panel to right-aligned
   browser_view()->GetProfile()->GetPrefs()->SetBoolean(
       prefs::kSidePanelHorizontalAlignment, true);
   // Set UI direction to LTR
   base::i18n::SetRTLForTesting(false);
   coordinator_->Toggle();
-  const int starting_width = 500;
+  const int starting_width = 200;
   browser_view()->unified_side_panel()->SetPanelWidth(starting_width);
   views::test::RunScheduledLayout(browser_view());
   EXPECT_EQ(browser_view()->unified_side_panel()->width(), starting_width);
@@ -223,25 +273,31 @@
 }
 
 TEST_F(SidePanelCoordinatorTest, ChangeSidePanelWidthWindowResize) {
+  // The side panel can only be widened when the browser main web contents width
+  // is greater than |BrowserViewLayout::kMainBrowserContentsMinimumWidth|,
+  // which is 500. Therefore the side panel can only be widened when the total
+  // browser view width is greater than the minimum side panel contents width +
+  // 500. The browser view maximum width is constrained by the display maximum,
+  // which is 800 on win32 and ChromeOS.
+  // Therefore, we set the browser view width to be 800 and we reduce the side
+  // panel width to 100 so that it can be widened and shrunk.
+  SetBrowserViewWidth(800);
+  browser_view()
+      ->unified_side_panel()
+      ->SetMinimumSidePanelContentsWidthForTesting(100);
+
   coordinator_->Toggle();
-  const int starting_width = 500;
+  const int starting_width = 200;
   browser_view()->unified_side_panel()->SetPanelWidth(starting_width);
   views::test::RunScheduledLayout(browser_view());
   EXPECT_EQ(browser_view()->unified_side_panel()->width(), starting_width);
 
   // Shrink browser window enough that side panel should also shrink in
   // observance of web contents minimum width.
-  gfx::Rect original_bounds(browser_view()->GetBounds());
-  gfx::Size new_size(starting_width, starting_width);
-  gfx::Rect new_bounds(original_bounds);
-  new_bounds.set_size(new_size);
-  // Explicitly restore the browser window on ChromeOS, as it would otherwise
-  // be maximized and the SetBounds call would be a no-op.
-#if BUILDFLAG(IS_CHROMEOS_ASH)
-  browser_view()->Restore();
-#endif
-  browser_view()->SetBounds(new_bounds);
-  EXPECT_LT(browser_view()->unified_side_panel()->width(), starting_width);
+  const int original_width = browser_view()->GetBounds().width();
+  SetBrowserViewWidth(starting_width);
+  EXPECT_EQ(browser_view()->unified_side_panel()->width(),
+            browser_view()->unified_side_panel()->GetMinimumSize().width());
   BrowserViewLayout* layout_manager =
       static_cast<BrowserViewLayout*>(browser_view()->GetLayoutManager());
   const int min_web_contents_width =
@@ -251,10 +307,43 @@
 
   // Return browser window to original size, side panel should also return to
   // size prior to window resize.
-  browser_view()->SetBounds(original_bounds);
+  SetBrowserViewWidth(original_width);
   EXPECT_EQ(browser_view()->unified_side_panel()->width(), starting_width);
 }
 
+TEST_F(SidePanelCoordinatorTest, ChangeSidePanelWidthSmallWindow) {
+  SetBrowserViewWidth(500);
+  browser_view()
+      ->unified_side_panel()
+      ->SetMinimumSidePanelContentsWidthForTesting(100);
+  coordinator_->Toggle();
+  const int starting_width = 200;
+  const int min_side_panel_width =
+      browser_view()->unified_side_panel()->GetMinimumSize().width();
+  browser_view()->unified_side_panel()->SetPanelWidth(starting_width);
+  views::test::RunScheduledLayout(browser_view());
+  EXPECT_EQ(browser_view()->unified_side_panel()->width(),
+            min_side_panel_width);
+
+  // Attempt to resize the side panel, side panel should not be able to resized.
+  const int increment = 50;
+  browser_view()->unified_side_panel()->OnResize(increment, true);
+  views::test::RunScheduledLayout(browser_view());
+  EXPECT_EQ(browser_view()->unified_side_panel()->width(),
+            min_side_panel_width);
+
+  browser_view()->unified_side_panel()->OnResize(-increment, true);
+  views::test::RunScheduledLayout(browser_view());
+  EXPECT_EQ(browser_view()->unified_side_panel()->width(),
+            min_side_panel_width);
+  BrowserViewLayout* layout_manager =
+      static_cast<BrowserViewLayout*>(browser_view()->GetLayoutManager());
+  const int min_web_contents_width =
+      layout_manager->GetMinWebContentsWidthForTesting();
+  EXPECT_EQ(browser_view()->contents_web_view()->width(),
+            min_web_contents_width);
+}
+
 TEST_F(SidePanelCoordinatorTest, ChangeSidePanelAlignment) {
   browser_view()->GetProfile()->GetPrefs()->SetBoolean(
       prefs::kSidePanelHorizontalAlignment, true);
diff --git a/chrome/browser/ui/web_applications/test/system_web_app_interactive_uitest.cc b/chrome/browser/ui/web_applications/test/system_web_app_interactive_uitest.cc
index 91ebd27..2612204 100644
--- a/chrome/browser/ui/web_applications/test/system_web_app_interactive_uitest.cc
+++ b/chrome/browser/ui/web_applications/test/system_web_app_interactive_uitest.cc
@@ -34,6 +34,7 @@
 #include "chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.h"
 #include "chrome/browser/ash/web_applications/os_url_handler_system_web_app_info.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h"
 #include "chrome/browser/ui/app_list/app_service/app_service_app_item.h"
@@ -653,8 +654,11 @@
   const AppId& app_id1 = GetAppId(profile1);
   const AppId& app_id2 = GetAppId(profile2);
 
-  g_browser_process->profile_manager()->ScheduleProfileForDeletion(
-      profile2->GetPath(), base::DoNothing());
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          profile2->GetPath(), base::DoNothing(),
+          ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
 
   {
     auto launch_params = apps::AppLaunchParams(
diff --git a/chrome/browser/ui/web_applications/web_app_profile_deletion_browsertest.cc b/chrome/browser/ui/web_applications/web_app_profile_deletion_browsertest.cc
index 61034f5..45f0e41 100644
--- a/chrome/browser/ui/web_applications/web_app_profile_deletion_browsertest.cc
+++ b/chrome/browser/ui/web_applications/web_app_profile_deletion_browsertest.cc
@@ -8,7 +8,9 @@
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_test_util.h"
 #include "chrome/browser/ui/web_applications/web_app_controller_browsertest.h"
 #include "chrome/browser/web_applications/test/web_app_test_observers.h"
@@ -29,8 +31,11 @@
   }
 
   void ScheduleCurrentProfileForDeletion() {
-    g_browser_process->profile_manager()->ScheduleProfileForDeletion(
-        profile()->GetPath(), base::DoNothing());
+    g_browser_process->profile_manager()
+        ->GetDeleteProfileHelper()
+        .MaybeScheduleProfileForDeletion(
+            profile()->GetPath(), base::DoNothing(),
+            ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
   }
 };
 
diff --git a/chrome/browser/ui/webui/inspect_ui.cc b/chrome/browser/ui/webui/inspect_ui.cc
index 46f2b6ca..7ddfd40 100644
--- a/chrome/browser/ui/webui/inspect_ui.cc
+++ b/chrome/browser/ui/webui/inspect_ui.cc
@@ -717,10 +717,11 @@
   if (enabled.value() || !config->empty())
     return;
 
-  base::DictionaryValue default_config;
-  default_config.SetStringPath(kInspectUiPortForwardingDefaultPort,
-                               kInspectUiPortForwardingDefaultLocation);
-  prefs->Set(prefs::kDevToolsPortForwardingConfig, default_config);
+  base::Value::Dict default_config;
+  default_config.Set(kInspectUiPortForwardingDefaultPort,
+                     kInspectUiPortForwardingDefaultLocation);
+  prefs->SetDict(prefs::kDevToolsPortForwardingConfig,
+                 std::move(default_config));
 }
 
 const base::Value* InspectUI::GetPrefValue(const char* name) {
diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc
index fb1fdf7..9859648a 100644
--- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc
+++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc
@@ -18,6 +18,7 @@
 #include "chrome/grit/google_chrome_strings.h"
 #include "chrome/grit/privacy_sandbox_resources.h"
 #include "chrome/grit/privacy_sandbox_resources_map.h"
+#include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_ui.h"
 #include "content/public/browser/web_ui_data_source.h"
 #include "ui/base/webui/web_ui_util.h"
@@ -187,6 +188,13 @@
 
   source->AddLocalizedStrings(kStrings);
 
+  const GURL& url = web_ui->GetWebContents()->GetVisibleURL();
+  if (url.query().find("debug") != std::string::npos) {
+    // Not intended to be hooked to anything. The dialog will not initialize it
+    // so we force it here.
+    InitializeForDebug();
+  }
+
   content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), source);
 }
 
@@ -212,4 +220,11 @@
   web_ui()->AddMessageHandler(std::move(handler));
 }
 
+void PrivacySandboxDialogUI::InitializeForDebug() {
+  auto handler = std::make_unique<PrivacySandboxDialogHandler>(
+      base::DoNothing(), base::DoNothing(), base::DoNothing(),
+      base::DoNothing(), PrivacySandboxService::PromptType::kNone);
+  web_ui()->AddMessageHandler(std::move(handler));
+}
+
 WEB_UI_CONTROLLER_TYPE_IMPL(PrivacySandboxDialogUI)
diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.h b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.h
index 229c185..7ed060b 100644
--- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.h
+++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.h
@@ -25,6 +25,8 @@
 
  private:
   WEB_UI_CONTROLLER_TYPE_DECL();
+
+  void InitializeForDebug();
 };
 
 #endif  // CHROME_BROWSER_UI_WEBUI_PRIVACY_SANDBOX_PRIVACY_SANDBOX_DIALOG_UI_H_
diff --git a/chrome/browser/ui/webui/profile_helper.cc b/chrome/browser/ui/webui/profile_helper.cc
index 5f3aa784..c0d7e248 100644
--- a/chrome/browser/ui/webui/profile_helper.cc
+++ b/chrome/browser/ui/webui/profile_helper.cc
@@ -9,6 +9,7 @@
 #include "base/bind.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/browser_process.h"
+#include "chrome/browser/profiles/delete_profile_helper.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/profiles/profile_metrics.h"
 #include "chrome/browser/profiles/profile_window.h"
@@ -53,8 +54,10 @@
                          ProfileMetrics::ProfileDelete deletion_source) {
   if (!profiles::IsMultipleProfilesEnabled())
     return;
-  g_browser_process->profile_manager()->MaybeScheduleProfileForDeletion(
-      file_path, base::BindOnce(&OpenNewWindowForProfile), deletion_source);
+  g_browser_process->profile_manager()
+      ->GetDeleteProfileHelper()
+      .MaybeScheduleProfileForDeletion(
+          file_path, base::BindOnce(&OpenNewWindowForProfile), deletion_source);
 }
 
 }  // namespace webui
diff --git a/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc b/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
index f464bf6d..271bfab 100644
--- a/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/safety_check_handler_unittest.cc
@@ -261,10 +261,10 @@
   scoped_refptr<password_manager::TestPasswordStore> store_ =
       base::MakeRefCounted<password_manager::TestPasswordStore>();
   password_manager::MockAffiliationService affiliation_service_;
-  password_manager::SavedPasswordsPresenter presenter_{&affiliation_service_,
-                                                       store_};
-  password_manager::InsecureCredentialsManager credentials_manager_{&presenter_,
-                                                                    store_};
+  password_manager::SavedPasswordsPresenter presenter_{
+      &affiliation_service_, store_, /*account_store=*/nullptr};
+  password_manager::InsecureCredentialsManager credentials_manager_{
+      &presenter_, store_, /*account_store=*/nullptr};
 };
 
 class TestSafetyCheckExtensionService : public TestExtensionService {
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 56c0f45b..19ff2c6 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1669615051-bb724daa6abf68bfa3a50c85d741b9d639481833.profdata
+chrome-mac-arm-main-1669636706-569565eeeddc08a8fb0c03d1ca9edaf95e0fafce.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index aa72257..d6c5b7e 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1669615051-00894e61795e40568251a2de8f8d33906a953dd3.profdata
+chrome-mac-main-1669636706-524966aa0eda4aa94c2e73ab1049b9dc5c33c498.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index d782c2e..1a74411 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1669615051-0b6b97b565ac9839455ce947911b4b85d230fa99.profdata
+chrome-win32-main-1669636706-60b08a96ab56b538df3e69790d97014d92ff68c5.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 5bb5d1f..5e00fac 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1669615051-af71f4b1a7250aab9555b9647111f9962d90f3b1.profdata
+chrome-win64-main-1669636706-e6696c29b9f646a1a81542c231f82fa34c1ec3aa.profdata
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
index ec4c5e3..6e27bd0 100644
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -84,8 +84,6 @@
 
 // Allowlist for Negotiate Auth servers
 const char kAuthServerAllowlist[] = "auth-server-allowlist";
-const char kAuthServerAllowlistDeprecated[] =
-    "auth-server-whitelist";  // nocheck
 
 // This flag makes Chrome auto-open DevTools window for each tab. It is
 // intended to be used by developers and automation to not require user
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
index ce8516a..36ce063 100644
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
@@ -52,7 +52,6 @@
 extern const char kAppsGalleryUpdateURL[];
 extern const char kAppsGalleryURL[];
 extern const char kAuthServerAllowlist[];
-extern const char kAuthServerAllowlistDeprecated[];
 extern const char kAutoOpenDevToolsForTabs[];
 extern const char kAutoSelectDesktopCaptureSource[];
 extern const char kAutoSelectTabCaptureSourceByTitle[];
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 66cb037..6ce6fcb12 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -1754,7 +1754,6 @@
       "../browser/browsing_data/third_party_data_remover_browsertest.cc",
       "../browser/browsing_topics/browsing_topics_internals_browsertest.cc",
       "../browser/browsing_topics/browsing_topics_service_browsertest.cc",
-      "../browser/capability_delegation_browsertest.cc",
       "../browser/cart/cart_service_browsertest.cc",
       "../browser/cart/fetch_discount_worker_browsertest.cc",
       "../browser/chrome_back_forward_cache_browsertest.cc",
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index 1935f46..0aaf3dc 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -109,6 +109,7 @@
       "net_internals/net_internals_browsertest.js",
       "ntp4.js",
       "password_manager/password_manager_browsertest.js",
+      "privacy_sandbox/privacy_sandbox_dialog_a11y_browsertest.js",
       "privacy_sandbox/privacy_sandbox_dialog_browsertest.js",
       "sandboxstatus_browsertest.js",
       "settings/a11y/a11y_browsertest.js",
diff --git a/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_a11y_browsertest.js b/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_a11y_browsertest.js
new file mode 100644
index 0000000..87e5798
--- /dev/null
+++ b/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_a11y_browsertest.js
@@ -0,0 +1,104 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Test bodies are mostly empty because they are used to sanity check that the
+// correct element was loaded. A11y testing is performed by axe-core. It runs
+// a set of checks of the loaded page to verify that it is accessible.
+
+// See docs/website/site/developers/accessibility/testing/axe-core/index.md for
+// documentation on a11y web UI tests and examples.
+
+GEN_INCLUDE([
+  '//chrome/test/data/webui/a11y/accessibility_test.js',
+  '//chrome/test/data/webui/polymer_browser_test_base.js',
+]);
+
+GEN('#include "content/public/test/browser_test.h"');
+
+PrivacySandboxCombinedDialogA11yTest = class extends PolymerTest {
+  /** @override */
+  get browsePreload() {
+    return 'chrome://privacy-sandbox-dialog/combined?debug';
+  }
+
+  /** @override */
+  get extraLibraries() {
+    return [
+      '//third_party/mocha/mocha.js',
+      '//chrome/test/data/webui/mocha_adapter.js',
+    ];
+  }
+};
+
+AccessibilityTest.define('PrivacySandboxCombinedDialogA11yTest', {
+  name: 'PrivacySandboxCombinedDialogA11yTest',
+  tests: {
+    'Consent': function() {
+      // Verify that the combined dialog was loaded with a consent step active.
+      const consentStep =
+          document.body.querySelector('privacy-sandbox-combined-dialog-app')
+              .shadowRoot.querySelector('privacy-sandbox-dialog-consent-step');
+      assertTrue(!!consentStep);
+      assertTrue(consentStep.classList.contains('active'));
+    },
+  },
+});
+
+PrivacySandboxNoticeEeaDialogA11yTest = class extends PolymerTest {
+  /** @override */
+  get browsePreload() {
+    return 'chrome://privacy-sandbox-dialog/combined?step=notice&debug';
+  }
+
+  /** @override */
+  get extraLibraries() {
+    return [
+      '//third_party/mocha/mocha.js',
+      '//chrome/test/data/webui/mocha_adapter.js',
+    ];
+  }
+};
+
+AccessibilityTest.define('PrivacySandboxNoticeEeaDialogA11yTest', {
+  name: 'PrivacySandboxNoticeEeaDialogA11yTest',
+  tests: {
+    'NoticeEea': function() {
+      // Verify that the combined dialog was loaded with a notice step active.
+      const noticeStep =
+          document.body.querySelector('privacy-sandbox-combined-dialog-app')
+              .shadowRoot.querySelector('privacy-sandbox-dialog-notice-step');
+      assertTrue(!!noticeStep);
+      assertTrue(noticeStep.classList.contains('active'));
+    },
+  },
+});
+
+PrivacySandboxNoticeRowDialogA11yTest = class extends PolymerTest {
+  /** @override */
+  get browsePreload() {
+    return 'chrome://privacy-sandbox-dialog/notice?debug';
+  }
+
+  /** @override */
+  get extraLibraries() {
+    return [
+      '//third_party/mocha/mocha.js',
+      '//chrome/test/data/webui/mocha_adapter.js',
+    ];
+  }
+};
+
+AccessibilityTest.define('PrivacySandboxNoticeRowDialogA11yTest', {
+  name: 'PrivacySandboxNoticeRowDialogA11yTest',
+  tests: {
+    'NoticeRow': function() {
+      // Verify that notice dialog was loaded.
+      const noticeApp =
+          document.body.querySelector('privacy-sandbox-notice-dialog-app');
+      assertTrue(!!noticeApp);
+      assertTrue(!!noticeApp.shadowRoot.querySelector('#settingsButton'));
+      assertTrue(!!noticeApp.shadowRoot.querySelector('#ackButton'));
+    },
+  },
+});
diff --git a/chrome/test/payments/BUILD.gn b/chrome/test/payments/BUILD.gn
index 8111a3a7..0ea0757 100644
--- a/chrome/test/payments/BUILD.gn
+++ b/chrome/test/payments/BUILD.gn
@@ -6,6 +6,8 @@
   testonly = true
 
   sources = [
+    "payment_app_install_util.cc",
+    "payment_app_install_util.h",
     "payment_request_platform_browsertest_base.cc",
     "payment_request_platform_browsertest_base.h",
     "payment_request_test_controller.h",
diff --git a/chrome/test/payments/payment_app_install_util.cc b/chrome/test/payments/payment_app_install_util.cc
new file mode 100644
index 0000000..c00bb3c
--- /dev/null
+++ b/chrome/test/payments/payment_app_install_util.cc
@@ -0,0 +1,68 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/test/payments/payment_app_install_util.h"
+
+#include <utility>
+
+#include "base/bind.h"
+#include "base/callback.h"
+#include "base/check.h"
+#include "base/run_loop.h"
+#include "content/public/browser/payment_app_provider.h"
+#include "content/public/browser/supported_delegations.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkColor.h"
+#include "url/gurl.h"
+#include "url/origin.h"
+
+namespace payments {
+namespace {
+
+void OnInstallPaymentApp(base::OnceClosure finished,
+                         bool* success_out,
+                         bool success) {
+  *success_out = success;
+  std::move(finished).Run();
+}
+
+}  // namespace
+
+// static
+std::string PaymentAppInstallUtil::InstallPaymentApp(
+    content::WebContents& web_contents,
+    net::EmbeddedTestServer& test_server,
+    const std::string& hostname,
+    const std::string& service_worker_file_path,
+    IconInstall icon_install) {
+  CHECK(!hostname.empty());
+  CHECK(!service_worker_file_path.empty());
+  CHECK_EQ('/', service_worker_file_path.at(0));
+
+  GURL sw_js_url = test_server.GetURL(hostname, service_worker_file_path);
+  GURL sw_scope = sw_js_url.GetWithoutFilename();
+
+  std::string method = url::Origin::Create(sw_scope).Serialize();
+  CHECK_NE('/', method.at(method.length() - 1));
+
+  SkBitmap app_icon;
+  if (icon_install == IconInstall::kWithIcon) {
+    constexpr int kBitmapDimension = 16;
+    app_icon.allocN32Pixels(kBitmapDimension, kBitmapDimension);
+    app_icon.eraseColor(SK_ColorRED);
+  }
+
+  base::RunLoop run_loop;
+  bool success = false;
+  content::PaymentAppProvider::GetOrCreateForWebContents(&web_contents)
+      ->InstallPaymentAppForTesting(
+          app_icon, sw_js_url, sw_scope, method,
+          base::BindOnce(&OnInstallPaymentApp, run_loop.QuitClosure(),
+                         &success));
+  run_loop.Run();
+
+  return success ? method : std::string();
+}
+
+}  // namespace payments
diff --git a/chrome/test/payments/payment_app_install_util.h b/chrome/test/payments/payment_app_install_util.h
new file mode 100644
index 0000000..2b19e05
--- /dev/null
+++ b/chrome/test/payments/payment_app_install_util.h
@@ -0,0 +1,44 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_TEST_PAYMENTS_PAYMENT_APP_INSTALL_UTIL_H_
+#define CHROME_TEST_PAYMENTS_PAYMENT_APP_INSTALL_UTIL_H_
+
+#include <string>
+
+#include "net/test/embedded_test_server/embedded_test_server.h"
+
+namespace content {
+class WebContents;
+}  // namespace content
+
+namespace payments {
+
+class PaymentAppInstallUtil {
+ public:
+  enum class IconInstall {
+    kWithIcon,
+    kWithoutIcon,
+  };
+
+  // Install the payment app specified by `hostname`, e.g., "a.com".
+  //
+  // Specify the path of the service worker with `service_worker_file_path`. It
+  // must start with a "/".
+  //
+  // On success, returns the payment method of the installed payment app,
+  // e.g., "https://a.com:12345". Returns an empty string on failure.
+  static std::string InstallPaymentApp(
+      content::WebContents& web_contents,
+      net::EmbeddedTestServer& test_server,
+      const std::string& hostname,
+      const std::string& service_worker_file_path,
+      IconInstall icon_install);
+
+  PaymentAppInstallUtil() = delete;
+};
+
+}  // namespace payments
+
+#endif  // CHROME_TEST_PAYMENTS_PAYMENT_APP_INSTALL_UTIL_H_
diff --git a/chrome/test/payments/payment_request_platform_browsertest_base.cc b/chrome/test/payments/payment_request_platform_browsertest_base.cc
index 6bda7589..6c74570d 100644
--- a/chrome/test/payments/payment_request_platform_browsertest_base.cc
+++ b/chrome/test/payments/payment_request_platform_browsertest_base.cc
@@ -13,6 +13,7 @@
 #include <vector>
 
 #include "chrome/test/base/chrome_test_utils.h"
+#include "chrome/test/payments/payment_app_install_util.h"
 #include "components/network_session_configurator/common/network_switches.h"
 #include "components/payments/content/service_worker_payment_app_finder.h"
 #include "components/payments/core/test_payment_manifest_downloader.h"
@@ -76,18 +77,10 @@
     const std::string& hostname,
     const std::string& service_worker_filename,
     std::string* url_method_output) {
-  NavigateTo(hostname, "/payment_handler_installer.html");
-  *url_method_output = https_server()->GetURL(hostname, "/").spec();
-  *url_method_output =
-      url_method_output->substr(0, url_method_output->length() - 1);
-  ASSERT_NE('/', (*url_method_output)[url_method_output->length() - 1]);
-  ASSERT_EQ("success",
-            content::EvalJs(GetActiveWebContents(),
-                            content::JsReplace("install($1, [$2], false)",
-                                               service_worker_filename,
-                                               *url_method_output)));
-  // Can't output `url_method_output` by return because the ASSERTs require the
-  // method to return void.
+  *url_method_output = PaymentAppInstallUtil::InstallPaymentApp(
+      *GetActiveWebContents(), *https_server(), hostname,
+      service_worker_filename, PaymentAppInstallUtil::IconInstall::kWithIcon);
+  ASSERT_FALSE(url_method_output->empty()) << "Failed to install payment app";
 }
 
 void PaymentRequestPlatformBrowserTestBase::ExpectBodyContains(
diff --git a/chromeos/ash/components/login/auth/auth_session_authenticator.cc b/chromeos/ash/components/login/auth/auth_session_authenticator.cc
index aa36b568..f38f01b 100644
--- a/chromeos/ash/components/login/auth/auth_session_authenticator.cc
+++ b/chromeos/ash/components/login/auth/auth_session_authenticator.cc
@@ -672,6 +672,24 @@
                     std::move(success_callback), std::move(error_callback));
 }
 
+void AuthSessionAuthenticator::LoginAuthenticated(
+    std::unique_ptr<UserContext> context) {
+  DCHECK(!is_ephemeral_mount_enforced_);
+
+  AuthErrorCallback error_callback = base::BindOnce(
+      &AuthSessionAuthenticator::ProcessCryptohomeError,
+      weak_factory_.GetWeakPtr(), AuthFailure::COULD_NOT_MOUNT_CRYPTOHOME);
+
+  AuthSuccessCallback success_callback = base::BindOnce(
+      &AuthSessionAuthenticator::NotifyAuthSuccess, weak_factory_.GetWeakPtr());
+  std::vector<AuthOperation> steps;
+  steps.push_back(base::BindOnce(&MountPerformer::MountPersistentDirectory,
+                                 mount_performer_->AsWeakPtr()));
+
+  RunOperationChain(std::move(context), std::move(steps),
+                    std::move(success_callback), std::move(error_callback));
+}
+
 void AuthSessionAuthenticator::OnAuthSuccess() {
   NOTIMPLEMENTED();
 }
@@ -969,7 +987,8 @@
     LOGIN_LOG(EVENT) << "Old encryption detected";
     if (!consumer_)
       return;
-    consumer_->OnOldEncryptionDetected(*context, incomplete_migration);
+    consumer_->OnOldEncryptionDetected(std::move(context),
+                                       incomplete_migration);
     return;
   }
   std::move(fallback).Run(std::move(context), std::move(error));
diff --git a/chromeos/ash/components/login/auth/auth_session_authenticator.h b/chromeos/ash/components/login/auth/auth_session_authenticator.h
index f045c0c..e14e474d 100644
--- a/chromeos/ash/components/login/auth/auth_session_authenticator.h
+++ b/chromeos/ash/components/login/auth/auth_session_authenticator.h
@@ -88,6 +88,7 @@
   void LoginAsKioskAccount(const AccountId& app_account_id) override;
   void LoginAsArcKioskAccount(const AccountId& app_account_id) override;
   void LoginAsWebKioskAccount(const AccountId& app_account_id) override;
+  void LoginAuthenticated(std::unique_ptr<UserContext> user_context) override;
   void OnAuthSuccess() override;
   void OnAuthFailure(const AuthFailure& error) override;
   void RecoverEncryptedData(std::unique_ptr<UserContext> user_context,
diff --git a/chromeos/ash/components/login/auth/auth_status_consumer.cc b/chromeos/ash/components/login/auth/auth_status_consumer.cc
index 94aacfc..82ac93b 100644
--- a/chromeos/ash/components/login/auth/auth_status_consumer.cc
+++ b/chromeos/ash/components/login/auth/auth_status_consumer.cc
@@ -5,6 +5,7 @@
 #include "chromeos/ash/components/login/auth/auth_status_consumer.h"
 
 #include "base/notreached.h"
+#include "chromeos/ash/components/login/auth/public/user_context.h"
 
 namespace ash {
 
@@ -14,7 +15,7 @@
 }
 
 void AuthStatusConsumer::OnOldEncryptionDetected(
-    const UserContext& user_context,
+    std::unique_ptr<UserContext> user_context,
     bool has_incomplete_migration) {
   NOTREACHED();
 }
diff --git a/chromeos/ash/components/login/auth/auth_status_consumer.h b/chromeos/ash/components/login/auth/auth_status_consumer.h
index a034d71..e93a1ca 100644
--- a/chromeos/ash/components/login/auth/auth_status_consumer.h
+++ b/chromeos/ash/components/login/auth/auth_status_consumer.h
@@ -30,7 +30,7 @@
   // The same password didn't work both online and offline.
   virtual void OnPasswordChangeDetected(const UserContext& user_context);
   // The cryptohome is encrypted in old format and needs migration.
-  virtual void OnOldEncryptionDetected(const UserContext& user_context,
+  virtual void OnOldEncryptionDetected(std::unique_ptr<UserContext> context,
                                        bool has_incomplete_migration);
 };
 
diff --git a/chromeos/ash/components/login/auth/authenticator.h b/chromeos/ash/components/login/auth/authenticator.h
index ce63217..2541fd0 100644
--- a/chromeos/ash/components/login/auth/authenticator.h
+++ b/chromeos/ash/components/login/auth/authenticator.h
@@ -69,6 +69,12 @@
   // Web kiosk mode mounts a public cryptohome.
   virtual void LoginAsWebKioskAccount(const AccountId& app_account_id) = 0;
 
+  // Continues the login of persistent user that is already authenticated via
+  // |auth_session|. This method can be used as a part of the recovery flow, or
+  // to continue login stopped to perform encryption migration.
+  virtual void LoginAuthenticated(
+      std::unique_ptr<UserContext> user_context) = 0;
+
   // Notifies caller that login was successful. Must be called on the UI thread.
   virtual void OnAuthSuccess() = 0;
 
diff --git a/chromeos/ash/components/login/auth/login_performer.cc b/chromeos/ash/components/login/auth/login_performer.cc
index 3f58764..c04b486 100644
--- a/chromeos/ash/components/login/auth/login_performer.cc
+++ b/chromeos/ash/components/login/auth/login_performer.cc
@@ -93,14 +93,16 @@
                                 weak_factory_.GetWeakPtr(), user_context));
 }
 
-void LoginPerformer::OnOldEncryptionDetected(const UserContext& user_context,
-                                             bool has_incomplete_migration) {
+void LoginPerformer::OnOldEncryptionDetected(
+    std::unique_ptr<UserContext> user_context,
+    bool has_incomplete_migration) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
-      FROM_HERE, base::BindOnce(&LoginPerformer::NotifyOldEncryptionDetected,
-                                weak_factory_.GetWeakPtr(), user_context,
-                                has_incomplete_migration));
+      FROM_HERE,
+      base::BindOnce(&LoginPerformer::NotifyOldEncryptionDetected,
+                     weak_factory_.GetWeakPtr(), std::move(user_context),
+                     has_incomplete_migration));
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -191,6 +193,13 @@
   authenticator_->LoginAsWebKioskAccount(web_app_account_id);
 }
 
+void LoginPerformer::LoginAuthenticated(
+    std::unique_ptr<UserContext> user_context) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  EnsureAuthenticator();
+  authenticator_->LoginAuthenticated(std::move(user_context));
+}
+
 void LoginPerformer::RecoverEncryptedData(const std::string& old_password) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   authenticator_->RecoverEncryptedData(
@@ -244,11 +253,12 @@
 }
 
 void LoginPerformer::NotifyOldEncryptionDetected(
-    const UserContext& user_context,
+    std::unique_ptr<UserContext> user_context,
     bool has_incomplete_migration) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(delegate_);
-  delegate_->OnOldEncryptionDetected(user_context, has_incomplete_migration);
+  delegate_->OnOldEncryptionDetected(std::move(user_context),
+                                     has_incomplete_migration);
 }
 
 void LoginPerformer::StartLoginCompletion() {
diff --git a/chromeos/ash/components/login/auth/login_performer.h b/chromeos/ash/components/login/auth/login_performer.h
index 4bae3c79..cd8c45d 100644
--- a/chromeos/ash/components/login/auth/login_performer.h
+++ b/chromeos/ash/components/login/auth/login_performer.h
@@ -87,12 +87,16 @@
   // Performs a login into the Web kiosk mode account with |web_app_account_id|.
   void LoginAsWebKioskAccount(const AccountId& web_app_account_id);
 
+  // Performs final stages of the login for user already authenticated via
+  // `AuthSession`.
+  void LoginAuthenticated(std::unique_ptr<UserContext> user_context);
+
   // AuthStatusConsumer implementation:
   void OnAuthFailure(const AuthFailure& error) override;
   void OnAuthSuccess(const UserContext& user_context) override;
   void OnOffTheRecordAuthSuccess() override;
   void OnPasswordChangeDetected(const UserContext& user_context) override;
-  void OnOldEncryptionDetected(const UserContext& user_context,
+  void OnOldEncryptionDetected(std::unique_ptr<UserContext>,
                                bool has_incomplete_migration) override;
 
   // Migrates cryptohome using |old_password| specified.
@@ -188,7 +192,7 @@
   void NotifyAuthSuccess(const UserContext& user_context);
   void NotifyOffTheRecordAuthSuccess();
   void NotifyPasswordChangeDetected(const UserContext& user_context);
-  void NotifyOldEncryptionDetected(const UserContext& user_context,
+  void NotifyOldEncryptionDetected(std::unique_ptr<UserContext> user_context,
                                    bool has_incomplete_migration);
   void NotifyAllowlistCheckFailure();
 
diff --git a/chromeos/ash/components/login/auth/stub_authenticator.cc b/chromeos/ash/components/login/auth/stub_authenticator.cc
index dcb3c5d2..85a9af11 100644
--- a/chromeos/ash/components/login/auth/stub_authenticator.cc
+++ b/chromeos/ash/components/login/auth/stub_authenticator.cc
@@ -197,6 +197,11 @@
       FROM_HERE, base::BindOnce(&StubAuthenticator::OnAuthSuccess, this));
 }
 
+void StubAuthenticator::LoginAuthenticated(
+    std::unique_ptr<UserContext> user_context) {
+  consumer_->OnAuthSuccess(*user_context);
+}
+
 void StubAuthenticator::SetExpectedCredentials(
     const UserContext& user_context) {
   expected_user_context_ = user_context;
@@ -233,8 +238,9 @@
 void StubAuthenticator::OnOldEncryptionDetected() {
   // The user is expected to finish login using transformed key.
   UserContext user_context = ExpectedUserContextWithTransformedKey();
-  consumer_->OnOldEncryptionDetected(user_context,
-                                     has_incomplete_encryption_migration_);
+  consumer_->OnOldEncryptionDetected(
+      std::make_unique<UserContext>(user_context),
+      has_incomplete_encryption_migration_);
 }
 
 }  // namespace ash
diff --git a/chromeos/ash/components/login/auth/stub_authenticator.h b/chromeos/ash/components/login/auth/stub_authenticator.h
index f0afc645..452cc0c 100644
--- a/chromeos/ash/components/login/auth/stub_authenticator.h
+++ b/chromeos/ash/components/login/auth/stub_authenticator.h
@@ -49,6 +49,7 @@
   void LoginAsKioskAccount(const AccountId& app_account_id) override;
   void LoginAsArcKioskAccount(const AccountId& app_account_id) override;
   void LoginAsWebKioskAccount(const AccountId& app_account_id) override;
+  void LoginAuthenticated(std::unique_ptr<UserContext> user_context) override;
   void OnAuthSuccess() override;
   void OnAuthFailure(const AuthFailure& failure) override;
   void RecoverEncryptedData(std::unique_ptr<UserContext> user_context,
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb
index 788dffb..efce070 100644
--- a/chromeos/strings/chromeos_strings_bg.xtb
+++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Избрахте опцията <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />. Натиснете Enter, за да посочите албуми от <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) Преобразуване от DNS</translation>
 <translation id="4848429997038228357">ИЗПЪЛНЯВА СЕ</translation>
+<translation id="4854586501323951986">Вграден сензорен екран</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Остава {0} опит}other{<ph name="ERROR_MESSAGE" /> Остават {0} опита}}</translation>
 <translation id="4873827928179867585">Алгоритъм за удостоверяване</translation>
 <translation id="4880328057631981605">Име на точката за достъп</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Добавяне на файл</translation>
 <translation id="6410257289063177456">Графични файлове</translation>
 <translation id="641081527798843608">Съвпадение на субекта</translation>
+<translation id="6412715219990689313">Вградена клавиатура</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Слаба (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Към настройките на профила</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Файлов тип</translation>
 <translation id="73631062356239394">Споделяне на диагностични данни</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Вграден сензорен панел</translation>
 <translation id="7397270852490618635">Изключване на светлата тема</translation>
 <translation id="741244894080940828">преобразуване</translation>
 <translation id="7415801143053185905">Много голямо забавяне на HTTP</translation>
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb
index 95d4a8f1..9d0fac9 100644
--- a/chromeos/strings/chromeos_strings_ca.xtb
+++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679">S'ha seleccionat <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />, prem Retorn per seleccionar els àlbums de <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) Resolució de DNS</translation>
 <translation id="4848429997038228357">EN EXECUCIÓ</translation>
+<translation id="4854586501323951986">Pantalla tàctil integrada</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Queda {0} intent.}other{<ph name="ERROR_MESSAGE" /> Queden {0} intents.}}</translation>
 <translation id="4873827928179867585">Algoritme d'autenticació</translation>
 <translation id="4880328057631981605">Nom del punt d'accés</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">Afegeix un fitxer</translation>
 <translation id="6410257289063177456">Fitxers d'imatge </translation>
 <translation id="641081527798843608">Coincidència d'assumpte</translation>
+<translation id="6412715219990689313">Teclat integrat</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Feble (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Ves a la configuració del compte</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">Tipus de fitxer</translation>
 <translation id="73631062356239394">Comparteix les dades de diagnòstic</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Ratolí tàctil integrat</translation>
 <translation id="7397270852490618635">Desactiva el tema clar</translation>
 <translation id="741244894080940828">conversió</translation>
 <translation id="7415801143053185905">La latència d'HTTP és molt alta</translation>
diff --git a/chromeos/strings/chromeos_strings_cy.xtb b/chromeos/strings/chromeos_strings_cy.xtb
index bd04881..34f0d08a 100644
--- a/chromeos/strings/chromeos_strings_cy.xtb
+++ b/chromeos/strings/chromeos_strings_cy.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Mae <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> wedi'i ddewis, pwyswch Enter i ddewis albymau <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">Eglurdeb DNS (Android)</translation>
 <translation id="4848429997038228357">WRTHI'N RHEDEG</translation>
+<translation id="4854586501323951986">Sgrîn gyffwrdd integredig</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} ymgais ar ôl}zero{<ph name="ERROR_MESSAGE" /> {0} ymgais ar ôl}two{<ph name="ERROR_MESSAGE" /> {0} ymgais ar ôl}few{<ph name="ERROR_MESSAGE" /> {0} ymgais ar ôl}many{<ph name="ERROR_MESSAGE" /> {0} ymgais ar ôl}other{<ph name="ERROR_MESSAGE" /> {0} ymgais ar ôl}}</translation>
 <translation id="4873827928179867585">Algorithm dilysu</translation>
 <translation id="4880328057631981605">Enw pwynt mynediad</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Ychwanegu ffeil</translation>
 <translation id="6410257289063177456">Ffeiliau llun</translation>
 <translation id="641081527798843608">Cyfateb pwnc</translation>
+<translation id="6412715219990689313">Bysellfwrdd integredig</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Gwan (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Mynd i'r gosodiadau cyfrif</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Math ffeil</translation>
 <translation id="73631062356239394">Rhannu data diagnosteg</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Pad cyffwrdd integredig</translation>
 <translation id="7397270852490618635">Diffodd y thema olau</translation>
 <translation id="741244894080940828">trosi</translation>
 <translation id="7415801143053185905">Cuddni HTTP uchel iawn</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb
index e64a4fc1..c47643b 100644
--- a/chromeos/strings/chromeos_strings_de.xtb
+++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679">"<ph name="TOPIC_SOURCE" /> – <ph name="TOPIC_SOURCE_DESC" />" ausgewählt; drücke die Eingabetaste, um <ph name="TOPIC_SOURCE" />-Alben auszuwählen</translation>
 <translation id="484790837831576105">(Android) DNS-Auflösung</translation>
 <translation id="4848429997038228357">LÄUFT</translation>
+<translation id="4854586501323951986">Eingebauter Touchscreen</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Noch {0} Versuch}other{<ph name="ERROR_MESSAGE" /> Noch {0} Versuche}}</translation>
 <translation id="4873827928179867585">Authentifizierungsalgorithmus</translation>
 <translation id="4880328057631981605">Name des Zugangspunkts</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">Datei hinzufügen</translation>
 <translation id="6410257289063177456">Bilddateien</translation>
 <translation id="641081527798843608">subject-match</translation>
+<translation id="6412715219990689313">Eingebaute Tastatur</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Schwach (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Kontoeinstellungen aufrufen</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">Dateityp</translation>
 <translation id="73631062356239394">Diagnosedaten teilen</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Eingebautes Touchpad</translation>
 <translation id="7397270852490618635">Helles Design ausschalten</translation>
 <translation id="741244894080940828">Umrechnung</translation>
 <translation id="7415801143053185905">Sehr hohe HTTP-Latenz</translation>
diff --git a/chromeos/strings/chromeos_strings_es.xtb b/chromeos/strings/chromeos_strings_es.xtb
index 0b6a36a9..25153ad2 100644
--- a/chromeos/strings/chromeos_strings_es.xtb
+++ b/chromeos/strings/chromeos_strings_es.xtb
@@ -139,6 +139,7 @@
 <translation id="2161394479394250669">Cancelar trabajo de impresión</translation>
 <translation id="2163937499206714165">Activar modo Oscuro</translation>
 <translation id="2180197493692062006">Algo ha fallado. Prueba a abrir de nuevo la aplicación.</translation>
+<translation id="2184005227776731758">APN</translation>
 <translation id="2209788852729124853">Restablecer contadores de tráfico</translation>
 <translation id="2212733584906323460">Resolución de nombres</translation>
 <translation id="2217935453350629363">Velocidad actual</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb
index 36e975f..9b54e21 100644
--- a/chromeos/strings/chromeos_strings_fi.xtb
+++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> valittu, valitse albumeita (<ph name="TOPIC_SOURCE" />) painamalla Enter</translation>
 <translation id="484790837831576105">(Android) DNS-selvitys</translation>
 <translation id="4848429997038228357">KÄYNNISSÄ</translation>
+<translation id="4854586501323951986">Sisäänrakennettu kosketusnäyttö</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} yritys jäljellä}other{<ph name="ERROR_MESSAGE" /> {0} yritystä jäljellä}}</translation>
 <translation id="4873827928179867585">Todennusalgoritmi</translation>
 <translation id="4880328057631981605">Tukiaseman nimi</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Lisää tiedosto</translation>
 <translation id="6410257289063177456">Kuvatiedostot </translation>
 <translation id="641081527798843608">Aiheen vastaavuus</translation>
+<translation id="6412715219990689313">Sisäänrakennettu näppäimistö</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Heikko (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Siirry tilin asetuksiin</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Tiedostotyyppi</translation>
 <translation id="73631062356239394">Diagnostiikkadatan jakaminen</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Sisäänrakennettu kosketuslevy</translation>
 <translation id="7397270852490618635">Laita vaalea teema pois päältä</translation>
 <translation id="741244894080940828">muunnos</translation>
 <translation id="7415801143053185905">Erittäin suuri HTTP-viive</translation>
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb
index 2c832184..3de2665 100644
--- a/chromeos/strings/chromeos_strings_fil.xtb
+++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Subukan ang mga hakbang sa pag-troubleshoot</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Kumonekta sa network at i-reload ang page para makita ang screen saver.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Higit pang mga setting</translation>
 <translation id="2085089206770112532">Babaan ang liwanag ng display</translation>
 <translation id="2105810540595158374">Game controller ang device.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Algorithm ng pag-compress</translation>
 <translation id="4794140124556169553">Posibleng makaapekto sa performance ng iyong system ang pagpapatakbo ng pagsusuri sa CPU</translation>
 <translation id="4800589996161293643">Komunidad ng Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Kinansela ang pag-print ng <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Maliwanag na tema</translation>
 <translation id="4813136279048157860">Aking Mga Larawan</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Stress</translation>
 <translation id="4897058166682006107">May <ph name="BATTERY_PERCENTAGE" />% baterya ang kaliwang bud ng device.</translation>
 <translation id="4905998861748258752">I-on ang feature para pumili ng mga opsyon sa screen saver</translation>
+<translation id="4910858703033903787">Mga uri ng APN</translation>
 <translation id="4917385247580444890">Malakas</translation>
 <translation id="4917889632206600977">Huminto - Wala nang papel</translation>
 <translation id="491791267030419270">Mga tip sa pagsusulat ng feedback</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Nagkaproblema. Subukang pumili ulit ng wallpaper o buksan ulit ang app.</translation>
 <translation id="5372659122375744710">Hindi secure ang WiFi network</translation>
 <translation id="5376354385557966694">Awtomatikong light mode</translation>
+<translation id="5378184552853359930">Uri ng IP</translation>
 <translation id="5389159777326897627">Wallpaper at style</translation>
 <translation id="5389224261615877010">Bahaghari</translation>
 <translation id="5400907029458559844">Kumokonekta ang device.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Piliin ang <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">I-attach</translation>
 <translation id="8206859287963243715">Cellular</translation>
 <translation id="8208861521865154048">Mga Perk</translation>
 <translation id="8226628635270268143">Piliin ang iyong mga paboritong larawan at album</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Gamitin bilang personal na device</translation>
 <translation id="9028832514430399253">I-on ang toggle para piliin ang mga opsyon ng screen saver</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">Mataas ang latency ng resolution ng DNS</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb
index e46422d..f7ee12f 100644
--- a/chromeos/strings/chromeos_strings_fr.xtb
+++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Source <ph name="TOPIC_SOURCE" /> (<ph name="TOPIC_SOURCE_DESC" />) sélectionnée, appuyez sur Entrée pour sélectionner des albums dans <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) Résolution DNS</translation>
 <translation id="4848429997038228357">EN COURS</translation>
+<translation id="4854586501323951986">Écran tactile intégré</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} tentative restante}one{<ph name="ERROR_MESSAGE" /> {0} tentative restante}other{<ph name="ERROR_MESSAGE" /> {0} tentatives restantes}}</translation>
 <translation id="4873827928179867585">Algorithme d'authentification</translation>
 <translation id="4880328057631981605">Nom du point d'accès</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Ajouter un fichier</translation>
 <translation id="6410257289063177456">Fichiers image</translation>
 <translation id="641081527798843608">Correspondance d'objet</translation>
+<translation id="6412715219990689313">Clavier intégré</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Faible (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Accéder aux paramètres du compte</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Type de fichier</translation>
 <translation id="73631062356239394">Partager les données de diagnostic</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Pavé tactile intégré</translation>
 <translation id="7397270852490618635">Annuler le thème clair</translation>
 <translation id="741244894080940828">conversion</translation>
 <translation id="7415801143053185905">Latence HTTP très élevée</translation>
diff --git a/chromeos/strings/chromeos_strings_hi.xtb b/chromeos/strings/chromeos_strings_hi.xtb
index 7cd86d2b..36f76365 100644
--- a/chromeos/strings/chromeos_strings_hi.xtb
+++ b/chromeos/strings/chromeos_strings_hi.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> चुनी गई, <ph name="TOPIC_SOURCE" /> एल्बम चुनने के लिए Enter दबाएं</translation>
 <translation id="484790837831576105">(Android) डीएनएस रिज़ॉल्यूशन</translation>
 <translation id="4848429997038228357">चल रहा है</translation>
+<translation id="4854586501323951986">पहले से मौजूद टचस्क्रीन</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> आप {0} बार और कोशिश कर सकते हैं}one{<ph name="ERROR_MESSAGE" /> आप {0} बार और कोशिश कर सकते हैं}other{<ph name="ERROR_MESSAGE" /> आप {0} बार और कोशिश कर सकते हैं}}</translation>
 <translation id="4873827928179867585">पुष्टि करने का एल्गोरिदम</translation>
 <translation id="4880328057631981605">एक्सेस पॉइंट नाम</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">फ़ाइल जोड़ें</translation>
 <translation id="6410257289063177456">इमेज फ़ाइल</translation>
 <translation id="641081527798843608">विषय मिलान</translation>
+<translation id="6412715219990689313">पहले से मौजूद कीबोर्ड</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">सिग्नल कमज़ोर है (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">खाता सेटिंग पर जाएं</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">फ़ाइल प्रकार</translation>
 <translation id="73631062356239394">गड़बड़ी की जानकारी का डेटा शेयर करें</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">पहले से मौजूद टचपैड</translation>
 <translation id="7397270852490618635">हल्के रंग वाली थीम बंद करें</translation>
 <translation id="741244894080940828">एक यूनिट से दूसरी यूनिट में बदलना</translation>
 <translation id="7415801143053185905">एचटीटीपी अनुरोधों में इंतज़ार का समय बहुत ज़्यादा है</translation>
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb
index 9e2b80a..ef03c7b 100644
--- a/chromeos/strings/chromeos_strings_is.xtb
+++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> valið, ýttu á færslulykilinn til að velja albúm í <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) DNS-lausn</translation>
 <translation id="4848429997038228357">Í GANGI</translation>
+<translation id="4854586501323951986">Innbyggður snertiskjár</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} tilraun eftir}one{<ph name="ERROR_MESSAGE" /> {0} tilraun eftir}other{<ph name="ERROR_MESSAGE" /> {0} tilraunir eftir}}</translation>
 <translation id="4873827928179867585">Auðkenningarreiknirit</translation>
 <translation id="4880328057631981605">Heiti aðgangsstaðar</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Bæta við skrá</translation>
 <translation id="6410257289063177456">Myndaskrár</translation>
 <translation id="641081527798843608">Samsvörun viðfangs</translation>
+<translation id="6412715219990689313">Innbyggt lyklaborð</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Lítill (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Fara í reikningsstillingar</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Skráargerð</translation>
 <translation id="73631062356239394">Deila greiningargögnum</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Innbyggður snertiflötur</translation>
 <translation id="7397270852490618635">Slökkva á ljósu þema</translation>
 <translation id="741244894080940828">umreikningur</translation>
 <translation id="7415801143053185905">Mjög langur HTTP-biðtími</translation>
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb
index 3e1080c..f228cdc2 100644
--- a/chromeos/strings/chromeos_strings_it.xtb
+++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> selezionato, premi Invio per selezionare gli album <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) risoluzione DNS</translation>
 <translation id="4848429997038228357">IN ESECUZIONE</translation>
+<translation id="4854586501323951986">Touchscreen integrato</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} tentativo rimanente}other{<ph name="ERROR_MESSAGE" /> {0} tentativi rimanenti}}</translation>
 <translation id="4873827928179867585">Algoritmo di autenticazione</translation>
 <translation id="4880328057631981605">Nome punto di accesso</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">Aggiungi file</translation>
 <translation id="6410257289063177456">File di immagine</translation>
 <translation id="641081527798843608">Corrispondenza oggetto</translation>
+<translation id="6412715219990689313">Tastiera integrata</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Debole (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Vai alle impostazioni dell'account</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">Tipo di file</translation>
 <translation id="73631062356239394">Condividi dati diagnostici</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Touchpad integrato</translation>
 <translation id="7397270852490618635">Disattiva il tema chiaro</translation>
 <translation id="741244894080940828">conversione</translation>
 <translation id="7415801143053185905">Latenza HTTP molto elevata</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb
index 4e9d276..0d47766 100644
--- a/chromeos/strings/chromeos_strings_iw.xtb
+++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679">‏בחרת <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> – יש להקיש על Enter כדי לבחור אלבומי <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">‏רזולוציית DNS ‏(Android)</translation>
 <translation id="4848429997038228357">הבדיקה מתבצעת</translation>
+<translation id="4854586501323951986">מסך מגע מובנה</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" />. נותר ניסיון אחד ({0})}two{<ph name="ERROR_MESSAGE" />. נותרו {0} ניסיונות}many{<ph name="ERROR_MESSAGE" />. נותרו {0} ניסיונות}other{<ph name="ERROR_MESSAGE" />. נותרו {0} ניסיונות}}</translation>
 <translation id="4873827928179867585">האלגוריתם לאימות</translation>
 <translation id="4880328057631981605">‏שם נקודת גישה (APN)</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">הוספה של קובץ</translation>
 <translation id="6410257289063177456">קובצי תמונה</translation>
 <translation id="641081527798843608">התאמת נושא</translation>
+<translation id="6412715219990689313">מקלדת מובנית</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">חלש (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">מעבר אל הגדרות החשבון</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">סוג קובץ</translation>
 <translation id="73631062356239394">שיתוף נתוני הניתוח</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">לוח מגע מובנה</translation>
 <translation id="7397270852490618635">השבתת העיצוב הבהיר</translation>
 <translation id="741244894080940828">המרה</translation>
 <translation id="7415801143053185905">‏משך זמן ההמתנה ל-HTTP ארוך מאוד</translation>
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb
index e34c91c..c9f1319 100644
--- a/chromeos/strings/chromeos_strings_ja.xtb
+++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> が選択されています。<ph name="TOPIC_SOURCE" /> アルバムを選択するには Enter キーを押してください</translation>
 <translation id="484790837831576105">(Android)DNS の解決</translation>
 <translation id="4848429997038228357">実行中</translation>
+<translation id="4854586501323951986">デバイス内蔵タッチスクリーン</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" />あと {0} 回試行できます}other{<ph name="ERROR_MESSAGE" />あと {0} 回試行できます}}</translation>
 <translation id="4873827928179867585">認証アルゴリズム</translation>
 <translation id="4880328057631981605">アクセス ポイント名</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">ファイルを追加</translation>
 <translation id="6410257289063177456">画像ファイル</translation>
 <translation id="641081527798843608">件名の一致</translation>
+<translation id="6412715219990689313">デバイス内蔵キーボード</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">弱い(<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">アカウント設定に移動</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">ファイル形式</translation>
 <translation id="73631062356239394">診断データを共有</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">デバイス内蔵タッチパッド</translation>
 <translation id="7397270852490618635">ライトモードをオフにする</translation>
 <translation id="741244894080940828">単位変換</translation>
 <translation id="7415801143053185905">HTTP レイテンシが非常に高くなっています</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb
index 6f39deb..6cdc4ff 100644
--- a/chromeos/strings/chromeos_strings_ka.xtb
+++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">გამოცადეთ დეფექტების აღმოფხვრის საფეხურები</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">ეკრანმზოგის სანახავად დაუკავშირდით ქსელს და გადატვირთეთ გვერდი.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">დამატებითი პარამეტრები</translation>
 <translation id="2085089206770112532">ეკრანის სიკაშკაშის დაკლება</translation>
 <translation id="2105810540595158374">მოწყობილობა არის სათამაშო კონტროლერი.</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">შეკუმშვის ალგორითმი</translation>
 <translation id="4794140124556169553">CPU-ს ტესტის გაშვება, შესაძლოა, აისახოს სისტემის წარმადობაზე</translation>
 <translation id="4800589996161293643">Chromebook საზოგადოება</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">ბეჭდვის დავალება გაუქმდა <ph name="DOCUMENT_TITLE" />-ისთვის</translation>
 <translation id="4809927044794281115">ღია თემა</translation>
 <translation id="4813136279048157860">ჩემი სურათები</translation>
@@ -404,6 +406,7 @@
 <translation id="4891842000192098784">სტრესი</translation>
 <translation id="4897058166682006107">მოწყობილობის მარცხენა ყურსაცვამის ბატარეის დონეა <ph name="BATTERY_PERCENTAGE" />%.</translation>
 <translation id="4905998861748258752">ეკრანმზოგის ვარიანტების ასარჩევად ჩართეთ ეს ფუნქცია</translation>
+<translation id="4910858703033903787">APN-ის ტიპები</translation>
 <translation id="4917385247580444890">ძლიერი</translation>
 <translation id="4917889632206600977">გაჩერდა — ქაღალდი გათავდა</translation>
 <translation id="491791267030419270">მინიშნებები გამოხმაურების დაწერის შესახებ</translation>
@@ -459,6 +462,7 @@
 <translation id="5358174242040570474">რაღაც შეცდომა მოხდა. ხელახლა ცადეთ ფონის არჩევა ან აპის გახსნა.</translation>
 <translation id="5372659122375744710">Wi-Fi ქსელი არ არის დაცული</translation>
 <translation id="5376354385557966694">ავტომატური ღია რეჟიმი</translation>
+<translation id="5378184552853359930">IP-ს ტიპი</translation>
 <translation id="5389159777326897627">ფონი და სტილი</translation>
 <translation id="5389224261615877010">ცისარტყელისფერი</translation>
 <translation id="5400907029458559844">მოწყობილობა უკავშირდება.</translation>
@@ -740,6 +744,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">აირჩიეთ <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">დანართი</translation>
 <translation id="8206859287963243715">ფიჭური</translation>
 <translation id="8208861521865154048">ბონუსები</translation>
 <translation id="8226628635270268143">აირჩიეთ თქვენი რჩეული ფოტოები და ალბომები</translation>
@@ -828,6 +833,7 @@
 <translation id="9025198690966128418">პირად მოწყობილობად გამოყენება</translation>
 <translation id="9028832514430399253">ჩართეთ გადამრთველი, ეკრანმზოგის ვარიანტები რომ აირჩიოთ</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">DNS-ის დარეგულირების რეაგირების დრო დიდია</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_kk.xtb b/chromeos/strings/chromeos_strings_kk.xtb
index 2ec4668..cd330c0 100644
--- a/chromeos/strings/chromeos_strings_kk.xtb
+++ b/chromeos/strings/chromeos_strings_kk.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> таңдалды, <ph name="TOPIC_SOURCE" /> альбомдарын таңдау үшін Enter пернесін басыңыз.</translation>
 <translation id="484790837831576105">DNS ажыратымдылығы (Android)</translation>
 <translation id="4848429997038228357">ТЕКСЕРІЛУДЕ</translation>
+<translation id="4854586501323951986">Ендірілген сенсорлық экран</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} әрекет қалды.}other{<ph name="ERROR_MESSAGE" /> {0} әрекет қалды.}}</translation>
 <translation id="4873827928179867585">Аутентификация алгоритмі</translation>
 <translation id="4880328057631981605">Кіру нүктесінің атауы</translation>
@@ -567,6 +568,7 @@
 <translation id="6394634179843537518">Файл қосу</translation>
 <translation id="6410257289063177456">Кескін файлдары</translation>
 <translation id="641081527798843608">Тақырып сәйкестігі</translation>
+<translation id="6412715219990689313">Ендірілген пернетақта</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Әлсіз (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Аккаунт параметрлеріне өту</translation>
@@ -665,6 +667,7 @@
 <translation id="7359657277149375382">Файл түрі</translation>
 <translation id="73631062356239394">Диагностика деректерін бөлісу</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Ендірілген сенсорлық тақта</translation>
 <translation id="7397270852490618635">Жарық режимді өшіру</translation>
 <translation id="741244894080940828">түрлендіру</translation>
 <translation id="7415801143053185905">HTTP кідірісі өте жоғары.</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb
index b3eb009e..29dd0db 100644
--- a/chromeos/strings/chromeos_strings_km.xtb
+++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">សាកល្បងអនុវត្តតាមជំហានដោះស្រាយបញ្ហា</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">សូម​ភ្ជាប់​ទៅ​បណ្ដាញ​ រួច​ផ្ទុក​ទំព័រ​ឡើងវិញ ដើម្បី​មើល​ធាតុ​រក្សាអេក្រង់។</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">ការកំណត់ច្រើនទៀត</translation>
 <translation id="2085089206770112532">គ្រាប់ចុចព្រួញចុះក្រោមសម្រាប់បន្ថយពន្លឺផ្ទាំងអេក្រង់</translation>
 <translation id="2105810540595158374">ឧបករណ៍គឺជាឧបករណ៍បញ្ជាហ្គេម។</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">ក្បួនបង្ហាប់</translation>
 <translation id="4794140124556169553">ការធ្វើតេស្ត CPU អាច​ប៉ះពាល់ដល់​ប្រតិបត្តិការប្រព័ន្ធរបស់អ្នក</translation>
 <translation id="4800589996161293643">សហគមន៍ Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">បានបោះបង់​ការងារបោះពុម្ព <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">រចនាប័ទ្ម​ភ្លឺ</translation>
 <translation id="4813136279048157860">រូបភាព​របស់ខ្ញុំ</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">ស្ត្រេស</translation>
 <translation id="4897058166682006107">ឧបករណ៍មានថ្មកាសខាងឆ្វេង <ph name="BATTERY_PERCENTAGE" />%។</translation>
 <translation id="4905998861748258752">បើកមុខងារនេះ ដើម្បីជ្រើសរើសជម្រើសធាតុរក្សាអេក្រង់</translation>
+<translation id="4910858703033903787">ប្រភេទ APN</translation>
 <translation id="4917385247580444890">ខ្លាំង</translation>
 <translation id="4917889632206600977">បានឈប់ - អស់​ក្រដាស</translation>
 <translation id="491791267030419270">គន្លឹះ​ក្នុងការសរសេរ​មតិកែលម្អ</translation>
@@ -459,6 +462,7 @@
 <translation id="5358174242040570474">មានអ្វីមួយខុសប្រក្រតី។ សូមសាកល្បង​ជ្រើសរើស​ផ្ទាំងរូបភាពម្ដងទៀត ឬបើក​កម្មវិធីឡើងវិញ។</translation>
 <translation id="5372659122375744710">បណ្ដាញ WiFi មិនមានសុវត្ថិភាពទេ</translation>
 <translation id="5376354385557966694">មុខងារភ្លឺ​ស្វ័យប្រវត្តិ</translation>
+<translation id="5378184552853359930">ប្រភេទ IP</translation>
 <translation id="5389159777326897627">ផ្ទាំងរូបភាព និង​រចនាប័ទ្ម</translation>
 <translation id="5389224261615877010">ឥន្ទធនូ</translation>
 <translation id="5400907029458559844">ឧបករណ៍កំពុងភ្ជាប់។</translation>
@@ -742,6 +746,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">ជ្រើសរើស <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">បញ្ចូល</translation>
+<translation id="8183974620058026102">ភ្ជាប់</translation>
 <translation id="8206859287963243715">ប្រព័ន្ធទូរស័ព្ទ</translation>
 <translation id="8208861521865154048">អត្ថប្រយោជន៍</translation>
 <translation id="8226628635270268143">ជ្រើសរើស​រូបថត និងអាល់ប៊ុមដែលអ្នកចូលចិត្ត</translation>
@@ -830,6 +835,7 @@
 <translation id="9025198690966128418">ប្រើប្រាស់ជាឧបករណ៍ផ្ទាល់ខ្លួន</translation>
 <translation id="9028832514430399253">បើកប៊ូតុងបិទ/បើក ដើម្បីជ្រើសរើសជម្រើសធាតុរក្សាអេក្រង់</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">ដំណោះស្រាយ DNS មានការ​ពន្យារខ្ពស់</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">ប៊្លូធូស</translation>
diff --git a/chromeos/strings/chromeos_strings_ko.xtb b/chromeos/strings/chromeos_strings_ko.xtb
index 07d3e96..0d7453e 100644
--- a/chromeos/strings/chromeos_strings_ko.xtb
+++ b/chromeos/strings/chromeos_strings_ko.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> 선택됨, <ph name="TOPIC_SOURCE" /> 앨범을 선택하려면 Enter를 누르세요</translation>
 <translation id="484790837831576105">(Android) DNS 변환</translation>
 <translation id="4848429997038228357">실행 중</translation>
+<translation id="4854586501323951986">내장 터치스크린</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" />, 남은 시도 {0}회}other{<ph name="ERROR_MESSAGE" />, 남은 시도 {0}회}}</translation>
 <translation id="4873827928179867585">인증 알고리즘</translation>
 <translation id="4880328057631981605">액세스포인트 네임(APN)</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">파일 추가</translation>
 <translation id="6410257289063177456">이미지 파일</translation>
 <translation id="641081527798843608">주제 일치</translation>
+<translation id="6412715219990689313">내장 키보드</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">약함(<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">계정 설정으로 이동</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">파일 형식</translation>
 <translation id="73631062356239394">진단 데이터 공유</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">내장 터치패드</translation>
 <translation id="7397270852490618635">밝은 테마 사용 중지</translation>
 <translation id="741244894080940828">변환</translation>
 <translation id="7415801143053185905">HTTPS 지연 시간 매우 높음</translation>
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb
index 6566d80..81cd911 100644
--- a/chromeos/strings/chromeos_strings_lt.xtb
+++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -395,6 +395,7 @@
 <translation id="4847902821209177679">Pasirinkta <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />; jei norite pasirinkti <ph name="TOPIC_SOURCE" /> albumus, paspauskite „Enter“</translation>
 <translation id="484790837831576105">(„Android“) DNS pavadinimų konvertavimas</translation>
 <translation id="4848429997038228357">VYKDOMA</translation>
+<translation id="4854586501323951986">Įtaisytas jutiklinis ekranas</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Liko {0} bandymas}one{<ph name="ERROR_MESSAGE" /> Liko {0} bandymas}few{<ph name="ERROR_MESSAGE" /> Liko {0} bandymai}many{<ph name="ERROR_MESSAGE" /> Liko {0} bandymo}other{<ph name="ERROR_MESSAGE" /> Liko {0} bandymų}}</translation>
 <translation id="4873827928179867585">Autentifikavimo algoritmas</translation>
 <translation id="4880328057631981605">Prieigos taško pavadinimas</translation>
@@ -568,6 +569,7 @@
 <translation id="6394634179843537518">Pridėti failą</translation>
 <translation id="6410257289063177456">Vaizdo failai</translation>
 <translation id="641081527798843608">Temos atitiktis</translation>
+<translation id="6412715219990689313">Įtaisyta klaviatūra</translation>
 <translation id="6423239382391657905">Atidaryti virtualųjį privatųjį tinklą</translation>
 <translation id="6439505561246192797">Silpnas (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Eiti į paskyros nustatymus</translation>
@@ -666,6 +668,7 @@
 <translation id="7359657277149375382">Failo tipas</translation>
 <translation id="73631062356239394">Diagnostikos duomenų bendrinimas</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Įtaisyta jutiklinė dalis</translation>
 <translation id="7397270852490618635">Išjungti šviesiąją temą</translation>
 <translation id="741244894080940828">konversija</translation>
 <translation id="7415801143053185905">Itin didelė HTTP delsa</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb
index 87bce34..d433f193 100644
--- a/chromeos/strings/chromeos_strings_mr.xtb
+++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> निवडले, <ph name="TOPIC_SOURCE" /> अल्बम निवडण्यासाठी एंटर दाबा</translation>
 <translation id="484790837831576105">(Android) DNS रिझोल्यूशन</translation>
 <translation id="4848429997038228357">रन होत आहे</translation>
+<translation id="4854586501323951986">बिल्ट-इन टचस्क्रीन</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> {0} प्रयत्न शिल्लक}other{<ph name="ERROR_MESSAGE" /> {0} प्रयत्न शिल्लक}}</translation>
 <translation id="4873827928179867585">ऑथेंटिकेशन अल्गोरिदम</translation>
 <translation id="4880328057631981605">ॲक्सेसबिंदूचे नाव</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">फाइल जोडा</translation>
 <translation id="6410257289063177456">इमेज फाइल</translation>
 <translation id="641081527798843608">जुळणारा विषय</translation>
+<translation id="6412715219990689313">बिल्ट-इन कीबोर्ड</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">कमकुवत (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">खाते सेटिंग्ज मध्ये जा</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">फाइल प्रकार</translation>
 <translation id="73631062356239394">निदानासंबंधित डेटा शेअर करा</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">बिल्ट-इन टचपॅड</translation>
 <translation id="7397270852490618635">फिकट थीम बंद करा</translation>
 <translation id="741244894080940828">रूपांतर</translation>
 <translation id="7415801143053185905">अत्युच्च HTTP लेटन्सी</translation>
diff --git a/chromeos/strings/chromeos_strings_nl.xtb b/chromeos/strings/chromeos_strings_nl.xtb
index 29db386d..be70b0e 100644
--- a/chromeos/strings/chromeos_strings_nl.xtb
+++ b/chromeos/strings/chromeos_strings_nl.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> geselecteerd, druk op Enter om <ph name="TOPIC_SOURCE" />-albums te selecteren</translation>
 <translation id="484790837831576105">(Android) DNS-omzetting</translation>
 <translation id="4848429997038228357">ACTIEF</translation>
+<translation id="4854586501323951986">Geïntegreerd touchscreen</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Nog {0} poging}other{<ph name="ERROR_MESSAGE" /> Nog {0} pogingen}}</translation>
 <translation id="4873827928179867585">Verificatiealgoritme</translation>
 <translation id="4880328057631981605">Naam van toegangspunt</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Bestand toevoegen</translation>
 <translation id="6410257289063177456">Afbeeldingsbestanden</translation>
 <translation id="641081527798843608">Overeenkomst van onderwerp</translation>
+<translation id="6412715219990689313">Geïntegreerd toetsenbord</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Zwak (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Naar Accountinstellingen gaan</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Bestandstype</translation>
 <translation id="73631062356239394">Diagnostische gegevens delen</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Geïntegreerde touchpad</translation>
 <translation id="7397270852490618635">Licht thema uitzetten</translation>
 <translation id="741244894080940828">conversie</translation>
 <translation id="7415801143053185905">Zeer hoge HTTP-vertraging</translation>
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb
index 859875a..39b6224 100644
--- a/chromeos/strings/chromeos_strings_pl.xtb
+++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Wybrano: <ph name="TOPIC_SOURCE" /> (<ph name="TOPIC_SOURCE_DESC" />). Naciśnij Enter, by wybrać albumy ze źródła <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">(Android) Rozpoznawanie nazw DNS</translation>
 <translation id="4848429997038228357">W TOKU</translation>
+<translation id="4854586501323951986">Wbudowany ekran dotykowy</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Pozostała {0} próba.}few{<ph name="ERROR_MESSAGE" /> Pozostały {0} próby.}many{<ph name="ERROR_MESSAGE" /> Pozostało {0} prób.}other{<ph name="ERROR_MESSAGE" /> Pozostało {0} próby.}}</translation>
 <translation id="4873827928179867585">Algorytm uwierzytelniania</translation>
 <translation id="4880328057631981605">Nazwa punktu dostępu</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Dodaj plik</translation>
 <translation id="6410257289063177456">Pliki graficzne</translation>
 <translation id="641081527798843608">Dopasowanie do tematu</translation>
+<translation id="6412715219990689313">Klawiatura wbudowana</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Słaba (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Otwórz ustawienia konta</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Typ pliku</translation>
 <translation id="73631062356239394">Udostępnianie danych diagnostycznych</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Touchpad wbudowany</translation>
 <translation id="7397270852490618635">Wyłącz jasny motyw</translation>
 <translation id="741244894080940828">przeliczanie</translation>
 <translation id="7415801143053185905">Bardzo duże opóźnienie HTTP</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb
index 7724b39..3705bfc 100644
--- a/chromeos/strings/chromeos_strings_ro.xtb
+++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Încearcă pașii pentru remedierea erorilor</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Conectează-te la o rețea și reîncarcă pagina pentru a vedea screensaverul.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Mai multe setări</translation>
 <translation id="2085089206770112532">Reducerea luminozității ecranului</translation>
 <translation id="2105810540595158374">Dispozitivul este un controler de jocuri.</translation>
@@ -384,6 +385,7 @@
 <translation id="4793756956024303490">Algoritm de comprimare</translation>
 <translation id="4794140124556169553">Rularea unui test pentru CPU poate afecta performanța sistemului</translation>
 <translation id="4800589996161293643">Comunitatea Chromebook</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">S-a anulat sarcina de printare <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Temă luminoasă</translation>
 <translation id="4813136279048157860">Imaginile mele</translation>
@@ -404,6 +406,7 @@
 <translation id="4891842000192098784">Stres</translation>
 <translation id="4897058166682006107">Nivelul bateriei căștii stângi a dispozitivului este de <ph name="BATTERY_PERCENTAGE" /> %.</translation>
 <translation id="4905998861748258752">Activează funcția ca să selectezi opțiuni pentru screensaver</translation>
+<translation id="4910858703033903787">Tipuri APN</translation>
 <translation id="4917385247580444890">Puternic</translation>
 <translation id="4917889632206600977">Oprită – Hârtie epuizată</translation>
 <translation id="491791267030419270">Sfaturi pentru a scrie feedback</translation>
@@ -459,6 +462,7 @@
 <translation id="5358174242040570474">A apărut o eroare. Încearcă din nou să alegi o imagine de fundal sau redeschide aplicația.</translation>
 <translation id="5372659122375744710">Rețeaua Wi-Fi nu este sigură</translation>
 <translation id="5376354385557966694">Modul luminos automat</translation>
+<translation id="5378184552853359930">Tip de adresă IP</translation>
 <translation id="5389159777326897627">Stil și imagine de fundal</translation>
 <translation id="5389224261615877010">Curcubeu</translation>
 <translation id="5400907029458559844">Dispozitivul se conectează.</translation>
@@ -742,6 +746,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Selectează <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Atașează</translation>
 <translation id="8206859287963243715">Celular</translation>
 <translation id="8208861521865154048">Avantaje</translation>
 <translation id="8226628635270268143">Alege fotografiile și albumele preferate</translation>
@@ -830,6 +835,7 @@
 <translation id="9025198690966128418">Folosește ca dispozitiv personal</translation>
 <translation id="9028832514430399253">Activează comutatorul pentru a selecta opțiunile pentru screensaver</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPv6</translation>
 <translation id="9062831201344759865">Rezolvarea DNS are latență mare</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb
index bfa53fc7..2284ebe1 100644
--- a/chromeos/strings/chromeos_strings_sl.xtb
+++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">Izbrali ste <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" />, pritisnite Enter, da izberete albume <ph name="TOPIC_SOURCE" /></translation>
 <translation id="484790837831576105">Razreševanje DNS-ja (Android)</translation>
 <translation id="4848429997038228357">IZVAJANJE</translation>
+<translation id="4854586501323951986">Vgrajen zaslon na dotik</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" /> Na voljo imate še {0} poskus}one{<ph name="ERROR_MESSAGE" /> Na voljo imate še {0} poskus}two{<ph name="ERROR_MESSAGE" /> Na voljo imate še {0} poskusa}few{<ph name="ERROR_MESSAGE" /> Na voljo imate še {0} poskuse}other{<ph name="ERROR_MESSAGE" /> Na voljo imate še {0} poskusov}}</translation>
 <translation id="4873827928179867585">Algoritem preverjanja pristnosti</translation>
 <translation id="4880328057631981605">Ime dostopne točke</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">Dodaj datoteko</translation>
 <translation id="6410257289063177456">Slikovne datoteke</translation>
 <translation id="641081527798843608">Ujemanje zadeve</translation>
+<translation id="6412715219990689313">Vgrajena tipkovnica</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">Šibka (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">Odpri nastavitve računa</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">Vrsta datoteke</translation>
 <translation id="73631062356239394">Deljenje diagnostičnih podatkov</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">Vgrajena sledilna ploščica</translation>
 <translation id="7397270852490618635">Izklop svetle teme</translation>
 <translation id="741244894080940828">pretvorba</translation>
 <translation id="7415801143053185905">Precejšnja zakasnitev HTTP</translation>
diff --git a/chromeos/strings/chromeos_strings_uz.xtb b/chromeos/strings/chromeos_strings_uz.xtb
index 9664fc6..063b50f7 100644
--- a/chromeos/strings/chromeos_strings_uz.xtb
+++ b/chromeos/strings/chromeos_strings_uz.xtb
@@ -126,6 +126,7 @@
 <translation id="2016697457005847575">Muammoni hal qilishga urining</translation>
 <translation id="202500043506723828">EID</translation>
 <translation id="2047316797244836561">Ekran lavhasini koʻrish uchun tarmoqqa ulaning va sahifani yangilang.</translation>
+<translation id="2056550196601855911">IPv4/IPv6</translation>
 <translation id="2080070583977670716">Kengaytirilgan sozlamalar</translation>
 <translation id="2085089206770112532">Displey yorlinligini pasaytirish</translation>
 <translation id="2105810540595158374">Qurilma — geympad</translation>
@@ -385,6 +386,7 @@
 <translation id="4793756956024303490">Arxivlash algoritmi</translation>
 <translation id="4794140124556169553">Protsessorni tekshirish (CPU test) tizim unumdorligiga taʼsir qilishi mumkin</translation>
 <translation id="4800589996161293643">Chromebook hamjamiyati</translation>
+<translation id="4803391892369051319">IPv4</translation>
 <translation id="4808449224298348341">Chop etilishi bekor qilindi: <ph name="DOCUMENT_TITLE" /></translation>
 <translation id="4809927044794281115">Kunduzgi mavzu</translation>
 <translation id="4813136279048157860">Rasmlarim</translation>
@@ -405,6 +407,7 @@
 <translation id="4891842000192098784">Stress</translation>
 <translation id="4897058166682006107">Qurilmaning chap quloqlik batareyasi quvvati: <ph name="BATTERY_PERCENTAGE" />%</translation>
 <translation id="4905998861748258752">Ekran lavhasi parametrlarini tanlash uchun funksiyani yoqing</translation>
+<translation id="4910858703033903787">APN turi</translation>
 <translation id="4917385247580444890">Kuchli</translation>
 <translation id="4917889632206600977">Toʻxtatildi – Qogʻoz tugadi</translation>
 <translation id="491791267030419270">Fikr-mulohaza yozish maslahatlari</translation>
@@ -460,6 +463,7 @@
 <translation id="5358174242040570474">Xatolik yuz berdi. Fon rasmini qayta tanlang yoki ilovani qaytadan oching.</translation>
 <translation id="5372659122375744710">WiFi tarmoq xavfsiz emas</translation>
 <translation id="5376354385557966694">Avtomatik kunduzgi rejim</translation>
+<translation id="5378184552853359930">IP turi</translation>
 <translation id="5389159777326897627">Fon rasmi va uslubi</translation>
 <translation id="5389224261615877010">Kamalak</translation>
 <translation id="5400907029458559844">Qurilma ulanmoqda.</translation>
@@ -743,6 +747,7 @@
 <translation id="8138405288920084977">LTEAdvanced</translation>
 <translation id="8143951647992294073">Tanlash: <ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /></translation>
 <translation id="8179976553408161302">Enter</translation>
+<translation id="8183974620058026102">Biriktirish</translation>
 <translation id="8206859287963243715">Uyali</translation>
 <translation id="8208861521865154048">Imtiyozlar</translation>
 <translation id="8226628635270268143">Sevimli suratlar va albomlaringizni tanlang</translation>
@@ -831,6 +836,7 @@
 <translation id="9025198690966128418">Shaxsiy qurilma sifatida foydalaning</translation>
 <translation id="9028832514430399253">Tugmani bosib, ekran lavhasi parametrlarini tanlang</translation>
 <translation id="9039663905644212491">PEAP</translation>
+<translation id="9058932992221914855">IPV6</translation>
 <translation id="9062831201344759865">DNS parametrlari koʻp vaqt olmoqda</translation>
 <translation id="9073281213608662541">PAP</translation>
 <translation id="9074739597929991885">Bluetooth</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb
index fea0638..42b7f9ab 100644
--- a/chromeos/strings/chromeos_strings_zh-CN.xtb
+++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -396,6 +396,7 @@
 <translation id="4847902821209177679">已选中 <ph name="TOPIC_SOURCE" /> - <ph name="TOPIC_SOURCE_DESC" />,按 Enter 键即可从 <ph name="TOPIC_SOURCE" />中选择影集</translation>
 <translation id="484790837831576105">(Android) DNS 解析</translation>
 <translation id="4848429997038228357">正在运行</translation>
+<translation id="4854586501323951986">内置触摸屏</translation>
 <translation id="4861758251032006121">{ATTEMPTS_LEFT,plural, =1{<ph name="ERROR_MESSAGE" />剩余尝试次数:{0}}other{<ph name="ERROR_MESSAGE" />剩余尝试次数:{0}}}</translation>
 <translation id="4873827928179867585">身份验证算法</translation>
 <translation id="4880328057631981605">接入点名称 (APN)</translation>
@@ -569,6 +570,7 @@
 <translation id="6394634179843537518">添加文件</translation>
 <translation id="6410257289063177456">图片文件</translation>
 <translation id="641081527798843608">主题匹配</translation>
+<translation id="6412715219990689313">内置键盘</translation>
 <translation id="6423239382391657905">OpenVPN</translation>
 <translation id="6439505561246192797">很弱 (<ph name="SIGNAL_STRENGTH" />)</translation>
 <translation id="6447630859861661624">打开帐号设置</translation>
@@ -667,6 +669,7 @@
 <translation id="7359657277149375382">文件类型</translation>
 <translation id="73631062356239394">分享诊断数据</translation>
 <translation id="7375053625150546623">EAP</translation>
+<translation id="7388959671917308825">内置触控板</translation>
 <translation id="7397270852490618635">关闭浅色主题</translation>
 <translation id="741244894080940828">换算</translation>
 <translation id="7415801143053185905">HTTPS 延迟时间非常长</translation>
diff --git a/components/password_manager/core/browser/export/password_manager_exporter_unittest.cc b/components/password_manager/core/browser/export/password_manager_exporter_unittest.cc
index 35d51ab0..f44fff9 100644
--- a/components/password_manager/core/browser/export/password_manager_exporter_unittest.cc
+++ b/components/password_manager/core/browser/export/password_manager_exporter_unittest.cc
@@ -96,7 +96,8 @@
   scoped_refptr<TestPasswordStore> store_ =
       base::MakeRefCounted<TestPasswordStore>();
   MockAffiliationService affiliation_service_;
-  SavedPasswordsPresenter presenter_{&affiliation_service_, store_};
+  SavedPasswordsPresenter presenter_{&affiliation_service_, store_,
+                                     /*account_store=*/nullptr};
   base::MockCallback<
       base::RepeatingCallback<void(ExportProgressStatus, const std::string&)>>
       mock_on_progress_;
diff --git a/components/password_manager/core/browser/password_manager_metrics_util.h b/components/password_manager/core/browser/password_manager_metrics_util.h
index a27ba5e..b22d3c6 100644
--- a/components/password_manager/core/browser/password_manager_metrics_util.h
+++ b/components/password_manager/core/browser/password_manager_metrics_util.h
@@ -85,6 +85,7 @@
   // The user is asked to visit the Password Checkup and change the password for
   // the current site.
   kCheckupAndChange = 2,
+  // TODO(crbug.com/1386065): Deprecate this entry as part of APC clean up.
   // The user is asked to let Chrome automatically change their password for the
   // current site.
   kChangeAutomatically = 3,
diff --git a/components/password_manager/core/browser/password_reuse_manager.h b/components/password_manager/core/browser/password_reuse_manager.h
index 32a24ea..acb0baf 100644
--- a/components/password_manager/core/browser/password_reuse_manager.h
+++ b/components/password_manager/core/browser/password_reuse_manager.h
@@ -35,7 +35,7 @@
   // Always call this on the UI thread.
   virtual void Init(PrefService* prefs,
                     PasswordStoreInterface* profile_store,
-                    PasswordStoreInterface* account_store = nullptr) = 0;
+                    PasswordStoreInterface* account_store) = 0;
 
   // Clears existing cached passwords stored on the account store and schedules
   // a request to re-fetch.
diff --git a/components/password_manager/core/browser/password_reuse_manager_impl.h b/components/password_manager/core/browser/password_reuse_manager_impl.h
index b7b8369..266b8718 100644
--- a/components/password_manager/core/browser/password_reuse_manager_impl.h
+++ b/components/password_manager/core/browser/password_reuse_manager_impl.h
@@ -29,7 +29,7 @@
   // Implements PasswordReuseManager interface.
   void Init(PrefService* prefs,
             PasswordStoreInterface* profile_store,
-            PasswordStoreInterface* account_store = nullptr) override;
+            PasswordStoreInterface* account_store) override;
   void AccountStoreStateChanged() override;
   void ReportMetrics(const std::string& username,
                      bool is_under_advanced_protection) override;
diff --git a/components/password_manager/core/browser/ui/bulk_leak_check_service_adapter_unittest.cc b/components/password_manager/core/browser/ui/bulk_leak_check_service_adapter_unittest.cc
index adef9b8..9f7200f3 100644
--- a/components/password_manager/core/browser/ui/bulk_leak_check_service_adapter_unittest.cc
+++ b/components/password_manager/core/browser/ui/bulk_leak_check_service_adapter_unittest.cc
@@ -125,7 +125,8 @@
   scoped_refptr<TestPasswordStore> store_ =
       base::MakeRefCounted<TestPasswordStore>();
   MockAffiliationService affiliation_service_;
-  SavedPasswordsPresenter presenter_{&affiliation_service_, store_};
+  SavedPasswordsPresenter presenter_{&affiliation_service_, store_,
+                                     /*account_store=*/nullptr};
   BulkLeakCheckService service_{
       identity_test_env_.identity_manager(),
       base::MakeRefCounted<network::TestSharedURLLoaderFactory>()};
diff --git a/components/password_manager/core/browser/ui/insecure_credentials_manager.h b/components/password_manager/core/browser/ui/insecure_credentials_manager.h
index 9c731a5..80077d4 100644
--- a/components/password_manager/core/browser/ui/insecure_credentials_manager.h
+++ b/components/password_manager/core/browser/ui/insecure_credentials_manager.h
@@ -52,7 +52,7 @@
   InsecureCredentialsManager(
       SavedPasswordsPresenter* presenter,
       scoped_refptr<PasswordStoreInterface> profile_store,
-      scoped_refptr<PasswordStoreInterface> account_store = nullptr);
+      scoped_refptr<PasswordStoreInterface> account_store);
   ~InsecureCredentialsManager() override;
 
 #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)
diff --git a/components/password_manager/core/browser/ui/insecure_credentials_manager_unittest.cc b/components/password_manager/core/browser/ui/insecure_credentials_manager_unittest.cc
index 17e0ba1..e613b42 100644
--- a/components/password_manager/core/browser/ui/insecure_credentials_manager_unittest.cc
+++ b/components/password_manager/core/browser/ui/insecure_credentials_manager_unittest.cc
@@ -122,8 +122,10 @@
   scoped_refptr<TestPasswordStore> store_ =
       base::MakeRefCounted<TestPasswordStore>();
   MockAffiliationService affiliation_service_;
-  SavedPasswordsPresenter presenter_{&affiliation_service_, store_};
-  InsecureCredentialsManager provider_{&presenter_, store_};
+  SavedPasswordsPresenter presenter_{&affiliation_service_, store_,
+                                     /*account_store=*/nullptr};
+  InsecureCredentialsManager provider_{&presenter_, store_,
+                                       /*account_store=*/nullptr};
 };
 
 }  // namespace
diff --git a/components/password_manager/core/browser/ui/saved_passwords_presenter.h b/components/password_manager/core/browser/ui/saved_passwords_presenter.h
index 1945ea1..ed03bf6e 100644
--- a/components/password_manager/core/browser/ui/saved_passwords_presenter.h
+++ b/components/password_manager/core/browser/ui/saved_passwords_presenter.h
@@ -101,10 +101,9 @@
       base::OnceCallback<void(const std::vector<AddResult>&)>;
   using DuplicatePasswordsMap = std::multimap<std::string, PasswordForm>;
 
-  SavedPasswordsPresenter(
-      AffiliationService* affiliation_service,
-      scoped_refptr<PasswordStoreInterface> profile_store,
-      scoped_refptr<PasswordStoreInterface> account_store = nullptr);
+  SavedPasswordsPresenter(AffiliationService* affiliation_service,
+                          scoped_refptr<PasswordStoreInterface> profile_store,
+                          scoped_refptr<PasswordStoreInterface> account_store);
   ~SavedPasswordsPresenter() override;
 
   // Initializes the presenter and makes it issue the first request for all
diff --git a/components/password_manager/core/browser/ui/saved_passwords_presenter_unittest.cc b/components/password_manager/core/browser/ui/saved_passwords_presenter_unittest.cc
index b835b2f..0b96e4d1 100644
--- a/components/password_manager/core/browser/ui/saved_passwords_presenter_unittest.cc
+++ b/components/password_manager/core/browser/ui/saved_passwords_presenter_unittest.cc
@@ -76,7 +76,8 @@
   scoped_refptr<TestPasswordStore> store_ =
       base::MakeRefCounted<TestPasswordStore>();
   MockAffiliationService affiliation_service_;
-  SavedPasswordsPresenter presenter_{&affiliation_service_, store_};
+  SavedPasswordsPresenter presenter_{&affiliation_service_, store_,
+                                     /*account_store=*/nullptr};
 };
 
 // Parametrized test class which enables or disables the password notes feature
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 3d4d6ef..a9febad 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -4106,6 +4106,15 @@
 
       Hinweis: Dieser Liste können auch über die Richtlinie "<ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />" Elemente hinzugefügt werden.</translation>
 <translation id="5067143124345820993">Zulassungsliste für Nutzer bei der Anmeldung</translation>
+<translation id="5069522005630249098">Mit dieser Einstellung wird festgelegt, wie viele Nutzerdaten nach der Deaktivierung von <ph name="LACROS_NAME" /> gespeichert werden.
+
+      Wenn die Richtlinie auf „<ph name="LACROS_BACKWARD_MIGRATION_NONE" />“ gesetzt oder nicht konfiguriert ist, wird keine umgekehrte Datenmigration ausgeführt.
+
+      Wenn die Richtlinie auf „<ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />“ gesetzt ist, werden alle Nutzerdaten entfernt. Das ist die sicherste Option.
+
+      Wenn die Richtlinie auf „<ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />“ gesetzt ist, werden die meisten Nutzerdaten entfernt. Es werden dann nur browserunabhängige Dateien gespeichert, z. B. Downloads.
+
+      Wenn die Richtlinie auf „<ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />“ gesetzt ist, bleiben alle Nutzerdaten erhalten. Diese Option ist sehr fehleranfällig. Zur Wiederherstellung ist dann ein Zurücksetzen auf die Werkseinstellungen per Powerwash erforderlich.</translation>
 <translation id="5071303485174858500">Eingeschränkte verwaltete Gastsitzung deaktivieren.</translation>
 <translation id="5073609397321802133">Wenn diese Richtlinie auf "false" gesetzt ist, können Nutzer auf der "Neuer Tab"-Seite den Hintergrund nicht anpassen. Falls bereits ein benutzerdefinierter Hintergrund vorhanden ist, wird er dauerhaft entfernt, auch wenn die Richtlinie später auf "true" gesetzt wird.
 
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index b4835f1a..726e2ae 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -166,6 +166,17 @@
             * ntlm
             Si dejas esta opción vacía, se podrán usar los tres esquemas.</translation>
 <translation id="1153306961094113710">Permitir depuración remota</translation>
+<translation id="1156636278540386588">Controla si el navegador puede usar extensiones de Manifest V2.
+
+Las extensiones de Manifest V2 dejarán de estar disponibles, y todas las extensiones deberán migrarse a V3 en el futuro. Para consultar más detalles y el calendario de la migración, visita https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/.
+
+Si a la política se le asigna el valor <ph name="DEFAULT" /> (0) o no se establece, el navegador decidirá si se cargan las extensiones de V2 según el calendario indicado arriba.
+Si a la política se le asigna el valor <ph name="DISABLE" /> (1), se bloqueará la instalación de extensiones de V2 y se inhabilitarán las ya instaladas. La opción se tratará como si la política no se hubiera establecido después de que se desactive la compatibilidad con V2 de forma predeterminada.
+Si a la política se le asigna el valor <ph name="ENABLE" /> (2), se permitirán las extensiones de V2. La opción se tratará como si la política no se hubiera establecido antes de que se desactive la compatibilidad con V2 de forma predeterminada.
+Si a la política se le asigna el valor <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3), se permitirá la instalación forzada de extensiones de V2. Esto incluye las extensiones que figuran en <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> o <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> con el valor force_installed o normal_installed asignado a <ph name="INSTALLATION_MODE" />. El resto de las extensiones de V2 se inhabilitarán. La opción se tratará como si la política no se hubiera establecido antes de que se desactive la compatibilidad con V2 de forma predeterminada.
+
+
+La disponibilidad de las extensiones seguirá estando controlada por otras políticas.</translation>
 <translation id="115699958189272121">Informar de los eventos de <ph name="CHROME_REMOTE_DESKTOP_PRODUCT_NAME" /></translation>
 <translation id="1157003104143964656">Este ajuste habilita o inhabilita la interceptación de inicio de sesión.
 
@@ -296,6 +307,7 @@
       En <ph name="MS_WIN_NAME" />, esta función solo está disponible en instancias que estén vinculadas a un dominio de <ph name="MS_AD_NAME" /> que se ejecuten en Windows 10 Pro o que se hayan registrado en <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />.</translation>
 <translation id="1285819498003746288">La API Event.path no estará disponible.</translation>
 <translation id="129206366270737897">Inhabilita cualquier método asíncrono de <ph name="FILE_SYSTEM_SYNC_ACCESS_HANDLE" />.</translation>
+<translation id="129392056654547767">La imagen del firmware de la UEFI usada por la VM. Se trata de una medida temporal mientras la empaquetamos como DLC de ChromeOS.</translation>
 <translation id="1294263471858445589">Habilita la autenticación pasiva en sesiones normales y de incógnito.</translation>
 <translation id="1295737447968372331">Habilita el dictado en la pantalla de inicio de sesión</translation>
 <translation id="1297182715641689552">Utilizar una secuencia de comandos .pac de proxy</translation>
@@ -2164,6 +2176,7 @@
 <translation id="3067462824622454143">Permitir que los usuarios decidan si el dispositivo se debe bloquear al suspenderlo o al cerrar la tapa</translation>
 <translation id="3070119171976169951">Evitar que las imágenes de terceros muestren una solicitud de autenticación</translation>
 <translation id="3072045631333522102">Protector de pantalla a utilizar en la pantalla de inicio de sesión del modo de venta</translation>
+<translation id="3072205795519163619">Los datos iniciales no volátiles de la UEFI usados por el firmware de la VM</translation>
 <translation id="3072788420987305247">Si se habilita la política o no se establece, se mostrarán los controles multimedia en la pantalla de bloqueo cuando el usuario bloquee el dispositivo mientras se esté reproduciendo contenido multimedia.
 
       Si se inhabilita la política, se desactivarán los controles multimedia en la pantalla de bloqueo.</translation>
@@ -2434,6 +2447,7 @@
       Si se desactiva esta opción o no se define, el servicio de protección de contraseñas solo capturará los hashes con salt de las contraseñas en https://accounts.google.com.
 
       En <ph name="MS_WIN_NAME" />, esta política solo está disponible en las instancias vinculadas a un dominio de <ph name="MS_AD_NAME" /> que se ejecuten en Windows 10 Pro o que se hayan registrado en <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. En <ph name="MAC_OS_NAME" />, esta función solo está disponible en instancias que se gestionen mediante MDM o que estén vinculadas a un dominio a través de MCX.</translation>
+<translation id="3259506006965153552">Controla si las VMs que usan esta configuración tienen acceso a un vTPM. El valor predeterminado es false.</translation>
 <translation id="3261592499545947104">Número de segundos restantes para que caduque un certificado cuando se deba activar la renovación</translation>
 <translation id="3262080895269946462">Permitir que WebSQL esté inhabilitada de forma predeterminada en contextos de terceros.</translation>
 <translation id="3263892501786842604">Permitir que se muestre el botón <ph name="GOOGLE_LENS_PRODUCT_NAME" /> en el cuadro de búsqueda de la página Nueva pestaña si está disponible</translation>
@@ -3528,6 +3542,7 @@
       Para obtener información detallada sobre los patrones de <ph name="URL_LABEL" /> válidos, consulta https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns. <ph name="WILDCARD_VALUE" /> no es un valor aceptado para esta política.</translation>
 <translation id="4389073105055031853">Permitir que los usuarios gestionen todos los certificados</translation>
 <translation id="4389091865841123886">Permite configurar la confirmación remota con el mecanismo de TPM.</translation>
+<translation id="4394840953265135019">URL del objeto comprimido que se va a descargar. Los objetos se pueden comprimir con los formatos gzip, bzip2, lzma o zstd, que se detectarán automáticamente tras la descarga. Los objetos no se pueden descomprimir, ya que esta opción no se puede detectar automáticamente.</translation>
 <translation id="439661169333921592">Inhabilitar el resaltado del foco del teclado en la pantalla de inicio de sesión</translation>
 <translation id="4397045637922200204">Desactivar recuperación de cuenta</translation>
 <translation id="4397464099112037398">Configuración predeterminada del permiso de colocación de ventanas</translation>
@@ -3865,6 +3880,7 @@
 <translation id="4725691087141147920">Mostrar Sync Consent durante el inicio de sesión</translation>
 <translation id="4725801978265372736">Requerir que el nombre del usuario local y el propietario del host de acceso remoto coincidan</translation>
 <translation id="4726228171190098009">No permitir que el dispositivo solicite usar la función Powerwash</translation>
+<translation id="4726895359147376813">Asignación desde IDs persistentes a configuraciones de VM</translation>
 <translation id="4733471537137819387">Políticas relacionadas con la autenticación HTTP integrada</translation>
 <translation id="4735099388031364207">Si se habilita esta política, se permitirá la atestación remota en el dispositivo. Se generará un certificado y se subirá al servidor de administración de dispositivos automáticamente.
 
@@ -4162,6 +4178,7 @@
       Si no se establece esta política o se inhabilita, webkitRequestFileSystem de tipo persistente funcionará con una cuota temporal.
       </translation>
 <translation id="5105313908130842249">Retraso de bloqueo de pantalla cuando el dispositivo funciona con la batería</translation>
+<translation id="5106077438006122286">Controla cómo se deben tratar las VMs en ejecución que no coinciden con la configuración de esta política. El valor predeterminado es <ph name="FORCE_SHUTDOWN_IF_MORE_RESTRICTED" />.</translation>
 <translation id="5108031557082757679">Impresoras de dispositivos de empresa inhabilitadas</translation>
 <translation id="5109383437323376357">Determinar la disponibilidad de variaciones</translation>
 <translation id="5118635822783657217">Inhabilitar las actualizaciones de componentes no esenciales</translation>
@@ -4360,6 +4377,7 @@
           Si se asigna un valor a esta política, los usuarios no podrán cambiarlo ni anularlo.
 
           Si no se le asigna ningún valor, el resaltado del cursor se inhabilitará inicialmente en la pantalla de inicio de sesión, pero el usuario podrá habilitarlo en cualquier momento.</translation>
+<translation id="528302483493794684">Una configuración de VM. Indica un tipo de VM que el usuario puede instalar y que quedará asociada de forma permanente al ID de esta configuración. También indica los controles que se aplicarán a este tipo de VM.</translation>
 <translation id="5283457834853986457">Inhabilitar el buscador de complementos (obsoleta)</translation>
 <translation id="5286579716704722323">Permitir que los usuarios hagan clic para ignorar las páginas de advertencia de SSL</translation>
 <translation id="5288772341821359899">Si esta política se configura, el intervalo de puertos UDP utilizado por WebRTC estará restringido al intervalo de puertos especificado (incluidos los extremos).
@@ -4475,6 +4493,7 @@
 
       Si la política se inhabilita, el historial de navegación y el de descargas no se podrán eliminar. Aunque la política esté desactivada, no se garantiza que los historiales de navegación y de descargas se puedan conservar. Es posible que los usuarios puedan editar o eliminar directamente los archivos de la base de datos del historial. Además, el propio navegador puede archivar o clasificar como caducados elementos del historial en cualquier momento.</translation>
 <translation id="5420245232720940848">Inhabilita la tunelización de PCIe desde dispositivos periféricos Thunderbolt/USB4, lo que limita las funciones de los dispositivos</translation>
+<translation id="5420774177427557782">Controla si las VMs que usan esta configuración pueden instalarse y ejecutarse (<ph name="INSTALL_ALLOWED" />); si pueden ejecutarse, pero no instalarse (<ph name="RUN_ALLOWED" />); o si no pueden ejecutarse (<ph name="BLOCKED" />). Ten en cuenta que, si quieres instalar una VM, también debes establecer la clave installer_image_x86_64. Si se elimina una configuración por completo, se asigna <ph name="BLOCKED" /> a esta propiedad de forma implícita, lo que impide que las VMs se ejecuten sin ninguna política.</translation>
 <translation id="5422643441807528365">Clave de licencia de <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="5423197884968724595">Nombre de restricción de WebView de Android:</translation>
 <translation id="5424147596523390018">Permitir todos los modos de color</translation>
@@ -4540,6 +4559,7 @@
       </translation>
 <translation id="5448022937220253000">Elige qué ocurrirá con los datos de usuario después de que se inhabilite <ph name="LACROS_NAME" /></translation>
 <translation id="5449690328792750354">La API Event.path estará disponible.</translation>
+<translation id="5452024130413254050">Controla si las VMs que usan esta configuración tienen acceso a un vTPM. El valor predeterminado es false y, si no se establece, es <ph name="FORCE_SHUTDOWN_IF_MORE_RESTRICTED" />.</translation>
 <translation id="5455609857202311243">Ignorar la aprobación de políticas de KDC durante la autenticación de HTTP</translation>
 <translation id="5455888515928026628">Durante el inicio de sesión en la pantalla de bloqueo, <ph name="PRODUCT_OS_NAME" /> puede realizar la autenticación a través de un servidor (con conexión) o una contraseña almacenada en caché (sin conexión).
 
@@ -4759,6 +4779,7 @@
           El valor de la política solo se aplica cuando la política <ph name="DEFAULT_SEARCH_PROVIDER_ENABLED_POLICY_NAME" /> está habilitada y no es aplicable en caso contrario.</translation>
 <translation id="5697306356229823047">Permite informar sobre usuarios de dispositivos</translation>
 <translation id="569777361305162263">No permitir que se muestre contenido promocional que ocupe toda la pestaña</translation>
+<translation id="569834442020549908">Imagen del disco de arranque con UEFI usada para instalar la VM en dispositivos x86_64</translation>
 <translation id="5698923148503075597">Si se habilita esta política, la política de nube prevalecerá si entra en conflicto con la política de plataforma.
 
       Si se inhabilita esta política o no se define, la política de plataforma prevalecerá si entra en conflicto con la política de nube.
@@ -5884,6 +5905,7 @@
 <translation id="6766216162565713893">Permitir que los sitios le pidan permiso al usuario para acceder a dispositivos Bluetooth cercanos</translation>
 <translation id="6770454900105963262">Informar sobre sesiones del kiosco activas</translation>
 <translation id="6774132787348495175">No permitir que los usuarios usen las máquinas virtuales necesarias para el funcionamiento de las aplicaciones de Linux</translation>
+<translation id="6780028483481123221">Hash SHA-256 codificado en formato hexadecimal del objeto comprimido</translation>
 <translation id="6782331708811245959">Habilitar los informes sobre el modo Inicio del dispositivo</translation>
 <translation id="6782977971207381602">Si se habilita esta política, el dispositivo podrá ejecutar máquinas virtuales en <ph name="PRODUCT_OS_NAME" />. Para poder usar <ph name="PRODUCT_CROSTINI_NAME" />, las políticas <ph name="VIRTUAL_MACHINES_ALLOWED_POLICY_NAME" /> y <ph name="CROSTINI_ALLOWED_POLICY_NAME" /> deben estar habilitadas. Si se inhabilita la política, el dispositivo no podrá ejecutar máquinas virtuales. En caso de inhabilitar la política, esto se aplicará a las nuevas máquinas virtuales que se empiecen a usar, pero no a las que ya estén ejecutándose.
 
@@ -7143,6 +7165,7 @@
 <translation id="8044720778481009876">Destinos de <ph name="CLOUD_PRINT_NAME" /> y Guardar en Google Drive (obsoleta)</translation>
 <translation id="80453040817068401">Habilitar la disponibilidad del navegador <ph name="LACROS_NAME" /></translation>
 <translation id="804619600634661088">Permitir el uso de la depuración remota</translation>
+<translation id="8047600674992048328">Nombre de configuración visible para el usuario</translation>
 <translation id="8049769137921877885">Esta política determina si se recogen datos de políticas y la hora de su obtención.
 
       Si no se establece la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> o se inhabilita, esta se ignorará.
@@ -7827,6 +7850,9 @@
       Si se inhabilita esta política o no se le asigna ningún valor, el host de acceso remoto podrá asociarse a cualquier usuario local.</translation>
 <translation id="867708016260789630">Forzar que el modo Restringido de YouTube se aplique en la opción moderada como mínimo</translation>
 <translation id="8677853537025397834">Permite la API WebHID en estos sitios</translation>
+<translation id="8684000025871334499">Configura políticas de instalación y entorno de ejecución para las VMs de Bruschetta en <ph name="PRODUCT_OS_NAME" />. De esta forma, los usuarios pueden instalar VMs de terceros. Esta función está inhabilitada de forma predeterminada.
+
+Esta política asigna IDs de configuración a las configuraciones de VM. Si una VM se instala desde una configuración, queda asociada de forma permanente al ID de esa configuración, y las políticas de entorno de ejecución de la configuración se aplican a la VM. Se pueden instalar varias VMs desde la misma configuración en el mismo dispositivo.</translation>
 <translation id="8685018726115727387">Inhabilitar la importación del historial de navegación en la primera ejecución</translation>
 <translation id="8685024486845674965">La advertencia de protección de contraseña se activa al reutilizar la contraseña</translation>
 <translation id="8685680544554917389">Si se asigna el valor "True" a esta política, <ph name="PRODUCT_NAME" /> reproducirá automáticamente el contenido multimedia. Si se le asigna el valor "False", <ph name="PRODUCT_NAME" /> no podrá reproducir automáticamente el contenido multimedia.
@@ -8111,6 +8137,7 @@
       Si se inhabilita esta política o no se establece, no se activará la función Powerwash en un dispositivo de forma remota, independientemente del estado de subida del ID de registro.
 
       Esta comprobación se activará siempre que se cargue la pantalla de inicio de sesión y se repetirá cada hora (si el dispositivo se mantiene en la pantalla de inicio de sesión). Así, se evita que la migración comience en medio de la sesión de un usuario, lo que podría causar problemas a los usuarios finales.</translation>
+<translation id="9003823644527627017">Configurar las VMs de Bruschetta en <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="9007632512838819703">Esta política está obsoleta. Usa la política <ph name="SPELLCHECK_LANGUAGE_BLOCKLIST_POLICY_NAME" /> en su lugar.
 
       Permite forzar la inhabilitación del corrector ortográfico de idiomas. Se ignorarán los idiomas no reconocidos de esa lista.
@@ -8241,6 +8268,7 @@
 <translation id="9117826695152538214">Si se le asigna el valor "true" a esta política, las teclas persistentes permanecen activadas. Si se le asigna el valor "false", las teclas persistentes permanecen desactivadas.
 
       Si se configura esta política, los usuarios no pueden cambiarla. Si no se le asigna ningún valor, las teclas persistentes están en un principio desactivadas, pero los usuarios pueden activarlas en cualquier momento.</translation>
+<translation id="91206085111961438">Controlar la disponibilidad de extensiones de Manifest V2</translation>
 <translation id="9121178963309901985">Esta política controla las solicitudes de instalación de extensiones de <ph name="PRODUCT_NAME" /> que permiten a los usuarios enviar las solicitudes a la consola de administración de Google para su aprobación.
 
       Si la política <ph name="CLOUD_REPORTING_ENABLED_POLICY_NAME" /> no se establece o se inhabilita, esta política se ignorará y las solicitudes de instalación de extensiones no se crearán ni se subirán.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 1530398..5b8a1af4 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -4131,6 +4131,15 @@
 
       Remarque : Vous pouvez également utiliser la règle <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" /> pour ajouter des éléments à cette liste.</translation>
 <translation id="5067143124345820993">Liste des utilisateurs autorisés à se connecter</translation>
+<translation id="5069522005630249098">Ce paramètre détermine la quantité de données utilisateur conservées une fois <ph name="LACROS_NAME" /> désactivé.
+
+      Si la règle est définie sur <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> ou n'est pas configurée, la rétromigration des données n'est pas effectuée.
+
+      Si la règle est définie sur <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />, toutes les données utilisateur sont supprimées. C'est l'option la plus sûre.
+
+      Si la règle est définie sur <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />, la plupart des données utilisateur sont supprimées. Seuls les fichiers indépendants du navigateur (comme les téléchargements) sont conservés.
+
+      Si la règle est définie sur <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />, toutes les données utilisateur sont conservées. Cette option présente un risque élevé d'échec, pour lequel la restauration nécessite d'effectuer un Powerwash.</translation>
 <translation id="5071303485174858500">Désactiver la session Invité gérée restreinte.</translation>
 <translation id="5073609397321802133">Si cette règle est définie sur "False", les utilisateurs ne peuvent pas personnaliser l'arrière-plan sur la page "Nouvel onglet". Tout arrière-plan personnalisé actuel sera définitivement supprimé, même si la règle est définie sur "True" par la suite.
 
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 5537e97..1886d15 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -4100,6 +4100,15 @@
 
       Nota: puoi aggiungere elementi all'elenco anche tramite il criterio <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation>
 <translation id="5067143124345820993">Whitelist di utenti con accesso</translation>
+<translation id="5069522005630249098">Questa impostazione consente di stabilire la quantità di dati utente da conservare dopo la disattivazione di <ph name="LACROS_NAME" />.
+
+      Se il criterio viene impostato su <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> o se non viene configurato, la migrazione dei dati a ritroso non viene eseguita.
+
+      Se il criterio viene impostato su <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />, tutti i dati utente vengono rimossi. Questa è l'opzione più sicura.
+
+      Se il criterio viene impostato su <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />, la maggior parte dei dati utente viene rimossa. Vengono conservati solo i file indipendenti dal browser (come i download).
+
+      Se il criterio viene impostato su <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />, tutti i dati utente vengono conservati. Questa opzione presenta un rischio elevato di errore e richiede il Powerwash per il ripristino.</translation>
 <translation id="5071303485174858500">Viene disattivata la sessione Ospite gestita limitata.</translation>
 <translation id="5073609397321802133">Se il criterio viene impostato su false, gli utenti non possono personalizzare lo sfondo della pagina Nuova scheda. L'eventuale sfondo personalizzato esistente viene rimosso definitivamente anche se il criterio viene impostato su true in un secondo momento.
 
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 9f735d1..d632bec 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -3939,6 +3939,15 @@
 
       注: このリストには、<ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" /> ポリシーからも要素が追加される可能性があります。</translation>
 <translation id="5067143124345820993">ログイン ユーザーのホワイト リスト</translation>
+<translation id="5069522005630249098">この設定により、<ph name="LACROS_NAME" /> が無効になった後、どれだけのユーザーデータが保持されるかが決まります。
+
+      このポリシーを <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> に設定するか未設定のままにした場合、過去に遡ったデータの移行は行われません。
+
+      このポリシーを <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" /> に設定した場合は、すべてのユーザーデータが削除されます。これは最も安全な設定です。
+
+      このポリシーを <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" /> に設定した場合は、ほとんどのユーザーデータが削除され、ブラウザに依存しないファイルのみ(例: 「ダウンロード」)が保存されます。
+
+      このポリシーを <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" /> に設定した場合、ユーザーデータはすべて保持されます。この設定ではエラーが発生するリスクが高く、復旧するには Powerwash が必要になります。</translation>
 <translation id="5071303485174858500">制限付き管理対象ゲスト セッションを無効にする</translation>
 <translation id="5073609397321802133">このポリシーを false に設定した場合、ユーザーは新しいタブページの背景をカスタイマイズできなくなります。既存のカスタムの背景は削除され、後からこのポリシーを true に設定しても元に戻すことはできません。
 
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 6eea21d..14cd2b3 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -4159,6 +4159,15 @@
 
       참고: <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" /> 정책을 통해서도 이 목록에 요소를 추가할 수 있습니다.</translation>
 <translation id="5067143124345820993">로그인 사용자 허용 목록</translation>
+<translation id="5069522005630249098">이 설정은 <ph name="LACROS_NAME" />가 사용 중지된 후 사용자 데이터를 얼마나 유지할지 결정합니다.
+
+      정책을 <ph name="LACROS_BACKWARD_MIGRATION_NONE" />으로 설정하거나 설정하지 않으면 과거 데이터 이전이 수행되지 않습니다.
+
+      정책을 <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />으로 설정하면 모든 사용자 데이터가 삭제됩니다. 가장 안전한 옵션입니다.
+
+      정책을 <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />로 설정하면 대부분의 사용자 데이터가 삭제됩니다. 브라우저의 독립적인 파일(예: 다운로드)만 유지됩니다.
+
+      정책을 <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />로 설정하면 모든 사용자 데이터가 유지됩니다. 이 옵션은 실패 가능성이 높고 복구하려면 파워워시가 필요합니다.</translation>
 <translation id="5071303485174858500">제한된 관리 게스트 세션을 사용 중지합니다.</translation>
 <translation id="5073609397321802133">정책이 false로 설정되어 있으면 사용자가 새 탭 페이지의 배경을 맞춤설정할 수 없습니다. 나중에 정책이 true로 설정되더라도 기존의 모든 맞춤 배경이 완전히 삭제됩니다.
 
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 7fb4cf57..e57020a7 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -4092,6 +4092,15 @@
 
       Opmerking: Elementen kunnen ook aan deze lijst worden toegevoegd via het beleid <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" />.</translation>
 <translation id="5067143124345820993">Aanmelden bij witte lijst van gebruikers</translation>
+<translation id="5069522005630249098">Deze instelling bepaalt hoeveel gebruikersgegevens worden bewaard nadat <ph name="LACROS_NAME" /> is uitgezet.
+
+      Als het beleid is ingesteld op <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> of niet is ingesteld, wordt er geen achterwaartse gegevensmigratie uitgevoerd.
+
+      Als je het beleid instelt op <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />, worden alle gebruikersgegevens verwijderd. Dit is de veiligste optie.
+
+      Als je het beleid instelt op <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />, worden de meeste gebruikersgegevens verwijderd. Alleen bestanden die niet afhankelijk zijn van de browser worden bewaard (zoals downloads).
+
+      Als je het beleid instelt op <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />, worden alle gebruikersgegevens bewaard. Deze optie heeft een hoog risico op fouten en vereist een Powerwash om te herstellen.</translation>
 <translation id="5071303485174858500">Beperkte beheerde gastsessie uitzetten.</translation>
 <translation id="5073609397321802133">Als het beleid is ingesteld op 'False', kunnen gebruikers de achtergrond van de pagina 'Nieuw tabblad' niet aanpassen. Eventuele bestaande aangepaste achtergronden worden definitief verwijderd, zelfs als het beleid later weer wordt ingesteld op 'True'.
 
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 90be0b36..b0ccbf2 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -1839,6 +1839,15 @@
       การตั้งค่านโยบายเป็น "ปิดใช้" จะปิดโหมดการใช้ไฟจากแบตเตอรี่
 
       หากไม่ได้ตั้งค่านโยบาย ระบบจะปิดการใช้ไฟจากแบตเตอรี่ในตอนแรก ผู้ใช้เปลี่ยนแปลงการตั้งค่านี้ไม่ได้</translation>
+<translation id="2773036462435523078">เรียกให้ทำงานเมื่อไม่มีการใช้งานคอมพิวเตอร์
+
+      การตั้งค่านโยบายนี้จะเป็นการกำหนดระยะเวลาโดยไม่ต้องมีการป้อนข้อมูลจากผู้ใช้ (เป็นนาที) ก่อนที่ <ph name="PRODUCT_NAME" /> จะเรียกใช้การดำเนินการที่กำหนดค่าไว้ผ่านนโยบาย <ph name="IDLE_TIMEOUT_ACTIONS_POLICY_NAME" />
+
+      หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะไม่เรียกใช้การดำเนินการใดๆ
+
+      เกณฑ์ขั้นต่ำคือ 5 นาที
+
+      "การป้อนข้อมูลจากผู้ใช้" จะกำหนดโดย Operating System API ซึ่งรวมถึงการดำเนินการต่างๆ อย่างการเลื่อนเมาส์หรือการพิมพ์บนแป้นพิมพ์</translation>
 <translation id="2773288106548584039">การรองรับเบราว์เซอร์เวอร์ชันเก่า</translation>
 <translation id="2780840673734667062">ปิดการลงชื่อเข้าใช้ด้วยบัญชี Google บัญชีอื่นๆ</translation>
 <translation id="2784880732336446591">ล้างข้อมูลการท่องเว็บเมื่อออก</translation>
@@ -2271,6 +2280,7 @@
 <translation id="3171369832001535378">เทมเพลตชื่อโฮสต์เครือข่ายของอุปกรณ์</translation>
 <translation id="3173844121395372156">เราเลิกใช้งานและไม่รองรับนโยบายนี้แล้ว โปรดใช้นโยบาย "<ph name="NATIVE_MESSAGING_ALLOWLIST_POLICY_NAME" />" แทน</translation>
 <translation id="3177802893484440532">ต้องใช้การตรวจสอบ OCSP/CRL ออนไลน์สำหรับ Trust Anchor ในพื้นที่</translation>
+<translation id="3179533009079100620">แสดงเครื่องมือเลือกโปรไฟล์</translation>
 <translation id="3180671894201217988">การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้ซอฟต์แวร์ของบุคคลที่สามแทรกโค้ดปฏิบัติการลงในกระบวนการของ <ph name="PRODUCT_NAME" /> ไม่ได้
 
       การตั้งค่านโยบายเป็น "ปิดใช้" จะอนุญาตให้ซอฟต์แวร์นี้แทรกโค้ดดังกล่าวลงในกระบวนการของ <ph name="PRODUCT_NAME" /> ได้</translation>
@@ -2686,6 +2696,7 @@
 <translation id="3540846231645422635">ปิดใช้การรายงานอินเทอร์เฟซเครือข่ายของอุปกรณ์</translation>
 <translation id="3540935459049973317">การจำกัดเวลาต่อแอป</translation>
 <translation id="3547954654003013442">การตั้งค่าพร็อกซี</translation>
+<translation id="3548064438634502368">ปิดเบราว์เซอร์</translation>
 <translation id="3548642468619496972">บล็อกการดาวน์โหลดที่เป็นอันตราย ไม่ปกติ หรือไม่พึงประสงค์ รวมถึงประเภทไฟล์ที่เป็นอันตราย</translation>
 <translation id="3550122827225052130">โปรดทราบว่าจะมีการเลิกใช้งานและนำนโยบายนี้ออกใน <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 85 โปรดใช้ <ph name="SCREEN_LOCK_DELAYS_POLICY_NAME" /> แทน
 
@@ -2742,6 +2753,19 @@
 <translation id="3591584750136265240">กำหนดค่าลักษณะการตรวจสอบสิทธิ์ของการเข้าสู่ระบบ</translation>
 <translation id="3593905652755912452">ระบบจะใช้การส่งเหตุการณ์แบบเก่าในลักษณะการทํางานของตัวควบคุมแบบฟอร์มที่ปิดใช้</translation>
 <translation id="3596112486106491038">เปิดใช้การเข้าถึงบรรทัดคำสั่งของเครื่องเสมือน</translation>
+<translation id="3596335476793146071">รายการการดำเนินการที่จะเรียกใช้เมื่อถึงระยะหมดเวลาตามนโยบาย <ph name="IDLE_TIMEOUT_POLICY_NAME" />
+
+      หากไม่ได้ตั้งค่านโยบาย <ph name="IDLE_TIMEOUT_POLICY_NAME" /> ไว้ นโยบายนี้จะไม่มีผล
+
+      เมื่อถึงระยะหมดเวลาตามนโยบาย <ph name="IDLE_TIMEOUT_POLICY_NAME" /> <ph name="PRODUCT_NAME" /> จะเรียกใช้การดำเนินการที่กำหนดค่าไว้ในนโยบายนี้
+
+      หากนโยบายนี้ว่างเปล่าหรือไม่ได้ตั้งค่า นโยบาย <ph name="IDLE_TIMEOUT_POLICY_NAME" /> จะไม่มีผล
+
+      การดำเนินการที่รองรับ ได้แก่
+
+      "<ph name="CLOSE_BROWSERS_ACTION" />": ปิดหน้าต่างเบราว์เซอร์และ PWA ทั้งหมดสำหรับโปรไฟล์นี้
+
+      "<ph name="SHOW_PROFILE_PICKER_ACTION" />": แสดงหน้าต่างเครื่องมือเลือกโปรไฟล์</translation>
 <translation id="3603469950773500315">เปิดใช้การลดการตรวจสอบ <ph name="CORS" /> ในการนำ <ph name="CORS" /> ใหม่ไปใช้ เพื่อให้ส่วนขยายยังคงทำงานร่วมกันได้ และให้ <ph name="PRODUCT_NAME" /> ส่งส่วนหัวที่ระบุโดยไม่ต้องตรวจสอบ <ph name="CORS" />
 
       หากตั้งค่ารายการนี้ให้ว่างเปล่า <ph name="PRODUCT_NAME" /> จะเรียกใช้ส่วนขยายในลักษณะการทำงานที่เข้ากันได้ และจะไม่แสดงการเปลี่ยนแปลง <ph name="API" /> สำหรับ <ph name="PRODUCT_NAME" /> 79 ดังที่อธิบายไว้ใน <ph name="WEB_REQUEST_API_MANUAL" />
@@ -3858,6 +3882,7 @@
 
       หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะไม่อนุญาตให้ใช้ค่าเริ่มต้นกับผู้ใช้ที่มีการจัดการโดยองค์กรแต่อนุญาตให้ใช้กับผู้ใช้ที่ไม่มีการจัดการ</translation>
 <translation id="4783415902268741066">อนุญาตให้แสดงหน้าผลการค้นหาล่าสุดของเครื่องมือค้นหาเริ่มต้นในแผงด้านข้าง</translation>
+<translation id="4786784434769279324">การดำเนินการที่เรียกใช้เมื่อไม่มีการใช้งานคอมพิวเตอร์</translation>
 <translation id="4787763197941188108">ลบล้างขนาดหน้าการพิมพ์เริ่มต้น
 
       <ph name="PAGE_SIZE_NAME" /> ควรมีรูปแบบที่อยู่ในรายการ 1 รูปแบบ หรือมีรูปแบบ "ที่กำหนดเอง" หากไม่มีขนาดกระดาษที่จำเป็นอยู่ในรายการ หากระบุค่า "ที่กำหนดเอง" ก็ควรระบุพร็อพเพอร์ตี้ <ph name="PAGE_SIZE_CUSTOM_SIZE" /> ซึ่งอธิบายความสูงและความกว้างที่ต้องการเป็นไมโครเมตรด้วย มิเช่นนั้นก็ไม่ควรมีการระบุพร็อพเพอร์ตี้ <ph name="PAGE_SIZE_CUSTOM_SIZE" /> ระบบจะไม่สนใจนโยบายที่ละเมิดกฎนี้
@@ -5204,6 +5229,7 @@
 <translation id="6242147107333796512">รายงานข้อมูลที่เกี่ยวข้องกับรายงานข้อขัดข้อง เช่น รหัสระยะไกล การประทับเวลาการบันทึก และสาเหตุ
 
       หากตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่า ระบบจะไม่รายงานข้อมูลเกี่ยวกับรายงานข้อขัดข้อง หากตั้งค่าเป็น "จริง" ระบบจะรายงานข้อมูลเกี่ยวกับรายงานข้อขัดข้อง</translation>
+<translation id="624219423122512710">การดำเนินการเกี่ยวกับเบราว์เซอร์ที่ไม่มีการใช้งาน</translation>
 <translation id="6244061205361004687">อนุญาตให้ผู้ใช้ยกเลิกการเชื่อมต่อหรือแก้ไข VPN ด้วยตนเอง</translation>
 <translation id="6244210204546589761">URL ที่จะเปิดเมื่อเริ่มต้นใช้งาน</translation>
 <translation id="624595269193747921">ระบุว่าจะจำกัดการค้นหาเครื่องพิมพ์ที่ตรงกันเป็นชุดเครื่องพิมพ์ที่เจาะจงหรือไม่</translation>
@@ -5555,6 +5581,7 @@
 
       หมายเหตุ: ปัจจุบันการรีบูตอัตโนมัติจะเปิดใช้ขณะกำลังแสดงหน้าจอการเข้าสู่ระบบ หรืออยู่ในระหว่างเซสชันของแอปคีออสก์เท่านั้น</translation>
 <translation id="6556586932263358975">อนุญาตให้ล็อกหน้าจอ</translation>
+<translation id="6558013557780651644">การหน่วงเวลาก่อนเรียกใช้การดำเนินการเมื่อไม่มีการใช้งาน</translation>
 <translation id="6559057113164934677">ไม่อนุญาตให้ไซต์ใดๆ เข้าถึงกล้องและไมโครโฟน</translation>
 <translation id="65591220958874949">ใช้ไคลเอ็นต์ DNS ในตัวกับ Windows, macOS, Android และ ChromeOS</translation>
 <translation id="6559221564468029245">การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ตั้งค่าทำให้ผู้ใช้ไม่ถูกพิจารณาว่าไม่มีความเคลื่อนไหวในขณะกำลังเล่นเสียง ซึ่งจะป้องกันระยะหมดเวลาเนื่องจากไม่ความเคลื่อนไหวและป้องกันการตอบสนองการไม่มีความเคลื่อนไหว แต่จะยังมีการหรี่แสงหน้าจอ การปิดหน้าจอ และการล็อกหน้าจอหลังจากระยะหมดเวลาที่กำหนดค่าไว้ แม้จะมีกิจกรรมเสียงก็ตาม
@@ -7540,6 +7567,8 @@
       คำเตือน: เราไม่แนะนำให้กำหนดค่าข้อจำกัดของเวอร์ชันเพราะอาจทำให้ผู้ใช้ไม่ได้รับการอัปเดตซอฟต์แวร์และการปรับปรุงความปลอดภัยที่สำคัญ การจำกัดการอัปเดตเป็นส่วนนำเวอร์ชันที่เจาะจงอาจทำให้ผู้ใช้มีความเสี่ยง</translation>
 <translation id="8508489378025029342">เปิดใช้การรายงานเวลาของกิจกรรมในอุปกรณ์</translation>
 <translation id="8511192250554640451">อนุญาตให้ตรรกะของ Chrome ควบคุมตัวจับเวลา JavaScript ในเบื้องหลัง และให้ผู้ใช้กำหนดค่าเอง</translation>
+<translation id="8511708772548158302">ย้อนอุปกรณ์กลับไปเป็นเวอร์ชันเป้าหมายหากระบบปฏิบัติการปัจจุบันใช้เวอร์ชันที่ใหม่กว่า อุปกรณ์จะทำการ Powerwash แต่ระบบจะเก็บการกำหนดค่าเครือข่ายสำหรับทั้งอุปกรณ์โดยไม่มีใบรับรองไว้ และอุปกรณ์จะลงทะเบียนซ้ำโดยอัตโนมัติ
+ระบบไม่รองรับการย้อนกลับไปยัง <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 106 หรือเวอร์ชันก่อนหน้า</translation>
 <translation id="8519264904050090490">URL ข้อยกเว้นแบบกำหนดเองของผู้ใช้ที่ได้รับการจัดการ</translation>
 <translation id="8519516251436131647">เปิดใช้แป้นพิมพ์ลัดของฟีเจอร์การช่วยเหลือพิเศษ
 
@@ -7977,6 +8006,7 @@
       หากตั้งค่านโยบายนี้เป็น "เท็จ" หรือไม่ได้ตั้งค่า ระบบจะใช้เอลิเมนต์ตัวควบคุมแบบฟอร์มตามที่มีการเปิดตัวใน M81, M82 และ M83
 
       เราจะนำนโยบายนี้ออกหลังจาก Chrome 84</translation>
+<translation id="8940173892071872775">ควบคุมการดำเนินการที่เรียกใช้เมื่อไม่มีการใช้งานเบราว์เซอร์</translation>
 <translation id="8942616385591203339">นโยบายนี้ควบคุมว่าการขอคำยินยอมให้ซิงค์จะแสดงต่อผู้ใช้รายหนึ่งๆ ในระหว่างที่ลงชื่อเข้าใช้เป็นครั้งแรกได้หรือไม่ ตั้งค่านโยบายนี้เป็นเท็จหากไม่จำเป็นต้องขอคำยินยอมให้ซิงค์จากผู้ใช้
       หากตั้งค่าเป็นเท็จ ระบบจะไม่แสดงการขอคำยินยอมให้ซิงค์
       หากตั้งค่าเป็นจริงหรือไม่ได้ตั้งค่า ระบบจะแสดงการขอคำยินยอมให้ซิงค์</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 9cff009..28391ac 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -4087,6 +4087,15 @@
 
       注意:系统也可通过 <ph name="EXTERNAL_SITELIST_URL_POLICY_NAME" /> 政策向该列表添加元素。</translation>
 <translation id="5067143124345820993">登录用户白名单</translation>
+<translation id="5069522005630249098">此设置用于确定在 <ph name="LACROS_NAME" /> 停用后保留多少用户数据。
+
+      如果此政策设为 <ph name="LACROS_BACKWARD_MIGRATION_NONE" /> 或未设置,系统将不会执行反向数据迁移操作。
+
+      如果此政策设为 <ph name="LACROS_BACKWARD_MIGRATION_KEEP_NONE" />,系统会移除所有用户数据。这是最安全的选项。
+
+      如果此政策设为 <ph name="LACROS_BACKWARD_MIGRATION_KEEP_SAFE_DATA" />,系统会移除大部分用户数据,只会保留与浏览器无关的文件(例如下载内容)。
+
+      如果此政策设为 <ph name="LACROS_BACKWARD_MIGRATION_KEEP_ALL" />,系统会保留所有用户数据。此选项存在很高的失败风险,并且失败后需要执行 Powerwash 操作才能恢复。</translation>
 <translation id="5071303485174858500">停用受限受管理访客会话。</translation>
 <translation id="5073609397321802133">如果此政策设为 false,“新标签页”页面将不允许用户自定义背景。所有现有的自定义背景都将被永久移除,即使此政策后来又改设为 true 也是如此。
 
diff --git a/components/remote_cocoa/app_shim/color_panel_bridge.mm b/components/remote_cocoa/app_shim/color_panel_bridge.mm
index 2d89be2..fc19335 100644
--- a/components/remote_cocoa/app_shim/color_panel_bridge.mm
+++ b/components/remote_cocoa/app_shim/color_panel_bridge.mm
@@ -79,9 +79,9 @@
     return;
   }
   _nonUserChange = NO;
-  NSColor* color = [panel color];
-  if ([[color colorSpaceName] isEqualToString:NSNamedColorSpace]) {
-    color = [color colorUsingColorSpace:[NSColorSpace genericRGBColorSpace]];
+  NSColor* color = panel.color;
+  if (color.type == NSColorTypeCatalog) {
+    color = [color colorUsingColorSpace:NSColorSpace.genericRGBColorSpace];
     // Some colors in "Developer" palette in "Color Palettes" tab can't be
     // converted to RGB. We just ignore such colors.
     // TODO(tkent): We should notice the rejection to users.
@@ -89,7 +89,7 @@
       return;
   }
   SkColor skColor = 0;
-  if ([color colorSpace] == [NSColorSpace genericRGBColorSpace]) {
+  if (color.colorSpace == NSColorSpace.genericRGBColorSpace) {
     // genericRGB -> deviceRGB conversion isn't ignorable.  We'd like to use RGB
     // values shown in NSColorPanel UI.
     CGFloat red, green, blue, alpha;
@@ -99,7 +99,7 @@
         SkScalarRoundToInt(255.0 * green), SkScalarRoundToInt(255.0 * blue));
   } else {
     skColor = skia::NSDeviceColorToSkColor(
-        [[panel color] colorUsingColorSpaceName:NSDeviceRGBColorSpace]);
+        [color colorUsingColorSpace:NSColorSpace.deviceRGBColorSpace]);
   }
   if (g_current_panel_bridge)
     g_current_panel_bridge->host()->DidChooseColorInColorPanel(skColor);
diff --git a/components/reporting/metrics/metric_event_observer_manager.cc b/components/reporting/metrics/metric_event_observer_manager.cc
index 21bf5aa..feb89cf 100644
--- a/components/reporting/metrics/metric_event_observer_manager.cc
+++ b/components/reporting/metrics/metric_event_observer_manager.cc
@@ -8,7 +8,7 @@
 #include <utility>
 #include <vector>
 
-#include "base/bind.h"
+#include "base/functional/bind.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/task/bind_post_task.h"
 #include "base/task/sequenced_task_runner.h"
@@ -30,7 +30,8 @@
     ReportingSettings* reporting_settings,
     const std::string& enable_setting_path,
     bool setting_enabled_default_value,
-    EventDrivenTelemetrySamplerPool* sampler_pool)
+    EventDrivenTelemetrySamplerPool* sampler_pool,
+    base::TimeDelta init_delay)
     : event_observer_(std::move(event_observer)),
       metric_report_queue_(metric_report_queue),
       sampler_pool_(sampler_pool) {
@@ -46,6 +47,25 @@
 
   reporting_controller_ = std::make_unique<MetricReportingController>(
       reporting_settings, enable_setting_path, setting_enabled_default_value);
+
+  DCHECK(!init_delay.is_negative());
+  if (init_delay.is_zero()) {
+    SetReportingControllerCb();
+    return;
+  }
+  CHECK(base::SequencedTaskRunner::HasCurrentDefault());
+  base::SequencedTaskRunner::GetCurrentDefault()->PostDelayedTask(
+      FROM_HERE,
+      base::BindOnce(&MetricEventObserverManager::SetReportingControllerCb,
+                     weak_ptr_factory_.GetWeakPtr()),
+      init_delay);
+}
+
+MetricEventObserverManager::~MetricEventObserverManager() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+}
+
+void MetricEventObserverManager::SetReportingControllerCb() {
   reporting_controller_->SetSettingUpdateCb(
       base::BindRepeating(&MetricEventObserverManager::SetReportingEnabled,
                           base::Unretained(this),
@@ -55,10 +75,6 @@
                           /*is_enabled=*/false));
 }
 
-MetricEventObserverManager::~MetricEventObserverManager() {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-}
-
 void MetricEventObserverManager::SetReportingEnabled(bool is_enabled) {
   is_reporting_enabled_ = is_enabled;
   event_observer_->SetReportingEnabled(is_enabled);
diff --git a/components/reporting/metrics/metric_event_observer_manager.h b/components/reporting/metrics/metric_event_observer_manager.h
index bdf60c9..4f2f8cf 100644
--- a/components/reporting/metrics/metric_event_observer_manager.h
+++ b/components/reporting/metrics/metric_event_observer_manager.h
@@ -13,6 +13,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
+#include "base/time/time.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace reporting {
@@ -33,7 +34,8 @@
       ReportingSettings* reporting_settings,
       const std::string& enable_setting_path,
       bool setting_enabled_default_value,
-      EventDrivenTelemetrySamplerPool* sampler_pool);
+      EventDrivenTelemetrySamplerPool* sampler_pool,
+      base::TimeDelta init_delay = base::TimeDelta());
 
   MetricEventObserverManager(const MetricEventObserverManager& other) = delete;
   MetricEventObserverManager& operator=(
@@ -42,6 +44,8 @@
   virtual ~MetricEventObserverManager();
 
  private:
+  void SetReportingControllerCb();
+
   void SetReportingEnabled(bool is_enabled);
 
   void OnEventObserved(MetricData metric_data);
diff --git a/components/reporting/metrics/metric_event_observer_manager_unittest.cc b/components/reporting/metrics/metric_event_observer_manager_unittest.cc
index 4a5355c..237a43b 100644
--- a/components/reporting/metrics/metric_event_observer_manager_unittest.cc
+++ b/components/reporting/metrics/metric_event_observer_manager_unittest.cc
@@ -11,6 +11,7 @@
 #include <vector>
 
 #include "base/test/task_environment.h"
+#include "base/time/time.h"
 #include "components/reporting/metrics/configured_sampler.h"
 #include "components/reporting/metrics/fakes/fake_event_driven_telemetry_sampler_pool.h"
 #include "components/reporting/metrics/fakes/fake_metric_event_observer.h"
@@ -26,6 +27,7 @@
 namespace {
 
 constexpr char kEventEnableSettingPath[] = "event_enable_path";
+constexpr base::TimeDelta init_delay = base::Minutes(1);
 
 class MetricEventObserverManagerTest : public ::testing::Test {
  public:
@@ -38,7 +40,8 @@
   }
 
  protected:
-  base::test::SingleThreadTaskEnvironment task_environment_;
+  base::test::SingleThreadTaskEnvironment task_environment_{
+      base::test::TaskEnvironment::TimeSource::MOCK_TIME};
 
   std::unique_ptr<test::FakeReportingSettings> settings_;
   std::unique_ptr<test::FakeMetricEventObserver> event_observer_;
@@ -79,6 +82,79 @@
   EXPECT_TRUE(metric_report_queue_->IsEmpty());
 }
 
+TEST_F(MetricEventObserverManagerTest, InitiallyEnabled_Delayed) {
+  settings_->SetBoolean(kEventEnableSettingPath, true);
+  auto* event_observer_ptr = event_observer_.get();
+
+  MetricEventObserverManager event_manager(
+      std::move(event_observer_), metric_report_queue_.get(), settings_.get(),
+      kEventEnableSettingPath, /*setting_enabled_default_value=*/true,
+      /*sampler_pool=*/nullptr, init_delay);
+
+  MetricData metric_data;
+  metric_data.mutable_event_data();
+
+  // `init_delay` not elapsed, reporting enabled value not registered.
+  ASSERT_FALSE(event_observer_ptr->GetReportingEnabled());
+
+  event_observer_ptr->RunCallback(metric_data);
+  ASSERT_TRUE(metric_report_queue_->IsEmpty());
+
+  task_environment_.FastForwardBy(init_delay);
+
+  ASSERT_TRUE(event_observer_ptr->GetReportingEnabled());
+
+  event_observer_ptr->RunCallback(metric_data);
+  MetricData metric_data_reported =
+      metric_report_queue_->GetMetricDataReported();
+  EXPECT_TRUE(metric_data_reported.has_timestamp_ms());
+  EXPECT_TRUE(metric_data_reported.has_event_data());
+
+  // Setting disabled, no more data should be reported even if the callback is
+  // called.
+  settings_->SetBoolean(kEventEnableSettingPath, false);
+
+  event_observer_ptr->RunCallback(metric_data);
+
+  ASSERT_FALSE(event_observer_ptr->GetReportingEnabled());
+  EXPECT_TRUE(metric_report_queue_->IsEmpty());
+}
+
+TEST_F(MetricEventObserverManagerTest, InitiallyDisabled_Delayed) {
+  settings_->SetBoolean(kEventEnableSettingPath, false);
+  auto* event_observer_ptr = event_observer_.get();
+
+  MetricEventObserverManager event_manager(
+      std::move(event_observer_), metric_report_queue_.get(), settings_.get(),
+      kEventEnableSettingPath, /*setting_enabled_default_value=*/true,
+      /*sampler_pool=*/nullptr, init_delay);
+
+  MetricData metric_data;
+  metric_data.mutable_event_data();
+
+  ASSERT_FALSE(event_observer_ptr->GetReportingEnabled());
+
+  event_observer_ptr->RunCallback(metric_data);
+  ASSERT_TRUE(metric_report_queue_->IsEmpty());
+
+  settings_->SetBoolean(kEventEnableSettingPath, true);
+
+  task_environment_.FastForwardBy(init_delay / 2);
+
+  // `init_delay` still not elapsed, reporting enabled value not registered.
+  ASSERT_FALSE(event_observer_ptr->GetReportingEnabled());
+
+  task_environment_.FastForwardBy(init_delay / 2);
+
+  ASSERT_TRUE(event_observer_ptr->GetReportingEnabled());
+
+  event_observer_ptr->RunCallback(metric_data);
+  MetricData metric_data_reported =
+      metric_report_queue_->GetMetricDataReported();
+  EXPECT_TRUE(metric_data_reported.has_timestamp_ms());
+  EXPECT_TRUE(metric_data_reported.has_event_data());
+}
+
 TEST_F(MetricEventObserverManagerTest, InitiallyDisabled) {
   settings_->SetBoolean(kEventEnableSettingPath, false);
   auto* event_observer_ptr = event_observer_.get();
diff --git a/components/signin/public/base/signin_switches.cc b/components/signin/public/base/signin_switches.cc
index 4fc1d78..fc67bc8 100644
--- a/components/signin/public/base/signin_switches.cc
+++ b/components/signin/public/base/signin_switches.cc
@@ -71,6 +71,9 @@
 BASE_FEATURE(kForceStartupSigninPromo,
              "ForceStartupSigninPromo",
              base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kIdentityStatusConsistency,
+             "IdentityStatusConsistency",
+             base::FEATURE_DISABLED_BY_DEFAULT);
 #endif
 
 // Enables a new version of the sync confirmation UI.
diff --git a/components/signin/public/base/signin_switches.h b/components/signin/public/base/signin_switches.h
index 02d9114..a4a22b08 100644
--- a/components/signin/public/base/signin_switches.h
+++ b/components/signin/public/base/signin_switches.h
@@ -39,6 +39,7 @@
 
 #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)
 BASE_DECLARE_FEATURE(kForceStartupSigninPromo);
+BASE_DECLARE_FEATURE(kIdentityStatusConsistency);
 #endif
 #if BUILDFLAG(IS_IOS)
 BASE_DECLARE_FEATURE(kEnableCbdSignOut);
diff --git a/components/spellcheck/browser/spellcheck_platform_win.cc b/components/spellcheck/browser/spellcheck_platform_win.cc
index 3e260e5..1e79bde 100644
--- a/components/spellcheck/browser/spellcheck_platform_win.cc
+++ b/components/spellcheck/browser/spellcheck_platform_win.cc
@@ -25,6 +25,10 @@
 void PlatformSupportsLanguage(PlatformSpellChecker* spell_checker_instance,
                               const std::string& lang_tag,
                               base::OnceCallback<void(bool)> callback) {
+  if (!spell_checker_instance) {
+    std::move(callback).Run(false);
+    return;
+  }
   static_cast<WindowsSpellChecker*>(spell_checker_instance)
       ->IsLanguageSupported(lang_tag, std::move(callback));
 }
@@ -32,12 +36,19 @@
 void SetLanguage(PlatformSpellChecker* spell_checker_instance,
                  const std::string& lang_to_set,
                  base::OnceCallback<void(bool)> callback) {
+  if (!spell_checker_instance) {
+    std::move(callback).Run(false);
+    return;
+  }
   static_cast<WindowsSpellChecker*>(spell_checker_instance)
       ->CreateSpellChecker(lang_to_set, std::move(callback));
 }
 
 void DisableLanguage(PlatformSpellChecker* spell_checker_instance,
                      const std::string& lang_to_disable) {
+  if (!spell_checker_instance) {
+    return;
+  }
   static_cast<WindowsSpellChecker*>(spell_checker_instance)
       ->DisableSpellChecker(lang_to_disable);
 }
@@ -55,6 +66,10 @@
                       int document_tag,
                       const std::u16string& text,
                       TextCheckCompleteCallback callback) {
+  if (!spell_checker_instance) {
+    std::move(callback).Run(std::vector<SpellCheckResult>());
+    return;
+  }
   static_cast<WindowsSpellChecker*>(spell_checker_instance)
       ->RequestTextCheck(document_tag, text, std::move(callback));
 }
@@ -63,6 +78,10 @@
 void GetPerLanguageSuggestions(PlatformSpellChecker* spell_checker_instance,
                                const std::u16string& word,
                                GetSuggestionsCallback callback) {
+  if (!spell_checker_instance) {
+    std::move(callback).Run(spellcheck::PerLanguageSuggestions());
+    return;
+  }
   static_cast<WindowsSpellChecker*>(spell_checker_instance)
       ->GetPerLanguageSuggestions(word, std::move(callback));
 }
@@ -70,6 +89,9 @@
 
 void AddWord(PlatformSpellChecker* spell_checker_instance,
              const std::u16string& word) {
+  if (!spell_checker_instance) {
+    return;
+  }
   static_cast<WindowsSpellChecker*>(spell_checker_instance)
       ->AddWordForAllLanguages(word);
 }
@@ -82,6 +104,9 @@
 
 void IgnoreWord(PlatformSpellChecker* spell_checker_instance,
                 const std::u16string& word) {
+  if (!spell_checker_instance) {
+    return;
+  }
   static_cast<WindowsSpellChecker*>(spell_checker_instance)
       ->IgnoreWordForAllLanguages(word);
 }
@@ -100,6 +125,9 @@
 void AddSpellcheckLanguagesForTesting(
     PlatformSpellChecker* spell_checker_instance,
     const std::vector<std::string>& languages) {
+  if (!spell_checker_instance) {
+    return;
+  }
   static_cast<WindowsSpellChecker*>(spell_checker_instance)
       ->AddSpellcheckLanguagesForTesting(languages);
 }
@@ -131,6 +159,9 @@
 void RecordChromeLocalesStats(PlatformSpellChecker* spell_checker_instance,
                               const std::vector<std::string> chrome_locales,
                               SpellCheckHostMetrics* metrics) {
+  if (!spell_checker_instance) {
+    return;
+  }
   if (spellcheck::WindowsVersionSupportsSpellchecker()) {
     static_cast<WindowsSpellChecker*>(spell_checker_instance)
         ->RecordChromeLocalesStats(std::move(chrome_locales), metrics);
@@ -141,6 +172,9 @@
     PlatformSpellChecker* spell_checker_instance,
     const std::vector<std::string> spellcheck_locales,
     SpellCheckHostMetrics* metrics) {
+  if (!spell_checker_instance) {
+    return;
+  }
   if (spellcheck::WindowsVersionSupportsSpellchecker()) {
     static_cast<WindowsSpellChecker*>(spell_checker_instance)
         ->RecordSpellcheckLocalesStats(std::move(spellcheck_locales), metrics);
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index 7508366..74044467 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1231,6 +1231,7 @@
 <translation id="4132448310531350254">Controladores duplicados de la extensión de archivo <ph name="FILE_EXTENSION" /> a los que hacen referencia las aplicaciones <ph name="POLICY_IDS_LIST" />.</translation>
 <translation id="4134123981501319574">Crear documento</translation>
 <translation id="413544239732274901">Más información</translation>
+<translation id="4140905530744469899">ID de perfil:</translation>
 <translation id="4142935452406587478">Bandeja 10</translation>
 <translation id="4148925816941278100">American Express</translation>
 <translation id="4150099059797363385">Sobre chino n.º 4</translation>
@@ -1354,6 +1355,7 @@
 <translation id="4407755609041463909">Fuego</translation>
 <translation id="4408413947728134509">Cookies: <ph name="NUM_COOKIES" /></translation>
 <translation id="4411435778612100394">Electrónica de consumo</translation>
+<translation id="4412074349188076601">Esta configuración está marcada como instalable, pero no se ha proporcionado ninguna imagen para esta arquitectura, por lo que no se puede instalar.</translation>
 <translation id="4414515549596849729">cookies y datos de sitios</translation>
 <translation id="4415426530740016218">Dirección de recogida</translation>
 <translation id="4424024547088906515">Este servidor no ha podido probar que su dominio es <ph name="DOMAIN" />, Chrome no confía en su certificado de seguridad. Este problema puede deberse a una configuración incorrecta o a que un atacante haya interceptado la conexión.</translation>
@@ -3203,6 +3205,7 @@
 <translation id="9179907736442194268">Recibe alertas por correo electrónico si el precio baja en algún sitio</translation>
 <translation id="9183302530794969518">Documentos de Google</translation>
 <translation id="9183425211371246419">La página <ph name="HOST_NAME" /> utiliza un protocolo no admitido.</translation>
+<translation id="918454845714257218">Comprueba el código que hay en el <ph name="SIDE_OF_CARD" /> y vuelve a intentarlo</translation>
 <translation id="9187461866967718678">Deportes de riesgo</translation>
 <translation id="9191834167571392248">Perforado en la parte inferior izquierda</translation>
 <translation id="9199905725844810519">La impresión está bloqueada</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index bcccccb..4696fdb 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Hindi kailanman nag-save</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Mga Bookmark sa Desktop</translation>
+<translation id="1067561478268651872">Hindi gagamitin ang patakarang <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> maliban na lang kung itatakda ang patakarang <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Huwag kailanman isalin ang mga page sa <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Mga hybrid at alternatibong sasakyan</translation>
 <translation id="1070901266639972381">Gabi</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">Mapanlinlang ang site na ito</translation>
 <translation id="6337133576188860026">Magbabakante ng wala pang <ph name="SIZE" />. Maaaring mag-load nang mas mabagal ang ilang site sa iyong susunod na pagbisita.</translation>
 <translation id="6337534724793800597">I-filter ang mga patakaran ayon sa pangalan</translation>
+<translation id="633770708279464947">Invalid ang value ng <ph name="SECURE_DNS_SALT" /> at hindi ito gagamitin.</translation>
 <translation id="6340739886198108203">Hindi inirerekomenda ng patakaran ng administrator ang pagkuha ng mga screenshot o recording kapag may nakikitang kumpidensyal na content:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Hindi inirerekomenda ng patakaran ng administrator na i-upload ang file na ito sa <ph name="DESTINATION_NAME" />}one{Hindi inirerekomenda ng patakaran ng administrator na i-upload ang mga file na ito sa <ph name="DESTINATION_NAME" />}other{Hindi inirerekomenda ng patakaran ng administrator na i-upload ang mga file na ito sa <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Mga Aktibong Variation</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Buod ng Order, <ph name="TOTAL_LABEL" />, Higit pang Detalye</translation>
 <translation id="8666678546361132282">English</translation>
+<translation id="8671519637524426245">Hindi natutugunan ng value ng <ph name="SECURE_DNS_SALT" /> ang mga requirement sa laki.</translation>
 <translation id="867224526087042813">Lagda</translation>
 <translation id="8672264262457010862">Negosyo at pang-industriya</translation>
 <translation id="8676424191133491403">Walang pagkaantala</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">Button na pamahalaan ang mga paraan ng pagbabayad, pindutin ang Enter para pamahalaan ang iyong mga pagbabayad at ang impormasyon ng credit card sa mga setting ng Chrome</translation>
 <translation id="8922013791253848639">Palaging payagan ang mga ad sa site na ito</translation>
 <translation id="892588693504540538">Punch top right</translation>
+<translation id="8930098617363288380">Walang kaugnayan ang value ng <ph name="SECURE_DNS_SALT" />, at hindi ito gagamitin, maliban na lang kung itatakda ang patakarang <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Real estate</translation>
 <translation id="8931333241327730545">Gusto mo bang i-save ang card na ito sa iyong Google Account?</translation>
 <translation id="8932102934695377596">Nahuhuli ang iyong orasan</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb
index d2bc615..1d9a5c64 100644
--- a/components/strings/components_strings_ka.xtb
+++ b/components/strings/components_strings_ka.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">არასოდეს შენახული</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">სამუშაო დაფის სანიშნები</translation>
+<translation id="1067561478268651872">წესები <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> არ გამოიყენება, თუ <ph name="SECURE_DNS_SALT" /> წესები განუსაზღვრელია.</translation>
 <translation id="1068672505746868501">არასოდეს ითარგმნოს <ph name="SOURCE_LANGUAGE" /> გვერდები</translation>
 <translation id="1070853536588271387">ჰიბრიდული და ალტერნატიული ავტომობილები</translation>
 <translation id="1070901266639972381">ღამე</translation>
@@ -2099,6 +2100,7 @@
 <translation id="6328786501058569169">ეს საიტი შეცდომაში შემყვანია</translation>
 <translation id="6337133576188860026">გამოთავისუფლდება <ph name="SIZE" /> ან ნაკლები. ზოგიერთი საიტი შემდეგი მონახულებისას შეიძლება უფრო ნელა ჩაიტვირთოს.</translation>
 <translation id="6337534724793800597">ფილტრის წესები სახელის მიხედვით</translation>
+<translation id="633770708279464947">მნიშვნელობა <ph name="SECURE_DNS_SALT" /> არასწორია და არ იქნება გამოყენებული.</translation>
 <translation id="6340739886198108203">ადმინისტრატორის წესების მიხედვით, ეკრანის ანაბეჭდების ან ჩანაწერების გაკეთება არ არის რეკომენდებული, როცა ხილულია კონფიდენციალური კონტენტი:</translation>
 <translation id="6341434961864773665">{0,plural, =1{ადმინისტრატორის წესების მიხედვით, ამ ფაილის <ph name="DESTINATION_NAME" />-ზე ატვირთვა რეკომენდებული არ არის}other{ადმინისტრატორის წესების მიხედვით, ამ ფაილების <ph name="DESTINATION_NAME" />-ზე ატვირთვა რეკომენდებული არ არის}}</translation>
 <translation id="6348220984832452017">აქტიური ვარიაციები</translation>
@@ -2994,6 +2996,7 @@
 <translation id="8654126188050905496">55 x 91 მმ</translation>
 <translation id="8663226718884576429">შეკვეთის რეზიუმე, <ph name="TOTAL_LABEL" />, დამატებითი ინფორმაცია</translation>
 <translation id="8666678546361132282">ინგლისური</translation>
+<translation id="8671519637524426245">მნიშვნელობა <ph name="SECURE_DNS_SALT" /> არ აკმაყოფილებს მოთხოვნებს ზომის მიმართ.</translation>
 <translation id="867224526087042813">ხელმოწერა</translation>
 <translation id="8672264262457010862">ბიზნესი და მრეწველობა</translation>
 <translation id="8676424191133491403">დაყოვნების გარეშე</translation>
@@ -3093,6 +3096,7 @@
 <translation id="8913778647360618320">გადახდის მეთოდების მართვის ღილაკი, Chrome-ის პარამეტრებიდან საგადახდო და საკრედიტო ბარათების ინფორმაციის სამართავად დააჭირეთ კლავიშს Enter-ს</translation>
 <translation id="8922013791253848639">ამ საიტზე რეკლამის ყოველთვის დაშვება</translation>
 <translation id="892588693504540538">ზედა მარჯვენა ნაწილის გახვრეტა</translation>
+<translation id="8930098617363288380">მნიშვნელობა <ph name="SECURE_DNS_SALT" /> არ არის რელევანტური და არ იქნება გამოყენებული, თუ <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> წესები განუსაზღვრელია.</translation>
 <translation id="8930330541574156305">უძრავი ქონება</translation>
 <translation id="8931333241327730545">გსურთ ამ ბარათის თქვენს Google ანგარიშში შენახვა?</translation>
 <translation id="8932102934695377596">თქვენი საათი უკანაა</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb
index e17c55ca..f3a6119 100644
--- a/components/strings/components_strings_km.xtb
+++ b/components/strings/components_strings_km.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">មិនដែលបានរក្សាទុក</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">ចំណាំដេស៍ថប</translation>
+<translation id="1067561478268651872">គោលការណ៍ <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> មិន​ត្រូវបាន​ប្រើប្រាស់​ឡើយ ប្រសិនបើគោលការណ៍ <ph name="SECURE_DNS_SALT" /> មិនត្រូវបានកំណត់។</translation>
 <translation id="1068672505746868501">កុំ​បកប្រែ​ទំព័រ​ជាភាសា <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">យានជំនិះ​ហាយប្រ៊ីដ និង​យានជំនិះប្រើ​ថាមពលផ្សេងទៀត</translation>
 <translation id="1070901266639972381">យប់</translation>
@@ -2103,6 +2104,7 @@
 <translation id="6328786501058569169">ទំព័រនេះមានការបោកប្រាស់</translation>
 <translation id="6337133576188860026">បង្កើន​ទំហំផ្ទុក​តិចជាង <ph name="SIZE" /> ។ ទំព័រ​មួយចំនួន​អាចផ្ទុក​យឺតជាងមុន នៅពេលដែលអ្នក​ចូល​លើកក្រោយ។</translation>
 <translation id="6337534724793800597">ត្រងគោលការណ៍តាមឈ្មោះ</translation>
+<translation id="633770708279464947">តម្លៃ <ph name="SECURE_DNS_SALT" /> មិនត្រឹមត្រូវទេ ហើយនឹង​មិន​ត្រូវបាន​ប្រើប្រាស់​ឡើយ។</translation>
 <translation id="6340739886198108203">គោលការណ៍​អ្នកគ្រប់គ្រង​មិនណែនាំឱ្យ​ថតវីដេអូ ឬថតរូបអេក្រង់ទេ នៅពេលអាច​មើលឃើញខ្លឹមសារ​សម្ងាត់៖</translation>
 <translation id="6341434961864773665">{0,plural, =1{គោលការណ៍អ្នកគ្រប់គ្រង​មិន​ណែនាំ​ឱ្យ​បង្ហោះឯកសារ​នេះ​ទៅ​ក្នុង <ph name="DESTINATION_NAME" /> ទេ}other{គោលការណ៍អ្នកគ្រប់គ្រង​មិន​ណែនាំ​ឱ្យ​​បង្ហោះឯកសារ​ទាំង​នេះ​ទៅក្នុង <ph name="DESTINATION_NAME" /> ទេ}}</translation>
 <translation id="6348220984832452017">បម្រែបម្រួលសកម្ម</translation>
@@ -3000,6 +3002,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">ការ​សង្ខេប​អំពី​ការបញ្ជាទិញ, <ph name="TOTAL_LABEL" />, ព័ត៌មាន​លម្អិត​បន្ថែម</translation>
 <translation id="8666678546361132282">ភាសាអង់គ្លេស</translation>
+<translation id="8671519637524426245">តម្លៃ <ph name="SECURE_DNS_SALT" /> មិន​បំពេញ​តាម​លក្ខខណ្ឌ​តម្រូវទំហំ​ទេ។</translation>
 <translation id="867224526087042813">ហត្ថលេខា</translation>
 <translation id="8672264262457010862">អាជីវកម្ម និង​ឧស្សាហកម្ម</translation>
 <translation id="8676424191133491403">គ្មាន​ការ​ពន្យារពេល</translation>
@@ -3099,6 +3102,7 @@
 <translation id="8913778647360618320">ប៊ូតុង "គ្រប់គ្រងវិធីបង់ប្រាក់" ចុច "Enter" ដើម្បីគ្រប់គ្រងការបង់ប្រាក់ និងព័ត៌មានបណ្ណឥណទានរបស់អ្នក​នៅក្នុងការកំណត់ Chrome</translation>
 <translation id="8922013791253848639">អនុញ្ញាត​ការផ្សាយ​ពាណិជ្ជកម្ម​នៅលើ​ទំព័រនេះ​ជានិច្ច</translation>
 <translation id="892588693504540538">ចោះ​ខាងលើ​ផ្នែក​ខាងស្ដាំ</translation>
+<translation id="8930098617363288380">តម្លៃ <ph name="SECURE_DNS_SALT" /> មិនពាក់ព័ន្ធទេ ហើយនឹង​មិន​ត្រូវបានប្រើប្រាស់​ឡើយ ប្រសិនបើគោលការណ៍ <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> មិនត្រូវបានកំណត់។</translation>
 <translation id="8930330541574156305">អចលនទ្រព្យ</translation>
 <translation id="8931333241327730545">តើអ្នកចង់រក្សាទុកកាតនេះទៅគណនី Google របស់អ្នកដែរឬទេ?</translation>
 <translation id="8932102934695377596">ម៉ោងរបស់អ្នកដើរយឺត</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 0d6aaa2..3a8e0c428 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Nu se salvează niciodată</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Marcaje desktop</translation>
+<translation id="1067561478268651872">Politica <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> nu va fi folosită decât dacă se setează politica <ph name="SECURE_DNS_SALT" />.</translation>
 <translation id="1068672505746868501">Nu traduce niciodată paginile în <ph name="SOURCE_LANGUAGE" /></translation>
 <translation id="1070853536588271387">Vehicule hibride și alternative</translation>
 <translation id="1070901266639972381">Noapte</translation>
@@ -2097,6 +2098,7 @@
 <translation id="6328786501058569169">Acest site este înșelător</translation>
 <translation id="6337133576188860026">Eliberează mai puțin de <ph name="SIZE" />. Este posibil ca unele site-uri să se încarce mai lent la următoarea accesare.</translation>
 <translation id="6337534724793800597">Filtrați politicile după nume</translation>
+<translation id="633770708279464947">Valoarea <ph name="SECURE_DNS_SALT" /> este nevalidă și nu va fi folosită.</translation>
 <translation id="6340739886198108203">Politica implementată de administrator nu recomandă să faci capturi de ecran sau înregistrări atunci când este vizibil conținut confidențial:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Politica implementată de administrator nu recomandă să încarci acest fișier în <ph name="DESTINATION_NAME" />}few{Politica implementată de administrator nu recomandă să încarci aceste fișiere în <ph name="DESTINATION_NAME" />}other{Politica implementată de administrator nu recomandă să încarci aceste fișiere în <ph name="DESTINATION_NAME" />}}</translation>
 <translation id="6348220984832452017">Variante active</translation>
@@ -2993,6 +2995,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Rezumatul comenzii, <ph name="TOTAL_LABEL" />, Mai multe detalii</translation>
 <translation id="8666678546361132282">Engleză</translation>
+<translation id="8671519637524426245">Valoarea <ph name="SECURE_DNS_SALT" /> nu respectă cerințele de dimensiune.</translation>
 <translation id="867224526087042813">Semnătura</translation>
 <translation id="8672264262457010862">Afaceri și comerț</translation>
 <translation id="8676424191133491403">Fără întârziere</translation>
@@ -3092,6 +3095,7 @@
 <translation id="8913778647360618320">Butonul Gestionează metodele de plată, apasă pe Enter pentru a gestiona informațiile despre plăți și carduri de credit în setările Chrome</translation>
 <translation id="8922013791253848639">Permite întotdeauna anunțurile pe acest site</translation>
 <translation id="892588693504540538">Perforare în dreapta sus</translation>
+<translation id="8930098617363288380">Valoarea <ph name="SECURE_DNS_SALT" /> nu este relevantă și nu va fi folosită decât dacă se setează politica <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" />.</translation>
 <translation id="8930330541574156305">Imobiliare</translation>
 <translation id="8931333241327730545">Dorești să salvezi acest card în Contul Google?</translation>
 <translation id="8932102934695377596">Ora este setată în trecut</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb
index 7fbed8de6..bc93b8e 100644
--- a/components/strings/components_strings_uz.xtb
+++ b/components/strings/components_strings_uz.xtb
@@ -38,6 +38,7 @@
 <translation id="10614374240317010">Parollar saqlanmaydigan saytlar</translation>
 <translation id="1064054731605354900">A3x5</translation>
 <translation id="106701514854093668">Kompyuterdagi xatcho‘plar</translation>
+<translation id="1067561478268651872"><ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> qoidasi <ph name="SECURE_DNS_SALT" /> sozlanmaguncha ishlatilmaydi.</translation>
 <translation id="1068672505746868501"><ph name="SOURCE_LANGUAGE" /> tilidagi sahifalar hech qachon tarjima qilinmasin</translation>
 <translation id="1070853536588271387">Gibrid va muqobil transport</translation>
 <translation id="1070901266639972381">Tun</translation>
@@ -2093,6 +2094,7 @@
 <translation id="6328786501058569169">Bu – soxta sayt</translation>
 <translation id="6337133576188860026">Xotirada <ph name="SIZE" /> tozalandi. Bundan keyin ba’zi veb-saytlar sekinroq yuklanishi mumkin.</translation>
 <translation id="6337534724793800597">Qoidalarni nomi bo‘yicha filtrlash</translation>
+<translation id="633770708279464947"><ph name="SECURE_DNS_SALT" /> qiymati mos emas va ishlatilmaydi.</translation>
 <translation id="6340739886198108203">Maxfiy kontent koʻringanda administrator skrinshot olish yoki yozib olishni tavsiya qilmaydi:</translation>
 <translation id="6341434961864773665">{0,plural, =1{Administrator bu faylni <ph name="DESTINATION_NAME" />ga yuklashni tavsiya qilmaydi}other{Administrator bu fayllarni <ph name="DESTINATION_NAME" />ga yuklashni tavsiya qilmaydi}}</translation>
 <translation id="6348220984832452017">Joriy oʻzgarishlar</translation>
@@ -2988,6 +2990,7 @@
 <translation id="8654126188050905496">55 x 91 mm</translation>
 <translation id="8663226718884576429">Buyurtma axboroti, <ph name="TOTAL_LABEL" />, Batafsil</translation>
 <translation id="8666678546361132282">Ingliz tili</translation>
+<translation id="8671519637524426245"><ph name="SECURE_DNS_SALT" /> qiymati oʻlcham talablariga mos emas.</translation>
 <translation id="867224526087042813">Imzo</translation>
 <translation id="8672264262457010862">Biznes va sanoat</translation>
 <translation id="8676424191133491403">Kechikishsiz</translation>
@@ -3087,6 +3090,7 @@
 <translation id="8913778647360618320">Toʻlov usullarini boshqarish tugmasi, Chrome sozlamalari orqali toʻlov va kredit karta axborotini boshqarish uchun Enter tugmasini bosing</translation>
 <translation id="8922013791253848639">Bu saytda har doim reklama ko‘rsatilsin</translation>
 <translation id="892588693504540538">Yuqori oʻngdan teshik ochish</translation>
+<translation id="8930098617363288380"><ph name="SECURE_DNS_SALT" /> qiymati mos emas va <ph name="SECURE_DNS_TEMPLATES_WITH_IDENTIFIERS" /> qoidasi sozlanmaguncha ishlatilmaydi.</translation>
 <translation id="8930330541574156305">Koʻchmas mulk</translation>
 <translation id="8931333241327730545">Ushbu karta Google hisobingizda saqlansinmi?</translation>
 <translation id="8932102934695377596">Soatingiz orqada</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb
index 3b40637..751c580 100644
--- a/components/strings/components_strings_zh-HK.xtb
+++ b/components/strings/components_strings_zh-HK.xtb
@@ -1230,7 +1230,7 @@
 <translation id="4132448310531350254">應用程式「<ph name="POLICY_IDS_LIST" />」參照的 file_extension「<ph name="FILE_EXTENSION" />」被指派給多個處理常式。</translation>
 <translation id="4134123981501319574">建立文件</translation>
 <translation id="413544239732274901">瞭解詳情</translation>
-<translation id="4140905530744469899">個人資料 ID:</translation>
+<translation id="4140905530744469899">設定檔 ID:</translation>
 <translation id="4142935452406587478">紙匣 10</translation>
 <translation id="4148925816941278100">American Express</translation>
 <translation id="4150099059797363385">Chinese #4 信封</translation>
@@ -1354,7 +1354,7 @@
 <translation id="4407755609041463909">火</translation>
 <translation id="4408413947728134509">Cookie <ph name="NUM_COOKIES" /></translation>
 <translation id="4411435778612100394">消費電子產品</translation>
-<translation id="4412074349188076601">這項設定標示為可安裝,但沒有映像檔可供這個架構使用,因此無法安裝。</translation>
+<translation id="4412074349188076601">此設定已標記為可安裝,但沒有映像可供此架構使用,因此無法安裝。</translation>
 <translation id="4414515549596849729">Cookie 和網站數據</translation>
 <translation id="4415426530740016218">取貨地址</translation>
 <translation id="4424024547088906515">伺服器無法證明其屬於 <ph name="DOMAIN" /> 網域;其安全性憑證未取得 Chrome 的信任。這可能是因為設定錯誤,或有攻擊者攔截您的連線。</translation>
@@ -3204,7 +3204,7 @@
 <translation id="9179907736442194268">如果產品在任何網站上降價,系統將向您傳送電郵警示</translation>
 <translation id="9183302530794969518">Google 文件</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> 使用不支援的通訊協定。</translation>
-<translation id="918454845714257218">請確認<ph name="SIDE_OF_CARD" />的安全碼,然後再試一次</translation>
+<translation id="918454845714257218">請檢查<ph name="SIDE_OF_CARD" />的安全碼,並再試一次</translation>
 <translation id="9187461866967718678">極限運動</translation>
 <translation id="9191834167571392248">打孔 (左下方)</translation>
 <translation id="9199905725844810519">已封鎖列印功能</translation>
diff --git a/components/test/data/payments/manifest_no_icon.json b/components/test/data/payments/manifest_no_icon.json
deleted file mode 100644
index 149d416..0000000
--- a/components/test/data/payments/manifest_no_icon.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "name": "Test",
-  "icons": []
-}
diff --git a/components/test/data/payments/payment_handler_installer_no_icon.html b/components/test/data/payments/payment_handler_installer_no_icon.html
deleted file mode 100644
index b554885..0000000
--- a/components/test/data/payments/payment_handler_installer_no_icon.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<!--
-Copyright 2020 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-<html lang="en">
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5">
-<title>Payment Handler Installer</title>
-<!-- This manifest does not specify a default icon for the app -->
-<link rel="manifest" href="manifest_no_icon.json">
-</head>
-<body>
-<script src="payment_handler_installer.js"></script>
-</body>
-</html>
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
index 587cf9e..7a35ec00 100644
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -33,14 +33,6 @@
 
 namespace features {
 
-// Enables the use of power hint APIs on Android.
-BASE_FEATURE(kAdpf, "Adpf", base::FEATURE_DISABLED_BY_DEFAULT);
-
-// Target duration used for power hint on Android.
-// `0` indicates use hard coded default.
-const base::FeatureParam<int> kAdpfTargetDurationMs{&kAdpf,
-                                                    "AdpfTargetDurationMs", 0};
-
 BASE_FEATURE(kEnableOverlayPrioritization,
              "EnableOverlayPrioritization",
 #if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -242,11 +234,6 @@
 #endif
 );
 
-bool IsAdpfEnabled() {
-  // TODO(crbug.com/1157620): Limit this to correct android version.
-  return base::FeatureList::IsEnabled(kAdpf);
-}
-
 bool IsOverlayPrioritizationEnabled() {
 #if BUILDFLAG(IS_CHROMEOS_LACROS)
   // DelegatedCompositing in Lacros makes this feature a no-op.
diff --git a/components/viz/common/features.h b/components/viz/common/features.h
index 4e3a869..2183fa7 100644
--- a/components/viz/common/features.h
+++ b/components/viz/common/features.h
@@ -19,8 +19,6 @@
 
 namespace features {
 
-VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kAdpf);
-VIZ_COMMON_EXPORT extern const base::FeatureParam<int> kAdpfTargetDurationMs;
 VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kEnableOverlayPrioritization);
 VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kDelegatedCompositing);
 VIZ_COMMON_EXPORT BASE_DECLARE_FEATURE(kRecordSkPicture);
@@ -75,7 +73,6 @@
 VIZ_COMMON_EXPORT extern const char kPredictorLinear2[];
 VIZ_COMMON_EXPORT extern const char kPredictorLsq[];
 
-VIZ_COMMON_EXPORT bool IsAdpfEnabled();
 VIZ_COMMON_EXPORT bool IsSimpleFrameRateThrottlingEnabled();
 #if BUILDFLAG(IS_ANDROID)
 VIZ_COMMON_EXPORT bool IsDynamicColorGamutEnabled();
diff --git a/components/viz/service/display/display_scheduler.cc b/components/viz/service/display/display_scheduler.cc
index 2895f2b0b..11495ed 100644
--- a/components/viz/service/display/display_scheduler.cc
+++ b/components/viz/service/display/display_scheduler.cc
@@ -20,10 +20,6 @@
 namespace {
 
 base::TimeDelta ComputeAdpfTarget(const BeginFrameArgs& args) {
-  int target_ms = features::kAdpfTargetDurationMs.Get();
-  if (target_ms > 0 && target_ms <= 1000) {
-    return base::Milliseconds(target_ms);
-  }
   if (args.possible_deadlines) {
     const auto& deadline = args.possible_deadlines->GetPreferredDeadline();
     // Arbitrarily use 75% of the deadline for CPU work.
diff --git a/components/viz/service/main/viz_compositor_thread_runner_impl.cc b/components/viz/service/main/viz_compositor_thread_runner_impl.cc
index 05fc6258..42e9d30 100644
--- a/components/viz/service/main/viz_compositor_thread_runner_impl.cc
+++ b/components/viz/service/main/viz_compositor_thread_runner_impl.cc
@@ -119,7 +119,7 @@
   auto hint_session_factory = HintSessionFactory::Create(std::move(thread_ids));
   // Written this way so finch only considers the experiment active on device
   // which supports hint session.
-  if (hint_session_factory && features::IsAdpfEnabled()) {
+  if (hint_session_factory) {
     hint_session_factory_ = std::move(hint_session_factory);
     *wake_up_closure = base::BindPostTask(
         task_runner_,
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java
index 1f75d6a..5df64cc 100644
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java
@@ -134,6 +134,18 @@
             return;
         }
 
+        // Currently discoverable credentials on Android do not support the payment bit. To avoid
+        // requiring per-platform code in a developer website, we map residentKey=preferred to
+        // discouraged here if the payment extension is present.
+        //
+        // See https://crbug.com/1393662
+        if (options.isPaymentCredentialCreation) {
+            // Earlier code should reject an attempt by a developer to use residentKey=required or
+            // discouraged on Android - only preferred should have made it this far.
+            assert options.authenticatorSelection.residentKey == ResidentKeyRequirement.PREFERRED;
+            options.authenticatorSelection.residentKey = ResidentKeyRequirement.DISCOURAGED;
+        }
+
         // Attestation is only for non-discoverable credentials in the Android
         // platform authenticator and discoverable credentials aren't supported
         // on security keys. There was a bug where discoverable credentials
diff --git a/content/app/content_main_runner_impl_browsertest.cc b/content/app/content_main_runner_impl_browsertest.cc
new file mode 100644
index 0000000..ee2c99f
--- /dev/null
+++ b/content/app/content_main_runner_impl_browsertest.cc
@@ -0,0 +1,277 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <string>
+#include <utility>
+
+#include "base/command_line.h"
+#include "base/feature_list.h"
+#include "base/functional/overloaded.h"
+#include "base/strings/string_piece.h"
+#include "base/task/thread_pool/thread_pool_instance.h"
+#include "build/build_config.h"
+#include "content/public/app/content_main_delegate.h"
+#include "content/public/browser/content_browser_client.h"
+#include "content/public/common/content_client.h"
+#include "content/public/common/main_function_params.h"
+#include "content/public/gpu/content_gpu_client.h"
+#include "content/public/renderer/content_renderer_client.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/content_browser_test.h"
+#include "content/public/test/content_browser_test_shell_main_delegate.h"
+#include "content/public/utility/content_utility_client.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+#include "third_party/abseil-cpp/absl/types/variant.h"
+
+namespace variations {
+class VariationsIdsProvider;
+}
+
+namespace content {
+
+namespace {
+
+using ::testing::_;
+using ::testing::AtMost;
+using ::testing::DoAll;
+using ::testing::Invoke;
+using ::testing::Return;
+using InvokedIn = ContentMainDelegate::InvokedIn;
+using VariationsIdsProvider = variations::VariationsIdsProvider;
+
+// Mocks only the cross-platform methods of ContentMainDelegate. Also calls the
+// parent implementation of each method, since the test setup may depend on it.
+class MockContentMainDelegate : public ContentBrowserTestShellMainDelegate {
+ public:
+  using Super = ContentBrowserTestShellMainDelegate;
+
+  MOCK_METHOD(absl::optional<int>, MockBasicStartupComplete, ());
+  absl::optional<int> BasicStartupComplete() override {
+    absl::optional<int> result = MockBasicStartupComplete();
+    // Check for early exit code.
+    if (result.has_value())
+      return result;
+    return Super::BasicStartupComplete();
+  }
+
+  MOCK_METHOD(void, MockPreSandboxStartup, ());
+  void PreSandboxStartup() override {
+    MockPreSandboxStartup();
+    Super::PreSandboxStartup();
+  }
+
+  MOCK_METHOD(void, MockSandboxInitialized, (const std::string&));
+  void SandboxInitialized(const std::string& process_type) override {
+    MockSandboxInitialized(process_type);
+    Super::SandboxInitialized(process_type);
+  }
+
+  // The return value of RunProcess is platform-dependent and the startup
+  // sequence depends heavily on it, so don't allow it to be mocked.
+  MOCK_METHOD(void, MockRunProcess, (const std::string&, MainFunctionParams));
+  absl::variant<int, MainFunctionParams> RunProcess(
+      const std::string& process_type,
+      MainFunctionParams main_function_params) override {
+    // MainFunctionParams is move-only so pass a dummy to the mock.
+    MainFunctionParams dummy_main_function_params(
+        base::CommandLine::ForCurrentProcess());
+    MockRunProcess(process_type, std::move(dummy_main_function_params));
+    return Super::RunProcess(process_type, std::move(main_function_params));
+  }
+
+  MOCK_METHOD(void, MockProcessExiting, (const std::string&));
+  void ProcessExiting(const std::string& process_type) override {
+    MockProcessExiting(process_type);
+    Super::ProcessExiting(process_type);
+  }
+
+  // The return value of ShouldLockSchemeRegistry is dangerous to override so
+  // don't allow it to be mocked.
+  MOCK_METHOD(void, MockShouldLockSchemeRegistry, ());
+  bool ShouldLockSchemeRegistry() override {
+    MockShouldLockSchemeRegistry();
+    return Super::ShouldLockSchemeRegistry();
+  }
+
+  MOCK_METHOD(absl::optional<int>, MockPreBrowserMain, ());
+  absl::optional<int> PreBrowserMain() override {
+    absl::optional<int> result = MockPreBrowserMain();
+    // Check for early exit code.
+    if (result.has_value())
+      return result;
+    return Super::PreBrowserMain();
+  }
+
+  // No need to call the parent delegate for these methods since they have no
+  // side effects.
+  MOCK_METHOD(bool, ShouldCreateFeatureList, (InvokedIn), (override));
+  MOCK_METHOD(bool, ShouldInitializeMojo, (InvokedIn), (override));
+
+  MOCK_METHOD(VariationsIdsProvider*, MockCreateVariationsIdsProvider, ());
+  VariationsIdsProvider* CreateVariationsIdsProvider() override {
+    VariationsIdsProvider* result = MockCreateVariationsIdsProvider();
+    if (result)
+      return result;
+    return Super::CreateVariationsIdsProvider();
+  }
+
+  MOCK_METHOD(absl::optional<int>, MockPostEarlyInitialization, (InvokedIn));
+  absl::optional<int> PostEarlyInitialization(InvokedIn invoked_in) override {
+    absl::optional<int> result = MockPostEarlyInitialization(invoked_in);
+    // Check for early exit code.
+    if (result.has_value())
+      return result;
+    return Super::PostEarlyInitialization(invoked_in);
+  }
+
+  MOCK_METHOD(ContentClient*, MockCreateContentClient, ());
+  ContentClient* CreateContentClient() override {
+    ContentClient* result = MockCreateContentClient();
+    if (result)
+      return result;
+    return Super::CreateContentClient();
+  }
+
+  MOCK_METHOD(ContentBrowserClient*, MockCreateContentBrowserClient, ());
+  ContentBrowserClient* CreateContentBrowserClient() override {
+    ContentBrowserClient* result = MockCreateContentBrowserClient();
+    if (result)
+      return result;
+    return Super::CreateContentBrowserClient();
+  }
+
+  MOCK_METHOD(ContentGpuClient*, MockCreateContentGpuClient, ());
+  ContentGpuClient* CreateContentGpuClient() override {
+    ContentGpuClient* result = MockCreateContentGpuClient();
+    if (result)
+      return result;
+    return Super::CreateContentGpuClient();
+  }
+
+  MOCK_METHOD(ContentRendererClient*, MockCreateContentRendererClient, ());
+  ContentRendererClient* CreateContentRendererClient() override {
+    ContentRendererClient* result = MockCreateContentRendererClient();
+    if (result)
+      return result;
+    return Super::CreateContentRendererClient();
+  }
+
+  MOCK_METHOD(ContentUtilityClient*, MockCreateContentUtilityClient, ());
+  ContentUtilityClient* CreateContentUtilityClient() override {
+    ContentUtilityClient* result = MockCreateContentUtilityClient();
+    if (result)
+      return result;
+    return Super::CreateContentUtilityClient();
+  }
+};
+
+MATCHER_P(InvokedInMatcher, process_type, "") {
+  // `arg` is an absl::variant. Return true if the type held by the variant is
+  // correct for `process_type` (empty means the browser process).
+  return absl::visit(base::Overloaded{
+                         [&](ContentMainDelegate::InvokedInBrowserProcess) {
+                           return process_type.empty();
+                         },
+                         [&](ContentMainDelegate::InvokedInChildProcess) {
+                           return !process_type.empty();
+                         },
+                     },
+                     arg);
+}
+
+// Tests that methods of ContentMainDelegate are called in the expected order.
+class ContentMainRunnerImplBrowserTest : public ContentBrowserTest {
+ protected:
+  using Self = ContentMainRunnerImplBrowserTest;
+  using Super = ContentBrowserTest;
+
+  void SetUp() override {
+    // Empty process name means the browser process.
+    const std::string kBrowserProcessType = "";
+
+    // These methods may or may not be called, depending on configuration.
+    EXPECT_CALL(mock_delegate_, MockShouldLockSchemeRegistry())
+        .Times(AtMost(1));
+    EXPECT_CALL(mock_delegate_, MockCreateVariationsIdsProvider())
+        .Times(AtMost(1));
+    // CreateContentClient() is only called if GetContentClient() returns null.
+    EXPECT_CALL(mock_delegate_, MockCreateContentClient()).Times(AtMost(1));
+
+    // ContentBrowserTestShellMainDelegate calls these internally, so allow
+    // extra calls to them out of sequence.
+    EXPECT_CALL(mock_delegate_, ShouldCreateFeatureList(_))
+        .WillRepeatedly(Return(true));
+    EXPECT_CALL(mock_delegate_, ShouldInitializeMojo(_))
+        .WillRepeatedly(Return(true));
+
+    // Expect the following entry points to be called, in order.
+    //
+    // BrowserTestBase::SetUp() calls ContentMain(), which instantiates a
+    // ContentMainRunnerImpl, which calls the entry points in
+    // ContentMainDelegate. So test expectations must be installed before
+    // calling the inherited SetUp().
+    ::testing::InSequence s;
+    EXPECT_CALL(mock_delegate_, MockBasicStartupComplete())
+        .WillOnce(DoAll(
+            // Test the starting state of ContentMainRunnerImpl.
+            Invoke(this, &Self::TestBasicStartupComplete),
+            Return(absl::nullopt)));
+    EXPECT_CALL(mock_delegate_, MockCreateContentBrowserClient());
+    EXPECT_CALL(mock_delegate_, MockPreSandboxStartup());
+    EXPECT_CALL(mock_delegate_, MockSandboxInitialized(kBrowserProcessType));
+    EXPECT_CALL(mock_delegate_,
+                ShouldCreateFeatureList(InvokedInMatcher(kBrowserProcessType)))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_delegate_,
+                ShouldInitializeMojo(InvokedInMatcher(kBrowserProcessType)))
+        .WillOnce(Return(true));
+    EXPECT_CALL(mock_delegate_, MockPreBrowserMain())
+        .WillOnce(Return(absl::nullopt));
+    EXPECT_CALL(mock_delegate_, MockPostEarlyInitialization(
+                                    InvokedInMatcher(kBrowserProcessType)))
+        .WillOnce(DoAll(Invoke(this, &Self::TestPostEarlyInitialization),
+                        Return(absl::nullopt)));
+    EXPECT_CALL(mock_delegate_, MockRunProcess(kBrowserProcessType, _));
+#if !BUILDFLAG(IS_ANDROID)
+    // Android never calls ProcessExiting, since it leaks its ContentMainRunner
+    // and ProcessExiting is called from the destructor.
+    EXPECT_CALL(mock_delegate_, MockProcessExiting(kBrowserProcessType));
+#endif
+
+    // This will call ContentMain(), which should satisfy the expectations
+    // above.
+    Super::SetUp();
+  }
+
+  ContentMainDelegate* GetOptionalContentMainDelegateOverride() override {
+    return &mock_delegate_;
+  }
+
+  void TestBasicStartupComplete() {
+    // The PostEarlyInitialization test checks that ContentMainRunnerImpl set up
+    // the ThreadPoolInstance and FeatureList. These tests would be invalid if
+    // they already exist before starting.
+    EXPECT_FALSE(base::ThreadPoolInstance::Get());
+    EXPECT_FALSE(base::FeatureList::GetInstance());
+  }
+
+  void TestPostEarlyInitialization() {
+    // ContentMainRunnerImpl should have set up the ThreadPoolInstance and
+    // FeatureList by this point.
+    EXPECT_TRUE(base::ThreadPoolInstance::Get());
+    EXPECT_TRUE(base::FeatureList::GetInstance());
+  }
+
+  ::testing::StrictMock<MockContentMainDelegate> mock_delegate_;
+};
+
+IN_PROC_BROWSER_TEST_F(ContentMainRunnerImplBrowserTest, StartupSequence) {
+  // All of the work is done in SetUp().
+}
+
+}  // namespace
+
+}  // namespace content
diff --git a/content/browser/payments/payment_app_provider_impl.cc b/content/browser/payments/payment_app_provider_impl.cc
index 65657c1..7e015e5a 100644
--- a/content/browser/payments/payment_app_provider_impl.cc
+++ b/content/browser/payments/payment_app_provider_impl.cc
@@ -77,6 +77,24 @@
   }
 }
 
+std::string EncodeIcon(const SkBitmap& app_icon) {
+  std::string string_encoded_icon;
+  if (app_icon.empty())
+    return string_encoded_icon;
+
+  gfx::Image decoded_image = gfx::Image::CreateFrom1xBitmap(app_icon);
+  scoped_refptr<base::RefCountedMemory> raw_data = decoded_image.As1xPNGBytes();
+  base::Base64Encode(
+      base::StringPiece(raw_data->front_as<char>(), raw_data->size()),
+      &string_encoded_icon);
+  return string_encoded_icon;
+}
+
+void CheckRegistrationSuccess(base::OnceCallback<void(bool success)> callback,
+                              int64_t registration_id) {
+  std::move(callback).Run(/*success=*/registration_id >= 0);
+}
+
 }  // namespace
 
 // static
@@ -181,18 +199,8 @@
         /*instance_id=*/event_data->payment_request_id, data);
   }
 
-  std::string string_encoded_icon;
-  if (!app_icon.empty()) {
-    gfx::Image decoded_image = gfx::Image::CreateFrom1xBitmap(app_icon);
-    scoped_refptr<base::RefCountedMemory> raw_data =
-        decoded_image.As1xPNGBytes();
-    base::Base64Encode(
-        base::StringPiece(raw_data->front_as<char>(), raw_data->size()),
-        &string_encoded_icon);
-  }
-
   PaymentAppInstaller::Install(
-      payment_request_web_contents_, app_name, string_encoded_icon, sw_js_url,
+      payment_request_web_contents_, app_name, EncodeIcon(app_icon), sw_js_url,
       sw_scope, sw_use_cache, method, supported_delegations,
       base::BindOnce(&PaymentAppProviderImpl::OnInstallPaymentApp,
                      weak_ptr_factory_.GetWeakPtr(), sw_origin,
@@ -310,6 +318,24 @@
   event_dispatcher_->OnClosingOpenedWindow(reason);
 }
 
+void PaymentAppProviderImpl::InstallPaymentAppForTesting(
+    const SkBitmap& app_icon,
+    const GURL& service_worker_javascript_file_url,
+    const GURL& service_worker_scope,
+    const std::string& payment_method_identifier,
+    base::OnceCallback<void(bool success)> callback) {
+  CHECK(service_worker_javascript_file_url.is_valid());
+  CHECK(service_worker_scope.is_valid());
+  CHECK(!payment_method_identifier.empty());
+
+  PaymentAppInstaller::Install(
+      payment_request_web_contents_, /*app_name=*/"Test App Name",
+      EncodeIcon(app_icon), service_worker_javascript_file_url,
+      service_worker_scope, /*use_cache=*/false, payment_method_identifier,
+      content::SupportedDelegations(),
+      base::BindOnce(&CheckRegistrationSuccess, std::move(callback)));
+}
+
 scoped_refptr<DevToolsBackgroundServicesContextImpl>
 PaymentAppProviderImpl::GetDevTools(const url::Origin& sw_origin) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
diff --git a/content/browser/payments/payment_app_provider_impl.h b/content/browser/payments/payment_app_provider_impl.h
index eeb94aed..81d822f7 100644
--- a/content/browser/payments/payment_app_provider_impl.h
+++ b/content/browser/payments/payment_app_provider_impl.h
@@ -66,6 +66,13 @@
   void OnClosingOpenedWindow(
       payments::mojom::PaymentEventResponseType reason) override;
 
+  void InstallPaymentAppForTesting(
+      const SkBitmap& app_icon,
+      const GURL& sw_js_url,
+      const GURL& sw_scope,
+      const std::string& method,
+      base::OnceCallback<void(bool success)> callback) override;
+
  private:
   explicit PaymentAppProviderImpl(WebContents* payment_request_web_contents);
   friend class WebContentsUserData<PaymentAppProviderImpl>;
diff --git a/content/browser/preloading/prerender/prerender_browsertest.cc b/content/browser/preloading/prerender/prerender_browsertest.cc
index bd93e45..5af2d947 100644
--- a/content/browser/preloading/prerender/prerender_browsertest.cc
+++ b/content/browser/preloading/prerender/prerender_browsertest.cc
@@ -4793,6 +4793,81 @@
   }
 }
 
+// Tests that prerendering in a new tab multiple times and activating one of
+// them succeed.
+IN_PROC_BROWSER_TEST_F(PrerenderSequentialPrerenderingBrowserTest,
+                       MultipleNewTabPrerendering) {
+  GURL initial_url = GetUrl("/simple_links.html");
+  std::vector<GURL> prerendering_urls = {GetUrl("/title2.html"),
+                                         GetUrl("/title2.html?2"),
+                                         GetUrl("/title2.html?3")};
+
+  // Navigate to an initial page which has a link to `prerendering_urls[0]`.
+  ASSERT_TRUE(NavigateToURL(shell(), initial_url));
+
+  // Start prerendering.
+  TestNavigationObserver nav_observer(prerendering_urls[2]);
+  nav_observer.StartWatchingNewWebContents();
+  for (const GURL& prerendering_url : prerendering_urls) {
+    AddPrerenderWithTargetHintAsync(prerendering_url, "_blank");
+  }
+  nav_observer.WaitForNavigationFinished();
+  EXPECT_EQ(nav_observer.last_navigation_url(), prerendering_urls[2]);
+
+  // Make sure that prerendering in a new tab creates new PrerenderHost and
+  // new WebContentsImpl every time.
+  std::vector<PrerenderHost*> prerender_hosts;
+  std::vector<WebContentsImpl*> prerender_web_contents_impls;
+  for (const GURL& prerendering_url : prerendering_urls) {
+    PrerenderHost* prerender_host =
+        web_contents_impl()
+            ->GetPrerenderHostRegistry()
+            ->FindHostByUrlForTesting(prerendering_url);
+    ASSERT_TRUE(prerender_host);
+    EXPECT_FALSE(base::Contains(prerender_hosts, prerender_host));
+    prerender_hosts.push_back(prerender_host);
+
+    auto* prerender_web_contents_impl = WebContentsImpl::FromFrameTreeNode(
+        prerender_host->GetPrerenderFrameTree().root());
+    ASSERT_TRUE(prerender_web_contents_impl);
+    EXPECT_NE(prerender_web_contents_impl, web_contents_impl());
+    ExpectWebContentsIsForNewTabPrerendering(*prerender_web_contents_impl);
+
+    // Prerendering in a new tab should create a new WebContentsImpl, not reuse
+    // existing WebContentsImpl.
+    EXPECT_FALSE(base::Contains(prerender_web_contents_impls,
+                                prerender_web_contents_impl));
+    prerender_web_contents_impls.push_back(prerender_web_contents_impl);
+  }
+  ASSERT_EQ(prerender_hosts.size(), prerendering_urls.size());
+  ASSERT_EQ(prerender_web_contents_impls.size(), prerendering_urls.size());
+
+  // Click the link to prerendering_urls[0]. This should activate
+  // prerender_hosts[0].
+  test::PrerenderHostObserver prerender_observer(
+      *prerender_web_contents_impls[0],
+      prerender_hosts[0]->frame_tree_node_id());
+  const std::string kLinkClickScript = R"(
+      clickSameSiteNewWindowLink();
+  )";
+  EXPECT_TRUE(ExecJs(web_contents(), kLinkClickScript));
+  prerender_observer.WaitForActivation();
+  EXPECT_EQ(prerender_web_contents_impls[0]->GetLastCommittedURL(),
+            prerendering_urls[0]);
+  EXPECT_TRUE(prerender_observer.was_activated());
+
+  // prerender_hosts[0] was consumed for activation, but others were not.
+  EXPECT_FALSE(HasHostForUrl(prerendering_urls[0]));
+  EXPECT_TRUE(HasHostForUrl(prerendering_urls[1]));
+  EXPECT_TRUE(HasHostForUrl(prerendering_urls[2]));
+
+  ExpectFinalStatusForSpeculationRule(PrerenderFinalStatus::kActivated);
+
+  // The navigation occurred in a new WebContents, so the original WebContents
+  // should still be showing the initial trigger page.
+  EXPECT_EQ(web_contents()->GetLastCommittedURL(), initial_url);
+}
+
 // TODO(crbug.com/1356907): Remove this and merge it to PrerenderBrowserTest
 // once kPrerender2InBackground is enabled by default.
 class PrerenderHostRegistryInBackgroundTest : public PrerenderBrowserTest {
diff --git a/content/public/browser/payment_app_provider.h b/content/public/browser/payment_app_provider.h
index d245d2b0..42c10ed0 100644
--- a/content/public/browser/payment_app_provider.h
+++ b/content/public/browser/payment_app_provider.h
@@ -92,6 +92,15 @@
   virtual void OnClosingOpenedWindow(
       payments::mojom::PaymentEventResponseType reason) = 0;
 
+  // A test-only method for installing a service worker based payment app.
+  // Invokes the `callback` when done.
+  virtual void InstallPaymentAppForTesting(
+      const SkBitmap& app_icon,
+      const GURL& service_worker_javascript_file_url,
+      const GURL& service_worker_scope,
+      const std::string& payment_method_identifier,
+      base::OnceCallback<void(bool success)> callback) = 0;
+
  protected:
   virtual ~PaymentAppProvider() = default;
 };
diff --git a/content/public/test/browser_test_base.cc b/content/public/test/browser_test_base.cc
index 99a8fef..8218069 100644
--- a/content/public/test/browser_test_base.cc
+++ b/content/public/test/browser_test_base.cc
@@ -54,6 +54,7 @@
 #include "content/browser/tracing/startup_tracing_controller.h"
 #include "content/browser/tracing/tracing_controller_impl.h"
 #include "content/public/app/content_main.h"
+#include "content/public/app/initialize_mojo_core.h"
 #include "content/public/browser/browser_main_parts.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
@@ -563,6 +564,11 @@
   content_main_params.ui_task = base::BindOnce(
       &BrowserTestBase::ProxyRunTestOnMainThreadLoop, base::Unretained(this));
 
+  ContentMainDelegate* overridden_delegate =
+      GetOptionalContentMainDelegateOverride();
+  if (overridden_delegate)
+    content_main_params.delegate = overridden_delegate;
+
 #if !BUILDFLAG(IS_ANDROID)
   // ContentMain which goes through the normal browser initialization paths
   // and will invoke `content_main_params.ui_task`, which runs the test.
@@ -580,9 +586,11 @@
   base::i18n::AllowMultipleInitializeCallsForTesting();
   base::i18n::InitializeICU();
 
-  // The delegate should have been set by JNI_OnLoad for the test target.
+  // The ContentMainDelegate and ContentClient should have been set by
+  // JNI_OnLoad for the test target.
   ContentMainDelegate* delegate = content_main_params.delegate;
-  DCHECK(delegate);
+  ASSERT_TRUE(delegate);
+  ASSERT_TRUE(GetContentClientForTesting());
 
   absl::optional<int> startup_error = delegate->BasicStartupComplete();
   ASSERT_FALSE(startup_error.has_value());
@@ -599,14 +607,18 @@
     ui::RegisterPathProvider();
 
     delegate->PreSandboxStartup();
+    delegate->SandboxInitialized("");
 
     const ContentMainDelegate::InvokedInBrowserProcess invoked_in_browser{
         .is_running_test = true};
     DCHECK(!field_trial_list_);
     if (delegate->ShouldCreateFeatureList(invoked_in_browser))
       field_trial_list_ = SetUpFieldTrialsAndFeatureList();
+    if (delegate->ShouldInitializeMojo(invoked_in_browser))
+      InitializeMojoCore();
 
-    base::ThreadPoolInstance::Create("Browser");
+    const bool has_thread_pool =
+        GetContentClientForTesting()->browser()->CreateThreadPool("Browser");
 
     absl::optional<int> pre_browser_main_exit_code = delegate->PreBrowserMain();
     ASSERT_FALSE(pre_browser_main_exit_code.has_value());
@@ -623,7 +635,9 @@
         delegate->PostEarlyInitialization(invoked_in_browser);
     ASSERT_FALSE(post_early_initialization_exit_code.has_value());
 
-    StartBrowserThreadPool();
+    if (has_thread_pool)
+      StartBrowserThreadPool();
+
     BrowserTaskExecutor::PostFeatureListSetup();
     tracing::InitTracingPostThreadPoolStartAndFeatureList(
         /* enable_consumer */ true);
@@ -1116,4 +1130,8 @@
   CreatedBrowserMainParts(browser_main_parts);
 }
 
+ContentMainDelegate* BrowserTestBase::GetOptionalContentMainDelegateOverride() {
+  return nullptr;
+}
+
 }  // namespace content
diff --git a/content/public/test/browser_test_base.h b/content/public/test/browser_test_base.h
index 42da0cf..f5a2ae7 100644
--- a/content/public/test/browser_test_base.h
+++ b/content/public/test/browser_test_base.h
@@ -49,6 +49,7 @@
 
 namespace content {
 class BrowserMainParts;
+class ContentMainDelegate;
 class WebContents;
 
 class BrowserTestBase : public ::testing::Test {
@@ -129,6 +130,11 @@
   // PreEarlyInitialization() has been called.
   virtual void CreatedBrowserMainParts(BrowserMainParts* browser_main_parts) {}
 
+  // Returns a custom ContentMainDelegate to use for the test, or nullptr to use
+  // the standard delegate. The returned object must live at least until
+  // TearDownInProcessBrowserTextFixture is called.
+  virtual ContentMainDelegate* GetOptionalContentMainDelegateOverride();
+
   // GTest assertions that the connection to `network_service_test_` did not get
   // dropped unexpectedly.
   void AssertThatNetworkServiceDidNotCrash();
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 7fe8898..c2997cd 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -1157,6 +1157,7 @@
   }
 
   sources = [
+    "../app/content_main_runner_impl_browsertest.cc",
     "../app/mojo/mojo_browsertest.cc",
     "../app_shim_remote_cocoa/window_occlusion_browsertest_mac.mm",
     "../browser/accessibility/accessibility_action_browsertest.cc",
diff --git a/device/fido/filter.cc b/device/fido/filter.cc
index a7a4377..8ebfbd3 100644
--- a/device/fido/filter.cc
+++ b/device/fido/filter.cc
@@ -53,7 +53,7 @@
   if (!v->is_list()) {
     return false;
   }
-  auto contents = v->GetListDeprecated();
+  const auto& contents = v->GetList();
   return !contents.empty() && base::ranges::all_of(contents, predicate);
 }
 
@@ -63,7 +63,7 @@
   }
 
   std::vector<std::string> ret;
-  for (const auto& elem : v->GetListDeprecated()) {
+  for (const auto& elem : v->GetList()) {
     ret.push_back(elem.GetString());
   }
   return ret;
@@ -76,15 +76,15 @@
     return absl::nullopt;
   }
 
-  const base::Value* filters = v->FindKey("filters");
-  if (!filters || !filters->is_list()) {
+  const base::Value::List* filters = v->GetDict().FindList("filters");
+  if (!filters) {
     return absl::nullopt;
   }
 
   std::vector<FilterStep> ret;
-  const auto filter_list = filters->GetListDeprecated();
-  for (const auto& filter : filter_list) {
-    if (!filter.is_dict()) {
+  for (const auto& filter : *filters) {
+    const base::Value::Dict* filter_dict = filter.GetIfDict();
+    if (!filter_dict) {
       return absl::nullopt;
     }
 
@@ -98,8 +98,9 @@
     const base::Value* id_max_size = nullptr;
     const base::Value* action = nullptr;
 
-    // DictItems is used so that unknown keys in the dictionary can be rejected.
-    for (auto pair : filter.DictItems()) {
+    // Walk through all items in the dictionary so that dictionaries with
+    // unknown keys can be rejected.
+    for (auto pair : *filter_dict) {
       if (pair.first == "operation") {
         operation = &pair.second;
       } else if (pair.first == "rp_id") {
diff --git a/docs/android_isolated_splits.md b/docs/android_isolated_splits.md
index 58237bfb..60cc5ec 100644
--- a/docs/android_isolated_splits.md
+++ b/docs/android_isolated_splits.md
@@ -281,8 +281,12 @@
 ClassLoader is passed to `Bundle` instances in
 `ChromeBaseAppCompatActivity.onRestoreInstanceState()`.
 
+Having Android Framework call `Bundle.setClassLoader()` is tracked in
+[b/260574161].
+
 [`onSaveInstanceState`]: https://source.chromium.org/search?q=symbol:ChromeBaseAppCompatActivity.onSaveInstanceState&ss=chromium
 [a custom ClassLoader]: https://source.chromium.org/search?q=symbol:ChromeBaseAppCompatActivity.getClassLoader&ss=chromium
+[b/260574161]: https://issuetracker.google.com/260574161
 
 ### Calling Methods Across a Split Boundary
 
diff --git a/google_apis/drive/drive_api_parser.cc b/google_apis/drive/drive_api_parser.cc
index a8286d6..12a9102 100644
--- a/google_apis/drive/drive_api_parser.cc
+++ b/google_apis/drive/drive_api_parser.cc
@@ -52,10 +52,11 @@
   if (!value->is_list())
     return false;
 
+  const base::Value::List& list = value->GetList();
   base::JSONValueConverter<ParentReference> converter;
-  result->resize(value->GetListDeprecated().size());
-  for (size_t i = 0; i < value->GetListDeprecated().size(); ++i) {
-    const base::Value& parent_value = value->GetListDeprecated()[i];
+  result->resize(list.size());
+  for (size_t i = 0; i < list.size(); ++i) {
+    const base::Value& parent_value = list[i];
     if (!converter.Convert(parent_value, &(*result)[i]))
       return false;
   }
diff --git a/google_apis/gaia/gaia_auth_util.cc b/google_apis/gaia/gaia_auth_util.cc
index 436e552..42091e6 100644
--- a/google_apis/gaia/gaia_auth_util.cc
+++ b/google_apis/gaia/gaia_auth_util.cc
@@ -137,20 +137,20 @@
 
   if (!value->is_list())
     return false;
-  base::Value::ConstListView list = value->GetListDeprecated();
+  const base::Value::List& list = value->GetList();
   if (list.size() < 2u)
     return false;
 
   // Get list of account info.
   if (!list[1].is_list())
     return false;
-  base::Value::ConstListView account_list = list[1].GetListDeprecated();
+  const base::Value::List& account_list = list[1].GetList();
 
   // Build a vector of accounts from the cookie.  Order is important: the first
   // account in the list is the primary account.
   for (size_t i = 0; i < account_list.size(); ++i) {
     if (account_list[i].is_list()) {
-      base::Value::ConstListView account = account_list[i].GetListDeprecated();
+      const base::Value::List& account = account_list[i].GetList();
       std::string email;
       // Canonicalize the email since ListAccounts returns "display email".
       if (3u < account.size() && account[3].is_string() &&
diff --git a/google_apis/gaia/oauth2_id_token_decoder.cc b/google_apis/gaia/oauth2_id_token_decoder.cc
index 7ab8232..f042b86 100644
--- a/google_apis/gaia/oauth2_id_token_decoder.cc
+++ b/google_apis/gaia/oauth2_id_token_decoder.cc
@@ -12,6 +12,7 @@
 #include "base/logging.h"
 #include "base/strings/string_split.h"
 #include "base/values.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace {
 
@@ -27,13 +28,13 @@
 
 // Decodes the JWT ID token to a dictionary. Returns whether the decoding was
 // successful.
-std::unique_ptr<base::Value> DecodeIdToken(const std::string id_token) {
+absl::optional<base::Value::Dict> DecodeIdToken(const std::string id_token) {
   const std::vector<base::StringPiece> token_pieces =
       base::SplitStringPiece(base::StringPiece(id_token), ".",
                              base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
   if (token_pieces.size() != 3) {
     VLOG(1) << "Invalid id_token: not in JWT format";
-    return nullptr;
+    return absl::nullopt;
   }
   // Only the payload is used. The header is ignored, and signature
   // verification is not needed since the token was obtained directly from LSO.
@@ -42,16 +43,15 @@
                              base::Base64UrlDecodePolicy::IGNORE_PADDING,
                              &payload)) {
     VLOG(1) << "Invalid id_token: not in Base64Url encoding";
-    return nullptr;
+    return absl::nullopt;
   }
-  std::unique_ptr<base::Value> decoded_payload =
-      base::JSONReader::ReadDeprecated(payload);
-  if (!decoded_payload.get() ||
+  absl::optional<base::Value> decoded_payload = base::JSONReader::Read(payload);
+  if (!decoded_payload.has_value() ||
       decoded_payload->type() != base::Value::Type::DICTIONARY) {
     VLOG(1) << "Invalid id_token: paylod is not a well-formed JSON";
-    return nullptr;
+    return absl::nullopt;
   }
-  return decoded_payload;
+  return std::move(decoded_payload->GetDict());
 }
 
 // Obtains a vector of service flags from the encoded JWT ID token. Returns
@@ -61,18 +61,18 @@
                      std::vector<std::string>* out_service_flags) {
   DCHECK(out_service_flags->empty());
 
-  std::unique_ptr<base::Value> decoded_payload = DecodeIdToken(id_token);
-  if (decoded_payload == nullptr) {
+  absl::optional<base::Value::Dict> decoded_payload = DecodeIdToken(id_token);
+  if (!decoded_payload.has_value()) {
     VLOG(1) << "Failed to decode the id_token";
     return false;
   }
-  const base::Value* service_flags_value_raw =
-      decoded_payload->FindKeyOfType(kServicesKey, base::Value::Type::LIST);
+  const base::Value::List* service_flags_value_raw =
+      decoded_payload->FindList(kServicesKey);
   if (service_flags_value_raw == nullptr) {
     VLOG(1) << "Missing service flags in the id_token";
     return false;
   }
-  for (const auto& flag_value : service_flags_value_raw->GetListDeprecated()) {
+  for (const auto& flag_value : *service_flags_value_raw) {
     const std::string& flag = flag_value.GetString();
     if (flag.size())
       out_service_flags->push_back(flag);
diff --git a/google_apis/gaia/oauth_multilogin_result.cc b/google_apis/gaia/oauth_multilogin_result.cc
index 83f11b7..15f0e692 100644
--- a/google_apis/gaia/oauth_multilogin_result.cc
+++ b/google_apis/gaia/oauth_multilogin_result.cc
@@ -65,18 +65,18 @@
 }
 
 void OAuthMultiloginResult::TryParseFailedAccountsFromValue(
-    base::Value* json_value) {
-  DCHECK(json_value);
-  base::Value* failed_accounts = json_value->FindListKey("failed_accounts");
+    const base::Value::Dict& json_value) {
+  const base::Value::List* failed_accounts =
+      json_value.FindList("failed_accounts");
   if (failed_accounts == nullptr) {
     VLOG(1) << "No invalid accounts found in the response but error is set to "
                "INVALID_TOKENS";
     status_ = OAuthMultiloginResponseStatus::kUnknownStatus;
     return;
   }
-  for (auto& account : failed_accounts->GetListDeprecated()) {
-    const std::string* gaia_id = account.FindStringKey("obfuscated_id");
-    const std::string* status = account.FindStringKey("status");
+  for (auto& account : *failed_accounts) {
+    const std::string* gaia_id = account.GetDict().FindString("obfuscated_id");
+    const std::string* status = account.GetDict().FindString("status");
     if (status && gaia_id && *status != "OK")
       failed_gaia_ids_.push_back(*gaia_id);
   }
@@ -84,26 +84,27 @@
     status_ = OAuthMultiloginResponseStatus::kUnknownStatus;
 }
 
-void OAuthMultiloginResult::TryParseCookiesFromValue(base::Value* json_value) {
-  DCHECK(json_value);
-  base::Value* cookie_list = json_value->FindListKey("cookies");
+void OAuthMultiloginResult::TryParseCookiesFromValue(
+    const base::Value::Dict& json_value) {
+  const base::Value::List* cookie_list = json_value.FindList("cookies");
   if (cookie_list == nullptr) {
     VLOG(1) << "No cookies found in the response.";
     status_ = OAuthMultiloginResponseStatus::kUnknownStatus;
     return;
   }
-  for (const auto& cookie : cookie_list->GetListDeprecated()) {
-    const std::string* name = cookie.FindStringKey("name");
-    const std::string* value = cookie.FindStringKey("value");
-    const std::string* domain = cookie.FindStringKey("domain");
-    const std::string* host = cookie.FindStringKey("host");
-    const std::string* path = cookie.FindStringKey("path");
-    absl::optional<bool> is_secure = cookie.FindBoolKey("isSecure");
-    absl::optional<bool> is_http_only = cookie.FindBoolKey("isHttpOnly");
-    const std::string* priority = cookie.FindStringKey("priority");
-    absl::optional<double> expiration_delta = cookie.FindDoubleKey("maxAge");
-    const std::string* same_site = cookie.FindStringKey("sameSite");
-    const std::string* same_party = cookie.FindStringKey("sameParty");
+  for (const auto& cookie : *cookie_list) {
+    const base::Value::Dict& cookie_dict = cookie.GetDict();
+    const std::string* name = cookie_dict.FindString("name");
+    const std::string* value = cookie_dict.FindString("value");
+    const std::string* domain = cookie_dict.FindString("domain");
+    const std::string* host = cookie_dict.FindString("host");
+    const std::string* path = cookie_dict.FindString("path");
+    absl::optional<bool> is_secure = cookie_dict.FindBool("isSecure");
+    absl::optional<bool> is_http_only = cookie_dict.FindBool("isHttpOnly");
+    const std::string* priority = cookie_dict.FindString("priority");
+    absl::optional<double> expiration_delta = cookie_dict.FindDouble("maxAge");
+    const std::string* same_site = cookie_dict.FindString("sameSite");
+    const std::string* same_party = cookie_dict.FindString("sameParty");
 
     base::Time now = base::Time::Now();
     // TODO(crbug.com/1264458) If CreateSanitizedCookie were used below, this
@@ -159,7 +160,8 @@
     return;
   }
 
-  const std::string* status_string = json_data->FindStringKey("status");
+  const base::Value::Dict& json_dict = json_data->GetDict();
+  const std::string* status_string = json_dict.FindString("status");
   if (!status_string) {
     RecordMultiloginResponseStatus(status_);
     return;
@@ -168,10 +170,10 @@
   status_ = ParseOAuthMultiloginResponseStatus(*status_string);
   if (status_ == OAuthMultiloginResponseStatus::kOk) {
     // Sets status_ to kUnknownStatus if cookies cannot be parsed.
-    TryParseCookiesFromValue(&json_data.value());
+    TryParseCookiesFromValue(json_dict);
   } else if (status_ == OAuthMultiloginResponseStatus::kInvalidTokens) {
     // Sets status_ to kUnknownStatus if failed accounts cannot be parsed.
-    TryParseFailedAccountsFromValue(&json_data.value());
+    TryParseFailedAccountsFromValue(json_dict);
   }
 
   RecordMultiloginResponseStatus(status_);
diff --git a/google_apis/gaia/oauth_multilogin_result.h b/google_apis/gaia/oauth_multilogin_result.h
index cc5f066..bd1e024 100644
--- a/google_apis/gaia/oauth_multilogin_result.h
+++ b/google_apis/gaia/oauth_multilogin_result.h
@@ -77,11 +77,11 @@
   // against XSSI that have to be removed. See go/xssi.
   static base::StringPiece StripXSSICharacters(const std::string& data);
 
-  void TryParseCookiesFromValue(base::Value* json_value);
+  void TryParseCookiesFromValue(const base::Value::Dict& json_value);
 
   // If error is INVALID_GAIA_CREDENTIALS response is expected to have a list of
   // failed accounts for which tokens are not valid.
-  void TryParseFailedAccountsFromValue(base::Value* json_value);
+  void TryParseFailedAccountsFromValue(const base::Value::Dict& json_value);
 
   std::vector<net::CanonicalCookie> cookies_;
   std::vector<std::string> failed_gaia_ids_;
diff --git a/google_apis/gaia/oauth_multilogin_result_unittest.cc b/google_apis/gaia/oauth_multilogin_result_unittest.cc
index 74ee45c..acd8623 100644
--- a/google_apis/gaia/oauth_multilogin_result_unittest.cc
+++ b/google_apis/gaia/oauth_multilogin_result_unittest.cc
@@ -7,7 +7,7 @@
 #include <string>
 #include <vector>
 
-#include "base/json/json_reader.h"
+#include "base/test/values_test_util.h"
 #include "base/time/time.h"
 #include "net/cookies/canonical_cookie.h"
 #include "testing/gmock/include/gmock/gmock-matchers.h"
@@ -86,9 +86,7 @@
         }
       )";
 
-  std::unique_ptr<base::DictionaryValue> dictionary_value =
-      base::DictionaryValue::From(base::JSONReader::ReadDeprecated(data));
-  result.TryParseCookiesFromValue(dictionary_value.get());
+  result.TryParseCookiesFromValue(base::test::ParseJsonDict(data));
 
   base::Time time_now = base::Time::Now();
   base::Time expiration_time = (time_now + base::Seconds(34560000.));
@@ -755,9 +753,7 @@
   ]
 })";
 
-  std::unique_ptr<base::DictionaryValue> dictionary_value =
-      base::DictionaryValue::From(base::JSONReader::ReadDeprecated(data));
-  result.TryParseCookiesFromValue(dictionary_value.get());
+  result.TryParseCookiesFromValue(base::test::ParseJsonDict(data));
 
   ASSERT_EQ((int)result.cookies().size(), 31);
 
diff --git a/gpu/tools/compositor_model_bench/BUILD.gn b/gpu/tools/compositor_model_bench/BUILD.gn
deleted file mode 100644
index e03114ef..0000000
--- a/gpu/tools/compositor_model_bench/BUILD.gn
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2015 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//build/config/ui.gni")
-
-if (ozone_platform_x11 && current_cpu != "arm") {
-  executable("compositor_model_bench") {
-    sources = [
-      "compositor_model_bench.cc",
-      "forward_render_model.cc",
-      "forward_render_model.h",
-      "render_model_utils.cc",
-      "render_model_utils.h",
-      "render_models.cc",
-      "render_models.h",
-      "render_tree.cc",
-      "render_tree.h",
-      "shaders.cc",
-      "shaders.h",
-    ]
-
-    libs = [ "GL" ]
-
-    deps = [
-      "//base",
-      "//ui/base/x",
-      "//ui/gfx/x",
-      "//ui/gl",
-      "//ui/gl/init",
-    ]
-  }
-}
diff --git a/gpu/tools/compositor_model_bench/DEPS b/gpu/tools/compositor_model_bench/DEPS
deleted file mode 100644
index 8d59099..0000000
--- a/gpu/tools/compositor_model_bench/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
-  "+ui/base/x",
-]
diff --git a/gpu/tools/compositor_model_bench/compositor_model_bench.cc b/gpu/tools/compositor_model_bench/compositor_model_bench.cc
deleted file mode 100644
index 980a38c..0000000
--- a/gpu/tools/compositor_model_bench/compositor_model_bench.cc
+++ /dev/null
@@ -1,396 +0,0 @@
-// Copyright 2012 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// This tool is used to benchmark the render model used by the compositor
-
-// Most of this file is derived from the source of the tile_render_bench tool,
-// and has been changed to  support running a sequence of independent
-// simulations for our different render models and test cases.
-
-#include <stdio.h>
-#include <sys/dir.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include <string>
-#include <utility>
-#include <vector>
-
-#include "base/at_exit.h"
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/containers/queue.h"
-#include "base/files/file_enumerator.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/location.h"
-#include "base/run_loop.h"
-#include "base/task/single_thread_task_executor.h"
-#include "base/task/single_thread_task_runner.h"
-#include "base/time/time.h"
-#include "gpu/tools/compositor_model_bench/render_model_utils.h"
-#include "gpu/tools/compositor_model_bench/render_models.h"
-#include "gpu/tools/compositor_model_bench/render_tree.h"
-#include "ui/base/x/x11_util.h"
-#include "ui/gfx/x/connection.h"
-#include "ui/gfx/x/event.h"
-#include "ui/gfx/x/glx.h"
-#include "ui/gfx/x/xproto.h"
-#include "ui/gfx/x/xproto_util.h"
-#include "ui/gl/glx_util.h"
-#include "ui/gl/init/gl_factory.h"
-
-using base::DirectoryExists;
-using base::PathExists;
-using base::TimeTicks;
-using std::string;
-
-struct SimulationSpecification {
-  string simulation_name;
-  base::FilePath input_path;
-  RenderModel model_under_test;
-  TimeTicks simulation_start_time;
-  int frames_rendered;
-};
-
-// Forward declarations
-class Simulator;
-void _process_events(Simulator* sim);
-void _update_loop(Simulator* sim);
-
-class Simulator {
- public:
-  Simulator(int seconds_per_test, const base::FilePath& output_path)
-      : output_path_(output_path),
-        seconds_per_test_(seconds_per_test),
-        gl_context_(nullptr),
-        window_width_(WINDOW_WIDTH),
-        window_height_(WINDOW_HEIGHT) {}
-
-  ~Simulator() {
-    // Cleanup GL.
-    auto display = connection_->GetXlibDisplay(x11::XlibDisplayType::kFlushing);
-    glXMakeCurrent(display, 0, nullptr);
-    glXDestroyContext(display, gl_context_);
-
-    // The window and X11 connection will be cleaned up when connection_ is
-    // destroyed.
-  }
-
-  void QueueTest(const base::FilePath& path) {
-    SimulationSpecification spec;
-
-    // To get a std::string, we'll try to get an ASCII simulation name.
-    // If the name of the file wasn't ASCII, this will give an empty simulation
-    //  name, but that's not really harmful (we'll still warn about it though.)
-    spec.simulation_name = path.BaseName().RemoveExtension().MaybeAsASCII();
-    if (spec.simulation_name.empty()) {
-      LOG(WARNING) << "Simulation for path " << path.LossyDisplayName()
-                   << " will have a blank simulation name, since the file name "
-                      "isn't ASCII";
-    }
-    spec.input_path = path;
-    spec.model_under_test = ForwardRenderModel;
-    spec.frames_rendered = 0;
-
-    sims_remaining_.push(spec);
-
-    // The following lines are commented out pending the addition
-    // of the new render model once this version gets fully checked in.
-    //
-    //  spec.model_under_test = KDTreeRenderModel;
-    //  sims_remaining_.push(spec);
-  }
-
-  void Run() {
-    if (sims_remaining_.empty()) {
-      LOG(WARNING) << "No configuration files loaded.";
-      return;
-    }
-
-    base::AtExitManager at_exit;
-    if (!InitX11() || !InitGLContext()) {
-      LOG(FATAL) << "Failed to set up GUI.";
-    }
-
-    InitBuffers();
-
-    LOG(INFO) << "Running " << sims_remaining_.size() << " simulations.";
-
-    single_thread_task_executor_.task_runner()->PostTask(
-        FROM_HERE,
-        base::BindOnce(&Simulator::ProcessEvents, weak_factory_.GetWeakPtr()));
-    run_loop_.Run();
-  }
-
-  void ProcessEvents() {
-    // Consume all the X events.
-    connection_->Flush();
-    connection_->ReadResponses();
-    auto& events = connection_->events();
-    while (!events.empty()) {
-      auto event = std::move(events.front());
-      events.pop_front();
-      if (event.As<x11::ExposeEvent>())
-        UpdateLoop();
-      else if (auto* configure = event.As<x11::ConfigureNotifyEvent>())
-        Resize(configure->width, configure->height);
-    }
-  }
-
-  void UpdateLoop() {
-    if (UpdateTestStatus())
-      UpdateCurrentTest();
-  }
-
- private:
-  // Initialize X11. Returns true if successful. This method creates the
-  // X11 window. Further initialization is done in X11VideoRenderer.
-  bool InitX11() {
-    connection_ = std::make_unique<x11::Connection>();
-    if (!connection_->Ready()) {
-      LOG(FATAL) << "Cannot open X11 connection";
-      return false;
-    }
-
-    // Creates the window.
-    auto black_pixel = connection_->default_screen().black_pixel;
-    window_ = connection_->GenerateId<x11::Window>();
-    connection_->CreateWindow({
-        .wid = window_,
-        .parent = connection_->default_root(),
-        .x = 1,
-        .y = 1,
-        .width = static_cast<uint16_t>(window_width_),
-        .height = static_cast<uint16_t>(window_height_),
-        .background_pixel = black_pixel,
-        .border_pixel = black_pixel,
-        .event_mask = x11::EventMask::Exposure | x11::EventMask::KeyPress |
-                      x11::EventMask::StructureNotify,
-    });
-    x11::SetStringProperty(window_, x11::Atom::WM_NAME, x11::Atom::STRING,
-                           "Compositor Model Bench");
-
-    connection_->MapWindow({window_});
-
-    connection_->ConfigureWindow({
-        .window = window_,
-        .width = WINDOW_WIDTH,
-        .height = WINDOW_HEIGHT,
-    });
-
-    return true;
-  }
-
-  // Initialize the OpenGL context.
-  bool InitGLContext() {
-    if (!gl::init::InitializeGLOneOff(/*system_device_id=*/0)) {
-      LOG(FATAL) << "gl::init::InitializeGLOneOff failed";
-      return false;
-    }
-
-    auto* glx_config = gl::GetFbConfigForWindow(connection_.get(), window_);
-    if (!glx_config)
-      return false;
-    auto* visual =
-        glXGetVisualFromFBConfig(connection_->GetXlibDisplay(), glx_config);
-    DCHECK(visual);
-
-    gl_context_ = glXCreateContext(
-        connection_->GetXlibDisplay(x11::XlibDisplayType::kSyncing), visual,
-        nullptr, true /* Direct rendering */);
-
-    if (!gl_context_)
-      return false;
-
-    auto display = connection_->GetXlibDisplay(x11::XlibDisplayType::kFlushing);
-    if (!glXMakeCurrent(display, static_cast<uint32_t>(window_), gl_context_)) {
-      glXDestroyContext(display, gl_context_);
-      gl_context_ = nullptr;
-      return false;
-    }
-
-    return true;
-  }
-
-  bool InitializeNextTest() {
-    SimulationSpecification& spec = sims_remaining_.front();
-    LOG(INFO) << "Initializing test for " << spec.simulation_name << "("
-              << ModelToString(spec.model_under_test) << ")";
-    const base::FilePath& path = spec.input_path;
-
-    std::unique_ptr<RenderNode> root = BuildRenderTreeFromFile(path);
-    if (!root) {
-      LOG(ERROR) << "Couldn't parse test configuration file "
-                 << path.LossyDisplayName();
-      return false;
-    }
-
-    current_sim_ = ConstructSimulationModel(
-        spec.model_under_test, std::move(root), window_width_, window_height_);
-    return !!current_sim_;
-  }
-
-  void CleanupCurrentTest() {
-    LOG(INFO) << "Finished test " << sims_remaining_.front().simulation_name;
-
-    current_sim_.reset();
-  }
-
-  void UpdateCurrentTest() {
-    ++sims_remaining_.front().frames_rendered;
-
-    if (current_sim_)
-      current_sim_->Update();
-
-    glXSwapBuffers(connection_->GetXlibDisplay(x11::XlibDisplayType::kFlushing),
-                   static_cast<uint32_t>(window_));
-
-    auto window = static_cast<x11::Window>(window_);
-    x11::ExposeEvent ev{
-        .window = window,
-        .width = WINDOW_WIDTH,
-        .height = WINDOW_HEIGHT,
-    };
-    x11::SendEvent(ev, window, x11::EventMask::Exposure);
-
-    base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
-        FROM_HERE,
-        base::BindOnce(&Simulator::UpdateLoop, weak_factory_.GetWeakPtr()));
-  }
-
-  void DumpOutput() {
-    LOG(INFO) << "Successfully ran " << sims_completed_.size() << " tests";
-
-    FILE* f = base::OpenFile(output_path_, "w");
-
-    if (!f) {
-      LOG(ERROR) << "Failed to open output file "
-                 << output_path_.LossyDisplayName();
-      exit(-1);
-    }
-
-    LOG(INFO) << "Writing results to " << output_path_.LossyDisplayName();
-
-    fputs("{\n\t\"results\": [\n", f);
-
-    while (sims_completed_.size()) {
-      SimulationSpecification i = sims_completed_.front();
-      fprintf(f,
-              "\t\t{\"simulation_name\":\"%s\",\n"
-              "\t\t\t\"render_model\":\"%s\",\n"
-              "\t\t\t\"frames_drawn\":%d\n"
-              "\t\t},\n",
-              i.simulation_name.c_str(), ModelToString(i.model_under_test),
-              i.frames_rendered);
-      sims_completed_.pop();
-    }
-
-    fputs("\t]\n}", f);
-    base::CloseFile(f);
-  }
-
-  bool UpdateTestStatus() {
-    TimeTicks& current_start = sims_remaining_.front().simulation_start_time;
-    base::TimeDelta d = TimeTicks::Now() - current_start;
-    if (!current_start.is_null() && d.InSeconds() > seconds_per_test_) {
-      CleanupCurrentTest();
-      sims_completed_.push(sims_remaining_.front());
-      sims_remaining_.pop();
-    }
-
-    if (sims_remaining_.size() &&
-        sims_remaining_.front().simulation_start_time.is_null()) {
-      while (sims_remaining_.size() && !InitializeNextTest()) {
-        sims_remaining_.pop();
-      }
-      if (sims_remaining_.size()) {
-        sims_remaining_.front().simulation_start_time = TimeTicks::Now();
-      }
-    }
-
-    if (sims_remaining_.empty()) {
-      DumpOutput();
-      run_loop_.QuitWhenIdle();
-      return false;
-    }
-
-    return true;
-  }
-
-  void Resize(int width, int height) {
-    window_width_ = width;
-    window_height_ = height;
-    if (current_sim_)
-      current_sim_->Resize(window_width_, window_height_);
-  }
-
-  base::SingleThreadTaskExecutor single_thread_task_executor_;
-  base::RunLoop run_loop_;
-
-  // Simulation task list for this execution
-  std::unique_ptr<RenderModelSimulator> current_sim_;
-  base::queue<SimulationSpecification> sims_remaining_;
-  base::queue<SimulationSpecification> sims_completed_;
-  base::FilePath output_path_;
-  // Amount of time to run each simulation
-  int seconds_per_test_;
-  // GUI data
-  std::unique_ptr<x11::Connection> connection_;
-  x11::Window window_ = x11::Window::None;
-  GLXContext gl_context_;
-  int window_width_;
-  int window_height_;
-  base::WeakPtrFactory<Simulator> weak_factory_{this};
-};
-
-int main(int argc, char* argv[]) {
-  base::CommandLine::Init(argc, argv);
-  const base::CommandLine* cl = base::CommandLine::ForCurrentProcess();
-
-  if (argc != 3 && argc != 4) {
-    LOG(INFO)
-        << "Usage: \n"
-        << cl->GetProgram().BaseName().LossyDisplayName()
-        << "--in=[input path] --out=[output path] (duration=[seconds])\n"
-           "The input path specifies either a JSON configuration file or\n"
-           "a directory containing only these files\n"
-           "(if a directory is specified, simulations will be run for\n"
-           "all files in that directory and subdirectories)\n"
-           "The optional duration parameter specifies the (integer)\n"
-           "number of seconds to be spent on each simulation.\n"
-           "Performance measurements for the specified simulation(s) are\n"
-           "written to the output path.";
-    return -1;
-  }
-
-  int seconds_per_test = 1;
-  if (cl->HasSwitch("duration")) {
-    seconds_per_test = atoi(cl->GetSwitchValueASCII("duration").c_str());
-  }
-
-  Simulator sim(seconds_per_test, cl->GetSwitchValuePath("out"));
-  base::FilePath inPath = cl->GetSwitchValuePath("in");
-
-  if (!PathExists(inPath)) {
-    LOG(FATAL) << "Path does not exist: " << inPath.LossyDisplayName();
-    return -1;
-  }
-
-  if (DirectoryExists(inPath)) {
-    LOG(INFO) << "(input path is a directory)";
-    base::FileEnumerator dirItr(inPath, true, base::FileEnumerator::FILES);
-    for (base::FilePath f = dirItr.Next(); !f.empty(); f = dirItr.Next()) {
-      sim.QueueTest(f);
-    }
-  } else {
-    LOG(INFO) << "(input path is a file)";
-    sim.QueueTest(inPath);
-  }
-
-  sim.Run();
-
-  return 0;
-}
diff --git a/gpu/tools/compositor_model_bench/forward_render_model.cc b/gpu/tools/compositor_model_bench/forward_render_model.cc
deleted file mode 100644
index 93d6ac1..0000000
--- a/gpu/tools/compositor_model_bench/forward_render_model.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2011 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "gpu/tools/compositor_model_bench/forward_render_model.h"
-
-#include <stddef.h>
-
-#include <cstdlib>
-#include <vector>
-
-#include "base/notreached.h"
-#include "gpu/tools/compositor_model_bench/render_model_utils.h"
-
-using std::vector;
-
-class ForwardRenderNodeVisitor : public RenderNodeVisitor {
- public:
-  ForwardRenderNodeVisitor() {}
-
-  void BeginVisitRenderNode(RenderNode* v) override { NOTREACHED(); }
-
-  void BeginVisitCCNode(CCNode* v) override {
-    if (!v->drawsContent())
-      return;
-    ConfigAndActivateShaderForNode(v);
-    DrawQuad(v->width(), v->height());
-  }
-
-  void BeginVisitContentLayerNode(ContentLayerNode* l) override {
-    if (!l->drawsContent())
-      return;
-    ConfigAndActivateShaderForTiling(l);
-    // Now that we capture root layer tiles, a layer without tiles
-    // should not get drawn.
-    for (size_t n = 0; n < l->num_tiles(); ++n) {
-      const Tile* i = l->tile(n);
-      DrawTileQuad(i->texID, i->x, i->y);
-    }
-  }
-};
-
-ForwardRenderSimulator::ForwardRenderSimulator(std::unique_ptr<RenderNode> root,
-                                               int window_width,
-                                               int window_height)
-    : RenderModelSimulator(std::move(root)) {
-  textures_.reset(new TextureGenerator(root_.get()));
-  visitor_.reset(new ForwardRenderNodeVisitor());
-  glViewport(0, 0, window_width, window_height);
-  glDisable(GL_DEPTH_TEST);
-  glDisable(GL_CULL_FACE);
-  glEnable(GL_BLEND);
-  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-}
-
-ForwardRenderSimulator::~ForwardRenderSimulator() {
-}
-
-void ForwardRenderSimulator::Update() {
-  glClearColor(0, 0, 1, 1);
-  glColorMask(true, true, true, true);
-  glClear(GL_COLOR_BUFFER_BIT);
-  glColorMask(true, true, true, false);
-  BeginFrame();
-  root_->Accept(visitor_.get());
-}
-
-void ForwardRenderSimulator::Resize(int width, int height) {
-  glViewport(0, 0, width, height);
-}
-
diff --git a/gpu/tools/compositor_model_bench/forward_render_model.h b/gpu/tools/compositor_model_bench/forward_render_model.h
deleted file mode 100644
index 3338844..0000000
--- a/gpu/tools/compositor_model_bench/forward_render_model.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2011 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// A render model simulator for the original model used in Chromium.
-
-#ifndef GPU_TOOLS_COMPOSITOR_MODEL_BENCH_FORWARD_RENDER_MODEL_H_
-#define GPU_TOOLS_COMPOSITOR_MODEL_BENCH_FORWARD_RENDER_MODEL_H_
-
-#include <memory>
-
-#include "gpu/tools/compositor_model_bench/render_model_utils.h"
-#include "gpu/tools/compositor_model_bench/render_models.h"
-
-class ForwardRenderNodeVisitor;
-
-class ForwardRenderSimulator : public RenderModelSimulator {
- public:
-  ForwardRenderSimulator() = delete;
-
-  ForwardRenderSimulator(std::unique_ptr<RenderNode> root,
-                         int window_width,
-                         int window_height);
-
-  ForwardRenderSimulator(const ForwardRenderSimulator&) = delete;
-  ForwardRenderSimulator& operator=(const ForwardRenderSimulator&) = delete;
-
-  ~ForwardRenderSimulator() override;
-
-  void Update() override;
-  void Resize(int width, int height) override;
-
- private:
-  std::unique_ptr<ForwardRenderNodeVisitor> visitor_;
-  std::unique_ptr<TextureGenerator> textures_;
-};
-
-#endif  // GPU_TOOLS_COMPOSITOR_MODEL_BENCH_FORWARD_RENDER_MODEL_H_
-
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT0.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT0.txt.json
deleted file mode 100644
index 2ec423f..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT0.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 10}, {"y": 0, "x": 1, "texID": 24}, {"y": 0, "x": 2, "texID": 28}, {"y": 0, "x": 3, "texID": 25}, {"y": 0, "x": 4, "texID": 15}, {"y": 0, "x": 5, "texID": 3}, {"y": 0, "x": 6, "texID": 6}, {"y": 1, "x": 0, "texID": 20}, {"y": 1, "x": 1, "texID": 21}, {"y": 1, "x": 2, "texID": 5}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 9}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 18}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 431.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 416.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 691.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 690.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 688.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 688.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 690.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 688.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 688.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, 691.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 685.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 677.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 691.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT1.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT1.txt.json
deleted file mode 100644
index 2ec423f..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT1.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 10}, {"y": 0, "x": 1, "texID": 24}, {"y": 0, "x": 2, "texID": 28}, {"y": 0, "x": 3, "texID": 25}, {"y": 0, "x": 4, "texID": 15}, {"y": 0, "x": 5, "texID": 3}, {"y": 0, "x": 6, "texID": 6}, {"y": 1, "x": 0, "texID": 20}, {"y": 1, "x": 1, "texID": 21}, {"y": 1, "x": 2, "texID": 5}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 9}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 18}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 431.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 416.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 691.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 690.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 688.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 688.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 690.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 688.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 688.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, 691.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 685.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 677.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 691.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT10.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT10.txt.json
deleted file mode 100644
index 845e5b1..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT10.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0}, {"y": 1, "x": 1}, {"y": 1, "x": 2}, {"y": 1, "x": 3}, {"y": 1, "x": 4}, {"y": 1, "x": 5}, {"y": 1, "x": 6}, {"y": 2, "x": 0}, {"y": 2, "x": 1}, {"y": 2, "x": 2}, {"y": 2, "x": 3}, {"y": 2, "x": 4}, {"y": 2, "x": 5}, {"y": 2, "x": 6}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0, "texID": 15}, {"y": 5, "x": 1, "texID": 10}, {"y": 5, "x": 2, "texID": 6}, {"y": 5, "x": 3, "texID": 24}, {"y": 5, "x": 4, "texID": 3}, {"y": 5, "x": 5, "texID": 28}, {"y": 5, "x": 6, "texID": 25}, {"y": 6, "x": 0, "texID": 13}, {"y": 6, "x": 1, "texID": 5}, {"y": 6, "x": 2, "texID": 18}, {"y": 6, "x": 3, "texID": 9}, {"y": 6, "x": 4, "texID": 11}, {"y": 6, "x": 5, "texID": 21}, {"y": 6, "x": 6, "texID": 20}, {"y": 7, "x": 0, "texID": 14}, {"y": 7, "x": 1, "texID": 16}, {"y": 7, "x": 2, "texID": 26}, {"y": 7, "x": 3, "texID": 23}, {"y": 7, "x": 4, "texID": 22}, {"y": 7, "x": 5, "texID": 27}, {"y": 7, "x": 6, "texID": 2}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -582.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -580.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -580.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -596.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -580.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -322.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, -322.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, -322.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, -322.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, -323.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, -324.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, -324.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -323.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -325.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -325.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, -321.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -328.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -336.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -322.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -580.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 367.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 367.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1013.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT11.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT11.txt.json
deleted file mode 100644
index 845e5b1..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT11.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0}, {"y": 1, "x": 1}, {"y": 1, "x": 2}, {"y": 1, "x": 3}, {"y": 1, "x": 4}, {"y": 1, "x": 5}, {"y": 1, "x": 6}, {"y": 2, "x": 0}, {"y": 2, "x": 1}, {"y": 2, "x": 2}, {"y": 2, "x": 3}, {"y": 2, "x": 4}, {"y": 2, "x": 5}, {"y": 2, "x": 6}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0, "texID": 15}, {"y": 5, "x": 1, "texID": 10}, {"y": 5, "x": 2, "texID": 6}, {"y": 5, "x": 3, "texID": 24}, {"y": 5, "x": 4, "texID": 3}, {"y": 5, "x": 5, "texID": 28}, {"y": 5, "x": 6, "texID": 25}, {"y": 6, "x": 0, "texID": 13}, {"y": 6, "x": 1, "texID": 5}, {"y": 6, "x": 2, "texID": 18}, {"y": 6, "x": 3, "texID": 9}, {"y": 6, "x": 4, "texID": 11}, {"y": 6, "x": 5, "texID": 21}, {"y": 6, "x": 6, "texID": 20}, {"y": 7, "x": 0, "texID": 14}, {"y": 7, "x": 1, "texID": 16}, {"y": 7, "x": 2, "texID": 26}, {"y": 7, "x": 3, "texID": 23}, {"y": 7, "x": 4, "texID": 22}, {"y": 7, "x": 5, "texID": 27}, {"y": 7, "x": 6, "texID": 2}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -582.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -580.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -580.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -596.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -580.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -322.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, -322.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, -322.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, -322.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, -323.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, -324.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, -324.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -323.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -325.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -325.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, -321.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -328.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -336.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -322.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -580.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 367.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 367.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1013.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT12.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT12.txt.json
deleted file mode 100644
index 350cdf6..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT12.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0}, {"y": 1, "x": 1}, {"y": 1, "x": 2}, {"y": 1, "x": 3}, {"y": 1, "x": 4}, {"y": 1, "x": 5}, {"y": 1, "x": 6}, {"y": 2, "x": 0}, {"y": 2, "x": 1}, {"y": 2, "x": 2}, {"y": 2, "x": 3}, {"y": 2, "x": 4}, {"y": 2, "x": 5}, {"y": 2, "x": 6}, {"y": 3, "x": 0}, {"y": 3, "x": 1}, {"y": 3, "x": 2}, {"y": 3, "x": 3}, {"y": 3, "x": 4}, {"y": 3, "x": 5}, {"y": 3, "x": 6}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0, "texID": 13}, {"y": 6, "x": 1, "texID": 5}, {"y": 6, "x": 2, "texID": 18}, {"y": 6, "x": 3, "texID": 9}, {"y": 6, "x": 4, "texID": 11}, {"y": 6, "x": 5, "texID": 21}, {"y": 6, "x": 6, "texID": 20}, {"y": 7, "x": 0, "texID": 14}, {"y": 7, "x": 1, "texID": 16}, {"y": 7, "x": 2, "texID": 26}, {"y": 7, "x": 3, "texID": 23}, {"y": 7, "x": 4, "texID": 22}, {"y": 7, "x": 5, "texID": 27}, {"y": 7, "x": 6, "texID": 2}, {"y": 8, "x": 0, "texID": 8}, {"y": 8, "x": 1, "texID": 48}, {"y": 8, "x": 2, "texID": 15}, {"y": 8, "x": 3, "texID": 19}, {"y": 8, "x": 4, "texID": 24}, {"y": 8, "x": 5, "texID": 10}, {"y": 8, "x": 6, "texID": 47}, {"y": 9, "x": 0, "texID": 6}, {"y": 9, "x": 1, "texID": 1}, {"y": 9, "x": 2, "texID": 46}, {"y": 9, "x": 3, "texID": 4}, {"y": 9, "x": 4, "texID": 17}, {"y": 9, "x": 5, "texID": 44}, {"y": 9, "x": 6, "texID": 25}, {"y": 10, "x": 0, "texID": 3}, {"y": 10, "x": 1, "texID": 7}, {"y": 10, "x": 2, "texID": 50}, {"y": 10, "x": 3, "texID": 28}, {"y": 10, "x": 4, "texID": 12}, {"y": 10, "x": 5, "texID": 43}, {"y": 10, "x": 6, "texID": 49}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}, {"y": 12, "x": 0}, {"y": 12, "x": 1}, {"y": 12, "x": 2}, {"y": 12, "x": 3}, {"y": 12, "x": 4}, {"y": 12, "x": 5}, {"y": 12, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1336.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1334.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1334.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1350.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1334.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1076.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, -1076.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, -1076.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, -1076.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, -1077.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, -1078.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, -1078.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1077.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1079.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1079.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, -1075.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1082.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1090.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1076.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1334.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, -387.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, -387.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1767.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT13.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT13.txt.json
deleted file mode 100644
index 350cdf6..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT13.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0}, {"y": 1, "x": 1}, {"y": 1, "x": 2}, {"y": 1, "x": 3}, {"y": 1, "x": 4}, {"y": 1, "x": 5}, {"y": 1, "x": 6}, {"y": 2, "x": 0}, {"y": 2, "x": 1}, {"y": 2, "x": 2}, {"y": 2, "x": 3}, {"y": 2, "x": 4}, {"y": 2, "x": 5}, {"y": 2, "x": 6}, {"y": 3, "x": 0}, {"y": 3, "x": 1}, {"y": 3, "x": 2}, {"y": 3, "x": 3}, {"y": 3, "x": 4}, {"y": 3, "x": 5}, {"y": 3, "x": 6}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0, "texID": 13}, {"y": 6, "x": 1, "texID": 5}, {"y": 6, "x": 2, "texID": 18}, {"y": 6, "x": 3, "texID": 9}, {"y": 6, "x": 4, "texID": 11}, {"y": 6, "x": 5, "texID": 21}, {"y": 6, "x": 6, "texID": 20}, {"y": 7, "x": 0, "texID": 14}, {"y": 7, "x": 1, "texID": 16}, {"y": 7, "x": 2, "texID": 26}, {"y": 7, "x": 3, "texID": 23}, {"y": 7, "x": 4, "texID": 22}, {"y": 7, "x": 5, "texID": 27}, {"y": 7, "x": 6, "texID": 2}, {"y": 8, "x": 0, "texID": 8}, {"y": 8, "x": 1, "texID": 48}, {"y": 8, "x": 2, "texID": 15}, {"y": 8, "x": 3, "texID": 19}, {"y": 8, "x": 4, "texID": 24}, {"y": 8, "x": 5, "texID": 10}, {"y": 8, "x": 6, "texID": 47}, {"y": 9, "x": 0, "texID": 6}, {"y": 9, "x": 1, "texID": 1}, {"y": 9, "x": 2, "texID": 46}, {"y": 9, "x": 3, "texID": 4}, {"y": 9, "x": 4, "texID": 17}, {"y": 9, "x": 5, "texID": 44}, {"y": 9, "x": 6, "texID": 25}, {"y": 10, "x": 0, "texID": 3}, {"y": 10, "x": 1, "texID": 7}, {"y": 10, "x": 2, "texID": 50}, {"y": 10, "x": 3, "texID": 28}, {"y": 10, "x": 4, "texID": 12}, {"y": 10, "x": 5, "texID": 43}, {"y": 10, "x": 6, "texID": 49}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}, {"y": 12, "x": 0}, {"y": 12, "x": 1}, {"y": 12, "x": 2}, {"y": 12, "x": 3}, {"y": 12, "x": 4}, {"y": 12, "x": 5}, {"y": 12, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1336.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1334.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1334.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1350.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1334.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1076.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, -1076.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, -1076.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, -1076.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, -1077.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, -1078.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, -1078.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1077.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1079.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1079.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, -1075.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1082.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1090.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1076.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -1334.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, -387.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, -387.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -1767.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT2.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT2.txt.json
deleted file mode 100644
index cb4b95ab..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT2.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 10}, {"y": 0, "x": 1, "texID": 24}, {"y": 0, "x": 2, "texID": 28}, {"y": 0, "x": 3, "texID": 25}, {"y": 0, "x": 4, "texID": 15}, {"y": 0, "x": 5, "texID": 3}, {"y": 0, "x": 6, "texID": 6}, {"y": 1, "x": 0, "texID": 20}, {"y": 1, "x": 1, "texID": 21}, {"y": 1, "x": 2, "texID": 5}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 9}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 18}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 325.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 327.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 327.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 310.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 327.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 585.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 584.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 584.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 584.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 584.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 582.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 582.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 584.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 582.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 582.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, 585.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 579.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 571.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 585.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 327.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1274.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1274.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -106.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT3.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT3.txt.json
deleted file mode 100644
index cb4b95ab..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT3.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 10}, {"y": 0, "x": 1, "texID": 24}, {"y": 0, "x": 2, "texID": 28}, {"y": 0, "x": 3, "texID": 25}, {"y": 0, "x": 4, "texID": 15}, {"y": 0, "x": 5, "texID": 3}, {"y": 0, "x": 6, "texID": 6}, {"y": 1, "x": 0, "texID": 20}, {"y": 1, "x": 1, "texID": 21}, {"y": 1, "x": 2, "texID": 5}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 9}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 18}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 325.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 327.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 327.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 310.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 327.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 585.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 584.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 584.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 584.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 584.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 582.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 582.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 584.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 582.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 582.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, 585.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 579.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 571.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 585.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 327.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1274.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1274.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -106.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT4.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT4.txt.json
deleted file mode 100644
index 3afc30f9..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT4.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0, "texID": 20}, {"y": 1, "x": 1, "texID": 21}, {"y": 1, "x": 2, "texID": 5}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 9}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 18}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0, "texID": 15}, {"y": 5, "x": 1, "texID": 10}, {"y": 5, "x": 2, "texID": 6}, {"y": 5, "x": 3, "texID": 24}, {"y": 5, "x": 4, "texID": 3}, {"y": 5, "x": 5, "texID": 28}, {"y": 5, "x": 6, "texID": 25}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 111.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 113.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 113.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 96.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 113.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 371.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 370.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 370.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 370.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 370.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 368.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 368.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 370.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 368.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 368.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, 371.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 365.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 357.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 371.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 113.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1060.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1060.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -320.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT5.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT5.txt.json
deleted file mode 100644
index 3afc30f9..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT5.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0, "texID": 20}, {"y": 1, "x": 1, "texID": 21}, {"y": 1, "x": 2, "texID": 5}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 9}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 18}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0, "texID": 15}, {"y": 5, "x": 1, "texID": 10}, {"y": 5, "x": 2, "texID": 6}, {"y": 5, "x": 3, "texID": 24}, {"y": 5, "x": 4, "texID": 3}, {"y": 5, "x": 5, "texID": 28}, {"y": 5, "x": 6, "texID": 25}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 111.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 113.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 113.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 96.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 113.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 371.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 370.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 370.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 370.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 370.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 368.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 368.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 370.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 368.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 368.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, 371.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 365.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 357.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 371.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 113.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1060.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1060.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -320.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT6.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT6.txt.json
deleted file mode 100644
index 1af61c0..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT6.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0, "texID": 20}, {"y": 1, "x": 1, "texID": 21}, {"y": 1, "x": 2, "texID": 5}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 9}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 18}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0, "texID": 15}, {"y": 5, "x": 1, "texID": 10}, {"y": 5, "x": 2, "texID": 6}, {"y": 5, "x": 3, "texID": 24}, {"y": 5, "x": 4, "texID": 3}, {"y": 5, "x": 5, "texID": 28}, {"y": 5, "x": 6, "texID": 25}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -49.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -47.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -47.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -63.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -47.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 211.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 210.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 210.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 210.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 210.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 208.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 208.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 210.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 208.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 208.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, 211.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 205.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 197.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 211.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -47.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 900.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 900.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -480.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT7.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT7.txt.json
deleted file mode 100644
index 1af61c0..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT7.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0, "texID": 20}, {"y": 1, "x": 1, "texID": 21}, {"y": 1, "x": 2, "texID": 5}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 9}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 18}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0, "texID": 15}, {"y": 5, "x": 1, "texID": 10}, {"y": 5, "x": 2, "texID": 6}, {"y": 5, "x": 3, "texID": 24}, {"y": 5, "x": 4, "texID": 3}, {"y": 5, "x": 5, "texID": 28}, {"y": 5, "x": 6, "texID": 25}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -49.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -47.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -47.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -63.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -47.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 211.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 210.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 210.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 210.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 210.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 208.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 208.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 210.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 208.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 208.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, 211.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 205.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 197.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 211.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -47.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 900.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 900.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -480.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT8.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT8.txt.json
deleted file mode 100644
index 75f4d26..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT8.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0}, {"y": 1, "x": 1}, {"y": 1, "x": 2}, {"y": 1, "x": 3}, {"y": 1, "x": 4}, {"y": 1, "x": 5}, {"y": 1, "x": 6}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0, "texID": 15}, {"y": 5, "x": 1, "texID": 10}, {"y": 5, "x": 2, "texID": 6}, {"y": 5, "x": 3, "texID": 24}, {"y": 5, "x": 4, "texID": 3}, {"y": 5, "x": 5, "texID": 28}, {"y": 5, "x": 6, "texID": 25}, {"y": 6, "x": 0, "texID": 13}, {"y": 6, "x": 1, "texID": 5}, {"y": 6, "x": 2, "texID": 18}, {"y": 6, "x": 3, "texID": 9}, {"y": 6, "x": 4, "texID": 11}, {"y": 6, "x": 5, "texID": 21}, {"y": 6, "x": 6, "texID": 20}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -262.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -260.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -260.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -276.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -260.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -2.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, -2.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, -2.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, -2.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, -3.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, -4.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, -4.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -3.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -5.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -5.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, -1.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -8.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -16.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -2.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -260.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 687.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 687.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -693.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT9.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT9.txt.json
deleted file mode 100644
index 75f4d26..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT9.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 1, "x": 0}, {"y": 1, "x": 1}, {"y": 1, "x": 2}, {"y": 1, "x": 3}, {"y": 1, "x": 4}, {"y": 1, "x": 5}, {"y": 1, "x": 6}, {"y": 2, "x": 0, "texID": 26}, {"y": 2, "x": 1, "texID": 14}, {"y": 2, "x": 2, "texID": 16}, {"y": 2, "x": 3, "texID": 27}, {"y": 2, "x": 4, "texID": 2}, {"y": 2, "x": 5, "texID": 23}, {"y": 2, "x": 6, "texID": 22}, {"y": 3, "x": 0, "texID": 1}, {"y": 3, "x": 1, "texID": 12}, {"y": 3, "x": 2, "texID": 8}, {"y": 3, "x": 3, "texID": 19}, {"y": 3, "x": 4, "texID": 7}, {"y": 3, "x": 5, "texID": 4}, {"y": 3, "x": 6, "texID": 17}, {"y": 4, "x": 0, "texID": 43}, {"y": 4, "x": 1, "texID": 44}, {"y": 4, "x": 2, "texID": 46}, {"y": 4, "x": 3, "texID": 47}, {"y": 4, "x": 4, "texID": 48}, {"y": 4, "x": 5, "texID": 49}, {"y": 4, "x": 6, "texID": 50}, {"y": 5, "x": 0, "texID": 15}, {"y": 5, "x": 1, "texID": 10}, {"y": 5, "x": 2, "texID": 6}, {"y": 5, "x": 3, "texID": 24}, {"y": 5, "x": 4, "texID": 3}, {"y": 5, "x": 5, "texID": 28}, {"y": 5, "x": 6, "texID": 25}, {"y": 6, "x": 0, "texID": 13}, {"y": 6, "x": 1, "texID": 5}, {"y": 6, "x": 2, "texID": 18}, {"y": 6, "x": 3, "texID": 9}, {"y": 6, "x": 4, "texID": 11}, {"y": 6, "x": 5, "texID": 21}, {"y": 6, "x": 6, "texID": 20}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -262.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -260.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -260.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -276.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -260.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 50, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 49, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 41, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -2.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 48, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 42, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, -2.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 43, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, -2.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 44, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, -2.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 45, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, -3.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 46, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, -4.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 47, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, -4.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -3.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -5.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -5.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 135.5, -1.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -8.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -16.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -2.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, -260.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 687.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 687.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -693.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special0.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special0.txt.json
deleted file mode 100644
index 3daf2ec..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special0.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 431.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 416.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 37, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 36, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [921, 43]}, "skipsDraw": false, "layerID": 24, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 672.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 43}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [921, 45]}, "skipsDraw": false, "layerID": 31, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [91, 44]}, "skipsDraw": false, "layerID": 25, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [68, 44]}, "skipsDraw": false, "layerID": 26, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [52, 44]}, "skipsDraw": false, "layerID": 27, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [62, 45]}, "skipsDraw": false, "layerID": 28, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 671.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 45}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [64, 48]}, "skipsDraw": false, "layerID": 29, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 670.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 48}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [75, 48]}, "skipsDraw": false, "layerID": 30, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 670.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 48}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 671.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 45}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [921, 24]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 651.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 24}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 651.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 24}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 103.5, 650.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 648.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 648.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 50}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 672.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 43}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 80, "skipsDraw": false, "layerID": 72, "children": [{"drawsContent": false, "width": 71, "skipsDraw": false, "layerID": 70, "children": [{"drawsContent": true, "width": 79, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [79, 60]}, "skipsDraw": false, "layerID": 69, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 207.5, 632.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 60}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 207.5, 632.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 52}, {"drawsContent": true, "width": 28, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [28, 21]}, "skipsDraw": false, "layerID": 71, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 208.0, 652.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 21}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 208.0, 637.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 52}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 44}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 52, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special1.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special1.txt.json
deleted file mode 100644
index e6b3782..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special1.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 431.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 416.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 37, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 36, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [921, 43]}, "skipsDraw": false, "layerID": 24, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 672.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 43}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [921, 45]}, "skipsDraw": false, "layerID": 31, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [91, 44]}, "skipsDraw": false, "layerID": 25, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [68, 44]}, "skipsDraw": false, "layerID": 26, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [52, 44]}, "skipsDraw": false, "layerID": 27, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [62, 45]}, "skipsDraw": false, "layerID": 28, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 671.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 45}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [64, 48]}, "skipsDraw": false, "layerID": 29, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 670.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 48}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 50}], "dim": [75, 48]}, "skipsDraw": false, "layerID": 30, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 670.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 48}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 671.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 45}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 51}], "dim": [921, 24]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 651.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 24}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 651.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 24}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 103.5, 650.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 648.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 648.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 50}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 672.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 43}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 80, "skipsDraw": false, "layerID": 124, "children": [{"drawsContent": false, "width": 71, "skipsDraw": false, "layerID": 122, "children": [{"drawsContent": true, "width": 79, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [79, 60]}, "skipsDraw": false, "layerID": 121, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 39.5, 21.0, 0.0, 1.0], "targetSurfaceID": 124, "height": 60}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 39.5, 21.0, 0.0, 1.0], "targetSurfaceID": 124, "height": 52}, {"drawsContent": true, "width": 28, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [28, 21]}, "skipsDraw": false, "layerID": 123, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 40.0, 41.5, 0.0, 1.0], "targetSurfaceID": 124, "height": 21}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 40.0, 26.0, 0.0, 1.0], "targetSurfaceID": 124, "height": 52}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 44}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 52, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special10.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special10.txt.json
deleted file mode 100644
index 739e147..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special10.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 500, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 15}, {"y": 0, "x": 1, "texID": 20}, {"y": 0, "x": 2, "texID": 16}, {"y": 0, "x": 3, "texID": 2}, {"y": 0, "x": 4, "texID": 7}, {"y": 0, "x": 5, "texID": 17}, {"y": 0, "x": 6, "texID": 28}, {"y": 0, "x": 7}, {"y": 0, "x": 8}, {"y": 0, "x": 9}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 1, "x": 7}, {"y": 1, "x": 8}, {"y": 1, "x": 9}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 2, "x": 7}, {"y": 2, "x": 8}, {"y": 2, "x": 9}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 3, "x": 7}, {"y": 3, "x": 8}, {"y": 3, "x": 9}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 4, "x": 7}, {"y": 4, "x": 8}, {"y": 4, "x": 9}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 5, "x": 7}, {"y": 5, "x": 8}, {"y": 5, "x": 9}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 6, "x": 7}, {"y": 6, "x": 8}, {"y": 6, "x": 9}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 7, "x": 7}, {"y": 7, "x": 8}, {"y": 7, "x": 9}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 8, "x": 7}, {"y": 8, "x": 8}, {"y": 8, "x": 9}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 9, "x": 7}, {"y": 9, "x": 8}, {"y": 9, "x": 9}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 10, "x": 7}, {"y": 10, "x": 8}, {"y": 10, "x": 9}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}, {"y": 11, "x": 7}, {"y": 11, "x": 8}, {"y": 11, "x": 9}, {"y": 12, "x": 0}, {"y": 12, "x": 1}, {"y": 12, "x": 2}, {"y": 12, "x": 3}, {"y": 12, "x": 4}, {"y": 12, "x": 5}, {"y": 12, "x": 6}, {"y": 12, "x": 7}, {"y": 12, "x": 8}, {"y": 12, "x": 9}, {"y": 13, "x": 0}, {"y": 13, "x": 1}, {"y": 13, "x": 2}, {"y": 13, "x": 3}, {"y": 13, "x": 4}, {"y": 13, "x": 5}, {"y": 13, "x": 6}, {"y": 13, "x": 7}, {"y": 13, "x": 8}, {"y": 13, "x": 9}, {"y": 14, "x": 0}, {"y": 14, "x": 1}, {"y": 14, "x": 2}, {"y": 14, "x": 3}, {"y": 14, "x": 4}, {"y": 14, "x": 5}, {"y": 14, "x": 6}, {"y": 14, "x": 7}, {"y": 14, "x": 8}, {"y": 14, "x": 9}, {"y": 15, "x": 0}, {"y": 15, "x": 1}, {"y": 15, "x": 2}, {"y": 15, "x": 3}, {"y": 15, "x": 4}, {"y": 15, "x": 5}, {"y": 15, "x": 6}, {"y": 15, "x": 7}, {"y": 15, "x": 8}, {"y": 15, "x": 9}, {"y": 16, "x": 0}, {"y": 16, "x": 1}, {"y": 16, "x": 2}, {"y": 16, "x": 3}, {"y": 16, "x": 4}, {"y": 16, "x": 5}, {"y": 16, "x": 6}, {"y": 16, "x": 7}, {"y": 16, "x": 8}, {"y": 16, "x": 9}, {"y": 17, "x": 0}, {"y": 17, "x": 1}, {"y": 17, "x": 2}, {"y": 17, "x": 3}, {"y": 17, "x": 4}, {"y": 17, "x": 5}, {"y": 17, "x": 6}, {"y": 17, "x": 7}, {"y": 17, "x": 8}, {"y": 17, "x": 9}, {"y": 18, "x": 0}, {"y": 18, "x": 1}, {"y": 18, "x": 2}, {"y": 18, "x": 3}, {"y": 18, "x": 4}, {"y": 18, "x": 5}, {"y": 18, "x": 6}, {"y": 18, "x": 7}, {"y": 18, "x": 8}, {"y": 18, "x": 9}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 501, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 502, "children": [{"drawsContent": false, "width": 2413, "skipsDraw": false, "layerID": 499, "children": [{"drawsContent": false, "width": 2413, "skipsDraw": false, "layerID": 503, "children": [{"drawsContent": false, "width": 1592, "skipsDraw": false, "layerID": 506, "children": [{"drawsContent": false, "width": 1350, "skipsDraw": false, "layerID": 505, "children": [{"textures": [{"texID": 30, "format": "LUMINANCE", "height": 746, "width": 1326}, {"texID": 31, "format": "LUMINANCE", "height": 746, "width": 1326}, {"texID": 32, "format": "LUMINANCE", "height": 746, "width": 1326}], "targetSurfaceID": 500, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 672.0, 0.0, 1.0], "height": 746, "drawsContent": true, "width": 1326, "layerID": 514, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 678.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 758}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 796.0, 750.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 903}, {"drawsContent": false, "width": 1592, "skipsDraw": false, "layerID": 508, "children": [{"drawsContent": false, "width": 1350, "skipsDraw": false, "layerID": 507, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 647.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 696}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 796.0, 750.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 903}, {"drawsContent": true, "width": 262, "tiles": {"info": [{"y": 0, "x": 0, "texID": 115}], "dim": [262, 86]}, "skipsDraw": false, "layerID": 720, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1475.0, 947.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 86}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1206.5, 2396.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4792}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1206.5, 2396.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4792}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 489.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 978}, {"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [1594, 15]}, "skipsDraw": false, "layerID": 704, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 985.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [15, 978]}, "skipsDraw": false, "layerID": 705, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 489.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 978}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [15, 15]}, "skipsDraw": false, "layerID": 706, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 985.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special11.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special11.txt.json
deleted file mode 100644
index 33e1b9f..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special11.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 500, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 0, "x": 7}, {"y": 0, "x": 8}, {"y": 0, "x": 9}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 1, "x": 7}, {"y": 1, "x": 8}, {"y": 1, "x": 9}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 2, "x": 7}, {"y": 2, "x": 8}, {"y": 2, "x": 9}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 3, "x": 7}, {"y": 3, "x": 8}, {"y": 3, "x": 9}, {"y": 4, "x": 0, "texID": 38}, {"y": 4, "x": 1, "texID": 39}, {"y": 4, "x": 2, "texID": 40}, {"y": 4, "x": 3, "texID": 41}, {"y": 4, "x": 4, "texID": 42}, {"y": 4, "x": 5, "texID": 43}, {"y": 4, "x": 6, "texID": 45}, {"y": 4, "x": 7}, {"y": 4, "x": 8}, {"y": 4, "x": 9}, {"y": 5, "x": 0, "texID": 7}, {"y": 5, "x": 1, "texID": 15}, {"y": 5, "x": 2, "texID": 28}, {"y": 5, "x": 3, "texID": 20}, {"y": 5, "x": 4, "texID": 17}, {"y": 5, "x": 5, "texID": 16}, {"y": 5, "x": 6, "texID": 2}, {"y": 5, "x": 7}, {"y": 5, "x": 8}, {"y": 5, "x": 9}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 6, "x": 7}, {"y": 6, "x": 8}, {"y": 6, "x": 9}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 7, "x": 7}, {"y": 7, "x": 8}, {"y": 7, "x": 9}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 8, "x": 7}, {"y": 8, "x": 8}, {"y": 8, "x": 9}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 9, "x": 7}, {"y": 9, "x": 8}, {"y": 9, "x": 9}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 10, "x": 7}, {"y": 10, "x": 8}, {"y": 10, "x": 9}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}, {"y": 11, "x": 7}, {"y": 11, "x": 8}, {"y": 11, "x": 9}, {"y": 12, "x": 0}, {"y": 12, "x": 1}, {"y": 12, "x": 2}, {"y": 12, "x": 3}, {"y": 12, "x": 4}, {"y": 12, "x": 5}, {"y": 12, "x": 6}, {"y": 12, "x": 7}, {"y": 12, "x": 8}, {"y": 12, "x": 9}, {"y": 13, "x": 0}, {"y": 13, "x": 1}, {"y": 13, "x": 2}, {"y": 13, "x": 3}, {"y": 13, "x": 4}, {"y": 13, "x": 5}, {"y": 13, "x": 6}, {"y": 13, "x": 7}, {"y": 13, "x": 8}, {"y": 13, "x": 9}, {"y": 14, "x": 0}, {"y": 14, "x": 1}, {"y": 14, "x": 2}, {"y": 14, "x": 3}, {"y": 14, "x": 4}, {"y": 14, "x": 5}, {"y": 14, "x": 6}, {"y": 14, "x": 7}, {"y": 14, "x": 8}, {"y": 14, "x": 9}, {"y": 15, "x": 0}, {"y": 15, "x": 1}, {"y": 15, "x": 2}, {"y": 15, "x": 3}, {"y": 15, "x": 4}, {"y": 15, "x": 5}, {"y": 15, "x": 6}, {"y": 15, "x": 7}, {"y": 15, "x": 8}, {"y": 15, "x": 9}, {"y": 16, "x": 0}, {"y": 16, "x": 1}, {"y": 16, "x": 2}, {"y": 16, "x": 3}, {"y": 16, "x": 4}, {"y": 16, "x": 5}, {"y": 16, "x": 6}, {"y": 16, "x": 7}, {"y": 16, "x": 8}, {"y": 16, "x": 9}, {"y": 17, "x": 0}, {"y": 17, "x": 1}, {"y": 17, "x": 2}, {"y": 17, "x": 3}, {"y": 17, "x": 4}, {"y": 17, "x": 5}, {"y": 17, "x": 6}, {"y": 17, "x": 7}, {"y": 17, "x": 8}, {"y": 17, "x": 9}, {"y": 18, "x": 0}, {"y": 18, "x": 1}, {"y": 18, "x": 2}, {"y": 18, "x": 3}, {"y": 18, "x": 4}, {"y": 18, "x": 5}, {"y": 18, "x": 6}, {"y": 18, "x": 7}, {"y": 18, "x": 8}, {"y": 18, "x": 9}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 501, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 502, "children": [{"drawsContent": false, "width": 2413, "skipsDraw": false, "layerID": 499, "children": [{"drawsContent": false, "width": 2413, "skipsDraw": false, "layerID": 503, "children": [{"drawsContent": false, "width": 1592, "skipsDraw": false, "layerID": 506, "children": [{"drawsContent": false, "width": 1350, "skipsDraw": false, "layerID": 505, "children": [{"textures": [{"texID": 30, "format": "LUMINANCE", "height": 746, "width": 1326}, {"texID": 31, "format": "LUMINANCE", "height": 746, "width": 1326}, {"texID": 32, "format": "LUMINANCE", "height": 746, "width": 1326}], "targetSurfaceID": 500, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 192.0, 0.0, 1.0], "height": 746, "drawsContent": true, "width": 1326, "layerID": 514, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 198.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 758}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 796.0, 270.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 903}, {"drawsContent": false, "width": 1592, "skipsDraw": false, "layerID": 508, "children": [{"drawsContent": false, "width": 1350, "skipsDraw": false, "layerID": 507, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 167.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 696}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 796.0, 270.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 903}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1206.5, 1916.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4792}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1206.5, 1916.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4792}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -480.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 489.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 978}, {"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [1594, 15]}, "skipsDraw": false, "layerID": 704, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 985.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [15, 978]}, "skipsDraw": false, "layerID": 705, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 489.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 978}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [15, 15]}, "skipsDraw": false, "layerID": 706, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 985.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special12.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special12.txt.json
deleted file mode 100644
index 7f98608a..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special12.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 500, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0}, {"y": 0, "x": 1}, {"y": 0, "x": 2}, {"y": 0, "x": 3}, {"y": 0, "x": 4}, {"y": 0, "x": 5}, {"y": 0, "x": 6}, {"y": 0, "x": 7}, {"y": 0, "x": 8}, {"y": 0, "x": 9}, {"y": 1, "x": 0}, {"y": 1, "x": 1}, {"y": 1, "x": 2}, {"y": 1, "x": 3}, {"y": 1, "x": 4}, {"y": 1, "x": 5}, {"y": 1, "x": 6}, {"y": 1, "x": 7}, {"y": 1, "x": 8}, {"y": 1, "x": 9}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 2, "x": 7}, {"y": 2, "x": 8}, {"y": 2, "x": 9}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 3, "x": 7}, {"y": 3, "x": 8}, {"y": 3, "x": 9}, {"y": 4, "x": 0, "texID": 38}, {"y": 4, "x": 1, "texID": 39}, {"y": 4, "x": 2, "texID": 40}, {"y": 4, "x": 3, "texID": 41}, {"y": 4, "x": 4, "texID": 42}, {"y": 4, "x": 5, "texID": 43}, {"y": 4, "x": 6, "texID": 45}, {"y": 4, "x": 7}, {"y": 4, "x": 8}, {"y": 4, "x": 9}, {"y": 5, "x": 0, "texID": 7}, {"y": 5, "x": 1, "texID": 15}, {"y": 5, "x": 2, "texID": 28}, {"y": 5, "x": 3, "texID": 20}, {"y": 5, "x": 4, "texID": 17}, {"y": 5, "x": 5, "texID": 16}, {"y": 5, "x": 6, "texID": 2}, {"y": 5, "x": 7}, {"y": 5, "x": 8}, {"y": 5, "x": 9}, {"y": 6, "x": 0, "texID": 13}, {"y": 6, "x": 1, "texID": 26}, {"y": 6, "x": 2, "texID": 4}, {"y": 6, "x": 3, "texID": 22}, {"y": 6, "x": 4, "texID": 11}, {"y": 6, "x": 5, "texID": 1}, {"y": 6, "x": 6, "texID": 12}, {"y": 6, "x": 7}, {"y": 6, "x": 8}, {"y": 6, "x": 9}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 7, "x": 7}, {"y": 7, "x": 8}, {"y": 7, "x": 9}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 8, "x": 7}, {"y": 8, "x": 8}, {"y": 8, "x": 9}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 9, "x": 7}, {"y": 9, "x": 8}, {"y": 9, "x": 9}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 10, "x": 7}, {"y": 10, "x": 8}, {"y": 10, "x": 9}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}, {"y": 11, "x": 7}, {"y": 11, "x": 8}, {"y": 11, "x": 9}, {"y": 12, "x": 0}, {"y": 12, "x": 1}, {"y": 12, "x": 2}, {"y": 12, "x": 3}, {"y": 12, "x": 4}, {"y": 12, "x": 5}, {"y": 12, "x": 6}, {"y": 12, "x": 7}, {"y": 12, "x": 8}, {"y": 12, "x": 9}, {"y": 13, "x": 0}, {"y": 13, "x": 1}, {"y": 13, "x": 2}, {"y": 13, "x": 3}, {"y": 13, "x": 4}, {"y": 13, "x": 5}, {"y": 13, "x": 6}, {"y": 13, "x": 7}, {"y": 13, "x": 8}, {"y": 13, "x": 9}, {"y": 14, "x": 0}, {"y": 14, "x": 1}, {"y": 14, "x": 2}, {"y": 14, "x": 3}, {"y": 14, "x": 4}, {"y": 14, "x": 5}, {"y": 14, "x": 6}, {"y": 14, "x": 7}, {"y": 14, "x": 8}, {"y": 14, "x": 9}, {"y": 15, "x": 0}, {"y": 15, "x": 1}, {"y": 15, "x": 2}, {"y": 15, "x": 3}, {"y": 15, "x": 4}, {"y": 15, "x": 5}, {"y": 15, "x": 6}, {"y": 15, "x": 7}, {"y": 15, "x": 8}, {"y": 15, "x": 9}, {"y": 16, "x": 0}, {"y": 16, "x": 1}, {"y": 16, "x": 2}, {"y": 16, "x": 3}, {"y": 16, "x": 4}, {"y": 16, "x": 5}, {"y": 16, "x": 6}, {"y": 16, "x": 7}, {"y": 16, "x": 8}, {"y": 16, "x": 9}, {"y": 17, "x": 0}, {"y": 17, "x": 1}, {"y": 17, "x": 2}, {"y": 17, "x": 3}, {"y": 17, "x": 4}, {"y": 17, "x": 5}, {"y": 17, "x": 6}, {"y": 17, "x": 7}, {"y": 17, "x": 8}, {"y": 17, "x": 9}, {"y": 18, "x": 0}, {"y": 18, "x": 1}, {"y": 18, "x": 2}, {"y": 18, "x": 3}, {"y": 18, "x": 4}, {"y": 18, "x": 5}, {"y": 18, "x": 6}, {"y": 18, "x": 7}, {"y": 18, "x": 8}, {"y": 18, "x": 9}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 501, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 502, "children": [{"drawsContent": false, "width": 2413, "skipsDraw": false, "layerID": 499, "children": [{"drawsContent": false, "width": 2413, "skipsDraw": false, "layerID": 503, "children": [{"drawsContent": false, "width": 1592, "skipsDraw": false, "layerID": 506, "children": [{"drawsContent": false, "width": 1350, "skipsDraw": false, "layerID": 505, "children": [{"textures": [{"texID": 30, "format": "LUMINANCE", "height": 746, "width": 1326}, {"texID": 31, "format": "LUMINANCE", "height": 746, "width": 1326}, {"texID": 32, "format": "LUMINANCE", "height": 746, "width": 1326}], "targetSurfaceID": 500, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 32.0, 0.0, 1.0], "height": 746, "drawsContent": true, "width": 1326, "layerID": 514, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 38.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 758}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 796.0, 110.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 903}, {"drawsContent": false, "width": 1592, "skipsDraw": false, "layerID": 508, "children": [{"drawsContent": false, "width": 1350, "skipsDraw": false, "layerID": 507, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 7.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 696}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 796.0, 110.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 903}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1206.5, 1756.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4792}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1206.5, 1756.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4792}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -640.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 489.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 978}, {"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [1594, 15]}, "skipsDraw": false, "layerID": 704, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 985.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [15, 978]}, "skipsDraw": false, "layerID": 705, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 489.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 978}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [15, 15]}, "skipsDraw": false, "layerID": 706, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 985.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special2.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special2.txt.json
deleted file mode 100644
index cabe2ed3..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special2.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 431.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 416.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 37, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 36, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [921, 43]}, "skipsDraw": false, "layerID": 24, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 672.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 43}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [921, 45]}, "skipsDraw": false, "layerID": 31, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [91, 44]}, "skipsDraw": false, "layerID": 25, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [68, 44]}, "skipsDraw": false, "layerID": 26, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [52, 44]}, "skipsDraw": false, "layerID": 27, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 672.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 44}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [62, 45]}, "skipsDraw": false, "layerID": 28, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 671.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 45}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [64, 48]}, "skipsDraw": false, "layerID": 29, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 670.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 48}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 50}], "dim": [75, 48]}, "skipsDraw": false, "layerID": 30, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 670.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 48}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 671.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 45}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 51}], "dim": [921, 24]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 651.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 24}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 651.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 24}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 103.5, 650.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 648.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 648.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 50}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 672.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 43}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 75, "skipsDraw": false, "layerID": 284, "children": [{"drawsContent": false, "width": 67, "skipsDraw": false, "layerID": 282, "children": [{"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 90}], "dim": [75, 60]}, "skipsDraw": false, "layerID": 281, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 140.5, 632.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 60}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 140.5, 632.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 52}, {"drawsContent": true, "width": 28, "tiles": {"info": [{"y": 0, "x": 0, "texID": 93}], "dim": [28, 21]}, "skipsDraw": false, "layerID": 283, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 141.0, 652.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 21}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 140.5, 637.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 52}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 44}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 52, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special3.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special3.txt.json
deleted file mode 100644
index d94359c..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special3.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 32, "format": "LUMINANCE", "height": 518, "width": 921}, {"texID": 33, "format": "LUMINANCE", "height": 518, "width": 921}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 431.0, 0.0, 1.0], "height": 518, "drawsContent": true, "width": 921, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 416.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 489}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 37, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 36, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [921, 6]}, "skipsDraw": false, "layerID": 24, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 691.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [921, 8]}, "skipsDraw": false, "layerID": 31, "children": [{"drawsContent": true, "width": 91, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [91, 7]}, "skipsDraw": false, "layerID": 25, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 144.5, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 68, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [68, 7]}, "skipsDraw": false, "layerID": 26, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 210.0, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 27, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 994.0, 690.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 62, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [62, 8]}, "skipsDraw": false, "layerID": 28, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 951.0, 690.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 64, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [64, 11]}, "skipsDraw": false, "layerID": 29, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 688.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [75, 11]}, "skipsDraw": false, "layerID": 30, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 848.5, 688.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 690.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 35, "children": [{"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 38, "children": [{"drawsContent": true, "width": 921, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [921, 12]}, "skipsDraw": false, "layerID": 32, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 688.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": false, "width": 921, "skipsDraw": false, "layerID": 33, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 688.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}, {"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [37, 37]}, "skipsDraw": false, "layerID": 34, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 103.5, 691.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 37}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 685.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 677.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 691.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 559.5, 433.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 522}, {"drawsContent": false, "width": 75, "skipsDraw": false, "layerID": 328, "children": [{"drawsContent": false, "width": 67, "skipsDraw": false, "layerID": 326, "children": [{"drawsContent": true, "width": 75, "tiles": {"info": [{"y": 0, "x": 0, "texID": 100}], "dim": [75, 60]}, "skipsDraw": false, "layerID": 325, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 140.5, 632.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 60}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 140.5, 632.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 52}, {"drawsContent": true, "width": 28, "tiles": {"info": [{"y": 0, "x": 0, "texID": 101}], "dim": [28, 21]}, "skipsDraw": false, "layerID": 327, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 141.0, 652.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 21}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 140.5, 637.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 52}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 1380.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 2760}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 44}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 52, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special4.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special4.txt.json
deleted file mode 100644
index 01b2de1..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special4.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 360, "width": 640}, {"texID": 32, "format": "LUMINANCE", "height": 360, "width": 640}, {"texID": 33, "format": "LUMINANCE", "height": 360, "width": 640}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 337.0, 0.0, 1.0], "height": 360, "drawsContent": true, "width": 640, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 317.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 334}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 302.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 363}, {"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 317.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 334}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 302.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 363}, {"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 445, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 444, "children": [{"drawsContent": true, "width": 640, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [640, 14]}, "skipsDraw": false, "layerID": 443, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 459.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 14}, {"drawsContent": true, "width": 640, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [640, 34]}, "skipsDraw": false, "layerID": 437, "children": [{"drawsContent": true, "width": 66, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [66, 33]}, "skipsDraw": false, "layerID": 433, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 345.0, 467.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 33}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [52, 33]}, "skipsDraw": false, "layerID": 434, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 390.0, 467.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 33}, {"drawsContent": true, "width": 38, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [38, 33]}, "skipsDraw": false, "layerID": 435, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 933.0, 467.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 33}, {"drawsContent": true, "width": 48, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [48, 34]}, "skipsDraw": false, "layerID": 436, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 467.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}, {"drawsContent": true, "width": 48, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [48, 36]}, "skipsDraw": false, "layerID": 422, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 872.0, 466.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}, {"drawsContent": true, "width": 55, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [55, 36]}, "skipsDraw": false, "layerID": 423, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 834.5, 466.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 36}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 467.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 34}, {"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 427, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 431, "children": [{"drawsContent": true, "width": 640, "tiles": {"info": [{"y": 0, "x": 0, "texID": 50}], "dim": [640, 21]}, "skipsDraw": false, "layerID": 424, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 453.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 21}, {"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 425, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 453.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 21}, {"drawsContent": true, "width": 30, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [30, 30]}, "skipsDraw": false, "layerID": 426, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 315.0, 453.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 30}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 451.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 25}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 451.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 39}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 468.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 32}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 302.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 363}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 983.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 1966}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 983.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 1966}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 440, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special5.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special5.txt.json
deleted file mode 100644
index a248227..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special5.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1594, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 360, "width": 640}, {"texID": 32, "format": "LUMINANCE", "height": 360, "width": 640}, {"texID": 33, "format": "LUMINANCE", "height": 360, "width": 640}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 337.0, 0.0, 1.0], "height": 360, "drawsContent": true, "width": 640, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 317.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 334}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 302.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 363}, {"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 317.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 334}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 302.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 363}, {"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 445, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 444, "children": [{"drawsContent": true, "width": 640, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [640, 6]}, "skipsDraw": false, "layerID": 443, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 481.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 640, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [640, 8]}, "skipsDraw": false, "layerID": 437, "children": [{"drawsContent": true, "width": 66, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [66, 7]}, "skipsDraw": false, "layerID": 433, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 345.0, 480.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 52, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [52, 7]}, "skipsDraw": false, "layerID": 434, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 390.0, 480.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 38, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [38, 7]}, "skipsDraw": false, "layerID": 435, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 933.0, 480.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 48, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [48, 8]}, "skipsDraw": false, "layerID": 436, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 904.0, 480.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 48, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [48, 10]}, "skipsDraw": false, "layerID": 422, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 872.0, 479.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 10}, {"drawsContent": true, "width": 55, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [55, 10]}, "skipsDraw": false, "layerID": 423, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 834.5, 479.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 10}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 480.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 427, "children": [{"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 431, "children": [{"drawsContent": true, "width": 640, "tiles": {"info": [{"y": 0, "x": 0, "texID": 50}], "dim": [640, 11]}, "skipsDraw": false, "layerID": 424, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 478.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": false, "width": 640, "skipsDraw": false, "layerID": 425, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 478.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 11}, {"drawsContent": true, "width": 30, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [30, 30]}, "skipsDraw": false, "layerID": 426, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 315.0, 482.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 30}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 477.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 25}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 471.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 26}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 481.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 632.0, 302.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 363}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 983.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 1966}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 983.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 1966}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [15, 993]}, "skipsDraw": false, "layerID": 440, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special6.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special6.txt.json
deleted file mode 100644
index 17b4c595..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special6.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 18, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 31, "format": "LUMINANCE", "height": 180, "width": 320}, {"texID": 32, "format": "LUMINANCE", "height": 180, "width": 320}, {"texID": 33, "format": "LUMINANCE", "height": 180, "width": 320}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 224.0, 0.0, 1.0], "height": 180, "drawsContent": true, "width": 320, "layerID": 23, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 183.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 112}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 181}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 20, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 19, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 183.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 112}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 181}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 497, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 496, "children": [{"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 30}], "dim": [320, 6]}, "skipsDraw": false, "layerID": 484, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 236.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}, {"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [320, 8]}, "skipsDraw": false, "layerID": 491, "children": [{"drawsContent": true, "width": 37, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [37, 7]}, "skipsDraw": false, "layerID": 485, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 580.5, 235.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 33, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [33, 7]}, "skipsDraw": false, "layerID": 486, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 601.5, 235.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 22, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [22, 7]}, "skipsDraw": false, "layerID": 487, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 871.0, 235.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 7}, {"drawsContent": true, "width": 32, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [32, 8]}, "skipsDraw": false, "layerID": 488, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 859.0, 235.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 34, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [34, 8]}, "skipsDraw": false, "layerID": 489, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 841.0, 235.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 38, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [38, 8]}, "skipsDraw": false, "layerID": 490, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 819.0, 235.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 235.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 495, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 498, "children": [{"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [320, 8]}, "skipsDraw": false, "layerID": 492, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 235.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 493, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 235.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 8}, {"drawsContent": true, "width": 22, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [22, 22]}, "skipsDraw": false, "layerID": 494, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 563.0, 238.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 22}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 236.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 12}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 231.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 16}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 236.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 6}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 181}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special7.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special7.txt.json
deleted file mode 100644
index 3187a1d..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special7.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 500, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 15}, {"y": 0, "x": 1, "texID": 20}, {"y": 0, "x": 2, "texID": 16}, {"y": 0, "x": 3, "texID": 2}, {"y": 0, "x": 4, "texID": 7}, {"y": 0, "x": 5, "texID": 17}, {"y": 0, "x": 6, "texID": 28}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 501, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 502, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 499, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 503, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 506, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 505, "children": [{"textures": [{"texID": 30, "format": "LUMINANCE", "height": 180, "width": 320}, {"texID": 31, "format": "LUMINANCE", "height": 180, "width": 320}, {"texID": 32, "format": "LUMINANCE", "height": 180, "width": 320}], "targetSurfaceID": 500, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.0, 0.0, 1.0], "height": 180, "drawsContent": true, "width": 320, "layerID": 514, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 181}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 181}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 508, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 507, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 143.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 170}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 181}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 528, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 527, "children": [{"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [320, 4]}, "skipsDraw": false, "layerID": 515, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 227.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4}, {"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [320, 16]}, "skipsDraw": false, "layerID": 522, "children": [{"drawsContent": true, "width": 32, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [32, 15]}, "skipsDraw": false, "layerID": 516, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 578.0, 231.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}, {"drawsContent": true, "width": 23, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [23, 15]}, "skipsDraw": false, "layerID": 517, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 601.5, 231.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}, {"drawsContent": true, "width": 17, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [17, 15]}, "skipsDraw": false, "layerID": 518, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 873.5, 231.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}, {"drawsContent": true, "width": 22, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [22, 16]}, "skipsDraw": false, "layerID": 519, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 859.0, 231.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 16}, {"drawsContent": true, "width": 24, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [24, 16]}, "skipsDraw": false, "layerID": 520, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 841.0, 231.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 16}, {"drawsContent": true, "width": 28, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [28, 16]}, "skipsDraw": false, "layerID": 521, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 819.0, 231.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 16}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 231.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 16}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 526, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 529, "children": [{"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 50}], "dim": [320, 7]}, "skipsDraw": false, "layerID": 523, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 224.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 7}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 524, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 224.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 7}, {"drawsContent": true, "width": 12, "tiles": {"info": [{"y": 0, "x": 0, "texID": 114}], "dim": [12, 12]}, "skipsDraw": false, "layerID": 525, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 568.0, 224.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 12}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 223.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 12}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 223.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 16}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 232.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 14}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 181}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special8.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special8.txt.json
deleted file mode 100644
index 7f050c3c..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special8.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 500, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 15}, {"y": 0, "x": 1, "texID": 20}, {"y": 0, "x": 2, "texID": 16}, {"y": 0, "x": 3, "texID": 2}, {"y": 0, "x": 4, "texID": 7}, {"y": 0, "x": 5, "texID": 17}, {"y": 0, "x": 6, "texID": 28}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 501, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 502, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 499, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 503, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 506, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 505, "children": [{"textures": [{"texID": 30, "format": "LUMINANCE", "height": 180, "width": 320}, {"texID": 31, "format": "LUMINANCE", "height": 180, "width": 320}, {"texID": 32, "format": "LUMINANCE", "height": 180, "width": 320}], "targetSurfaceID": 500, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.0, 0.0, 1.0], "height": 180, "drawsContent": true, "width": 320, "layerID": 514, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 181}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 181}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 508, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 507, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 143.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 170}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 181}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 528, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 527, "children": [{"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [320, 1]}, "skipsDraw": false, "layerID": 515, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 238.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 1}, {"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [320, 3]}, "skipsDraw": false, "layerID": 522, "children": [{"drawsContent": true, "width": 32, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [32, 2]}, "skipsDraw": false, "layerID": 516, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 578.0, 238.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 2}, {"drawsContent": true, "width": 23, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [23, 2]}, "skipsDraw": false, "layerID": 517, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 601.5, 238.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 2}, {"drawsContent": true, "width": 17, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [17, 2]}, "skipsDraw": false, "layerID": 518, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 873.5, 238.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 2}, {"drawsContent": true, "width": 22, "tiles": {"info": [{"y": 0, "x": 0, "texID": 40}], "dim": [22, 3]}, "skipsDraw": false, "layerID": 519, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 859.0, 237.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 3}, {"drawsContent": true, "width": 24, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [24, 3]}, "skipsDraw": false, "layerID": 520, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 841.0, 237.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 3}, {"drawsContent": true, "width": 28, "tiles": {"info": [{"y": 0, "x": 0, "texID": 42}], "dim": [28, 3]}, "skipsDraw": false, "layerID": 521, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 819.0, 237.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 3}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 237.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 3}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 526, "children": [{"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 529, "children": [{"drawsContent": true, "width": 320, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [320, 3]}, "skipsDraw": false, "layerID": 523, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 237.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 3}, {"drawsContent": false, "width": 320, "skipsDraw": false, "layerID": 524, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 237.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 3}, {"drawsContent": true, "width": 12, "tiles": {"info": [{"y": 0, "x": 0, "texID": 114}], "dim": [12, 12]}, "skipsDraw": false, "layerID": 525, "children": [], "type": "ContentLayer", "transform": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 568.0, 238.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 12}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 236.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 12}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 233.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 11}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 238.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 1}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 722.0, 148.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 181}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/YT_special9.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/YT_special9.txt.json
deleted file mode 100644
index 739e147..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/YT_special9.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 500, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 15}, {"y": 0, "x": 1, "texID": 20}, {"y": 0, "x": 2, "texID": 16}, {"y": 0, "x": 3, "texID": 2}, {"y": 0, "x": 4, "texID": 7}, {"y": 0, "x": 5, "texID": 17}, {"y": 0, "x": 6, "texID": 28}, {"y": 0, "x": 7}, {"y": 0, "x": 8}, {"y": 0, "x": 9}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 1, "x": 7}, {"y": 1, "x": 8}, {"y": 1, "x": 9}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 2, "x": 7}, {"y": 2, "x": 8}, {"y": 2, "x": 9}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 3, "x": 7}, {"y": 3, "x": 8}, {"y": 3, "x": 9}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 4, "x": 7}, {"y": 4, "x": 8}, {"y": 4, "x": 9}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 5, "x": 7}, {"y": 5, "x": 8}, {"y": 5, "x": 9}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 6, "x": 7}, {"y": 6, "x": 8}, {"y": 6, "x": 9}, {"y": 7, "x": 0}, {"y": 7, "x": 1}, {"y": 7, "x": 2}, {"y": 7, "x": 3}, {"y": 7, "x": 4}, {"y": 7, "x": 5}, {"y": 7, "x": 6}, {"y": 7, "x": 7}, {"y": 7, "x": 8}, {"y": 7, "x": 9}, {"y": 8, "x": 0}, {"y": 8, "x": 1}, {"y": 8, "x": 2}, {"y": 8, "x": 3}, {"y": 8, "x": 4}, {"y": 8, "x": 5}, {"y": 8, "x": 6}, {"y": 8, "x": 7}, {"y": 8, "x": 8}, {"y": 8, "x": 9}, {"y": 9, "x": 0}, {"y": 9, "x": 1}, {"y": 9, "x": 2}, {"y": 9, "x": 3}, {"y": 9, "x": 4}, {"y": 9, "x": 5}, {"y": 9, "x": 6}, {"y": 9, "x": 7}, {"y": 9, "x": 8}, {"y": 9, "x": 9}, {"y": 10, "x": 0}, {"y": 10, "x": 1}, {"y": 10, "x": 2}, {"y": 10, "x": 3}, {"y": 10, "x": 4}, {"y": 10, "x": 5}, {"y": 10, "x": 6}, {"y": 10, "x": 7}, {"y": 10, "x": 8}, {"y": 10, "x": 9}, {"y": 11, "x": 0}, {"y": 11, "x": 1}, {"y": 11, "x": 2}, {"y": 11, "x": 3}, {"y": 11, "x": 4}, {"y": 11, "x": 5}, {"y": 11, "x": 6}, {"y": 11, "x": 7}, {"y": 11, "x": 8}, {"y": 11, "x": 9}, {"y": 12, "x": 0}, {"y": 12, "x": 1}, {"y": 12, "x": 2}, {"y": 12, "x": 3}, {"y": 12, "x": 4}, {"y": 12, "x": 5}, {"y": 12, "x": 6}, {"y": 12, "x": 7}, {"y": 12, "x": 8}, {"y": 12, "x": 9}, {"y": 13, "x": 0}, {"y": 13, "x": 1}, {"y": 13, "x": 2}, {"y": 13, "x": 3}, {"y": 13, "x": 4}, {"y": 13, "x": 5}, {"y": 13, "x": 6}, {"y": 13, "x": 7}, {"y": 13, "x": 8}, {"y": 13, "x": 9}, {"y": 14, "x": 0}, {"y": 14, "x": 1}, {"y": 14, "x": 2}, {"y": 14, "x": 3}, {"y": 14, "x": 4}, {"y": 14, "x": 5}, {"y": 14, "x": 6}, {"y": 14, "x": 7}, {"y": 14, "x": 8}, {"y": 14, "x": 9}, {"y": 15, "x": 0}, {"y": 15, "x": 1}, {"y": 15, "x": 2}, {"y": 15, "x": 3}, {"y": 15, "x": 4}, {"y": 15, "x": 5}, {"y": 15, "x": 6}, {"y": 15, "x": 7}, {"y": 15, "x": 8}, {"y": 15, "x": 9}, {"y": 16, "x": 0}, {"y": 16, "x": 1}, {"y": 16, "x": 2}, {"y": 16, "x": 3}, {"y": 16, "x": 4}, {"y": 16, "x": 5}, {"y": 16, "x": 6}, {"y": 16, "x": 7}, {"y": 16, "x": 8}, {"y": 16, "x": 9}, {"y": 17, "x": 0}, {"y": 17, "x": 1}, {"y": 17, "x": 2}, {"y": 17, "x": 3}, {"y": 17, "x": 4}, {"y": 17, "x": 5}, {"y": 17, "x": 6}, {"y": 17, "x": 7}, {"y": 17, "x": 8}, {"y": 17, "x": 9}, {"y": 18, "x": 0}, {"y": 18, "x": 1}, {"y": 18, "x": 2}, {"y": 18, "x": 3}, {"y": 18, "x": 4}, {"y": 18, "x": 5}, {"y": 18, "x": 6}, {"y": 18, "x": 7}, {"y": 18, "x": 8}, {"y": 18, "x": 9}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 501, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 502, "children": [{"drawsContent": false, "width": 2413, "skipsDraw": false, "layerID": 499, "children": [{"drawsContent": false, "width": 2413, "skipsDraw": false, "layerID": 503, "children": [{"drawsContent": false, "width": 1592, "skipsDraw": false, "layerID": 506, "children": [{"drawsContent": false, "width": 1350, "skipsDraw": false, "layerID": 505, "children": [{"textures": [{"texID": 30, "format": "LUMINANCE", "height": 746, "width": 1326}, {"texID": 31, "format": "LUMINANCE", "height": 746, "width": 1326}, {"texID": 32, "format": "LUMINANCE", "height": 746, "width": 1326}], "targetSurfaceID": 500, "vertex_shader": "VertexShaderPosTexYUVStretch", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 672.0, 0.0, 1.0], "height": 746, "drawsContent": true, "width": 1326, "layerID": 514, "type": "VideoLayer", "fragment_shader": "FragmentShaderYUVVideo"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 678.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 758}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 796.0, 750.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 903}, {"drawsContent": false, "width": 1592, "skipsDraw": false, "layerID": 508, "children": [{"drawsContent": false, "width": 1350, "skipsDraw": false, "layerID": 507, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 795.0, 647.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 696}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 796.0, 750.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 903}, {"drawsContent": true, "width": 262, "tiles": {"info": [{"y": 0, "x": 0, "texID": 115}], "dim": [262, 86]}, "skipsDraw": false, "layerID": 720, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1475.0, 947.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 86}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1206.5, 2396.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4792}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1206.5, 2396.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 4792}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 489.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 978}, {"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [1594, 15]}, "skipsDraw": false, "layerID": 704, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 985.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [15, 978]}, "skipsDraw": false, "layerID": 705, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 489.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 978}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [15, 15]}, "skipsDraw": false, "layerID": 706, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 985.5, 0.0, 1.0], "targetSurfaceID": 500, "height": 15}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 500, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/abra0.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/abra0.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/abra0.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/abra1.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/abra1.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/abra1.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/abra2.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/abra2.txt.json
deleted file mode 100644
index 504583d8d..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/abra2.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 14, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 15}, {"y": 0, "x": 1, "texID": 20}, {"y": 0, "x": 2, "texID": 16}, {"y": 0, "x": 3, "texID": 2}, {"y": 0, "x": 4, "texID": 7}, {"y": 0, "x": 5, "texID": 17}, {"y": 0, "x": 6, "texID": 28}, {"y": 0, "x": 7}, {"y": 0, "x": 8}, {"y": 0, "x": 9}, {"y": 0, "x": 10}, {"y": 0, "x": 11}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 1, "x": 7}, {"y": 1, "x": 8}, {"y": 1, "x": 9}, {"y": 1, "x": 10}, {"y": 1, "x": 11}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 2, "x": 7}, {"y": 2, "x": 8}, {"y": 2, "x": 9}, {"y": 2, "x": 10}, {"y": 2, "x": 11}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 3, "x": 7}, {"y": 3, "x": 8}, {"y": 3, "x": 9}, {"y": 3, "x": 10}, {"y": 3, "x": 11}, {"y": 4, "x": 0}, {"y": 4, "x": 1}, {"y": 4, "x": 2}, {"y": 4, "x": 3}, {"y": 4, "x": 4}, {"y": 4, "x": 5}, {"y": 4, "x": 6}, {"y": 4, "x": 7}, {"y": 4, "x": 8}, {"y": 4, "x": 9}, {"y": 4, "x": 10}, {"y": 4, "x": 11}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 5, "x": 7}, {"y": 5, "x": 8}, {"y": 5, "x": 9}, {"y": 5, "x": 10}, {"y": 5, "x": 11}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 6, "x": 7}, {"y": 6, "x": 8}, {"y": 6, "x": 9}, {"y": 6, "x": 10}, {"y": 6, "x": 11}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 15, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 16, "children": [{"drawsContent": false, "width": 3009, "skipsDraw": false, "layerID": 13, "children": [{"drawsContent": false, "width": 3009, "skipsDraw": false, "layerID": 17, "children": [{"drawsContent": false, "width": 3000, "skipsDraw": false, "layerID": 20, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 1648, "premultiplied": false, "width": 3000}], "targetSurfaceID": 14, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1509.0, 833.0, 0.0, 1.0], "height": 1648, "drawsContent": true, "width": 3000, "layerID": 21, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1509.0, 833.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 1648}, {"drawsContent": true, "width": 428, "tiles": {"info": [{"y": 0, "x": 0, "texID": 32}, {"y": 0, "x": 1, "texID": 33}, {"y": 1, "x": 0, "texID": 34}, {"y": 1, "x": 1, "texID": 35}, {"y": 2, "x": 0}, {"y": 2, "x": 1}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1534.0, 786.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 613}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1504.5, 836.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 1672}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1504.5, 836.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 1672}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 489.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 978}, {"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 36}], "dim": [1594, 15]}, "skipsDraw": false, "layerID": 26, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 985.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 15}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [15, 978]}, "skipsDraw": false, "layerID": 27, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 489.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 978}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 38}], "dim": [15, 15]}, "skipsDraw": false, "layerID": 28, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 985.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 15}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/abra3.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/abra3.txt.json
deleted file mode 100644
index 4c1336e..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/abra3.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 14, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 15}, {"y": 0, "x": 1, "texID": 20}, {"y": 0, "x": 2, "texID": 16}, {"y": 0, "x": 3, "texID": 2}, {"y": 0, "x": 4, "texID": 7}, {"y": 0, "x": 5, "texID": 17}, {"y": 0, "x": 6, "texID": 28}, {"y": 0, "x": 7}, {"y": 0, "x": 8}, {"y": 0, "x": 9}, {"y": 0, "x": 10}, {"y": 0, "x": 11}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 1, "x": 7}, {"y": 1, "x": 8}, {"y": 1, "x": 9}, {"y": 1, "x": 10}, {"y": 1, "x": 11}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 2, "x": 7}, {"y": 2, "x": 8}, {"y": 2, "x": 9}, {"y": 2, "x": 10}, {"y": 2, "x": 11}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 3, "x": 7}, {"y": 3, "x": 8}, {"y": 3, "x": 9}, {"y": 3, "x": 10}, {"y": 3, "x": 11}, {"y": 4, "x": 0, "texID": 39}, {"y": 4, "x": 1, "texID": 40}, {"y": 4, "x": 2, "texID": 41}, {"y": 4, "x": 3, "texID": 42}, {"y": 4, "x": 4, "texID": 43}, {"y": 4, "x": 5, "texID": 44}, {"y": 4, "x": 6, "texID": 45}, {"y": 4, "x": 7}, {"y": 4, "x": 8}, {"y": 4, "x": 9}, {"y": 4, "x": 10}, {"y": 4, "x": 11}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 5, "x": 7}, {"y": 5, "x": 8}, {"y": 5, "x": 9}, {"y": 5, "x": 10}, {"y": 5, "x": 11}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 6, "x": 7}, {"y": 6, "x": 8}, {"y": 6, "x": 9}, {"y": 6, "x": 10}, {"y": 6, "x": 11}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 15, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 16, "children": [{"drawsContent": false, "width": 2089, "skipsDraw": false, "layerID": 13, "children": [{"drawsContent": false, "width": 2089, "skipsDraw": false, "layerID": 17, "children": [{"drawsContent": false, "width": 2083, "skipsDraw": false, "layerID": 20, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 1145, "premultiplied": false, "width": 2083}], "targetSurfaceID": 14, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1020.5, 412.5, 0.0, 1.0], "height": 1145, "drawsContent": true, "width": 2083, "layerID": 21, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1020.5, 412.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1145}, {"drawsContent": true, "width": 297, "tiles": {"info": [{"y": 0, "x": 0, "texID": 32}], "dim": [297, 424]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1064.5, 545.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 424}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1017.5, 414.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1161}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1017.5, 414.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1161}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -27.0, -166.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 489.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 978}, {"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [1594, 15]}, "skipsDraw": false, "layerID": 38, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 985.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 15}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [15, 978]}, "skipsDraw": false, "layerID": 39, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 489.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 978}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [15, 15]}, "skipsDraw": false, "layerID": 40, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 985.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 15}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/abra4.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/abra4.txt.json
deleted file mode 100644
index 4c1336e..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/abra4.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 14, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 15}, {"y": 0, "x": 1, "texID": 20}, {"y": 0, "x": 2, "texID": 16}, {"y": 0, "x": 3, "texID": 2}, {"y": 0, "x": 4, "texID": 7}, {"y": 0, "x": 5, "texID": 17}, {"y": 0, "x": 6, "texID": 28}, {"y": 0, "x": 7}, {"y": 0, "x": 8}, {"y": 0, "x": 9}, {"y": 0, "x": 10}, {"y": 0, "x": 11}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 1, "x": 7}, {"y": 1, "x": 8}, {"y": 1, "x": 9}, {"y": 1, "x": 10}, {"y": 1, "x": 11}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 2, "x": 7}, {"y": 2, "x": 8}, {"y": 2, "x": 9}, {"y": 2, "x": 10}, {"y": 2, "x": 11}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 3, "x": 7}, {"y": 3, "x": 8}, {"y": 3, "x": 9}, {"y": 3, "x": 10}, {"y": 3, "x": 11}, {"y": 4, "x": 0, "texID": 39}, {"y": 4, "x": 1, "texID": 40}, {"y": 4, "x": 2, "texID": 41}, {"y": 4, "x": 3, "texID": 42}, {"y": 4, "x": 4, "texID": 43}, {"y": 4, "x": 5, "texID": 44}, {"y": 4, "x": 6, "texID": 45}, {"y": 4, "x": 7}, {"y": 4, "x": 8}, {"y": 4, "x": 9}, {"y": 4, "x": 10}, {"y": 4, "x": 11}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 5, "x": 7}, {"y": 5, "x": 8}, {"y": 5, "x": 9}, {"y": 5, "x": 10}, {"y": 5, "x": 11}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 6, "x": 7}, {"y": 6, "x": 8}, {"y": 6, "x": 9}, {"y": 6, "x": 10}, {"y": 6, "x": 11}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 15, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 16, "children": [{"drawsContent": false, "width": 2089, "skipsDraw": false, "layerID": 13, "children": [{"drawsContent": false, "width": 2089, "skipsDraw": false, "layerID": 17, "children": [{"drawsContent": false, "width": 2083, "skipsDraw": false, "layerID": 20, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 1145, "premultiplied": false, "width": 2083}], "targetSurfaceID": 14, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1020.5, 412.5, 0.0, 1.0], "height": 1145, "drawsContent": true, "width": 2083, "layerID": 21, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1020.5, 412.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1145}, {"drawsContent": true, "width": 297, "tiles": {"info": [{"y": 0, "x": 0, "texID": 32}], "dim": [297, 424]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1064.5, 545.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 424}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1017.5, 414.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1161}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1017.5, 414.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1161}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -27.0, -166.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 489.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 978}, {"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [1594, 15]}, "skipsDraw": false, "layerID": 38, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 985.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 15}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [15, 978]}, "skipsDraw": false, "layerID": 39, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 489.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 978}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [15, 15]}, "skipsDraw": false, "layerID": 40, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 985.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 15}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/abra5.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/abra5.txt.json
deleted file mode 100644
index 4c1336e..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/abra5.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 14, "children": [{"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 15}, {"y": 0, "x": 1, "texID": 20}, {"y": 0, "x": 2, "texID": 16}, {"y": 0, "x": 3, "texID": 2}, {"y": 0, "x": 4, "texID": 7}, {"y": 0, "x": 5, "texID": 17}, {"y": 0, "x": 6, "texID": 28}, {"y": 0, "x": 7}, {"y": 0, "x": 8}, {"y": 0, "x": 9}, {"y": 0, "x": 10}, {"y": 0, "x": 11}, {"y": 1, "x": 0, "texID": 12}, {"y": 1, "x": 1, "texID": 1}, {"y": 1, "x": 2, "texID": 26}, {"y": 1, "x": 3, "texID": 13}, {"y": 1, "x": 4, "texID": 22}, {"y": 1, "x": 5, "texID": 11}, {"y": 1, "x": 6, "texID": 4}, {"y": 1, "x": 7}, {"y": 1, "x": 8}, {"y": 1, "x": 9}, {"y": 1, "x": 10}, {"y": 1, "x": 11}, {"y": 2, "x": 0, "texID": 6}, {"y": 2, "x": 1, "texID": 27}, {"y": 2, "x": 2, "texID": 18}, {"y": 2, "x": 3, "texID": 25}, {"y": 2, "x": 4, "texID": 8}, {"y": 2, "x": 5, "texID": 9}, {"y": 2, "x": 6, "texID": 10}, {"y": 2, "x": 7}, {"y": 2, "x": 8}, {"y": 2, "x": 9}, {"y": 2, "x": 10}, {"y": 2, "x": 11}, {"y": 3, "x": 0, "texID": 5}, {"y": 3, "x": 1, "texID": 21}, {"y": 3, "x": 2, "texID": 23}, {"y": 3, "x": 3, "texID": 24}, {"y": 3, "x": 4, "texID": 3}, {"y": 3, "x": 5, "texID": 19}, {"y": 3, "x": 6, "texID": 14}, {"y": 3, "x": 7}, {"y": 3, "x": 8}, {"y": 3, "x": 9}, {"y": 3, "x": 10}, {"y": 3, "x": 11}, {"y": 4, "x": 0, "texID": 39}, {"y": 4, "x": 1, "texID": 40}, {"y": 4, "x": 2, "texID": 41}, {"y": 4, "x": 3, "texID": 42}, {"y": 4, "x": 4, "texID": 43}, {"y": 4, "x": 5, "texID": 44}, {"y": 4, "x": 6, "texID": 45}, {"y": 4, "x": 7}, {"y": 4, "x": 8}, {"y": 4, "x": 9}, {"y": 4, "x": 10}, {"y": 4, "x": 11}, {"y": 5, "x": 0}, {"y": 5, "x": 1}, {"y": 5, "x": 2}, {"y": 5, "x": 3}, {"y": 5, "x": 4}, {"y": 5, "x": 5}, {"y": 5, "x": 6}, {"y": 5, "x": 7}, {"y": 5, "x": 8}, {"y": 5, "x": 9}, {"y": 5, "x": 10}, {"y": 5, "x": 11}, {"y": 6, "x": 0}, {"y": 6, "x": 1}, {"y": 6, "x": 2}, {"y": 6, "x": 3}, {"y": 6, "x": 4}, {"y": 6, "x": 5}, {"y": 6, "x": 6}, {"y": 6, "x": 7}, {"y": 6, "x": 8}, {"y": 6, "x": 9}, {"y": 6, "x": 10}, {"y": 6, "x": 11}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 15, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 16, "children": [{"drawsContent": false, "width": 2089, "skipsDraw": false, "layerID": 13, "children": [{"drawsContent": false, "width": 2089, "skipsDraw": false, "layerID": 17, "children": [{"drawsContent": false, "width": 2083, "skipsDraw": false, "layerID": 20, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 1145, "premultiplied": false, "width": 2083}], "targetSurfaceID": 14, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1020.5, 412.5, 0.0, 1.0], "height": 1145, "drawsContent": true, "width": 2083, "layerID": 21, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1020.5, 412.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1145}, {"drawsContent": true, "width": 297, "tiles": {"info": [{"y": 0, "x": 0, "texID": 32}], "dim": [297, 424]}, "skipsDraw": false, "layerID": 22, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1064.5, 545.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 424}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1017.5, 414.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1161}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1017.5, 414.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 1161}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -27.0, -166.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 489.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 978}, {"drawsContent": true, "width": 1594, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [1594, 15]}, "skipsDraw": false, "layerID": 38, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 797.0, 985.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 15}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 34}], "dim": [15, 978]}, "skipsDraw": false, "layerID": 39, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 489.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 978}, {"drawsContent": true, "width": 15, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [15, 15]}, "skipsDraw": false, "layerID": 40, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1601.5, 985.5, 0.0, 1.0], "targetSurfaceID": 14, "height": 15}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 14, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test00_0.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test00_0.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test00_0.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test00_1.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test00_1.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test00_1.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test00_2.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test00_2.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test00_2.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test00_3.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test00_3.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test00_3.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test01_0.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test01_0.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test01_0.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test01_1.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test01_1.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test01_1.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test01_2.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test01_2.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test01_2.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test01_3.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test01_3.txt.json
deleted file mode 100644
index 63f4cae..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test01_3.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test02_0.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test02_0.txt.json
deleted file mode 100644
index f21ffcc..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test02_0.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test02_1.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test02_1.txt.json
deleted file mode 100644
index f21ffcc..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test02_1.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test02_2.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test02_2.txt.json
deleted file mode 100644
index f21ffcc..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test02_2.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test02_3.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test02_3.txt.json
deleted file mode 100644
index f21ffcc..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test02_3.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test03_0.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test03_0.txt.json
deleted file mode 100644
index 12d26fed..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test03_0.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 15, "children": [{"textures": [{"texID": 32, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 462.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 16, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 462.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 33, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 766.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 18, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 766.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 19, "children": [{"textures": [{"texID": 34, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1070.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 20, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1070.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test03_1.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test03_1.txt.json
deleted file mode 100644
index 12d26fed..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test03_1.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 15, "children": [{"textures": [{"texID": 32, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 462.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 16, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 462.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 33, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 766.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 18, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 766.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 19, "children": [{"textures": [{"texID": 34, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1070.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 20, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1070.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test03_2.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test03_2.txt.json
deleted file mode 100644
index 12d26fed..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test03_2.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 15, "children": [{"textures": [{"texID": 32, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 462.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 16, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 462.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 33, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 766.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 18, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 766.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 19, "children": [{"textures": [{"texID": 34, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1070.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 20, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1070.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test03_3.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test03_3.txt.json
deleted file mode 100644
index 12d26fed..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test03_3.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 31, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 158.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 15, "children": [{"textures": [{"texID": 32, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 462.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 16, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 462.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 33, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 766.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 18, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 766.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}, {"drawsContent": false, "width": 300, "skipsDraw": false, "layerID": 19, "children": [{"textures": [{"texID": 34, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1070.0, 158.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 20, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1070.0, 158.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 300}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test04_0.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test04_0.txt.json
deleted file mode 100644
index 4c82c82..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test04_0.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 31}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 32, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 15, "children": [{"textures": [{"texID": 34, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 16, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 36, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 18, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 19, "children": [{"textures": [{"texID": 38, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 20, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 21, "children": [{"textures": [{"texID": 40, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 22, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 23, "children": [{"textures": [{"texID": 42, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 24, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 25, "children": [{"textures": [{"texID": 44, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 26, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 27, "children": [{"textures": [{"texID": 46, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 28, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 47}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 29, "children": [{"textures": [{"texID": 48, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 30, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 49}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 31, "children": [{"textures": [{"texID": 50, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 32, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test04_1.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test04_1.txt.json
deleted file mode 100644
index 4c82c82..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test04_1.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 31}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 32, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 15, "children": [{"textures": [{"texID": 34, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 16, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 36, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 18, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 19, "children": [{"textures": [{"texID": 38, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 20, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 21, "children": [{"textures": [{"texID": 40, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 22, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 23, "children": [{"textures": [{"texID": 42, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 24, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 25, "children": [{"textures": [{"texID": 44, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 26, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 27, "children": [{"textures": [{"texID": 46, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 28, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 47}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 29, "children": [{"textures": [{"texID": 48, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 30, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 49}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 31, "children": [{"textures": [{"texID": 50, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 32, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test04_2.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test04_2.txt.json
deleted file mode 100644
index 4c82c82..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test04_2.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 31}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 32, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 15, "children": [{"textures": [{"texID": 34, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 16, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 36, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 18, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 19, "children": [{"textures": [{"texID": 38, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 20, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 21, "children": [{"textures": [{"texID": 40, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 22, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 23, "children": [{"textures": [{"texID": 42, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 24, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 25, "children": [{"textures": [{"texID": 44, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 26, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 27, "children": [{"textures": [{"texID": 46, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 28, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 47}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 29, "children": [{"textures": [{"texID": 48, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 30, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 49}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 31, "children": [{"textures": [{"texID": 50, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 32, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/measuring_confs/test04_3.txt.json b/gpu/tools/compositor_model_bench/measuring_confs/test04_3.txt.json
deleted file mode 100644
index 4c82c82..0000000
--- a/gpu/tools/compositor_model_bench/measuring_confs/test04_3.txt.json
+++ /dev/null
@@ -1 +0,0 @@
-{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 8, "children": [{"drawsContent": true, "width": 1609, "tiles": {"info": [{"y": 0, "x": 0, "texID": 5}, {"y": 0, "x": 1, "texID": 8}, {"y": 0, "x": 2, "texID": 17}, {"y": 0, "x": 3, "texID": 19}, {"y": 0, "x": 4, "texID": 26}, {"y": 0, "x": 5, "texID": 28}, {"y": 0, "x": 6, "texID": 3}, {"y": 1, "x": 0, "texID": 23}, {"y": 1, "x": 1, "texID": 22}, {"y": 1, "x": 2, "texID": 15}, {"y": 1, "x": 3, "texID": 11}, {"y": 1, "x": 4, "texID": 21}, {"y": 1, "x": 5, "texID": 13}, {"y": 1, "x": 6, "texID": 27}, {"y": 2, "x": 0, "texID": 7}, {"y": 2, "x": 1, "texID": 18}, {"y": 2, "x": 2, "texID": 14}, {"y": 2, "x": 3, "texID": 4}, {"y": 2, "x": 4, "texID": 24}, {"y": 2, "x": 5, "texID": 12}, {"y": 2, "x": 6, "texID": 1}, {"y": 3, "x": 0, "texID": 10}, {"y": 3, "x": 1, "texID": 9}, {"y": 3, "x": 2, "texID": 20}, {"y": 3, "x": 3, "texID": 2}, {"y": 3, "x": 4, "texID": 6}, {"y": 3, "x": 5, "texID": 25}, {"y": 3, "x": 6, "texID": 16}], "dim": [256, 256]}, "skipsDraw": false, "layerID": 9, "children": [{"drawsContent": false, "width": 0, "skipsDraw": false, "layerID": 10, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 7, "children": [{"drawsContent": false, "width": 1609, "skipsDraw": false, "layerID": 11, "children": [{"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 31}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 13, "children": [{"textures": [{"texID": 32, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 14, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 33}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 15, "children": [{"textures": [{"texID": 34, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 16, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 35}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 17, "children": [{"textures": [{"texID": 36, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 18, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 37}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 19, "children": [{"textures": [{"texID": 38, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 20, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 39}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 21, "children": [{"textures": [{"texID": 40, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 160.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 22, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 160.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 41}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 23, "children": [{"textures": [{"texID": 42, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 24, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 160.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 43}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 25, "children": [{"textures": [{"texID": 44, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 26, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 252.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 45}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 27, "children": [{"textures": [{"texID": 46, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 28, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 352.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 47}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 29, "children": [{"textures": [{"texID": 48, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 30, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 452.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}, {"drawsContent": true, "width": 304, "tiles": {"info": [{"y": 0, "x": 0, "texID": 49}], "dim": [304, 304]}, "skipsDraw": false, "layerID": 31, "children": [{"textures": [{"texID": 50, "format": "RGBA", "height": 300, "premultiplied": false, "width": 300}], "targetSurfaceID": 8, "vertex_shader": "VertexShaderPosTex", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 252.0, 0.0, 1.0], "height": 300, "drawsContent": true, "width": 300, "layerID": 32, "type": "CanvasLayer", "fragment_shader": "FragmentShaderRGBATexFlipAlpha"}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 552.0, 252.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 304}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 804.5, 496.5, 0.0, 1.0], "targetSurfaceID": 8, "height": 993}], "type": "ContentLayer", "transform": [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], "targetSurfaceID": 8, "height": 0}
\ No newline at end of file
diff --git a/gpu/tools/compositor_model_bench/render_model_utils.cc b/gpu/tools/compositor_model_bench/render_model_utils.cc
deleted file mode 100644
index e67d991..0000000
--- a/gpu/tools/compositor_model_bench/render_model_utils.cc
+++ /dev/null
@@ -1,177 +0,0 @@
-// Copyright 2011 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Whole-tree processing that's likely to be helpful in multiple render models.
-
-#include "gpu/tools/compositor_model_bench/render_model_utils.h"
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <cstdlib>
-#include <map>
-#include <set>
-#include <vector>
-
-#include "base/check_op.h"
-
-TextureGenerator::TextureGenerator(RenderNode* root)
-    : stage_(DiscoveryStage),
-      images_generated_(0) {
-  DiscoverInputIDs(root);
-  GenerateGLTexIDs();
-  AssignIDMapping();
-  WriteOutNewIDs(root);
-  AllocateImageArray();
-  BuildTextureImages(root);
-}
-
-TextureGenerator::~TextureGenerator() {
-  if (tex_ids_.get()) {
-    glDeleteTextures(discovered_ids_.size(), tex_ids_.get());
-  }
-}
-
-void TextureGenerator::BeginVisitRenderNode(RenderNode* node) {
-  for (size_t n = 0; n < node->num_tiles(); ++n) {
-    Tile* i = node->tile(n);
-    HandleTexture(&i->texID,
-                  node->tile_width(),
-                  node->tile_height(),
-                  GL_RGBA);
-  }
-}
-
-void TextureGenerator::BeginVisitCCNode(CCNode* node) {
-  for (size_t n = 0; n < node->num_textures(); ++n) {
-    Texture* i = node->texture(n);
-    HandleTexture(&i->texID, i->width, i->height, i->format);
-  }
-  BeginVisitRenderNode(node);
-}
-
-void TextureGenerator::DiscoverInputIDs(RenderNode* root) {
-  // Pass 1: see which texture ID's have been used.
-  stage_ = DiscoveryStage;
-  root->Accept(this);
-}
-
-void TextureGenerator::GenerateGLTexIDs() {
-  int numTextures = discovered_ids_.size();
-  tex_ids_.reset(new GLuint[numTextures]);
-  glGenTextures(numTextures, tex_ids_.get());
-}
-
-void TextureGenerator::AssignIDMapping() {
-  // In the original version of this code the assigned ID's were not
-  // GL tex ID's, but newly generated consecutive ID's that indexed
-  // into an array of GL tex ID's. There's no need for this and now
-  // I'm instead generating the GL tex ID's upfront and assigning
-  // *those* in the remapping -- this more accurately reflects the
-  // behavior in Chromium, and it also takes out some design
-  // complexity that came from the extra layer of indirection.
-  // HOWEVER -- when I was assigning my own ID's before, I did some
-  // clever tricks to make sure the assignation was idempotent.
-  // Instead of going to even more clever lengths to preserve that
-  // property, I now just assume that the visitor will encounter each
-  // node (and consequently each texture) exactly once during a
-  // traversal of the tree -- this shouldn't be a hard guarantee
-  // to make.
-  int j = 0;
-  typedef std::set<int>::iterator id_itr;
-  for (id_itr i = discovered_ids_.begin();
-       i != discovered_ids_.end();
-       ++i, ++j) {
-    remapped_ids_[*i] = tex_ids_[j];
-  }
-}
-
-void TextureGenerator::WriteOutNewIDs(RenderNode* root) {
-  // Pass 2: write the new texture ID's back into the texture objects.
-  stage_ = RemappingStage;
-  root->Accept(this);
-}
-
-void TextureGenerator::AllocateImageArray() {
-  image_data_.reset(new ImagePtr[discovered_ids_.size()]);
-  images_generated_ = 0;
-}
-
-void TextureGenerator::BuildTextureImages(RenderNode* root) {
-  // Pass 3: use the texture metadata to generate images for the
-  // textures, and set up the textures for use by OpenGL. This
-  // doesn't *have* to be a separate pass (it could be rolled
-  // into pass 2) but I think this is more clear and performance
-  // shouldn't be bad.
-  stage_ = ImageGenerationStage;
-  root->Accept(this);
-}
-
-void TextureGenerator::HandleTexture(int* texID,
-                                     int width,
-                                     int height,
-                                     GLenum format) {
-  if (*texID == -1)
-    return;    // -1 means it's not a real texture.
-  switch (stage_) {
-    case DiscoveryStage:
-      discovered_ids_.insert(*texID);
-      break;
-    case RemappingStage:
-      *texID = remapped_ids_[*texID];
-      break;
-    case ImageGenerationStage:
-      // Only handle this one if we haven't already built a
-      // texture for its ID.
-      if (ids_for_completed_textures_.count(*texID))
-        return;
-      GenerateImageForTexture(*texID, width, height, format);
-      ids_for_completed_textures_.insert(*texID);
-      break;
-  }
-}
-
-void TextureGenerator::GenerateImageForTexture(int texID,
-                                               int width,
-                                               int height,
-                                               GLenum format) {
-  int bytes_per_pixel = FormatBytesPerPixel(format);
-  DCHECK_LE(bytes_per_pixel, 4);
-  int imgID = images_generated_++;
-  image_data_[imgID].reset(new uint8_t[width * height * bytes_per_pixel]);
-  // Pick random colors to use for this texture.
-  uint8_t random_color[4];
-  for (int c = 0; c < 4; ++c) {
-    random_color[c] = std::rand() % 255;
-  }
-  // Create the image from those colors.
-  for (int x = 0; x < width; ++x) {
-    for (int y = 0; y < height; ++y) {
-      int pix_addr = (y * width + x) * bytes_per_pixel;
-      for (int c = 0; c < bytes_per_pixel; ++c) {
-        bool on = ((x/8) + (y/8)) % 2;
-        uint8_t v = on ? random_color[c] : ~random_color[c];
-        (image_data_[imgID])[pix_addr + c] = v;
-      }
-      if (bytes_per_pixel == 4) {    // Randomize alpha.
-        image_data_[imgID][pix_addr + 3] = std::rand() % 255;
-      }
-    }
-  }
-  // Set up GL texture.
-  glBindTexture(GL_TEXTURE_2D, texID);
-  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-  glPixelStorei(GL_PACK_ALIGNMENT, 1);
-  glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-  glTexImage2D(GL_TEXTURE_2D,
-               0,
-               format,
-               width, height,
-               0,
-               format,
-               GL_UNSIGNED_BYTE,
-               image_data_[imgID].get());
-}
-
diff --git a/gpu/tools/compositor_model_bench/render_model_utils.h b/gpu/tools/compositor_model_bench/render_model_utils.h
deleted file mode 100644
index e979dce..0000000
--- a/gpu/tools/compositor_model_bench/render_model_utils.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2011 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Whole-tree processing that's likely to be helpful in multiple render models.
-
-#ifndef GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODEL_UTILS_H_
-#define GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODEL_UTILS_H_
-
-#include <stdint.h>
-
-#include <map>
-#include <memory>
-#include <set>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "gpu/tools/compositor_model_bench/render_tree.h"
-
-// This is a visitor that runs over the tree structure that was built from the
-// configuration file. It creates OpenGL textures (random checkerboards) that
-// match the specifications of the original textures and overwrites the old
-// texture ID's in the tree, replacing them with the matching new textures.
-class TextureGenerator : public RenderNodeVisitor {
- public:
-  typedef std::unique_ptr<uint8_t[]> ImagePtr;
-  typedef std::vector<Tile>::iterator tile_iter;
-
-  explicit TextureGenerator(RenderNode* root);
-  ~TextureGenerator() override;
-
-  // RenderNodeVisitor functions look for textures and pass them
-  // off to HandleTexture (which behaves appropriately depending
-  // on which pass we are in.)
-  void BeginVisitRenderNode(RenderNode* node) override;
-  void BeginVisitCCNode(CCNode* node) override;
-
- private:
-  enum TextureGenStage {
-    DiscoveryStage,
-    RemappingStage,
-    ImageGenerationStage
-  };
-
-  void DiscoverInputIDs(RenderNode* root);
-  void GenerateGLTexIDs();
-  void AssignIDMapping();
-  void WriteOutNewIDs(RenderNode* root);
-  void AllocateImageArray();
-  void BuildTextureImages(RenderNode* root);
-  void HandleTexture(int* texID, int width, int height, GLenum format);
-  void GenerateImageForTexture(int texID, int width, int height, GLenum format);
-
-  TextureGenStage stage_;
-  std::set<int> discovered_ids_;
-  std::unique_ptr<GLuint[]> tex_ids_;
-  std::map<int, int> remapped_ids_;
-  std::unique_ptr<ImagePtr[]> image_data_;
-  int images_generated_;
-  std::set<int> ids_for_completed_textures_;
-};
-
-#endif  // GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODEL_UTILS_H_
-
diff --git a/gpu/tools/compositor_model_bench/render_models.cc b/gpu/tools/compositor_model_bench/render_models.cc
deleted file mode 100644
index 158231d..0000000
--- a/gpu/tools/compositor_model_bench/render_models.cc
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2011 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "gpu/tools/compositor_model_bench/render_models.h"
-
-#include <string>
-#include <utility>
-
-#include "gpu/tools/compositor_model_bench/forward_render_model.h"
-
-const char* ModelToString(RenderModel m) {
-  switch (m) {
-    case ForwardRenderModel:
-      return "Forward Rendering";
-    default:
-      return "(unknown render model name)";
-  }
-}
-
-RenderModelSimulator::RenderModelSimulator(std::unique_ptr<RenderNode> root)
-    : root_(std::move(root)) {}
-
-RenderModelSimulator::~RenderModelSimulator() {
-}
-
-std::unique_ptr<RenderModelSimulator> ConstructSimulationModel(
-    RenderModel model,
-    std::unique_ptr<RenderNode> render_tree_root,
-    int window_width,
-    int window_height) {
-  switch (model) {
-    case ForwardRenderModel:
-      return std::make_unique<ForwardRenderSimulator>(
-          std::move(render_tree_root), window_width, window_height);
-    default:
-      LOG(ERROR) << "Unrecognized render model. "
-        "If we know its name, then it's..." << ModelToString(model);
-      return nullptr;
-  }
-}
diff --git a/gpu/tools/compositor_model_bench/render_models.h b/gpu/tools/compositor_model_bench/render_models.h
deleted file mode 100644
index 645ecee..0000000
--- a/gpu/tools/compositor_model_bench/render_models.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2011 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Define the interface for a generic simulation, and a factory method for
-// instantiating different models.
-
-#ifndef GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODELS_H_
-#define GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODELS_H_
-
-#include <memory>
-
-#include "gpu/tools/compositor_model_bench/render_tree.h"
-
-enum RenderModel {
-  ForwardRenderModel
-};
-
-const char* ModelToString(RenderModel m);
-
-class RenderModelSimulator {
- public:
-  RenderModelSimulator() = delete;
-  RenderModelSimulator(const RenderModelSimulator&) = delete;
-  RenderModelSimulator& operator=(const RenderModelSimulator&) = delete;
-
-  virtual ~RenderModelSimulator();
-
-  virtual void Update() = 0;
-  virtual void Resize(int width, int height) = 0;
-
- protected:
-  explicit RenderModelSimulator(std::unique_ptr<RenderNode> root);
-
-  std::unique_ptr<RenderNode> root_;
-};
-
-std::unique_ptr<RenderModelSimulator> ConstructSimulationModel(
-    RenderModel model,
-    std::unique_ptr<RenderNode> render_tree_root,
-    int window_width,
-    int window_height);
-
-#endif  // GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_MODELS_H_
-
diff --git a/gpu/tools/compositor_model_bench/render_tree.cc b/gpu/tools/compositor_model_bench/render_tree.cc
deleted file mode 100644
index 13d8af5..0000000
--- a/gpu/tools/compositor_model_bench/render_tree.cc
+++ /dev/null
@@ -1,410 +0,0 @@
-// Copyright 2012 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "gpu/tools/compositor_model_bench/render_tree.h"
-
-#include <memory>
-#include <sstream>
-#include <vector>
-
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/json/json_reader.h"
-#include "base/json/json_writer.h"
-#include "base/logging.h"
-#include "base/values.h"
-#include "gpu/tools/compositor_model_bench/shaders.h"
-
-using base::JSONReader;
-using base::JSONWriter;
-using base::ReadFileToString;
-using base::Value;
-
-GLenum TextureFormatFromString(const std::string& format) {
-  if (format == "RGBA")
-    return GL_RGBA;
-  if (format == "RGB")
-    return GL_RGB;
-  if (format == "LUMINANCE")
-    return GL_LUMINANCE;
-  return GL_INVALID_ENUM;
-}
-
-const char* TextureFormatName(GLenum format) {
-  switch (format) {
-    case GL_RGBA:
-      return "RGBA";
-    case GL_RGB:
-      return "RGB";
-    case GL_LUMINANCE:
-      return "LUMINANCE";
-    default:
-      return "(unknown format)";
-  }
-}
-
-int FormatBytesPerPixel(GLenum format) {
-  switch (format) {
-    case GL_RGBA:
-      return 4;
-    case GL_RGB:
-      return 3;
-    case GL_LUMINANCE:
-      return 1;
-    default:
-      return 0;
-  }
-}
-
-RenderNode::RenderNode() {
-}
-
-RenderNode::~RenderNode() {
-}
-
-void RenderNode::Accept(RenderNodeVisitor* v) {
-  v->BeginVisitRenderNode(this);
-  v->EndVisitRenderNode(this);
-}
-
-ContentLayerNode::ContentLayerNode() {
-}
-
-ContentLayerNode::~ContentLayerNode() {
-}
-
-void ContentLayerNode::Accept(RenderNodeVisitor* v) {
-  v->BeginVisitContentLayerNode(this);
-  for (auto& child : children_) {
-    child->Accept(v);
-  }
-  v->EndVisitContentLayerNode(this);
-}
-
-CCNode::CCNode() {
-}
-
-CCNode::~CCNode() {
-}
-
-void CCNode::Accept(RenderNodeVisitor* v) {
-  v->BeginVisitCCNode(this);
-  v->EndVisitCCNode(this);
-}
-
-RenderNodeVisitor::~RenderNodeVisitor() {
-}
-
-void RenderNodeVisitor::BeginVisitContentLayerNode(ContentLayerNode* v) {
-  this->BeginVisitRenderNode(v);
-}
-
-void RenderNodeVisitor::BeginVisitCCNode(CCNode* v) {
-  this->BeginVisitRenderNode(v);
-}
-
-void RenderNodeVisitor::EndVisitRenderNode(RenderNode* v) {
-}
-
-void RenderNodeVisitor::EndVisitContentLayerNode(ContentLayerNode* v) {
-  this->EndVisitRenderNode(v);
-}
-
-void RenderNodeVisitor::EndVisitCCNode(CCNode* v) {
-  this->EndVisitRenderNode(v);
-}
-
-std::unique_ptr<RenderNode> InterpretNode(const base::Value& node);
-
-// Makes sure that the key exists and has the type we expect.
-bool VerifyDictionaryEntry(const base::Value& node,
-                           const std::string& key,
-                           Value::Type type) {
-  const Value* value = node.FindKey(key);
-
-  if (!value) {
-    LOG(ERROR) << "Missing value for key: " << key;
-    return false;
-  }
-
-  if (value->type() != type) {
-    LOG(ERROR) << key
-               << " did not have the expected type "
-                  "(expected "
-               << base::Value::GetTypeName(type) << ")";
-    return false;
-  }
-
-  return true;
-}
-
-// Makes sure that the list entry has the type we expect.
-bool VerifyListEntry(const base::Value& list,
-                     int index,
-                     Value::Type type,
-                     const char* listName = nullptr) {
-  // Assume the index is valid (since we'll be able to generate a better
-  // error message for this elsewhere.)
-  if (list.GetListDeprecated()[index].type() != type) {
-    LOG(ERROR) << (listName ? listName : "List") << "element " << index
-               << " did not have the expected type (expected "
-               << base::Value::GetTypeName(type) << ")\n";
-    return false;
-  }
-
-  return true;
-}
-
-bool InterpretCommonContents(const base::Value& node, RenderNode* c) {
-  if (!VerifyDictionaryEntry(node, "layerID", Value::Type::INTEGER) ||
-      !VerifyDictionaryEntry(node, "width", Value::Type::INTEGER) ||
-      !VerifyDictionaryEntry(node, "height", Value::Type::INTEGER) ||
-      !VerifyDictionaryEntry(node, "drawsContent", Value::Type::BOOLEAN) ||
-      !VerifyDictionaryEntry(node, "targetSurfaceID", Value::Type::INTEGER) ||
-      !VerifyDictionaryEntry(node, "transform", Value::Type::LIST)) {
-    return false;
-  }
-
-  c->set_layerID(node.FindIntKey("layerID").value());
-  c->set_width(node.FindIntKey("width").value());
-  c->set_height(node.FindIntKey("height").value());
-  c->set_drawsContent(node.FindBoolKey("drawsContent").value());
-  c->set_targetSurface(node.FindIntKey("targetSurfaceID").value());
-
-  const Value* transform = node.FindKey("transform");
-  if (transform->GetListDeprecated().size() != 16) {
-    LOG(ERROR) << "4x4 transform matrix did not have 16 elements";
-    return false;
-  }
-  float transform_mat[16];
-  for (int i = 0; i < 16; ++i) {
-    if (!VerifyListEntry(*transform, i, Value::Type::DOUBLE, "Transform"))
-      return false;
-    transform_mat[i] = transform->GetListDeprecated()[i].GetDouble();
-  }
-  c->set_transform(transform_mat);
-
-  const Value* tiles_dict = node.FindKey("tiles");
-  if (!tiles_dict)
-    return true;
-
-  if (!VerifyDictionaryEntry(node, "tiles", Value::Type::DICTIONARY))
-    return false;
-  if (!VerifyDictionaryEntry(*tiles_dict, "dim", Value::Type::LIST))
-    return false;
-  const Value* dim = tiles_dict->FindKey("dim");
-  if (!VerifyListEntry(*dim, 0, Value::Type::INTEGER, "Tile dimension") ||
-      !VerifyListEntry(*dim, 1, Value::Type::INTEGER, "Tile dimension")) {
-    return false;
-  }
-  c->set_tile_width(dim->GetListDeprecated()[0].GetInt());
-  c->set_tile_height(dim->GetListDeprecated()[1].GetInt());
-
-  if (!VerifyDictionaryEntry(*tiles_dict, "info", Value::Type::LIST))
-    return false;
-  const Value* tiles = tiles_dict->FindKey("info");
-  for (unsigned int i = 0; i < tiles->GetListDeprecated().size(); ++i) {
-    if (!VerifyListEntry(*tiles, i, Value::Type::DICTIONARY, "Tile info"))
-      return false;
-    const Value& tdict = tiles->GetListDeprecated()[i];
-
-    if (!VerifyDictionaryEntry(tdict, "x", Value::Type::INTEGER) ||
-        !VerifyDictionaryEntry(tdict, "y", Value::Type::INTEGER)) {
-      return false;
-    }
-    Tile t;
-    t.x = tdict.FindIntKey("x").value();
-    t.y = tdict.FindIntKey("y").value();
-    const Value* texID = tdict.FindKey("texID");
-    if (texID) {
-      if (!VerifyDictionaryEntry(tdict, "texID", Value::Type::INTEGER))
-        return false;
-      t.texID = texID->GetInt();
-    } else {
-      t.texID = -1;
-    }
-    c->add_tile(t);
-  }
-  return true;
-}
-
-bool InterpretCCData(const base::Value& node, CCNode* c) {
-  if (!VerifyDictionaryEntry(node, "vertex_shader", Value::Type::STRING) ||
-      !VerifyDictionaryEntry(node, "fragment_shader", Value::Type::STRING) ||
-      !VerifyDictionaryEntry(node, "textures", Value::Type::LIST)) {
-    return false;
-  }
-
-  std::string vertex_shader_name = *node.FindStringKey("vertex_shader");
-  std::string fragment_shader_name = *node.FindStringKey("fragment_shader");
-  c->set_vertex_shader(ShaderIDFromString(vertex_shader_name));
-  c->set_fragment_shader(ShaderIDFromString(fragment_shader_name));
-
-  const Value* textures = node.FindKey("textures");
-  for (unsigned int i = 0; i < textures->GetListDeprecated().size(); ++i) {
-    if (!VerifyListEntry(*textures, i, Value::Type::DICTIONARY, "Tex list"))
-      return false;
-    const Value& tex = textures->GetListDeprecated()[i];
-
-    if (!VerifyDictionaryEntry(tex, "texID", Value::Type::INTEGER) ||
-        !VerifyDictionaryEntry(tex, "height", Value::Type::INTEGER) ||
-        !VerifyDictionaryEntry(tex, "width", Value::Type::INTEGER) ||
-        !VerifyDictionaryEntry(tex, "format", Value::Type::STRING)) {
-      return false;
-    }
-    Texture t;
-    t.texID = tex.FindIntKey("texID").value();
-    t.height = tex.FindIntKey("height").value();
-    t.width = tex.FindIntKey("width").value();
-
-    const std::string* format_name = tex.FindStringKey("format");
-    t.format = TextureFormatFromString(*format_name);
-    if (t.format == GL_INVALID_ENUM) {
-      LOG(ERROR) << "Unrecognized texture format in layer " << c->layerID()
-                 << " (format: " << *format_name
-                 << ")\n"
-                    "The layer had "
-                 << textures->GetListDeprecated().size() << " children.";
-      return false;
-    }
-
-    c->add_texture(t);
-  }
-
-  if (c->vertex_shader() == SHADER_UNRECOGNIZED) {
-    LOG(ERROR) << "Unrecognized vertex shader name, layer " << c->layerID()
-               << " (shader: " << vertex_shader_name << ")";
-    return false;
-  }
-
-  if (c->fragment_shader() == SHADER_UNRECOGNIZED) {
-    LOG(ERROR) << "Unrecognized fragment shader name, layer " << c->layerID()
-               << " (shader: " << fragment_shader_name << ")";
-    return false;
-  }
-
-  return true;
-}
-
-std::unique_ptr<RenderNode> InterpretContentLayer(const base::Value& node) {
-  auto n = std::make_unique<ContentLayerNode>();
-  if (!InterpretCommonContents(node, n.get()))
-    return nullptr;
-
-  if (!VerifyDictionaryEntry(node, "type", Value::Type::STRING) ||
-      !VerifyDictionaryEntry(node, "skipsDraw", Value::Type::BOOLEAN) ||
-      !VerifyDictionaryEntry(node, "children", Value::Type::LIST)) {
-    return nullptr;
-  }
-
-  DCHECK_EQ(*node.FindStringKey("type"), "ContentLayer");
-
-  n->set_skipsDraw(node.FindBoolKey("skipsDraw").value());
-
-  const Value* children = node.FindKey("children");
-  for (unsigned int i = 0; i < children->GetListDeprecated().size(); ++i) {
-    const Value& child_node = children->GetListDeprecated()[i];
-    if (!child_node.is_dict())
-      continue;
-    std::unique_ptr<RenderNode> child = InterpretNode(child_node);
-    if (child)
-      n->add_child(child.release());
-  }
-
-  return std::move(n);
-}
-
-std::unique_ptr<RenderNode> InterpretCanvasLayer(const base::Value& node) {
-  auto n = std::make_unique<CCNode>();
-  if (!InterpretCommonContents(node, n.get()))
-    return nullptr;
-
-  if (!VerifyDictionaryEntry(node, "type", Value::Type::STRING))
-    return nullptr;
-
-  DCHECK_EQ(*node.FindStringKey("type"), "CanvasLayer");
-
-  if (!InterpretCCData(node, n.get()))
-    return nullptr;
-
-  return std::move(n);
-}
-
-std::unique_ptr<RenderNode> InterpretVideoLayer(const base::Value& node) {
-  auto n = std::make_unique<CCNode>();
-  if (!InterpretCommonContents(node, n.get()))
-    return nullptr;
-
-  if (!VerifyDictionaryEntry(node, "type", Value::Type::STRING))
-    return nullptr;
-
-  DCHECK_EQ(*node.FindStringKey("type"), "VideoLayer");
-
-  if (!InterpretCCData(node, n.get()))
-    return nullptr;
-
-  return std::move(n);
-}
-
-std::unique_ptr<RenderNode> InterpretImageLayer(const base::Value& node) {
-  auto n = std::make_unique<CCNode>();
-  if (!InterpretCommonContents(node, n.get()))
-    return nullptr;
-
-  if (!VerifyDictionaryEntry(node, "type", Value::Type::STRING))
-    return nullptr;
-
-  DCHECK_EQ(*node.FindStringKey("type"), "ImageLayer");
-
-  if (!InterpretCCData(node, n.get()))
-    return nullptr;
-
-  return std::move(n);
-}
-
-std::unique_ptr<RenderNode> InterpretNode(const base::Value& node) {
-  if (!VerifyDictionaryEntry(node, "type", Value::Type::STRING))
-    return nullptr;
-
-  const std::string* type = node.FindStringKey("type");
-  if (*type == "ContentLayer")
-    return InterpretContentLayer(node);
-  if (*type == "CanvasLayer")
-    return InterpretCanvasLayer(node);
-  if (*type == "VideoLayer")
-    return InterpretVideoLayer(node);
-  if (*type == "ImageLayer")
-    return InterpretImageLayer(node);
-
-  std::string outjson;
-  JSONWriter::WriteWithOptions(node, base::JSONWriter::OPTIONS_PRETTY_PRINT,
-                               &outjson);
-  LOG(ERROR) << "Unrecognized node type! JSON:\n\n"
-                "-----------------------\n"
-             << outjson << "-----------------------";
-
-  return nullptr;
-}
-
-std::unique_ptr<RenderNode> BuildRenderTreeFromFile(
-    const base::FilePath& path) {
-  LOG(INFO) << "Reading " << path.LossyDisplayName();
-  std::string contents;
-  if (!ReadFileToString(path, &contents))
-    return nullptr;
-
-  auto result = JSONReader::ReadAndReturnValueWithError(
-      contents, base::JSON_ALLOW_TRAILING_COMMAS);
-  if (!result.has_value()) {
-    LOG(ERROR) << "Failed to parse JSON file " << path.LossyDisplayName()
-               << "\n(" << result.error().message << ")";
-    return nullptr;
-  } else if (!result->is_dict()) {
-    LOG(ERROR) << "Failed to parse JSON file " << path.LossyDisplayName()
-               << "\n(expecting a list.)";
-    return nullptr;
-  }
-
-  return InterpretContentLayer(*result);
-}
diff --git a/gpu/tools/compositor_model_bench/render_tree.h b/gpu/tools/compositor_model_bench/render_tree.h
deleted file mode 100644
index 4291a66..0000000
--- a/gpu/tools/compositor_model_bench/render_tree.h
+++ /dev/null
@@ -1,214 +0,0 @@
-// Copyright 2012 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Data structures for representing parts of Chromium's composited layer tree
-// and a function to load it from the JSON configuration file
-
-#ifndef GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_TREE_H_
-#define GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_TREE_H_
-
-#include <stddef.h>
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/memory/ptr_util.h"
-#include "gpu/tools/compositor_model_bench/shaders.h"
-#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_implementation.h"
-
-// These are fairly arbitrary values based on how big my actual browser
-// window was.
-const int WINDOW_WIDTH = 1609;
-const int WINDOW_HEIGHT = 993;
-
-struct Tile {
-  int x;
-  int y;
-  int texID;
-};
-
-struct Texture {
-  int texID;
-  int height;
-  int width;
-  GLenum format;
-};
-
-GLenum TextureFormatFromString(const std::string& format);
-const char* TextureFormatName(GLenum format);
-int FormatBytesPerPixel(GLenum format);
-
-class RenderNodeVisitor;
-
-class RenderNode {
- public:
-  RenderNode();
-  virtual ~RenderNode();
-  virtual void Accept(RenderNodeVisitor* v);
-
-  int layerID() {
-    return layerID_;
-  }
-
-  void set_layerID(int id) {
-    layerID_ = id;
-  }
-
-  int width() {
-    return width_;
-  }
-
-  void set_width(int width) {
-    width_ = width;
-  }
-
-  int height() {
-    return height_;
-  }
-
-  void set_height(int height) {
-    height_ = height;
-  }
-
-  bool drawsContent() {
-    return drawsContent_;
-  }
-
-  void set_drawsContent(bool draws) {
-    drawsContent_ = draws;
-  }
-
-  void set_targetSurface(int surface) {
-    targetSurface_ = surface;
-  }
-
-  float* transform() {
-    return transform_;
-  }
-
-  void set_transform(float* mat) {
-    memcpy(reinterpret_cast<void*>(transform_),
-           reinterpret_cast<void*>(mat),
-           16 * sizeof(transform_[0]));
-  }
-
-  void add_tile(Tile t) {
-    tiles_.push_back(t);
-  }
-
-  size_t num_tiles() {
-    return tiles_.size();
-  }
-
-  Tile* tile(size_t index) {
-    return &tiles_[index];
-  }
-
-  int tile_width() {
-    return tile_width_;
-  }
-
-  void set_tile_width(int width) {
-    tile_width_ = width;
-  }
-
-  int tile_height() {
-    return tile_height_;
-  }
-
-  void set_tile_height(int height) {
-    tile_height_ = height;
-  }
-
- private:
-  int layerID_;
-  int width_;
-  int height_;
-  bool drawsContent_;
-  int targetSurface_;
-  float transform_[16];
-  std::vector<Tile> tiles_;
-  int tile_width_;
-  int tile_height_;
-};
-
-class ContentLayerNode : public RenderNode {
- public:
-  ContentLayerNode();
-  ~ContentLayerNode() override;
-  void Accept(RenderNodeVisitor* v) override;
-
-  void set_skipsDraw(bool skips) {
-    skipsDraw_ = skips;
-  }
-
-  void add_child(RenderNode* child) {
-    children_.push_back(base::WrapUnique(child));
-  }
-
- private:
-  std::vector<std::unique_ptr<RenderNode>> children_;
-  bool skipsDraw_;
-};
-
-class CCNode : public RenderNode {
- public:
-  CCNode();
-  ~CCNode() override;
-
-  void Accept(RenderNodeVisitor* v) override;
-
-  ShaderID vertex_shader() {
-    return vertex_shader_;
-  }
-
-  void set_vertex_shader(ShaderID shader) {
-    vertex_shader_ = shader;
-  }
-
-  ShaderID fragment_shader() {
-    return fragment_shader_;
-  }
-
-  void set_fragment_shader(ShaderID shader) {
-    fragment_shader_ = shader;
-  }
-
-  void add_texture(Texture t) {
-    textures_.push_back(t);
-  }
-
-  size_t num_textures() {
-    return textures_.size();
-  }
-
-  Texture* texture(size_t index) {
-    return &textures_[index];
-  }
-
- private:
-  ShaderID vertex_shader_;
-  ShaderID fragment_shader_;
-  std::vector<Texture> textures_;
-};
-
-class RenderNodeVisitor {
- public:
-  virtual ~RenderNodeVisitor();
-
-  virtual void BeginVisitRenderNode(RenderNode* v) = 0;
-  virtual void BeginVisitContentLayerNode(ContentLayerNode* v);
-  virtual void BeginVisitCCNode(CCNode* v);
-  virtual void EndVisitRenderNode(RenderNode* v);
-  virtual void EndVisitContentLayerNode(ContentLayerNode* v);
-  virtual void EndVisitCCNode(CCNode* v);
-};
-
-std::unique_ptr<RenderNode> BuildRenderTreeFromFile(const base::FilePath& path);
-
-#endif  // GPU_TOOLS_COMPOSITOR_MODEL_BENCH_RENDER_TREE_H_
-
diff --git a/gpu/tools/compositor_model_bench/shaders.cc b/gpu/tools/compositor_model_bench/shaders.cc
deleted file mode 100644
index 37039db5..0000000
--- a/gpu/tools/compositor_model_bench/shaders.cc
+++ /dev/null
@@ -1,447 +0,0 @@
-// Copyright 2011 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "gpu/tools/compositor_model_bench/shaders.h"
-
-#include <stdint.h>
-
-#include <algorithm>
-#include <memory>
-
-#include "gpu/tools/compositor_model_bench/render_model_utils.h"
-#include "gpu/tools/compositor_model_bench/render_tree.h"
-
-using std::min;
-
-static const int kPositionLocation = 0;
-static const int kTexCoordLocation = 1;
-
-static unsigned g_quad_vertices_vbo;
-static unsigned g_quad_elements_vbo;
-
-// Store a pointer to the transform matrix of the active layer (the complete
-// transform isn't build until we draw the quad; then we can apply
-// translation/scaling/projection)
-static float* g_current_layer_transform;
-
-// In addition to the transform, store other useful information about tiled
-// layers that we'll need to render each tile's quad
-static float g_current_tile_layer_width;
-static float g_current_tile_layer_height;
-static float g_current_tile_width;
-static float g_current_tile_height;
-
-static const float yuv2RGB[9] = {
-  1.164f, 1.164f, 1.164f,
-  0.f, -.391f, 2.018f,
-  1.596f, -.813f, 0.f
-};
-
-// Store shader programs in a sparse array so that they can be addressed easily.
-static int g_program_objects[SHADER_ID_MAX*SHADER_ID_MAX];
-static int g_active_index = -1;
-
-///////////////////////////////////////////////////////////////////////////////
-//              L        R           B          T   N  F
-//      glOrtho(0, WINDOW_WIDTH, WINDOW_HEIGHT, 0, -1, 1);   // column major
-
-static float g_projection_matrix[] = {
-  2.0 / WINDOW_WIDTH, 0.0, 0.0, 0.0,
-  0.0, 2.0 / -WINDOW_HEIGHT, 0.0, 0.0,
-  0.0, 0.0, -1.0, 0.0,
-  -1.0, 1.0, 0.0, 1.0
-};
-
-#define ADDR(i, j) (i*4 + j) /* column major */
-static void Project(const float* v, float* p) {
-  for (int i = 0; i < 4; ++i) {
-    for (int j = 0; j < 4; ++j) {
-      p[ADDR(i, j)] = 0;
-      for (int k = 0; k < 4; ++k) {
-        p[ADDR(i, j)] += g_projection_matrix[ADDR(k, i)] * v[ADDR(j, k)];
-      }
-    }
-  }
-}
-
-static void Scale(const float* in, float* out, float sx, float sy, float sz) {
-  for (int i = 0; i < 4; ++i)
-    out[i] = in[i] * sx;
-  for (int j = 4; j < 8; ++j)
-    out[j] = in[j] * sy;
-  for (int k = 8; k < 12; ++k)
-    out[k] = in[k] * sz;
-  for (int l = 12; l < 16; ++l)
-    out[l] = in[l];
-}
-
-static void TranslateInPlace(float* m, float tx, float ty, float tz) {
-  m[12] += tx;
-  m[13] += ty;
-  m[14] += tz;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-ShaderID ShaderIDFromString(const std::string& name) {
-  if (name == "VertexShaderPosTexYUVStretch")
-    return VERTEX_SHADER_POS_TEX_YUV_STRETCH;
-  if (name == "VertexShaderPosTex")
-    return VERTEX_SHADER_POS_TEX;
-  if (name == "VertexShaderPosTexTransform")
-    return VERTEX_SHADER_POS_TEX_TRANSFORM;
-  if (name == "FragmentShaderYUVVideo")
-    return FRAGMENT_SHADER_YUV_VIDEO;
-  if (name == "FragmentShaderRGBATexFlipAlpha")
-    return FRAGMENT_SHADER_RGBA_TEX_FLIP_ALPHA;
-  if (name == "FragmentShaderRGBATexAlpha")
-    return FRAGMENT_SHADER_RGBA_TEX_ALPHA;
-  return SHADER_UNRECOGNIZED;
-}
-
-std::string ShaderNameFromID(ShaderID id) {
-  switch (id) {
-    case VERTEX_SHADER_POS_TEX_YUV_STRETCH:
-      return "VertexShaderPosTexYUVStretch";
-    case VERTEX_SHADER_POS_TEX:
-      return "VertexShaderPosTex";
-    case VERTEX_SHADER_POS_TEX_TRANSFORM:
-      return "VertexShaderPosTexTransform";
-    case FRAGMENT_SHADER_YUV_VIDEO:
-      return "FragmentShaderYUVVideo";
-    case FRAGMENT_SHADER_RGBA_TEX_FLIP_ALPHA:
-      return "FragmentShaderRGBATexFlipAlpha";
-    case FRAGMENT_SHADER_RGBA_TEX_ALPHA:
-      return "FragmentShaderRGBATexAlpha";
-    default:
-      return "(unknown shader)";
-  }
-}
-
-#define SHADER0(Src) #Src
-#define SHADER(Src) SHADER0(Src)
-
-const char* GetShaderSource(ShaderID shader) {
-  switch (shader) {
-    case VERTEX_SHADER_POS_TEX_YUV_STRETCH:
-      return SHADER(
-        #ifdef GL_ES
-        precision mediump float;
-        #endif
-        attribute vec4 a_position;
-        attribute vec2 a_texCoord;
-        uniform mat4 matrix;
-        varying vec2 y_texCoord;
-        varying vec2 uv_texCoord;
-        uniform float y_widthScaleFactor;
-        uniform float uv_widthScaleFactor;
-        void main() {
-          gl_Position = matrix * a_position;
-          y_texCoord = vec2(y_widthScaleFactor * a_texCoord.x,
-            a_texCoord.y);
-          uv_texCoord = vec2(uv_widthScaleFactor * a_texCoord.x,
-            a_texCoord.y);
-        });
-    case VERTEX_SHADER_POS_TEX:
-      return SHADER(
-        attribute vec4 a_position;
-        attribute vec2 a_texCoord;
-        uniform mat4 matrix;
-        varying vec2 v_texCoord;
-        void main() {
-          gl_Position = matrix * a_position;
-          v_texCoord = a_texCoord;
-        });
-    case VERTEX_SHADER_POS_TEX_TRANSFORM:
-      return SHADER(
-        attribute vec4 a_position;
-        attribute vec2 a_texCoord;
-        uniform mat4 matrix;
-        uniform vec4 texTransform;
-        varying vec2 v_texCoord;
-        void main() {
-          gl_Position = matrix * a_position;
-          v_texCoord = a_texCoord*texTransform.zw + texTransform.xy;
-        });
-    case FRAGMENT_SHADER_YUV_VIDEO:
-      return SHADER(
-        #ifdef GL_ES
-        precision mediump float;
-        precision mediump int;
-        #endif
-        varying vec2 y_texCoord;
-        varying vec2 uv_texCoord;
-        uniform sampler2D y_texture;
-        uniform sampler2D u_texture;
-        uniform sampler2D v_texture;
-        uniform float alpha;
-        uniform vec3 yuv_adj;
-        uniform mat3 cc_matrix;
-        void main() {
-          float y_raw = texture2D(y_texture, y_texCoord).x;
-          float u_unsigned = texture2D(u_texture, uv_texCoord).x;
-          float v_unsigned = texture2D(v_texture, uv_texCoord).x;
-          vec3 yuv = vec3(y_raw, u_unsigned, v_unsigned) + yuv_adj;
-          vec3 rgb = cc_matrix * yuv;
-          gl_FragColor = vec4(rgb, 1.0) * alpha;
-        });
-    case FRAGMENT_SHADER_RGBA_TEX_FLIP_ALPHA:
-      return SHADER(
-        #ifdef GL_ES
-        precision mediump float;
-        #endif
-        varying vec2 v_texCoord;
-        uniform sampler2D s_texture;
-        uniform float alpha;
-        void main() {
-          vec4 texColor = texture2D(s_texture,
-            vec2(v_texCoord.x, 1.0 - v_texCoord.y));
-          gl_FragColor = vec4(texColor.x,
-            texColor.y,
-            texColor.z,
-            texColor.w) * alpha;
-        });
-    case FRAGMENT_SHADER_RGBA_TEX_ALPHA:
-      return SHADER(
-        #ifdef GL_ES
-        precision mediump float;
-        #endif
-        varying vec2 v_texCoord;
-        uniform sampler2D s_texture;
-        uniform float alpha;
-        void main() {
-          vec4 texColor = texture2D(s_texture, v_texCoord);
-          gl_FragColor = texColor * alpha;
-        });
-    default:
-      printf("Shader source requested for unknown shader\n");
-      return "";
-  }
-}
-
-int GetProgramIdx(ShaderID v, ShaderID f) {
-  return v * SHADER_ID_MAX + f;
-}
-
-static void ReportAnyShaderCompilationErrors(GLuint shader, ShaderID id) {
-  GLint status;
-  glGetShaderiv(shader, GL_COMPILE_STATUS, &status);
-  if (status)
-    return;
-  // Get the length of the log string
-  GLsizei length;
-  glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length);
-  std::unique_ptr<GLchar[]> log(new GLchar[length + 1]);
-  glGetShaderInfoLog(shader, length, nullptr, log.get());
-  LOG(ERROR) << log.get() << " in shader " << ShaderNameFromID(id);
-}
-
-static int ActivateShader(ShaderID v, ShaderID f, float* layer_transform) {
-  int program_index = GetProgramIdx(v, f);
-  if (!g_program_objects[program_index]) {
-    g_program_objects[program_index] = glCreateProgramObjectARB();
-    GLenum vs = glCreateShaderObjectARB(GL_VERTEX_SHADER);
-    GLenum fs = glCreateShaderObjectARB(GL_FRAGMENT_SHADER);
-    const char* vs_source = GetShaderSource(v);
-    const char* fs_source = GetShaderSource(f);
-    glShaderSourceARB(vs, 1, &vs_source, 0);
-    glShaderSourceARB(fs, 1, &fs_source, 0);
-    glCompileShaderARB(vs);
-    ReportAnyShaderCompilationErrors(vs, v);
-    glCompileShaderARB(fs);
-    ReportAnyShaderCompilationErrors(fs, f);
-    glAttachObjectARB(g_program_objects[program_index], vs);
-    glAttachObjectARB(g_program_objects[program_index], fs);
-    glBindAttribLocationARB(g_program_objects[program_index],
-                            kPositionLocation,
-                            "a_position");
-    glBindAttribLocationARB(g_program_objects[program_index],
-                            kTexCoordLocation,
-                            "a_texCoord");
-    glLinkProgramARB(g_program_objects[program_index]);
-  }
-  if (g_active_index != program_index)
-    glUseProgramObjectARB(g_program_objects[program_index]);
-  g_active_index = program_index;
-
-  g_current_layer_transform = layer_transform;
-
-  return g_program_objects[program_index];
-}
-
-void ConfigAndActivateShaderForNode(CCNode* n) {
-  ShaderID vs = n->vertex_shader();
-  ShaderID fs = n->fragment_shader();
-  float* transform = n->transform();
-  int program = ActivateShader(vs, fs, transform);
-  if (vs == VERTEX_SHADER_POS_TEX_YUV_STRETCH) {
-    GLint y_scale = glGetUniformLocationARB(program, "y_widthScaleFactor");
-    GLint uv_scale = glGetUniformLocationARB(program, "uv_widthScaleFactor");
-    glUniform1fARB(y_scale, 1.0);
-    glUniform1fARB(uv_scale, 1.0);
-  }
-  if (vs == VERTEX_SHADER_POS_TEX_TRANSFORM) {
-    GLint texTrans = glGetUniformLocationARB(program, "texTransform");
-    glUniform4fARB(texTrans, 0.0, 0.0, 0.0, 0.0);
-  }
-  if (fs == FRAGMENT_SHADER_RGBA_TEX_FLIP_ALPHA) {
-    DCHECK_EQ(n->num_textures(), 1u);
-    DCHECK_NE(n->texture(0)->texID, -1);
-    glActiveTexture(GL_TEXTURE0);
-    glBindTexture(GL_TEXTURE_2D, n->texture(0)->texID);
-    int sTexLoc = glGetUniformLocationARB(program, "s_texture");
-    glUniform1iARB(sTexLoc, 0);
-  }
-  if (fs == FRAGMENT_SHADER_YUV_VIDEO) {
-    DCHECK_EQ(n->num_textures(), 3u);
-    DCHECK_NE(n->texture(0)->texID, -1);
-    DCHECK_NE(n->texture(1)->texID, -1);
-    DCHECK_NE(n->texture(2)->texID, -1);
-    // Bind Y tex.
-    glActiveTexture(GL_TEXTURE0);
-    glBindTexture(GL_TEXTURE_2D, n->texture(0)->texID);
-    int yTexLoc = glGetUniformLocationARB(program, "y_texture");
-    glUniform1iARB(yTexLoc, 0);
-    // Bind U tex.
-    glActiveTexture(GL_TEXTURE0 + 1);
-    glBindTexture(GL_TEXTURE_2D, n->texture(1)->texID);
-    int uTexLoc = glGetUniformLocationARB(program, "u_texture");
-    glUniform1iARB(uTexLoc, 1);
-    // Bind V tex.
-    glActiveTexture(GL_TEXTURE0 + 2);
-    glBindTexture(GL_TEXTURE_2D, n->texture(2)->texID);
-    int vTexLoc = glGetUniformLocationARB(program, "v_texture");
-    glUniform1iARB(vTexLoc, 2);
-    // Set YUV offset.
-    int yuvAdjLoc = glGetUniformLocationARB(program, "yuv_adj");
-    glUniform3fARB(yuvAdjLoc, -0.0625f, -0.5f, -0.5f);
-    // Set YUV matrix.
-    int ccMatLoc = glGetUniformLocationARB(program, "cc_matrix");
-    glUniformMatrix3fvARB(ccMatLoc, 1, false, yuv2RGB);
-  }
-  GLint alpha = glGetUniformLocationARB(program, "alpha");
-  glUniform1fARB(alpha, 0.9);
-}
-
-void ConfigAndActivateShaderForTiling(ContentLayerNode* n) {
-  int program = ActivateShader(VERTEX_SHADER_POS_TEX_TRANSFORM,
-                               FRAGMENT_SHADER_RGBA_TEX_ALPHA,
-                               n->transform());
-  GLint texTrans = glGetUniformLocationARB(program, "texTransform");
-  glUniform4fARB(texTrans, 0.0, 0.0, 1.0, 1.0);
-  GLint alpha = glGetUniformLocationARB(program, "alpha");
-  glUniform1fARB(alpha, 0.9);
-
-  g_current_tile_layer_width = n->width();
-  g_current_tile_layer_height = n->height();
-  g_current_tile_width = n->tile_width();
-  g_current_tile_height = n->tile_height();
-}
-
-void DeleteShaders() {
-  g_active_index = -1;
-  glUseProgramObjectARB(0);
-  for (int i = 0; i < SHADER_ID_MAX*SHADER_ID_MAX; ++i) {
-    if (g_program_objects[i]) {
-      glDeleteObjectARB(g_program_objects[i]);
-    }
-    g_program_objects[i] = 0;
-  }
-}
-
-void InitBuffers() {
-  // Vertex positions and texture coordinates for the 4 corners of a 1x1 quad.
-  float vertices[] = { -0.5f,  0.5f, 0.0f, 0.0f,  1.0f,
-                       -0.5f, -0.5f, 0.0f, 0.0f,  0.0f,
-                       0.5f,  -0.5f, 0.0f, 1.0f,  0.0f,
-                       0.5f,   0.5f, 0.0f, 1.0f,  1.0f };
-  uint16_t indices[] = { 0, 1, 2, 0, 2, 3};
-
-  glGenBuffers(1, &g_quad_vertices_vbo);
-  glGenBuffers(1, &g_quad_elements_vbo);
-  glBindBuffer(GL_ARRAY_BUFFER, g_quad_vertices_vbo);
-  glBufferData(GL_ARRAY_BUFFER,
-               sizeof(vertices),
-               vertices,
-               GL_STATIC_DRAW);
-  glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_quad_elements_vbo);
-  glBufferData(GL_ELEMENT_ARRAY_BUFFER,
-               sizeof(indices),
-               indices,
-               GL_STATIC_DRAW);
-}
-
-void BeginFrame() {
-  glBindBuffer(GL_ARRAY_BUFFER, g_quad_vertices_vbo);
-  glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_quad_elements_vbo);
-  unsigned offset = 0;
-  glVertexAttribPointer(kPositionLocation,
-                        3,
-                        GL_FLOAT,
-                        false,
-                        5 * sizeof(float),
-                        reinterpret_cast<void*>(offset));
-  offset += 3 * sizeof(float);
-  glVertexAttribPointer(kTexCoordLocation,
-                        2,
-                        GL_FLOAT,
-                        false,
-                        5 * sizeof(float),
-                        reinterpret_cast<void*>(offset));
-  glEnableVertexAttribArray(kPositionLocation);
-  glEnableVertexAttribArray(kTexCoordLocation);
-}
-
-void DrawQuad(float width, float height) {
-  float mv_transform[16];
-  float proj_transform[16];
-  Scale(g_current_layer_transform, mv_transform, width, height, 1.0);
-  Project(mv_transform, proj_transform);
-  GLint mat = glGetUniformLocationARB(g_program_objects[g_active_index],
-                                      "matrix");
-  glUniformMatrix4fvARB(mat, 1, GL_TRUE, proj_transform);
-
-  glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
-}
-
-void DrawTileQuad(GLuint texID, int x, int y) {
-  float left = g_current_tile_width*x;
-  float top = g_current_tile_height*y;
-  if (left > g_current_tile_layer_width || top > g_current_tile_layer_height)
-    return;
-
-  float right = min(left+g_current_tile_width, g_current_tile_layer_width);
-  float bottom = min(top+g_current_tile_height, g_current_tile_layer_height);
-  float width = right-left;
-  float height = bottom-top;
-
-  int prog = g_program_objects[g_active_index];
-
-  // Scale the texture if the full tile rectangle doesn't get drawn.
-  float u_scale = width / g_current_tile_width;
-  float v_scale = height / g_current_tile_height;
-  GLint texTrans = glGetUniformLocationARB(prog, "texTransform");
-  glUniform4fARB(texTrans, 0.0, 0.0, u_scale, v_scale);
-
-  glActiveTexture(GL_TEXTURE0);
-  glBindTexture(GL_TEXTURE_2D, texID);
-  int texLoc = glGetUniformLocationARB(prog, "s_texture");
-  glUniform1iARB(texLoc, 0);
-
-  float mv_transform[16];
-  float proj_transform[16];
-  Scale(g_current_layer_transform, mv_transform, width, height, 1.0);
-
-  // We have to position the tile by its center.
-  float center_x = (left+right)/2 - g_current_tile_layer_width/2;
-  float center_y = (top+bottom)/2 - g_current_tile_layer_height/2;
-  TranslateInPlace(mv_transform, center_x, center_y, 0.0);
-
-  Project(mv_transform, proj_transform);
-  GLint mat = glGetUniformLocationARB(prog, "matrix");
-  glUniformMatrix4fvARB(mat, 1, GL_TRUE, proj_transform);
-
-  glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
-}
-
diff --git a/gpu/tools/compositor_model_bench/shaders.h b/gpu/tools/compositor_model_bench/shaders.h
deleted file mode 100644
index b069f70..0000000
--- a/gpu/tools/compositor_model_bench/shaders.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2011 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Shaders from Chromium and an interface for setting them up
-
-#ifndef GPU_TOOLS_COMPOSITOR_MODEL_BENCH_SHADERS_H_
-#define GPU_TOOLS_COMPOSITOR_MODEL_BENCH_SHADERS_H_
-
-#include <string>
-
-// Forward declarations.
-class CCNode;
-class ContentLayerNode;
-
-typedef unsigned int GLuint;
-
-enum ShaderID {
-  SHADER_UNRECOGNIZED = 0,
-  VERTEX_SHADER_POS_TEX_YUV_STRETCH,
-  VERTEX_SHADER_POS_TEX,
-  VERTEX_SHADER_POS_TEX_TRANSFORM,
-  FRAGMENT_SHADER_YUV_VIDEO,
-  FRAGMENT_SHADER_RGBA_TEX_FLIP_ALPHA,
-  FRAGMENT_SHADER_RGBA_TEX_ALPHA,
-  SHADER_ID_MAX
-};
-
-ShaderID ShaderIDFromString(const std::string& name);
-std::string ShaderNameFromID(ShaderID id);
-
-void ConfigAndActivateShaderForNode(CCNode* n);
-
-// Call once to set up the parameters for an entire tiled layer, then use
-// DrawTileQuad for each tile to be drawn.
-void ConfigAndActivateShaderForTiling(ContentLayerNode* n);
-
-// One-off function to set up global VBO's that will be used every time
-// we want to draw a quad.
-void InitBuffers();
-
-// Per-frame initialization of the VBO's (to replicate behavior in Chrome.)
-void BeginFrame();
-
-// Draw the quad in those VBO's.
-void DrawQuad(float width, float height);
-
-// Draw the quad in those VBO's for an individual tile within a tiled layer.
-// x and y give the 2D index of the tile.
-void DrawTileQuad(GLuint texID, int x, int y);
-
-#endif  // GPU_TOOLS_COMPOSITOR_MODEL_BENCH_SHADERS_H_
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index f3394b0..9777a53 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -875,6 +875,7 @@
 <translation id="7531345132340165516">Настоящ сайт</translation>
 <translation id="7537586195939242955">Понастоящем пропускът не може да се инсталира в Passbook.</translation>
 <translation id="7553234618121028547">За да изключите функцията, отворете <ph name="BEGIN_LINK" />Настройки<ph name="END_LINK" /> и след това „Опции за паролите“.</translation>
+<translation id="7554645225856321710">Затваряне на всички</translation>
 <translation id="7554791636758816595">Нов раздел</translation>
 <translation id="7561196759112975576">Винаги</translation>
 <translation id="7583004045319035904">Използвайте <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> за отключване на разделите в режим „инкогнито“.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index 2bcd86e..d13ea1a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -283,6 +283,7 @@
 <translation id="3153862085237805241">Guardar tarjeta</translation>
 <translation id="3157387275655328056">Añadir a lista de lectura</translation>
 <translation id="3157684681743766797">Marcar todas…</translation>
+<translation id="315778507796115851">Historial</translation>
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3174662312949010067">También puedes usar las contraseñas guardadas en tus otros dispositivos.</translation>
 <translation id="3175081911749765310">Servicios web</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index f46e1323..e767d1fd 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -874,6 +874,7 @@
 <translation id="7531345132340165516">Sito corrente</translation>
 <translation id="7537586195939242955">Spiacenti, il tuo pass non può essere installato in Passbook in questo momento.</translation>
 <translation id="7553234618121028547">Per disattivare, apri le <ph name="BEGIN_LINK" />Impostazioni<ph name="END_LINK" /> e vai a Opzioni password.</translation>
+<translation id="7554645225856321710">Chiudi tutte</translation>
 <translation id="7554791636758816595">Nuova scheda</translation>
 <translation id="7561196759112975576">Sempre</translation>
 <translation id="7583004045319035904">Utilizza <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> per sbloccare le schede di navigazione in incognito.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 5d3d9ef2..65ca70b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -874,6 +874,7 @@
 <translation id="7531345132340165516">Dabartinė svetainė</translation>
 <translation id="7537586195939242955">Deja, šiuo metu negalima įdiegti „Pass“ į „Passbook“.</translation>
 <translation id="7553234618121028547">Jei norite išjungti, atidarykite skiltį <ph name="BEGIN_LINK" />„Nustatymai“<ph name="END_LINK" /> ir eikite į skiltį „Slaptažodžio parinktys“.</translation>
+<translation id="7554645225856321710">Uždaryti viską</translation>
 <translation id="7554791636758816595">Naujas skirtukas</translation>
 <translation id="7561196759112975576">Visada</translation>
 <translation id="7583004045319035904">Naudokite <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />, kad atrakintumėte inkognito skirtukus.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
index fd4f32d..6e65330 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -874,6 +874,7 @@
 <translation id="7531345132340165516">Site atual</translation>
 <translation id="7537586195939242955">De momento não é possível instalar a sua Palavra-passe no Passbook.</translation>
 <translation id="7553234618121028547">Para desativar, abra as <ph name="BEGIN_LINK" />Definições<ph name="END_LINK" /> e aceda a Opções de palavras-passe.</translation>
+<translation id="7554645225856321710">Fechar tudo</translation>
 <translation id="7554791636758816595">Novo separador</translation>
 <translation id="7561196759112975576">Sempre</translation>
 <translation id="7583004045319035904">Utilize <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> para desbloquear os seus separadores de navegação anónima.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index 8dfa1a99..792b77b8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">ขั้นสูง</translation>
 <translation id="1981118202195772574">อุปกรณ์เคลื่อนที่</translation>
 <translation id="1989112275319619282">เปิดดู</translation>
+<translation id="1990820278544963435">ค้นหา</translation>
 <translation id="199425419756152024">ดูรหัสผ่าน</translation>
 <translation id="2010008505735295285">โหลดซ้ำ</translation>
 <translation id="2015722694326466240">หากต้องการดูรหัสผ่าน คุณต้องตั้งพาสโค้ดในอุปกรณ์ก่อน</translation>
@@ -875,6 +876,7 @@
 <translation id="7531345132340165516">เว็บไซต์ปัจจุบัน</translation>
 <translation id="7537586195939242955">ขออภัย ไม่สามารถติดตั้ง Pass ของคุณใน Passbook ในขณะนี้</translation>
 <translation id="7553234618121028547">หากต้องการปิด ให้เปิด<ph name="BEGIN_LINK" />การตั้งค่า<ph name="END_LINK" />แล้วไปที่ตัวเลือกรหัสผ่าน</translation>
+<translation id="7554645225856321710">ปิดทั้งหมด</translation>
 <translation id="7554791636758816595">แท็บใหม่</translation>
 <translation id="7561196759112975576">ทุกครั้ง</translation>
 <translation id="7583004045319035904">ใช้ <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> เพื่อปลดล็อกแท็บที่ไม่ระบุตัวตน</translation>
@@ -1089,6 +1091,7 @@
 <translation id="9188680907066685419">ออกจากระบบบัญชีที่มีการจัดการ</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> วันที่ผ่านมา</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">ค้นหาแท็บ…</translation>
 <translation id="9223358826628549784">ส่งรายงานข้อขัดข้องแล้ว</translation>
 <translation id="941747855997058526">เลือกรหัสผ่าน...</translation>
 <translation id="952704832371081537">ยกเลิก</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
index a7df9b2..ce616fe 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -133,6 +133,7 @@
 <translation id="1974060860693918893">Qo‘shimcha</translation>
 <translation id="1981118202195772574">Mobil</translation>
 <translation id="1989112275319619282">Tanlash</translation>
+<translation id="1990820278544963435">Qidirish</translation>
 <translation id="199425419756152024">Parolni koʻrish</translation>
 <translation id="2010008505735295285">Qayta yuklash</translation>
 <translation id="2015722694326466240">Parollarni ko‘rish uchun qurilmangizni maxfiy kod bilan qulflang.</translation>
@@ -1089,6 +1090,7 @@
 <translation id="9188680907066685419">Boshqariladigan hisobdan chiqish</translation>
 <translation id="9200875785104711666"><ph name="TIME" /> kun oldin</translation>
 <translation id="9203116392574189331">Handoff</translation>
+<translation id="9219154867334666734">Varaqlardan qidirish…</translation>
 <translation id="9223358826628549784">Ishdan chiqish hisoboti yuborildi.</translation>
 <translation id="941747855997058526">Parolni tanlang...</translation>
 <translation id="952704832371081537">Bekor qilish</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index 16fe69d..3569591 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -875,6 +875,7 @@
 <translation id="7531345132340165516">Trang hiện tại</translation>
 <translation id="7537586195939242955">Rất tiếc, không thể cài đặt Pass (Vé xem) của bạn vào Passbook (Ví điện tử) lúc này.</translation>
 <translation id="7553234618121028547">Để tắt, hãy mở phần <ph name="BEGIN_LINK" />Cài đặt<ph name="END_LINK" /> rồi chuyển đến phần Tuỳ chọn mật khẩu.</translation>
+<translation id="7554645225856321710">Đóng tất cả</translation>
 <translation id="7554791636758816595">Thẻ mới</translation>
 <translation id="7561196759112975576">Luôn luôn</translation>
 <translation id="7583004045319035904">Dùng <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> để mở khóa các thẻ Ẩn danh.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
index 14586490..ee2d273 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -875,6 +875,7 @@
 <translation id="7531345132340165516">当前网站</translation>
 <translation id="7537586195939242955">抱歉,目前无法将您的票证添加到 Passbook。</translation>
 <translation id="7553234618121028547">如需关闭此功能,请打开<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />,然后进入“密码选项”部分。</translation>
+<translation id="7554645225856321710">全部关闭</translation>
 <translation id="7554791636758816595">新标签页</translation>
 <translation id="7561196759112975576">永远</translation>
 <translation id="7583004045319035904">请使用<ph name="BIOMETRIC_AUTHENITCATION_TYPE" />解锁您的无痕式标签页。</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
index dfc0650..7c196d7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -873,6 +873,7 @@
 <translation id="7531345132340165516">目前網站</translation>
 <translation id="7537586195939242955">很抱歉,目前無法將您的通行票證加到 Passbook。</translation>
 <translation id="7553234618121028547">要關閉,請開啟「<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />」並前往「密碼選項」部分。</translation>
+<translation id="7554645225856321710">全部關閉</translation>
 <translation id="7554791636758816595">新分頁</translation>
 <translation id="7561196759112975576">永遠使用</translation>
 <translation id="7583004045319035904">使用 <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> 解鎖無痕式分頁。</translation>
diff --git a/ios/chrome/browser/application_context/application_context_impl.mm b/ios/chrome/browser/application_context/application_context_impl.mm
index 02915ca..1a8f90aa 100644
--- a/ios/chrome/browser/application_context/application_context_impl.mm
+++ b/ios/chrome/browser/application_context/application_context_impl.mm
@@ -312,11 +312,13 @@
 
 scoped_refptr<network::SharedURLLoaderFactory>
 ApplicationContextImpl::GetSharedURLLoaderFactory() {
+  DCHECK(thread_checker_.CalledOnValidThread());
   return ios_chrome_io_thread_->GetSharedURLLoaderFactory();
 }
 
 network::mojom::NetworkContext*
 ApplicationContextImpl::GetSystemNetworkContext() {
+  DCHECK(thread_checker_.CalledOnValidThread());
   return ios_chrome_io_thread_->GetSystemNetworkContext();
 }
 
@@ -431,6 +433,7 @@
 
 network::NetworkConnectionTracker*
 ApplicationContextImpl::GetNetworkConnectionTracker() {
+  DCHECK(thread_checker_.CalledOnValidThread());
   if (!network_connection_tracker_) {
     if (!network_change_manager_) {
       network_change_manager_ =
@@ -496,6 +499,7 @@
 }
 
 id<SingleSignOnService> ApplicationContextImpl::GetSSOService() {
+  DCHECK(thread_checker_.CalledOnValidThread());
   if (!single_sign_on_service_) {
     single_sign_on_service_ = ios::provider::CreateSSOService();
     DCHECK(single_sign_on_service_);
@@ -505,6 +509,7 @@
 
 segmentation_platform::OTRWebStateObserver*
 ApplicationContextImpl::GetSegmentationOTRWebStateObserver() {
+  DCHECK(thread_checker_.CalledOnValidThread());
   if (!segmentation_otr_web_state_observer_) {
     segmentation_otr_web_state_observer_ =
         std::make_unique<segmentation_platform::OTRWebStateObserver>(
@@ -514,6 +519,7 @@
 }
 
 PushNotificationService* ApplicationContextImpl::GetPushNotificationService() {
+  DCHECK(thread_checker_.CalledOnValidThread());
   if (!push_notification_service_) {
     push_notification_service_ = ios::provider::CreatePushNotificationService();
     DCHECK(push_notification_service_);
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index ec23114..a0a99e3 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -720,6 +720,10 @@
      flag_descriptions::kForceStartupSigninPromoName,
      flag_descriptions::kForceStartupSigninPromoDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(switches::kForceStartupSigninPromo)},
+    {"identity-status-consistency",
+     flag_descriptions::kIdentityStatusConsistencyName,
+     flag_descriptions::kIdentityStatusConsistencyDescription, flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(switches::kIdentityStatusConsistency)},
     {"restore-session-from-cache",
      flag_descriptions::kRestoreSessionFromCacheName,
      flag_descriptions::kRestoreSessionFromCacheDescription, flags_ui::kOsIos,
@@ -1041,9 +1045,15 @@
      flag_descriptions::kEnableSuggestionsScrollingOnIPadName,
      flag_descriptions::kEnableSuggestionsScrollingOnIPadDescription,
      flags_ui::kOsIos, FEATURE_VALUE_TYPE(kEnableSuggestionsScrollingOnIPad)},
+    {"popout-omnibox-ipad", flag_descriptions::kEnablePopoutOmniboxIpadName,
+     flag_descriptions::kEnablePopoutOmniboxIpadDescription, flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(kEnablePopoutOmniboxIpad)},
     {"experience-kit-calendar", flag_descriptions::kCalendarExperienceKitName,
      flag_descriptions::kCalendarExperienceKitDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(kCalendarExperienceKit)},
+    {"intents-on-phone-number", flag_descriptions::kPhoneNumberName,
+     flag_descriptions::kPhoneNumberDescription, flags_ui::kOsIos,
+     FEATURE_VALUE_TYPE(kEnablePhoneNumbers)},
     {"experience-kit-apple-calendar",
      flag_descriptions::kAppleCalendarExperienceKitName,
      flag_descriptions::kAppleCalendarExperienceKitDescription,
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
index b78cec1..84de11fa 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -145,6 +145,11 @@
     "When enabled, long pressing on dates will trigger Experience Kit Apple "
     "Calendar event handling.";
 
+extern const char kPhoneNumberName[] = "Phone number enable";
+extern const char kPhoneNumberDescription[] =
+    "When enabled, long pressing on a phone number will trigger the phone "
+    "number experience.";
+
 extern const char kEnableExpKitCalendarTextClassifierName[] =
     "Text Classifier in Experience Kit Calendar";
 extern const char kEnableExpKitCalendarTextClassifierDescription[] =
@@ -157,6 +162,11 @@
     "When enabled, Experience Kit will use Text Classifier library in "
     "entity detection where possible.";
 
+const char kEnablePopoutOmniboxIpadName[] = "Popout omnibox (iPad)";
+const char kEnablePopoutOmniboxIpadDescription[] =
+    "Make omnibox popup appear in a detached rounded rectangle below the "
+    "omnibox.";
+
 extern const char kMapsExperienceKitName[] = "Experience Kit Maps";
 extern const char kMapsExperienceKitDescription[] =
     "When enabled, long pressing on an address will trigger Experience Kit Maps"
@@ -358,6 +368,10 @@
     "When enabled, the startup sign-in promo is always displayed when starting "
     "Chrome.";
 
+const char kIdentityStatusConsistencyName[] = "Identity Status Consistency";
+const char kIdentityStatusConsistencyDescription[] =
+    "If enabled, always show identity status - even for signed-out users";
+
 const char kFullscreenPromosManagerName[] = "Fullscreen Promos Manager";
 const char kFullscreenPromosManagerDescription[] =
     "When enabled, the display of fullscreen promos will be coordinated by a "
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
index 8b2e3309..06503020 100644
--- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -123,6 +123,11 @@
 extern const char kAppleCalendarExperienceKitName[];
 extern const char kAppleCalendarExperienceKitDescription[];
 
+// Title and description for the flag to enable phone numbers detection and
+// processing.
+extern const char kPhoneNumberName[];
+extern const char kPhoneNumberDescription[];
+
 // Title and description for the flag to enable text classifier entity detection
 // in experience kit calendar.
 extern const char kEnableExpKitCalendarTextClassifierName[];
@@ -133,6 +138,10 @@
 extern const char kEnableExpKitTextClassifierName[];
 extern const char kEnableExpKitTextClassifierDescription[];
 
+// Title and description for popout omnibox on iPad feature.
+extern const char kEnablePopoutOmniboxIpadName[];
+extern const char kEnablePopoutOmniboxIpadDescription[];
+
 // Title and description for the flag to enable long press surrounding text.
 extern const char kLongPressSurroundingTextName[];
 extern const char kLongPressSurroundingTextDescription[];
@@ -308,6 +317,10 @@
 extern const char kForceStartupSigninPromoName[];
 extern const char kForceStartupSigninPromoDescription[];
 
+// Title and description for the flag to show signed-out avatar on NTP.
+extern const char kIdentityStatusConsistencyName[];
+extern const char kIdentityStatusConsistencyDescription[];
+
 // Title and description for the flag to enable sign-in with a Unicorn account.
 extern const char kEnableUnicornAccountSupportName[];
 extern const char kEnableUnicornAccountSupportDescription[];
diff --git a/ios/chrome/browser/ui/authentication/cells/table_view_signin_promo_item.mm b/ios/chrome/browser/ui/authentication/cells/table_view_signin_promo_item.mm
index 61de676b..1eb0102 100644
--- a/ios/chrome/browser/ui/authentication/cells/table_view_signin_promo_item.mm
+++ b/ios/chrome/browser/ui/authentication/cells/table_view_signin_promo_item.mm
@@ -43,16 +43,6 @@
                                     withStyle:SigninPromoViewStyleStandard];
   if (styler.cellTitleColor)
     cell.signinPromoView.textLabel.textColor = styler.cellTitleColor;
-  if (styler.tintColor) {
-    cell.signinPromoView.primaryButton.backgroundColor = styler.tintColor;
-    [cell.signinPromoView.secondaryButton setTitleColor:styler.tintColor
-                                               forState:UIControlStateNormal];
-  }
-  if (styler.solidButtonTextColor) {
-    [cell.signinPromoView.primaryButton
-        setTitleColor:styler.solidButtonTextColor
-             forState:UIControlStateNormal];
-  }
 }
 
 @end
diff --git a/ios/chrome/browser/ui/omnibox/BUILD.gn b/ios/chrome/browser/ui/omnibox/BUILD.gn
index 113b6b1..b901aa74 100644
--- a/ios/chrome/browser/ui/omnibox/BUILD.gn
+++ b/ios/chrome/browser/ui/omnibox/BUILD.gn
@@ -332,5 +332,8 @@
     "omnibox_ui_features.h",
   ]
   public_deps = [ "//base" ]
-  deps = [ "//ios/chrome/browser/ui:feature_flags" ]
+  deps = [
+    "//ios/chrome/browser/ui:feature_flags",
+    "//ui/base",
+  ]
 }
diff --git a/ios/chrome/browser/ui/omnibox/omnibox_ui_features.cc b/ios/chrome/browser/ui/omnibox/omnibox_ui_features.cc
index af754c9..ff7f3933 100644
--- a/ios/chrome/browser/ui/omnibox/omnibox_ui_features.cc
+++ b/ios/chrome/browser/ui/omnibox/omnibox_ui_features.cc
@@ -6,11 +6,16 @@
 
 #include "base/metrics/field_trial_params.h"
 #import "ios/chrome/browser/ui/ui_feature_flags.h"
+#import "ui/base/device_form_factor.h"
 
 BASE_FEATURE(kEnableSuggestionsScrollingOnIPad,
              "EnableSuggestionsScrollingOnIPad",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+BASE_FEATURE(kEnablePopoutOmniboxIpad,
+             "EnablePopoutOmniboxIpad",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 BASE_FEATURE(kOmniboxPasteButton,
              "OmniboxPasteButton",
              base::FEATURE_DISABLED_BY_DEFAULT);
@@ -51,3 +56,8 @@
 bool IsSwiftUIPopupEnabled() {
   return false;
 }
+
+bool IsIpadPopoutOmniboxEnabled() {
+  return base::FeatureList::IsEnabled(kEnablePopoutOmniboxIpad) &&
+         ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET;
+}
diff --git a/ios/chrome/browser/ui/omnibox/omnibox_ui_features.h b/ios/chrome/browser/ui/omnibox/omnibox_ui_features.h
index 720779d..8773c147 100644
--- a/ios/chrome/browser/ui/omnibox/omnibox_ui_features.h
+++ b/ios/chrome/browser/ui/omnibox/omnibox_ui_features.h
@@ -14,6 +14,9 @@
 // Feature flag to enable omnibox suggestions with iOS 16 `PasteButton`.
 BASE_DECLARE_FEATURE(kOmniboxPasteButton);
 
+// Feature flag to make omnibox popup a floating rounded rect.
+BASE_DECLARE_FEATURE(kEnablePopoutOmniboxIpad);
+
 // Feature parameter for kOmniboxPasteButton.
 extern const char kOmniboxPasteButtonParameterName[];
 // PasteButton on suggestion row, blue color with icon only and capsule shape.
@@ -38,5 +41,6 @@
 bool IsOmniboxActionsVisualTreatment2();
 // Returns false, swift version not supported anymore.
 bool IsSwiftUIPopupEnabled();
-
+// Returns if kEnablePopoutOmniboxIpad feature is enabled.
+bool IsIpadPopoutOmniboxEnabled();
 #endif  // IOS_CHROME_BROWSER_UI_OMNIBOX_OMNIBOX_UI_FEATURES_H_
diff --git a/ios/chrome/browser/ui/omnibox/popup/autocomplete_result_consumer.h b/ios/chrome/browser/ui/omnibox/popup/autocomplete_result_consumer.h
index 387c213..919c50b8 100644
--- a/ios/chrome/browser/ui/omnibox/popup/autocomplete_result_consumer.h
+++ b/ios/chrome/browser/ui/omnibox/popup/autocomplete_result_consumer.h
@@ -14,6 +14,10 @@
 // Delegate for AutocompleteResultConsumer.
 @protocol AutocompleteResultConsumerDelegate <NSObject>
 
+// Notify about a size change.
+- (void)autocompleteResultConsumerDidChangeTraitCollection:
+    (id<AutocompleteResultConsumer>)sender;
+
 // Tells the delegate on scroll.
 - (void)autocompleteResultConsumerDidScroll:
     (id<AutocompleteResultConsumer>)sender;
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_mediator.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_mediator.mm
index f75727f..49b28380 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_mediator.mm
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_mediator.mm
@@ -165,6 +165,11 @@
 
 #pragma mark - AutocompleteResultConsumerDelegate
 
+- (void)autocompleteResultConsumerDidChangeTraitCollection:
+    (id<AutocompleteResultConsumer>)sender {
+  [self.presenter updatePopupAfterTraitCollectionChange];
+}
+
 - (void)autocompleteResultConsumer:(id<AutocompleteResultConsumer>)sender
                didSelectSuggestion:(id<AutocompleteSuggestion>)suggestion
                              inRow:(NSUInteger)row {
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.h b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.h
index a396b8a..be80104 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.h
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.h
@@ -39,6 +39,10 @@
 // if necessary.
 - (void)updatePopup;
 
+// Only called when IsIpadPopoutOmniboxEnabled is true.
+// Tells the presenter to update, following a trait collection change.
+- (void)updatePopupAfterTraitCollectionChange;
+
 - (instancetype)initWithPopupPresenterDelegate:
                     (id<OmniboxPopupPresenterDelegate>)presenterDelegate
                            popupViewController:
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.mm
index 33d0889..6de7898 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.mm
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_presenter.mm
@@ -24,6 +24,7 @@
 
 namespace {
 const CGFloat kVerticalOffset = 6;
+const CGFloat kPopoutOmniboxSideInsets = -8;
 }  // namespace
 
 @interface OmniboxPopupPresenter ()
@@ -74,7 +75,33 @@
 
     _popupContainerView.translatesAutoresizingMaskIntoConstraints = NO;
     viewController.view.translatesAutoresizingMaskIntoConstraints = NO;
-    AddSameConstraints(viewController.view, _popupContainerView);
+
+    if (IsIpadPopoutOmniboxEnabled()) {
+      _popupContainerView.clipsToBounds = YES;
+      _popupContainerView.layer.cornerRadius = 11.0f;
+
+      if (IsOmniboxActionsVisualTreatment1()) {
+        UIColor* borderColor =
+            incognito ? [UIColor.whiteColor colorWithAlphaComponent:0.12]
+                      : [UIColor.blackColor colorWithAlphaComponent:0.12];
+
+        _popupContainerView.layer.borderColor = borderColor.CGColor;
+        _popupContainerView.layer.borderWidth = 2.0f;
+        AddSameConstraints(viewController.view, _popupContainerView);
+
+      } else {
+        // Treatment 2.
+        // Popup's outer edges align with the omnibox, top edge overlaps the
+        // toolbar by 1pt.
+        AddSameConstraintsWithInsets(
+            viewController.view, _popupContainerView,
+            ChromeDirectionalEdgeInsetsMake(0, kPopoutOmniboxSideInsets, 0,
+                                            kPopoutOmniboxSideInsets));
+        _popupContainerView.backgroundColor = UIColor.redColor;
+      }
+    } else {
+      AddSameConstraints(viewController.view, _popupContainerView);
+    }
 
     if (!IsSwiftUIPopupEnabled()) {
       // Add bottom separator. This will only be visible on iPad where
@@ -142,6 +169,33 @@
   }
 }
 
+// With popout omnibox, the popup might be in either of two states:
+// a) regular x regular state, where the popup matches OB width
+// b) compact state, where popup takes whole screen width
+// Therefore, on trait collection change, re-add the popup and recreate the
+// constraints to make sure the correct ones are used.
+- (void)updatePopupAfterTraitCollectionChange {
+  DCHECK(IsIpadPopoutOmniboxEnabled());
+
+  if (!self.open) {
+    return;
+  }
+
+  // Re-add the popup container to break any existing constraints.
+  [self.popupContainerView removeFromSuperview];
+  [[self.delegate popupParentViewForPresenter:self]
+      addSubview:self.popupContainerView];
+
+  // Re-add necessary constraints.
+  [self initialLayout];
+
+  if (ui::GetDeviceFormFactor() != ui::DEVICE_FORM_FACTOR_TABLET ||
+      IsSwiftUIPopupEnabled()) {
+    self.bottomConstraint.active = YES;
+    self.bottomSeparator.hidden = NO;
+  }
+}
+
 #pragma mark - Private
 
 // Layouts the popup when it is just added to the view hierarchy.
@@ -157,18 +211,32 @@
 
   // Position the top anchor of the popup relatively to the layout guide
   // positioned on the omnibox.
-  UILayoutGuide* topLayout =
-      [NamedGuide guideWithName:kOmniboxGuide view:popup];
+  UILayoutGuide* omniboxGuide = [NamedGuide guideWithName:kOmniboxGuide
+                                                     view:popup];
   NSLayoutConstraint* topConstraint =
-      [popup.topAnchor constraintEqualToAnchor:topLayout.bottomAnchor];
+      [popup.topAnchor constraintEqualToAnchor:omniboxGuide.bottomAnchor];
   topConstraint.constant = kVerticalOffset;
 
-  [NSLayoutConstraint activateConstraints:@[
-    [popup.leadingAnchor constraintEqualToAnchor:popup.superview.leadingAnchor],
-    [popup.trailingAnchor
-        constraintEqualToAnchor:popup.superview.trailingAnchor],
-    topConstraint,
-  ]];
+  NSMutableArray<NSLayoutConstraint*>* constraintsToActivate =
+      [NSMutableArray arrayWithObject:topConstraint];
+
+  if (IsIpadPopoutOmniboxEnabled() &&
+      IsRegularXRegularSizeClass(self.popupContainerView)) {
+    [constraintsToActivate addObjectsFromArray:@[
+      [popup.leadingAnchor constraintEqualToAnchor:omniboxGuide.leadingAnchor],
+      [popup.trailingAnchor
+          constraintEqualToAnchor:omniboxGuide.trailingAnchor],
+    ]];
+  } else {
+    [constraintsToActivate addObjectsFromArray:@[
+      [popup.leadingAnchor
+          constraintEqualToAnchor:popup.superview.leadingAnchor],
+      [popup.trailingAnchor
+          constraintEqualToAnchor:popup.superview.trailingAnchor],
+    ]];
+  }
+
+  [NSLayoutConstraint activateConstraints:constraintsToActivate];
 
   [[popup superview] layoutIfNeeded];
 }
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row_cell.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row_cell.mm
index 4b94b3de..bdcddfb 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row_cell.mm
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_row_cell.mm
@@ -37,6 +37,8 @@
 // omnibox image. If Variation 2 becomes default, probably we don't need the
 // fancy layout guide setup and can get away with simple margins.
 const CGFloat kImageOffsetVariation2 = 8.0f;
+const CGFloat kImageAdditionalOffsetVariation2PopoutOmnibox = 10.0f;
+const CGFloat kAdditionalTextOffsetVariation2 = 8.0f;
 const CGFloat kTextOffsetVariation2 = 8.0f;
 const CGFloat kTrailingButtonPointSize = 17.0f;
 
@@ -346,17 +348,21 @@
   // views. See -freezeLayoutGuidePositions for the reason why.
 
   CGFloat iconXOffset = 0;
+  BOOL isRTL = [UIView userInterfaceLayoutDirectionForSemanticContentAttribute:
+                           self.omniboxSemanticContentAttribute] ==
+               UIUserInterfaceLayoutDirectionRightToLeft;
+
   if (IsOmniboxActionsVisualTreatment2() && !IsRegularXRegularSizeClass(self)) {
     // Inset the icons in variation 2, except in reg x reg size class where the
     // alignment works well already. Flip the inset on RTL as it's not flipped
     // automatically.
-    BOOL isRTL =
-        [UIView userInterfaceLayoutDirectionForSemanticContentAttribute:
-                    self.omniboxSemanticContentAttribute] ==
-        UIUserInterfaceLayoutDirectionRightToLeft;
     iconXOffset = isRTL ? -kImageOffsetVariation2 : kImageOffsetVariation2;
   }
 
+  if (IsIpadPopoutOmniboxEnabled() && IsOmniboxActionsVisualTreatment2()) {
+    iconXOffset += kImageAdditionalOffsetVariation2PopoutOmnibox;
+  }
+
   self.nonDeletingLayoutGuideConstraints = @[
     [self.leadingIconView.centerXAnchor
         constraintEqualToAnchor:imageLayoutGuide.centerXAnchor
@@ -415,11 +421,21 @@
   CGRect layoutGuideFrame =
       [layoutGuide.owningView convertRect:layoutGuide.layoutFrame
                                    toView:self.contentView];
-  return self.omniboxSemanticContentAttribute ==
-                 UISemanticContentAttributeForceRightToLeft
-             ? self.contentView.bounds.size.width - layoutGuideFrame.origin.x -
-                   layoutGuideFrame.size.width
-             : layoutGuideFrame.origin.x;
+  CGFloat leadingSpace = self.omniboxSemanticContentAttribute ==
+                                 UISemanticContentAttributeForceRightToLeft
+                             ? self.contentView.bounds.size.width -
+                                   layoutGuideFrame.origin.x -
+                                   layoutGuideFrame.size.width
+                             : layoutGuideFrame.origin.x;
+
+  if (IsIpadPopoutOmniboxEnabled() && IsOmniboxActionsVisualTreatment2()) {
+    leadingSpace += self.omniboxSemanticContentAttribute ==
+                            UISemanticContentAttributeForceRightToLeft
+                        ? -kAdditionalTextOffsetVariation2
+                        : kAdditionalTextOffsetVariation2;
+  }
+
+  return leadingSpace;
 }
 
 // Unfreezes the position of any view that is positioned relative to a layout
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm
index ca3e0979..6a5b49a9 100644
--- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm
+++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_controller.mm
@@ -45,6 +45,9 @@
 const CGFloat kTopPaddingVariation1 = 0.0;
 const CGFloat kTopPaddingVariation2 = 10.0;
 const CGFloat kTopBottomPaddingVariation2Ipad = 16.0;
+const CGFloat kTopPaddingVariation2IpadPopoutOmnibox = 8.0;
+const CGFloat kBottomPaddingVariation2IpadPopoutOmnibox = -12.0;
+const CGFloat kSidePaddingVariation2IpadPopoutOmnibox = 8.0;
 const CGFloat kFooterHeightVariation1 = 12.0;
 const CGFloat kFooterHeightVariation2 = 16.0;
 // Percentage of the suggestion height that needs to be visible in order to
@@ -179,6 +182,9 @@
 - (void)traitCollectionDidChange:(UITraitCollection*)previousTraitCollection {
   [super traitCollectionDidChange:previousTraitCollection];
   [self updateBackgroundColor];
+  if (IsIpadPopoutOmniboxEnabled()) {
+    [self.delegate autocompleteResultConsumerDidChangeTraitCollection:self];
+  }
 }
 
 #pragma mark - Getter/Setter
@@ -315,7 +321,13 @@
                                   omniboxFrame.origin.x -
                                   omniboxFrame.size.width
                             : 0;
+
   if (IsOmniboxActionsVisualTreatment2()) {
+    if (IsIpadPopoutOmniboxEnabled() && IsRegularXRegularSizeClass(self)) {
+      leftMargin += kSidePaddingVariation2IpadPopoutOmnibox;
+      rightMargin += kSidePaddingVariation2IpadPopoutOmnibox;
+    }
+
     // Adjust the table view to be aligned with the omnibox textfield.
     self.tableView.layoutMargins =
         UIEdgeInsetsMake(self.tableView.layoutMargins.top, leftMargin,
@@ -1040,6 +1052,10 @@
     BOOL isIpad = ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET;
     topPadding =
         isIpad ? kTopBottomPaddingVariation2Ipad : kTopPaddingVariation2;
+
+    if (IsIpadPopoutOmniboxEnabled()) {
+      topPadding = kTopPaddingVariation2IpadPopoutOmnibox;
+    }
   }
   return topPadding;
 }
@@ -1047,6 +1063,10 @@
 - (CGFloat)bottomPadding {
   if (IsOmniboxActionsVisualTreatment2() &&
       (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET)) {
+    if (IsIpadPopoutOmniboxEnabled()) {
+      return kBottomPaddingVariation2IpadPopoutOmnibox;
+    }
+
     return kTopBottomPaddingVariation2Ipad;
   }
   return kTopAndBottomPadding;
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/destination_usage_history/destination_usage_history.mm b/ios/chrome/browser/ui/popup_menu/overflow_menu/destination_usage_history/destination_usage_history.mm
index 46421db..996392a 100644
--- a/ios/chrome/browser/ui/popup_menu/overflow_menu/destination_usage_history/destination_usage_history.mm
+++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/destination_usage_history/destination_usage_history.mm
@@ -4,6 +4,8 @@
 
 #import "ios/chrome/browser/ui/popup_menu/overflow_menu/destination_usage_history/destination_usage_history.h"
 
+#import <ostream>
+
 #import "base/ranges/algorithm.h"
 #import "base/strings/string_number_conversions.h"
 #import "base/strings/sys_string_conversions.h"
diff --git a/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm b/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm
index 6a57f52c5..230d4335 100644
--- a/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm
+++ b/ios/chrome/browser/ui/recent_tabs/recent_tabs_table_view_controller.mm
@@ -368,11 +368,7 @@
   historyItem.image = UseSymbols() ? DefaultSymbolWithPointSize(
                                          kHistorySymbol, kSymbolActionPointSize)
                                    : [UIImage imageNamed:@"show_history"];
-  if (self.styler.tintColor) {
-    historyItem.textColor = self.styler.tintColor;
-  } else {
-    historyItem.textColor = [UIColor colorNamed:kBlueColor];
-  }
+  historyItem.textColor = [UIColor colorNamed:kBlueColor];
   historyItem.accessibilityIdentifier =
       kRecentTabsShowFullHistoryCellAccessibilityIdentifier;
   [model addItem:historyItem
@@ -726,9 +722,7 @@
 - (void)addSuggestedActionsSection {
   TableViewModel* model = self.tableViewModel;
 
-  UIColor* actionsTextColor = self.styler.tintColor
-                                  ? self.styler.tintColor
-                                  : [UIColor colorNamed:kBlueColor];
+  UIColor* actionsTextColor = [UIColor colorNamed:kBlueColor];
 
   [model addSectionWithIdentifier:SectionIdentifierSuggestedActions];
   TableViewTextHeaderFooterItem* header = [[TableViewTextHeaderFooterItem alloc]
diff --git a/ios/chrome/browser/ui/settings/google_services/BUILD.gn b/ios/chrome/browser/ui/settings/google_services/BUILD.gn
index 7b6ec7a..caa27d8 100644
--- a/ios/chrome/browser/ui/settings/google_services/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/google_services/BUILD.gn
@@ -41,8 +41,6 @@
     "//components/password_manager/core/common",
     "//components/password_manager/core/common:features",
     "//components/prefs",
-    "//components/safe_browsing/core/common",
-    "//components/safe_browsing/core/common:safe_browsing_prefs",
     "//components/signin/public/identity_manager/objc",
     "//components/strings",
     "//components/sync",
@@ -153,8 +151,6 @@
     "//components/password_manager/core/common",
     "//components/policy:generated",
     "//components/policy/core/common:common_constants",
-    "//components/safe_browsing/core/common",
-    "//components/safe_browsing/core/common:safe_browsing_prefs",
     "//components/signin/public/base",
     "//components/strings",
     "//ios/chrome/app/strings",
diff --git a/ios/chrome/browser/ui/settings/google_services/google_services_settings_coordinator.mm b/ios/chrome/browser/ui/settings/google_services/google_services_settings_coordinator.mm
index 4358697d..8a9b349 100644
--- a/ios/chrome/browser/ui/settings/google_services/google_services_settings_coordinator.mm
+++ b/ios/chrome/browser/ui/settings/google_services/google_services_settings_coordinator.mm
@@ -14,7 +14,6 @@
 #import "ios/chrome/browser/main/browser.h"
 #import "ios/chrome/browser/signin/authentication_service.h"
 #import "ios/chrome/browser/signin/authentication_service_factory.h"
-#import "ios/chrome/browser/signin/chrome_account_manager_service_factory.h"
 #import "ios/chrome/browser/signin/identity_manager_factory.h"
 #import "ios/chrome/browser/sync/sync_service_factory.h"
 #import "ios/chrome/browser/sync/sync_setup_service.h"
@@ -92,10 +91,7 @@
   self.viewController = viewController;
   self.mediator = [[GoogleServicesSettingsMediator alloc]
       initWithUserPrefService:self.browser->GetBrowserState()->GetPrefs()
-             localPrefService:GetApplicationContext()->GetLocalState()
-        accountManagerService:ChromeAccountManagerServiceFactory::
-                                  GetForBrowserState(
-                                      self.browser->GetBrowserState())];
+             localPrefService:GetApplicationContext()->GetLocalState()];
   self.mediator.consumer = viewController;
   self.mediator.authService = self.authService;
   self.mediator.identityManager = IdentityManagerFactory::GetForBrowserState(
diff --git a/ios/chrome/browser/ui/settings/google_services/google_services_settings_egtest.mm b/ios/chrome/browser/ui/settings/google_services/google_services_settings_egtest.mm
index 642076e9..d2cd442d 100644
--- a/ios/chrome/browser/ui/settings/google_services/google_services_settings_egtest.mm
+++ b/ios/chrome/browser/ui/settings/google_services/google_services_settings_egtest.mm
@@ -6,8 +6,6 @@
 #import "base/test/ios/wait_util.h"
 #import "components/policy/core/common/policy_loader_ios_constants.h"
 #import "components/policy/policy_constants.h"
-#import "components/safe_browsing/core/common/features.h"
-#import "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #import "components/signin/public/base/signin_pref_names.h"
 #import "components/signin/public/base/signin_switches.h"
 #import "ios/chrome/browser/policy/policy_util.h"
diff --git a/ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.h b/ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.h
index fd1b6419..ec445e5d 100644
--- a/ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.h
+++ b/ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.h
@@ -13,7 +13,6 @@
 #import "ios/chrome/browser/ui/settings/google_services/google_services_settings_view_controller_model_delegate.h"
 
 class AuthenticationService;
-class ChromeAccountManagerService;
 @protocol GoogleServicesSettingsCommandHandler;
 @class GoogleServicesSettingsViewController;
 class PrefService;
@@ -41,11 +40,8 @@
 // Designated initializer. All the paramters should not be null.
 // `userPrefService`: preference service from the browser state.
 // `localPrefService`: preference service from the application context.
-// `mode`: mode to display the Google services settings.
 - (instancetype)initWithUserPrefService:(PrefService*)userPrefService
                        localPrefService:(PrefService*)localPrefService
-                  accountManagerService:
-                      (ChromeAccountManagerService*)accountManagerService
     NS_DESIGNATED_INITIALIZER;
 
 - (instancetype)init NS_UNAVAILABLE;
diff --git a/ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.mm b/ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.mm
index cfe3b34b..d8d95b5 100644
--- a/ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.mm
+++ b/ios/chrome/browser/ui/settings/google_services/google_services_settings_mediator.mm
@@ -11,8 +11,6 @@
 #import "components/password_manager/core/common/password_manager_features.h"
 #import "components/password_manager/core/common/password_manager_pref_names.h"
 #import "components/prefs/pref_service.h"
-#import "components/safe_browsing/core/common/features.h"
-#import "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #import "components/signin/public/base/signin_pref_names.h"
 #import "components/sync/driver/sync_service.h"
 #import "components/unified_consent/pref_names.h"
@@ -21,8 +19,6 @@
 #import "ios/chrome/browser/prefs/pref_names.h"
 #import "ios/chrome/browser/signin/authentication_service.h"
 #import "ios/chrome/browser/signin/authentication_service_factory.h"
-#import "ios/chrome/browser/signin/chrome_account_manager_service.h"
-#import "ios/chrome/browser/signin/chrome_account_manager_service_observer_bridge.h"
 #import "ios/chrome/browser/signin/system_identity.h"
 #import "ios/chrome/browser/ui/authentication/authentication_constants.h"
 #import "ios/chrome/browser/ui/authentication/cells/table_view_account_item.h"
@@ -75,13 +71,10 @@
   AllowChromeSigninItemType = kItemTypeEnumZero,
   AutocompleteSearchesAndURLsItemType,
   AutocompleteSearchesAndURLsManagedItemType,
-  SafeBrowsingItemType,
-  SafeBrowsingManagedItemType,
   ImproveChromeItemType,
   ImproveChromeManagedItemType,
   BetterSearchAndBrowsingItemType,
   BetterSearchAndBrowsingManagedItemType,
-  PasswordLeakCheckSwitchItemType,
   TrackPricesOnTabsItemType,
 };
 
@@ -121,13 +114,7 @@
 
 }  // namespace
 
-@interface GoogleServicesSettingsMediator () <
-    BooleanObserver,
-    ChromeAccountManagerServiceObserver> {
-  // account manager observer.
-  std::unique_ptr<ChromeAccountManagerServiceObserverBridge>
-      _accountManagerServiceObserver;
-}
+@interface GoogleServicesSettingsMediator () <BooleanObserver>
 
 // Returns YES if the user is authenticated.
 @property(nonatomic, assign, readonly) BOOL hasPrimaryIdentity;
@@ -138,9 +125,6 @@
 // Preference value for the "Autocomplete searches and URLs" feature.
 @property(nonatomic, strong, readonly)
     PrefBackedBoolean* autocompleteSearchPreference;
-// Preference value for the "Safe Browsing" feature.
-@property(nonatomic, strong, readonly)
-    PrefBackedBoolean* safeBrowsingPreference;
 // Preference value for the "Help improve Chromium's features" feature.
 @property(nonatomic, strong, readonly)
     PrefBackedBoolean* sendDataUsagePreference;
@@ -152,14 +136,6 @@
 // Preference value for the "Make searches and browsing better" feature.
 @property(nonatomic, strong, readonly)
     PrefBackedBoolean* anonymizedDataCollectionPreference;
-// The observable boolean that binds to the password leak check settings
-// state.
-@property(nonatomic, strong, readonly)
-    PrefBackedBoolean* passwordLeakCheckPreference;
-// The item related to the switch for the automatic password leak detection
-// setting.
-@property(nonatomic, strong, null_resettable)
-    TableViewSwitchItem* passwordLeakCheckItem;
 
 // All the items for the non-personalized section.
 @property(nonatomic, strong, readonly) ItemArray nonPersonalizedItems;
@@ -172,9 +148,6 @@
 // policies.
 @property(nonatomic, assign, readonly) PrefService* localPrefService;
 
-// Account manager service to retrieve Chrome identities.
-@property(nonatomic, assign) ChromeAccountManagerService* accountManagerService;
-
 // Preference value for displaying price drop annotations on Tabs for shopping
 // URLs in the Tab Switching UI as price drops are identified.
 @property(nonatomic, strong, readonly)
@@ -187,9 +160,7 @@
 @synthesize nonPersonalizedItems = _nonPersonalizedItems;
 
 - (instancetype)initWithUserPrefService:(PrefService*)userPrefService
-                       localPrefService:(PrefService*)localPrefService
-                  accountManagerService:
-                      (ChromeAccountManagerService*)accountManagerService {
+                       localPrefService:(PrefService*)localPrefService {
   self = [super init];
   if (self) {
     DCHECK(userPrefService);
@@ -204,17 +175,6 @@
         initWithPrefService:userPrefService
                    prefName:prefs::kSearchSuggestEnabled];
     _autocompleteSearchPreference.observer = self;
-    if (!base::FeatureList::IsEnabled(safe_browsing::kEnhancedProtection)) {
-      _safeBrowsingPreference = [[PrefBackedBoolean alloc]
-          initWithPrefService:userPrefService
-                     prefName:prefs::kSafeBrowsingEnabled];
-      _safeBrowsingPreference.observer = self;
-      _passwordLeakCheckPreference = [[PrefBackedBoolean alloc]
-          initWithPrefService:userPrefService
-                     prefName:password_manager::prefs::
-                                  kPasswordLeakDetectionEnabled];
-      _passwordLeakCheckPreference.observer = self;
-    }
     _sendDataUsagePreference = [[PrefBackedBoolean alloc]
         initWithPrefService:localPrefService
                    prefName:metrics::prefs::kMetricsReportingEnabled];
@@ -228,7 +188,6 @@
         initWithPrefService:userPrefService
                    prefName:prefs::kTrackPricesOnTabsEnabled];
     _trackPricesOnTabsPreference.observer = self;
-    _accountManagerService = accountManagerService;
   }
   return self;
 }
@@ -293,16 +252,6 @@
                 ? l10n_util::GetNSString(IDS_IOS_SETTING_ON)
                 : l10n_util::GetNSString(IDS_IOS_SETTING_OFF);
         break;
-      case SafeBrowsingItemType:
-        base::mac::ObjCCast<SyncSwitchItem>(item).on =
-            self.safeBrowsingPreference.value;
-        break;
-      case SafeBrowsingManagedItemType:
-        base::mac::ObjCCast<TableViewInfoButtonItem>(item).statusText =
-            self.safeBrowsingPreference.value
-                ? l10n_util::GetNSString(IDS_IOS_SETTING_ON)
-                : l10n_util::GetNSString(IDS_IOS_SETTING_OFF);
-        break;
       case ImproveChromeItemType:
         base::mac::ObjCCast<SyncSwitchItem>(item).on =
             self.sendDataUsagePreference.value;
@@ -323,9 +272,6 @@
                 ? l10n_util::GetNSString(IDS_IOS_SETTING_ON)
                 : l10n_util::GetNSString(IDS_IOS_SETTING_OFF);
         break;
-      case PasswordLeakCheckSwitchItemType:
-        [self updateLeakCheckItem];
-        break;
       case TrackPricesOnTabsItemType:
         base::mac::ObjCCast<SyncSwitchItem>(item).on =
             self.trackPricesOnTabsPreference.value;
@@ -375,31 +321,6 @@
                       IDS_IOS_GOOGLE_SERVICES_SETTINGS_AUTOCOMPLETE_SEARCHES_AND_URLS_DETAIL];
       [items addObject:autocompleteItem];
     }
-    if (!base::FeatureList::IsEnabled(safe_browsing::kEnhancedProtection)) {
-      if (self.userPrefService->IsManagedPreference(
-              prefs::kSafeBrowsingEnabled)) {
-        TableViewInfoButtonItem* safeBrowsingManagedItem = [self
-            tableViewInfoButtonItemType:
-                AutocompleteSearchesAndURLsManagedItemType
-                           textStringID:
-                               IDS_IOS_GOOGLE_SERVICES_SETTINGS_SAFE_BROWSING_TEXT
-                         detailStringID:
-                             IDS_IOS_GOOGLE_SERVICES_SETTINGS_SAFE_BROWSING_DETAIL
-                                 status:self.safeBrowsingPreference.value];
-        [items addObject:safeBrowsingManagedItem];
-      } else {
-        SyncSwitchItem* safeBrowsingItem = [self
-            switchItemWithItemType:SafeBrowsingItemType
-                      textStringID:
-                          IDS_IOS_GOOGLE_SERVICES_SETTINGS_SAFE_BROWSING_TEXT
-                    detailStringID:
-                        IDS_IOS_GOOGLE_SERVICES_SETTINGS_SAFE_BROWSING_DETAIL];
-        safeBrowsingItem.accessibilityIdentifier =
-            kSafeBrowsingItemAccessibilityIdentifier;
-        [items addObject:safeBrowsingItem];
-      }
-      [items addObject:self.passwordLeakCheckItem];
-    }
     if (self.localPrefService->IsManagedPreference(
             metrics::prefs::kMetricsReportingEnabled) &&
         !self.localPrefService->GetBoolean(
@@ -470,21 +391,6 @@
   return _nonPersonalizedItems;
 }
 
-- (TableViewSwitchItem*)passwordLeakCheckItem {
-  if (!_passwordLeakCheckItem) {
-    TableViewSwitchItem* passwordLeakCheckItem = [[TableViewSwitchItem alloc]
-        initWithType:PasswordLeakCheckSwitchItemType];
-    passwordLeakCheckItem.text =
-        l10n_util::GetNSString(IDS_IOS_LEAK_CHECK_SWITCH);
-    passwordLeakCheckItem.on = [self passwordLeakCheckItemOnState];
-    passwordLeakCheckItem.accessibilityIdentifier =
-        kPasswordLeakCheckItemAccessibilityIdentifier;
-    passwordLeakCheckItem.enabled = [self isPasswordLeakCheckEnabled];
-    _passwordLeakCheckItem = passwordLeakCheckItem;
-  }
-  return _passwordLeakCheckItem;
-}
-
 #pragma mark - Private
 
 // Creates an item with a switch toggle.
@@ -524,62 +430,12 @@
   return managedItem;
 }
 
-// Returns a boolean indicating whether leak detection feature is enabled.
-- (BOOL)isPasswordLeakCheckEnabled {
-  return self.hasPrimaryIdentity ||
-         base::FeatureList::IsEnabled(
-             password_manager::features::kLeakDetectionUnauthenticated);
-}
-
-// Returns a boolean indicating if the switch should appear as "On" or "Off"
-// based on the sync preference and the sign in status.
-- (BOOL)passwordLeakCheckItemOnState {
-  return self.safeBrowsingPreference.value &&
-         self.passwordLeakCheckPreference.value &&
-         [self isPasswordLeakCheckEnabled];
-}
-
-// Updates the detail text and on state of the leak check item based on the
-// state.
-- (void)updateLeakCheckItem {
-  self.passwordLeakCheckItem.enabled =
-      self.safeBrowsingPreference.value && [self isPasswordLeakCheckEnabled];
-  self.passwordLeakCheckItem.on = [self passwordLeakCheckItemOnState];
-
-  if (self.passwordLeakCheckPreference.value &&
-      ![self isPasswordLeakCheckEnabled]) {
-    // If the user is signed out and the sync preference is enabled, this
-    // informs that it will be turned on on sign in.
-    self.passwordLeakCheckItem.detailText =
-        l10n_util::GetNSString(IDS_IOS_LEAK_CHECK_SIGNED_OUT_ENABLED_DESC);
-    return;
-  }
-  self.passwordLeakCheckItem.detailText = nil;
-}
-
-// Updates leak item and asks the consumer to reload it.
-- (void)updateLeakCheckItemAndReload {
-  TableViewModel* model = self.consumer.tableViewModel;
-  TableViewSwitchItem* passwordLeakCheckItem = self.passwordLeakCheckItem;
-  if (base::FeatureList::IsEnabled(safe_browsing::kEnhancedProtection)) {
-    // `passwordLeakCheckItem` is not used when `kEnhancedProtection` is
-    // enabled.
-    DCHECK(![model hasItem:passwordLeakCheckItem]);
-    return;
-  }
-  [self updateLeakCheckItem];
-  [self.consumer reloadItem:passwordLeakCheckItem];
-}
-
 #pragma mark - GoogleServicesSettingsViewControllerModelDelegate
 
 - (void)googleServicesSettingsViewControllerLoadModel:
     (GoogleServicesSettingsViewController*)controller {
   DCHECK_EQ(self.consumer, controller);
   [self loadNonPersonalizedSection];
-  _accountManagerServiceObserver.reset(
-      new ChromeAccountManagerServiceObserverBridge(
-          self, self.accountManagerService));
 }
 
 - (BOOL)isAllowChromeSigninItem:(int)type {
@@ -615,10 +471,6 @@
     case AutocompleteSearchesAndURLsItemType:
       self.autocompleteSearchPreference.value = value;
       break;
-    case SafeBrowsingItemType:
-      self.safeBrowsingPreference.value = value;
-      [self updateLeakCheckItemAndReload];
-      break;
     case ImproveChromeItemType:
       self.sendDataUsagePreference.value = value;
       // Don't set value if sendDataUsageWifiOnlyPreference has not been
@@ -631,17 +483,10 @@
     case BetterSearchAndBrowsingItemType:
       self.anonymizedDataCollectionPreference.value = value;
       break;
-    case PasswordLeakCheckSwitchItemType:
-      // Update the pref.
-      self.passwordLeakCheckPreference.value = value;
-      // Update the item.
-      [self updateLeakCheckItem];
-      break;
     case TrackPricesOnTabsItemType:
       self.trackPricesOnTabsPreference.value = value;
       break;
     case AutocompleteSearchesAndURLsManagedItemType:
-    case SafeBrowsingManagedItemType:
     case BetterSearchAndBrowsingManagedItemType:
     case ImproveChromeManagedItemType:
       NOTREACHED();
@@ -655,10 +500,4 @@
   [self updateNonPersonalizedSectionWithNotification:YES];
 }
 
-#pragma mark - ChromeAccountManagerServiceObserver
-
-- (void)identityChanged:(id<SystemIdentity>)identity {
-  [self updateLeakCheckItemAndReload];
-}
-
 @end
diff --git a/ios/chrome/browser/ui/settings/password/password_settings/password_settings_mediator_unittest.mm b/ios/chrome/browser/ui/settings/password/password_settings/password_settings_mediator_unittest.mm
index 13b9064..0ad1346 100644
--- a/ios/chrome/browser/ui/settings/password/password_settings/password_settings_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/settings/password/password_settings/password_settings_mediator_unittest.mm
@@ -76,7 +76,7 @@
     password_manager::MockAffiliationService affiliation_service_;
     store_ = CreateAndUseTestPasswordStore(browser_state_.get());
     presenter_ = std::make_unique<SavedPasswordsPresenter>(
-        &affiliation_service_, store_);
+        &affiliation_service_, store_, /*accont_store=*/nullptr);
 
     mediator_ = [[PasswordSettingsMediator alloc]
         initWithReauthenticationModule:reauth_module_
diff --git a/ios/chrome/browser/ui/settings/privacy/safe_browsing/safe_browsing_enhanced_protection_coordinator.mm b/ios/chrome/browser/ui/settings/privacy/safe_browsing/safe_browsing_enhanced_protection_coordinator.mm
index d363fd9..bfd78e5 100644
--- a/ios/chrome/browser/ui/settings/privacy/safe_browsing/safe_browsing_enhanced_protection_coordinator.mm
+++ b/ios/chrome/browser/ui/settings/privacy/safe_browsing/safe_browsing_enhanced_protection_coordinator.mm
@@ -53,7 +53,6 @@
 - (void)start {
   self.viewController = [[SafeBrowsingEnhancedProtectionViewController alloc]
       initWithStyle:ChromeTableViewStyle()];
-  self.viewController.styler.cellSeparatorColor = UIColor.clearColor;
   self.viewController.presentationDelegate = self;
   self.mediator = [[SafeBrowsingEnhancedProtectionMediator alloc] init];
   self.mediator.consumer = self.viewController;
diff --git a/ios/chrome/browser/ui/settings/privacy/safe_browsing/safe_browsing_enhanced_protection_view_controller.mm b/ios/chrome/browser/ui/settings/privacy/safe_browsing/safe_browsing_enhanced_protection_view_controller.mm
index 92e05fe..d5b6c44 100644
--- a/ios/chrome/browser/ui/settings/privacy/safe_browsing/safe_browsing_enhanced_protection_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/privacy/safe_browsing/safe_browsing_enhanced_protection_view_controller.mm
@@ -62,6 +62,7 @@
   [super viewDidLoad];
   self.tableView.accessibilityIdentifier =
       kSafeBrowsingEnhancedProtectionTableViewId;
+  self.tableView.separatorColor = UIColor.clearColor;
   self.title =
       l10n_util::GetNSString(IDS_IOS_SAFE_BROWSING_ENHANCED_PROTECTION_TITLE);
   self.styler.cellBackgroundColor = UIColor.clearColor;
diff --git a/ios/chrome/browser/ui/tab_switcher/BUILD.gn b/ios/chrome/browser/ui/tab_switcher/BUILD.gn
index fdd9a44..e4d3ff6 100644
--- a/ios/chrome/browser/ui/tab_switcher/BUILD.gn
+++ b/ios/chrome/browser/ui/tab_switcher/BUILD.gn
@@ -6,6 +6,8 @@
 
 source_set("tab_switcher") {
   sources = [
+    "tab_collection_consumer.h",
+    "tab_collection_drag_drop_handler.h",
     "tab_switcher_item.h",
     "tab_switcher_item.mm",
   ]
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_consumer.h b/ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h
similarity index 85%
rename from ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_consumer.h
rename to ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h
index df70a20e2..77ee935f 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_consumer.h
+++ b/ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h
@@ -1,16 +1,16 @@
-// Copyright 2018 The Chromium Authors
+// Copyright 2022 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_GRID_GRID_CONSUMER_H_
-#define IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_GRID_GRID_CONSUMER_H_
+#ifndef IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_COLLECTION_CONSUMER_H_
+#define IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_COLLECTION_CONSUMER_H_
 
 #import <Foundation/Foundation.h>
 
 @class TabSwitcherItem;
 
-// Supports idempotent insert/delete/updates to a grid.
-@protocol GridConsumer
+// Supports idempotent insert/delete/updates tabs to a collection view.
+@protocol TabCollectionConsumer
 
 // Many of the following methods pass a `selectedItemID` as a parameter,
 // indicating the identifier of the item that should be in the selected state
@@ -55,4 +55,4 @@
 
 @end
 
-#endif  // IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_GRID_GRID_CONSUMER_H_
+#endif  // IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_COLLECTION_CONSUMER_H_
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_drag_drop_handler.h b/ios/chrome/browser/ui/tab_switcher/tab_collection_drag_drop_handler.h
similarity index 82%
rename from ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_drag_drop_handler.h
rename to ios/chrome/browser/ui/tab_switcher/tab_collection_drag_drop_handler.h
index 814ad4c..95680daf 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_drag_drop_handler.h
+++ b/ios/chrome/browser/ui/tab_switcher/tab_collection_drag_drop_handler.h
@@ -1,15 +1,15 @@
-// Copyright 2020 The Chromium Authors
+// Copyright 2022 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_GRID_GRID_DRAG_DROP_HANDLER_H_
-#define IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_GRID_GRID_DRAG_DROP_HANDLER_H_
+#ifndef IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_COLLECTION_DRAG_DROP_HANDLER_H_
+#define IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_COLLECTION_DRAG_DROP_HANDLER_H_
 
 #import <UIKit/UIKit.h>
 
-// A protocol for objects that handle drag and drop interactions for a grid
-// involving the model layer.
-@protocol GridDragDropHandler
+// A protocol for objects that handle drag and drop interactions for a
+// collection view involving the model layer.
+@protocol TabCollectionDragDropHandler
 
 // Returns a drag item encapsulating all necessary information to perform
 // valid drop operations. Note that this drag item may be dropped anywhere,
@@ -42,4 +42,4 @@
 
 @end
 
-#endif  // IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_GRID_GRID_GRID_DRAG_DROP_HANDLER_H_
+#endif  // IOS_CHROME_BROWSER_UI_TAB_SWITCHER_TAB_COLLECTION_DRAG_DROP_HANDLER_H_
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/BUILD.gn b/ios/chrome/browser/ui/tab_switcher/tab_grid/BUILD.gn
index 53b3d3da..90d7d9b4 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/BUILD.gn
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/BUILD.gn
@@ -153,6 +153,7 @@
     "//ios/chrome/browser/ui/keyboard:features",
     "//ios/chrome/browser/ui/menu",
     "//ios/chrome/browser/ui/recent_tabs:recent_tabs_ui",
+    "//ios/chrome/browser/ui/tab_switcher",
     "//ios/chrome/browser/ui/tab_switcher/pinned_tabs:features",
     "//ios/chrome/browser/ui/tab_switcher/pinned_tabs:pinned_tabs_ui",
     "//ios/chrome/browser/ui/tab_switcher/tab_grid/suggested_actions",
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/BUILD.gn b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/BUILD.gn
index 1e61eb1..bdc3a0b 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/BUILD.gn
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/BUILD.gn
@@ -17,11 +17,9 @@
     "grid_cell.h",
     "grid_cell.mm",
     "grid_commands.h",
-    "grid_consumer.h",
     "grid_context_menu_helper.h",
     "grid_context_menu_helper.mm",
     "grid_context_menu_provider.h",
-    "grid_drag_drop_handler.h",
     "grid_empty_view.h",
     "grid_header.h",
     "grid_header.mm",
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.h b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.h
index b23bfca..fa61f323 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.h
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.h
@@ -75,18 +75,6 @@
 // The space between different labels inside the GridHeader.
 extern const CGFloat kGridHeaderContentSpacing;
 
-// GridCell styling.
-// All kxxxColor constants after this are RGB values stored in a Hex integer.
-// These will be converted into UIColors using the UIColorFromRGB() function,
-// from uikit_ui_util.h.
-// TODO(crbug.com/981889): remove with iOS 12.
-// Extra dark theme colors until iOS 12 gets removed.
-extern const int kGridDarkThemeCellTitleColor;
-extern const int kGridDarkThemeCellDetailColor;
-extern const CGFloat kGridDarkThemeCellDetailAlpha;
-extern const int kGridDarkThemeCellTintColor;
-extern const int kGridDarkThemeCellSolidButtonTextColor;
-
 // GridCell dimensions.
 extern const CGSize kGridCellSizeSmall;
 extern const CGSize kGridCellSizeMedium;
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.mm
index d45a8e1..1f6454d 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.mm
@@ -69,15 +69,6 @@
 const int kGridHeaderValueColor = 0xEBEBF5;
 const CGFloat kGridHeaderContentSpacing = 4.0f;
 
-// GridCell styling.
-// Dark theme colors.
-// Extra dark theme colors until iOS 12 gets removed.
-const int kGridDarkThemeCellTitleColor = 0xFFFFFF;
-const int kGridDarkThemeCellDetailColor = 0xEBEBF5;
-const CGFloat kGridDarkThemeCellDetailAlpha = 0.6;
-const int kGridDarkThemeCellTintColor = 0x8AB4F9;
-extern const int kGridDarkThemeCellSolidButtonTextColor = 0x202124;
-
 // GridCell dimensions.
 const CGSize kGridCellSizeSmall = CGSize{144.0f, 168.0f};
 const CGSize kGridCellSizeMedium = CGSize{168.0f, 202.0f};
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.h b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.h
index b403b54..74a9052 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.h
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.h
@@ -9,13 +9,13 @@
 
 #import "ios/chrome/browser/ui/gestures/layout_switcher.h"
 #import "ios/chrome/browser/ui/incognito_reauth/incognito_reauth_consumer.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_consumer.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_theme.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_paging.h"
 #import "ios/chrome/browser/ui/thumb_strip/thumb_strip_supporting.h"
 
 @protocol GridContextMenuProvider;
-@protocol GridDragDropHandler;
+@protocol TabCollectionDragDropHandler;
 @protocol GridEmptyView;
 @protocol GridImageDataSource;
 @protocol GridShareableItemsProvider;
@@ -93,9 +93,9 @@
 @end
 
 // A view controller that contains a grid of items.
-@interface GridViewController : UIViewController <GridConsumer,
-                                                  LayoutSwitcher,
+@interface GridViewController : UIViewController <LayoutSwitcher,
                                                   IncognitoReauthConsumer,
+                                                  TabCollectionConsumer,
                                                   ThumbStripSupporting>
 // The gridView is accessible to manage the content inset behavior.
 @property(nonatomic, readonly) UIScrollView* gridView;
@@ -120,7 +120,7 @@
 // Delegate is informed of user interactions in the grid UI.
 @property(nonatomic, weak) id<GridViewControllerDelegate> delegate;
 // Handles drag and drop interactions that involved the model layer.
-@property(nonatomic, weak) id<GridDragDropHandler> dragDropHandler;
+@property(nonatomic, weak) id<TabCollectionDragDropHandler> dragDropHandler;
 // Data source for images.
 @property(nonatomic, weak) id<GridImageDataSource> imageDataSource;
 // Data source for acquiring data to power PriceCardView
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.mm
index 4b12e4f..1f1b012 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.mm
@@ -22,10 +22,10 @@
 #import "ios/chrome/browser/ui/incognito_reauth/incognito_reauth_commands.h"
 #import "ios/chrome/browser/ui/incognito_reauth/incognito_reauth_view.h"
 #import "ios/chrome/browser/ui/menu/menu_histograms.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_cell.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_provider.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_empty_view.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_header.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_image_data_source.h"
@@ -627,7 +627,7 @@
 
 // This method is used instead of -didSelectItemAtIndexPath, because any
 // selection events will be signalled through the model layer and handled in
-// the GridConsumer -selectItemWithID: method.
+// the TabCollectionConsumer -selectItemWithID: method.
 - (BOOL)collectionView:(UICollectionView*)collectionView
     shouldSelectItemAtIndexPath:(NSIndexPath*)indexPath {
   [self tappedItemAtIndexPath:indexPath];
@@ -997,7 +997,7 @@
   }
 }
 
-#pragma mark - GridConsumer
+#pragma mark - TabCollectionConsumer
 
 - (void)populateItems:(NSArray<TabSwitcherItem*>*)items
        selectedItemID:(NSString*)selectedItemID {
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/suggested_actions/suggested_actions_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/suggested_actions/suggested_actions_view_controller.mm
index e9c694c..8e26f38 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/suggested_actions/suggested_actions_view_controller.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/suggested_actions/suggested_actions_view_controller.mm
@@ -114,9 +114,7 @@
 
   TableViewModel* model = self.tableViewModel;
   [model addSectionWithIdentifier:kSectionIdentifierSuggestedActions];
-  UIColor* actionsTextColor = self.styler.tintColor
-                                  ? self.styler.tintColor
-                                  : [UIColor colorNamed:kBlueColor];
+  UIColor* actionsTextColor = [UIColor colorNamed:kBlueColor];
   TableViewImageItem* searchWebItem = [[TableViewImageItem alloc]
       initWithType:ItemTypeSuggestedActionSearchWeb];
   searchWebItem.title =
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.h b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.h
index 1f8170e..d6ca10e0d 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.h
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.h
@@ -7,14 +7,14 @@
 
 #import <Foundation/Foundation.h>
 
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_commands.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_image_data_source.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_menu_actions_data_source.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_shareable_items_provider.h"
 
 class Browser;
-@protocol GridConsumer;
+@protocol TabCollectionConsumer;
 @class TabGridMediator;
 @class URLWithTitle;
 
@@ -46,10 +46,10 @@
 
 // Mediates between model layer and tab grid UI layer.
 @interface TabGridMediator : NSObject <GridCommands,
-                                       GridDragDropHandler,
                                        GridImageDataSource,
                                        GridMenuActionsDataSource,
-                                       GridShareableItemsProvider>
+                                       GridShareableItemsProvider,
+                                       TabCollectionDragDropHandler>
 
 // The source browser.
 @property(nonatomic, assign) Browser* browser;
@@ -59,7 +59,7 @@
 @property(nonatomic, weak) id<TabGridMediatorDelegate> delegate;
 
 // Initializer with `consumer` as the receiver of model layer updates.
-- (instancetype)initWithConsumer:(id<GridConsumer>)consumer
+- (instancetype)initWithConsumer:(id<TabCollectionConsumer>)consumer
     NS_DESIGNATED_INITIALIZER;
 - (instancetype)init NS_UNAVAILABLE;
 
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm
index 172b334..96b8901a 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm
@@ -46,7 +46,7 @@
 #import "ios/chrome/browser/ui/main/scene_state.h"
 #import "ios/chrome/browser/ui/main/scene_state_browser_agent.h"
 #import "ios/chrome/browser/ui/menu/action_factory.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_consumer.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_item.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_switcher_item.h"
 #import "ios/chrome/browser/ui/ui_feature_flags.h"
@@ -204,7 +204,7 @@
 // The browser state from the browser.
 @property(nonatomic, readonly) ChromeBrowserState* browserState;
 // The UI consumer to which updates are made.
-@property(nonatomic, weak) id<GridConsumer> consumer;
+@property(nonatomic, weak) id<TabCollectionConsumer> consumer;
 // Handler for reading list command.
 @property(nonatomic, weak) id<BrowserCommands> readingListHandler;
 // The saved session window just before close all tabs is called.
@@ -230,7 +230,7 @@
       _scopedWebStateObservation;
 }
 
-- (instancetype)initWithConsumer:(id<GridConsumer>)consumer {
+- (instancetype)initWithConsumer:(id<TabCollectionConsumer>)consumer {
   if (self = [super init]) {
     _consumer = consumer;
     _webStateListObserverBridge =
@@ -739,7 +739,7 @@
       WebStateOpener());
 }
 
-#pragma mark - GridDragDropHandler
+#pragma mark - TabCollectionDragDropHandler
 
 - (UIDragItem*)dragItemForItemWithID:(NSString*)itemID {
   web::WebState* webState = GetWebStateWithId(self.browserState, itemID);
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator_unittest.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator_unittest.mm
index c439504..df70db5e 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator_unittest.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator_unittest.mm
@@ -41,8 +41,8 @@
 #import "ios/chrome/browser/sync/mock_sync_service_utils.h"
 #import "ios/chrome/browser/sync/sync_service_factory.h"
 #import "ios/chrome/browser/tabs/closing_web_state_observer_browser_agent.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_commands.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_consumer.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_switcher_item.h"
 #import "ios/chrome/browser/ui/ui_feature_flags.h"
 #import "ios/chrome/browser/url/chrome_url_constants.h"
@@ -83,8 +83,10 @@
     "price_tracking_with_optimization_guide";
 const char kHasPriceDropUserAction[] = "Commerce.TabGridSwitched.HasPriceDrop";
 const char kHasNoPriceDropUserAction[] = "Commerce.TabGridSwitched.NoPriceDrop";
-// Timeout for waiting for the GridConsumer updates.
-constexpr base::TimeDelta kWaitForGridConsumerUpdateTimeout = base::Seconds(1);
+
+// Timeout for waiting for the TabCollectionConsumer updates.
+constexpr base::TimeDelta kWaitForTabCollectionConsumerUpdateTimeout =
+    base::Seconds(1);
 
 std::unique_ptr<KeyedService> BuildFakeTabRestoreService(
     web::BrowserState* browser_state) {
@@ -92,9 +94,9 @@
 }
 }  // namespace
 
-// Test object that conforms to GridConsumer and exposes inner state for test
-// verification.
-@interface FakeConsumer : NSObject <GridConsumer>
+// Test object that conforms to TabCollectionConsumer and exposes inner state
+// for test verification.
+@interface FakeConsumer : NSObject <TabCollectionConsumer>
 // The fake consumer only keeps the identifiers of items for simplicity
 @property(nonatomic, strong) NSMutableArray<NSString*>* items;
 @property(nonatomic, assign) NSString* selectedItemID;
@@ -291,10 +293,11 @@
   }
 
   bool WaitForConsumerUpdates(size_t expected_count) {
-    return WaitUntilConditionOrTimeout(kWaitForGridConsumerUpdateTimeout, ^{
-      base::RunLoop().RunUntilIdle();
-      return expected_count == consumer_.items.count;
-    });
+    return WaitUntilConditionOrTimeout(
+        kWaitForTabCollectionConsumerUpdateTimeout, ^{
+          base::RunLoop().RunUntilIdle();
+          return expected_count == consumer_.items.count;
+        });
   }
 
  protected:
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.h b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.h
index 284028b..1a6a90d 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.h
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.h
@@ -16,9 +16,7 @@
 #import "ios/chrome/browser/ui/thumb_strip/thumb_strip_supporting.h"
 
 @protocol ApplicationCommands;
-@protocol GridConsumer;
 @protocol GridCommands;
-@protocol GridDragDropHandler;
 @protocol GridImageDataSource;
 @protocol PriceCardDataSource;
 @protocol GridShareableItemsProvider;
@@ -28,6 +26,8 @@
 @protocol PopupMenuCommands;
 @protocol RecentTabsConsumer;
 @class RecentTabsTableViewController;
+@protocol TabCollectionConsumer;
+@protocol TabCollectionDragDropHandler;
 @class TabGridViewController;
 @protocol ThumbStripCommands;
 @protocol ViewControllerTraitCollectionObserver;
@@ -113,9 +113,10 @@
 @property(nonatomic, weak) id<TabGridViewControllerDelegate> delegate;
 
 // Consumers send updates from the model layer to the UI layer.
-@property(nonatomic, readonly) id<GridConsumer> regularTabsConsumer;
-@property(nonatomic, readonly) id<GridConsumer, IncognitoReauthConsumer>
-    incognitoTabsConsumer;
+@property(nonatomic, readonly) id<TabCollectionConsumer> regularTabsConsumer;
+@property(nonatomic, readonly)
+    id<TabCollectionConsumer, IncognitoReauthConsumer>
+        incognitoTabsConsumer;
 @property(nonatomic, readonly) id<RecentTabsConsumer> remoteTabsConsumer;
 
 // Delegates send updates from the UI layer to the model layer.
@@ -123,8 +124,10 @@
 @property(nonatomic, weak) id<GridCommands> incognitoTabsDelegate;
 
 // Handles drag and drop interactions that require the model layer.
-@property(nonatomic, weak) id<GridDragDropHandler> regularTabsDragDropHandler;
-@property(nonatomic, weak) id<GridDragDropHandler> incognitoTabsDragDropHandler;
+@property(nonatomic, weak) id<TabCollectionDragDropHandler>
+    regularTabsDragDropHandler;
+@property(nonatomic, weak) id<TabCollectionDragDropHandler>
+    incognitoTabsDragDropHandler;
 
 // Data sources provide lazy access to heavy-weight resources.
 @property(nonatomic, weak) id<GridImageDataSource> regularTabsImageDataSource;
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
index 5c6b62a4..8f58ff2 100644
--- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
+++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
@@ -28,12 +28,12 @@
 #import "ios/chrome/browser/ui/tab_switcher/pinned_tabs/features.h"
 #import "ios/chrome/browser/ui/tab_switcher/pinned_tabs/pinned_tabs_constants.h"
 #import "ios/chrome/browser/ui/tab_switcher/pinned_tabs/pinned_tabs_view_controller.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/disabled_tab_view_controller.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_commands.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_constants.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_consumer.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_provider.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_image_data_source.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/suggested_actions/suggested_actions_delegate.h"
@@ -576,7 +576,7 @@
 
 #pragma mark - Public Properties
 
-- (id<GridConsumer>)regularTabsConsumer {
+- (id<TabCollectionConsumer>)regularTabsConsumer {
   return self.regularTabsViewController;
 }
 
@@ -594,7 +594,7 @@
   _priceCardDataSource = priceCardDataSource;
 }
 
-- (id<GridConsumer>)incognitoTabsConsumer {
+- (id<TabCollectionConsumer>)incognitoTabsConsumer {
   return self.incognitoTabsViewController;
 }
 
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_activity_indicator_header_footer_item.mm b/ios/chrome/browser/ui/table_view/cells/table_view_activity_indicator_header_footer_item.mm
index 6c3baa37..e424d963 100644
--- a/ios/chrome/browser/ui/table_view/cells/table_view_activity_indicator_header_footer_item.mm
+++ b/ios/chrome/browser/ui/table_view/cells/table_view_activity_indicator_header_footer_item.mm
@@ -39,8 +39,6 @@
   // Use colors from styler if available.
   if (styler.tableViewBackgroundColor)
     header.contentView.backgroundColor = styler.tableViewBackgroundColor;
-  if (styler.headerFooterTitleColor)
-    header.titleLabel.textColor = styler.headerFooterTitleColor;
 }
 
 @end
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_illustrated_item.mm b/ios/chrome/browser/ui/table_view/cells/table_view_illustrated_item.mm
index 4b972d4..23d72e9 100644
--- a/ios/chrome/browser/ui/table_view/cells/table_view_illustrated_item.mm
+++ b/ios/chrome/browser/ui/table_view/cells/table_view_illustrated_item.mm
@@ -78,13 +78,6 @@
   if (styler.cellTitleColor) {
     cell.titleLabel.textColor = styler.cellTitleColor;
   }
-  if (styler.tintColor) {
-    cell.button.backgroundColor = styler.tintColor;
-  }
-  if (styler.solidButtonTextColor) {
-    [cell.button setTitleColor:styler.solidButtonTextColor
-                      forState:UIControlStateNormal];
-  }
 }
 
 @end
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_text_button_item.mm b/ios/chrome/browser/ui/table_view/cells/table_view_text_button_item.mm
index 06cb0e6..2e6cfa6 100644
--- a/ios/chrome/browser/ui/table_view/cells/table_view_text_button_item.mm
+++ b/ios/chrome/browser/ui/table_view/cells/table_view_text_button_item.mm
@@ -77,14 +77,10 @@
   [cell disableButtonIntrinsicWidth:self.disableButtonIntrinsicWidth];
   // Decide cell.button titleColor in order:
   //   1. self.buttonTextColor;
-  //   2. styler.solidButtonTextColor
-  //   3. [UIColor colorNamed:kSolidButtonTextColor]
+  //   2. [UIColor colorNamed:kSolidButtonTextColor]
   if (self.buttonTextColor) {
     [cell.button setTitleColor:self.buttonTextColor
                       forState:UIControlStateNormal];
-  } else if (styler.solidButtonTextColor) {
-    [cell.button setTitleColor:styler.solidButtonTextColor
-                      forState:UIControlStateNormal];
   } else {
     [cell.button setTitleColor:[UIColor colorNamed:kSolidButtonTextColor]
                       forState:UIControlStateNormal];
@@ -92,12 +88,9 @@
   cell.button.accessibilityIdentifier = self.buttonAccessibilityIdentifier;
   // Decide cell.button.backgroundColor in order:
   //   1. self.buttonBackgroundColor
-  //   2. styler.tintColor
-  //   3. [UIColor colorNamed:kBlueColor]
+  //   2. [UIColor colorNamed:kBlueColor]
   if (self.buttonBackgroundColor) {
     cell.button.backgroundColor = self.buttonBackgroundColor;
-  } else if (styler.tintColor) {
-    cell.button.backgroundColor = styler.tintColor;
   } else {
     cell.button.backgroundColor = [UIColor colorNamed:kBlueColor];
   }
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_url_item.mm b/ios/chrome/browser/ui/table_view/cells/table_view_url_item.mm
index 2891533..f5b1195 100644
--- a/ios/chrome/browser/ui/table_view/cells/table_view_url_item.mm
+++ b/ios/chrome/browser/ui/table_view/cells/table_view_url_item.mm
@@ -63,11 +63,6 @@
 
   if (styler.cellTitleColor)
     cell.titleLabel.textColor = styler.cellTitleColor;
-  if (styler.cellDetailColor) {
-    cell.URLLabel.textColor = styler.cellDetailColor;
-    cell.thirdRowLabel.textColor = styler.cellDetailColor;
-    cell.metadataLabel.textColor = styler.cellDetailColor;
-  }
   if (self.thirdRowTextColor)
     cell.thirdRowLabel.textColor = self.thirdRowTextColor;
 
diff --git a/ios/chrome/browser/ui/table_view/cells/table_view_url_item_unittest.mm b/ios/chrome/browser/ui/table_view/cells/table_view_url_item_unittest.mm
index bb0717d..4b4ae0a 100644
--- a/ios/chrome/browser/ui/table_view/cells/table_view_url_item_unittest.mm
+++ b/ios/chrome/browser/ui/table_view/cells/table_view_url_item_unittest.mm
@@ -191,7 +191,6 @@
 
   id cell = [[[item cellClass] alloc] init];
   ChromeTableViewStyler* styler = [[ChromeTableViewStyler alloc] init];
-  styler.cellDetailColor = UIColor.redColor;
   [item configureCell:cell withStyler:styler];
   ASSERT_TRUE([cell isMemberOfClass:[TableViewURLCell class]]);
   EXPECT_NSEQ(
diff --git a/ios/chrome/browser/ui/table_view/chrome_table_view_controller.mm b/ios/chrome/browser/ui/table_view/chrome_table_view_controller.mm
index ce163637..fc5d9e4 100644
--- a/ios/chrome/browser/ui/table_view/chrome_table_view_controller.mm
+++ b/ios/chrome/browser/ui/table_view/chrome_table_view_controller.mm
@@ -55,7 +55,6 @@
   [super viewDidLoad];
 
   [self.tableView setBackgroundColor:self.styler.tableViewBackgroundColor];
-  [self.tableView setSeparatorColor:self.styler.cellSeparatorColor];
   [self.tableView
       setSeparatorInset:UIEdgeInsetsMake(0, kTableViewSeparatorInsetWithIcon, 0,
                                          0)];
diff --git a/ios/chrome/browser/ui/table_view/chrome_table_view_styler.h b/ios/chrome/browser/ui/table_view/chrome_table_view_styler.h
index 675d83a7..2738fa1 100644
--- a/ios/chrome/browser/ui/table_view/chrome_table_view_styler.h
+++ b/ios/chrome/browser/ui/table_view/chrome_table_view_styler.h
@@ -16,21 +16,8 @@
 @property(nonatomic, readwrite, strong) UIColor* cellBackgroundColor;
 // Text colors.
 @property(nonatomic, readwrite, strong) UIColor* cellTitleColor;
-@property(nonatomic, readwrite, strong) UIColor* headerFooterTitleColor;
 // Cell highlight color.
 @property(nonatomic, readwrite, strong) UIColor* cellHighlightColor;
-// Color of cell separator line. If not set, defaults to the default UIKit
-// color.
-@property(nonatomic, readwrite, strong) UIColor* cellSeparatorColor;
-
-// TODO (crbug.com/981889): Remove with iOS 12.
-// Color overrides. These should not be in general use, but
-// are necessary to provide colors on pre-iOS 13 devices for screens that are
-// always in dark mode. They can be removed then.
-@property(nonatomic, readwrite, strong) UIColor* cellDetailColor;
-@property(nonatomic, readwrite, strong) UIColor* headerFooterDetailColor;
-@property(nonatomic, readwrite, strong) UIColor* tintColor;
-@property(nonatomic, readwrite, strong) UIColor* solidButtonTextColor;
 
 @end
 
diff --git a/ios/chrome/test/testing_application_context.mm b/ios/chrome/test/testing_application_context.mm
index 048622c..08ccad3 100644
--- a/ios/chrome/test/testing_application_context.mm
+++ b/ios/chrome/test/testing_application_context.mm
@@ -67,6 +67,7 @@
 }
 
 void TestingApplicationContext::SetLastShutdownClean(bool clean) {
+  DCHECK(thread_checker_.CalledOnValidThread());
   was_last_shutdown_clean_ = clean;
 }
 
@@ -231,6 +232,7 @@
 }
 
 id<SingleSignOnService> TestingApplicationContext::GetSSOService() {
+  DCHECK(thread_checker_.CalledOnValidThread());
   if (!single_sign_on_service_) {
     single_sign_on_service_ = ios::provider::CreateSSOService();
     DCHECK(single_sign_on_service_);
diff --git a/ios/showcase/tab_grid/sc_grid_coordinator.mm b/ios/showcase/tab_grid/sc_grid_coordinator.mm
index 3d13f9b..d9ed029 100644
--- a/ios/showcase/tab_grid/sc_grid_coordinator.mm
+++ b/ios/showcase/tab_grid/sc_grid_coordinator.mm
@@ -4,7 +4,7 @@
 
 #import "ios/showcase/tab_grid/sc_grid_coordinator.h"
 
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_drag_drop_handler.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_image_data_source.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_switcher_item.h"
@@ -34,7 +34,7 @@
   gridViewController.delegate =
       static_cast<id<GridViewControllerDelegate>>(self.alerter);
   gridViewController.dragDropHandler =
-      static_cast<id<GridDragDropHandler>>(self.alerter);
+      static_cast<id<TabCollectionDragDropHandler>>(self.alerter);
   gridViewController.imageDataSource = self;
   self.alerter.baseViewController = gridViewController;
 
diff --git a/ios/showcase/tab_grid/sc_tab_grid_coordinator.mm b/ios/showcase/tab_grid/sc_tab_grid_coordinator.mm
index f7ec349..a4a57d0 100644
--- a/ios/showcase/tab_grid/sc_tab_grid_coordinator.mm
+++ b/ios/showcase/tab_grid/sc_tab_grid_coordinator.mm
@@ -4,9 +4,9 @@
 
 #import "ios/showcase/tab_grid/sc_tab_grid_coordinator.h"
 
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_consumer.h"
+#import "ios/chrome/browser/ui/tab_switcher/tab_collection_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_commands.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_consumer.h"
-#import "ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_drag_drop_handler.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.h"
 #import "ios/chrome/browser/ui/tab_switcher/tab_switcher_item.h"
 #import "ios/showcase/common/protocol_alerter.h"
@@ -36,9 +36,9 @@
   self.viewController.regularTabsDelegate =
       static_cast<id<GridCommands>>(self.alerter);
   self.viewController.incognitoTabsDragDropHandler =
-      static_cast<id<GridDragDropHandler>>(self.alerter);
+      static_cast<id<TabCollectionDragDropHandler>>(self.alerter);
   self.viewController.regularTabsDragDropHandler =
-      static_cast<id<GridDragDropHandler>>(self.alerter);
+      static_cast<id<TabCollectionDragDropHandler>>(self.alerter);
   self.viewController.title = @"Full TabGrid UI";
   self.baseViewController.delegate = self;
   self.baseViewController.hidesBarsOnSwipe = YES;
diff --git a/ios/web_view/internal/passwords/web_view_password_reuse_manager_factory.mm b/ios/web_view/internal/passwords/web_view_password_reuse_manager_factory.mm
index dd367c2..f36d4a47 100644
--- a/ios/web_view/internal/passwords/web_view_password_reuse_manager_factory.mm
+++ b/ios/web_view/internal/passwords/web_view_password_reuse_manager_factory.mm
@@ -66,7 +66,8 @@
   reuse_manager->Init(browser_state->GetPrefs(),
                       WebViewPasswordStoreFactory::GetForBrowserState(
                           browser_state, ServiceAccessType::EXPLICIT_ACCESS)
-                          .get());
+                          .get(),
+                      /*account_store=*/nullptr);
   return reuse_manager;
 }
 
diff --git a/media/audio/audio_device_thread.cc b/media/audio/audio_device_thread.cc
index 70eb110..d000377 100644
--- a/media/audio/audio_device_thread.cc
+++ b/media/audio/audio_device_thread.cc
@@ -5,6 +5,7 @@
 #include "media/audio/audio_device_thread.h"
 
 #include <limits>
+#include <ostream>
 
 #include "base/check_op.h"
 #include "base/system/sys_info.h"
diff --git a/net/BUILD.gn b/net/BUILD.gn
index f8ef91c8..407e61c 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -256,6 +256,8 @@
     "base/upload_file_element_reader.cc",
     "base/upload_file_element_reader.h",
     "base/upload_progress.h",
+    "base/url_search_params.cc",
+    "base/url_search_params.h",
     "base/url_util.cc",
     "base/url_util.h",
     "cert/asn1_util.cc",
@@ -4325,6 +4327,7 @@
     "base/test_proxy_delegate.h",
     "base/upload_bytes_element_reader_unittest.cc",
     "base/upload_file_element_reader_unittest.cc",
+    "base/url_search_params_unittest.cc",
     "base/url_util_unittest.cc",
     "cert/caching_cert_verifier_unittest.cc",
     "cert/cert_and_ct_verifier_unittest.cc",
diff --git a/net/base/url_search_params.cc b/net/base/url_search_params.cc
new file mode 100644
index 0000000..ab58114f
--- /dev/null
+++ b/net/base/url_search_params.cc
@@ -0,0 +1,87 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/base/url_search_params.h"
+
+#include <algorithm>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "base/containers/cxx20_erase_vector.h"
+#include "base/strings/string_piece.h"
+#include "base/strings/utf_string_conversions.h"
+#include "net/base/url_util.h"
+#include "url/gurl.h"
+#include "url/url_canon.h"
+#include "url/url_canon_internal.h"
+#include "url/url_util.h"
+
+namespace net {
+namespace {
+
+// The notion of unescaping used in the application/x-www-form-urlencoded
+// parser. https://url.spec.whatwg.org/#concept-urlencoded-parser
+std::string UnescapePercentEncodedUrl(base::StringPiece input) {
+  std::string result(input);
+  // Replace any 0x2B (+) with 0x20 (SP).
+  for (char& c : result) {
+    if (c == '+')
+      c = ' ';
+  }
+  // Run UTF-8 decoding without BOM on the percent-decoding.
+  url::RawCanonOutputT<char16_t> canon_output;
+  url::DecodeURLEscapeSequences(result.data(), result.size(),
+                                url::DecodeURLMode::kUTF8, &canon_output);
+  return base::UTF16ToUTF8(
+      base::StringPiece16(canon_output.data(), canon_output.length()));
+}
+
+}  // namespace
+
+UrlSearchParams::UrlSearchParams(const GURL& url) {
+  for (auto it = QueryIterator(url); !it.IsAtEnd(); it.Advance()) {
+    // Use unescaped keys and values in order to mitigate potentially different
+    // representations for query search params names/values.
+    // E.g. a space character might be encoded as '+' or as "%20". A character
+    // might be encoded as a character or as its percent encoded
+    // representation (e.g. ?%63=2 should be the same as ?c=2). E.g. ぁ would be
+    // percent encoded as %E3%81%81. Unescapes the given `key` and `value`
+    // using URL escaping rules.
+    params_.emplace_back(UnescapePercentEncodedUrl(it.GetKey()),
+                         UnescapePercentEncodedUrl(it.GetValue()));
+  }
+}
+
+UrlSearchParams::~UrlSearchParams() = default;
+
+void UrlSearchParams::Sort() {
+  // Note: since query is ASCII and we've Unescaped the keys already,
+  // the URL equivalence under No-Vary-Search conditions using the normal string
+  // comparison should be enough.
+  std::stable_sort(params_.begin(), params_.end(),
+                   [](const std::pair<std::string, std::string>& a,
+                      const std::pair<std::string, std::string>& b) {
+                     return a.first < b.first;
+                   });
+}
+
+void UrlSearchParams::DeleteAllWithNames(
+    const base::flat_set<std::string>& names) {
+  base::EraseIf(params_,
+                [&](const auto& pair) { return names.contains(pair.first); });
+}
+
+void UrlSearchParams::DeleteAllExceptWithNames(
+    const base::flat_set<std::string>& names) {
+  base::EraseIf(params_,
+                [&](const auto& pair) { return !names.contains(pair.first); });
+}
+
+const std::vector<std::pair<std::string, std::string>>&
+UrlSearchParams::params() const {
+  return params_;
+}
+
+}  // namespace net
diff --git a/net/base/url_search_params.h b/net/base/url_search_params.h
new file mode 100644
index 0000000..4e40aa5
--- /dev/null
+++ b/net/base/url_search_params.h
@@ -0,0 +1,53 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_BASE_URL_SEARCH_PARAMS_H_
+#define NET_BASE_URL_SEARCH_PARAMS_H_
+
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "base/containers/flat_set.h"
+#include "net/base/net_export.h"
+#include "url/gurl.h"
+
+namespace net {
+
+// Class that exposes the following functionality to parse a UTF-8, percent
+// encoded url's `query`
+//  - parse `query` parameters into a list of `(key,value)` pairs keeping the
+//    same order as in `query`. While parsing the url's `query` the class does
+//    percent decoding of both the `key` and `value`.
+//  - stable sort of the `(key,value)` entries in the list based on `key`
+//  - deletion of all `(key,value)` pairs for which `key`is part of a set of
+//    specified `keys`
+//  - deletion of all `(key, values)` pairs except pairs for which `key` is part
+//    of a set of specified `keys`
+class NET_EXPORT UrlSearchParams {
+ public:
+  explicit UrlSearchParams(const GURL& url);
+  UrlSearchParams(const UrlSearchParams&) = delete;
+  ~UrlSearchParams();
+  UrlSearchParams& operator=(UrlSearchParams&) = delete;
+  UrlSearchParams& operator=(const UrlSearchParams&) = delete;
+  // Runs a stable sort by key of all of the query search params.
+  // The stable sort will keep the order of query search params with the same
+  // key the same as in the original url.
+  void Sort();
+  // Deletes all query search params with specified keys.
+  void DeleteAllWithNames(const base::flat_set<std::string>& names);
+  // Deletes all query search params except the ones with specified keys.
+  void DeleteAllExceptWithNames(const base::flat_set<std::string>& names);
+  // Returns a list of key-value pairs representing all query search params.
+  const std::vector<std::pair<std::string, std::string>>& params() const;
+
+ private:
+  // Keeps track of all key-value pairs representing all query search params.
+  // The order from the original url is important.
+  std::vector<std::pair<std::string, std::string>> params_;
+};
+
+}  // namespace net
+#endif  // NET_BASE_URL_SEARCH_PARAMS_H_
diff --git a/net/base/url_search_params_unittest.cc b/net/base/url_search_params_unittest.cc
new file mode 100644
index 0000000..8ec3dfa2
--- /dev/null
+++ b/net/base/url_search_params_unittest.cc
@@ -0,0 +1,151 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/base/url_search_params.h"
+
+#include <string>
+#include <vector>
+
+#include "base/containers/flat_map.h"
+#include "base/strings/string_util.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+
+namespace net {
+namespace {
+
+using ::testing::ElementsAre;
+using ::testing::Pair;
+
+TEST(UrlSearchParamsTest, ParseAllSearchParams) {
+  const UrlSearchParams search_params(
+      GURL("https://a.test/index.html?a=1&b=2&c=3"));
+  EXPECT_THAT(search_params.params(),
+              ElementsAre(Pair("a", "1"), Pair("b", "2"), Pair("c", "3")));
+}
+
+TEST(UrlSearchParamsTest, ParseSearchParamUnescapeValue) {
+  const UrlSearchParams search_params(
+      GURL(R"(https://a.test/index.html?a=a%20b%20c)"));
+  EXPECT_EQ(search_params.params().size(), 1u);
+  EXPECT_EQ(search_params.params()[0].second, "a b c");
+}
+
+TEST(UrlSearchParamsTest, DeleteOneSearchParams) {
+  UrlSearchParams search_params(GURL("https://a.test/index.html?a=1&b=2&c=3"));
+  search_params.DeleteAllWithNames({"b"});
+  EXPECT_THAT(search_params.params(),
+              ElementsAre(Pair("a", "1"), Pair("c", "3")));
+}
+
+TEST(UrlSearchParamsTest, DeleteAllExceptOneSearchParams) {
+  UrlSearchParams search_params(GURL("https://a.test/index.html?a=1&b=2&c=3"));
+  search_params.DeleteAllExceptWithNames({"b"});
+  EXPECT_THAT(search_params.params(), ElementsAre(Pair("b", "2")));
+}
+
+TEST(UrlSearchParamsTest, SortSearchParams) {
+  UrlSearchParams search_params(
+      GURL("https://a.test/index.html?c=3&b=2&a=1&c=2&a=5"));
+  search_params.Sort();
+  EXPECT_THAT(search_params.params(),
+              ElementsAre(Pair("a", "1"), Pair("a", "5"), Pair("b", "2"),
+                          Pair("c", "3"), Pair("c", "2")));
+}
+
+TEST(UrlSearchParamsTest, SortSearchParamsPercentEncoded) {
+  UrlSearchParams search_params(
+      GURL("https://a.test/index.html?c=3&b=2&a=1&%63=2&a=5"));
+  search_params.Sort();
+  EXPECT_THAT(search_params.params(),
+              ElementsAre(Pair("a", "1"), Pair("a", "5"), Pair("b", "2"),
+                          Pair("c", "3"), Pair("c", "2")));
+}
+
+TEST(UrlSearchParamsTest, ParseSearchParamsSpacePlusAndPercentEncoded) {
+  const UrlSearchParams search_params(
+      GURL(R"(https://a.test/index.html?c+1=3&b+%202=2&a=1&%63%201=2&a=5)"));
+  EXPECT_THAT(search_params.params(),
+              ElementsAre(Pair("c 1", "3"), Pair("b  2", "2"), Pair("a", "1"),
+                          Pair("c 1", "2"), Pair("a", "5")));
+}
+
+TEST(UrlSearchParamsTest, ParseSearchParamsDoubleCodePoint) {
+  const UrlSearchParams search_params(
+      GURL(R"(https://a.test/index.html?%C3%A9=foo)"));
+  EXPECT_THAT(search_params.params(), ElementsAre(Pair("é", "foo")));
+}
+
+TEST(UrlSearchParamsTest, SortSearchParamsDoubleCodePoint) {
+  UrlSearchParams search_params(
+      GURL(R"(https://a.test/index.html?%C3%A9=f&a=2&c=4&é=b)"));
+  search_params.Sort();
+  EXPECT_THAT(search_params.params(),
+              ElementsAre(Pair("a", "2"), Pair("c", "4"), Pair("é", "f"),
+                          Pair("é", "b")));
+}
+
+TEST(UrlSearchParamsTest, ParseSearchParamsTripleCodePoint) {
+  const UrlSearchParams search_params(
+      GURL(R"(https://a.test/index.html?%E3%81%81=foo)"));
+  EXPECT_THAT(search_params.params(), ElementsAre(Pair("ぁ", "foo")));
+}
+
+TEST(UrlSearchParamsTest, ParseSearchParamsQuadrupleCodePoint) {
+  const UrlSearchParams search_params(
+      GURL(R"(https://a.test/index.html?%F0%90%A8%80=foo)"));
+  EXPECT_THAT(search_params.params(), ElementsAre(Pair("𐨀", "foo")));
+}
+
+// In case an invalid UTF-8 sequence is entered, it would be replaced with
+// the U+FFFD REPLACEMENT CHARACTER: �.
+TEST(UrlSearchParamsTest, ParseSearchParamsInvalidCodePoint) {
+  const UrlSearchParams search_params(
+      GURL(R"(https://a.test/index.html?%C3=foo)"));
+  EXPECT_THAT(search_params.params(), ElementsAre(Pair("�", "foo")));
+}
+
+TEST(UrlSearchParamsTest, ParseSearchParamsSpecialCharacters) {
+  // Use special characters in both `keys` and `values`.
+  const base::flat_map<std::string, std::string> percent_encoding = {
+      {"!", "%21"},    {R"(")", "%22"},  // double quote character: "
+      {"#", "%23"},    {"$", "%24"},       {"%", "%25"},    {"&", "%26"},
+      {"'", "%27"},    {"(", "%28"},       {")", "%29"},    {"*", R"(%2A)"},
+      {"+", R"(%2B)"}, {",", R"(%2C)"},    {"-", R"(%2D)"}, {".", R"(%2E)"},
+      {"/", R"(%2F)"}, {":", R"(%3A)"},    {";", "%3B"},    {"<", R"(%3C)"},
+      {"=", R"(%3D)"}, {">", R"(%3E)"},    {"?", R"(%3F)"}, {"@", "%40"},
+      {"[", "%5B"},    {R"(\)", R"(%5C)"}, {"]", R"(%5D)"}, {"^", R"(%5E)"},
+      {"_", R"(%5F)"}, {"`", "%60"},       {"{", "%7B"},    {"|", R"(%7C)"},
+      {"}", R"(%7D)"}, {"~", R"(%7E)"},    {"", ""},
+  };
+
+  for (const auto& [key, value] : percent_encoding) {
+    std::string template_url = R"(https://a.test/index.html?$key=$value)";
+
+    base::ReplaceSubstringsAfterOffset(&template_url, 0, "$key", value);
+    base::ReplaceSubstringsAfterOffset(&template_url, 0, "$value", value);
+
+    const UrlSearchParams search_params = UrlSearchParams(GURL(template_url));
+    EXPECT_THAT(search_params.params(), ElementsAre(Pair(key, key)));
+  }
+}
+
+TEST(UrlSearchParamsTest, ParseSearchParamsEmptyKeyOrValues) {
+  const UrlSearchParams search_params(
+      GURL("https://a.test/index.html?a&b&c&d&=5&=1"));
+  EXPECT_THAT(search_params.params(),
+              ElementsAre(Pair("a", ""), Pair("b", ""), Pair("c", ""),
+                          Pair("d", ""), Pair("", "5"), Pair("", "1")));
+}
+
+TEST(UrlSearchParamsTest, ParseSearchParamsInvalidEscapeTest) {
+  const UrlSearchParams search_params(
+      GURL(R"(https://a.test/index.html?a=%3&%3=b)"));
+  EXPECT_THAT(search_params.params(),
+              ElementsAre(Pair("a", "%3"), Pair("%3", "b")));
+}
+
+}  // namespace
+}  // namespace net
diff --git a/net/http/http_no_vary_search_data.cc b/net/http/http_no_vary_search_data.cc
index 517dda7..8fec851 100644
--- a/net/http/http_no_vary_search_data.cc
+++ b/net/http/http_no_vary_search_data.cc
@@ -6,8 +6,10 @@
 
 #include "base/containers/contains.h"
 #include "base/containers/flat_set.h"
+#include "net/base/url_search_params.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/structured_headers.h"
+#include "url/gurl.h"
 
 namespace net {
 
@@ -33,6 +35,39 @@
     default;
 HttpNoVarySearchData::~HttpNoVarySearchData() = default;
 
+bool HttpNoVarySearchData::AreEquivalent(const GURL& a, const GURL& b) const {
+  // Check urls without query and reference (fragment) for equality first.
+  GURL::Replacements replacements;
+  replacements.ClearRef();
+  replacements.ClearQuery();
+  if (a.ReplaceComponents(replacements) != b.ReplaceComponents(replacements)) {
+    return false;
+  }
+
+  // If equal, look at how HttpNoVarySearchData argument affects
+  // search params variance.
+  UrlSearchParams a_search_params(a);
+  UrlSearchParams b_search_params(b);
+  // Ignore all the query search params that the URL is not varying on.
+  if (vary_by_default()) {
+    a_search_params.DeleteAllWithNames(no_vary_params());
+    b_search_params.DeleteAllWithNames(no_vary_params());
+  } else {
+    a_search_params.DeleteAllExceptWithNames(vary_params());
+    b_search_params.DeleteAllExceptWithNames(vary_params());
+  }
+  // Sort the params if the order of the search params in the query
+  // is ignored.
+  if (!vary_on_key_order()) {
+    a_search_params.Sort();
+    b_search_params.Sort();
+  }
+  // Check Search Params for equality
+  // All search params, in order, need to have the same keys and the same
+  // values.
+  return a_search_params.params() == b_search_params.params();
+}
+
 // static
 absl::optional<HttpNoVarySearchData> HttpNoVarySearchData::ParseFromHeaders(
     const HttpResponseHeaders& response_headers) {
diff --git a/net/http/http_no_vary_search_data.h b/net/http/http_no_vary_search_data.h
index b273c0ee..bfe6e7b 100644
--- a/net/http/http_no_vary_search_data.h
+++ b/net/http/http_no_vary_search_data.h
@@ -11,6 +11,7 @@
 #include "net/base/net_export.h"
 #include "net/http/structured_headers.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
+#include "url/gurl.h"
 
 namespace net {
 
@@ -36,13 +37,15 @@
   static absl::optional<HttpNoVarySearchData> ParseFromHeaders(
       const HttpResponseHeaders& response_headers);
 
+  bool AreEquivalent(const GURL& a, const GURL& b) const;
+
   const base::flat_set<std::string>& no_vary_params() const;
   const base::flat_set<std::string>& vary_params() const;
   bool vary_on_key_order() const;
   bool vary_by_default() const;
 
  private:
-  explicit HttpNoVarySearchData();
+  HttpNoVarySearchData();
   static absl::optional<HttpNoVarySearchData> ParseNoVarySearchDictionary(
       const structured_headers::Dictionary& dict);
 
diff --git a/net/http/http_no_vary_search_data_unittest.cc b/net/http/http_no_vary_search_data_unittest.cc
index b65bba3..67e0259 100644
--- a/net/http/http_no_vary_search_data_unittest.cc
+++ b/net/http/http_no_vary_search_data_unittest.cc
@@ -6,12 +6,15 @@
 
 #include <string>
 
+#include "base/containers/flat_map.h"
 #include "base/containers/flat_set.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/strings/string_piece.h"
+#include "base/strings/string_util.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
 
 namespace net {
 
@@ -36,11 +39,12 @@
 TEST_P(HttpNoVarySearchResponseHeadersTest, ParsingSuccess) {
   const TestData test = GetParam();
 
-  std::string raw_headers = net::HttpUtil::AssembleRawHeaders(test.raw_headers);
+  const std::string raw_headers =
+      net::HttpUtil::AssembleRawHeaders(test.raw_headers);
 
-  auto parsed = base::MakeRefCounted<HttpResponseHeaders>(raw_headers);
+  const auto parsed = base::MakeRefCounted<HttpResponseHeaders>(raw_headers);
 
-  absl::optional<HttpNoVarySearchData> no_vary_search_data =
+  const absl::optional<HttpNoVarySearchData> no_vary_search_data =
       HttpNoVarySearchData::ParseFromHeaders(*parsed);
 
   EXPECT_EQ(no_vary_search_data->vary_on_key_order(),
@@ -55,11 +59,11 @@
 
 TEST_P(HttpNoVarySearchResponseHeadersParseFailureTest,
        ParsingFailureOrDefaultValue) {
-  std::string raw_headers = net::HttpUtil::AssembleRawHeaders(GetParam());
+  const std::string raw_headers = net::HttpUtil::AssembleRawHeaders(GetParam());
 
-  auto parsed = base::MakeRefCounted<HttpResponseHeaders>(raw_headers);
+  const auto parsed = base::MakeRefCounted<HttpResponseHeaders>(raw_headers);
 
-  absl::optional<HttpNoVarySearchData> no_vary_search_data =
+  const absl::optional<HttpNoVarySearchData> no_vary_search_data =
       HttpNoVarySearchData::ParseFromHeaders(*parsed);
 
   EXPECT_FALSE(no_vary_search_data.has_value());
@@ -226,7 +230,7 @@
     "\r\n\r\n",
 };
 
-TestData response_headers_tests[] = {
+const TestData response_headers_tests[] = {
     // params set to a list of strings with one element.
     {
         "HTTP/1.1 200 OK\r\n"
@@ -279,7 +283,6 @@
     },
     // Vary on all with one excepted search param.
     {
-
         "HTTP/1.1 200 OK\r\n"
         "No-Vary-Search: params\r\n"
         R"(No-Vary-Search: except=("a"))"
@@ -592,6 +595,276 @@
                          HttpNoVarySearchResponseHeadersParseFailureTest,
                          testing::ValuesIn(response_header_failed));
 
+struct NoVarySearchCompareTestData {
+  const GURL request_url;
+  const GURL cached_url;
+  const base::StringPiece raw_headers;
+  const bool expected_match;
+};
+
+TEST(HttpNoVarySearchCompare,
+     CheckUrlEqualityByNoVarySearchWithSpecialCharacters) {
+  // Use special characters in both `keys` and `values`.
+  const base::flat_map<std::string, std::string> percent_encoding = {
+      {"!", "%21"},    {"#", "%23"},    {"$", "%24"},    {"%", "%25"},
+      {"&", "%26"},    {"'", "%27"},    {"(", "%28"},    {")", "%29"},
+      {"*", R"(%2A)"}, {"+", R"(%2B)"}, {",", R"(%2C)"}, {"-", R"(%2D)"},
+      {".", R"(%2E)"}, {"/", R"(%2F)"}, {":", R"(%3A)"}, {";", "%3B"},
+      {"<", R"(%3C)"}, {"=", R"(%3D)"}, {">", R"(%3E)"}, {"?", R"(%3F)"},
+      {"@", "%40"},    {"[", "%5B"},    {"]", R"(%5D)"}, {"^", R"(%5E)"},
+      {"_", R"(%5F)"}, {"`", "%60"},    {"{", "%7B"},    {"|", R"(%7C)"},
+      {"}", R"(%7D)"}, {"~", R"(%7E)"}, {"", ""}};
+
+  const base::StringPiece raw_headers =
+      "HTTP/1.1 200 OK\r\n"
+      R"(No-Vary-Search: params=("c"))"
+      "\r\n\r\n";
+  const std::string headers = net::HttpUtil::AssembleRawHeaders(raw_headers);
+  const auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers);
+
+  const auto no_vary_search_data =
+      HttpNoVarySearchData::ParseFromHeaders(*parsed).value();
+
+  for (const auto& [key, value] : percent_encoding) {
+    std::string request_url_template =
+        R"(https://a.test/index.html?$key=$value)";
+    std::string cached_url_template =
+        R"(https://a.test/index.html?c=3&$key=$value)";
+
+    base::ReplaceSubstringsAfterOffset(&request_url_template, 0, "$key", value);
+    base::ReplaceSubstringsAfterOffset(&request_url_template, 0, "$value",
+                                       value);
+    base::ReplaceSubstringsAfterOffset(&cached_url_template, 0, "$key", value);
+    base::ReplaceSubstringsAfterOffset(&cached_url_template, 0, "$value",
+                                       value);
+
+    EXPECT_TRUE(no_vary_search_data.AreEquivalent(GURL(request_url_template),
+                                                  GURL(cached_url_template)));
+
+    std::string header_template =
+        "HTTP/1.1 200 OK\r\n"
+        R"(No-Vary-Search: params, except=("$key"))"
+        "\r\n\r\n";
+    base::ReplaceSubstringsAfterOffset(&header_template, 0, "$key", key);
+
+    const auto parsed_header = base::MakeRefCounted<HttpResponseHeaders>(
+        net::HttpUtil::AssembleRawHeaders(header_template));
+    const auto no_vary_search_data_special_char =
+        HttpNoVarySearchData::ParseFromHeaders(*parsed_header).value();
+
+    EXPECT_TRUE(no_vary_search_data_special_char.AreEquivalent(
+        GURL(request_url_template), GURL(cached_url_template)));
+  }
+}
+
+class HttpNoVarySearchCompare
+    : public ::testing::Test,
+      public ::testing::WithParamInterface<NoVarySearchCompareTestData> {};
+
+TEST_P(HttpNoVarySearchCompare, CheckUrlEqualityByNoVarySearch) {
+  const auto& test_data = GetParam();
+
+  const std::string headers =
+      net::HttpUtil::AssembleRawHeaders(test_data.raw_headers);
+  const auto parsed = base::MakeRefCounted<HttpResponseHeaders>(headers);
+
+  const auto no_vary_search_data =
+      HttpNoVarySearchData::ParseFromHeaders(*parsed).value();
+
+  EXPECT_EQ(no_vary_search_data.AreEquivalent(test_data.request_url,
+                                              test_data.cached_url),
+            test_data.expected_match)
+      << "request_url = " << test_data.request_url
+      << " cached_url = " << test_data.cached_url
+      << " headers = " << test_data.raw_headers
+      << " match = " << test_data.expected_match;
+}
+
+const NoVarySearchCompareTestData no_vary_search_compare_tests[] = {
+    // Url's for same page with same username but different passwords.
+    {GURL("https://owner:correct@a.test/index.html?a=2&b=3"),
+     GURL("https://owner:incorrect@a.test/index.html?a=2&b=3"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: params\r\n\r\n",
+     false},
+    // Url's for same page with different username.
+    {GURL("https://anonymous@a.test/index.html?a=2&b=3"),
+     GURL("https://owner@a.test/index.html?a=2&b=3"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: params\r\n\r\n",
+     false},
+    // Url's for same origin with different path.
+    {GURL("https://a.test/index.html?a=2&b=3"),
+     GURL("https://a.test/home.html?a=2&b=3"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: params\r\n\r\n",
+     false},
+    // Url's for same page with different protocol.
+    {GURL("http://a.test/index.html?a=2&b=3"),
+     GURL("https://a.test/index.html?a=2&b=3"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: params\r\n\r\n",
+     false},
+    // Url's for different pages without the query and reference part
+    // are not equivalent.
+    {GURL("https://a.test/index.html?a=2&b=3"),
+     GURL("https://b.test/index.html?b=4&c=5"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: params\r\n\r\n",
+     false},
+    // Cached page requested again with different order of query parameters with
+    // the same values.
+    {GURL("https://a.test/index.html?a=2&b=3"),
+     GURL("https://a.test/index.html?b=3&a=2"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: key-order\r\n\r\n",
+     true},
+    // Cached page requested again with different order of query parameters but
+    // with different values.
+    {GURL("https://a.test/index.html?a=2&c=5&b=3"),
+     GURL("https://a.test/index.html?c=4&b=3&a=2"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: key-order\r\n\r\n",
+     false},
+    // Cached page requested again with values in different order for the query
+    // parameters with the same name. Key order is ignored.
+    {GURL("https://a.test/index.html?d=6&a=4&b=5&b=3&c=5&a=3"),
+     GURL("https://a.test/index.html?b=5&a=3&a=4&d=6&c=5&b=3"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: key-order"
+     "\r\n\r\n",
+     false},
+    // Cached page requested again with values in the same order for the query
+    // parameters with the same name. Key order is ignored.
+    {GURL("https://a.test/index.html?d=6&a=3&b=5&b=3&c=5&a=4"),
+     GURL("https://a.test/index.html?b=5&a=3&a=4&d=6&c=5&b=3"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: key-order"
+     "\r\n\r\n",
+     true},
+    // Cached page requested again with different order of query parameters but
+    // with one of the query parameters marked to be ignored.
+    {GURL("https://a.test/index.html?a=2&c=3&b=2"),
+     GURL("https://a.test/index.html?a=2&b=2&c=5"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params=("c"))"
+     "\r\n\r\n",
+     true},
+    // Cached page requested again without any query parameters, but
+    // the cached URL's query parameter marked to be ignored.
+    {GURL("https://a.test/index.html"), GURL("https://a.test/index.html?a=2"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params=("a"))"
+     "\r\n\r\n",
+     true},
+    // Cached page requested again with different values for the query
+    // parameters that are marked to be ignored. Same value for the query
+    // parameter that is marked as to vary.
+    {GURL("https://a.test/index.html?a=1&b=2&c=3"),
+     GURL("https://a.test/index.html?b=5&a=3&d=6&c=3"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params, except=("c"))"
+     "\r\n\r\n",
+     true},
+    // Cached page requested again with different values for the query
+    // parameters that are marked to be ignored. Different value for the query
+    // parameter that is marked as to vary.
+    {GURL("https://a.test/index.html?a=1&b=2&c=5"),
+     GURL("https://a.test/index.html?b=5&a=3&d=6&c=3"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params, except=("c"))"
+     "\r\n\r\n",
+     false},
+    // Cached page requested again with different values for the query
+    // parameters that are marked to be ignored. Same values for the query
+    // parameters that are marked as to vary.
+    {GURL("https://a.test/index.html?d=6&a=1&b=2&c=5"),
+     GURL("https://a.test/index.html?b=5&a=3&d=6&c=5"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params, except=("c" "d"))"
+     "\r\n\r\n",
+     true},
+    // Cached page requested again with different values for the query
+    // parameters that are marked to be ignored. Same values for the query
+    // parameters that are marked as to vary. Some query parameters to be
+    // ignored appear multiple times in the query.
+    {GURL("https://a.test/index.html?d=6&a=1&a=2&b=2&b=3&c=5"),
+     GURL("https://a.test/index.html?b=5&a=3&a=4&d=6&c=5"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params, except=("c" "d"))"
+     "\r\n\r\n",
+     true},
+    // Cached page requested again with query parameters. All query parameters
+    // are marked as to be ignored.
+    {GURL("https://a.test/index.html?a=1&b=2&c=5"),
+     GURL("https://a.test/index.html"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: params\r\n\r\n",
+     true},
+    // Cached page requested again with query parameters. All query parameters
+    // are marked as to be ignored. Both request url and cached url have query
+    // parameters.
+    {GURL("https://a.test/index.html?a=1&b=2&c=5"),
+     GURL("https://a.test/index.html?a=5&b=6&c=8&d=1"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: params\r\n\r\n",
+     true},
+    // Add test for when the keys are percent encoded.
+    {GURL(R"(https://a.test/index.html?c+1=3&b+%202=2&a=1&%63%201=2&a=5)"),
+     GURL(R"(https://a.test/index.html?a=1&b%20%202=2&%63%201=3&a=5&c+1=2)"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: key-order\r\n\r\n",
+     true},
+    // Add test for when there are different representations of a character
+    {GURL(R"(https://a.test/index.html?%C3%A9=f&a=2&c=4&é=b)"),
+     GURL(R"(https://a.test/index.html?a=2&é=f&c=4&d=7&é=b)"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params=("d"), key-order)"
+     "\r\n\r\n",
+     true},
+    // Add test for when there are triple code point
+    {GURL(R"(https://a.test/index.html?%E3%81%81=f&a=2&c=4&%E3%81%81=b)"),
+     GURL(R"(https://a.test/index.html?a=2&%E3%81%81=f&c=4&d=7&%E3%81%81=b)"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params=("d"), key-order)"
+     "\r\n\r\n",
+     true},
+    // Add test for when there are quadruple code point
+    {GURL(
+         R"(https://a.test/index.html?%F0%90%A8%80=%F0%90%A8%80&a=2&c=4&%F0%90%A8%80=b)"),
+     GURL(
+         R"(https://a.test/index.html?a=2&%F0%90%A8%80=%F0%90%A8%80&c=4&d=7&%F0%90%A8%80=b)"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params=("d"), key-order)"
+     "\r\n\r\n",
+     true},
+    // Add test for when there are params with empty values / keys.
+    {GURL("https://a.test/index.html?a&b&c&a=2&d&=5&=1&=3"),
+     GURL("https://a.test/index.html?c&d&b&a&=5&=1&a=2&=3"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: key-order\r\n\r\n",
+     true},
+    // Add test for when there are params with empty values / keys, an empty
+    // key pair missing.
+    {GURL("https://a.test/index.html?a&b&c&a=2&d&=5&=1&=3"),
+     GURL("https://a.test/index.html?c&d&b&a&=5&a=2&=3"),
+     "HTTP/1.1 200 OK\r\n"
+     "No-Vary-Search: key-order\r\n\r\n",
+     false},
+    // Add test when there are params with keys / values that are wrongly
+    // escaped.
+    {GURL(R"(https://a.test/index.html?a=%3&%3=b)"),
+     GURL(R"(https://a.test/index.html?a=%3&c=3&%3=b)"),
+     "HTTP/1.1 200 OK\r\n"
+     R"(No-Vary-Search: params=("c"))"
+     "\r\n\r\n",
+     true},
+};
+
+INSTANTIATE_TEST_SUITE_P(HttpNoVarySearchCompare,
+                         HttpNoVarySearchCompare,
+                         testing::ValuesIn(no_vary_search_compare_tests));
+
 }  // namespace
 
 }  // namespace net
diff --git a/net/tools/tld_cleanup/tld_cleanup.cc b/net/tools/tld_cleanup/tld_cleanup.cc
index 9d7056a..4e6a48d8 100644
--- a/net/tools/tld_cleanup/tld_cleanup.cc
+++ b/net/tools/tld_cleanup/tld_cleanup.cc
@@ -83,12 +83,12 @@
                                "effective_tld_names.gperf"));
   net::tld_cleanup::NormalizeResult result =
       net::tld_cleanup::NormalizeFile(input_file, output_file);
-  if (result != net::tld_cleanup::kSuccess) {
+  if (result != net::tld_cleanup::NormalizeResult::kSuccess) {
     fprintf(stderr,
             "Errors or warnings processing file.  See log in tld_cleanup.log.");
   }
 
-  if (result == net::tld_cleanup::kError)
+  if (result == net::tld_cleanup::NormalizeResult::kError)
     return 1;
   return 0;
 }
diff --git a/net/tools/tld_cleanup/tld_cleanup_util.cc b/net/tools/tld_cleanup/tld_cleanup_util.cc
index 7c8dee170..f15685c 100644
--- a/net/tools/tld_cleanup/tld_cleanup_util.cc
+++ b/net/tools/tld_cleanup/tld_cleanup_util.cc
@@ -23,10 +23,7 @@
 
 namespace net::tld_cleanup {
 
-// Writes the list of domain rules contained in the 'rules' set to the
-// 'outfile', with each rule terminated by a LF.  The file must already have
-// been created with write access.
-bool WriteRules(const RuleMap& rules, const base::FilePath& outfile) {
+std::string RulesToGperf(const RuleMap& rules) {
   std::string data;
   data.append("%{\n"
               "// Copyright 2012 The Chromium Authors\n"
@@ -42,16 +39,16 @@
               "};\n"
               "%%\n");
 
-  for (const auto& rule : rules) {
-    data.append(rule.first);
+  for (const auto& [domain, rule] : rules) {
+    data.append(domain);
     data.append(", ");
     int type = 0;
-    if (rule.second.exception) {
+    if (rule.exception) {
       type = kExceptionRule;
-    } else if (rule.second.wildcard) {
+    } else if (rule.wildcard) {
       type = kWildcardRule;
     }
-    if (rule.second.is_private) {
+    if (rule.is_private) {
       type += kPrivateRule;
     }
     data.append(base::NumberToString(type));
@@ -60,11 +57,7 @@
 
   data.append("%%\n");
 
-  int written = base::WriteFile(outfile,
-                                     data.data(),
-                                     static_cast<int>(data.size()));
-
-  return written == static_cast<int>(data.size());
+  return data;
 }
 
 // Adjusts the rule to a standard form: removes single extraneous dots and
@@ -72,20 +65,20 @@
 // valid; logs a warning and returns kWarning if it is probably invalid; and
 // logs an error and returns kError if the rule is (almost) certainly invalid.
 NormalizeResult NormalizeRule(std::string* domain, Rule* rule) {
-  NormalizeResult result = kSuccess;
+  NormalizeResult result = NormalizeResult::kSuccess;
 
   // Strip single leading and trailing dots.
   if (domain->at(0) == '.')
     domain->erase(0, 1);
   if (domain->empty()) {
     LOG(WARNING) << "Ignoring empty rule";
-    return kWarning;
+    return NormalizeResult::kWarning;
   }
   if (domain->at(domain->size() - 1) == '.')
     domain->erase(domain->size() - 1, 1);
   if (domain->empty()) {
     LOG(WARNING) << "Ignoring empty rule";
-    return kWarning;
+    return NormalizeResult::kWarning;
   }
 
   // Allow single leading '*.' or '!', saved here so it's not canonicalized.
@@ -99,14 +92,14 @@
   }
   if (domain->empty()) {
     LOG(WARNING) << "Ignoring empty rule";
-    return kWarning;
+    return NormalizeResult::kWarning;
   }
 
   // Warn about additional '*.' or '!'.
   if (domain->find("*.", start_offset) != std::string::npos ||
       domain->find('!', start_offset) != std::string::npos) {
     LOG(WARNING) << "Keeping probably invalid rule: " << *domain;
-    result = kWarning;
+    result = NormalizeResult::kWarning;
   }
 
   // Make a GURL and normalize it, then get the host back out.
@@ -117,11 +110,11 @@
   url::Component host = gurl.parsed_for_possibly_invalid_spec().host;
   if (!host.is_valid()) {
     LOG(ERROR) << "Ignoring rule that couldn't be normalized: " << *domain;
-    return kError;
+    return NormalizeResult::kError;
   }
   if (!gurl.is_valid()) {
     LOG(WARNING) << "Keeping rule that GURL says is invalid: " << *domain;
-    result = kWarning;
+    result = NormalizeResult::kWarning;
   }
   domain->assign(spec.substr(host.begin, host.len));
 
@@ -134,7 +127,7 @@
   // We do a lot of string assignment during parsing, but simplicity is more
   // important than performance here.
   std::string domain;
-  NormalizeResult result = kSuccess;
+  NormalizeResult result = NormalizeResult::kSuccess;
   size_t line_start = 0;
   size_t line_end = 0;
   bool is_private = false;
@@ -171,7 +164,7 @@
       rule.exception = false;
       rule.is_private = is_private;
       NormalizeResult new_result = NormalizeRule(&domain, &rule);
-      if (new_result != kError) {
+      if (new_result != NormalizeResult::kError) {
         // Check the existing rules to make sure we don't have an exception and
         // wildcard for the same rule, or that the same domain is listed as both
         // private and not private. If we did, we'd have to update our
@@ -236,14 +229,14 @@
   if (!base::ReadFileToString(in_filename, &data)) {
     LOG(ERROR) << "Unable to read file";
     // We return success since we've already reported the error.
-    return kSuccess;
+    return NormalizeResult::kSuccess;
   }
 
   NormalizeResult result = NormalizeDataToRuleMap(data, &rules);
 
-  if (!WriteRules(rules, out_filename)) {
+  if (!base::WriteFile(out_filename, RulesToGperf(rules))) {
     LOG(ERROR) << "Error(s) writing output file";
-    result = kError;
+    result = NormalizeResult::kError;
   }
 
   return result;
diff --git a/net/tools/tld_cleanup/tld_cleanup_util.h b/net/tools/tld_cleanup/tld_cleanup_util.h
index 0e773fc8..76a6e598 100644
--- a/net/tools/tld_cleanup/tld_cleanup_util.h
+++ b/net/tools/tld_cleanup/tld_cleanup_util.h
@@ -7,6 +7,7 @@
 
 #include <map>
 #include <string>
+#include <tuple>
 
 namespace base {
 class FilePath;
@@ -18,16 +19,25 @@
   bool exception;
   bool wildcard;
   bool is_private;
+
+  bool operator==(const Rule& other) const {
+    return std::tie(exception, wildcard, is_private) ==
+           std::tie(other.exception, other.wildcard, other.is_private);
+  }
 };
 
 typedef std::map<std::string, Rule> RuleMap;
 
 // These result codes should be in increasing order of severity.
-typedef enum {
+enum class NormalizeResult {
   kSuccess,
   kWarning,
   kError,
-} NormalizeResult;
+};
+
+// Converts the list of domain rules contained in the `rules` map to string.
+// Rule lines all have trailing LF in the output.
+std::string RulesToGperf(const RuleMap& rules);
 
 // Loads the file described by |in_filename|, converts it to the desired format
 // (see the file comments in tld_cleanup.cc), and saves it into |out_filename|.
diff --git a/net/tools/tld_cleanup/tld_cleanup_util_unittest.cc b/net/tools/tld_cleanup/tld_cleanup_util_unittest.cc
index 16033a9..9542fd5 100644
--- a/net/tools/tld_cleanup/tld_cleanup_util_unittest.cc
+++ b/net/tools/tld_cleanup/tld_cleanup_util_unittest.cc
@@ -5,10 +5,14 @@
 #include "net/tools/tld_cleanup/tld_cleanup_util.h"
 
 #include "base/files/file_path.h"
+#include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net::tld_cleanup {
 
+using testing::ElementsAre;
+using testing::Pair;
+
 std::string SetupData(const std::string& icann_domains,
                       const std::string& private_domains) {
   return "// ===BEGIN ICANN DOMAINS===\n" +
@@ -20,147 +24,143 @@
 }
 
 TEST(TldCleanupUtilTest, TwoRealTldsSuccessfullyRead) {
-  std::string icann_domains = "foo\n"
-                              "bar\n";
+  std::string icann_domains =
+      "foo\n"
+      "bar\n";
   std::string private_domains = "";
-  std::string data = SetupData(icann_domains, private_domains);
   RuleMap rules;
-  NormalizeResult result = NormalizeDataToRuleMap(data, &rules);
-  ASSERT_EQ(kSuccess, result);
-  ASSERT_EQ(2U, rules.size());
-  RuleMap::const_iterator foo_iter = rules.find("foo");
-  ASSERT_FALSE(rules.end() == foo_iter);
-  EXPECT_FALSE(foo_iter->second.wildcard);
-  EXPECT_FALSE(foo_iter->second.exception);
-  EXPECT_FALSE(foo_iter->second.is_private);
-  RuleMap::const_iterator bar_iter = rules.find("bar");
-  ASSERT_FALSE(rules.end() == bar_iter);
-  EXPECT_FALSE(bar_iter->second.wildcard);
-  EXPECT_FALSE(bar_iter->second.exception);
-  EXPECT_FALSE(bar_iter->second.is_private);
+  ASSERT_EQ(
+      NormalizeDataToRuleMap(SetupData(icann_domains, private_domains), &rules),
+      NormalizeResult::kSuccess);
+  EXPECT_THAT(
+      rules,
+      ElementsAre(Pair("bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                   /*is_private=*/false}),
+                  Pair("foo", Rule{/*exception=*/false, /*wildcard=*/false,
+                                   /*is_private=*/false})));
 }
 
 TEST(TldCleanupUtilTest, RealTldAutomaticallyAddedForSubdomain) {
   std::string icann_domains = "foo.bar\n";
   std::string private_domains = "";
-  std::string data = SetupData(icann_domains, private_domains);
   RuleMap rules;
-  NormalizeResult result = NormalizeDataToRuleMap(data, &rules);
-  ASSERT_EQ(kSuccess, result);
-  ASSERT_EQ(2U, rules.size());
-  RuleMap::const_iterator foo_bar_iter = rules.find("foo.bar");
-  ASSERT_FALSE(rules.end() == foo_bar_iter);
-  EXPECT_FALSE(foo_bar_iter->second.wildcard);
-  EXPECT_FALSE(foo_bar_iter->second.exception);
-  EXPECT_FALSE(foo_bar_iter->second.is_private);
-  RuleMap::const_iterator bar_iter = rules.find("bar");
-  ASSERT_FALSE(rules.end() == bar_iter);
-  EXPECT_FALSE(bar_iter->second.wildcard);
-  EXPECT_FALSE(bar_iter->second.exception);
-  EXPECT_FALSE(bar_iter->second.is_private);
+  ASSERT_EQ(
+      NormalizeDataToRuleMap(SetupData(icann_domains, private_domains), &rules),
+      NormalizeResult::kSuccess);
+  EXPECT_THAT(
+      rules,
+      ElementsAre(Pair("bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                   /*is_private=*/false}),
+                  Pair("foo.bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                       /*is_private=*/false})));
 }
 
 TEST(TldCleanupUtilTest, PrivateTldMarkedAsPrivate) {
-  std::string icann_domains = "foo\n"
-                              "bar\n";
+  std::string icann_domains =
+      "foo\n"
+      "bar\n";
   std::string private_domains = "baz\n";
-  std::string data = SetupData(icann_domains, private_domains);
   RuleMap rules;
-  NormalizeResult result = NormalizeDataToRuleMap(data, &rules);
-  ASSERT_EQ(kSuccess, result);
-  ASSERT_EQ(3U, rules.size());
-  RuleMap::const_iterator foo_iter = rules.find("foo");
-  ASSERT_FALSE(rules.end() == foo_iter);
-  EXPECT_FALSE(foo_iter->second.wildcard);
-  EXPECT_FALSE(foo_iter->second.exception);
-  EXPECT_FALSE(foo_iter->second.is_private);
-  RuleMap::const_iterator bar_iter = rules.find("bar");
-  ASSERT_FALSE(rules.end() == bar_iter);
-  EXPECT_FALSE(bar_iter->second.wildcard);
-  EXPECT_FALSE(bar_iter->second.exception);
-  EXPECT_FALSE(bar_iter->second.is_private);
-  RuleMap::const_iterator baz_iter = rules.find("baz");
-  ASSERT_FALSE(rules.end() == baz_iter);
-  EXPECT_FALSE(baz_iter->second.wildcard);
-  EXPECT_FALSE(baz_iter->second.exception);
-  EXPECT_TRUE(baz_iter->second.is_private);
+  ASSERT_EQ(
+      NormalizeDataToRuleMap(SetupData(icann_domains, private_domains), &rules),
+      NormalizeResult::kSuccess);
+  EXPECT_THAT(
+      rules,
+      ElementsAre(Pair("bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                   /*is_private=*/false}),
+                  Pair("baz", Rule{/*exception=*/false, /*wildcard=*/false,
+                                   /*is_private=*/true}),
+                  Pair("foo", Rule{/*exception=*/false, /*wildcard=*/false,
+                                   /*is_private=*/false})));
 }
 
 TEST(TldCleanupUtilTest, PrivateDomainMarkedAsPrivate) {
   std::string icann_domains = "bar\n";
   std::string private_domains = "foo.bar\n";
-  std::string data = SetupData(icann_domains, private_domains);
   RuleMap rules;
-  NormalizeResult result = NormalizeDataToRuleMap(data, &rules);
-  ASSERT_EQ(kSuccess, result);
-  ASSERT_EQ(2U, rules.size());
-  RuleMap::const_iterator bar_iter = rules.find("bar");
-  ASSERT_FALSE(rules.end() == bar_iter);
-  EXPECT_FALSE(bar_iter->second.wildcard);
-  EXPECT_FALSE(bar_iter->second.exception);
-  EXPECT_FALSE(bar_iter->second.is_private);
-  RuleMap::const_iterator foo_bar_iter = rules.find("foo.bar");
-  ASSERT_FALSE(rules.end() == foo_bar_iter);
-  EXPECT_FALSE(foo_bar_iter->second.wildcard);
-  EXPECT_FALSE(foo_bar_iter->second.exception);
-  EXPECT_TRUE(foo_bar_iter->second.is_private);
+  ASSERT_EQ(
+      NormalizeDataToRuleMap(SetupData(icann_domains, private_domains), &rules),
+      NormalizeResult::kSuccess);
+  EXPECT_THAT(
+      rules,
+      ElementsAre(Pair("bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                   /*is_private=*/false}),
+                  Pair("foo.bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                       /*is_private=*/true})));
 }
 
 TEST(TldCleanupUtilTest, ExtraTldRuleIsNotMarkedPrivate) {
-  std::string icann_domains = "foo.bar\n"
-                              "baz.bar\n";
+  std::string icann_domains =
+      "foo.bar\n"
+      "baz.bar\n";
   std::string private_domains = "qux.bar\n";
-  std::string data = SetupData(icann_domains, private_domains);
   RuleMap rules;
-  NormalizeResult result = NormalizeDataToRuleMap(data, &rules);
-  ASSERT_EQ(kSuccess, result);
-  ASSERT_EQ(4U, rules.size());
-  RuleMap::const_iterator foo_bar_iter = rules.find("foo.bar");
-  ASSERT_FALSE(rules.end() == foo_bar_iter);
-  EXPECT_FALSE(foo_bar_iter->second.wildcard);
-  EXPECT_FALSE(foo_bar_iter->second.exception);
-  EXPECT_FALSE(foo_bar_iter->second.is_private);
-  RuleMap::const_iterator baz_bar_iter = rules.find("baz.bar");
-  ASSERT_FALSE(rules.end() == baz_bar_iter);
-  EXPECT_FALSE(baz_bar_iter->second.wildcard);
-  EXPECT_FALSE(baz_bar_iter->second.exception);
-  EXPECT_FALSE(baz_bar_iter->second.is_private);
-  RuleMap::const_iterator bar_iter = rules.find("bar");
-  ASSERT_FALSE(rules.end() == bar_iter);
-  EXPECT_FALSE(bar_iter->second.wildcard);
-  EXPECT_FALSE(bar_iter->second.exception);
-  EXPECT_FALSE(bar_iter->second.is_private);
-  RuleMap::const_iterator qux_bar_iter = rules.find("qux.bar");
-  ASSERT_FALSE(rules.end() == qux_bar_iter);
-  EXPECT_FALSE(qux_bar_iter->second.wildcard);
-  EXPECT_FALSE(qux_bar_iter->second.exception);
-  EXPECT_TRUE(qux_bar_iter->second.is_private);
+  ASSERT_EQ(
+      NormalizeDataToRuleMap(SetupData(icann_domains, private_domains), &rules),
+      NormalizeResult::kSuccess);
+  EXPECT_THAT(
+      rules,
+      ElementsAre(Pair("bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                   /*is_private=*/false}),
+                  Pair("baz.bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                       /*is_private=*/false}),
+                  Pair("foo.bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                       /*is_private=*/false}),
+                  Pair("qux.bar", Rule{/*exception=*/false, /*wildcard=*/false,
+                                       /*is_private=*/true})));
 }
 
 TEST(TldCleanupUtilTest, WildcardAndExceptionParsedCorrectly) {
-  std::string icann_domains = "*.bar\n"
-                              "!foo.bar\n";
+  std::string icann_domains =
+      "*.bar\n"
+      "!foo.bar\n";
   std::string private_domains = "!baz.bar\n";
-  std::string data = SetupData(icann_domains, private_domains);
   RuleMap rules;
-  NormalizeResult result = NormalizeDataToRuleMap(data, &rules);
-  ASSERT_EQ(kSuccess, result);
-  ASSERT_EQ(3U, rules.size());
-  RuleMap::const_iterator foo_bar_iter = rules.find("bar");
-  ASSERT_FALSE(rules.end() == foo_bar_iter);
-  EXPECT_TRUE(foo_bar_iter->second.wildcard);
-  EXPECT_FALSE(foo_bar_iter->second.exception);
-  EXPECT_FALSE(foo_bar_iter->second.is_private);
-  RuleMap::const_iterator bar_iter = rules.find("foo.bar");
-  ASSERT_FALSE(rules.end() == bar_iter);
-  EXPECT_FALSE(bar_iter->second.wildcard);
-  EXPECT_TRUE(bar_iter->second.exception);
-  EXPECT_FALSE(bar_iter->second.is_private);
-  RuleMap::const_iterator baz_bar_iter = rules.find("baz.bar");
-  ASSERT_FALSE(rules.end() == baz_bar_iter);
-  EXPECT_FALSE(baz_bar_iter->second.wildcard);
-  EXPECT_TRUE(baz_bar_iter->second.exception);
-  EXPECT_TRUE(baz_bar_iter->second.is_private);
+  ASSERT_EQ(
+      NormalizeDataToRuleMap(SetupData(icann_domains, private_domains), &rules),
+      NormalizeResult::kSuccess);
+  EXPECT_THAT(
+      rules,
+      ElementsAre(Pair("bar", Rule{/*exception=*/false, /*wildcard=*/true,
+                                   /*is_private=*/false}),
+                  Pair("baz.bar", Rule{/*exception=*/true, /*wildcard=*/false,
+                                       /*is_private=*/true}),
+                  Pair("foo.bar", Rule{/*exception=*/true, /*wildcard=*/false,
+                                       /*is_private=*/false})));
+}
+
+TEST(TldCleanupUtilTest, RuleSerialization) {
+  EXPECT_THAT(
+      RulesToGperf({
+          {"domain0",
+           Rule{/*exception=*/false, /*wildcard=*/false, /*is_private=*/false}},
+          {"domain1",
+           Rule{/*exception=*/false, /*wildcard=*/false, /*is_private=*/true}},
+          {"domain2",
+           Rule{/*exception=*/false, /*wildcard=*/true, /*is_private=*/false}},
+          {"domain3",
+           Rule{/*exception=*/false, /*wildcard=*/true, /*is_private=*/true}},
+          {"domain4",
+           Rule{/*exception=*/true, /*wildcard=*/false, /*is_private=*/false}},
+          {"domain5",
+           Rule{/*exception=*/true, /*wildcard=*/false, /*is_private=*/true}},
+          {"domain6",
+           Rule{/*exception=*/true, /*wildcard=*/true, /*is_private=*/false}},
+          {"domain7",
+           Rule{/*exception=*/true, /*wildcard=*/true, /*is_private=*/true}},
+      }),
+      testing::EndsWith(
+          R"(%%
+domain0, 0
+domain1, 4
+domain2, 2
+domain3, 6
+domain4, 1
+domain5, 5
+domain6, 1
+domain7, 5
+%%
+)"));
 }
 
 }  // namespace net::tld_cleanup
diff --git a/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc b/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
index e77e0d0..3f88a8d0 100644
--- a/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
+++ b/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.cc
@@ -13,8 +13,7 @@
 
 namespace ppapi {
 
-PPB_X509Certificate_Fields::PPB_X509Certificate_Fields()
-    : values_(base::Value::Type::LIST) {}
+PPB_X509Certificate_Fields::PPB_X509Certificate_Fields() = default;
 
 PPB_X509Certificate_Fields::PPB_X509Certificate_Fields(
     const PPB_X509Certificate_Fields& fields)
@@ -22,26 +21,24 @@
 
 void PPB_X509Certificate_Fields::SetField(
     PP_X509Certificate_Private_Field field,
-    std::unique_ptr<base::Value> value) {
-  DCHECK(value);
+    base::Value value) {
   uint32_t index = static_cast<uint32_t>(field);
   // Pad the list with null values if necessary.
-  while (index >= values_.GetListDeprecated().size())
+  while (index >= values_.size())
     values_.Append(base::Value());
-  values_.GetListDeprecated()[index] =
-      base::Value::FromUniquePtrValue(std::move(value));
+  values_[index] = std::move(value);
 }
 
 PP_Var PPB_X509Certificate_Fields::GetFieldAsPPVar(
     PP_X509Certificate_Private_Field field) const {
   uint32_t index = static_cast<uint32_t>(field);
-  if (index >= values_.GetListDeprecated().size()) {
+  if (index >= values_.size()) {
     // Our list received might be smaller than the number of fields, so just
     // return null if the index is OOB.
     return PP_MakeNull();
   }
 
-  const base::Value& value = values_.GetListDeprecated()[index];
+  const base::Value& value = values_[index];
   switch (value.type()) {
     case base::Value::Type::NONE:
       return PP_MakeNull();
diff --git a/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h b/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h
index d38565a9..40cd2b8 100644
--- a/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h
+++ b/ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h
@@ -28,15 +28,14 @@
   PPB_X509Certificate_Fields(const PPB_X509Certificate_Fields& fields);
 
   // Takes ownership of |value|.
-  void SetField(PP_X509Certificate_Private_Field field,
-                std::unique_ptr<base::Value> value);
+  void SetField(PP_X509Certificate_Private_Field field, base::Value value);
   PP_Var GetFieldAsPPVar(PP_X509Certificate_Private_Field field) const;
 
  private:
   // Friend so ParamTraits can serialize us.
   friend struct IPC::ParamTraits<ppapi::PPB_X509Certificate_Fields>;
 
-  base::Value values_;
+  base::Value::List values_;
 };
 
 //------------------------------------------------------------------------------
diff --git a/ppapi/shared_impl/private/ppb_x509_util_shared.cc b/ppapi/shared_impl/private/ppb_x509_util_shared.cc
index 57a0e87e..1a3bfaa34 100644
--- a/ppapi/shared_impl/private/ppb_x509_util_shared.cc
+++ b/ppapi/shared_impl/private/ppb_x509_util_shared.cc
@@ -5,6 +5,7 @@
 #include "ppapi/shared_impl/private/ppb_x509_util_shared.h"
 
 #include "base/strings/string_util.h"
+#include "base/values.h"
 #include "net/cert/x509_certificate.h"
 #include "net/cert/x509_util.h"
 
@@ -15,52 +16,47 @@
     ppapi::PPB_X509Certificate_Fields* fields) {
   const net::CertPrincipal& issuer = cert.issuer();
   fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_COMMON_NAME,
-                   std::make_unique<base::Value>(issuer.common_name));
+                   base::Value(issuer.common_name));
   fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_LOCALITY_NAME,
-                   std::make_unique<base::Value>(issuer.locality_name));
-  fields->SetField(
-      PP_X509CERTIFICATE_PRIVATE_ISSUER_STATE_OR_PROVINCE_NAME,
-      std::make_unique<base::Value>(issuer.state_or_province_name));
+                   base::Value(issuer.locality_name));
+  fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_STATE_OR_PROVINCE_NAME,
+                   base::Value(issuer.state_or_province_name));
   fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_COUNTRY_NAME,
-                   std::make_unique<base::Value>(issuer.country_name));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_NAME,
-                   std::make_unique<base::Value>(
-                       base::JoinString(issuer.organization_names, "\n")));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_UNIT_NAME,
-                   std::make_unique<base::Value>(
-                       base::JoinString(issuer.organization_unit_names, "\n")));
+                   base::Value(issuer.country_name));
+  fields->SetField(
+      PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_NAME,
+      base::Value(base::JoinString(issuer.organization_names, "\n")));
+  fields->SetField(
+      PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_UNIT_NAME,
+      base::Value(base::JoinString(issuer.organization_unit_names, "\n")));
 
   const net::CertPrincipal& subject = cert.subject();
   fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_COMMON_NAME,
-                   std::make_unique<base::Value>(subject.common_name));
+                   base::Value(subject.common_name));
   fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_LOCALITY_NAME,
-                   std::make_unique<base::Value>(subject.locality_name));
-  fields->SetField(
-      PP_X509CERTIFICATE_PRIVATE_SUBJECT_STATE_OR_PROVINCE_NAME,
-      std::make_unique<base::Value>(subject.state_or_province_name));
+                   base::Value(subject.locality_name));
+  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_STATE_OR_PROVINCE_NAME,
+                   base::Value(subject.state_or_province_name));
   fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_COUNTRY_NAME,
-                   std::make_unique<base::Value>(subject.country_name));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_NAME,
-                   std::make_unique<base::Value>(
-                       base::JoinString(subject.organization_names, "\n")));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_UNIT_NAME,
-                   std::make_unique<base::Value>(base::JoinString(
-                       subject.organization_unit_names, "\n")));
+                   base::Value(subject.country_name));
+  fields->SetField(
+      PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_NAME,
+      base::Value(base::JoinString(subject.organization_names, "\n")));
+  fields->SetField(
+      PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_UNIT_NAME,
+      base::Value(base::JoinString(subject.organization_unit_names, "\n")));
 
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SERIAL_NUMBER,
-                   base::Value::ToUniquePtrValue(base::Value(
-                       base::as_bytes(base::make_span(cert.serial_number())))));
   fields->SetField(
-      PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_BEFORE,
-      std::make_unique<base::Value>(cert.valid_start().ToDoubleT()));
-  fields->SetField(
-      PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_AFTER,
-      std::make_unique<base::Value>(cert.valid_expiry().ToDoubleT()));
+      PP_X509CERTIFICATE_PRIVATE_SERIAL_NUMBER,
+      base::Value(base::as_bytes(base::make_span(cert.serial_number()))));
+  fields->SetField(PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_BEFORE,
+                   base::Value(cert.valid_start().ToDoubleT()));
+  fields->SetField(PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_AFTER,
+                   base::Value(cert.valid_expiry().ToDoubleT()));
   base::StringPiece cert_der =
       net::x509_util::CryptoBufferAsStringPiece(cert.cert_buffer());
   fields->SetField(PP_X509CERTIFICATE_PRIVATE_RAW,
-                   base::Value::ToUniquePtrValue(
-                       base::Value(base::as_bytes(base::make_span(cert_der)))));
+                   base::Value(base::as_bytes(base::make_span(cert_der))));
   return true;
 }
 
diff --git a/remoting/host/it2me/it2me_host.cc b/remoting/host/it2me/it2me_host.cc
index 098d9604..60f00b6 100644
--- a/remoting/host/it2me/it2me_host.cc
+++ b/remoting/host/it2me/it2me_host.cc
@@ -275,6 +275,9 @@
 
   // Set up the desktop environment options.
   DesktopEnvironmentOptions options(DesktopEnvironmentOptions::CreateDefault());
+#if defined(REMOTING_USE_WAYLAND)
+  options.desktop_capture_options()->set_prefer_cursor_embedded(true);
+#endif
   options.set_enable_user_interface(enable_dialogs_);
   options.set_enable_notifications(enable_notifications_);
   options.set_terminate_upon_input(terminate_upon_input_);
diff --git a/remoting/host/linux/remote_desktop_portal.cc b/remoting/host/linux/remote_desktop_portal.cc
index 3d35bee..9dba7cc2 100644
--- a/remoting/host/linux/remote_desktop_portal.cc
+++ b/remoting/host/linux/remote_desktop_portal.cc
@@ -40,11 +40,12 @@
 }  // namespace
 
 RemoteDesktopPortal::RemoteDesktopPortal(
-    webrtc::ScreenCastPortal::PortalNotifier* notifier)
+    webrtc::ScreenCastPortal::PortalNotifier* notifier,
+    bool prefer_cursor_embedded)
     : notifier_(notifier) {
   screencast_portal_ = std::make_unique<webrtc::ScreenCastPortal>(
       webrtc::CaptureType::kScreen, this, OnScreenCastPortalProxyRequested,
-      OnSourcesRequestResponseSignal, this);
+      OnSourcesRequestResponseSignal, this, prefer_cursor_embedded);
   clipboard_portal_ = std::make_unique<xdg_portal::ClipboardPortal>(this);
   DETACH_FROM_SEQUENCE(sequence_checker_);
 }
diff --git a/remoting/host/linux/remote_desktop_portal.h b/remoting/host/linux/remote_desktop_portal.h
index 560d656..afc9cee88 100644
--- a/remoting/host/linux/remote_desktop_portal.h
+++ b/remoting/host/linux/remote_desktop_portal.h
@@ -14,6 +14,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/sequence_checker.h"
 #include "clipboard_portal.h"
+#include "third_party/webrtc/modules/desktop_capture/desktop_capture_options.h"
 #include "third_party/webrtc/modules/desktop_capture/linux/wayland/portal_request_response.h"
 #include "third_party/webrtc/modules/desktop_capture/linux/wayland/scoped_glib.h"
 #include "third_party/webrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.h"
@@ -33,8 +34,9 @@
  public:
   // |notifier| must outlive |RemoteDesktopPortal| instance and will be called
   // into from the capturer thread.
-  explicit RemoteDesktopPortal(
-      webrtc::ScreenCastPortal::PortalNotifier* screencast_notifier);
+  RemoteDesktopPortal(
+      webrtc::ScreenCastPortal::PortalNotifier* screencast_notifier,
+      bool prefer_cursor_embedded);
   RemoteDesktopPortal(const RemoteDesktopPortal&) = delete;
   RemoteDesktopPortal& operator=(const RemoteDesktopPortal&) = delete;
   ~RemoteDesktopPortal() override;
diff --git a/remoting/host/linux/wayland_desktop_capturer.cc b/remoting/host/linux/wayland_desktop_capturer.cc
index bf8374b..eddb9cc 100644
--- a/remoting/host/linux/wayland_desktop_capturer.cc
+++ b/remoting/host/linux/wayland_desktop_capturer.cc
@@ -24,10 +24,11 @@
 
 WaylandDesktopCapturer::WaylandDesktopCapturer(
     const DesktopCaptureOptions& options)
-    : base_capturer_pipewire_(
-          options,
-          // Note: RemoteDesktopPortal doesn't own `this`
-          std::make_unique<xdg_portal::RemoteDesktopPortal>(this)) {}
+    : base_capturer_pipewire_(options,
+                              // Note: RemoteDesktopPortal doesn't own `this`
+                              std::make_unique<xdg_portal::RemoteDesktopPortal>(
+                                  this,
+                                  options.prefer_cursor_embedded())) {}
 WaylandDesktopCapturer::~WaylandDesktopCapturer() {}
 
 void WaylandDesktopCapturer::Start(Callback* callback) {
diff --git a/remoting/host/me2me_desktop_environment.cc b/remoting/host/me2me_desktop_environment.cc
index 0b2dc17..acdd5fd1 100644
--- a/remoting/host/me2me_desktop_environment.cc
+++ b/remoting/host/me2me_desktop_environment.cc
@@ -171,6 +171,10 @@
   // ourselves.
   mutable_desktop_capture_options()->set_detect_updated_region(false);
 #endif
+
+#if defined(REMOTING_USE_WAYLAND)
+  mutable_desktop_capture_options()->set_prefer_cursor_embedded(false);
+#endif
 }
 
 bool Me2MeDesktopEnvironment::InitializeSecurity(
diff --git a/services/data_decoder/xml_parser.cc b/services/data_decoder/xml_parser.cc
index a9da467..bba9e36 100644
--- a/services/data_decoder/xml_parser.cc
+++ b/services/data_decoder/xml_parser.cc
@@ -63,64 +63,59 @@
   return false;
 }
 
-base::Value CreateTextNode(const std::string& text, TextNodeType node_type) {
-  base::Value element(base::Value::Type::DICTIONARY);
-  element.SetKey(mojom::XmlParser::kTypeKey,
-                 base::Value(node_type == TextNodeType::kText
-                                 ? mojom::XmlParser::kTextNodeType
-                                 : mojom::XmlParser::kCDataNodeType));
-  element.SetKey(mojom::XmlParser::kTextKey, base::Value(text));
+base::Value::Dict CreateTextNode(const std::string& text,
+                                 TextNodeType node_type) {
+  base::Value::Dict element;
+  element.Set(mojom::XmlParser::kTypeKey,
+              node_type == TextNodeType::kText
+                  ? mojom::XmlParser::kTextNodeType
+                  : mojom::XmlParser::kCDataNodeType);
+  element.Set(mojom::XmlParser::kTextKey, text);
   return element;
 }
 
 // Creates and returns new element node with the tag name |name|.
-base::Value CreateNewElement(const std::string& name) {
-  base::Value element(base::Value::Type::DICTIONARY);
-  element.SetKey(mojom::XmlParser::kTypeKey,
-                 base::Value(mojom::XmlParser::kElementType));
-  element.SetKey(mojom::XmlParser::kTagKey, base::Value(name));
+base::Value::Dict CreateNewElement(const std::string& name) {
+  base::Value::Dict element;
+  element.Set(mojom::XmlParser::kTypeKey, mojom::XmlParser::kElementType);
+  element.Set(mojom::XmlParser::kTagKey, name);
   return element;
 }
 
 // Adds |child| as a child of |element|, creating the children list if
 // necessary. Returns a ponter to |child|.
-base::Value* AddChildToElement(base::Value* element, base::Value child) {
-  DCHECK(element->is_dict());
-  base::Value* children = element->FindKey(mojom::XmlParser::kChildrenKey);
-  DCHECK(!children || children->is_list());
-  if (!children)
-    children = element->SetKey(mojom::XmlParser::kChildrenKey,
-                               base::Value(base::Value::Type::LIST));
+base::Value::Dict* AddChildToElement(base::Value::Dict& element,
+                                     base::Value::Dict child) {
+  DCHECK(!element.contains(mojom::XmlParser::kChildrenKey) ||
+         element.FindList(mojom::XmlParser::kChildrenKey));
+  base::Value::List* children =
+      element.EnsureList(mojom::XmlParser::kChildrenKey);
   children->Append(std::move(child));
-  return &children->GetListDeprecated().back();
+  return &children->back().GetDict();
 }
 
-void PopulateNamespaces(base::Value* node_value, XmlReader* xml_reader) {
-  DCHECK(node_value->is_dict());
+void PopulateNamespaces(base::Value::Dict& node_value, XmlReader* xml_reader) {
   NamespaceMap namespaces;
   if (!xml_reader->GetAllDeclaredNamespaces(&namespaces) || namespaces.empty())
     return;
 
-  base::Value namespace_dict(base::Value::Type::DICTIONARY);
+  base::Value::Dict namespace_dict;
   for (auto ns : namespaces)
-    namespace_dict.SetKey(ns.first, base::Value(ns.second));
+    namespace_dict.Set(ns.first, ns.second);
 
-  node_value->SetKey(mojom::XmlParser::kNamespacesKey,
-                     std::move(namespace_dict));
+  node_value.Set(mojom::XmlParser::kNamespacesKey, std::move(namespace_dict));
 }
 
-void PopulateAttributes(base::Value* node_value, XmlReader* xml_reader) {
-  DCHECK(node_value->is_dict());
+void PopulateAttributes(base::Value::Dict& node_value, XmlReader* xml_reader) {
   AttributeMap attributes;
   if (!xml_reader->GetAllNodeAttributes(&attributes) || attributes.empty())
     return;
 
-  base::Value attribute_dict(base::Value::Type::DICTIONARY);
+  base::Value::Dict attribute_dict;
   for (auto attribute : attributes)
-    attribute_dict.SetKey(attribute.first, base::Value(attribute.second));
+    attribute_dict.Set(attribute.first, base::Value(attribute.second));
 
-  node_value->SetKey(mojom::XmlParser::kAttributesKey,
-                     std::move(attribute_dict));
+  node_value.Set(mojom::XmlParser::kAttributesKey, std::move(attribute_dict));
 }
 
 // A function to capture XML errors. Otherwise, by default, they are printed to
@@ -153,7 +148,7 @@
   }
 
   base::Value root_element;
-  std::vector<base::Value*> element_stack;
+  std::vector<base::Value::Dict*> element_stack;
   while (xml_reader.Read()) {
     if (xml_reader.IsClosingElement()) {
       if (element_stack.empty()) {
@@ -167,10 +162,10 @@
 
     std::string text;
     TextNodeType text_node_type = TextNodeType::kText;
-    base::Value* current_element =
+    base::Value::Dict* current_element =
         element_stack.empty() ? nullptr : element_stack.back();
     bool push_new_node_to_stack = false;
-    base::Value new_element;
+    base::Value::Dict new_element;
     if (GetTextFromNode(&xml_reader, &text, &text_node_type)) {
       if (!base::IsStringUTF8(text)) {
         ReportError(std::move(callback), "Invalid XML: invalid UTF8 text.",
@@ -180,8 +175,8 @@
       new_element = CreateTextNode(text, text_node_type);
     } else if (xml_reader.IsElement()) {
       new_element = CreateNewElement(xml_reader.NodeFullName());
-      PopulateNamespaces(&new_element, &xml_reader);
-      PopulateAttributes(&new_element, &xml_reader);
+      PopulateNamespaces(new_element, &xml_reader);
+      PopulateAttributes(new_element, &xml_reader);
       // Self-closing (empty) element have no close tag (or children); don't
       // push them on the element stack.
       push_new_node_to_stack = !xml_reader.IsEmptyElement();
@@ -195,16 +190,16 @@
       continue;
     }
 
-    base::Value* new_element_ptr;
+    base::Value::Dict* new_element_ptr;
     if (current_element) {
       new_element_ptr =
-          AddChildToElement(current_element, std::move(new_element));
+          AddChildToElement(*current_element, std::move(new_element));
     } else {
       // First element we are parsing, it becomes the root element.
       DCHECK(xml_reader.IsElement());
       DCHECK(root_element.is_none());
-      root_element = std::move(new_element);
-      new_element_ptr = &root_element;
+      root_element = base::Value(std::move(new_element));
+      new_element_ptr = &root_element.GetDict();
     }
     if (push_new_node_to_stack)
       element_stack.push_back(new_element_ptr);
@@ -215,7 +210,7 @@
                 errors);
     return;
   }
-  if (!root_element.is_dict() || root_element.DictEmpty()) {
+  if (!root_element.is_dict() || root_element.GetDict().empty()) {
     ReportError(std::move(callback), "Invalid XML: bad content", errors);
     return;
   }
diff --git a/services/data_decoder/xml_parser_unittest.cc b/services/data_decoder/xml_parser_unittest.cc
index e4a35b22..15488036 100644
--- a/services/data_decoder/xml_parser_unittest.cc
+++ b/services/data_decoder/xml_parser_unittest.cc
@@ -6,7 +6,7 @@
 
 #include "base/bind.h"
 #include "base/files/file_util.h"
-#include "base/json/json_reader.h"
+#include "base/test/values_test_util.h"
 #include "services/data_decoder/xml_parser.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -53,11 +53,8 @@
   EXPECT_FALSE(error) << "Unexpected error: " << *error;
   EXPECT_TRUE(actual_value);
 
-  std::unique_ptr<base::Value> expected_value =
-      base::JSONReader::ReadDeprecated(json);
-  DCHECK(expected_value) << "Bad test, incorrect JSON: " << json;
-
-  EXPECT_EQ(*expected_value, *actual_value);
+  base::Value expected_value = base::test::ParseJson(json);
+  EXPECT_EQ(expected_value, *actual_value);
 }
 
 }  // namespace
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json
index 077bc344..46c2664 100644
--- a/testing/buildbot/chromium.android.json
+++ b/testing/buildbot/chromium.android.json
@@ -1156,6 +1156,7 @@
   },
   "Android arm Builder (dbg)": {
     "additional_compile_targets": [
+      "android_lint",
       "boundary_interface_example_apk",
       "dump_syms",
       "microdump_stackwalk"
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl
index 8ed1953..c49040bb 100644
--- a/testing/buildbot/gn_isolate_map.pyl
+++ b/testing/buildbot/gn_isolate_map.pyl
@@ -92,6 +92,10 @@
     "label": "//chrome/test:android_browsertests",
     "type": "windowed_test_launcher",
   },
+  "android_lint": {
+    "label": "//chrome/android:android_lint",
+    "type": "additional_compile_target",
+  },
   "android_sync_integration_tests": {
     "label": "//chrome/test:android_sync_integration_tests",
     "type": "windowed_test_launcher",
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index e4c3462b..8705914 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -569,6 +569,7 @@
       },
       'Android arm Builder (dbg)': {
         'additional_compile_targets': [
+          'android_lint',
           'boundary_interface_example_apk',
           'dump_syms',
           'microdump_stackwalk',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 1fa859bb..ecd8a10b 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -178,23 +178,6 @@
             ]
         }
     ],
-    "AndroidDynamicPerformanceFramework": [
-        {
-            "platforms": [
-                "android",
-                "android_weblayer"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "Adpf"
-                    ],
-                    "min_os_version": "12.0.0"
-                }
-            ]
-        }
-    ],
     "AndroidFixedUmaSessionResumeOrder": [
         {
             "platforms": [
@@ -7711,6 +7694,21 @@
             ]
         }
     ],
+    "PageAllocatorRetryOnCommitFailure": [
+        {
+            "platforms": [
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "PageAllocatorRetryOnCommitFailure"
+                    ]
+                }
+            ]
+        }
+    ],
     "PageInfoAboutThisSiteDescriptionPlaceholder": [
         {
             "platforms": [
diff --git a/third_party/android_build_tools/lint/rebuild_baselines.py b/third_party/android_build_tools/lint/rebuild_baselines.py
index d49c737d..937a847 100755
--- a/third_party/android_build_tools/lint/rebuild_baselines.py
+++ b/third_party/android_build_tools/lint/rebuild_baselines.py
@@ -14,8 +14,8 @@
 _CLANK_PATH = _SRC_PATH / 'clank'
 _OUTPUT_DIR_ROOT = _SRC_PATH / 'out'
 _AUTONINJA_PATH = _SRC_PATH / 'third_party' / 'depot_tools' / 'autoninja'
-_NINJA_PATH = _SRC_PATH / 'third_party' / 'depot_tools' / 'ninja'
-_GN_PATH = _SRC_PATH / 'third_party' / 'depot_tools' / 'gn'
+_NINJA_PATH = _SRC_PATH / 'third_party' / 'ninja' / 'ninja'
+_GN_PATH = _SRC_PATH / 'buildtools' / 'linux64' / 'gn'
 
 
 def build_all_lint_targets(out_dir: pathlib.Path,
diff --git a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_property_instances.cc.tmpl b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_property_instances.cc.tmpl
index 13ebd565..e5b98ed2 100644
--- a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_property_instances.cc.tmpl
+++ b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_property_instances.cc.tmpl
@@ -13,22 +13,14 @@
 #include "third_party/blink/renderer/core/css/properties/shorthands.h"
 
 namespace blink {
-namespace {
-
+namespace static_properties {
 {% for property in properties %}
-static constexpr {{property.namespace}}::{{property.classname}} property_{{property.property_id.lower()}};
+const ::blink::{{property.namespace}}::{{property.classname}} property_{{property.property_id.lower()}};
 {% endfor %}
 {% for property in aliases %}
-static constexpr {{property.namespace}}::{{property.classname}} property_{{property.property_id.lower()}};
+const ::blink::{{property.namespace}}::{{property.classname}} property_{{property.property_id.lower()}};
 {% endfor %}
-
-} // namespace
-
-{% for property in properties %}
-const CSSProperty& Get{{property.property_id}}() {
-  return property_{{property.property_id.lower()}};
-}
-{% endfor %}
+} // namespace static_properties
 
 const CSSUnresolvedProperty* GetAliasPropertyInternal(CSSPropertyID id) {
   DCHECK_GT(id, kLastCSSProperty);  // last property id
@@ -36,7 +28,7 @@
   switch (id) {
     {% for property in aliases %}
     case CSSPropertyID::{{property.enum_key}}:
-      return &property_{{property.property_id.lower()}};
+      return &static_properties::property_{{property.property_id.lower()}};
     {% endfor %}
     default:
       NOTREACHED();
@@ -48,7 +40,7 @@
   nullptr,  // kInvalid.
   nullptr,  // kVariable.
   {% for property in properties %}
-  &property_{{property.property_id.lower()}},  // {{property.property_id}}
+  &static_properties::property_{{property.property_id.lower()}},  // {{property.property_id}}
   {% endfor %}
 };
 
diff --git a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_property_instances.h.tmpl b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_property_instances.h.tmpl
index 002078d..55ba8ba 100644
--- a/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_property_instances.h.tmpl
+++ b/third_party/blink/renderer/build/scripts/core/css/properties/templates/css_property_instances.h.tmpl
@@ -4,12 +4,33 @@
 
 // clang-format off
 
+// NOTE: Since all the getters declared in this file are returning forward-declared
+// types, you will need to include the right one of these (usually longhands.h)
+// if you wish the compiler to see that they inherit from CSSProperty:
+//
+// #include "third_party/blink/renderer/core/css/properties/longhands.h"
+// #include "third_party/blink/renderer/core/css/properties/shorthands.h"
+
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PROPERTY_INSTANCES_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PROPERTY_INSTANCES_H_
 
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 
 namespace blink {
+{% for property in properties %}
+namespace {{property.namespace}} { class {{property.classname}}; }
+{% endfor %}
+{% for property in aliases %}
+namespace {{property.namespace}} { class {{property.classname}}; }
+{% endfor %}
+namespace static_properties {
+{% for property in properties %}
+extern CORE_EXPORT const ::blink::{{property.namespace}}::{{property.classname}} property_{{property.property_id.lower()}};
+{% endfor %}
+{% for property in aliases %}
+extern CORE_EXPORT const ::blink::{{property.namespace}}::{{property.classname}} property_{{property.property_id.lower()}};
+{% endfor %}
+} // namespace static_properties
 
 class CSSUnresolvedProperty;
 class CSSProperty;
@@ -19,7 +40,10 @@
 const CSSUnresolvedProperty* GetAliasPropertyInternal(CSSPropertyID);
 
 {% for property in properties %}
-CORE_EXPORT const CSSProperty& Get{{property.property_id}}();
+inline const {{property.namespace}}::{{property.classname}}&
+Get{{property.property_id}}() {
+  return ::blink::static_properties::property_{{property.property_id.lower()}};
+}
 {% endfor %}
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/build/scripts/core/css/templates/style_property_shorthand.cc.tmpl b/third_party/blink/renderer/build/scripts/core/css/templates/style_property_shorthand.cc.tmpl
index 8996b1b..0bcf16c 100644
--- a/third_party/blink/renderer/build/scripts/core/css/templates/style_property_shorthand.cc.tmpl
+++ b/third_party/blink/renderer/build/scripts/core/css/templates/style_property_shorthand.cc.tmpl
@@ -26,6 +26,7 @@
 
 #include <iterator>
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 
 {% macro define_shorthand(property, expansion) -%}
diff --git a/third_party/blink/renderer/core/animation/animation.cc b/third_party/blink/renderer/core/animation/animation.cc
index b7c2b52..34de99fd 100644
--- a/third_party/blink/renderer/core/animation/animation.cc
+++ b/third_party/blink/renderer/core/animation/animation.cc
@@ -53,6 +53,7 @@
 #include "third_party/blink/renderer/core/animation/timing_calculations.h"
 #include "third_party/blink/renderer/core/css/cssom/css_unit_values.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/style_change_reason.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_document_state.h"
diff --git a/third_party/blink/renderer/core/animation/animation_input_helpers_test.cc b/third_party/blink/renderer/core/animation/animation_input_helpers_test.cc
index 9d4cb97fc..a242a50 100644
--- a/third_party/blink/renderer/core/animation/animation_input_helpers_test.cc
+++ b/third_party/blink/renderer/core/animation/animation_input_helpers_test.cc
@@ -7,6 +7,8 @@
 #include <memory>
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/core/animation/property_handle.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
+#include "third_party/blink/renderer/core/css/properties/shorthands.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
diff --git a/third_party/blink/renderer/core/animation/animation_test.cc b/third_party/blink/renderer/core/animation/animation_test.cc
index 9a18d57..44a70e2 100644
--- a/third_party/blink/renderer/core/animation/animation_test.cc
+++ b/third_party/blink/renderer/core/animation/animation_test.cc
@@ -53,6 +53,7 @@
 #include "third_party/blink/renderer/core/animation/scroll_timeline.h"
 #include "third_party/blink/renderer/core/animation/timing.h"
 #include "third_party/blink/renderer/core/css/cssom/css_unit_values.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/dom_node_ids.h"
diff --git a/third_party/blink/renderer/core/animation/animation_utils_test.cc b/third_party/blink/renderer/core/animation/animation_utils_test.cc
index 7226ace..95904a27 100644
--- a/third_party/blink/renderer/core/animation/animation_utils_test.cc
+++ b/third_party/blink/renderer/core/animation/animation_utils_test.cc
@@ -10,6 +10,7 @@
 #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h"
 #include "third_party/blink/renderer/core/animation/string_keyframe.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/execution_context/security_context.h"
diff --git a/third_party/blink/renderer/core/animation/compositor_animations.cc b/third_party/blink/renderer/core/animation/compositor_animations.cc
index 3fe1426..9597047b 100644
--- a/third_party/blink/renderer/core/animation/compositor_animations.cc
+++ b/third_party/blink/renderer/core/animation/compositor_animations.cc
@@ -49,6 +49,7 @@
 #include "third_party/blink/renderer/core/css/box_shadow_paint_image_generator.h"
 #include "third_party/blink/renderer/core/css/clip_path_paint_image_generator.h"
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/dom_node_ids.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
diff --git a/third_party/blink/renderer/core/animation/compositor_animations_test.cc b/third_party/blink/renderer/core/animation/compositor_animations_test.cc
index f78a2a7e..aeeff6a 100644
--- a/third_party/blink/renderer/core/animation/compositor_animations_test.cc
+++ b/third_party/blink/renderer/core/animation/compositor_animations_test.cc
@@ -58,6 +58,7 @@
 #include "third_party/blink/renderer/core/css/css_syntax_definition.h"
 #include "third_party/blink/renderer/core/css/css_test_helpers.h"
 #include "third_party/blink/renderer/core/css/mock_css_paint_image_generator.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
diff --git a/third_party/blink/renderer/core/animation/css/css_animations.cc b/third_party/blink/renderer/core/animation/css/css_animations.cc
index efe6d9f..ed5e917b 100644
--- a/third_party/blink/renderer/core/animation/css/css_animations.cc
+++ b/third_party/blink/renderer/core/animation/css/css_animations.cc
@@ -64,6 +64,7 @@
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/property_registry.h"
 #include "third_party/blink/renderer/core/css/resolver/css_to_style_map.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
@@ -689,8 +690,8 @@
     return nullptr;
   }
   if (style_timeline.IsName()) {
-    return FindPreviousSiblingAncestorTimeline(
-        style_timeline.GetName().GetValue(), element, &update);
+    return FindPreviousSiblingAncestorTimeline(style_timeline.GetName(),
+                                               element, &update);
   }
   DCHECK(style_timeline.IsScroll());
   return ComputeScrollFunctionTimeline(element, style_timeline.GetScroll());
diff --git a/third_party/blink/renderer/core/animation/css/css_scroll_timeline_test.cc b/third_party/blink/renderer/core/animation/css/css_scroll_timeline_test.cc
index 58f8992..7941a2c3 100644
--- a/third_party/blink/renderer/core/animation/css/css_scroll_timeline_test.cc
+++ b/third_party/blink/renderer/core/animation/css/css_scroll_timeline_test.cc
@@ -6,6 +6,7 @@
 
 #include "third_party/blink/renderer/core/animation/animation_clock.h"
 #include "third_party/blink/renderer/core/animation/document_animations.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/id_target_observer.h"
 #include "third_party/blink/renderer/core/dom/id_target_observer_registry.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
diff --git a/third_party/blink/renderer/core/animation/effect_stack_test.cc b/third_party/blink/renderer/core/animation/effect_stack_test.cc
index 12623cf..31fecce 100644
--- a/third_party/blink/renderer/core/animation/effect_stack_test.cc
+++ b/third_party/blink/renderer/core/animation/effect_stack_test.cc
@@ -17,6 +17,7 @@
 #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h"
 #include "third_party/blink/renderer/core/animation/pending_animations.h"
 #include "third_party/blink/renderer/core/animation/string_keyframe.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/execution_context/security_context.h"
 #include "third_party/blink/renderer/core/html/html_element.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
diff --git a/third_party/blink/renderer/core/animation/element_animations.cc b/third_party/blink/renderer/core/animation/element_animations.cc
index 93d8f3ec..cdf15f9f 100644
--- a/third_party/blink/renderer/core/animation/element_animations.cc
+++ b/third_party/blink/renderer/core/animation/element_animations.cc
@@ -32,6 +32,7 @@
 
 #include "third_party/blink/renderer/core/css/css_property_equality.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/inert_effect_test.cc b/third_party/blink/renderer/core/animation/inert_effect_test.cc
index bfa7a6a1..d8c158e 100644
--- a/third_party/blink/renderer/core/animation/inert_effect_test.cc
+++ b/third_party/blink/renderer/core/animation/inert_effect_test.cc
@@ -9,6 +9,7 @@
 #include "third_party/blink/renderer/core/animation/animation_timeline.h"
 #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h"
 #include "third_party/blink/renderer/core/animation/property_handle.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/interpolable_value_test.cc b/third_party/blink/renderer/core/animation/interpolable_value_test.cc
index c4ba25f..5056eb33 100644
--- a/third_party/blink/renderer/core/animation/interpolable_value_test.cc
+++ b/third_party/blink/renderer/core/animation/interpolable_value_test.cc
@@ -2,15 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "third_party/blink/renderer/core/animation/interpolable_value.h"
 #include <memory>
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/core/animation/animation_test_helpers.h"
 #include "third_party/blink/renderer/core/animation/css_length_interpolation_type.h"
 #include "third_party/blink/renderer/core/animation/css_number_interpolation_type.h"
-#include "third_party/blink/renderer/core/animation/interpolable_value.h"
 #include "third_party/blink/renderer/core/animation/interpolation_value.h"
 #include "third_party/blink/renderer/core/animation/string_keyframe.h"
 #include "third_party/blink/renderer/core/animation/transition_interpolation.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/interpolation_effect_test.cc b/third_party/blink/renderer/core/animation/interpolation_effect_test.cc
index 67e70e9..55ca278 100644
--- a/third_party/blink/renderer/core/animation/interpolation_effect_test.cc
+++ b/third_party/blink/renderer/core/animation/interpolation_effect_test.cc
@@ -2,12 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "third_party/blink/renderer/core/animation/interpolation_effect.h"
 #include <memory>
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/core/animation/animation_test_helpers.h"
 #include "third_party/blink/renderer/core/animation/css_number_interpolation_type.h"
-#include "third_party/blink/renderer/core/animation/interpolation_effect.h"
 #include "third_party/blink/renderer/core/animation/transition_interpolation.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/animation/keyframe_effect.cc b/third_party/blink/renderer/core/animation/keyframe_effect.cc
index 20564a3..db91d1ff 100644
--- a/third_party/blink/renderer/core/animation/keyframe_effect.cc
+++ b/third_party/blink/renderer/core/animation/keyframe_effect.cc
@@ -43,6 +43,7 @@
 #include "third_party/blink/renderer/core/animation/timing_input.h"
 #include "third_party/blink/renderer/core/css/parser/css_selector_parser.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
diff --git a/third_party/blink/renderer/core/animation/keyframe_effect_model.cc b/third_party/blink/renderer/core/animation/keyframe_effect_model.cc
index 25fa5dfc..b2057b3 100644
--- a/third_party/blink/renderer/core/animation/keyframe_effect_model.cc
+++ b/third_party/blink/renderer/core/animation/keyframe_effect_model.cc
@@ -37,6 +37,7 @@
 #include "third_party/blink/renderer/core/animation/compositor_animations.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/css/css_property_equality.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/property_registry.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/dom/document.h"
@@ -115,11 +116,11 @@
     const ComputedStyle& old_style,
     const ComputedStyle& new_style,
     const ComputedStyle* parent_style) const {
-  auto should_snapshot_property =
-      [&old_style, &new_style](const PropertyHandle& property) {
-        return !CSSPropertyEquality::PropertiesEqual(property, old_style,
-                                                     new_style);
-      };
+  auto should_snapshot_property = [&old_style,
+                                   &new_style](const PropertyHandle& property) {
+    return !CSSPropertyEquality::PropertiesEqual(property, old_style,
+                                                 new_style);
+  };
   auto should_snapshot_keyframe = [](const PropertySpecificKeyframe& keyframe) {
     return keyframe.IsNeutral();
   };
diff --git a/third_party/blink/renderer/core/animation/keyframe_effect_model_test.cc b/third_party/blink/renderer/core/animation/keyframe_effect_model_test.cc
index 75008fe..30344ae5 100644
--- a/third_party/blink/renderer/core/animation/keyframe_effect_model_test.cc
+++ b/third_party/blink/renderer/core/animation/keyframe_effect_model_test.cc
@@ -42,6 +42,7 @@
 #include "third_party/blink/renderer/core/animation/string_keyframe.h"
 #include "third_party/blink/renderer/core/css/css_primitive_value.h"
 #include "third_party/blink/renderer/core/css/css_test_helpers.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/property_registry.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/dom/element.h"
diff --git a/third_party/blink/renderer/core/animation/keyframe_effect_test.cc b/third_party/blink/renderer/core/animation/keyframe_effect_test.cc
index 807df46..4a985f54 100644
--- a/third_party/blink/renderer/core/animation/keyframe_effect_test.cc
+++ b/third_party/blink/renderer/core/animation/keyframe_effect_test.cc
@@ -23,6 +23,7 @@
 #include "third_party/blink/renderer/core/animation/document_timeline.h"
 #include "third_party/blink/renderer/core/animation/keyframe_effect_model.h"
 #include "third_party/blink/renderer/core/animation/timing.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/execution_context/security_context.h"
diff --git a/third_party/blink/renderer/core/animation/list_interpolation_functions_test.cc b/third_party/blink/renderer/core/animation/list_interpolation_functions_test.cc
index 87ae60bb..697d1223 100644
--- a/third_party/blink/renderer/core/animation/list_interpolation_functions_test.cc
+++ b/third_party/blink/renderer/core/animation/list_interpolation_functions_test.cc
@@ -10,6 +10,7 @@
 #include "third_party/blink/renderer/core/animation/css_number_interpolation_type.h"
 #include "third_party/blink/renderer/core/animation/interpolation_value.h"
 #include "third_party/blink/renderer/core/animation/underlying_value.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/animation/property_handle_test.cc b/third_party/blink/renderer/core/animation/property_handle_test.cc
index 3bb21de..5105ab1 100644
--- a/third_party/blink/renderer/core/animation/property_handle_test.cc
+++ b/third_party/blink/renderer/core/animation/property_handle_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/animation/property_handle.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/svg_names.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/clipboard/data_transfer_test.cc b/third_party/blink/renderer/core/clipboard/data_transfer_test.cc
index c87d6a07..d4495b4d 100644
--- a/third_party/blink/renderer/core/clipboard/data_transfer_test.cc
+++ b/third_party/blink/renderer/core/clipboard/data_transfer_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/clipboard/data_transfer.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
diff --git a/third_party/blink/renderer/core/css/affected_by_pseudo_test.cc b/third_party/blink/renderer/core/css/affected_by_pseudo_test.cc
index 01b7eef..d9f83d7 100644
--- a/third_party/blink/renderer/core/css/affected_by_pseudo_test.cc
+++ b/third_party/blink/renderer/core/css/affected_by_pseudo_test.cc
@@ -4,6 +4,7 @@
 
 #include <memory>
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/element.h"
diff --git a/third_party/blink/renderer/core/css/container_query_evaluator_test.cc b/third_party/blink/renderer/core/css/container_query_evaluator_test.cc
index f2f0019..fbc5fbd 100644
--- a/third_party/blink/renderer/core/css/container_query_evaluator_test.cc
+++ b/third_party/blink/renderer/core/css/container_query_evaluator_test.cc
@@ -13,6 +13,7 @@
 #include "third_party/blink/renderer/core/css/parser/css_parser_token_stream.h"
 #include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
 #include "third_party/blink/renderer/core/css/parser/css_variable_parser.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/match_result.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
diff --git a/third_party/blink/renderer/core/css/css_gradient_value.cc b/third_party/blink/renderer/core/css/css_gradient_value.cc
index 8610955..2a3f8b4c 100644
--- a/third_party/blink/renderer/core/css/css_gradient_value.cc
+++ b/third_party/blink/renderer/core/css/css_gradient_value.cc
@@ -40,6 +40,7 @@
 #include "third_party/blink/renderer/core/css/css_to_length_conversion_data.h"
 #include "third_party/blink/renderer/core/css/css_value_pair.h"
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/dom/text_link_colors.h"
diff --git a/third_party/blink/renderer/core/css/css_property_name_test.cc b/third_party/blink/renderer/core/css/css_property_name_test.cc
index 01b1849..94810c8 100644
--- a/third_party/blink/renderer/core/css/css_property_name_test.cc
+++ b/third_party/blink/renderer/core/css/css_property_name_test.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/css/css_property_name.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
 #include "third_party/blink/renderer/platform/wtf/hash_map.h"
diff --git a/third_party/blink/renderer/core/css/css_style_sheet_test.cc b/third_party/blink/renderer/core/css/css_style_sheet_test.cc
index 5e8aa6c0..1b0b0c9 100644
--- a/third_party/blink/renderer/core/css/css_style_sheet_test.cc
+++ b/third_party/blink/renderer/core/css/css_style_sheet_test.cc
@@ -17,6 +17,7 @@
 #include "third_party/blink/renderer/core/css/css_rule.h"
 #include "third_party/blink/renderer/core/css/css_rule_list.h"
 #include "third_party/blink/renderer/core/css/media_list.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/style_sheet_contents.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/dom/shadow_root.h"
diff --git a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
index 70d79b2..2a25d05 100644
--- a/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
+++ b/third_party/blink/renderer/core/css/properties/computed_style_utils.cc
@@ -39,6 +39,9 @@
 #include "third_party/blink/renderer/core/css/cssom/css_unit_value.h"
 #include "third_party/blink/renderer/core/css/cssom/css_unparsed_value.h"
 #include "third_party/blink/renderer/core/css/cssom/css_unsupported_color.h"
+#include "third_party/blink/renderer/core/css/properties/css_parsing_utils.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
+#include "third_party/blink/renderer/core/css/properties/shorthands.h"
 #include "third_party/blink/renderer/core/css/style_color.h"
 #include "third_party/blink/renderer/core/layout/layout_block.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
@@ -2032,8 +2035,16 @@
            timeline.GetKeyword() == CSSValueID::kNone);
     return CSSIdentifierValue::Create(timeline.GetKeyword());
   }
-  if (timeline.IsName())
-    return ValueForStyleName(timeline.GetName());
+  if (timeline.IsName()) {
+    const AtomicString& name = timeline.GetName();
+    // Serialize as <string> if the value is not a valid <custom-ident>.
+    if (css_parsing_utils::IsCSSWideKeyword(name) ||
+        EqualIgnoringASCIICase(name, "auto") ||
+        EqualIgnoringASCIICase(name, "none")) {
+      return MakeGarbageCollected<CSSStringValue>(name);
+    }
+    return MakeGarbageCollected<CSSCustomIdentValue>(name);
+  }
   DCHECK(timeline.IsScroll());
   const StyleTimeline::ScrollData& scroll_data = timeline.GetScroll();
   CSSValue* axis = scroll_data.HasDefaultAxis()
diff --git a/third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.cc b/third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.cc
index 8f623b7..7066bba 100644
--- a/third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.cc
+++ b/third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.cc
@@ -4,6 +4,8 @@
 
 #include "third_party/blink/renderer/core/css/properties/css_direction_aware_resolver.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
+#include "third_party/blink/renderer/core/css/properties/shorthands.h"
 #include "third_party/blink/renderer/core/style_property_shorthand.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/properties/css_property_ref_test.cc b/third_party/blink/renderer/core/css/properties/css_property_ref_test.cc
index 535bc121..754ee82 100644
--- a/third_party/blink/renderer/core/css/properties/css_property_ref_test.cc
+++ b/third_party/blink/renderer/core/css/properties/css_property_ref_test.cc
@@ -6,6 +6,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/core/css/css_property_name.h"
 #include "third_party/blink/renderer/core/css/css_test_helpers.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/testing/page_test_base.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/properties/css_property_test.cc b/third_party/blink/renderer/core/css/properties/css_property_test.cc
index 19c6478..d572e7d 100644
--- a/third_party/blink/renderer/core/css/properties/css_property_test.cc
+++ b/third_party/blink/renderer/core/css/properties/css_property_test.cc
@@ -11,6 +11,7 @@
 #include "third_party/blink/renderer/core/css/properties/css_bitset.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_instances.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_builder.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
@@ -129,15 +130,20 @@
 }
 
 TEST_F(CSSPropertyTest, Surrogates) {
+  // NOTE: The downcast here is to go through the CSSProperty vtable,
+  // so that we don't have to mark these functions as CORE_EXPORT only for
+  // the test.
+  const CSSProperty& inline_size = GetCSSPropertyInlineSize();
+  const CSSProperty& writing_mode = GetCSSPropertyWebkitWritingMode();
   EXPECT_EQ(&GetCSSPropertyWidth(),
-            GetCSSPropertyInlineSize().SurrogateFor(
-                TextDirection::kLtr, WritingMode::kHorizontalTb));
-  EXPECT_EQ(&GetCSSPropertyHeight(),
-            GetCSSPropertyInlineSize().SurrogateFor(TextDirection::kLtr,
-                                                    WritingMode::kVerticalRl));
+            inline_size.SurrogateFor(TextDirection::kLtr,
+                                     WritingMode::kHorizontalTb));
+  EXPECT_EQ(
+      &GetCSSPropertyHeight(),
+      inline_size.SurrogateFor(TextDirection::kLtr, WritingMode::kVerticalRl));
   EXPECT_EQ(&GetCSSPropertyWritingMode(),
-            GetCSSPropertyWebkitWritingMode().SurrogateFor(
-                TextDirection::kLtr, WritingMode::kHorizontalTb));
+            writing_mode.SurrogateFor(TextDirection::kLtr,
+                                      WritingMode::kHorizontalTb));
   EXPECT_FALSE(GetCSSPropertyWidth().SurrogateFor(TextDirection::kLtr,
                                                   WritingMode::kHorizontalTb));
 }
diff --git a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
index 262378e..2f7ce888 100644
--- a/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/shorthands/shorthands_custom.cc
@@ -21,6 +21,7 @@
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
 #include "third_party/blink/renderer/core/css/properties/css_parsing_utils.h"
 #include "third_party/blink/renderer/core/css/properties/longhand.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/properties/shorthands.h"
 #include "third_party/blink/renderer/core/css/style_property_serializer.h"
 #include "third_party/blink/renderer/core/css/zoom_adjusted_pixel_value.h"
diff --git a/third_party/blink/renderer/core/css/resolver/cascade_filter_test.cc b/third_party/blink/renderer/core/css/resolver/cascade_filter_test.cc
index 2869044..1ff9cb5 100644
--- a/third_party/blink/renderer/core/css/resolver/cascade_filter_test.cc
+++ b/third_party/blink/renderer/core/css/resolver/cascade_filter_test.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/css/resolver/cascade_filter.h"
 #include <gtest/gtest.h>
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc b/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc
index 733e5c2..0694d39 100644
--- a/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc
+++ b/third_party/blink/renderer/core/css/resolver/css_to_style_map.cc
@@ -395,12 +395,10 @@
     return StyleTimeline(ident->GetValueID());
   }
   if (auto* custom_ident = DynamicTo<CSSCustomIdentValue>(value)) {
-    return StyleTimeline(
-        StyleName(custom_ident->Value(), StyleName::Type::kCustomIdent));
+    return StyleTimeline(custom_ident->Value());
   }
   if (auto* string_value = DynamicTo<CSSStringValue>(value)) {
-    return StyleTimeline(StyleName(AtomicString(string_value->Value()),
-                                   StyleName::Type::kString));
+    return StyleTimeline(AtomicString(string_value->Value()));
   }
   const auto& scroll_value = To<cssvalue::CSSScrollValue>(value);
   const auto* axis_value = DynamicTo<CSSIdentifierValue>(scroll_value.Axis());
diff --git a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
index c25c810b..956498d 100644
--- a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
@@ -31,6 +31,7 @@
 #include "third_party/blink/renderer/core/css/resolver/style_adjuster.h"
 
 #include "third_party/blink/public/common/features.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
 #include "third_party/blink/renderer/core/css/style_change_reason.h"
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_test.cc b/third_party/blink/renderer/core/css/resolver/style_builder_test.cc
index b4da625..20a55e8 100644
--- a/third_party/blink/renderer/core/css/resolver/style_builder_test.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_builder_test.cc
@@ -7,6 +7,7 @@
 #include "third_party/blink/renderer/core/css/css_inherited_value.h"
 #include "third_party/blink/renderer/core/css/css_initial_value.h"
 #include "third_party/blink/renderer/core/css/css_test_helpers.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
 #include "third_party/blink/renderer/core/css/scoped_css_value.h"
diff --git a/third_party/blink/renderer/core/css/resolver/style_cascade.cc b/third_party/blink/renderer/core/css/resolver/style_cascade.cc
index 89bcb82..a0838c65 100644
--- a/third_party/blink/renderer/core/css/resolver/style_cascade.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_cascade.cc
@@ -25,6 +25,7 @@
 #include "third_party/blink/renderer/core/css/properties/css_parsing_utils.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/property_registry.h"
 #include "third_party/blink/renderer/core/css/resolver/cascade_expansion-inl.h"
 #include "third_party/blink/renderer/core/css/resolver/cascade_expansion.h"
diff --git a/third_party/blink/renderer/core/css/resolver/style_cascade_test.cc b/third_party/blink/renderer/core/css/resolver/style_cascade_test.cc
index 3a0fc2a..7ff6d91 100644
--- a/third_party/blink/renderer/core/css/resolver/style_cascade_test.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_cascade_test.cc
@@ -29,6 +29,7 @@
 #include "third_party/blink/renderer/core/css/parser/css_variable_parser.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_instances.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/properties/longhands/custom_property.h"
 #include "third_party/blink/renderer/core/css/property_registry.h"
 #include "third_party/blink/renderer/core/css/resolver/cascade_filter.h"
@@ -3095,7 +3096,7 @@
   EXPECT_EQ("rgb(0, 128, 0)", cascade.ComputedValue("color"));
 
   Color red(255, 0, 0);
-  const CSSProperty& color = GetCSSPropertyColor();
+  const css_longhand::Color& color = GetCSSPropertyColor();
   EXPECT_EQ(red, cascade.TakeStyle()->VisitedDependentColor(color));
 }
 
@@ -3113,7 +3114,8 @@
   EXPECT_EQ("rgb(0, 128, 0)", cascade.ComputedValue("outline-color"));
 
   Color red(255, 0, 0);
-  const CSSProperty& outline_color = GetCSSPropertyOutlineColor();
+  const css_longhand::OutlineColor& outline_color =
+      GetCSSPropertyOutlineColor();
   EXPECT_EQ(red, cascade.TakeStyle()->VisitedDependentColor(outline_color));
 }
 
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
index cfce4b8..a785155a 100644
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -61,6 +61,7 @@
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/match_result.h"
 #include "third_party/blink/renderer/core/css/resolver/scoped_style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/selector_filter_parent_scope.h"
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver_test.cc b/third_party/blink/renderer/core/css/resolver/style_resolver_test.cc
index 0484318..a47afe4 100644
--- a/third_party/blink/renderer/core/css/resolver/style_resolver_test.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver_test.cc
@@ -18,6 +18,7 @@
 #include "third_party/blink/renderer/core/css/css_value_list.h"
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/scoped_style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
 #include "third_party/blink/renderer/core/css/style_change_reason.h"
diff --git a/third_party/blink/renderer/core/css/selector_filter.cc b/third_party/blink/renderer/core/css/selector_filter.cc
index 9812f5c..1d7003c 100644
--- a/third_party/blink/renderer/core/css/selector_filter.cc
+++ b/third_party/blink/renderer/core/css/selector_filter.cc
@@ -31,6 +31,7 @@
 #include "third_party/blink/renderer/core/css/selector_filter.h"
 
 #include "third_party/blink/renderer/core/css/css_selector.h"
+#include "third_party/blink/renderer/core/css/style_rule.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
 
@@ -78,9 +79,16 @@
   }
 }
 
+void CollectDescendantCompoundSelectorIdentifierHashes(
+    const CSSSelector* selector,
+    CSSSelector::RelationType relation,
+    unsigned*& hash,
+    unsigned* end);
+
 inline void CollectDescendantSelectorIdentifierHashes(
     const CSSSelector& selector,
-    unsigned*& hash) {
+    unsigned*& hash,
+    unsigned* end) {
   switch (selector.Match()) {
     case CSSSelector::kId:
       if (!selector.Value().empty())
@@ -112,11 +120,70 @@
                             : attribute_name.LowerASCII();
       (*hash++) = lower_name.Impl()->ExistingHash() * kAttributeSalt;
     } break;
+    case CSSSelector::kPseudoClass:
+      switch (selector.GetPseudoType()) {
+        case CSSSelector::kPseudoIs:
+        case CSSSelector::kPseudoWhere:
+        case CSSSelector::kPseudoParent: {
+          // If we have a one-element :is(), :where() or &, treat it
+          // as if the given list was written out as a normal descendant.
+          const CSSSelector* selector_list = selector.SelectorListOrParent();
+          if (selector_list &&
+              CSSSelectorList::Next(*selector_list) == nullptr) {
+            CollectDescendantCompoundSelectorIdentifierHashes(
+                selector_list, CSSSelector::kDescendant, hash, end);
+          }
+          break;
+        }
+        default:
+          break;
+      }
+      break;
     default:
       break;
   }
 }
 
+void CollectDescendantCompoundSelectorIdentifierHashes(
+    const CSSSelector* selector,
+    CSSSelector::RelationType relation,
+    unsigned*& hash,
+    unsigned* end) {
+  // Skip the rightmost compound. It is handled quickly by the rule hashes.
+  bool skip_over_subselectors = true;
+  for (const CSSSelector* current = selector; current;
+       current = current->TagHistory()) {
+    // Only collect identifiers that match ancestors.
+    switch (relation) {
+      case CSSSelector::kSubSelector:
+        if (!skip_over_subselectors)
+          CollectDescendantSelectorIdentifierHashes(*current, hash, end);
+        break;
+      case CSSSelector::kDirectAdjacent:
+      case CSSSelector::kIndirectAdjacent:
+        skip_over_subselectors = true;
+        break;
+      case CSSSelector::kShadowSlot:
+      case CSSSelector::kDescendant:
+      case CSSSelector::kChild:
+      case CSSSelector::kUAShadow:
+      case CSSSelector::kShadowPart:
+        skip_over_subselectors = false;
+        CollectDescendantSelectorIdentifierHashes(*current, hash, end);
+        break;
+      case CSSSelector::kRelativeDescendant:
+      case CSSSelector::kRelativeChild:
+      case CSSSelector::kRelativeDirectAdjacent:
+      case CSSSelector::kRelativeIndirectAdjacent:
+        NOTREACHED();
+        break;
+    }
+    if (hash == end)
+      return;
+    relation = current->Relation();
+  }
+}
+
 }  // namespace
 
 void SelectorFilter::PushParentStackFrame(Element& parent) {
@@ -184,41 +251,12 @@
     unsigned maximum_identifier_count) {
   unsigned* hash = identifier_hashes;
   unsigned* end = identifier_hashes + maximum_identifier_count;
-  CSSSelector::RelationType relation = selector.Relation();
-  // Skip the rightmost compound. It is handled quickly by the rule hashes.
-  bool skip_over_subselectors = true;
-  for (const CSSSelector* current = selector.TagHistory(); current;
-       current = current->TagHistory()) {
-    // Only collect identifiers that match ancestors.
-    switch (relation) {
-      case CSSSelector::kSubSelector:
-        if (!skip_over_subselectors)
-          CollectDescendantSelectorIdentifierHashes(*current, hash);
-        break;
-      case CSSSelector::kDirectAdjacent:
-      case CSSSelector::kIndirectAdjacent:
-        skip_over_subselectors = true;
-        break;
-      case CSSSelector::kShadowSlot:
-      case CSSSelector::kDescendant:
-      case CSSSelector::kChild:
-      case CSSSelector::kUAShadow:
-      case CSSSelector::kShadowPart:
-        skip_over_subselectors = false;
-        CollectDescendantSelectorIdentifierHashes(*current, hash);
-        break;
-      case CSSSelector::kRelativeDescendant:
-      case CSSSelector::kRelativeChild:
-      case CSSSelector::kRelativeDirectAdjacent:
-      case CSSSelector::kRelativeIndirectAdjacent:
-        NOTREACHED();
-        break;
-    }
-    if (hash == end)
-      return;
-    relation = current->Relation();
+
+  CollectDescendantCompoundSelectorIdentifierHashes(
+      selector.TagHistory(), selector.Relation(), hash, end);
+  if (hash != end) {
+    *hash = 0;
   }
-  *hash = 0;
 }
 
 void SelectorFilter::ParentStackFrame::Trace(Visitor* visitor) const {
diff --git a/third_party/blink/renderer/core/css/style_engine_test.cc b/third_party/blink/renderer/core/css/style_engine_test.cc
index 89ee10f9..105e24cd 100644
--- a/third_party/blink/renderer/core/css/style_engine_test.cc
+++ b/third_party/blink/renderer/core/css/style_engine_test.cc
@@ -33,6 +33,7 @@
 #include "third_party/blink/renderer/core/css/parser/css_parser_context.h"
 #include "third_party/blink/renderer/core/css/parser/css_tokenizer.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/scoped_style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver_stats.h"
@@ -4349,6 +4350,108 @@
   EXPECT_EQ(1u, stats->rules_fast_rejected);
 }
 
+TEST_F(StyleEngineTest, FastRejectForNesting) {
+  GetDocument().body()->setInnerHTML(R"HTML(
+    <style>
+      .notfound {
+        & span {
+          color: pink;
+        }
+      }
+    </style>
+    <div>
+      <span id="child">not pink</span>
+    </div>
+  )HTML");
+
+  UpdateAllLifecyclePhases();
+
+  StyleEngine& engine = GetStyleEngine();
+  // Even if the Stats() were already enabled, the following resets it to 0.
+  engine.SetStatsEnabled(true);
+
+  StyleResolverStats* stats = engine.Stats();
+  ASSERT_TRUE(stats);
+  EXPECT_EQ(0u, stats->rules_fast_rejected);
+
+  Element* span = GetDocument().getElementById("child");
+  ASSERT_TRUE(span);
+  span->SetInlineStyleProperty(CSSPropertyID::kColor, "green");
+
+  GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kInStyleRecalc);
+  GetStyleEngine().RecalcStyle();
+
+  // Should fast reject "& span"
+  EXPECT_EQ(1u, stats->rules_fast_rejected);
+}
+
+TEST_F(StyleEngineTest, FastRejectForComplexSingleIs) {
+  GetDocument().body()->setInnerHTML(R"HTML(
+    <style>
+      :is(#parent .notfound) > span {
+        color: pink;
+      }
+    </style>
+    <div id="parent">
+      <span id="child">not pink</span>
+    </div>
+  )HTML");
+
+  UpdateAllLifecyclePhases();
+
+  StyleEngine& engine = GetStyleEngine();
+  // Even if the Stats() were already enabled, the following resets it to 0.
+  engine.SetStatsEnabled(true);
+
+  StyleResolverStats* stats = engine.Stats();
+  ASSERT_TRUE(stats);
+  EXPECT_EQ(0u, stats->rules_fast_rejected);
+
+  Element* span = GetDocument().getElementById("child");
+  ASSERT_TRUE(span);
+  span->SetInlineStyleProperty(CSSPropertyID::kColor, "green");
+
+  GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kInStyleRecalc);
+  GetStyleEngine().RecalcStyle();
+
+  // Should fast reject ":is(#parent .notfound) > span", even though it is not
+  // the same as "#parent .notfound > span".
+  EXPECT_EQ(1u, stats->rules_fast_rejected);
+}
+
+TEST_F(StyleEngineTest, NoFastRejectForMultipleIs) {
+  GetDocument().body()->setInnerHTML(R"HTML(
+    <style>
+      :is(#foo, #bar) span {
+        color: pink;
+      }
+    </style>
+    <div id="parent">
+      <span id="child">not pink</span>
+    </div>
+  )HTML");
+
+  UpdateAllLifecyclePhases();
+
+  StyleEngine& engine = GetStyleEngine();
+  // Even if the Stats() were already enabled, the following resets it to 0.
+  engine.SetStatsEnabled(true);
+
+  StyleResolverStats* stats = engine.Stats();
+  ASSERT_TRUE(stats);
+  EXPECT_EQ(0u, stats->rules_fast_rejected);
+
+  Element* span = GetDocument().getElementById("child");
+  ASSERT_TRUE(span);
+  span->SetInlineStyleProperty(CSSPropertyID::kColor, "green");
+
+  GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kInStyleRecalc);
+  GetStyleEngine().RecalcStyle();
+
+  // Should not try to fast reject due to the (multiple-element) selector list.
+  EXPECT_EQ(0u, stats->rules_fast_rejected);
+}
+
 TEST_F(StyleEngineTest, AudioUAStyleNameSpace) {
   GetDocument().body()->setInnerHTML(R"HTML(
     <audio id="html-audio"></audio>
diff --git a/third_party/blink/renderer/core/css/style_environment_variables_test.cc b/third_party/blink/renderer/core/css/style_environment_variables_test.cc
index 9f1298d..9922c24e 100644
--- a/third_party/blink/renderer/core/css/style_environment_variables_test.cc
+++ b/third_party/blink/renderer/core/css/style_environment_variables_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/css/style_environment_variables.h"
 
 #include "third_party/blink/renderer/core/css/document_style_environment_variables.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
diff --git a/third_party/blink/renderer/core/css/style_property_serializer.cc b/third_party/blink/renderer/core/css/style_property_serializer.cc
index 748a8203..d45ec0f6 100644
--- a/third_party/blink/renderer/core/css/style_property_serializer.cc
+++ b/third_party/blink/renderer/core/css/style_property_serializer.cc
@@ -37,6 +37,7 @@
 #include "third_party/blink/renderer/core/css/css_value_pool.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
 #include "third_party/blink/renderer/core/css/properties/longhand.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/core/style_property_shorthand.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
diff --git a/third_party/blink/renderer/core/css/style_property_shorthand_custom.cc b/third_party/blink/renderer/core/css/style_property_shorthand_custom.cc
index e6c4d47..0b7f858 100644
--- a/third_party/blink/renderer/core/css/style_property_shorthand_custom.cc
+++ b/third_party/blink/renderer/core/css/style_property_shorthand_custom.cc
@@ -19,6 +19,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/style_property_shorthand.h"
 
 namespace blink {
diff --git a/third_party/blink/renderer/core/css/style_recalc_change_test.cc b/third_party/blink/renderer/core/css/style_recalc_change_test.cc
index 746ceb0..56bfe522 100644
--- a/third_party/blink/renderer/core/css/style_recalc_change_test.cc
+++ b/third_party/blink/renderer/core/css/style_recalc_change_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/css/style_recalc_change.h"
 
 #include "third_party/blink/renderer/core/css/container_query_data.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/dom_token_list.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc b/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc
index 15cf97e..36bdba40 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc
+++ b/third_party/blink/renderer/core/display_lock/display_lock_context_test.cc
@@ -13,6 +13,7 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/style_change_reason.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_document_state.h"
diff --git a/third_party/blink/renderer/core/editing/editing_style.cc b/third_party/blink/renderer/core/editing/editing_style.cc
index 7e5704b..a969b3a 100644
--- a/third_party/blink/renderer/core/editing/editing_style.cc
+++ b/third_party/blink/renderer/core/editing/editing_style.cc
@@ -42,6 +42,8 @@
 #include "third_party/blink/renderer/core/css/font_size_functions.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
+#include "third_party/blink/renderer/core/css/properties/shorthands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/style_rule.h"
 #include "third_party/blink/renderer/core/dom/document.h"
diff --git a/third_party/blink/renderer/core/editing/serializers/serialization_test.cc b/third_party/blink/renderer/core/editing/serializers/serialization_test.cc
index c9d142a..52438ee 100644
--- a/third_party/blink/renderer/core/editing/serializers/serialization_test.cc
+++ b/third_party/blink/renderer/core/editing/serializers/serialization_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/editing/serializers/serialization.h"
 
 #include "testing/gmock/include/gmock/gmock-matchers.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/editing/position.h"
 #include "third_party/blink/renderer/core/editing/testing/editing_test_base.h"
diff --git a/third_party/blink/renderer/core/editing/substring_util.mm b/third_party/blink/renderer/core/editing/substring_util.mm
index 6dc25f21..4f542a5 100644
--- a/third_party/blink/renderer/core/editing/substring_util.mm
+++ b/third_party/blink/renderer/core/editing/substring_util.mm
@@ -34,6 +34,7 @@
 #import <Cocoa/Cocoa.h>
 
 #include "base/mac/foundation_util.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/node.h"
diff --git a/third_party/blink/renderer/core/exported/web_document_test.cc b/third_party/blink/renderer/core/exported/web_document_test.cc
index 5213ee6d..cb65baa 100644
--- a/third_party/blink/renderer/core/exported/web_document_test.cc
+++ b/third_party/blink/renderer/core/exported/web_document_test.cc
@@ -11,6 +11,7 @@
 #include "third_party/blink/public/common/origin_trials/scoped_test_origin_trial_policy.h"
 #include "third_party/blink/public/web/web_origin_trials.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/frame/frame_test_helpers.h"
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc
index 381b1e080..67c4464 100644
--- a/third_party/blink/renderer/core/exported/web_view_test.cc
+++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -84,6 +84,7 @@
 #include "third_party/blink/renderer/core/css/css_style_declaration.h"
 #include "third_party/blink/renderer/core/css/media_query_list_listener.h"
 #include "third_party/blink/renderer/core/css/media_query_matcher.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/focus_params.h"
diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_party/blink/renderer/core/fetch/fetch_manager.cc
index ba15f854..7c460e7 100644
--- a/third_party/blink/renderer/core/fetch/fetch_manager.cc
+++ b/third_party/blink/renderer/core/fetch/fetch_manager.cc
@@ -396,6 +396,9 @@
        response.CurrentRequestUrl().GetPath() == url_list_.back().GetPath() &&
        response.CurrentRequestUrl().Query() == url_list_.back().Query()));
 
+  auto response_type = response.GetType();
+  DCHECK_NE(response_type, FetchResponseType::kError);
+
   ScriptState* script_state = resolver_->GetScriptState();
   ScriptState::Scope scope(script_state);
 
@@ -416,12 +419,19 @@
   FetchResponseData* response_data =
       FetchResponseData::CreateWithBuffer(BodyStreamBuffer::Create(
           script_state, place_holder_body_, signal_, cached_metadata_handler_));
+  if (!execution_context_ || execution_context_->IsContextDestroyed() ||
+      response.GetType() == FetchResponseType::kError) {
+    // BodyStreamBuffer::Create() may run scripts and cancel this request.
+    // Do nothing in such a case.
+    // See crbug.com/1373785 for more details.
+    return;
+  }
 
+  DCHECK_EQ(response_type, response.GetType());
   DCHECK(!(network_utils::IsRedirectResponseCode(response_http_status_code_) &&
            HasNonEmptyLocationHeader(response_data->HeaderList()) &&
            fetch_request_data_->Redirect() != RedirectMode::kManual));
 
-  auto response_type = response.GetType();
   if (network_utils::IsRedirectResponseCode(response_http_status_code_) &&
       fetch_request_data_->Redirect() == RedirectMode::kManual) {
     response_type = network::mojom::FetchResponseType::kOpaqueRedirect;
diff --git a/third_party/blink/renderer/core/frame/local_frame_test.cc b/third_party/blink/renderer/core/frame/local_frame_test.cc
index 5ed81756..e93a023 100644
--- a/third_party/blink/renderer/core/frame/local_frame_test.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_test.cc
@@ -6,6 +6,7 @@
 
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/frame/settings.h"
 #include "third_party/blink/renderer/core/loader/empty_clients.h"
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
index 9ec5eaa..f4f8696e 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -61,6 +61,7 @@
 #include "third_party/blink/renderer/core/animation/document_animations.h"
 #include "third_party/blink/renderer/core/css/font_face_set_document.h"
 #include "third_party/blink/renderer/core/css/post_style_update_scope.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/style_change_reason.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_document_state.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h"
diff --git a/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc b/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
index 8cb3785f..36a690d 100644
--- a/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
+++ b/third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
@@ -11,6 +11,7 @@
 #include "third_party/blink/renderer/core/css/css_font_selector.h"
 #include "third_party/blink/renderer/core/css/css_value_id_mappings.h"
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
 #include "third_party/blink/renderer/core/css/style_request.h"
 #include "third_party/blink/renderer/core/dom/element.h"
diff --git a/third_party/blink/renderer/core/inspector/inspector_contrast.cc b/third_party/blink/renderer/core/inspector/inspector_contrast.cc
index d6651865..03bbd63 100644
--- a/third_party/blink/renderer/core/inspector/inspector_contrast.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_contrast.cc
@@ -9,6 +9,7 @@
 #include "third_party/blink/renderer/core/css/css_computed_style_declaration.h"
 #include "third_party/blink/renderer/core/css/css_gradient_value.h"
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/element.h"
 #include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
 #include "third_party/blink/renderer/core/dom/node.h"
diff --git a/third_party/blink/renderer/core/layout/api/line_layout_item.h b/third_party/blink/renderer/core/layout/api/line_layout_item.h
index f80026c..65ce411 100644
--- a/third_party/blink/renderer/core/layout/api/line_layout_item.h
+++ b/third_party/blink/renderer/core/layout/api/line_layout_item.h
@@ -232,7 +232,7 @@
 
   // TODO(dgrogan/eae): Needed for Color::current. Can we move this somewhere?
   Color ResolveColor(const ComputedStyle& style_to_use,
-                     const CSSProperty& color_property) {
+                     const Longhand& color_property) {
     return layout_object_->ResolveColor(style_to_use, color_property);
   }
 
diff --git a/third_party/blink/renderer/core/layout/layout_box.cc b/third_party/blink/renderer/core/layout/layout_box.cc
index 60ed093..cc3e20fa 100644
--- a/third_party/blink/renderer/core/layout/layout_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_box.cc
@@ -34,6 +34,7 @@
 #include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink.h"
 #include "third_party/blink/public/platform/web_theme_engine.h"
 #include "third_party/blink/public/strings/grit/blink_strings.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc
index a427f10..3d94730a 100644
--- a/third_party/blink/renderer/core/layout/layout_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -36,6 +36,7 @@
 #include "third_party/blink/public/mojom/scroll/scroll_into_view_params.mojom-blink.h"
 #include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
 #include "third_party/blink/renderer/core/animation/element_animations.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_adjuster.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/style_change_reason.h"
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h
index a6f6c9f7..d1c35bd 100644
--- a/third_party/blink/renderer/core/layout/layout_object.h
+++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -2742,11 +2742,11 @@
   }
 
   static inline Color ResolveColor(const ComputedStyle& style_to_use,
-                                   const CSSProperty& color_property) {
+                                   const Longhand& color_property) {
     return style_to_use.VisitedDependentColor(color_property);
   }
 
-  inline Color ResolveColor(const CSSProperty& color_property) const {
+  inline Color ResolveColor(const Longhand& color_property) const {
     NOT_DESTROYED();
     return StyleRef().VisitedDependentColor(color_property);
   }
diff --git a/third_party/blink/renderer/core/layout/layout_table_cell.cc b/third_party/blink/renderer/core/layout/layout_table_cell.cc
index 6dfbfa6d..7fa911d 100644
--- a/third_party/blink/renderer/core/layout/layout_table_cell.cc
+++ b/third_party/blink/renderer/core/layout/layout_table_cell.cc
@@ -26,6 +26,7 @@
 #include "third_party/blink/renderer/core/layout/layout_table_cell.h"
 
 #include "third_party/blink/renderer/core/css/css_property_value_set.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/editing/editing_utilities.h"
 #include "third_party/blink/renderer/core/html/html_table_cell_element.h"
 #include "third_party/blink/renderer/core/html_names.h"
@@ -576,10 +577,10 @@
 
   // For the start border, we need to check, in order of precedence:
   // (1) Our start border.
-  const CSSProperty& start_color_property =
-      ResolveBorderProperty(GetCSSPropertyBorderInlineStartColor());
-  const CSSProperty& end_color_property =
-      ResolveBorderProperty(GetCSSPropertyBorderInlineEndColor());
+  const Longhand& start_color_property = To<Longhand>(
+      ResolveBorderProperty(GetCSSPropertyBorderInlineStartColor()));
+  const Longhand& end_color_property =
+      To<Longhand>(ResolveBorderProperty(GetCSSPropertyBorderInlineEndColor()));
   CollapsedBorderValue result(BorderStartInTableDirection(),
                               ResolveColor(start_color_property),
                               kBorderPrecedenceCell);
@@ -710,10 +711,10 @@
 
   // For end border, we need to check, in order of precedence:
   // (1) Our end border.
-  const CSSProperty& start_color_property =
-      ResolveBorderProperty(GetCSSPropertyBorderInlineStartColor());
-  const CSSProperty& end_color_property =
-      ResolveBorderProperty(GetCSSPropertyBorderInlineEndColor());
+  const Longhand& start_color_property = To<Longhand>(
+      ResolveBorderProperty(GetCSSPropertyBorderInlineStartColor()));
+  const Longhand& end_color_property =
+      To<Longhand>(ResolveBorderProperty(GetCSSPropertyBorderInlineEndColor()));
   CollapsedBorderValue result = CollapsedBorderValue(
       BorderEndInTableDirection(), ResolveColor(end_color_property),
       kBorderPrecedenceCell);
@@ -836,10 +837,10 @@
 
   // For before border, we need to check, in order of precedence:
   // (1) Our before border.
-  const CSSProperty& before_color_property =
-      ResolveBorderProperty(GetCSSPropertyBorderBlockStartColor());
-  const CSSProperty& after_color_property =
-      ResolveBorderProperty(GetCSSPropertyBorderBlockEndColor());
+  const Longhand& before_color_property = To<Longhand>(
+      ResolveBorderProperty(GetCSSPropertyBorderBlockStartColor()));
+  const Longhand& after_color_property =
+      To<Longhand>(ResolveBorderProperty(GetCSSPropertyBorderBlockEndColor()));
   CollapsedBorderValue result = CollapsedBorderValue(
       StyleRef().BorderBeforeStyle(), StyleRef().BorderBeforeWidth(),
       ResolveColor(before_color_property), kBorderPrecedenceCell);
@@ -968,10 +969,10 @@
 
   // For after border, we need to check, in order of precedence:
   // (1) Our after border.
-  const CSSProperty& before_color_property =
-      ResolveBorderProperty(GetCSSPropertyBorderBlockStartColor());
-  const CSSProperty& after_color_property =
-      ResolveBorderProperty(GetCSSPropertyBorderBlockEndColor());
+  const Longhand& before_color_property = To<Longhand>(
+      ResolveBorderProperty(GetCSSPropertyBorderBlockStartColor()));
+  const Longhand& after_color_property =
+      To<Longhand>(ResolveBorderProperty(GetCSSPropertyBorderBlockEndColor()));
   CollapsedBorderValue result = CollapsedBorderValue(
       StyleRef().BorderAfterStyle(), StyleRef().BorderAfterWidth(),
       ResolveColor(after_color_property), kBorderPrecedenceCell);
diff --git a/third_party/blink/renderer/core/layout/layout_theme_test.cc b/third_party/blink/renderer/core/layout/layout_theme_test.cc
index ce6cde4..345101df 100644
--- a/third_party/blink/renderer/core/layout/layout_theme_test.cc
+++ b/third_party/blink/renderer/core/layout/layout_theme_test.cc
@@ -7,6 +7,7 @@
 #include <memory>
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
diff --git a/third_party/blink/renderer/core/layout/layout_tree_as_text.cc b/third_party/blink/renderer/core/layout/layout_tree_as_text.cc
index e77a369..6428380f 100644
--- a/third_party/blink/renderer/core/layout/layout_tree_as_text.cc
+++ b/third_party/blink/renderer/core/layout/layout_tree_as_text.cc
@@ -27,6 +27,7 @@
 
 #include "third_party/blink/renderer/core/css/css_property_value_set.h"
 #include "third_party/blink/renderer/core/css/css_value_id_mappings.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_context.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/pseudo_element.h"
@@ -487,7 +488,7 @@
     ts << "fragments:\n";
   }
   int fragment_index = 0;
-  for (const auto *fragment = &o.FirstFragment(); fragment;
+  for (const auto* fragment = &o.FirstFragment(); fragment;
        fragment = fragment->NextFragment(), ++fragment_index) {
     WriteIndent(ts, indent);
     if (has_fragments)
diff --git a/third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.cc b/third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.cc
index 9feadd71..bed69f1 100644
--- a/third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.cc
+++ b/third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/layout/ng/layout_ng_fieldset.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h"
 #include "third_party/blink/renderer/core/layout/layout_fieldset.h"
 #include "third_party/blink/renderer/core/layout/layout_object_factory.h"
diff --git a/third_party/blink/renderer/core/layout/ng/ng_anchor_query.cc b/third_party/blink/renderer/core/layout/ng/ng_anchor_query.cc
index ad0acce..ddab6d5 100644
--- a/third_party/blink/renderer/core/layout/ng/ng_anchor_query.cc
+++ b/third_party/blink/renderer/core/layout/ng/ng_anchor_query.cc
@@ -21,16 +21,9 @@
                                      AnchorValue flipped_y,
                                      WritingDirectionMode writing_direction,
                                      bool is_y_axis) {
-  if (is_y_axis) {
-    if (writing_direction.IsHorizontal()) {
-      DCHECK(!writing_direction.IsFlippedBlocks());
-      return y;
-    }
-    return writing_direction.IsLtr() ? y : flipped_y;
-  }
-  if (writing_direction.IsHorizontal())
-    return writing_direction.IsLtr() ? x : flipped_x;
-  return writing_direction.IsFlippedBlocks() ? flipped_x : x;
+  if (is_y_axis)
+    return writing_direction.IsFlippedY() ? flipped_y : y;
+  return writing_direction.IsFlippedX() ? flipped_x : x;
 }
 
 // The logical <anchor-side> keywords map to one of the physical keywords
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.cc b/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.cc
index 4441397f..b5edd253 100644
--- a/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.cc
+++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/frame/web_feature.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_block_node.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_constraint_space.h"
@@ -255,6 +256,23 @@
                                const bool is_collapsed)
     : table_border_(table_border), is_collapsed_(is_collapsed) {}
 
+Color NGTableBorders::BorderColor(const ComputedStyle* style,
+                                  EdgeSide edge_side) {
+  switch (edge_side) {
+    case EdgeSide::kLeft:
+      return style->VisitedDependentColor(GetCSSPropertyBorderLeftColor());
+    case EdgeSide::kRight:
+      return style->VisitedDependentColor(GetCSSPropertyBorderRightColor());
+    case EdgeSide::kTop:
+      return style->VisitedDependentColor(GetCSSPropertyBorderTopColor());
+    case EdgeSide::kBottom:
+      return style->VisitedDependentColor(GetCSSPropertyBorderBottomColor());
+    case EdgeSide::kDoNotFill:
+      NOTREACHED();
+      return style->VisitedDependentColor(GetCSSPropertyBorderBottomColor());
+  }
+}
+
 #if DCHECK_IS_ON()
 String NGTableBorders::DumpEdges() {
   if (edges_per_row_ == 0)
diff --git a/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h b/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h
index a431972..290e60d5 100644
--- a/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h
+++ b/third_party/blink/renderer/core/layout/ng/table/ng_table_borders.h
@@ -71,7 +71,6 @@
   bool operator==(const NGTableBorders& other) const;
 #endif
 
-
   enum class EdgeSource { kNone, kCell, kRow, kSection, kColumn, kTable };
 
   // Specifies which side of CSS style defines the edge.
@@ -141,21 +140,7 @@
     return border_style;
   }
 
-  static Color BorderColor(const ComputedStyle* style, EdgeSide edge_side) {
-    switch (edge_side) {
-      case EdgeSide::kLeft:
-        return style->VisitedDependentColor(GetCSSPropertyBorderLeftColor());
-      case EdgeSide::kRight:
-        return style->VisitedDependentColor(GetCSSPropertyBorderRightColor());
-      case EdgeSide::kTop:
-        return style->VisitedDependentColor(GetCSSPropertyBorderTopColor());
-      case EdgeSide::kBottom:
-        return style->VisitedDependentColor(GetCSSPropertyBorderBottomColor());
-      case EdgeSide::kDoNotFill:
-        NOTREACHED();
-        return style->VisitedDependentColor(GetCSSPropertyBorderBottomColor());
-    }
-  }
+  static Color BorderColor(const ComputedStyle* style, EdgeSide edge_side);
 
   static bool HasBorder(const ComputedStyle* style) {
     if (!style)
diff --git a/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc b/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc
index f1129de..ca021703 100644
--- a/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc
+++ b/third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.cc
@@ -28,6 +28,7 @@
 
 #include "third_party/blink/renderer/core/layout/svg/svg_layout_tree_as_text.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/layout/api/line_layout_svg_inline_text.h"
 #include "third_party/blink/renderer/core/layout/layout_tree_as_text.h"
 #include "third_party/blink/renderer/core/layout/line/inline_text_box.h"
@@ -245,7 +246,7 @@
 static bool WriteSVGPaint(WTF::TextStream& ts,
                           const LayoutObject& object,
                           const SVGPaint& paint,
-                          const CSSProperty& property,
+                          const Longhand& property,
                           const char* paint_name) {
   TextStreamSeparator s(" ");
   const ComputedStyle& style = object.StyleRef();
diff --git a/third_party/blink/renderer/core/page/link_highlight.cc b/third_party/blink/renderer/core/page/link_highlight.cc
index 56dd7ea9..3c5a2b5 100644
--- a/third_party/blink/renderer/core/page/link_highlight.cc
+++ b/third_party/blink/renderer/core/page/link_highlight.cc
@@ -11,6 +11,7 @@
 #include "cc/animation/animation_timeline.h"
 #include "cc/layers/picture_layer.h"
 #include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/layout/layout_object.h"
diff --git a/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor_test.cc b/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor_test.cc
index b439a50..e330573 100644
--- a/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor_test.cc
@@ -7,6 +7,7 @@
 #include "third_party/blink/public/web/web_script_source.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
 #include "third_party/blink/renderer/core/css/css_style_declaration.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
 #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
 #include "third_party/blink/renderer/core/html/html_anchor_element.h"
diff --git a/third_party/blink/renderer/core/paint/box_decoration_data.h b/third_party/blink/renderer/core/paint/box_decoration_data.h
index 63177b4..7d8cc26 100644
--- a/third_party/blink/renderer/core/paint/box_decoration_data.h
+++ b/third_party/blink/renderer/core/paint/box_decoration_data.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_BOX_DECORATION_DATA_H_
 
 #include "third_party/abseil-cpp/absl/types/optional.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/layout/background_bleed_avoidance.h"
 #include "third_party/blink/renderer/core/layout/layout_box.h"
 #include "third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h"
diff --git a/third_party/blink/renderer/core/paint/highlight_painting_utils.cc b/third_party/blink/renderer/core/paint/highlight_painting_utils.cc
index 1affd17..198703f 100644
--- a/third_party/blink/renderer/core/paint/highlight_painting_utils.cc
+++ b/third_party/blink/renderer/core/paint/highlight_painting_utils.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/paint/highlight_painting_utils.h"
 
 #include "components/shared_highlighting/core/common/fragment_directives_constants.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/style_engine.h"
 #include "third_party/blink/renderer/core/css/style_request.h"
@@ -284,8 +285,8 @@
   }
   if (pseudo_style) {
     bool is_current_color;
-    Color result =
-        pseudo_style->VisitedDependentColor(property, &is_current_color);
+    Color result = pseudo_style->VisitedDependentColor(To<Longhand>(property),
+                                                       &is_current_color);
     if (!is_current_color)
       return result;
   }
diff --git a/third_party/blink/renderer/core/paint/highlight_painting_utils_test.cc b/third_party/blink/renderer/core/paint/highlight_painting_utils_test.cc
index 4fa96a1..1146b80 100644
--- a/third_party/blink/renderer/core/paint/highlight_painting_utils_test.cc
+++ b/third_party/blink/renderer/core/paint/highlight_painting_utils_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/paint/highlight_painting_utils.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/editing/dom_selection.h"
diff --git a/third_party/blink/renderer/core/paint/html_canvas_painter.cc b/third_party/blink/renderer/core/paint/html_canvas_painter.cc
index eb2335c..02f4330 100644
--- a/third_party/blink/renderer/core/paint/html_canvas_painter.cc
+++ b/third_party/blink/renderer/core/paint/html_canvas_painter.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/paint/html_canvas_painter.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h"
 #include "third_party/blink/renderer/core/html/canvas/html_canvas_element.h"
 #include "third_party/blink/renderer/core/layout/layout_html_canvas.h"
diff --git a/third_party/blink/renderer/core/paint/inline_box_painter_base.cc b/third_party/blink/renderer/core/paint/inline_box_painter_base.cc
index 91028d7..264b77a 100644
--- a/third_party/blink/renderer/core/paint/inline_box_painter_base.cc
+++ b/third_party/blink/renderer/core/paint/inline_box_painter_base.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/paint/inline_box_painter_base.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/paint/background_image_geometry.h"
 #include "third_party/blink/renderer/core/paint/box_painter_base.h"
 #include "third_party/blink/renderer/core/paint/nine_piece_image_painter.h"
diff --git a/third_party/blink/renderer/core/paint/link_highlight_impl.cc b/third_party/blink/renderer/core/paint/link_highlight_impl.cc
index ba6c950..31d6315 100644
--- a/third_party/blink/renderer/core/paint/link_highlight_impl.cc
+++ b/third_party/blink/renderer/core/paint/link_highlight_impl.cc
@@ -37,6 +37,7 @@
 #include "cc/trees/target_property.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/web/blink.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h"
 #include "third_party/blink/renderer/core/dom/node.h"
 #include "third_party/blink/renderer/core/exported/web_view_impl.h"
diff --git a/third_party/blink/renderer/core/paint/ng/ng_text_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_text_painter.cc
index 58cf2215..9b29196f 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_text_painter.cc
+++ b/third_party/blink/renderer/core/paint/ng/ng_text_painter.cc
@@ -8,6 +8,7 @@
 #include "base/types/optional_util.h"
 #include "cc/paint/paint_flags.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/frame/settings.h"
 #include "third_party/blink/renderer/core/layout/layout_object_inlines.h"
 #include "third_party/blink/renderer/core/layout/ng/inline/ng_fragment_item.h"
diff --git a/third_party/blink/renderer/core/paint/paint_auto_dark_mode.h b/third_party/blink/renderer/core/paint/paint_auto_dark_mode.h
index 086c177..ed1a49a 100644
--- a/third_party/blink/renderer/core/paint/paint_auto_dark_mode.h
+++ b/third_party/blink/renderer/core/paint/paint_auto_dark_mode.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_PAINT_AUTO_DARK_MODE_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_context.h"
 
diff --git a/third_party/blink/renderer/core/paint/svg_object_painter.cc b/third_party/blink/renderer/core/paint/svg_object_painter.cc
index d595c3e..735181c0 100644
--- a/third_party/blink/renderer/core/paint/svg_object_painter.cc
+++ b/third_party/blink/renderer/core/paint/svg_object_painter.cc
@@ -90,8 +90,9 @@
     }
   }
   if (paint.HasColor()) {
-    const CSSProperty& property =
-        apply_to_fill ? GetCSSPropertyFill() : GetCSSPropertyStroke();
+    const Longhand& property = apply_to_fill
+                                   ? To<Longhand>(GetCSSPropertyFill())
+                                   : To<Longhand>(GetCSSPropertyStroke());
     const Color color = style.VisitedDependentColor(property);
     flags.setColor(ScaleAlpha(color.Rgb(), alpha));
     flags.setShader(nullptr);
diff --git a/third_party/blink/renderer/core/paint/text_painter_base.cc b/third_party/blink/renderer/core/paint/text_painter_base.cc
index 80a7c389..8606aed 100644
--- a/third_party/blink/renderer/core/paint/text_painter_base.cc
+++ b/third_party/blink/renderer/core/paint/text_painter_base.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/core/paint/text_painter_base.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/layout/text_decoration_offset_base.h"
 #include "third_party/blink/renderer/core/paint/applied_decoration_painter.h"
diff --git a/third_party/blink/renderer/core/permissions_policy/layout_animations_policy.cc b/third_party/blink/renderer/core/permissions_policy/layout_animations_policy.cc
index 34e1c28..7ab1031 100644
--- a/third_party/blink/renderer/core/permissions_policy/layout_animations_policy.cc
+++ b/third_party/blink/renderer/core/permissions_policy/layout_animations_policy.cc
@@ -7,6 +7,7 @@
 #include "third_party/blink/public/common/permissions_policy/document_policy_features.h"
 #include "third_party/blink/public/mojom/permissions_policy/document_policy_feature.mojom-blink.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
 
diff --git a/third_party/blink/renderer/core/scroll/scrollable_area.cc b/third_party/blink/renderer/core/scroll/scrollable_area.cc
index 9f2e21ba8..f161d1a0 100644
--- a/third_party/blink/renderer/core/scroll/scrollable_area.cc
+++ b/third_party/blink/renderer/core/scroll/scrollable_area.cc
@@ -38,6 +38,7 @@
 #include "cc/input/snap_selection_strategy.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/core/animation/scroll_timeline.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/local_frame_view.h"
 #include "third_party/blink/renderer/core/frame/visual_viewport.h"
@@ -79,7 +80,8 @@
 }
 
 // static
-float ScrollableArea::DirectionBasedScrollDelta(ui::ScrollGranularity granularity) {
+float ScrollableArea::DirectionBasedScrollDelta(
+    ui::ScrollGranularity granularity) {
   return (granularity == ui::ScrollGranularity::kScrollByPercentage)
              ? cc::kPercentDeltaForDirectionalScroll
              : 1;
@@ -195,8 +197,9 @@
   }
 }
 
-ScrollOffset ScrollableArea::ResolveScrollDelta(ui::ScrollGranularity granularity,
-                                                const ScrollOffset& delta) {
+ScrollOffset ScrollableArea::ResolveScrollDelta(
+    ui::ScrollGranularity granularity,
+    const ScrollOffset& delta) {
   gfx::SizeF step(ScrollStep(granularity, kHorizontalScrollbar),
                   ScrollStep(granularity, kVerticalScrollbar));
 
diff --git a/third_party/blink/renderer/core/style/computed_style.cc b/third_party/blink/renderer/core/style/computed_style.cc
index 7fb46a8..3af4f1ff 100644
--- a/third_party/blink/renderer/core/style/computed_style.cc
+++ b/third_party/blink/renderer/core/style/computed_style.cc
@@ -44,6 +44,7 @@
 #include "third_party/blink/renderer/core/css/properties/computed_style_utils.h"
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
 #include "third_party/blink/renderer/core/css/properties/longhand.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
@@ -2121,14 +2122,25 @@
   return visited_link ? InternalVisitedTextFillColor() : TextFillColor();
 }
 
-blink::Color ComputedStyle::VisitedDependentColor(
-    const CSSProperty& color_property,
-    bool* is_current_color) const {
+bool ComputedStyle::HasBackground() const {
+  blink::Color color = VisitedDependentColor(GetCSSPropertyBackgroundColor());
+  if (color.Alpha())
+    return true;
+  // When background color animation is running on the compositor thread, we
+  // need to trigger repaint even if the background is transparent to collect
+  // artifacts in order to run the animation on the compositor.
+  if (RuntimeEnabledFeatures::CompositeBGColorAnimationEnabled() &&
+      HasCurrentBackgroundColorAnimation())
+    return true;
+  return HasBackgroundImage();
+}
+
+Color ComputedStyle::VisitedDependentColor(const Longhand& color_property,
+                                           bool* is_current_color) const {
   DCHECK(!color_property.IsVisited());
 
   blink::Color unvisited_color =
-      To<Longhand>(color_property)
-          .ColorIncludingFallback(false, *this, is_current_color);
+      color_property.ColorIncludingFallback(false, *this, is_current_color);
   if (InsideLink() != EInsideLink::kInsideVisitedLink)
     return unvisited_color;
 
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h
index c0bc3f3..5fef6088 100644
--- a/third_party/blink/renderer/core/style/computed_style.h
+++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -93,6 +93,7 @@
 class Font;
 class Hyphenation;
 class LayoutTheme;
+class Longhand;
 class NinePieceImage;
 class ShadowList;
 class ShapeValue;
@@ -2216,22 +2217,12 @@
       return false;
     return ShadowListHasCurrentColor(BoxShadow());
   }
-  bool HasBackground() const {
-    blink::Color color = VisitedDependentColor(GetCSSPropertyBackgroundColor());
-    if (color.Alpha())
-      return true;
-    // When background color animation is running on the compositor thread, we
-    // need to trigger repaint even if the background is transparent to collect
-    // artifacts in order to run the animation on the compositor.
-    if (RuntimeEnabledFeatures::CompositeBGColorAnimationEnabled() &&
-        HasCurrentBackgroundColorAnimation())
-      return true;
-    return HasBackgroundImage();
-  }
+
+  CORE_EXPORT bool HasBackground() const;
 
   // Color utility functions.
   CORE_EXPORT blink::Color VisitedDependentColor(
-      const CSSProperty& color_property,
+      const Longhand& color_property,
       bool* is_current_color = nullptr) const;
 
   // -webkit-appearance utility functions.
diff --git a/third_party/blink/renderer/core/style/computed_style_test.cc b/third_party/blink/renderer/core/style/computed_style_test.cc
index f4647879..3ba529e5 100644
--- a/third_party/blink/renderer/core/style/computed_style_test.cc
+++ b/third_party/blink/renderer/core/style/computed_style_test.cc
@@ -17,6 +17,7 @@
 #include "third_party/blink/renderer/core/css/css_value_list.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/property_registry.h"
 #include "third_party/blink/renderer/core/css/resolver/style_adjuster.h"
 #include "third_party/blink/renderer/core/css/resolver/style_cascade.h"
@@ -1115,9 +1116,10 @@
   };
 
   for (const auto& test : tests) {
-    for (const auto* property :
-         {&GetCSSPropertyBorderTopWidth(), &GetCSSPropertyOutlineWidth(),
-          &GetCSSPropertyColumnRuleWidth()}) {
+    for (const Longhand* property :
+         {static_cast<const Longhand*>(&GetCSSPropertyBorderTopWidth()),
+          static_cast<const Longhand*>(&GetCSSPropertyOutlineWidth()),
+          static_cast<const Longhand*>(&GetCSSPropertyColumnRuleWidth())}) {
       const Longhand& longhand = To<Longhand>(*property);
       auto* computed_value = longhand.CSSValueFromComputedStyleInternal(
           *test.style, nullptr /* layout_object */,
@@ -1193,11 +1195,11 @@
   };
 
   for (const auto& test : tests) {
-    for (const auto* property :
-         {&GetCSSPropertyBorderTopWidth(), &GetCSSPropertyOutlineWidth(),
-          &GetCSSPropertyColumnRuleWidth()}) {
-      const Longhand& longhand = To<Longhand>(*property);
-      auto* computed_value = longhand.CSSValueFromComputedStyleInternal(
+    for (const Longhand* longhand :
+         {static_cast<const Longhand*>(&GetCSSPropertyBorderTopWidth()),
+          static_cast<const Longhand*>(&GetCSSPropertyOutlineWidth()),
+          static_cast<const Longhand*>(&GetCSSPropertyColumnRuleWidth())}) {
+      auto* computed_value = longhand->CSSValueFromComputedStyleInternal(
           *test.style, nullptr /* layout_object */,
           false /* allow_visited_style */);
       ASSERT_NE(computed_value, nullptr);
diff --git a/third_party/blink/renderer/core/style/style_timeline.h b/third_party/blink/renderer/core/style/style_timeline.h
index 4ec4f2c..80e7adfd 100644
--- a/third_party/blink/renderer/core/style/style_timeline.h
+++ b/third_party/blink/renderer/core/style/style_timeline.h
@@ -46,7 +46,7 @@
   };
 
   explicit StyleTimeline(CSSValueID keyword) : data_(keyword) {}
-  explicit StyleTimeline(StyleName name) : data_(name) {}
+  explicit StyleTimeline(const AtomicString& name) : data_(name) {}
   explicit StyleTimeline(const ScrollData& scroll_data) : data_(scroll_data) {}
 
   bool operator==(const StyleTimeline& other) const {
@@ -57,15 +57,15 @@
   }
 
   bool IsKeyword() const { return absl::holds_alternative<CSSValueID>(data_); }
-  bool IsName() const { return absl::holds_alternative<StyleName>(data_); }
+  bool IsName() const { return absl::holds_alternative<AtomicString>(data_); }
   bool IsScroll() const { return absl::holds_alternative<ScrollData>(data_); }
 
   const CSSValueID& GetKeyword() const { return absl::get<CSSValueID>(data_); }
-  const StyleName& GetName() const { return absl::get<StyleName>(data_); }
+  const AtomicString& GetName() const { return absl::get<AtomicString>(data_); }
   const ScrollData& GetScroll() const { return absl::get<ScrollData>(data_); }
 
  private:
-  absl::variant<CSSValueID, StyleName, ScrollData> data_;
+  absl::variant<CSSValueID, AtomicString, ScrollData> data_;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/svg/svg_animated_color.cc b/third_party/blink/renderer/core/svg/svg_animated_color.cc
index 615ac11e..b45282f 100644
--- a/third_party/blink/renderer/core/svg/svg_animated_color.cc
+++ b/third_party/blink/renderer/core/svg/svg_animated_color.cc
@@ -21,6 +21,7 @@
 
 #include "third_party/blink/renderer/core/css/css_color.h"
 #include "third_party/blink/renderer/core/css/parser/css_parser.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/svg/animation/smil_animation_effect_parameters.h"
 #include "third_party/blink/renderer/core/svg/color_distance.h"
diff --git a/third_party/blink/renderer/core/svg/svg_element_test.cc b/third_party/blink/renderer/core/svg/svg_element_test.cc
index 75241ea..2c41110 100644
--- a/third_party/blink/renderer/core/svg/svg_element_test.cc
+++ b/third_party/blink/renderer/core/svg/svg_element_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/core/svg/svg_element.h"
 
 #include "third_party/blink/renderer/core/css/css_test_helpers.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/html/html_element.h"
 #include "third_party/blink/renderer/core/svg/svg_element_rare_data.h"
diff --git a/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc b/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc
index e12aecb0..78c08e3 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.cc
@@ -19,6 +19,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_fe_diffuse_lighting_element.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
diff --git a/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc b/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc
index 160551a60..1ecd11b 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.cc
@@ -19,6 +19,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_fe_drop_shadow_element.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
diff --git a/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc b/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc
index 3598aaa1..0247814 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_fe_flood_element.cc
@@ -20,6 +20,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_fe_flood_element.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/svg_names.h"
diff --git a/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc b/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc
index c0162f9a..65f00884 100644
--- a/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.cc
@@ -21,6 +21,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_fe_specular_lighting_element.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/svg/graphics/filters/svg_filter_builder.h"
diff --git a/third_party/blink/renderer/core/svg/svg_stop_element.cc b/third_party/blink/renderer/core/svg/svg_stop_element.cc
index 67e115c..b1618c1 100644
--- a/third_party/blink/renderer/core/svg/svg_stop_element.cc
+++ b/third_party/blink/renderer/core/svg/svg_stop_element.cc
@@ -20,6 +20,7 @@
 
 #include "third_party/blink/renderer/core/svg/svg_stop_element.h"
 
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
 #include "third_party/blink/renderer/core/style/computed_style.h"
 #include "third_party/blink/renderer/core/svg/svg_animated_number.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
index 98bb793..3e18eef 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
@@ -35,6 +35,7 @@
 #include "third_party/blink/renderer/core/aom/accessible_node.h"
 #include "third_party/blink/renderer/core/css/counter_style_map.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h"
 #include "third_party/blink/renderer/core/dom/element_traversal.h"
 #include "third_party/blink/renderer/core/dom/node_computed_style.h"
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
index c531832..bc7188a 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -44,6 +44,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/v8_image_bitmap_options.h"
 #include "third_party/blink/renderer/core/aom/accessible_node.h"
 #include "third_party/blink/renderer/core/css/css_resolution_units.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/display_lock/display_lock_utilities.h"
 #include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
 #include "third_party/blink/renderer/core/dom/layout_tree_builder_traversal.h"
diff --git a/third_party/blink/renderer/modules/credentialmanagement/credentials_container.cc b/third_party/blink/renderer/modules/credentialmanagement/credentials_container.cc
index 519d688..c58a4c0b 100644
--- a/third_party/blink/renderer/modules/credentialmanagement/credentials_container.cc
+++ b/third_party/blink/renderer/modules/credentialmanagement/credentials_container.cc
@@ -954,6 +954,26 @@
     return false;
   }
 
+  // Currently discoverable credentials on Android do not support the payment
+  // extension. As such, we only allow residentKey=preferred, and later
+  // internally map it to discouraged to receive a non-discoverable credential.
+  //
+  // We do not allow developers to directly specify residentKey=discouraged for
+  // Android, in order to align behavior with desktop platforms.
+  //
+  // TODO(crbug.com/1393662): Remove Android-specific code once OS-level support
+  // is available.
+#if BUILDFLAG(IS_ANDROID)
+  if (!authenticator->hasResidentKey() ||
+      authenticator->residentKey() != "preferred") {
+    resolver->Reject(MakeGarbageCollected<DOMException>(
+        DOMExceptionCode::kNotSupportedError,
+        "A resident key must be 'preferred' for 'payment' extension "
+        "('required' is not supported on Android at this time: "
+        "https://crbug.com/1393662)."));
+    return false;
+  }
+#else
   if ((!authenticator->hasResidentKey() &&
        !authenticator->hasRequireResidentKey()) ||
       (authenticator->hasResidentKey() &&
@@ -967,6 +987,7 @@
         "extension."));
     return false;
   }
+#endif
 
   if (!authenticator->hasAuthenticatorAttachment() ||
       authenticator->authenticatorAttachment() != "platform") {
diff --git a/third_party/blink/renderer/modules/csspaint/nativepaint/background_color_paint_definition.cc b/third_party/blink/renderer/modules/csspaint/nativepaint/background_color_paint_definition.cc
index 54f7562..188583ca 100644
--- a/third_party/blink/renderer/modules/csspaint/nativepaint/background_color_paint_definition.cc
+++ b/third_party/blink/renderer/modules/csspaint/nativepaint/background_color_paint_definition.cc
@@ -14,6 +14,7 @@
 #include "third_party/blink/renderer/core/css/cssom/paint_worklet_input.h"
 #include "third_party/blink/renderer/core/css/cssom/paint_worklet_style_property_map.h"
 #include "third_party/blink/renderer/core/css/cssom/style_property_map_read_only.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
 #include "third_party/blink/renderer/core/layout/layout_object.h"
diff --git a/third_party/blink/renderer/modules/csspaint/nativepaint/box_shadow_paint_definition.cc b/third_party/blink/renderer/modules/csspaint/nativepaint/box_shadow_paint_definition.cc
index b523eeaa..27afec88 100644
--- a/third_party/blink/renderer/modules/csspaint/nativepaint/box_shadow_paint_definition.cc
+++ b/third_party/blink/renderer/modules/csspaint/nativepaint/box_shadow_paint_definition.cc
@@ -7,6 +7,7 @@
 #include "third_party/blink/renderer/core/animation/css_color_interpolation_type.h"
 #include "third_party/blink/renderer/core/animation/element_animations.h"
 #include "third_party/blink/renderer/core/css/css_color.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/layout/layout_object.h"
 
diff --git a/third_party/blink/renderer/modules/csspaint/nativepaint/clip_path_paint_definition.cc b/third_party/blink/renderer/modules/csspaint/nativepaint/clip_path_paint_definition.cc
index 08c09a05..78e9358b2 100644
--- a/third_party/blink/renderer/modules/csspaint/nativepaint/clip_path_paint_definition.cc
+++ b/third_party/blink/renderer/modules/csspaint/nativepaint/clip_path_paint_definition.cc
@@ -13,6 +13,7 @@
 #include "third_party/blink/renderer/core/css/css_to_length_conversion_data.h"
 #include "third_party/blink/renderer/core/css/cssom/paint_worklet_deferred_image.h"
 #include "third_party/blink/renderer/core/css/cssom/paint_worklet_input.h"
+#include "third_party/blink/renderer/core/css/properties/longhands.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
 #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h"
diff --git a/third_party/blink/renderer/platform/text/writing_direction_mode.h b/third_party/blink/renderer/platform/text/writing_direction_mode.h
index 262f1afc..9c6d33e 100644
--- a/third_party/blink/renderer/platform/text/writing_direction_mode.h
+++ b/third_party/blink/renderer/platform/text/writing_direction_mode.h
@@ -51,6 +51,10 @@
     return IsFlippedLinesWritingMode(writing_mode_);
   }
 
+  // Returns whether x/y is flipped.
+  bool IsFlippedX() const;
+  bool IsFlippedY() const;
+
   //
   // Functions for both inline and block directions.
   //
@@ -69,6 +73,20 @@
   TextDirection direction_;
 };
 
+inline bool WritingDirectionMode::IsFlippedX() const {
+  if (IsHorizontal())
+    return IsRtl();
+  return IsFlippedBlocks();
+}
+
+inline bool WritingDirectionMode::IsFlippedY() const {
+  if (IsHorizontal()) {
+    DCHECK(!IsFlippedBlocks());
+    return false;
+  }
+  return IsRtl();
+}
+
 PLATFORM_EXPORT std::ostream& operator<<(std::ostream&,
                                          const WritingDirectionMode&);
 
diff --git a/third_party/blink/renderer/platform/text/writing_mode_utils_test.cc b/third_party/blink/renderer/platform/text/writing_mode_utils_test.cc
index 635df33..47c94c1 100644
--- a/third_party/blink/renderer/platform/text/writing_mode_utils_test.cc
+++ b/third_party/blink/renderer/platform/text/writing_mode_utils_test.cc
@@ -298,6 +298,25 @@
   EXPECT_EQ(kLeft, logical_values.BlockEnd());
 }
 
+TEST(WritingModeUtilsTest, IsFlippedXY) {
+  struct TestData {
+    WritingDirectionMode writing_direction;
+    bool is_flipped_x;
+    bool is_flipped_y;
+  } test_data_list[] = {
+      {{WritingMode::kHorizontalTb, TextDirection::kLtr}, false, false},
+      {{WritingMode::kHorizontalTb, TextDirection::kRtl}, true, false},
+      {{WritingMode::kVerticalRl, TextDirection::kLtr}, true, false},
+      {{WritingMode::kVerticalRl, TextDirection::kRtl}, true, true},
+      {{WritingMode::kVerticalLr, TextDirection::kLtr}, false, false},
+      {{WritingMode::kVerticalLr, TextDirection::kRtl}, false, true},
+  };
+  for (const TestData& data : test_data_list) {
+    EXPECT_EQ(data.writing_direction.IsFlippedX(), data.is_flipped_x);
+    EXPECT_EQ(data.writing_direction.IsFlippedY(), data.is_flipped_y);
+  }
+}
+
 }  // namespace
 
 }  // namespace blink
diff --git a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
index a1e67669..54e463d 100644
--- a/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
+++ b/third_party/blink/web_tests/FlagExpectations/disable-layout-ng
@@ -228,13 +228,6 @@
 crbug.com/626703 external/wpt/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.html [ Crash ]
 crbug.com/626703 external/wpt/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.html [ Crash ]
 crbug.com/626703 external/wpt/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.html [ Crash ]
-crbug.com/626703 external/wpt/permissions-policy/bluetooth-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html [ Crash ]
-crbug.com/626703 external/wpt/permissions-policy/bluetooth-allowed-by-permissions-policy-attribute.https.sub.html [ Crash ]
-crbug.com/626703 external/wpt/permissions-policy/bluetooth-allowed-by-permissions-policy.https.sub.html [ Crash ]
-crbug.com/626703 external/wpt/permissions-policy/bluetooth-default-permissions-policy.https.sub.html [ Crash ]
-crbug.com/626703 external/wpt/permissions-policy/bluetooth-disabled-by-permissions-policy.https.sub.html [ Crash ]
-crbug.com/626703 external/wpt/permissions-policy/reporting/bluetooth-report-only.https.html [ Crash ]
-crbug.com/626703 external/wpt/permissions-policy/reporting/bluetooth-reporting.https.html [ Crash ]
 crbug.com/626703 external/wpt/serial/serialPort_close.https.any.html [ Timeout ]
 crbug.com/626703 external/wpt/serial/serialPort_close.https.any.worker.html [ Timeout ]
 crbug.com/626703 external/wpt/serial/serialPort_getSignals.https.any.html [ Timeout ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 9beb405bb..8a3f43d 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -1994,7 +1994,6 @@
 crbug.com/1170052 external/wpt/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-audio-is-silence.https.html [ Pass Timeout ]
 crbug.com/1174937 [ Mac10.15 ] virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStream-clone.https.html [ Crash ]
 crbug.com/1174937 [ Mac11 ] virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStream-clone.https.html [ Crash ]
-crbug.com/1174937 [ Win10.20h2 ] virtual/feature-policy-permissions/external/wpt/mediacapture-streams/MediaStream-clone.https.html [ Crash ]
 crbug.com/1174937 external/wpt/mediacapture-streams/MediaStream-clone.https.html [ Crash ]
 
 
@@ -3232,13 +3231,6 @@
 crbug.com/626703 [ Linux ] external/wpt/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.html [ Crash ]
 crbug.com/626703 [ Linux ] external/wpt/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.html [ Crash ]
 crbug.com/626703 [ Linux ] external/wpt/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.html [ Crash ]
-crbug.com/626703 [ Linux ] external/wpt/permissions-policy/bluetooth-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.html [ Crash ]
-crbug.com/626703 [ Linux ] external/wpt/permissions-policy/bluetooth-allowed-by-permissions-policy-attribute.https.sub.html [ Crash ]
-crbug.com/626703 [ Linux ] external/wpt/permissions-policy/bluetooth-allowed-by-permissions-policy.https.sub.html [ Crash ]
-crbug.com/626703 [ Linux ] external/wpt/permissions-policy/bluetooth-default-permissions-policy.https.sub.html [ Crash ]
-crbug.com/626703 [ Linux ] external/wpt/permissions-policy/bluetooth-disabled-by-permissions-policy.https.sub.html [ Crash ]
-crbug.com/626703 [ Linux ] external/wpt/permissions-policy/reporting/bluetooth-report-only.https.html [ Crash ]
-crbug.com/626703 [ Linux ] external/wpt/permissions-policy/reporting/bluetooth-reporting.https.html [ Crash ]
 crbug.com/626703 [ Linux ] external/wpt/serial/serialPort_close.https.any.html [ Timeout ]
 crbug.com/626703 [ Linux ] external/wpt/serial/serialPort_close.https.any.worker.html [ Timeout ]
 crbug.com/626703 [ Linux ] external/wpt/serial/serialPort_getSignals.https.any.html [ Timeout ]
@@ -4272,8 +4264,6 @@
 crbug.com/626703 external/wpt/css/css-writing-modes/forms/textarea-appearance-none-horizontal.optional.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-writing-modes/forms/textarea-appearance-none-vlr.optional.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-writing-modes/forms/textarea-appearance-none-vrl.optional.html [ Failure ]
-crbug.com/1393567 [ Mac ] external/wpt/screen-orientation/hidden_document.html [ Failure Pass ]
-crbug.com/626703 [ Win11 ] external/wpt/screen-orientation/hidden_document.html [ Failure Timeout ]
 crbug.com/626703 external/wpt/css/css-writing-modes/forms/color-input-appearance-native-horizontal.optional.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-writing-modes/forms/color-input-appearance-native-vertical.optional.html [ Failure ]
 crbug.com/626703 external/wpt/css/css-writing-modes/forms/color-input-appearance-none-horizontal.optional.html [ Failure ]
@@ -7584,7 +7574,6 @@
 crbug.com/1371157 [ Debug Linux ] external/wpt/accessibility/crashtests/delayed-ignored-change.html [ Timeout ]
 crbug.com/1371125 [ Mac10.14 ] external/wpt/webxr/ar-module/xrSession_interactionMode.https.html [ Timeout ]
 crbug.com/1377004 [ Mac10.14 ] external/wpt/video-rvfc/request-video-frame-callback-webrtc.https.html [ Timeout ]
-crbug.com/1379180 [ Linux ] fast/events/event-hit-testing-fallback-to-iframe.html [ Failure Pass ]
 crbug.com/1194961 [ Debug Linux ] fast/events/touch/gesture/touch-gesture-fling-with-page-scale.html [ Failure Pass ]
 crbug.com/1380069 [ Mac10.15 ] virtual/pending-beacon/external/wpt/pending-beacon/pending_beacon-sendonhidden.tentative.https.window.html [ Timeout ]
 crbug.com/1380069 [ Linux ] virtual/pending-beacon/external/wpt/pending-beacon/pending_beacon-sendonhidden.tentative.https.window.html [ Timeout ]
@@ -8152,3 +8141,14 @@
 crbug.com/1393474 [ Linux ] wpt_internal/geolocation-api/timeout-negative.https.html [ Failure ]
 crbug.com/1393474 [ Linux ] wpt_internal/geolocation-api/timeout-zero.https.html [ Failure ]
 crbug.com/1393474 [ Linux ] wpt_internal/geolocation-api/timeout.https.html [ Failure ]
+
+# Sheriff 2022-11-28
+crbug.com/1393567 external/wpt/screen-orientation/hidden_document.html [ Failure Pass Timeout ]
+crbug.com/1393985 [ Mac11-arm64 ] virtual/expose-lcp-render-time/external/wpt/performance-timeline/cross-origin-non-tao-image.sub.html [ Failure Pass ]
+crbug.com/1290077 [ Mac11-arm64 ] virtual/gpu/fast/canvas/canvas-drawImage-live-video.html [ Failure Pass Timeout ] 
+crbug.com/1290077 [ Mac11-arm64 ] virtual/oopr-canvas2d/fast/canvas/canvas-drawImage-live-video.html [ Failure Pass Timeout ] 
+crbug.com/1393995 fast/dom/shadow/import-rule-in-shadow-tree-needs-document-style-recalc.html [ Failure Pass ]
+crbug.com/1379180 fast/events/event-hit-testing-fallback-to-iframe.html [ Failure Pass ]
+
+# Temporarily disable test to land devtools-frontend change crrev/c/4057666
+crbug.com/1385379 http/tests/devtools/elements/styles-4/styles-invalid-color-values.js [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-computed.html b/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-computed.html
index 68ba1f2..29486a0 100644
--- a/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-computed.html
+++ b/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-computed.html
@@ -22,16 +22,17 @@
 test_computed_value('animation-timeline', 'none, none');
 test_computed_value('animation-timeline', 'auto, none');
 test_computed_value('animation-timeline', 'none, auto');
-test_computed_value('animation-timeline', '"test"', ["test", '"test"']);
+test_computed_value('animation-timeline', '"test"', 'test');
 test_computed_value('animation-timeline', '"none"');
 test_computed_value('animation-timeline', '"auto"');
 test_computed_value('animation-timeline', '"initial"');
 test_computed_value('animation-timeline', '"inherit"');
 test_computed_value('animation-timeline', '"unset"');
 test_computed_value('animation-timeline', '"revert"');
+test_computed_value('animation-timeline', '"revert-layer"');
 test_computed_value('animation-timeline', 'test');
 test_computed_value('animation-timeline', 'test1, test2');
-test_computed_value('animation-timeline', 'test1, "test2", none, test3, auto', ["test1, test2, none, test3, auto", 'test1, "test2", none, test3, auto']);
+test_computed_value('animation-timeline', 'test1, "test2", none, test3, auto', 'test1, test2, none, test3, auto');
 
 test(() => {
   let style = getComputedStyle(document.getElementById('target'));
diff --git a/tools/cast3p/runtime.version b/tools/cast3p/runtime.version
index cd609ef..a8db3a7 100644
--- a/tools/cast3p/runtime.version
+++ b/tools/cast3p/runtime.version
@@ -1 +1 @@
-323080
+328963
diff --git a/tools/clang/scripts/expand_thin_archives.py b/tools/clang/scripts/expand_thin_archives.py
index 4da74ee..ed2fd69 100755
--- a/tools/clang/scripts/expand_thin_archives.py
+++ b/tools/clang/scripts/expand_thin_archives.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright 2019 The Chromium Authors
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
@@ -6,11 +6,6 @@
 # Library and tool to expand command lines that mention thin archives
 # into command lines that mention the contained object files.
 
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-from __future__ import unicode_literals
-
 import argparse
 import sys
 
@@ -20,12 +15,13 @@
 
 def main(argv):
   ap = argparse.ArgumentParser(
-      description=('Expand command lines that mention thin archives into'
-                   ' command lines that mention the contained object files.'),
+      description=('Expand command lines that mention thin archives into '
+                   'command lines that mention the contained object files.'),
       usage='%(prog)s [options] -- command line')
-  ap.add_argument('-o', '--output',
-                  help=('Write new command line to named file'
-                        ' instead of standard output.'))
+  ap.add_argument('-o',
+                  '--output',
+                  help=('Write new command line to named file '
+                        'instead of standard output.'))
   ap.add_argument('-p', '--linker-prefix',
                   help='String to prefix linker flags with.',
                   default='')
diff --git a/tools/clang/scripts/remote_link.py b/tools/clang/scripts/remote_link.py
index 783c354..72517da 100755
--- a/tools/clang/scripts/remote_link.py
+++ b/tools/clang/scripts/remote_link.py
@@ -320,7 +320,7 @@
   def expand_thin_archives(self, args):
     """
     Yields the parameters in args, with thin archives replaced by a sequence
-    of '-start-lib', the member names, and '-end-lib'. This is used to get a
+    of '--start-lib', the member names, and '--end-lib'. This is used to get a
     command line where members of thin archives are mentioned explicitly.
     """
     for arg in args:
@@ -329,10 +329,10 @@
         prefix += '/'
       if (self.LIB_RE.match(arg) and os.path.exists(arg)
           and is_thin_archive(arg)):
-        yield (self.WL + '-start-lib')
+        yield (self.WL + '--start-lib')
         for name in names_in_archive(arg):
           yield (prefix + name)
-        yield (self.WL + '-end-lib')
+        yield (self.WL + '--end-lib')
       else:
         yield (arg)
 
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 45e29c3f..9870f25 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -62514,6 +62514,7 @@
   <int value="1139226452" label="enable-nacl-debug"/>
   <int value="1139363314" label="disable-supervised-user-blacklist"/>
   <int value="1139756271" label="WebOTPCrossDevice:enabled"/>
+  <int value="1140513364" label="IdentityStatusConsistency:disabled"/>
   <int value="1140541604" label="WinrtGeolocationImplementation:enabled"/>
   <int value="1140776731" label="WebViewForceDarkModeMatchTheme:disabled"/>
   <int value="1140903063" label="FuseBox:enabled"/>
@@ -62897,6 +62898,7 @@
   <int value="1361073386" label="ContentSuggestionsNotifications:enabled"/>
   <int value="1363136936" label="VrCustomTabBrowsing:enabled"/>
   <int value="1363151585" label="SyncPseudoUSSAppList:enabled"/>
+  <int value="1365642727" label="IdentityStatusConsistency:enabled"/>
   <int value="1365857480" label="WebUITabStripNewTabButtonInTabStrip:enabled"/>
   <int value="1367406392" label="VaapiVideoDecoder:disabled"/>
   <int value="1367467733" label="AutoplayIgnoreWebAudio:enabled"/>
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml
index 32c3fe1..462e8fd8 100644
--- a/tools/metrics/histograms/metadata/enterprise/histograms.xml
+++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -1147,6 +1147,16 @@
   </summary>
 </histogram>
 
+<histogram name="Enterprise.Dlp.Errors.ReportQueueNotReady" enum="Boolean"
+    expires_after="2023-06-01">
+  <owner>accorsi@google.com</owner>
+  <owner>chromeos-dlp@google.com</owner>
+  <summary>
+    Recorded when a Data Leak Prevention event is not reported because of report
+    queue setup issues.
+  </summary>
+</histogram>
+
 <histogram name="Enterprise.Dlp.FileActionBlocked"
     enum="EnterpriseDlpPolicyFileAction" expires_after="2023-06-01">
   <owner>accorsi@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/navigation/histograms.xml b/tools/metrics/histograms/metadata/navigation/histograms.xml
index a0f7e37..b8fc8b9 100644
--- a/tools/metrics/histograms/metadata/navigation/histograms.xml
+++ b/tools/metrics/histograms/metadata/navigation/histograms.xml
@@ -1112,31 +1112,6 @@
   </summary>
 </histogram>
 
-<histogram name="Navigation.PolicyBlocklistNavigationThrottle.PolicyLoadDelay"
-    units="ms" expires_after="2023-01-02">
-  <owner>ydago@chromium.org</owner>
-  <owner>pastarmovj@chromium.org</owner>
-  <summary>
-    The time spent waiting for policies to load before checking a navigation
-    against url blocking policies. Gathered when policies have finished loading
-    after a navigation requests has been already issued.
-  </summary>
-</histogram>
-
-<histogram
-    name="Navigation.PolicyBlocklistNavigationThrottle.PolicyLoadTimeout"
-    enum="Boolean" expires_after="2023-01-02">
-  <owner>ydago@chromium.org</owner>
-  <owner>pastarmovj@chromium.org</owner>
-  <summary>
-    Records if the policy load delay before PolicyBlocklistNavigationThrottle
-    checks a navigation against url blocking policies timed out. In case of a
-    timeout, the navigation resumes ignoring potential policy restrictions.
-    Gathered when policies have not finished loading in time for a navigation
-    request to be checked against the blocklist policy.
-  </summary>
-</histogram>
-
 <histogram name="Navigation.Preconnect.PreresolveJobQueueingTime" units="ms"
     expires_after="2023-03-19">
   <owner>alexilin@chromium.org</owner>
@@ -1666,7 +1641,7 @@
 
 <histogram
     name="Prerender.CanceledForInactivePageRestriction.DisallowActivationReason{PrerenderTriggerType}"
-    enum="InactiveFrameDisallowActivationReason" expires_after="2022-11-30">
+    enum="InactiveFrameDisallowActivationReason" expires_after="2023-03-01">
   <owner>lingqi@chromium.org</owner>
   <owner>chrome-prerendering@chromium.org</owner>
   <summary>
@@ -1773,7 +1748,7 @@
 
 <histogram
     name="Prerender.Experimental.DefaultSearchEngine.SearchTermExtractorCorrectness"
-    enum="Boolean" expires_after="2022-07-27">
+    enum="Boolean" expires_after="2023-02-01">
   <owner>lingqi@chromium.org</owner>
   <owner>chrome-prerendering@google.com</owner>
   <summary>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 919e06e..7b338649 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,24 +5,24 @@
             "full_remote_path": "perfetto-luci-artifacts/v31.0/linux-arm64/trace_processor_shell"
         },
         "win": {
-            "hash": "434efe1f2d4ccd872a43c19d68b4acc3fd9d31c5",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/32e057826cb604da7f51f9f774e569f2b4884aa8/trace_processor_shell.exe"
+            "hash": "a9ae080a553abd2b39f574f81afb8bfdadee9eb3",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/c08e444ccf161bcd4877ec6add8f75a446187137/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "6373f26144aad58f230d11d6a91efda5a09c9873",
             "full_remote_path": "perfetto-luci-artifacts/v31.0/linux-arm/trace_processor_shell"
         },
         "mac": {
-            "hash": "3f57808f750edf5f8c663215e496924930e2e8bd",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/32e057826cb604da7f51f9f774e569f2b4884aa8/trace_processor_shell"
+            "hash": "07337673499510fd49cb1d8b8b656cf4905afb81",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/5f99acc936816759400c8ce5e4ee1cee2fc0633e/trace_processor_shell"
         },
         "mac_arm64": {
             "hash": "5f47ee79e59d00bf3889d30ca52315522c158040",
             "full_remote_path": "perfetto-luci-artifacts/v31.0/mac-arm64/trace_processor_shell"
         },
         "linux": {
-            "hash": "71fe40653e3ef4a8a1f324ecb879615ff81fe391",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/5f99acc936816759400c8ce5e4ee1cee2fc0633e/trace_processor_shell"
+            "hash": "d4b785b5f6bfb57ebe334fafd151986aa3021d4d",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/3c96d773ed3715d277b4488470da2bd32db55c52/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/sublime/compile_current_file.py b/tools/sublime/compile_current_file.py
index 8d823903..ce1bb38 100755
--- a/tools/sublime/compile_current_file.py
+++ b/tools/sublime/compile_current_file.py
@@ -18,15 +18,15 @@
 import time
 
 # Path to the version of ninja checked in into Chrome.
-rel_path_to_ninja = os.path.join('third_party', 'depot_tools', 'ninja')
+rel_path_to_ninja = os.path.join('third_party', 'ninja', 'ninja')
 
 
 class PrintOutputCommand(sublime_plugin.TextCommand):
-    def run(self, edit, **args):
-        self.view.set_read_only(False)
-        self.view.insert(edit, self.view.size(), args['text'])
-        self.view.show(self.view.size())
-        self.view.set_read_only(True)
+  def run(self, edit, **args):
+    self.view.set_read_only(False)
+    self.view.insert(edit, self.view.size(), args['text'])
+    self.view.show(self.view.size())
+    self.view.set_read_only(True)
 
 
 class CompileCurrentFile(sublime_plugin.TextCommand):
diff --git a/ui/display/manager/json_converter.cc b/ui/display/manager/json_converter.cc
index a9bab639..c11c739 100644
--- a/ui/display/manager/json_converter.cc
+++ b/ui/display/manager/json_converter.cc
@@ -137,7 +137,7 @@
   if (!field->is_list())
     return false;
 
-  const base::Value::ConstListView list = field->GetListDeprecated();
+  const base::Value::List& list = field->GetList();
   output->reserve(list.size());
 
   for (const base::Value& list_item : list) {
@@ -145,12 +145,12 @@
       return false;
 
     DisplayPlacement item;
-    if (!UpdateFromDict(list_item.GetDict(), kOffsetKey, &item.offset) ||
-        !UpdateFromDict(list_item.GetDict(), kPositionKey, &item.position) ||
-        !UpdateFromDict(list_item.GetDict(), kDisplayPlacementDisplayIdKey,
+    const base::Value::Dict& item_dict = list_item.GetDict();
+    if (!UpdateFromDict(item_dict, kOffsetKey, &item.offset) ||
+        !UpdateFromDict(item_dict, kPositionKey, &item.position) ||
+        !UpdateFromDict(item_dict, kDisplayPlacementDisplayIdKey,
                         &item.display_id) ||
-        !UpdateFromDict(list_item.GetDict(),
-                        kDisplayPlacementParentDisplayIdKey,
+        !UpdateFromDict(item_dict, kDisplayPlacementParentDisplayIdKey,
                         &item.parent_display_id)) {
       return false;
     }
diff --git a/ui/events/android/gesture_event_android.h b/ui/events/android/gesture_event_android.h
index be85f0fe6..0cc7079 100644
--- a/ui/events/android/gesture_event_android.h
+++ b/ui/events/android/gesture_event_android.h
@@ -5,6 +5,8 @@
 #ifndef UI_EVENTS_ANDROID_GESTURE_EVENT_ANDROID_H_
 #define UI_EVENTS_ANDROID_GESTURE_EVENT_ANDROID_H_
 
+#include <memory>
+
 #include "ui/events/events_export.h"
 #include "ui/gfx/geometry/point_f.h"
 
diff --git a/url/gurl.cc b/url/gurl.cc
index ffd4174..7957452 100644
--- a/url/gurl.cc
+++ b/url/gurl.cc
@@ -416,8 +416,8 @@
   if (parsed_.ref.is_valid()) {
     // Clip off the reference when it exists. The reference starts after the
     // #-sign, so we have to subtract one to also remove it.
-    return base::StringPiece(&spec_[parsed_.path.begin],
-                             parsed_.ref.begin - parsed_.path.begin - 1);
+    return base::StringPiece(spec_).substr(
+        parsed_.path.begin, parsed_.ref.begin - parsed_.path.begin - 1);
   }
   // Compute the actual path length, rather than depending on the spec's
   // terminator. If we're an inner_url, our spec continues on into our outer
@@ -426,7 +426,7 @@
   if (parsed_.query.is_valid())
     path_len = parsed_.query.end() - parsed_.path.begin;
 
-  return base::StringPiece(&spec_[parsed_.path.begin], path_len);
+  return base::StringPiece(spec_).substr(parsed_.path.begin, path_len);
 }
 
 std::string GURL::PathForRequest() const {
diff --git a/url/gurl.h b/url/gurl.h
index b7e2196..f0d4a40 100644
--- a/url/gurl.h
+++ b/url/gurl.h
@@ -464,16 +464,13 @@
 
   // Returns the substring of the input identified by the given component.
   std::string ComponentString(const url::Component& comp) const {
-    if (comp.is_empty())
-      return std::string();
-    return std::string(spec_, static_cast<size_t>(comp.begin),
-                       static_cast<size_t>(comp.len));
+    return std::string(ComponentStringPiece(comp));
   }
   base::StringPiece ComponentStringPiece(const url::Component& comp) const {
     if (comp.is_empty())
       return base::StringPiece();
-    return base::StringPiece(&spec_[static_cast<size_t>(comp.begin)],
-                             static_cast<size_t>(comp.len));
+    return base::StringPiece(spec_).substr(static_cast<size_t>(comp.begin),
+                                           static_cast<size_t>(comp.len));
   }
 
   void ProcessFileSystemURLAfterReplaceComponents();
diff --git a/weblayer/browser/android/javatests/BUILD.gn b/weblayer/browser/android/javatests/BUILD.gn
index c2b910d..b918bd7 100644
--- a/weblayer/browser/android/javatests/BUILD.gn
+++ b/weblayer/browser/android/javatests/BUILD.gn
@@ -9,7 +9,9 @@
 android_library("webengine_java_tests") {
   testonly = true
   sources = [
+    "src/org/chromium/webengine/test/CookieManagerTest.java",
     "src/org/chromium/webengine/test/ExecuteScriptTest.java",
+    "src/org/chromium/webengine/test/TabManagerTest.java",
     "src/org/chromium/webengine/test/WebFragmentTest.java",
   ]
   deps = [
@@ -33,6 +35,7 @@
     "//third_party/androidx:androidx_test_core_java",
     "//third_party/androidx:androidx_test_runner_java",
     "//third_party/blink/public/common:common_java",
+    "//third_party/hamcrest:hamcrest_core_java",
     "//third_party/junit:junit",
     "//weblayer/public/java:webengine_java",
     "//weblayer/public/javatests:weblayer_public_javatests",
@@ -43,6 +46,7 @@
 android_library("webengine_java_test_support") {
   testonly = true
   sources = [
+    "src/org/chromium/webengine/test/DigitalAssetLinksServerRule.java",
     "src/org/chromium/webengine/test/InstrumentationActivityTestRule.java",
     "src/org/chromium/webengine/test/WebEngineActivityTestRule.java",
     "src/org/chromium/webengine/test/WebEngineJUnit4ClassRunner.java",
diff --git a/weblayer/browser/android/javatests/src/org/chromium/webengine/test/CookieManagerTest.java b/weblayer/browser/android/javatests/src/org/chromium/webengine/test/CookieManagerTest.java
new file mode 100644
index 0000000..f0518f8
--- /dev/null
+++ b/weblayer/browser/android/javatests/src/org/chromium/webengine/test/CookieManagerTest.java
@@ -0,0 +1,114 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.webengine.test;
+
+import static org.chromium.content_public.browser.test.util.TestThreadUtils.runOnUiThreadBlocking;
+
+import androidx.test.filters.SmallTest;
+
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.test.util.Batch;
+import org.chromium.net.test.util.TestWebServer;
+import org.chromium.webengine.CookieManager;
+import org.chromium.webengine.RestrictedAPIException;
+import org.chromium.webengine.Tab;
+import org.chromium.webengine.WebFragment;
+import org.chromium.webengine.WebSandbox;
+
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * Tests the CookieManager API.
+ */
+@Batch(Batch.PER_CLASS)
+@RunWith(WebEngineJUnit4ClassRunner.class)
+public class CookieManagerTest {
+    @Rule
+    public InstrumentationActivityTestRule mActivityTestRule =
+            new InstrumentationActivityTestRule();
+    @Rule
+    public DigitalAssetLinksServerRule mDALServerRule = new DigitalAssetLinksServerRule();
+
+    private TestWebServer mServer;
+    private CookieManager mCookieManager;
+
+    @Before
+    public void setUp() throws Exception {
+        mServer = mDALServerRule.getServer();
+        mActivityTestRule.launchShell();
+
+        WebSandbox sandbox = mActivityTestRule.getWebSandbox();
+        WebFragment fragment = runOnUiThreadBlocking(() -> sandbox.createFragment());
+        runOnUiThreadBlocking(() -> mActivityTestRule.attachFragment(fragment));
+        mCookieManager = fragment.getCookieManager().get();
+    }
+
+    @After
+    public void tearDown() {
+        mActivityTestRule.finish();
+    }
+
+    @Test
+    @SmallTest
+    public void accessFailsWithoutVerification() throws Exception {
+        ListenableFuture<String> future =
+                runOnUiThreadBlocking(() -> mCookieManager.getCookie(mServer.getBaseUrl()));
+
+        CountDownLatch executeLatch = new CountDownLatch(1);
+        Futures.addCallback(future, new FutureCallback<String>() {
+            @Override
+            public void onSuccess(String result) {
+                Assert.fail("future resolved unexpectedly.");
+            }
+
+            @Override
+            public void onFailure(Throwable thrown) {
+                if (!(thrown instanceof RestrictedAPIException)) {
+                    Assert.fail(
+                            "expected future to fail due to RestrictedAPIException, instead got: "
+                            + thrown.getClass().getName());
+                }
+                executeLatch.countDown();
+            }
+        }, mActivityTestRule.getContext().getMainExecutor());
+
+        executeLatch.await();
+    }
+
+    @Test
+    @SmallTest
+    public void setAndGetCookies() throws Exception {
+        mDALServerRule.setUpDigitalAssetLinks();
+        Assert.assertEquals(mCookieManager.getCookie(mServer.getBaseUrl()).get(), "");
+        mCookieManager.setCookie(mServer.getBaseUrl(), "foo=bar");
+        Assert.assertEquals(mCookieManager.getCookie(mServer.getBaseUrl()).get(), "foo=bar");
+    }
+
+    @Test
+    @SmallTest
+    public void getCookieCreatedByPage() throws Exception {
+        mDALServerRule.setUpDigitalAssetLinks();
+
+        String url = mDALServerRule.getServer().setResponse("/page.html",
+                "<html><script>document.cookie='foo=bar42'</script><body>contents!</body></html>",
+                null);
+
+        Assert.assertEquals(mCookieManager.getCookie(url).get(), "");
+        Tab tab = mActivityTestRule.getFragment().getTabManager().get().getActiveTab().get();
+
+        mActivityTestRule.navigateAndWait(tab, url);
+        Assert.assertEquals(mCookieManager.getCookie(url).get(), "foo=bar42");
+    }
+}
\ No newline at end of file
diff --git a/weblayer/browser/android/javatests/src/org/chromium/webengine/test/DigitalAssetLinksServerRule.java b/weblayer/browser/android/javatests/src/org/chromium/webengine/test/DigitalAssetLinksServerRule.java
new file mode 100644
index 0000000..d9c918e
--- /dev/null
+++ b/weblayer/browser/android/javatests/src/org/chromium/webengine/test/DigitalAssetLinksServerRule.java
@@ -0,0 +1,80 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.webengine.test;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
+
+import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageUtils;
+import org.chromium.net.test.util.TestWebServer;
+
+import java.util.List;
+
+/**
+ * Gives an option to make DAL verification pass for the tests.
+ * Also exposes the TestWebServer instance for more customization.
+ */
+public class DigitalAssetLinksServerRule extends TestWatcher {
+    private static final String ASSETLINKS_PATH = "/.well-known/assetlinks.json";
+
+    // TODO(crbug.com/1376522): Figure out how to not hardcode a port number.
+    private static final int PORT = 8888;
+    private TestWebServer mServer;
+
+    @Override
+    protected void starting(Description desc) {
+        super.starting(desc);
+        try {
+            mServer = TestWebServer.start(PORT);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        // By default, the asset links are not set up.
+        mServer.setResponseWithNotFoundStatus(ASSETLINKS_PATH, null);
+    }
+
+    @Override
+    protected void finished(Description desc) {
+        super.finished(desc);
+        mServer.shutdown();
+    }
+
+    // Returns the TestServer in case you want to add additional handlers.
+    public TestWebServer getServer() {
+        return mServer;
+    }
+
+    // Makes the DAL verification succeed.
+    public void setUpDigitalAssetLinks() {
+        String packageName = ContextUtils.getApplicationContext().getPackageName();
+        List<String> signatureFingerprints =
+                PackageUtils.getCertificateSHA256FingerprintForPackage(packageName);
+        mServer.setResponse(
+                ASSETLINKS_PATH, makeAssetFile(packageName, signatureFingerprints.get(0)), null);
+    }
+
+    private static String makeAssetFile(String packageName, String fingerprint) {
+        try {
+            return (new JSONArray().put(
+                            new JSONObject()
+                                    .put("relation",
+                                            new JSONArray().put(
+                                                    "delegate_permission/common.handle_all_urls"))
+                                    .put("target",
+                                            new JSONObject()
+                                                    .put("namespace", "android_app")
+                                                    .put("package_name", packageName)
+                                                    .put("sha256_cert_fingerprints",
+                                                            new JSONArray().put(fingerprint)))))
+                    .toString();
+        } catch (JSONException e) {
+        }
+        return "";
+    }
+}
diff --git a/weblayer/browser/android/javatests/src/org/chromium/webengine/test/ExecuteScriptTest.java b/weblayer/browser/android/javatests/src/org/chromium/webengine/test/ExecuteScriptTest.java
index d99bf42..5b5bcd0 100644
--- a/weblayer/browser/android/javatests/src/org/chromium/webengine/test/ExecuteScriptTest.java
+++ b/weblayer/browser/android/javatests/src/org/chromium/webengine/test/ExecuteScriptTest.java
@@ -12,9 +12,6 @@
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -22,14 +19,11 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.chromium.base.ContextUtils;
-import org.chromium.base.PackageUtils;
 import org.chromium.base.test.util.Batch;
 import org.chromium.net.test.util.TestWebServer;
 import org.chromium.webengine.RestrictedAPIException;
 import org.chromium.webengine.Tab;
 
-import java.util.List;
 import java.util.concurrent.CountDownLatch;
 
 /**
@@ -41,30 +35,25 @@
     @Rule
     public InstrumentationActivityTestRule mActivityTestRule =
             new InstrumentationActivityTestRule();
+    @Rule
+    public DigitalAssetLinksServerRule mDALServerRule = new DigitalAssetLinksServerRule();
 
-    private static final String ASSETLINKS_PATH = "/.well-known/assetlinks.json";
-    // TODO(crbug.com/1376522): Figure out how to not hardcode a port number.
-    private static final int PORT = 8888;
-
-    private TestWebServer mServer;
     private Tab mTab;
     private String mDefaultUrl;
+    private TestWebServer mServer;
 
     @Before
     public void setUp() throws Exception {
-        mServer = TestWebServer.start(PORT);
+        mServer = mDALServerRule.getServer();
         mActivityTestRule.launchShell();
 
         mDefaultUrl = mServer.setResponse("/page.html",
                 "<html><head></head><body>contents!</body><script>window.foo = 42;</script></html>",
                 null);
-        // By default, the asset links are not set up.
-        mServer.setResponseWithNotFoundStatus(ASSETLINKS_PATH, null);
     }
 
     @After
     public void tearDown() {
-        mServer.shutdown();
         mActivityTestRule.finish();
     }
 
@@ -73,33 +62,6 @@
         return mActivityTestRule.getFragment().getTabManager().get().getActiveTab().get();
     }
 
-    private static String makeAssetFile(String packageName, String fingerprint) {
-        try {
-            return (new JSONArray().put(
-                            new JSONObject()
-                                    .put("relation",
-                                            new JSONArray().put(
-                                                    "delegate_permission/common.handle_all_urls"))
-                                    .put("target",
-                                            new JSONObject()
-                                                    .put("namespace", "android_app")
-                                                    .put("package_name", packageName)
-                                                    .put("sha256_cert_fingerprints",
-                                                            new JSONArray().put(fingerprint)))))
-                    .toString();
-        } catch (JSONException e) {
-        }
-        return "";
-    }
-
-    private void setUpDigitalAssetLinks() {
-        String packageName = ContextUtils.getApplicationContext().getPackageName();
-        List<String> signatureFingerprints =
-                PackageUtils.getCertificateSHA256FingerprintForPackage(packageName);
-        mServer.setResponse(
-                ASSETLINKS_PATH, makeAssetFile(packageName, signatureFingerprints.get(0)), null);
-    }
-
     @Test
     @SmallTest
     public void executeScriptFailsWithoutVerification() throws Exception {
@@ -133,7 +95,7 @@
     @Test
     @SmallTest
     public void executeScriptSucceedsWithVerification() throws Exception {
-        setUpDigitalAssetLinks();
+        mDALServerRule.setUpDigitalAssetLinks();
         Tab activeTab = navigate();
 
         ListenableFuture<String> future =
@@ -144,7 +106,7 @@
     @Test
     @SmallTest
     public void useSeparateIsolate() throws Exception {
-        setUpDigitalAssetLinks();
+        mDALServerRule.setUpDigitalAssetLinks();
         Tab activeTab = navigate();
 
         ListenableFuture<String> futureIsolated =
@@ -159,7 +121,7 @@
     @Test
     @SmallTest
     public void modifyDOMSucceeds() throws Exception {
-        setUpDigitalAssetLinks();
+        mDALServerRule.setUpDigitalAssetLinks();
         Tab activeTab = navigate();
 
         ListenableFuture<String> future1 = runOnUiThreadBlocking(
diff --git a/weblayer/browser/android/javatests/src/org/chromium/webengine/test/TabManagerTest.java b/weblayer/browser/android/javatests/src/org/chromium/webengine/test/TabManagerTest.java
new file mode 100644
index 0000000..dde60bdf
--- /dev/null
+++ b/weblayer/browser/android/javatests/src/org/chromium/webengine/test/TabManagerTest.java
@@ -0,0 +1,209 @@
+// Copyright 2022 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.webengine.test;
+
+import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
+
+import static org.hamcrest.CoreMatchers.is;
+
+import static org.chromium.content_public.browser.test.util.TestThreadUtils.runOnUiThreadBlocking;
+
+import android.content.pm.ActivityInfo;
+import android.net.Uri;
+import android.support.test.InstrumentationRegistry;
+
+import androidx.annotation.Nullable;
+import androidx.test.filters.SmallTest;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.ContextUtils;
+import org.chromium.base.test.util.Batch;
+import org.chromium.base.test.util.Criteria;
+import org.chromium.base.test.util.CriteriaHelper;
+import org.chromium.net.test.EmbeddedTestServer;
+import org.chromium.net.test.EmbeddedTestServerRule;
+import org.chromium.webengine.FragmentParams;
+import org.chromium.webengine.Tab;
+import org.chromium.webengine.TabListObserver;
+import org.chromium.webengine.TabManager;
+import org.chromium.webengine.WebFragment;
+import org.chromium.webengine.WebSandbox;
+
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * Tests various aspects of interacting with Tabs.
+ */
+@Batch(Batch.PER_CLASS)
+@RunWith(WebEngineJUnit4ClassRunner.class)
+public class TabManagerTest {
+    @Rule
+    public EmbeddedTestServerRule mTestServerRule = new EmbeddedTestServerRule();
+
+    @Rule
+    public InstrumentationActivityTestRule mActivityTestRule =
+            new InstrumentationActivityTestRule();
+
+    private EmbeddedTestServer mServer;
+    private WebFragment mFragment;
+
+    @Before
+    public void setUp() throws Exception {
+        mActivityTestRule.launchShell();
+        mServer = mTestServerRule.getServer();
+        WebSandbox sandbox = mActivityTestRule.getWebSandbox();
+        mFragment = runOnUiThreadBlocking(() -> sandbox.createFragment());
+    }
+
+    private String getTestDataURL(String path) {
+        return mServer.getURL("/weblayer/test/data/" + path);
+    }
+
+    @Test
+    @SmallTest
+    public void tabGetsAddedAndActivatedOnStartup() throws Exception {
+        CountDownLatch tabAddedLatch = new CountDownLatch(1);
+        CountDownLatch tabActivatedLatch = new CountDownLatch(1);
+
+        runOnUiThreadBlocking(() -> mFragment.registerTabListObserver(new TabListObserver() {
+            @Nullable
+            private Tab mAddedTab;
+
+            @Override
+            public void onTabAdded(Tab tab) {
+                Assert.assertEquals(tab.getDisplayUri(), Uri.EMPTY);
+                mAddedTab = tab;
+                tabAddedLatch.countDown();
+            }
+
+            @Override
+            public void onActiveTabChanged(Tab tab) {
+                Assert.assertEquals(tab, mAddedTab);
+                tabActivatedLatch.countDown();
+            }
+        }));
+
+        runOnUiThreadBlocking(() -> mActivityTestRule.attachFragment(mFragment));
+        tabAddedLatch.await();
+        tabActivatedLatch.await();
+    }
+
+    @Test
+    @SmallTest
+    public void tabsPersistAcrossRotations() throws Exception {
+        String url = getTestDataURL("simple_page.html");
+        mActivityTestRule.attachNewFragmentThenNavigateAndWait(url);
+
+        // Rotate device.
+        mActivityTestRule.getActivity().setRequestedOrientation(
+                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+        CriteriaHelper.pollUiThread(() -> {
+            Criteria.checkThat(
+                    mActivityTestRule.getActivity().getResources().getConfiguration().orientation,
+                    is(ORIENTATION_LANDSCAPE));
+        });
+
+        WebFragment fragment =
+                runOnUiThreadBlocking(() -> mActivityTestRule.getActivity().getAttachedFragment());
+        Tab activeTab = fragment.getTabManager().get().getActiveTab().get();
+        Assert.assertEquals(activeTab.getDisplayUri().toString(), url);
+    }
+
+    @Test
+    @SmallTest
+    public void tabsPersistAcrossSessions() throws Exception {
+        FragmentParams params = (new FragmentParams.Builder())
+                                        .setPersistenceId("pid1234")
+                                        .setProfileName("pn12345")
+                                        .build();
+        mFragment = runOnUiThreadBlocking(
+                () -> mActivityTestRule.getWebSandbox().createFragment(params));
+
+        runOnUiThreadBlocking(() -> mActivityTestRule.attachFragment(mFragment));
+        Tab activeTab = mFragment.getTabManager().get().getActiveTab().get();
+
+        String url = getTestDataURL("simple_page.html");
+        mActivityTestRule.navigateAndWait(activeTab, url);
+
+        // Shutdown the sandbox.
+        runOnUiThreadBlocking(() -> mActivityTestRule.detachFragment(mFragment));
+        runOnUiThreadBlocking(() -> {
+            try {
+                mActivityTestRule.getWebSandbox().shutdown();
+            } catch (Exception e) {
+                Assert.fail("Failed to shutdown sandbox");
+            }
+        });
+
+        // Give the sandbox some time to shutdown.
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+
+        WebSandbox sandbox =
+                runOnUiThreadBlocking(() -> WebSandbox.create(ContextUtils.getApplicationContext()))
+                        .get();
+        // Recreate a fragment with the same params.
+        mFragment = runOnUiThreadBlocking(() -> sandbox.createFragment(params));
+        runOnUiThreadBlocking(() -> mActivityTestRule.attachFragment(mFragment));
+        Tab newActiveTab = mFragment.getTabManager().get().getActiveTab().get();
+
+        Assert.assertEquals(newActiveTab.getDisplayUri().toString(), url);
+        Assert.assertEquals(newActiveTab.getGuid(), activeTab.getGuid());
+    }
+
+    private static final class TabHolder {
+        private Tab mAddedTab;
+        private Tab mActiveTab;
+        private Tab mRemovedTab;
+    }
+
+    @Test
+    @SmallTest
+    public void newTabCanBeActivatedAndRemoved() throws Exception {
+        // One count for the initial tab created and one for the tab we programmatically create.
+        CountDownLatch activeLatch = new CountDownLatch(2);
+        CountDownLatch removeLatch = new CountDownLatch(1);
+
+        final TabHolder holder = new TabHolder();
+        runOnUiThreadBlocking(() -> mFragment.registerTabListObserver(new TabListObserver() {
+            @Override
+            public void onTabAdded(Tab tab) {
+                holder.mAddedTab = tab;
+            }
+
+            @Override
+            public void onActiveTabChanged(Tab tab) {
+                holder.mActiveTab = tab;
+                activeLatch.countDown();
+            }
+
+            @Override
+            public void onTabRemoved(Tab tab) {
+                holder.mRemovedTab = tab;
+                removeLatch.countDown();
+            }
+        }));
+
+        runOnUiThreadBlocking(() -> mActivityTestRule.attachFragment(mFragment));
+        TabManager tabManager = mFragment.getTabManager().get();
+
+        Tab newTab = runOnUiThreadBlocking(() -> tabManager.createTab()).get();
+        Assert.assertEquals(newTab, holder.mAddedTab);
+
+        runOnUiThreadBlocking(() -> newTab.setActive());
+        activeLatch.await();
+        Assert.assertEquals(newTab, holder.mActiveTab);
+
+        runOnUiThreadBlocking(() -> newTab.close());
+        removeLatch.await();
+        Assert.assertEquals(newTab, holder.mRemovedTab);
+
+        Assert.assertNull(tabManager.getActiveTab().get());
+    }
+}
diff --git a/weblayer/browser/java/BUILD.gn b/weblayer/browser/java/BUILD.gn
index 2162a3b7..8f61fbd7 100644
--- a/weblayer/browser/java/BUILD.gn
+++ b/weblayer/browser/java/BUILD.gn
@@ -21,7 +21,6 @@
 android_resources("weblayer_resources") {
   sources = [
     "res/drawable/weblayer_tab_indicator.xml",
-    "res/layout/settings_layout.xml",
     "res/layout/weblayer_infobar_translate_compact_content.xml",
     "res/values-night/styles.xml",
     "res/values/colors.xml",
@@ -191,7 +190,6 @@
     "org/chromium/weblayer_private/payments/WebLayerPaymentRequestService.java",
     "org/chromium/weblayer_private/permissions/PermissionRequestUtils.java",
     "org/chromium/weblayer_private/resources/ResourceMapper.java",
-    "org/chromium/weblayer_private/settings/SettingsFragmentImpl.java",
     "org/chromium/weblayer_private/settings/WebLayerAccessibilitySettingsDelegate.java",
     "org/chromium/weblayer_private/settings/WebLayerSiteSettingsDelegate.java",
     _bundle_utils_output,
@@ -556,8 +554,6 @@
     "org/chromium/weblayer_private/interfaces/RestrictedAPIException.java",
     "org/chromium/weblayer_private/interfaces/ScrollNotificationType.java",
     "org/chromium/weblayer_private/interfaces/SettingType.java",
-    "org/chromium/weblayer_private/interfaces/SettingsFragmentArgs.java",
-    "org/chromium/weblayer_private/interfaces/SettingsIntentHelper.java",
     "org/chromium/weblayer_private/interfaces/WebLayerVersionConstants.java",
   ]
 
@@ -645,8 +641,6 @@
     "org/chromium/weblayer_private/interfaces/IProfile.aidl",
     "org/chromium/weblayer_private/interfaces/IProfileClient.aidl",
     "org/chromium/weblayer_private/interfaces/IRemoteFragment.aidl",
-    "org/chromium/weblayer_private/interfaces/ISettingsFragment.aidl",
-    "org/chromium/weblayer_private/interfaces/ISiteSettingsFragment.aidl",
     "org/chromium/weblayer_private/interfaces/ITab.aidl",
     "org/chromium/weblayer_private/interfaces/ITabClient.aidl",
     "org/chromium/weblayer_private/interfaces/IUserIdentityCallbackClient.aidl",
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/CookieManagerImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/CookieManagerImpl.java
index 09e82c47..41468c36 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/CookieManagerImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/CookieManagerImpl.java
@@ -16,7 +16,6 @@
 import org.chromium.weblayer_private.interfaces.ICookieManager;
 import org.chromium.weblayer_private.interfaces.IObjectWrapper;
 import org.chromium.weblayer_private.interfaces.ObjectWrapper;
-import org.chromium.weblayer_private.interfaces.RestrictedAPIException;
 import org.chromium.weblayer_private.interfaces.StrictModeWorkaround;
 
 import java.lang.ref.WeakReference;
@@ -52,7 +51,8 @@
 
         originVerifier.verify(url, mProfile, (verified) -> {
             if (!verified) {
-                throw new RestrictedAPIException();
+                // TODO(crbug.com/1392110): Pass a RestrictedAPIException.
+                valueCallback.onReceiveValue(false);
             }
             Callback<Boolean> baseCallback =
                     (Boolean result) -> valueCallback.onReceiveValue(result);
@@ -72,7 +72,8 @@
 
         originVerifier.verify(url, mProfile, (verified) -> {
             if (!verified) {
-                throw new RestrictedAPIException();
+                // TODO(crbug.com/1392110): Pass a RestrictedAPIException.
+                valueCallback.onReceiveValue(null);
             }
             Callback<String> baseCallback = (String result) -> valueCallback.onReceiveValue(result);
             CookieManagerImplJni.get().getCookie(mNativeCookieManager, url, baseCallback);
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerImpl.java
index 1f40103..c1f3ed4 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/WebLayerImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/WebLayerImpl.java
@@ -87,8 +87,6 @@
 import org.chromium.weblayer_private.interfaces.IMediaRouteDialogFragment;
 import org.chromium.weblayer_private.interfaces.IObjectWrapper;
 import org.chromium.weblayer_private.interfaces.IProfile;
-import org.chromium.weblayer_private.interfaces.ISettingsFragment;
-import org.chromium.weblayer_private.interfaces.ISiteSettingsFragment;
 import org.chromium.weblayer_private.interfaces.IWebLayer;
 import org.chromium.weblayer_private.interfaces.IWebLayerClient;
 import org.chromium.weblayer_private.interfaces.ObjectWrapper;
@@ -99,7 +97,6 @@
 import org.chromium.weblayer_private.media.MediaStreamManager;
 import org.chromium.weblayer_private.metrics.MetricsServiceClient;
 import org.chromium.weblayer_private.metrics.UmaUtils;
-import org.chromium.weblayer_private.settings.SettingsFragmentImpl;
 
 import java.io.File;
 import java.io.IOException;
@@ -383,20 +380,6 @@
     }
 
     @Override
-    public ISettingsFragment createSettingsFragmentImpl(IObjectWrapper fragmentArgs) {
-        StrictModeWorkaround.apply();
-        Bundle unwrappedArgs = ObjectWrapper.unwrap(fragmentArgs, Bundle.class);
-        return new SettingsFragmentImpl(mProfileManager, unwrappedArgs).asISettingsFragment();
-    }
-
-    @Override
-    public ISiteSettingsFragment createSiteSettingsFragmentImpl(IObjectWrapper fragmentArgs) {
-        StrictModeWorkaround.apply();
-        Bundle unwrappedArgs = ObjectWrapper.unwrap(fragmentArgs, Bundle.class);
-        return new SettingsFragmentImpl(mProfileManager, unwrappedArgs).asISiteSettingsFragment();
-    }
-
-    @Override
     public IMediaRouteDialogFragment createMediaRouteDialogFragmentImpl() {
         StrictModeWorkaround.apply();
         MediaRouteDialogFragmentImpl fragment = new MediaRouteDialogFragmentImpl();
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ISettingsFragment.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ISettingsFragment.aidl
deleted file mode 100644
index 5b525be..0000000
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ISettingsFragment.aidl
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.weblayer_private.interfaces;
-
-import org.chromium.weblayer_private.interfaces.IRemoteFragment;
-
-interface ISettingsFragment {
-  IRemoteFragment asRemoteFragment() = 0;
-}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ISiteSettingsFragment.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ISiteSettingsFragment.aidl
deleted file mode 100644
index a3520c0..0000000
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/ISiteSettingsFragment.aidl
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.weblayer_private.interfaces;
-
-import org.chromium.weblayer_private.interfaces.IRemoteFragment;
-
-interface ISiteSettingsFragment {
-  IRemoteFragment asRemoteFragment() = 0;
-}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IWebLayer.aidl b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IWebLayer.aidl
index 2c7d3ac..d3820b3 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IWebLayer.aidl
+++ b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/IWebLayer.aidl
@@ -12,8 +12,6 @@
 import org.chromium.weblayer_private.interfaces.IObjectWrapper;
 import org.chromium.weblayer_private.interfaces.IProfile;
 import org.chromium.weblayer_private.interfaces.IMediaRouteDialogFragment;
-import org.chromium.weblayer_private.interfaces.ISettingsFragment;
-import org.chromium.weblayer_private.interfaces.ISiteSettingsFragment;
 import org.chromium.weblayer_private.interfaces.IWebLayerClient;
 
 interface IWebLayer {
@@ -76,14 +74,6 @@
 
   void registerExternalExperimentIDs(in String trialName, in int[] experimentIds) = 15;
 
-  // Creates the WebLayer counterpart to a SiteSettingsFragment - a SiteSettingsFragmentImpl
-  //
-  // @param fragmentClient Representative of the Fragment on the client side through which
-  // WebLayer can call methods on Fragment.
-  // @param fragmentArgs Bundle of arguments with which the Fragment was created on the client side
-  // (see Fragment#setArguments).
-  ISiteSettingsFragment createSiteSettingsFragmentImpl(in IObjectWrapper fragmentArgs) = 16;
-
   void onMediaSessionServiceStarted(in IObjectWrapper sessionService, in Intent intent) = 17;
   void onMediaSessionServiceDestroyed() = 18;
 
@@ -98,15 +88,6 @@
   void onRemoteMediaServiceStarted(in IObjectWrapper sessionService, in Intent intent) = 22;
   void onRemoteMediaServiceDestroyed(int id) = 23;
 
-  // Creates the WebLayer counterpart to a SettingsFragment - a SettingsFragmentImpl
-  //
-  // @param fragmentClient Representative of the Fragment on the client side through which
-  // WebLayer can call methods on Fragment.
-  // @param fragmentArgs Bundle of arguments with which the Fragment was created on the client side
-  // (see Fragment#setArguments).
-  // Added in Version 89.
-  ISettingsFragment createSettingsFragmentImpl(in IObjectWrapper fragmentArgs) = 25;
-
   // Creates an instance of GooglePayDataCallbacksService. Added in Version 92.
   IObjectWrapper createGooglePayDataCallbacksService() = 26;
 
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingsFragmentArgs.java b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingsFragmentArgs.java
deleted file mode 100644
index ae80155..0000000
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingsFragmentArgs.java
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.weblayer_private.interfaces;
-
-/** Keys for the Bundle of arguments with which SettingsFragments are created. */
-public interface SettingsFragmentArgs {
-    String ACTIVITY_CLASS_NAME = "org.chromium.weblayer.SettingsActivity";
-
-    // Argument names
-    String PROFILE_NAME = "profile_name";
-    String IS_INCOGNITO_PROFILE = "is_incognito_profile";
-    String FRAGMENT_NAME = "fragment_name";
-    String FRAGMENT_ARGUMENTS = "fragment_arguments";
-
-    // FRAGMENT_NAME values
-    String ALL_SITES = "all_sites";
-    String CATEGORY_LIST = "category_list";
-    String SINGLE_CATEGORY = "single_category";
-    String SINGLE_WEBSITE = "single_website";
-    String ACCESSIBILITY = "accessibility";
-
-    // SINGLE_WEBSITE argument names
-    String SINGLE_WEBSITE_URL = "url";
-
-    // SINGLE_CATEGORY argument names
-    String SINGLE_CATEGORY_TITLE = "title";
-    String SINGLE_CATEGORY_TYPE = "type";
-
-    // ALL_SITES argument names
-    String ALL_SITES_TITLE = "title";
-    String ALL_SITES_TYPE = "type";
-}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingsIntentHelper.java b/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingsIntentHelper.java
deleted file mode 100644
index 5d0e21f9..0000000
--- a/weblayer/browser/java/org/chromium/weblayer_private/interfaces/SettingsIntentHelper.java
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.weblayer_private.interfaces;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-
-/**
- * A helper class for creating Intents to start Settings UI Fragments.
- */
-public class SettingsIntentHelper {
-    private static Bundle createSettingsExtras(String profileName, boolean isIncognito) {
-        Bundle extras = new Bundle();
-        extras.putString(SettingsFragmentArgs.PROFILE_NAME, profileName);
-        extras.putBoolean(SettingsFragmentArgs.IS_INCOGNITO_PROFILE, isIncognito);
-        return extras;
-    }
-
-    /** Creates an Intent that launches the main category list UI. */
-    public static Intent createIntentForSiteSettingsCategoryList(
-            Context context, String profileName, boolean isIncognito) {
-        Bundle extras = createSettingsExtras(profileName, isIncognito);
-        extras.putString(SettingsFragmentArgs.FRAGMENT_NAME, SettingsFragmentArgs.CATEGORY_LIST);
-        return createIntentWithExtras(context, extras);
-    }
-
-    /** Creates an Intent that launches the settings UI for a single category. */
-    public static Intent createIntentForSiteSettingsSingleCategory(Context context,
-            String profileName, boolean isIncognito, String categoryType, String categoryTitle) {
-        Bundle extras = createSettingsExtras(profileName, isIncognito);
-        extras.putString(SettingsFragmentArgs.FRAGMENT_NAME, SettingsFragmentArgs.SINGLE_CATEGORY);
-
-        Bundle fragmentArgs = new Bundle();
-        fragmentArgs.putString(SettingsFragmentArgs.SINGLE_CATEGORY_TYPE, categoryType);
-        fragmentArgs.putString(SettingsFragmentArgs.SINGLE_CATEGORY_TITLE, categoryTitle);
-        extras.putBundle(SettingsFragmentArgs.FRAGMENT_ARGUMENTS, fragmentArgs);
-        return createIntentWithExtras(context, extras);
-    }
-
-    /** Creates an Intent that launches the single website settings UI. */
-    public static Intent createIntentForSiteSettingsSingleWebsite(
-            Context context, String profileName, boolean isIncognito, String url) {
-        Bundle extras = createSettingsExtras(profileName, isIncognito);
-        extras.putString(SettingsFragmentArgs.FRAGMENT_NAME, SettingsFragmentArgs.SINGLE_WEBSITE);
-
-        Bundle fragmentArgs = new Bundle();
-        fragmentArgs.putString(SettingsFragmentArgs.SINGLE_WEBSITE_URL, url);
-        extras.putBundle(SettingsFragmentArgs.FRAGMENT_ARGUMENTS, fragmentArgs);
-        return createIntentWithExtras(context, extras);
-    }
-
-    /** Creates an Intent that launches the all sites settings UI. */
-    public static Intent createIntentForSiteSettingsAllSites(
-            Context context, String profileName, boolean isIncognito, String type, String title) {
-        Bundle extras = createSettingsExtras(profileName, isIncognito);
-        extras.putString(SettingsFragmentArgs.FRAGMENT_NAME, SettingsFragmentArgs.ALL_SITES);
-
-        Bundle fragmentArgs = new Bundle();
-        fragmentArgs.putString(SettingsFragmentArgs.ALL_SITES_TITLE, title);
-        fragmentArgs.putString(SettingsFragmentArgs.ALL_SITES_TYPE, type);
-        extras.putBundle(SettingsFragmentArgs.FRAGMENT_ARGUMENTS, fragmentArgs);
-        return createIntentWithExtras(context, extras);
-    }
-
-    public static Intent createIntentForAccessibilitySettings(
-            Context context, String profileName, boolean isIncognito) {
-        Bundle extras = createSettingsExtras(profileName, isIncognito);
-        extras.putString(SettingsFragmentArgs.FRAGMENT_NAME, SettingsFragmentArgs.ACCESSIBILITY);
-        return createIntentWithExtras(context, extras);
-    }
-
-    private static Intent createIntentWithExtras(Context context, Bundle extras) {
-        Intent intent = new Intent();
-        intent.setClassName(context, SettingsFragmentArgs.ACTIVITY_CLASS_NAME);
-        intent.putExtras(extras);
-        return intent;
-    }
-
-    private SettingsIntentHelper() {}
-}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/settings/SettingsFragmentImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/settings/SettingsFragmentImpl.java
deleted file mode 100644
index 697251d..0000000
--- a/weblayer/browser/java/org/chromium/weblayer_private/settings/SettingsFragmentImpl.java
+++ /dev/null
@@ -1,237 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.weblayer_private.settings;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.ContextThemeWrapper;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnAttachStateChangeListener;
-import android.view.ViewGroup;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-
-import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
-import org.chromium.components.browser_ui.settings.SettingsUtils;
-import org.chromium.components.browser_ui.site_settings.AllSiteSettings;
-import org.chromium.components.browser_ui.site_settings.SingleCategorySettings;
-import org.chromium.components.browser_ui.site_settings.SingleWebsiteSettings;
-import org.chromium.components.browser_ui.site_settings.SiteSettings;
-import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
-import org.chromium.components.browser_ui.site_settings.Website;
-import org.chromium.components.browser_ui.site_settings.WebsiteAddress;
-import org.chromium.components.embedder_support.application.ClassLoaderContextWrapperFactory;
-import org.chromium.weblayer_private.FragmentHostingRemoteFragmentImpl;
-import org.chromium.weblayer_private.ProfileImpl;
-import org.chromium.weblayer_private.ProfileManager;
-import org.chromium.weblayer_private.R;
-import org.chromium.weblayer_private.interfaces.IRemoteFragment;
-import org.chromium.weblayer_private.interfaces.ISettingsFragment;
-import org.chromium.weblayer_private.interfaces.ISiteSettingsFragment;
-import org.chromium.weblayer_private.interfaces.SettingsFragmentArgs;
-import org.chromium.weblayer_private.interfaces.SettingsIntentHelper;
-import org.chromium.weblayer_private.interfaces.StrictModeWorkaround;
-
-/**
- * WebLayer's implementation of the client library's SettingsFragment.
- *
- * This class creates an instance of the Fragment given in its FRAGMENT_NAME argument.
- */
-public class SettingsFragmentImpl extends FragmentHostingRemoteFragmentImpl {
-    private static final String FRAGMENT_TAG = "settings_fragment";
-
-    private final ProfileImpl mProfile;
-    private final Class<? extends PreferenceFragmentCompat> mFragmentClass;
-    private final Bundle mFragmentArguments;
-
-    private static class SettingsContext
-            extends FragmentHostingRemoteFragmentImpl.RemoteFragmentContext
-            implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
-        private final Context mEmbedderContext;
-        private final SettingsFragmentImpl mFragmentImpl;
-
-        public SettingsContext(SettingsFragmentImpl fragmentImpl, Context embedderContext) {
-            super(new ContextThemeWrapper(ClassLoaderContextWrapperFactory.get(embedderContext),
-                    R.style.Theme_WebLayer_Settings));
-            getTheme().applyStyle(R.style.ColorOverlay_WebLayer, /*force=*/true);
-            mEmbedderContext = embedderContext;
-            mFragmentImpl = fragmentImpl;
-        }
-
-        @Override
-        public boolean onPreferenceStartFragment(
-                PreferenceFragmentCompat caller, Preference preference) {
-            // WebLayer's SettingsActivity structures its arguments differently than the
-            // implementation Fragments do. This is to avoid hardcoding implementation class names
-            // in //components in the API, and because the Fragments in //components rely on
-            // passing serialized Objects to each other, which aren't passable to the embedder
-            // because they live in different ClassLoaders. This block of code translates the
-            // Fragment arguments provided by the implementation Fragments to what the WebLayer API
-            // expects, and then tells the client-side Activity to start the new Site Settings page.
-            Intent intent;
-            String newFragmentClassName = preference.getFragment();
-            Bundle newFragmentArgs = preference.getExtras();
-            ProfileImpl profile = mFragmentImpl.getProfile();
-            if (newFragmentClassName.equals(SiteSettings.class.getName())) {
-                intent = SettingsIntentHelper.createIntentForSiteSettingsCategoryList(
-                        mEmbedderContext, profile.getName(), profile.isIncognito());
-            } else if (newFragmentClassName.equals(SingleCategorySettings.class.getName())) {
-                intent = SettingsIntentHelper.createIntentForSiteSettingsSingleCategory(
-                        mEmbedderContext, profile.getName(), profile.isIncognito(),
-                        newFragmentArgs.getString(SingleCategorySettings.EXTRA_CATEGORY),
-                        newFragmentArgs.getString(SingleCategorySettings.EXTRA_TITLE));
-            } else if (newFragmentClassName.equals(AllSiteSettings.class.getName())) {
-                intent = SettingsIntentHelper.createIntentForSiteSettingsAllSites(mEmbedderContext,
-                        profile.getName(), profile.isIncognito(),
-                        newFragmentArgs.getString(AllSiteSettings.EXTRA_CATEGORY),
-                        newFragmentArgs.getString(AllSiteSettings.EXTRA_TITLE));
-            } else if (newFragmentClassName.equals(SingleWebsiteSettings.class.getName())) {
-                WebsiteAddress address;
-                if (newFragmentArgs.containsKey(SingleWebsiteSettings.EXTRA_SITE)) {
-                    Website website = (Website) newFragmentArgs.getSerializable(
-                            SingleWebsiteSettings.EXTRA_SITE);
-                    address = website.getAddress();
-                } else if (newFragmentArgs.containsKey(SingleWebsiteSettings.EXTRA_SITE_ADDRESS)) {
-                    address = (WebsiteAddress) newFragmentArgs.getSerializable(
-                            SingleWebsiteSettings.EXTRA_SITE_ADDRESS);
-                } else {
-                    throw new IllegalArgumentException("No website provided");
-                }
-                intent = SettingsIntentHelper.createIntentForSiteSettingsSingleWebsite(
-                        mEmbedderContext, profile.getName(), profile.isIncognito(),
-                        address.getOrigin());
-            } else if (newFragmentClassName.equals(AccessibilitySettings.class.getName())) {
-                intent = SettingsIntentHelper.createIntentForAccessibilitySettings(
-                        mEmbedderContext, profile.getName(), profile.isIncognito());
-            } else {
-                throw new IllegalArgumentException("Unsupported Fragment: " + newFragmentClassName);
-            }
-            mFragmentImpl.getActivity().startActivity(intent);
-            return true;
-        }
-    }
-
-    public SettingsFragmentImpl(ProfileManager profileManager, Bundle intentExtras) {
-        super();
-        String profileName = intentExtras.getString(SettingsFragmentArgs.PROFILE_NAME);
-        boolean isIncognito = intentExtras.getBoolean(
-                SettingsFragmentArgs.IS_INCOGNITO_PROFILE, /*defaultValue=*/profileName.equals(""));
-        mProfile = profileManager.getProfile(profileName, isIncognito);
-
-        // Convert the WebLayer ABI's Site Settings arguments into the format the Site Settings
-        // implementation fragments expect.
-        Bundle fragmentArgs = intentExtras.getBundle(SettingsFragmentArgs.FRAGMENT_ARGUMENTS);
-        switch (intentExtras.getString(SettingsFragmentArgs.FRAGMENT_NAME)) {
-            case SettingsFragmentArgs.ALL_SITES:
-                mFragmentClass = AllSiteSettings.class;
-                mFragmentArguments = new Bundle();
-                mFragmentArguments.putString(AllSiteSettings.EXTRA_TITLE,
-                        fragmentArgs.getString(SettingsFragmentArgs.ALL_SITES_TITLE));
-                mFragmentArguments.putString(AllSiteSettings.EXTRA_CATEGORY,
-                        fragmentArgs.getString(SettingsFragmentArgs.ALL_SITES_TYPE));
-                break;
-            case SettingsFragmentArgs.CATEGORY_LIST:
-                mFragmentClass = SiteSettings.class;
-                mFragmentArguments = null;
-                break;
-            case SettingsFragmentArgs.SINGLE_CATEGORY:
-                mFragmentClass = SingleCategorySettings.class;
-                mFragmentArguments = new Bundle();
-                mFragmentArguments.putString(SingleCategorySettings.EXTRA_TITLE,
-                        fragmentArgs.getString(SettingsFragmentArgs.SINGLE_CATEGORY_TITLE));
-                mFragmentArguments.putString(SingleCategorySettings.EXTRA_CATEGORY,
-                        fragmentArgs.getString(SettingsFragmentArgs.SINGLE_CATEGORY_TYPE));
-                break;
-            case SettingsFragmentArgs.SINGLE_WEBSITE:
-                mFragmentClass = SingleWebsiteSettings.class;
-                mFragmentArguments = SingleWebsiteSettings.createFragmentArgsForSite(
-                        fragmentArgs.getString(SettingsFragmentArgs.SINGLE_WEBSITE_URL));
-                break;
-            case SettingsFragmentArgs.ACCESSIBILITY:
-                mFragmentClass = AccessibilitySettings.class;
-                mFragmentArguments = null;
-                break;
-            default:
-                throw new IllegalArgumentException("Unknown Site Settings Fragment");
-        }
-    }
-
-    @Override
-    protected FragmentHostingRemoteFragmentImpl.RemoteFragmentContext createRemoteFragmentContext(
-            Context embedderContext) {
-        return new SettingsContext(this, embedderContext);
-    }
-
-    @Override
-    public View onCreateView(ViewGroup container, Bundle savedInstanceState) {
-        LayoutInflater inflater = (LayoutInflater) getWebLayerContext().getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-        if (getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG) == null) {
-            try {
-                PreferenceFragmentCompat settingsFragment = mFragmentClass.newInstance();
-                settingsFragment.setArguments(mFragmentArguments);
-                if (settingsFragment instanceof SiteSettingsPreferenceFragment) {
-                    ((SiteSettingsPreferenceFragment) settingsFragment)
-                            .setSiteSettingsDelegate(new WebLayerSiteSettingsDelegate(mProfile));
-                } else if (settingsFragment instanceof AccessibilitySettings) {
-                    ((AccessibilitySettings) settingsFragment)
-                            .setDelegate(new WebLayerAccessibilitySettingsDelegate(mProfile));
-                }
-                getSupportFragmentManager()
-                        .beginTransaction()
-                        .add(R.id.settings_container, settingsFragment, FRAGMENT_TAG)
-                        .commitNow();
-            } catch (IllegalAccessException | InstantiationException e) {
-                throw new RuntimeException("Failed to create Settings Fragment", e);
-            }
-        }
-
-        View root = inflater.inflate(R.layout.settings_layout, container, /*attachToRoot=*/false);
-        root.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
-            @Override
-            public void onViewAttachedToWindow(View view) {
-                // Add the shadow scroll listener here once the View is attached to the Window.
-                PreferenceFragmentCompat preferenceFragment =
-                        (PreferenceFragmentCompat) getSupportFragmentManager().findFragmentByTag(
-                                FRAGMENT_TAG);
-                ViewGroup listView = preferenceFragment.getListView();
-                listView.getViewTreeObserver().addOnScrollChangedListener(
-                        SettingsUtils.getShowShadowOnScrollListener(
-                                listView, view.findViewById(R.id.shadow)));
-            }
-
-            @Override
-            public void onViewDetachedFromWindow(View v) {}
-        });
-        return root;
-    }
-
-    public ISettingsFragment asISettingsFragment() {
-        return new ISettingsFragment.Stub() {
-            @Override
-            public IRemoteFragment asRemoteFragment() {
-                StrictModeWorkaround.apply();
-                return SettingsFragmentImpl.this;
-            }
-        };
-    }
-
-    public ISiteSettingsFragment asISiteSettingsFragment() {
-        return new ISiteSettingsFragment.Stub() {
-            @Override
-            public IRemoteFragment asRemoteFragment() {
-                StrictModeWorkaround.apply();
-                return SettingsFragmentImpl.this;
-            }
-        };
-    }
-
-    private ProfileImpl getProfile() {
-        return mProfile;
-    }
-}
diff --git a/weblayer/browser/java/res/layout/settings_layout.xml b/weblayer/browser/java/res/layout/settings_layout.xml
deleted file mode 100644
index 1e6891a..0000000
--- a/weblayer/browser/java/res/layout/settings_layout.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright 2020 The Chromium Authors
-Use of this source code is governed by a BSD-style license that can be
-found in the LICENSE file.
--->
-
-<RelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-  <FrameLayout
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:id="@+id/settings_container">
-  </FrameLayout>
-  <include layout="@layout/settings_action_bar_shadow" />
-</RelativeLayout>
diff --git a/weblayer/public/java/BUILD.gn b/weblayer/public/java/BUILD.gn
index 3abed3f..61bbd82 100644
--- a/weblayer/public/java/BUILD.gn
+++ b/weblayer/public/java/BUILD.gn
@@ -97,7 +97,6 @@
     "org/chromium/weblayer/ScrollNotificationType.java",
     "org/chromium/weblayer/ScrollOffsetCallback.java",
     "org/chromium/weblayer/SettingType.java",
-    "org/chromium/weblayer/SettingsFragmentEventHandler.java",
     "org/chromium/weblayer/Tab.java",
     "org/chromium/weblayer/TabCallback.java",
     "org/chromium/weblayer/TabListCallback.java",
diff --git a/weblayer/public/java/org/chromium/weblayer/CookieManager.java b/weblayer/public/java/org/chromium/weblayer/CookieManager.java
index f903e3d6..52cb234 100644
--- a/weblayer/public/java/org/chromium/weblayer/CookieManager.java
+++ b/weblayer/public/java/org/chromium/weblayer/CookieManager.java
@@ -66,8 +66,6 @@
             mImpl.setCookie(uri.toString(), value, ObjectWrapper.wrap(valueCallback));
         } catch (RemoteException e) {
             throw new APICallException(e);
-        } catch (RuntimeException e) {
-            ExceptionHelper.reraise(e);
         }
     }
 
@@ -87,8 +85,6 @@
             mImpl.getCookie(uri.toString(), ObjectWrapper.wrap(valueCallback));
         } catch (RemoteException e) {
             throw new APICallException(e);
-        } catch (RuntimeException e) {
-            ExceptionHelper.reraise(e);
         }
     }
 
diff --git a/weblayer/public/java/org/chromium/weblayer/CookieManagerDelegate.java b/weblayer/public/java/org/chromium/weblayer/CookieManagerDelegate.java
index e513b95..324c7de3 100644
--- a/weblayer/public/java/org/chromium/weblayer/CookieManagerDelegate.java
+++ b/weblayer/public/java/org/chromium/weblayer/CookieManagerDelegate.java
@@ -13,7 +13,7 @@
 import org.chromium.webengine.interfaces.IBooleanCallback;
 import org.chromium.webengine.interfaces.ICookieManagerDelegate;
 import org.chromium.webengine.interfaces.IStringCallback;
-import org.chromium.weblayer_private.interfaces.RestrictedAPIException;
+import org.chromium.weblayer_private.interfaces.APICallException;
 
 /**
  * This class acts as a proxy between the embedding app's WebFragment and
@@ -31,15 +31,21 @@
     public void setCookie(String uri, String value, IBooleanCallback callback) {
         mHandler.post(() -> {
             try {
-                mCookieManager.setCookie(Uri.parse(uri), value, (Boolean v) -> {
+                mCookieManager.setCookie(Uri.parse(uri), value, (Boolean result) -> {
                     try {
-                        callback.onResult(v);
+                        if (!result) {
+                            // TODO(crbug.com/1392110): Pass a useful exception message.
+                            // TODO(crbug.com/1392110): Distinguish exceptions from failures.
+                            callback.onException(ExceptionType.RESTRICTED_API, "");
+                        } else {
+                            callback.onResult(true);
+                        }
                     } catch (RemoteException e) {
                     }
                 });
-            } catch (RestrictedAPIException e) {
+            } catch (APICallException e) {
                 try {
-                    callback.onException(ExceptionType.RESTRICTED_API, e.getMessage());
+                    callback.onException(ExceptionType.UNKNOWN, e.getMessage());
                 } catch (RemoteException re) {
                 }
             }
@@ -52,13 +58,18 @@
             try {
                 mCookieManager.getCookie(Uri.parse(uri), (String result) -> {
                     try {
-                        callback.onResult(result);
+                        if (result == null) {
+                            // TODO(crbug.com/1392110): Pass a useful exception message.
+                            callback.onException(ExceptionType.RESTRICTED_API, "");
+                        } else {
+                            callback.onResult(result);
+                        }
                     } catch (RemoteException e) {
                     }
                 });
-            } catch (RestrictedAPIException e) {
+            } catch (APICallException e) {
                 try {
-                    callback.onException(ExceptionType.RESTRICTED_API, e.getMessage());
+                    callback.onException(ExceptionType.UNKNOWN, e.getMessage());
                 } catch (RemoteException re) {
                 }
             }
diff --git a/weblayer/public/java/org/chromium/weblayer/SettingsFragmentEventHandler.java b/weblayer/public/java/org/chromium/weblayer/SettingsFragmentEventHandler.java
deleted file mode 100644
index 247704b2..0000000
--- a/weblayer/public/java/org/chromium/weblayer/SettingsFragmentEventHandler.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2020 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.weblayer;
-
-import android.content.Context;
-import android.os.Bundle;
-
-import org.chromium.weblayer_private.interfaces.IRemoteFragment;
-
-/**
- * This is for Fragments that can be shown within an embedder's UI, and proxies its lifecycle events
- * to a SettingsFragmentImpl object on the implementation side. This class is an implementation
- * detail and should not be used by an embedder directly.
- *
- * TODO(rayankans): Expose Settings to the client side.
- *
- * @since 89
- */
-class SettingsFragmentEventHandler extends RemoteFragmentEventHandler {
-    public SettingsFragmentEventHandler(Bundle args) {
-        super(args);
-        assert args != null;
-    }
-
-    @Override
-    protected IRemoteFragment createRemoteFragmentEventHandler(Context appContext) {
-        try {
-            Bundle args = getArguments();
-            return WebLayer.loadSync(appContext).connectSettingsFragment(args).asRemoteFragment();
-        } catch (Exception e) {
-            throw new RuntimeException("Failed to initialize WebLayer", e);
-        }
-    }
-}
diff --git a/weblayer/public/java/org/chromium/weblayer/WebLayer.java b/weblayer/public/java/org/chromium/weblayer/WebLayer.java
index 58a2577..867c3fc6 100644
--- a/weblayer/public/java/org/chromium/weblayer/WebLayer.java
+++ b/weblayer/public/java/org/chromium/weblayer/WebLayer.java
@@ -28,7 +28,6 @@
 import org.chromium.weblayer_private.interfaces.IBrowserFragment;
 import org.chromium.weblayer_private.interfaces.IMediaRouteDialogFragment;
 import org.chromium.weblayer_private.interfaces.IProfile;
-import org.chromium.weblayer_private.interfaces.ISettingsFragment;
 import org.chromium.weblayer_private.interfaces.IWebLayer;
 import org.chromium.weblayer_private.interfaces.IWebLayerClient;
 import org.chromium.weblayer_private.interfaces.IWebLayerFactory;
@@ -520,18 +519,6 @@
     }
 
     /**
-     * Returns the remote counterpart of the SettingsFragment.
-     */
-    /* package */ ISettingsFragment connectSettingsFragment(Bundle fragmentArgs) {
-        try {
-            assert getSupportedMajorVersionInternal() >= 89;
-            return mImpl.createSettingsFragmentImpl(ObjectWrapper.wrap(fragmentArgs));
-        } catch (RemoteException e) {
-            throw new APICallException(e);
-        }
-    }
-
-    /**
      * Returns the remote counterpart of MediaRouteDialogFragment.
      */
     /* package */ IMediaRouteDialogFragment connectMediaRouteDialogFragment() {
diff --git a/weblayer/shell/android/webengine_shell_apk/src/org/chromium/webengine/shell/InstrumentationActivity.java b/weblayer/shell/android/webengine_shell_apk/src/org/chromium/webengine/shell/InstrumentationActivity.java
index b3ffae8..1f84688 100644
--- a/weblayer/shell/android/webengine_shell_apk/src/org/chromium/webengine/shell/InstrumentationActivity.java
+++ b/weblayer/shell/android/webengine_shell_apk/src/org/chromium/webengine/shell/InstrumentationActivity.java
@@ -7,6 +7,7 @@
 import android.os.Bundle;
 
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 
 import com.google.common.util.concurrent.ListenableFuture;
@@ -14,6 +15,8 @@
 import org.chromium.webengine.WebFragment;
 import org.chromium.webengine.WebSandbox;
 
+import java.util.List;
+
 /**
  * Activity for running instrumentation tests.
  */
@@ -44,4 +47,15 @@
         FragmentManager fragmentManager = getSupportFragmentManager();
         fragmentManager.beginTransaction().setReorderingAllowed(true).remove(fragment).commitNow();
     }
+
+    public WebFragment getAttachedFragment() {
+        FragmentManager fragmentManager = getSupportFragmentManager();
+        List<Fragment> fragments = fragmentManager.getFragments();
+
+        if (fragments.size() != 1) {
+            throw new IllegalStateException("Expected to have exactly 1 WebFragment.");
+        }
+
+        return (WebFragment) fragments.get(0);
+    }
 }