What changed, and why it matters
This commit is a user-interface polish change for Trezor hardware wallets. When a user chooses to reveal the passphrase they are typing, and that passphrase is very long (up to 128 characters), the device now scrolls the text so the most recently typed characters remain visible instead of running off the screen. It is a usability fix, not a security bug fix, and does not change how passphrases are stored, processed, or protected.
No security action required. Treat as a normal UI/usability improvement. Reviewers may optionally verify the new UI snapshots reflect the intended end-visible behavior for long passphrases.
Security signals we found
No changes to secret handling, cryptography, memory management, or trust boundaries
Change is purely visual/rendering behavior for an already user-visible field
No bounds-checking, parsing, or authentication logic is altered
Test fixture hashes changed only for UI snapshot tests of the passphrase reveal screen
Evidence from the diff
The change adds a new TextLayout helper, render_text_ensure_end_visible, which vertically shifts text so its bottom edge aligns with the bottom of the clip rectangle when the laid-out text is taller than the available space. The passphrase input components for the Bolt, Delizia, and Eckhart layouts now clamp the shown passphrase overlay to the screen and call this helper so the end of a long passphrase stays visible. The tests/ui_tests/fixtures.json file is updated with new expected UI hashes for the affected passphrase reveal tests (www_limit, www_shorter, over_limit). No cryptographic, input-validation, or storage code is modified.
Changed components
core/embed/rust/src/ui/component/text/layout.rscore/embed/rust/src/ui/layout_bolt/component/keyboard/passphrase.rscore/embed/rust/src/ui/layout_delizia/component/keyboard/passphrase.rscore/embed/rust/src/ui/layout_eckhart/firmware/keyboard/passphrase.rstests/ui_tests/fixtures.jsonInspect captured patch +119 / −72
### core/embed/rust/src/ui/component/text/layout.rs
@@ -261,6 +261,34 @@ impl TextLayout {
fit
}
+ /// Render the text, ensuring that the end of the text stays visible.
+ ///
+ /// If the text laid out in `self.bounds` is taller than the `clip` area,
+ /// the text is shifted upwards so that its bottom edge is aligned with
+ /// the bottom of `clip` and the beginning of the text is cut off. The
+ /// rendering is then clipped to `clip`. Otherwise, the text is rendered
+ /// normally within `self.bounds`.
+ pub fn render_text_ensure_end_visible<'s>(
+ &self,
+ text: &str,
+ clip: Rect,
+ target: &mut impl Renderer<'s>,
+ ) {
+ let height = match self.fit_text(text) {
+ LayoutFit::Fitting { height, .. } => height,
+ LayoutFit::OutOfBounds { .. } => self.bounds.height(),
+ };
+ let dy = self.bounds.y0 + height - clip.y1;
+ if dy <= 0 {
+ self.render_text(text, target, true);
+ } else {
+ let shifted = self.with_bounds(self.bounds.translate(Offset::y(-dy)));
+ target.in_clip(clip, &|target| {
+ shifted.render_text(text, target, true);
+ });
+ }
+ }
+
/// Loop through the `text` and try to fit it on the current screen,
/// reporting events to `sink`, which may do something with them (e.g. draw
/// on screen).
### core/embed/rust/src/ui/layout_bolt/component/keyboard/passphrase.rs
@@ -435,15 +435,21 @@ impl Input {
fn render_shown<'s>(&self, target: &mut impl Renderer<'s>) {
debug_assert_eq!(self.display_style, DisplayStyle::Shown);
- Bar::new(self.shown_area)
+ // Clamp the overlay to the screen and make sure that the end of the
+ // passphrase stays visible even when it overflows the screen, cutting
+ // off the beginning instead.
+ let shown_area = self.shown_area.clamp(SCREEN);
+ let text_area = shown_area.inset(Self::SHOWN_INSETS);
+
+ Bar::new(shown_area)
.with_bg(theme::GREY_DARK)
.with_radius(theme::RADIUS.into())
.render(target);
TextLayout::new(Self::STYLE)
- .with_bounds(self.shown_area.inset(Self::SHOWN_INSETS))
.with_align(Alignment::Start)
- .render_text(self.textbox.content(), target, true);
+ .with_bounds(self.shown_area.inset(Self::SHOWN_INSETS))
+ .render_text_ensure_end_visible(self.textbox.content(), text_area, target);
}
fn render_hidden<'s>(&self, target: &mut impl Renderer<'s>) {
### core/embed/rust/src/ui/layout_delizia/component/keyboard/passphrase.rs
@@ -511,16 +511,23 @@ impl Input {
fn render_shown<'s>(&self, target: &mut impl Renderer<'s>) {
debug_assert_eq!(self.display_style, DisplayStyle::Shown);
+ const SHOWN_PASSPHRASE_PAD_RADIUS: i16 = 12;
- Bar::new(self.shown_area)
+ // Clamp the overlay to the screen and make sure that the end of the
+ // passphrase stays visible even when it overflows the screen, cutting
+ // off the beginning instead.
+ let shown_area = self.shown_area.clamp(SCREEN);
+ let text_area = shown_area.inset(Self::SHOWN_INSETS);
+
+ Bar::new(shown_area)
.with_bg(theme::GREY_EXTRA_DARK)
- .with_radius(12)
+ .with_radius(SHOWN_PASSPHRASE_PAD_RADIUS)
.render(target);
TextLayout::new(Self::STYLE)
.with_align(Alignment::Start)
.with_bounds(self.shown_area.inset(Self::SHOWN_INSETS))
- .render_text(self.textbox.content(), target, true);
+ .render_text_ensure_end_visible(self.textbox.content(), text_area, target);
}
fn render_hidden<'s>(&self, target: &mut impl Renderer<'s>) {
### core/embed/rust/src/ui/layout_eckhart/firmware/keyboard/passphrase.rs
@@ -78,15 +78,21 @@ impl PassphraseInput {
// Make sure the pin should be shown
debug_assert_eq!(self.display_style, DisplayStyle::Shown);
- Bar::new(self.shown_area)
+ // Clamp the overlay to the screen and make sure that the end of the
+ // passphrase stays visible even when it overflows the screen, cutting
+ // off the beginning instead.
+ let shown_area = self.shown_area.clamp(SCREEN);
+ let text_area = shown_area.inset(SHOWN_INSETS);
+
+ Bar::new(shown_area)
.with_bg(theme::GREY_SUPER_DARK)
.with_radius(KEYBOARD_INPUT_RADIUS)
.render(target);
TextLayout::new(Self::STYLE)
- .with_bounds(self.shown_area.inset(SHOWN_INSETS))
.with_align(Alignment::Start)
- .render_text(self.content(), target, true);
+ .with_bounds(self.shown_area.inset(SHOWN_INSETS))
+ .render_text_ensure_end_visible(self.content(), text_area, target);
}
fn render_hidden<'s>(&self, target: &mut impl Renderer<'s>) {
### tests/ui_tests/fixtures.json
@@ -844,9 +844,9 @@
"T2T1_cs_test_passphrase_bde.py::test_passphrase_input[random_25]": "8cc4c372789dcc6af9ba209d5adfaabf0a80c00c4a189ac512d65db3c56365de",
"T2T1_cs_test_passphrase_bde.py::test_passphrase_input[short]": "4434ea842640a047551cac673365b113a02c83ad59aa34dffca2b38c8ba4a665",
"T2T1_cs_test_passphrase_bde.py::test_passphrase_input[with_space]": "ebaa6fa8de7b0f1d3221c8b3084b82701524eb87950fc5f914ba9f8c900494f2",
-"T2T1_cs_test_passphrase_bde.py::test_passphrase_input[www_limit]": "9c23ae528497c64a85fbd50c1944e1d1f91dc8667a9928933585261cf2c1578a",
-"T2T1_cs_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "fe1ff4a5772de141041b221cab57d14a35c6aaa7b6ba72d2853e53fad1023731",
-"T2T1_cs_test_passphrase_bde.py::test_passphrase_input_over_limit": "fd5fc95001b70e651226397cff9e1e30b3d821724abac468cfe1b9625e90626f",
+"T2T1_cs_test_passphrase_bde.py::test_passphrase_input[www_limit]": "f2e5c45d36cc30ed717614319d856078f120c7c652a435c21d071999e6056dd5",
+"T2T1_cs_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "6dfccfff56508ff091c2d954e44d246de364e86c6ea7d677b45a20cbee2f5945",
+"T2T1_cs_test_passphrase_bde.py::test_passphrase_input_over_limit": "a695b3b18618d1ab3c9dd239cc46f4066bc2ba9fe75ef7f0c5e6b013e78a6ee8",
"T2T1_cs_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "cd3da4977f4077075751cf578a15b64c5d0edeb71da49080f7670464d27a87b4",
"T2T1_cs_test_passphrase_bde.py::test_passphrase_loop_all_characters": "de4fdbc0e4079b85ad97b31fd83a5bc1bd4c4820f34507c9abdfae993e1cf9f4",
"T2T1_cs_test_passphrase_bde.py::test_passphrase_prompt_disappears": "39afd0b91af4c34028c3a46bd6541919200ce837ef2c35bdb838964c46e80f26",
@@ -899,9 +899,9 @@
"T2T1_de_test_passphrase_bde.py::test_passphrase_input[random_25]": "933928142395197793552d5efc8925bf8a89fc105298223cb9cfd14d254600a8",
"T2T1_de_test_passphrase_bde.py::test_passphrase_input[short]": "5222a9f196320d6f07380b40c862e860e8d13431f28cde16622a75ca8c4e91bc",
"T2T1_de_test_passphrase_bde.py::test_passphrase_input[with_space]": "6b3495132a82b22c60d5bbbfcad3c023c45ed6737f55d7be5459f257fa1389b8",
-"T2T1_de_test_passphrase_bde.py::test_passphrase_input[www_limit]": "005680553bf5974538e15a8f18bef3d7c203b3035e55f4deb6f6c9ab4ede3688",
-"T2T1_de_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "5dacd9c12c60572ac9699974a7db2249f841a0e663841acdf804d5ffc5511e4a",
-"T2T1_de_test_passphrase_bde.py::test_passphrase_input_over_limit": "4953eff589c290ccd728b76244a1acae63f33c3fe37f7544fe5ac13a5add8007",
+"T2T1_de_test_passphrase_bde.py::test_passphrase_input[www_limit]": "fdd6fb7cdb652803bd7773db2825903c6602eaa909f8564c7671d35a58cf0d11",
+"T2T1_de_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "9b782b027e5e0a379a9e3fc842d004198a65d0172b703bc073c0c05f890a5408",
+"T2T1_de_test_passphrase_bde.py::test_passphrase_input_over_limit": "b30b4c1aab663c6939216fc17ac56dc6e37ec53e0303358ad6c34170083f289f",
"T2T1_de_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "9a63b5c804e4fa00913fb3b250249ffc3682864257af8a4f7cea1df34467b245",
"T2T1_de_test_passphrase_bde.py::test_passphrase_loop_all_characters": "c1cd9534f82be2a79797ab8d9cd1725fec7e12ff9c7d373bd02328b7c563142b",
"T2T1_de_test_passphrase_bde.py::test_passphrase_prompt_disappears": "02367699fb05fa802ca400fc94a6924d2db20d42313e4c387abb7910a8d8d71b",
@@ -954,9 +954,9 @@
"T2T1_en_test_passphrase_bde.py::test_passphrase_input[random_25]": "8f6831c41796dc4618afd67f233e853ee74e9a3226c8f90d8ec74e7ba1298833",
"T2T1_en_test_passphrase_bde.py::test_passphrase_input[short]": "4722b35c84cf8a3d848bf67a1ee95d4e96c6dc487970258f1db9ebc4ba257e3d",
"T2T1_en_test_passphrase_bde.py::test_passphrase_input[with_space]": "1b1aa539cc9c752518062dc9841e0aa5bf36345a5864e9630c1cec185da8e31f",
-"T2T1_en_test_passphrase_bde.py::test_passphrase_input[www_limit]": "c07ea94299cd74e53aadf21ffd7dc716ce586c83a342ddfd620a106da673ed53",
-"T2T1_en_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "c19bb519620729e48d921fe3a151b1672b7f5c4a0082c830a6615bfc4cbd560f",
-"T2T1_en_test_passphrase_bde.py::test_passphrase_input_over_limit": "1c1c8098964d9b6f1400cc8a376d92c399e765b17f35847ef91baa63a2e15cfe",
+"T2T1_en_test_passphrase_bde.py::test_passphrase_input[www_limit]": "73f6f9b8c242490c2e478f08b3cce07ce5a7785170161ccd1f2eabec7bf2925b",
+"T2T1_en_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "bb40c2d8e7d81f9ca4a9af974d878965f4c04412c3ba31421b538c38803f18df",
+"T2T1_en_test_passphrase_bde.py::test_passphrase_input_over_limit": "c381f8e4d152c9f5555c0b03d69a6d81376dfb54def94407ee64216886f06ead",
"T2T1_en_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "bcbb7c33281501a36e8f7a785b069d51bcdc4c41f6d9dd174ad0b1524ce25275",
"T2T1_en_test_passphrase_bde.py::test_passphrase_loop_all_characters": "4e77394b85a951b8af24c36124487e4ec744e0a63469288867a6fdb1658b1ce8",
"T2T1_en_test_passphrase_bde.py::test_passphrase_prompt_disappears": "0c04d52306b94856490216a07ab557aea793d0565944a1dabefda144a5a301a8",
@@ -1009,9 +1009,9 @@
"T2T1_es_test_passphrase_bde.py::test_passphrase_input[random_25]": "37a98a8c61dbfa452041dc0b80b7ce739ad0ba8930e78536d054f115993966e0",
"T2T1_es_test_passphrase_bde.py::test_passphrase_input[short]": "360d8aa69d5a4ff4a781b3219722a91dccc81bc830fdd8d2ec8e674a177d46f1",
"T2T1_es_test_passphrase_bde.py::test_passphrase_input[with_space]": "6c844b165de2dbfbbfe13d646b7287f49c5ce4a5be503353fc64b58213ac7a91",
-"T2T1_es_test_passphrase_bde.py::test_passphrase_input[www_limit]": "9bd77d0fdea47a49a732c20fda8bd1d0c20ee211c11108e20322f4c74acccc0b",
-"T2T1_es_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "ee050fcb924b678f0e1d183ec7c7236924fe2416dc2bcde550a0ff6bbf670b72",
-"T2T1_es_test_passphrase_bde.py::test_passphrase_input_over_limit": "011606ec45981715f49983e7e9e13e9eebf0355f1141cb61860d3e0caadc5398",
+"T2T1_es_test_passphrase_bde.py::test_passphrase_input[www_limit]": "388817571a87019f5aa0ca7290162b46f94063919e8778f3c22187d39460e6ae",
+"T2T1_es_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "24dc3ab66bb315500c043487bb3666a82b61ac788ba3d8ce3b0c8c9283d79eaa",
+"T2T1_es_test_passphrase_bde.py::test_passphrase_input_over_limit": "95c8ba498c8f868b43bcdb17c717c805bb86fbbb3d2d6574d950b03da089e375",
"T2T1_es_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "d119a22de807a0c765b6ea8934ffabb938047a65d072049046ccc8cbfd02348d",
"T2T1_es_test_passphrase_bde.py::test_passphrase_loop_all_characters": "01658becb9e6527d63dc9c01e84937d2dc9d2d42b05090a1bbfe4439aac9cbe0",
"T2T1_es_test_passphrase_bde.py::test_passphrase_prompt_disappears": "d818fea94df09715a0e700794aeae20839a36e1b5740a82296d0e6c71a3e6468",
@@ -1064,9 +1064,9 @@
"T2T1_fr_test_passphrase_bde.py::test_passphrase_input[random_25]": "a7ae1a28b7810aa40d3700c226005ab63e0a3600a11741a501d992338c04a5e9",
"T2T1_fr_test_passphrase_bde.py::test_passphrase_input[short]": "3dd626f9e7b70e5dd8070b5742f7e3051077fa30514d7f18845f76ba74318abc",
"T2T1_fr_test_passphrase_bde.py::test_passphrase_input[with_space]": "1827d8843df1362c93fe037e63c6641bb3753d652cab5e9417c9f96644b8f96c",
-"T2T1_fr_test_passphrase_bde.py::test_passphrase_input[www_limit]": "c6f2a5b6148c27a0d9d8c4483c597a52dfac15d8eefb1605ac7df0af6056a24f",
-"T2T1_fr_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "7c2dcdc32c158eedb156e9f052dfea453789aa6c64d0742b9d0b6cf19f1ebf83",
-"T2T1_fr_test_passphrase_bde.py::test_passphrase_input_over_limit": "4c59b888a5b3c6bed5e8d39562fed25b6e6cc71487b45dbfcf66911371252850",
+"T2T1_fr_test_passphrase_bde.py::test_passphrase_input[www_limit]": "033527ad09b41fda3c51939c21e693ed96a212431970d1c164f3968e5ffca257",
+"T2T1_fr_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "3f4ef1494aed5675b7eca36579668dc615211e5404279bb0b253b3b04547a3a1",
+"T2T1_fr_test_passphrase_bde.py::test_passphrase_input_over_limit": "d1bbd1e11af74b850bae3b07eb09518e39191fc7de9e581f3e8f89f1acb23d5e",
"T2T1_fr_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "f96aae8785ef7bc3558bf0d99ac7b90f18917dd87636e769d291ecd40a4084eb",
"T2T1_fr_test_passphrase_bde.py::test_passphrase_loop_all_characters": "839c007ccf62ed240145f31fc83a77933121f0cffe48f082b4df38ec9f30427d",
"T2T1_fr_test_passphrase_bde.py::test_passphrase_prompt_disappears": "61eb5909890548094d72fa4b3540ee6e632c0d236bb8040eb833651f71d0a919",
@@ -1119,9 +1119,9 @@
"T2T1_id_test_passphrase_bde.py::test_passphrase_input[random_25]": "7b0905b3cf0b776a9afaa8dca7fb42e8dd8ecf798384db242b74ecb3c8513326",
"T2T1_id_test_passphrase_bde.py::test_passphrase_input[short]": "ecb21b16f26efcc433b647460b22b6c37a8d60bb8819c76cf3b87b1887307640",
"T2T1_id_test_passphrase_bde.py::test_passphrase_input[with_space]": "ddee5a1e931506bc93d9ad3383c224d11d04ab069e648c9f93ff2f4b481a3bb5",
-"T2T1_id_test_passphrase_bde.py::test_passphrase_input[www_limit]": "563f43b84c3727575d121ece27419e50360057089486b679aa554de6b112808a",
-"T2T1_id_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "14ee366da38092ad2d442a0d760cb0c496307954d0d5b560a6216329fd76cdd8",
-"T2T1_id_test_passphrase_bde.py::test_passphrase_input_over_limit": "02ac3677e182326cc35d5f6dcf78ade8c117740eb0376808900117d9526a8896",
+"T2T1_id_test_passphrase_bde.py::test_passphrase_input[www_limit]": "aa93198a95737a0ac7e1bf017c643a4c9eea2565ed7190abdbe27d19aa0fd51b",
+"T2T1_id_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "ed90704c01614d7a5b02d2b57e338e2818f0ae6dca8e7a774dd5c93ea7b5103a",
+"T2T1_id_test_passphrase_bde.py::test_passphrase_input_over_limit": "6ddd4bfb2e0e99ced1525ec829021f8d918689595e77e5ed0ee2e125ec09c011",
"T2T1_id_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "fc66cbb487a6de3352e7927070dfc49a43f289bc82558e5754f98f65201df7fc",
"T2T1_id_test_passphrase_bde.py::test_passphrase_loop_all_characters": "ce5dc2236cab5d9cfc4fc30c2d321b9b04d59f10b296f942eb01f28403e5d7fb",
"T2T1_id_test_passphrase_bde.py::test_passphrase_prompt_disappears": "9bfd3e670bb280e1ace468451afdcb53242556c9dfe276fb757f2638cf855d88",
@@ -1174,9 +1174,9 @@
"T2T1_pt_test_passphrase_bde.py::test_passphrase_input[random_25]": "3eb1e33af72aed152e5ec231958a753ed0c14e0ef763bf9d257caaa110743965",
"T2T1_pt_test_passphrase_bde.py::test_passphrase_input[short]": "fd63a24219c7d9cac7f2bc41d5b8fabf1a6cd04f9b66c163567d6647351eb0df",
"T2T1_pt_test_passphrase_bde.py::test_passphrase_input[with_space]": "75ac64f47ab3ffd5b7feb40026079cb795126246e47ab3f13011348b2cbfdc6c",
-"T2T1_pt_test_passphrase_bde.py::test_passphrase_input[www_limit]": "7d3a529f3758b08b9fcad37fa546a477ff8daa7f8a6c5eca0bc7f37845a4d25a",
-"T2T1_pt_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "bc61300c648504e75cd9df84c01962fb8982171aa05fcf9686c351b92a6e4004",
-"T2T1_pt_test_passphrase_bde.py::test_passphrase_input_over_limit": "dc110a9696fd1539932eeb0e6b42dc610d92dbfa8eefd1e4a5259b6fe1edee5f",
+"T2T1_pt_test_passphrase_bde.py::test_passphrase_input[www_limit]": "a6f05ccae6fda1121d2b1e47872135ea3e36cd136900366b8a44457baca88449",
+"T2T1_pt_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "272a765825a733c4da0479070d3520daef4d820aa33d8c047f8fb95549a0423f",
+"T2T1_pt_test_passphrase_bde.py::test_passphrase_input_over_limit": "77d907e0bb59e1cd43df9f73d55355948e557107f3c4f813a6ca0e0b5031730b",
"T2T1_pt_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "1504475f178f44bf0c626e49202e2e9afe6309a0b71f6b69a3dae4bcb01c1405",
"T2T1_pt_test_passphrase_bde.py::test_passphrase_loop_all_characters": "52a26bf832603d971281204ea6f8d24398fc1ed4315aba5d02b0c6079facfac3",
"T2T1_pt_test_passphrase_bde.py::test_passphrase_prompt_disappears": "7ef372b57f9babb32a04157c4f8fff1055f4c888c35cf5af9c0301e85c0ecec8",
@@ -28266,9 +28266,9 @@
"T3T1_cs_test_passphrase_bde.py::test_passphrase_input[random_25]": "857069bd3ea03a5f6eaaa8ee07075b41a63092694ef0e79640b3e2557d4d526a",
"T3T1_cs_test_passphrase_bde.py::test_passphrase_input[short]": "804f6d88c5433a6f854c914078c7a3a89a79ac77b2dc91b90f0851052dc50e60",
"T3T1_cs_test_passphrase_bde.py::test_passphrase_input[with_space]": "d2878296f87bc136447cf09601db68a8df914f99234b2231c729eabf610287f5",
-"T3T1_cs_test_passphrase_bde.py::test_passphrase_input[www_limit]": "7ef813e5a2c1d04ce1b0f6019db7bb685e8a75474c63a2f99689e10bac090c79",
-"T3T1_cs_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "e13349565c3e4ad15e6f0ae87f163fee94f4e6267337aa53de2b4b10b65ce2f3",
-"T3T1_cs_test_passphrase_bde.py::test_passphrase_input_over_limit": "b4c586210010f9ba82e838e883977e54ed23627ba9526b504418a00bb8815008",
+"T3T1_cs_test_passphrase_bde.py::test_passphrase_input[www_limit]": "678d6228066b6d42042a8d159dc8fce7de97700eb3ca83e0f8f87cd0ecdfa60a",
+"T3T1_cs_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "7da43811cae165346061ff31866ab82c9b8b245e6880ebeb14259e05cc15be7d",
+"T3T1_cs_test_passphrase_bde.py::test_passphrase_input_over_limit": "c4a83bd1bc23d9b157487d09639ea6f1c033703e64ad3346fb638bc2e6e4f296",
"T3T1_cs_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "a1381399813aa11671386c551e3b3619d5002fd5dfd66dafb0c1b4ed36cdc76c",
"T3T1_cs_test_passphrase_bde.py::test_passphrase_loop_all_characters": "63636b400a0713627c279aa17a3a21f022e60fb0f9659e398d3e156edbf9e373",
"T3T1_cs_test_passphrase_bde.py::test_passphrase_prompt_disappears": "aa1375088611fbbeadcf18e33f44c9be43f8503f56c614bf1f7115799d16d57b",
@@ -28326,9 +28326,9 @@
"T3T1_de_test_passphrase_bde.py::test_passphrase_input[random_25]": "e0cdc50d45a976690a24e1951987334741d67132b11d502566bd4b590f35f087",
"T3T1_de_test_passphrase_bde.py::test_passphrase_input[short]": "b26f149cea53a63220809e1ae074588f7d22dc39c1623db2e398292448c7b67f",
"T3T1_de_test_passphrase_bde.py::test_passphrase_input[with_space]": "c035f089e816281269ac4dd92c5ad632c4bef69c9486acf2436f1fd8b3856fc0",
-"T3T1_de_test_passphrase_bde.py::test_passphrase_input[www_limit]": "33febc11fea1568677437d6eb60c778a6f09cdfb81d7ee2c15ae95d9d5b8d94a",
-"T3T1_de_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "88a8c217106b33ad570e0551ccb24df0d8b914ae520102c989875c6ef39950fe",
-"T3T1_de_test_passphrase_bde.py::test_passphrase_input_over_limit": "597443ff3d465ac3c10fc2200f566b1bff993558896b5e7dd24d6f0b2fc1aedb",
+"T3T1_de_test_passphrase_bde.py::test_passphrase_input[www_limit]": "eee90cda860e09ecf2cf7622cac235809f9d16c2a88a03dcc1da68388abaaa9e",
+"T3T1_de_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "2a6750db15f06a79f50cc454f4bfd74e92b8eef3b2522f8e18e48146ffc05ee5",
+"T3T1_de_test_passphrase_bde.py::test_passphrase_input_over_limit": "2f3b34fe84240b8d6a371868c8b8b6c38bcb0c529a62c97c03c5faf355153089",
"T3T1_de_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "b28c56a1845d95176428c5bf3c14ec56cfad0a615ff02dd2d631fb5214622919",
"T3T1_de_test_passphrase_bde.py::test_passphrase_loop_all_characters": "79a582553c0a0ca934d7b656b08d78295bed527f8b40e3ddf751c46ec025c53c",
"T3T1_de_test_passphrase_bde.py::test_passphrase_prompt_disappears": "ffaf6ec872065d3810493e78c95dce761a8bc55a8460e53ab53ccfb75999041c",
@@ -28386,9 +28386,9 @@
"T3T1_en_test_passphrase_bde.py::test_passphrase_input[random_25]": "6c5d8c3a3a2a8fe6ba3ff1ad869ba8a00e46c65e0a63bcf3a4e8c3b5f53fdeaf",
"T3T1_en_test_passphrase_bde.py::test_passphrase_input[short]": "033856e0ed4ca647c69df07a4bcc9f942173a9132afdcf61050f41a22eeddbcb",
"T3T1_en_test_passphrase_bde.py::test_passphrase_input[with_space]": "54c5e5000e07d98e9a66f425b745e47e45c44a61318f50c5341477f6ceb38f63",
-"T3T1_en_test_passphrase_bde.py::test_passphrase_input[www_limit]": "d16b93bf20188202e9eed54991b078c7258b573057acf02a276de10b842b1c8a",
-"T3T1_en_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "f368c33a7bf3b9cc585887f9581e3fae01f66bcce78a2e0354e8ca02bda666f8",
-"T3T1_en_test_passphrase_bde.py::test_passphrase_input_over_limit": "f5fe8127e94d343e39948537412e628a0afebbcae5c97d2cd078390c3c5ae59f",
+"T3T1_en_test_passphrase_bde.py::test_passphrase_input[www_limit]": "8e6b7c443ed24a99a61fe7d0026ba069d75d21063454de1365a52107af31d8a3",
+"T3T1_en_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "c3653ade8d63fb6c77d52abcecb857677f45664ddf376e8dd84e171e8739baeb",
+"T3T1_en_test_passphrase_bde.py::test_passphrase_input_over_limit": "1285b21d17e7997bef94ae0396b1fff6041401ad9703a4e7463246f9fdff1a1d",
"T3T1_en_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "f423ee7cc57bfb68a9152d913d34885ad8e4abe25c66374ea4a3acf3939e0b1a",
"T3T1_en_test_passphrase_bde.py::test_passphrase_loop_all_characters": "7f247445455ee1bb335b322dc667678c701504a06d78ee19685d3b2cea922784",
"T3T1_en_test_passphrase_bde.py::test_passphrase_prompt_disappears": "f7e895e95a62e9e7ef53021f8b10f4a17d1f0e8866e477ada80e614f7e877aa4",
@@ -28446,9 +28446,9 @@
"T3T1_es_test_passphrase_bde.py::test_passphrase_input[random_25]": "4c1f3532e5abf43b3f38b817baf9a4a81db2c3a6a47d1062fb26ddac15404bed",
"T3T1_es_test_passphrase_bde.py::test_passphrase_input[short]": "d650ff958176d3e64c7d59706cd655c4a3da041eb22ccb366b896849dbde1306",
"T3T1_es_test_passphrase_bde.py::test_passphrase_input[with_space]": "6a13ee7d5fb942f7cc2b60020480c193308c0c737b0b8a75d770cb2c1d8faa97",
-"T3T1_es_test_passphrase_bde.py::test_passphrase_input[www_limit]": "96a59fbc591fafb06ca7771d7c47294d377dd36515f28bd8e7689734eaa60acb",
-"T3T1_es_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "7b9efa1911d552deadfb8d1ca6fff3b1e58aac9fd9adfa792e734679ad042363",
-"T3T1_es_test_passphrase_bde.py::test_passphrase_input_over_limit": "cfe7319ff9e054e06ba14175ef7b839cb87b2f3621466d6e6dc6c0b2282b4ca5",
+"T3T1_es_test_passphrase_bde.py::test_passphrase_input[www_limit]": "81b42294fccb75e949fd1d8635d2e32566dc89b657ec768ee9faeb2ef5032da1",
+"T3T1_es_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "60f95f81a924872d04984594aecd4417182e3e5831f390de49ee701012122592",
+"T3T1_es_test_passphrase_bde.py::test_passphrase_input_over_limit": "06b3cfaa7bcb7e6ba8c0f1817594fd86241011dcba0eaa5bbac430bc23c8c4e3",
"T3T1_es_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "7bf71e49a16eb9af752e486db367c320373652316970e3c7ef91472f3c7dc1b1",
"T3T1_es_test_passphrase_bde.py::test_passphrase_loop_all_characters": "121430d9fad4d8be00bda86dd0087b11617efd3b87411e7c732079b11f7ff7d5",
"T3T1_es_test_passphrase_bde.py::test_passphrase_prompt_disappears": "4706593bade5b4b8c5eec78dde1b8ad8565871de831e434ad74c562294561c4a",
@@ -28506,9 +28506,9 @@
"T3T1_fr_test_passphrase_bde.py::test_passphrase_input[random_25]": "d7da1c3772acd981bdeb4ba08472680dd8ddcb785e00d8f937bdbbec4eb6be56",
"T3T1_fr_test_passphrase_bde.py::test_passphrase_input[short]": "ce370f7ddc35e47fbd0b3e4cc55d76bc4a15e5b63bf3c3f54f0992276f4d8210",
"T3T1_fr_test_passphrase_bde.py::test_passphrase_input[with_space]": "3dabb5d5cb4e9319ccce47974f5467adbee629d06e231eb462bfe6f27be980fa",
-"T3T1_fr_test_passphrase_bde.py::test_passphrase_input[www_limit]": "cb96fe8b9df2985bc5631463c657d54fd49345f5313faad15bbda8f69814f850",
-"T3T1_fr_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "722a0520c483737ae3fe5618d3732cf5f3f0b409dd0df81170f225a3ec604691",
-"T3T1_fr_test_passphrase_bde.py::test_passphrase_input_over_limit": "42c07f287cf519cefeb917859bc6724fcecaf7730bb28e7bbcab441412b14e65",
+"T3T1_fr_test_passphrase_bde.py::test_passphrase_input[www_limit]": "b956def11011adef03533d770b2870a3a5e3bbdc676a53d26be9505f12cfb697",
+"T3T1_fr_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "252908832e2596ed6e66767b7a15182918b4910b2bf80042a8810306ccf680ea",
+"T3T1_fr_test_passphrase_bde.py::test_passphrase_input_over_limit": "bcf8f692d8fc1d552aeae7ab50fb6d88cc747323bd68499fcb65728683825f0d",
"T3T1_fr_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "3c1b6c44c38e30be200ce4dcfd6cd0f3c3a190e2e33b1fd5333da4a65dc7c445",
"T3T1_fr_test_passphrase_bde.py::test_passphrase_loop_all_characters": "5af94f1b41e462735d58cfc020350b8cf94fa0767f00c89676d798db2cdca047",
"T3T1_fr_test_passphrase_bde.py::test_passphrase_prompt_disappears": "f66f67938f8c2238da6c8a88ae292223a5084a1e5ed89061a27134b976471416",
@@ -28566,9 +28566,9 @@
"T3T1_id_test_passphrase_bde.py::test_passphrase_input[random_25]": "b8fa298961c0c9a962df4470e61350abfee1a0a5d973bf774e6acf565bd25325",
"T3T1_id_test_passphrase_bde.py::test_passphrase_input[short]": "aa0db67b27fd5ba9144cf4393c148fb34945ef890b5189a4c7f160f706cf61fb",
"T3T1_id_test_passphrase_bde.py::test_passphrase_input[with_space]": "47316dff19abd33d9ba7b5c412f4bb22fc9b9cf4b20c9a3632f49f85c2be652d",
-"T3T1_id_test_passphrase_bde.py::test_passphrase_input[www_limit]": "10407ca454290283c7f67d470d03b2ad81e9eb86f13694018fdf9f4357d9b161",
-"T3T1_id_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "2711f0ff4c73b362bf624f3145ad55cc8e5a1bfc1c156f61955e74f7c0dc6744",
-"T3T1_id_test_passphrase_bde.py::test_passphrase_input_over_limit": "db9f381122342f093ca1176501eded4e0a781450628f82374d32465496fa925a",
+"T3T1_id_test_passphrase_bde.py::test_passphrase_input[www_limit]": "d85db952798ba6adf610621de62db9867c7075a7ff9adef573a76b891c898d54",
+"T3T1_id_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "9d0a1da1fabef77d1098cc1b59c58ef7a38ed82f457b5833da2dc8088386dc67",
+"T3T1_id_test_passphrase_bde.py::test_passphrase_input_over_limit": "bed6b93d5efc4cba3eac4f60080ebf6de7ce05e1bd1854d461bd2c21034dacc6",
"T3T1_id_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "258f12ce6d3cf084fe73ca2fc10e8e6ffdfe8326394eee5b060a921f241f1ca2",
"T3T1_id_test_passphrase_bde.py::test_passphrase_loop_all_characters": "e9af2e7f8ca987a7f604ef14f278b2aca6bbe0dcc31b59c302d3b94d9ca901fb",
"T3T1_id_test_passphrase_bde.py::test_passphrase_prompt_disappears": "d335adfc92656cabde176a88b978ae09afda45c113f8880937dfb423ac689d76",
@@ -28626,9 +28626,9 @@
"T3T1_pt_test_passphrase_bde.py::test_passphrase_input[random_25]": "1245b7288a1516670f2d0562eed660434add24559fe8e0a90a833704c6ee1b85",
"T3T1_pt_test_passphrase_bde.py::test_passphrase_input[short]": "686de352d4b6e06533c70485f5dbe3cb5634dd35c889fc6644a500247f53216d",
"T3T1_pt_test_passphrase_bde.py::test_passphrase_input[with_space]": "409b50f4f23ab73f934f349a2d6c98b86f1006d924b71a12b52ac102a5c5fb1a",
-"T3T1_pt_test_passphrase_bde.py::test_passphrase_input[www_limit]": "6881acf61b214dfb698b087867d2ed1a350b7ba27cb819b60baea6c62a4585bd",
-"T3T1_pt_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "8d1bdc8314fd3b4a9e811b624d9aa638ca2510c3a738a5cde3b3ae0ef4a37be4",
-"T3T1_pt_test_passphrase_bde.py::test_passphrase_input_over_limit": "b081d406457d0c5e4ce25a59976373169ad40b58c60570ff618aa0d75f976789",
+"T3T1_pt_test_passphrase_bde.py::test_passphrase_input[www_limit]": "b86efa775ad0ad980e2ac4fef6d37a4dd8228b1b2c06b0ecf39201be17e23f7e",
+"T3T1_pt_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "6231243308c171b351cd2fc3895646fd860a37dfa9f432d1e59e48ecc3e02183",
+"T3T1_pt_test_passphrase_bde.py::test_passphrase_input_over_limit": "a0cf4c485cce5ef8592d8bf4e7390891a11cbabb6c90de96b34799a71ad50eb2",
"T3T1_pt_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "52c0baa871e98270bae73f1bed737c8fbbb6d0449050b2774ef7c8b4632388c7",
"T3T1_pt_test_passphrase_bde.py::test_passphrase_loop_all_characters": "169e44d01d26787687e13b0f82f3048036ce4ddf5ec9ed8c39065641cb831bc2",
"T3T1_pt_test_passphrase_bde.py::test_passphrase_prompt_disappears": "42bfa88170e9bf0a5f0d427b448a423df6ef11e7b4aee8d55beccd192b92052c",
@@ -42102,9 +42102,9 @@
"T3W1_cs_test_passphrase_bde.py::test_passphrase_input[random_25]": "2ec2584006b7b68f505dbc9af8f6251fea87c90a27ebfc8d9b88a160108038aa",
"T3W1_cs_test_passphrase_bde.py::test_passphrase_input[short]": "aca0b63ba6f55efcdd25811fcc8b41faaf406807792dda9ba4cd482122422d70",
"T3W1_cs_test_passphrase_bde.py::test_passphrase_input[with_space]": "18f552bbba545c055ca12a0f2a943b1454124351d235ef622eaf0aa9b14b050a",
-"T3W1_cs_test_passphrase_bde.py::test_passphrase_input[www_limit]": "1f688f04bd14454974b1184ca24144396170fad689c205f1a24dd0ed0e49afec",
-"T3W1_cs_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "a4935d2fbece6de32e9fb5a76ed45afd7a4901175298940f3d1d8d00a8d91284",
-"T3W1_cs_test_passphrase_bde.py::test_passphrase_input_over_limit": "d1ce881dfeb892d2757fe94dc70e0d327fbd252bcab72e43808d7e0a12a6a2d8",
+"T3W1_cs_test_passphrase_bde.py::test_passphrase_input[www_limit]": "034d577cbf5ee2cacdd8abbb7722bcc1fdee92e74ccaa62df8f47cffb840f597",
+"T3W1_cs_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "13086ecc1f9930be9aa685f021635393ab60d4892633bf3de229d3bbadd2d69e",
+"T3W1_cs_test_passphrase_bde.py::test_passphrase_input_over_limit": "7f55ae8bad5cf56161f0665ace3c5ebc91066f203008e831b31274f63a87e727",
"T3W1_cs_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "ae66c18ed0b932f8b982f278fb60b2d479583b33be8b00f0123530611544f502",
"T3W1_cs_test_passphrase_bde.py::test_passphrase_loop_all_characters": "3a9f60c69d8001b44b5b4c5ea5d1d557b04b8f46eeee6cb29c3d81132766025c",
"T3W1_cs_test_passphrase_bde.py::test_passphrase_prompt_disappears": "d7cad3b62bce16bb44673771ee3cdcf5359212a9064d25d045883fe7d47b6048",
@@ -42208,9 +42208,9 @@
"T3W1_de_test_passphrase_bde.py::test_passphrase_input[random_25]": "63f4b22f2ee0bfa272973670c39f33b8276593ed591c261c06c14557257eed8b",
"T3W1_de_test_passphrase_bde.py::test_passphrase_input[short]": "0419f9b71b987b6e742775a1b813871ac4d7b57d659f55ee54493abc90c60ab2",
"T3W1_de_test_passphrase_bde.py::test_passphrase_input[with_space]": "03e62dcd761c7049d496864fac1f6c4230d45e1144e7f420b9da42cba2e34eb8",
-"T3W1_de_test_passphrase_bde.py::test_passphrase_input[www_limit]": "dd28146307a60070407f1c95b36c6021219f152a377838f59b48aa082b0a0d1c",
-"T3W1_de_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "013c6002aeff256cce5aa720d28c9b9840bd620db3f2b929103db9cff3940501",
-"T3W1_de_test_passphrase_bde.py::test_passphrase_input_over_limit": "cbdedcefc71b85122ad25aaa09523ca56ef160345927cfd27105e57f809a07c6",
+"T3W1_de_test_passphrase_bde.py::test_passphrase_input[www_limit]": "6c71a9d88ddc8a3dc88f570d9bc0f001ab4f242bc28b3ac78d8737fc2a77630f",
+"T3W1_de_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "d31b4b5a9b89c559141e0bcfc9f3b76743ab38a41ed098325e9e823b7c2474e3",
+"T3W1_de_test_passphrase_bde.py::test_passphrase_input_over_limit": "ecdec1ef251f6367db99c0667b0c0cd6c1c4cecc2e0f751a94cc3b3c155ce81a",
"T3W1_de_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "beeab4bad2d5b5399e29c9e6c55e43c7d0ffc6752e8102b1fcc8b306bb8feee2",
"T3W1_de_test_passphrase_bde.py::test_passphrase_loop_all_characters": "aa495337611b13146490fc249be4a422ad5f74af0539527f0f29824e17452af5",
"T3W1_de_test_passphrase_bde.py::test_passphrase_prompt_disappears": "ee1ec72ee0aa74dcd68b2c00ab26b42583b6e61b774f3e8d1bec4bbe3a2d99a5",
@@ -42314,9 +42314,9 @@
"T3W1_en_test_passphrase_bde.py::test_passphrase_input[random_25]": "31075275f53d0bd0c12a0da170edcfb122792caf28be2195a160cac5f55e468b",
"T3W1_en_test_passphrase_bde.py::test_passphrase_input[short]": "5b43ee3b2c7d5cadcc04daa1349857d5644bad284795caeb59c3e6ed8e9b8950",
"T3W1_en_test_passphrase_bde.py::test_passphrase_input[with_space]": "a87f7f414901a0566adbb6382bf854df4d3ef4092bce41e7af2a05f66e619a8a",
-"T3W1_en_test_passphrase_bde.py::test_passphrase_input[www_limit]": "2915f48340e44d58bb2c2d1b610e1cfcc8f49ad2ec359990ba8b3a1d70e24042",
-"T3W1_en_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "2076db7d59860d95a289fa989a250dab73d555e5b8fe97d2225f2975098b2f8d",
-"T3W1_en_test_passphrase_bde.py::test_passphrase_input_over_limit": "7b1cff006c0b06fb0c848b220c278fa436e11d29dec63d119b084c4dc83a9aed",
+"T3W1_en_test_passphrase_bde.py::test_passphrase_input[www_limit]": "618b3268b86e91d8457b8ce01456b73ecfd0319ff26f53d368be1c4077048f10",
+"T3W1_en_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "4f012e0ed81e1336dd97835e3204a3f5f0a3d422944e2bc537d8506577c9a306",
+"T3W1_en_test_passphrase_bde.py::test_passphrase_input_over_limit": "e81a692021f4b25400a6f26dd2f93798bfd5de02e845792ced441503a01c6280",
"T3W1_en_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "c5ac73b716c96372f869b1ffc6531bbbd5a6d9b68432187f2c87c8a0451187b8",
"T3W1_en_test_passphrase_bde.py::test_passphrase_loop_all_characters": "3d871bf53e41662df4b45cbe927dc4ae159ca30f8bbfc114676296fdebdcf7d6",
"T3W1_en_test_passphrase_bde.py::test_passphrase_prompt_disappears": "13a1ad5392bd072fc1a20bbf8adcae92f255e4b6d195406cf0a689e82ad26165",
@@ -42420,9 +42420,9 @@
"T3W1_es_test_passphrase_bde.py::test_passphrase_input[random_25]": "ebbffd2672ba6850c243b7e29419faa964fcdd2080fc2d721411a24d63cb27b6",
"T3W1_es_test_passphrase_bde.py::test_passphrase_input[short]": "e10bc5af19e39fcb3f390b740627dbdaade82592777e53e64ba389cba29bcfed",
"T3W1_es_test_passphrase_bde.py::test_passphrase_input[with_space]": "6561b82a432810c724f2a7293af77775ea8655fde36e1df6e52b9f74f48816ce",
-"T3W1_es_test_passphrase_bde.py::test_passphrase_input[www_limit]": "97792a9ebd806b9933a9f3c7bfc40b68bef97465d483b0a3108ea81678ee626e",
-"T3W1_es_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "1e303c2a89bd79c0df234fe77b1fa604bebd89f6c46484bc4a5f500e131e7996",
-"T3W1_es_test_passphrase_bde.py::test_passphrase_input_over_limit": "25d0d91eb5d6eae13a1bd48053f8ff00578e1373d29abc24a87fbacb6b824df0",
+"T3W1_es_test_passphrase_bde.py::test_passphrase_input[www_limit]": "5e79023970cd7e46afe570fcee17c279b74e1bc3d943d1782ff372a8a480dd12",
+"T3W1_es_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "cbce0feb083547c796e73653b23f3e895ae4815efcdbcf88aa0b2cc243927e0b",
+"T3W1_es_test_passphrase_bde.py::test_passphrase_input_over_limit": "8b51423e51e86ee125fea45ca183a5883a707a14e12fb258ad2dbf16c31736d6",
"T3W1_es_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "54a62b5f22f0a9c22bb3ba76abc393cbe690e451ee86999ac51873db2fec84d7",
"T3W1_es_test_passphrase_bde.py::test_passphrase_loop_all_characters": "58d9314aecd74ff7bf1c23319592907415d60af8231a46c50689b40e72ab02fc",
"T3W1_es_test_passphrase_bde.py::test_passphrase_prompt_disappears": "319dfbe7db941ea3af72f6aae7689c516789ce556983e118d74a190cf0498161",
@@ -42526,9 +42526,9 @@
"T3W1_fr_test_passphrase_bde.py::test_passphrase_input[random_25]": "1792ec79254230002df9e2bf16bc00b3851a4a44c5bdac742a2a4d56a93c9dfb",
"T3W1_fr_test_passphrase_bde.py::test_passphrase_input[short]": "3b1c4ac2cbb6a929617c301c1e2cfe0f48c2e82c9a424d1feeb66387779420ac",
"T3W1_fr_test_passphrase_bde.py::test_passphrase_input[with_space]": "c7b12512287137c4df589e56e42bb6ee09f4747e4f682a56cf34fc24de8542eb",
-"T3W1_fr_test_passphrase_bde.py::test_passphrase_input[www_limit]": "66681567bf852e93d00e7af7f8cd89371ca97ba0c175963ea8c31cdf3aedc06c",
-"T3W1_fr_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "da9dd59d052954b274b0f20eef40385aab0d5944374c88d0c226a9b57dd3e54e",
-"T3W1_fr_test_passphrase_bde.py::test_passphrase_input_over_limit": "1ed6c3d85879f0ddef8687cce1a8e46d5bde1ccc8e7613bb86ea612ff1cafee1",
+"T3W1_fr_test_passphrase_bde.py::test_passphrase_input[www_limit]": "624282e46822c4fe9c4f2dae0501aafd038b49472c3f9496229a73ac42c64b35",
+"T3W1_fr_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "5b68bcfc103cea95e0d13066b7cb7af91407cc10cbd43ac2c63cff278150520f",
+"T3W1_fr_test_passphrase_bde.py::test_passphrase_input_over_limit": "afecebc1f8e1c8ec2d853ab8595fd86da06670e4b2e168f88e130d03acb17d39",
"T3W1_fr_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "024366cdb684793494542474e07476b0339383ac58772de487f7557930b6f1b2",
"T3W1_fr_test_passphrase_bde.py::test_passphrase_loop_all_characters": "f5dce102ad1c89f736c0ef608a5c72a56023845d67d906404a1eb389210dcaf8",
"T3W1_fr_test_passphrase_bde.py::test_passphrase_prompt_disappears": "0eb7d8989a76884bd341a5607f11e4fb4bde44d7e633c57db0f74cc44bc49fa5",
@@ -42632,9 +42632,9 @@
"T3W1_id_test_passphrase_bde.py::test_passphrase_input[random_25]": "d65611b9be70cc2cf2fac9228d2bc5cad0846cc1253cee8619ceaaeeee34fea5",
"T3W1_id_test_passphrase_bde.py::test_passphrase_input[short]": "2f46d1fc8e64c7264333547f01c1866e065e7d72e0ff5fd3ea783c11a4eefa97",
"T3W1_id_test_passphrase_bde.py::test_passphrase_input[with_space]": "71187d64c20472f349212d5c0e149ab91374b5fa2e7c6297c8cfabc128bcfe79",
-"T3W1_id_test_passphrase_bde.py::test_passphrase_input[www_limit]": "a71aa364d3fafec2262325d173f084c55253b3b656f40c9ff56457d6cb899700",
-"T3W1_id_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "52a22da7d4365e33239ce3f5c164a2a5a8817d864eb2a215e9ed999590af8843",
-"T3W1_id_test_passphrase_bde.py::test_passphrase_input_over_limit": "91a7b5e367e7a0a0e8d0bd0f23e9f11b9bd4f6e17f01852bf7f0024af840855c",
+"T3W1_id_test_passphrase_bde.py::test_passphrase_input[www_limit]": "65a4232dfb65e527ab213d71626af5c69d7649940d1b3e6b3266439f9f74bb98",
+"T3W1_id_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "6d5efbd6c37da92b121595be423969b632181d10c27c4b9eaeec9dcd6f5f4bb0",
+"T3W1_id_test_passphrase_bde.py::test_passphrase_input_over_limit": "78fe46ea7ce70e4690a978bc03bf1343f3fd1ff850f40c865cc748e7ea816098",
"T3W1_id_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "575813653c0ae1d2708ad5137d113c6cd6a452715f8f29d042899a7359ebaa38",
"T3W1_id_test_passphrase_bde.py::test_passphrase_loop_all_characters": "ed472b42cad23bb312f5689d79d2864568e4247ef1326bf8fb599817cbc01d07",
"T3W1_id_test_passphrase_bde.py::test_passphrase_prompt_disappears": "a5cb3747e6f6e0fb5f766c9eafc63e9f4e33d51dce18c880c5be01cef2735ae0",
@@ -42738,9 +42738,9 @@
"T3W1_pt_test_passphrase_bde.py::test_passphrase_input[random_25]": "531ed3bb06a38b4913a441e8d89fec2bccb3d676431aedddfdcfc0835e6bfcd6",
"T3W1_pt_test_passphrase_bde.py::test_passphrase_input[short]": "b2c060ea4312e7e3128dda9c0c79525685b70da92d0e203d7da290e32af1c70c",
"T3W1_pt_test_passphrase_bde.py::test_passphrase_input[with_space]": "264961da005780e5e97298b35a835303d974345b31f1ba2fc5ae6eb09de3632f",
-"T3W1_pt_test_passphrase_bde.py::test_passphrase_input[www_limit]": "7e125eeab7bec62a3a1bcc20d9893950287416525c6c712802a30d195407413d",
-"T3W1_pt_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "981dee4a27cb59e80db0343cd5a89216e9d041d2a12089fefff419ab2cdb67b8",
-"T3W1_pt_test_passphrase_bde.py::test_passphrase_input_over_limit": "8c927ce2db6f19148a965fb7df53e703c1ad787efd7565887e639cba0e12fff4",
+"T3W1_pt_test_passphrase_bde.py::test_passphrase_input[www_limit]": "bfab779040cac8b3873a297d8dbadc56597f01498db90243038550b5b101d8aa",
+"T3W1_pt_test_passphrase_bde.py::test_passphrase_input[www_shorter]": "d9148a2d4e469596ba32672d6c1860fabe931cfb9b2de282092cd55d052d59c4",
+"T3W1_pt_test_passphrase_bde.py::test_passphrase_input_over_limit": "bed18cd4cd6cc7aec092d9c3e513dd1f979d3e8d05b31e1a2e2052ef80be1762",
"T3W1_pt_test_passphrase_bde.py::test_passphrase_long_spaces_deletion": "479b289adf5331dd527620795d077a34ce0ef42948d1fcfca4ff3ae3c9d8f297",
"T3W1_pt_test_passphrase_bde.py::test_passphrase_loop_all_characters": "38e8ced06fdd40840ccf3b38df2e55e02fac876b307c7f1f20bb1df3746be71b",
"T3W1_pt_test_passphrase_bde.py::test_passphrase_prompt_disappears": "661fd710e0a5180f6537d8f03ac78d64fa8a36a61a61cbc6af12b5575e2d71f4",Why this scored 20/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.