Repository: ethereum/py-trie (language: python)

Issue:
Update ``ethereum/tests`` fixture to v11.1 and update .gitignore
Update `ethereum/tests` to latest `v11.1` release commit hash

#### Cute Animal Picture

![Cute animal picture](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwallpapercave.com%2Fwp%2Fwp2370635.jpg&f=1&nofb=1)


Discussion / hints:
Wow, are these real trie bugs? Kind of looks like it.

Fix patch:
diff --git a/fixtures b/fixtures
index 8e5e26d..6613563 160000
--- a/fixtures
+++ b/fixtures
@@ -1,1 +1,1 @@
-Subproject commit 8e5e26d20e9d3a76fd493f84ab6f79fc1990764d
+Subproject commit 661356317ac6df52208d54187e692472a25a01f8
diff --git a/newsfragments/143.internal.rst b/newsfragments/143.internal.rst
new file mode 100644
index 0000000..7c4e81c
--- /dev/null
+++ b/newsfragments/143.internal.rst
@@ -0,0 +1,1 @@
+Update `ethereum/tests` fixture to ``v12.4``.


Test patch:
diff --git a/tests/test_hexary_trie.py b/tests/test_hexary_trie.py
index 4cfd7a2..65d1f62 100644
--- a/tests/test_hexary_trie.py
+++ b/tests/test_hexary_trie.py
@@ -114,10 +114,26 @@ def permute_fixtures(fixtures):
     for fixture_name, fixture in fixtures:
         final_mapping, deleted_keys = get_expected_results(fixture)
         final_root = fixture["root"]
-        for update_series in itertools.islice(
-            itertools.permutations(fixture["in"]), 100
-        ):
-            yield (fixture_name, update_series, final_mapping, deleted_keys, final_root)
+
+        # fixtures that have duplicate keys (consecutive updates on the same key value)
+        # that are not deleted in the final state cannot be permuted since the updates
+        # must be applied in order.
+        updates = fixture["in"]
+        all_keys = sorted(entry[0] for entry in updates)
+        duplicate_keys = sorted(set(key for key in all_keys if all_keys.count(key) > 1))
+        if duplicate_keys and not all(key in deleted_keys for key in duplicate_keys):
+            yield (fixture_name, updates, final_mapping, deleted_keys, final_root)
+        else:
+            for update_series in itertools.islice(
+                itertools.permutations(fixture["in"]), 100
+            ):
+                yield (
+                    fixture_name,
+                    update_series,
+                    final_mapping,
+                    deleted_keys,
+                    final_root,
+                )
 
 
 FIXTURES_PERMUTED = tuple(permute_fixtures(FIXTURES_NORMALIZED))