Commit 60e610a23628a51484a1abd3c2295600ef3d1b7c

lhchavez 2018-01-04T15:36:22

fuzzers: add build support and instructions This change adds support for building a fuzz target for exercising the packfile parser, as well as documentation. It also runs the fuzzers in Travis to avoid regressions.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
diff --git a/.gitignore b/.gitignore
index 1ef1ec7..5991a41 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,5 @@ msvc/Release/
 .*.swp
 tags
 mkmf.log
+*.profdata
+*.profraw
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd84666..27e2d63 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,6 +43,7 @@ OPTION( BUILD_SHARED_LIBS	"Build Shared Library (OFF for Static)"	ON  )
 OPTION( THREADSAFE			"Build libgit2 as threadsafe"			ON )
 OPTION( BUILD_CLAR			"Build Tests using the Clar suite"		ON  )
 OPTION( BUILD_EXAMPLES		"Build library usage example apps"		OFF )
+OPTION( BUILD_FUZZERS			"Build the fuzz targets"	OFF)
 OPTION( TAGS				"Generate tags"							OFF )
 OPTION( PROFILE				"Generate profiling information"		OFF )
 OPTION( ENABLE_TRACE		"Enables tracing support"				OFF )
@@ -52,6 +53,9 @@ SET(SHA1_BACKEND "CollisionDetection" CACHE STRING "Backend to use for SHA1. One
 OPTION( USE_SSH				"Link with libssh to enable SSH support" ON )
 OPTION( USE_HTTPS			"Enable HTTPS support. Can be set to a specific backend"	ON )
 OPTION( USE_GSSAPI			"Link with libgssapi for SPNEGO auth"   OFF )
+OPTION( USE_SANITIZER			"Enable one of the Sanitizers (requires clang)"   OFF )
+OPTION( USE_COVERAGE			"Enable clang's coverage report (requires clang)"   OFF )
+OPTION( USE_STANDALONE_FUZZERS			"Enable standalone fuzzers (compatible with gcc)"   OFF )
 OPTION( VALGRIND			"Configure build for valgrind"			OFF )
 OPTION( CURL			"Use curl for HTTP if available" ON)
 OPTION( USE_EXT_HTTP_PARSER		"Use system HTTP_Parser if available" ON)
@@ -245,6 +249,23 @@ ELSE()
 	# that uses CMAKE_CONFIGURATION_TYPES and not CMAKE_BUILD_TYPE
 ENDIF()
 
+IF(NOT USE_SANITIZER STREQUAL "OFF")
+	SET(CMAKE_C_FLAGS "-fsanitize=${USE_SANITIZER} ${CMAKE_C_FLAGS}")
+	SET(CMAKE_C_FLAGS "-fno-omit-frame-pointer ${CMAKE_C_FLAGS}")
+	SET(CMAKE_C_FLAGS "-fno-optimize-sibling-calls ${CMAKE_C_FLAGS}")
+ENDIF()
+
+IF(USE_COVERAGE)
+	SET(CMAKE_C_FLAGS "-fcoverage-mapping ${CMAKE_C_FLAGS}")
+	SET(CMAKE_C_FLAGS "-fprofile-instr-generate ${CMAKE_C_FLAGS}")
+ENDIF()
+
+IF(BUILD_FUZZERS AND NOT USE_STANDALONE_FUZZERS)
+	# The actual sanitizer link target will be added when linking the fuzz
+	# targets.
+	SET(CMAKE_C_FLAGS "-fsanitize=fuzzer-no-link ${CMAKE_C_FLAGS}")
+ENDIF ()
+
 ADD_SUBDIRECTORY(src)
 
 # Tests
@@ -282,6 +303,18 @@ IF (BUILD_EXAMPLES)
 	ADD_SUBDIRECTORY(examples)
 ENDIF ()
 
+IF(BUILD_FUZZERS)
+	IF(NOT USE_STANDALONE_FUZZERS)
+		IF(BUILD_EXAMPLES)
+			MESSAGE(FATAL_ERROR "Cannot build the fuzzer targets and the examples together")
+		ENDIF()
+		IF(BUILD_CLAR)
+			MESSAGE(FATAL_ERROR "Cannot build the fuzzer targets and the tests together")
+		ENDIF()
+	ENDIF()
+	ADD_SUBDIRECTORY(fuzz)
+ENDIF()
+
 IF(CMAKE_VERSION VERSION_GREATER 3)
 	FEATURE_SUMMARY(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
 	FEATURE_SUMMARY(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
diff --git a/ci/build.sh b/ci/build.sh
index a1deab3..0dd8f67 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -29,7 +29,7 @@ echo "## Configuring build environment"
 echo "##############################################################################"
 
 echo cmake ${SOURCE_DIR} -DBUILD_EXAMPLES=ON ${CMAKE_OPTIONS}
-cmake ${SOURCE_DIR} -DBUILD_EXAMPLES=ON ${CMAKE_OPTIONS}
+cmake ${SOURCE_DIR} -DBUILD_EXAMPLES=ON -DBUILD_FUZZERS=ON -DUSE_STANDALONE_FUZZERS=ON ${CMAKE_OPTIONS}
 
 echo ""
 echo "##############################################################################"
diff --git a/ci/test.sh b/ci/test.sh
index 28f7602..73f551f 100755
--- a/ci/test.sh
+++ b/ci/test.sh
@@ -184,6 +184,18 @@ if [ -z "$SKIP_SSH_TESTS" ]; then
 	unset GITTEST_REMOTE_SSH_FINGERPRINT
 fi
 
+if [ -z "$SKIP_FUZZERS" ]; then
+	echo ""
+	echo "##############################################################################"
+	echo "## Running fuzzers"
+	echo "##############################################################################"
+
+	for fuzzer in $(find ./fuzz/ -type f -executable); do
+		fuzzer_name=$(basename "${fuzzer}")
+		"${fuzzer}" "../fuzz/corpora/${fuzzer_name}" || die $?
+	done
+fi
+
 echo "Success."
 cleanup
 exit 0
diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt
new file mode 100644
index 0000000..bad9fdd
--- /dev/null
+++ b/fuzz/CMakeLists.txt
@@ -0,0 +1,13 @@
+LINK_DIRECTORIES(${LIBGIT2_LIBDIRS})
+INCLUDE_DIRECTORIES(${LIBGIT2_INCLUDES})
+
+FILE(GLOB SRC_FUZZ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} fuzz_*.c)
+FOREACH(fuzz_target_src ${SRC_FUZZ})
+	STRING(REPLACE ".c" "" fuzz_target_name ${fuzz_target_src})
+	SET(${fuzz_target_name}_SOURCES ${fuzz_target_src} ${LIBGIT2_OBJECTS})
+	IF(USE_STANDALONE_FUZZERS)
+		LIST(APPEND ${fuzz_target_name}_SOURCES "standalone_driver.c")
+	ENDIF()
+	ADD_EXECUTABLE(${fuzz_target_name} ${${fuzz_target_name}_SOURCES})
+	TARGET_LINK_LIBRARIES(${fuzz_target_name} ${LIBGIT2_LIBS})
+ENDFOREACH()
diff --git a/fuzz/README.md b/fuzz/README.md
new file mode 100644
index 0000000..03b1aff
--- /dev/null
+++ b/fuzz/README.md
@@ -0,0 +1,73 @@
+# Fuzzing
+
+libgit2 is currently using [libFuzzer](https://libfuzzer.info) to perform
+automated fuzz testing. libFuzzer only works with clang.
+
+## Prerequisites** for building fuzz targets:
+
+1. All the prerequisites for [building libgit2](https://github.com/libgit2/libgit2).
+2. A recent version of clang. 6.0 is preferred. [pre-build Debian/Ubuntu
+   packages](https://github.com/libgit2/libgit2)
+
+## Build
+
+1. Create a build directory beneath the libgit2 source directory, and change
+   into it: `mkdir build && cd build`
+2. Choose one sanitizers to add. The currently supported sanitizers are
+   [`address`](https://clang.llvm.org/docs/AddressSanitizer.html),
+   [`undefined`](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html),
+   and [`leak`/`address,leak`](https://clang.llvm.org/docs/LeakSanitizer.html).
+3. Create the cmake build environment and configure the build with the
+   sanitizer chosen: `CC=/usr/bin/clang-6.0 cmake
+   -DBUILD_CLAR=OFF -DBUILD_FUZZERS=ON -DUSE_SANIZER=address
+   -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=fuzzer"
+   -DCMAKE_BUILD_TYPE=RelWithDebInfo ..`. Note that building the fuzzer targets
+   is incompatible with the tests and examples.
+4. Build libgit2: `cmake --build .`
+5. Exit the cmake build environment: `cd ..`
+
+## Run the fuzz targets
+
+1. `ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolize-6.0
+   LSAN_OPTIONS=allocator_may_return_null=1
+   ASAN_OPTIONS=allocator_may_return_null=1 ./build/fuzz/fuzz_packfile_raw
+   fuzz/corpora/fuzz_packfile_raw/`
+
+The `LSAN_OPTIONS` and `ASAN_OPTIONS` are there to allow `malloc(3)` to return
+`NULL`. The `LLVM_PROFILE_FILE` is there to override the path where libFuzzer
+will write the coverage report.
+
+## Get coverage
+
+In order to get coverage information, you also need to add the
+`-DUSE_COVERAGE=ON` flag to `cmake`, and then run the fuzz target with
+`-runs=0`. That will produce a file called `default.profraw` (this behavior can
+be overridden by setting the `LLVM_PROFILE_FILE="yourfile.profraw"` environment
+variable).
+
+1. `llvm-profdata-6.0 merge -sparse default.profraw -o
+   fuzz_packfile_raw.profdata` transforms the data from a sparse representation
+   into a format that can be used by the other tools.
+2. `llvm-cov-6.0 report ./build/fuzz/fuzz_packfile_raw
+   -instr-profile=fuzz_packfile_raw.profdata` shows a high-level per-file
+   coverage report.
+3. `llvm-cov-6.0 show ./build/fuzz/fuzz_packfile_raw
+   -instr-profile=fuzz_packfile_raw.profdata [source file]` shows a line-by-line
+   coverage analysis of all the codebase (or a single source file).
+
+## Standalone mode
+
+In order to ensure that there are no regresions, each fuzzer target can be run
+in a standalone mode. This can be done by passing `-DUSE_STANDALONE_FUZZERS=ON`
+to `cmake` without setting `-DCMAKE_EXE_LINKER_FLAGS`. This makes it compatible
+with gcc. This does not use the fuzzing engine, but just invokes every file in
+the chosen corpus.
+
+In order to get full coverage, though, you might want to also enable one of the
+sanitizers. You might need a recent version of clang to get full support.
+
+## References
+
+* [libFuzzer](https://llvm.org/docs/LibFuzzer.html) documentation.
+* [Source-based Code
+  Coverage](https://clang.llvm.org/docs/SourceBasedCodeCoverage.html).
diff --git a/fuzz/corpora/fuzz_packfile_raw/004bd06c91c0dc8ab7e963f4b5e87be00292911e b/fuzz/corpora/fuzz_packfile_raw/004bd06c91c0dc8ab7e963f4b5e87be00292911e
new file mode 100644
index 0000000..53c9642
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/004bd06c91c0dc8ab7e963f4b5e87be00292911e
@@ -0,0 +1 @@
+ÐPACK
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/00b67414c7b17916b3bd0a3d02284937fa0c4378 b/fuzz/corpora/fuzz_packfile_raw/00b67414c7b17916b3bd0a3d02284937fa0c4378
new file mode 100644
index 0000000..838a007
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/00b67414c7b17916b3bd0a3d02284937fa0c4378 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/02eaeb43f0ec7dbfd91bd75e7ddcc7fd590dbc77 b/fuzz/corpora/fuzz_packfile_raw/02eaeb43f0ec7dbfd91bd75e7ddcc7fd590dbc77
new file mode 100644
index 0000000..48fe2b3
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/02eaeb43f0ec7dbfd91bd75e7ddcc7fd590dbc77 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/02f4286569be24124d8ab209733b7492f7560310 b/fuzz/corpora/fuzz_packfile_raw/02f4286569be24124d8ab209733b7492f7560310
new file mode 100644
index 0000000..3944cd0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/02f4286569be24124d8ab209733b7492f7560310 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/037ba5f9d6d695aa4739810f8bea6e795c1d7614 b/fuzz/corpora/fuzz_packfile_raw/037ba5f9d6d695aa4739810f8bea6e795c1d7614
new file mode 100644
index 0000000..f4ea551
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/037ba5f9d6d695aa4739810f8bea6e795c1d7614 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/038e06289ac876f109fc12ca4b8284497ca26821 b/fuzz/corpora/fuzz_packfile_raw/038e06289ac876f109fc12ca4b8284497ca26821
new file mode 100644
index 0000000..24923c4
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/038e06289ac876f109fc12ca4b8284497ca26821 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/042dc4512fa3d391c5170cf3aa61e6a638f84342 b/fuzz/corpora/fuzz_packfile_raw/042dc4512fa3d391c5170cf3aa61e6a638f84342
new file mode 100644
index 0000000..597a6db
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/042dc4512fa3d391c5170cf3aa61e6a638f84342
@@ -0,0 +1 @@
+i
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/044bf19babf3f9cde07adbfa2a45c7508538cbe8 b/fuzz/corpora/fuzz_packfile_raw/044bf19babf3f9cde07adbfa2a45c7508538cbe8
new file mode 100644
index 0000000..73a4013
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/044bf19babf3f9cde07adbfa2a45c7508538cbe8 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/044e12ea43bee3c4befe27ba4687bee98d505fd7 b/fuzz/corpora/fuzz_packfile_raw/044e12ea43bee3c4befe27ba4687bee98d505fd7
new file mode 100644
index 0000000..1e12966
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/044e12ea43bee3c4befe27ba4687bee98d505fd7 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/061fb208431db793bbd3645b7a16058a1e2a2412 b/fuzz/corpora/fuzz_packfile_raw/061fb208431db793bbd3645b7a16058a1e2a2412
new file mode 100644
index 0000000..12183ab
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/061fb208431db793bbd3645b7a16058a1e2a2412
@@ -0,0 +1 @@
+º
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/06576556d1ad802f247cad11ae748be47b70cd9c b/fuzz/corpora/fuzz_packfile_raw/06576556d1ad802f247cad11ae748be47b70cd9c
new file mode 100644
index 0000000..ac044e5
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/06576556d1ad802f247cad11ae748be47b70cd9c
@@ -0,0 +1 @@
+R
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/06ceea0c98756d302c302410fffe0dc54a055486 b/fuzz/corpora/fuzz_packfile_raw/06ceea0c98756d302c302410fffe0dc54a055486
new file mode 100644
index 0000000..add37f9
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/06ceea0c98756d302c302410fffe0dc54a055486 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/071e65ac0bf08f2424a89a4a499004c1bb9f3f6c b/fuzz/corpora/fuzz_packfile_raw/071e65ac0bf08f2424a89a4a499004c1bb9f3f6c
new file mode 100644
index 0000000..748750c
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/071e65ac0bf08f2424a89a4a499004c1bb9f3f6c differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0739ff2f064568a4d775c8061958e66c419dbea0 b/fuzz/corpora/fuzz_packfile_raw/0739ff2f064568a4d775c8061958e66c419dbea0
new file mode 100644
index 0000000..aed5f16
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0739ff2f064568a4d775c8061958e66c419dbea0 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/077760469bf8392342d09329c732b98d24be2c30 b/fuzz/corpora/fuzz_packfile_raw/077760469bf8392342d09329c732b98d24be2c30
new file mode 100644
index 0000000..c9553bc
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/077760469bf8392342d09329c732b98d24be2c30 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/08534f33c201a45017b502e90a800f1b708ebcb3 b/fuzz/corpora/fuzz_packfile_raw/08534f33c201a45017b502e90a800f1b708ebcb3
new file mode 100644
index 0000000..b7d5379
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/08534f33c201a45017b502e90a800f1b708ebcb3
@@ -0,0 +1 @@
+\
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/09e9046a7d6125cf2915a326a1504dd75d0543b5 b/fuzz/corpora/fuzz_packfile_raw/09e9046a7d6125cf2915a326a1504dd75d0543b5
new file mode 100644
index 0000000..86d7321
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/09e9046a7d6125cf2915a326a1504dd75d0543b5
@@ -0,0 +1 @@
+ÿ
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/0ade7c2cf97f75d009975f4d720d1fa6c19f4897 b/fuzz/corpora/fuzz_packfile_raw/0ade7c2cf97f75d009975f4d720d1fa6c19f4897
new file mode 100644
index 0000000..f11c82a
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/0ade7c2cf97f75d009975f4d720d1fa6c19f4897
@@ -0,0 +1 @@
+9
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/0c316c67c1450aee57ffa3f74c19ea5d32d44622 b/fuzz/corpora/fuzz_packfile_raw/0c316c67c1450aee57ffa3f74c19ea5d32d44622
new file mode 100644
index 0000000..08d7351
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0c316c67c1450aee57ffa3f74c19ea5d32d44622 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0c395c44e4dd5b67caae8a98a66741e17e8af136 b/fuzz/corpora/fuzz_packfile_raw/0c395c44e4dd5b67caae8a98a66741e17e8af136
new file mode 100644
index 0000000..e899a79
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0c395c44e4dd5b67caae8a98a66741e17e8af136 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0cb9120e5ae00b0d660a111ef85fc9194a5f244a b/fuzz/corpora/fuzz_packfile_raw/0cb9120e5ae00b0d660a111ef85fc9194a5f244a
new file mode 100644
index 0000000..9fb6a66
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0cb9120e5ae00b0d660a111ef85fc9194a5f244a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0d44e7156d04cd269fd1219c58c3b79dc8c41d60 b/fuzz/corpora/fuzz_packfile_raw/0d44e7156d04cd269fd1219c58c3b79dc8c41d60
new file mode 100644
index 0000000..cf18be0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0d44e7156d04cd269fd1219c58c3b79dc8c41d60 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0d77a48bea1dde6e5d391a65456dc0aa3d9cc5e3 b/fuzz/corpora/fuzz_packfile_raw/0d77a48bea1dde6e5d391a65456dc0aa3d9cc5e3
new file mode 100644
index 0000000..6d3c9c0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0d77a48bea1dde6e5d391a65456dc0aa3d9cc5e3 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0db25107ff248616cadc75b7819b21d06394cf25 b/fuzz/corpora/fuzz_packfile_raw/0db25107ff248616cadc75b7819b21d06394cf25
new file mode 100644
index 0000000..c158d57
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0db25107ff248616cadc75b7819b21d06394cf25 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0debae2db7ef2933f386bac21a2d3bebb473070e b/fuzz/corpora/fuzz_packfile_raw/0debae2db7ef2933f386bac21a2d3bebb473070e
new file mode 100644
index 0000000..1f9443f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0debae2db7ef2933f386bac21a2d3bebb473070e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0e2d48524de33394ca82ea3a43f5f04aac6e86c7 b/fuzz/corpora/fuzz_packfile_raw/0e2d48524de33394ca82ea3a43f5f04aac6e86c7
new file mode 100644
index 0000000..1fd3289
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0e2d48524de33394ca82ea3a43f5f04aac6e86c7 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0e49f6aa78f3b2f6c3fa5d281d5b1052fa9951dc b/fuzz/corpora/fuzz_packfile_raw/0e49f6aa78f3b2f6c3fa5d281d5b1052fa9951dc
new file mode 100644
index 0000000..286d703
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/0e49f6aa78f3b2f6c3fa5d281d5b1052fa9951dc differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/0f2982027f0b3b05250267b19e3969f8797e389e b/fuzz/corpora/fuzz_packfile_raw/0f2982027f0b3b05250267b19e3969f8797e389e
new file mode 100644
index 0000000..57505d2
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/0f2982027f0b3b05250267b19e3969f8797e389e
@@ -0,0 +1 @@
+ÐPACKïïðŽ
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/11f6ad8ec52a2984abaafd7c3b516503785c2072 b/fuzz/corpora/fuzz_packfile_raw/11f6ad8ec52a2984abaafd7c3b516503785c2072
new file mode 100644
index 0000000..c1b0730
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/11f6ad8ec52a2984abaafd7c3b516503785c2072
@@ -0,0 +1 @@
+x
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/123ca693d81a8cfd99760ff5ca9e152ded878537 b/fuzz/corpora/fuzz_packfile_raw/123ca693d81a8cfd99760ff5ca9e152ded878537
new file mode 100644
index 0000000..e680914
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/123ca693d81a8cfd99760ff5ca9e152ded878537 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/12878ca5643ab15a4a847e74ddd84fb365736af2 b/fuzz/corpora/fuzz_packfile_raw/12878ca5643ab15a4a847e74ddd84fb365736af2
new file mode 100644
index 0000000..6029463
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/12878ca5643ab15a4a847e74ddd84fb365736af2 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/13f292a24a9e79ae911f5d5e1ef7db0112601e64 b/fuzz/corpora/fuzz_packfile_raw/13f292a24a9e79ae911f5d5e1ef7db0112601e64
new file mode 100644
index 0000000..36b85ed
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/13f292a24a9e79ae911f5d5e1ef7db0112601e64 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/13facd9b4b5b4509fee92c7ccc1c82ed90624172 b/fuzz/corpora/fuzz_packfile_raw/13facd9b4b5b4509fee92c7ccc1c82ed90624172
new file mode 100644
index 0000000..82f4fa0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/13facd9b4b5b4509fee92c7ccc1c82ed90624172 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/140092a21903fdc56c98de126725fa6bead98ab1 b/fuzz/corpora/fuzz_packfile_raw/140092a21903fdc56c98de126725fa6bead98ab1
new file mode 100644
index 0000000..11006ca
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/140092a21903fdc56c98de126725fa6bead98ab1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1489f923c4dca729178b3e3233458550d8dddf29 b/fuzz/corpora/fuzz_packfile_raw/1489f923c4dca729178b3e3233458550d8dddf29
new file mode 100644
index 0000000..09f370e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1489f923c4dca729178b3e3233458550d8dddf29 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1501a58834f24f95442f190653a50dd67d01e19d b/fuzz/corpora/fuzz_packfile_raw/1501a58834f24f95442f190653a50dd67d01e19d
new file mode 100644
index 0000000..3bbe254
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1501a58834f24f95442f190653a50dd67d01e19d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/15eddee57cafb11e927810d62230a6e104de1d5c b/fuzz/corpora/fuzz_packfile_raw/15eddee57cafb11e927810d62230a6e104de1d5c
new file mode 100644
index 0000000..4c563e6
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/15eddee57cafb11e927810d62230a6e104de1d5c differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1632aa4b049f1118306485b11c70c499a0200dd5 b/fuzz/corpora/fuzz_packfile_raw/1632aa4b049f1118306485b11c70c499a0200dd5
new file mode 100644
index 0000000..677f3ab
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1632aa4b049f1118306485b11c70c499a0200dd5 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/18e1cf33b179a5cbaaf0baac8279ec4ed1cbdcf3 b/fuzz/corpora/fuzz_packfile_raw/18e1cf33b179a5cbaaf0baac8279ec4ed1cbdcf3
new file mode 100644
index 0000000..8445262
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/18e1cf33b179a5cbaaf0baac8279ec4ed1cbdcf3 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/18e768865207e0b90047487b66532b20bc74b1a2 b/fuzz/corpora/fuzz_packfile_raw/18e768865207e0b90047487b66532b20bc74b1a2
new file mode 100644
index 0000000..2069d5b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/18e768865207e0b90047487b66532b20bc74b1a2 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1940c66b45a3bd5c847330b207fd87aee6e96194 b/fuzz/corpora/fuzz_packfile_raw/1940c66b45a3bd5c847330b207fd87aee6e96194
new file mode 100644
index 0000000..5b8513e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1940c66b45a3bd5c847330b207fd87aee6e96194 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1966ab31dc80ab75196b0cbf28e3960a0eb3f6c5 b/fuzz/corpora/fuzz_packfile_raw/1966ab31dc80ab75196b0cbf28e3960a0eb3f6c5
new file mode 100644
index 0000000..572d311
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1966ab31dc80ab75196b0cbf28e3960a0eb3f6c5 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/19da91f2603889267dfd77786e07a5b8f067d62a b/fuzz/corpora/fuzz_packfile_raw/19da91f2603889267dfd77786e07a5b8f067d62a
new file mode 100644
index 0000000..8b43ca9
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/19da91f2603889267dfd77786e07a5b8f067d62a
@@ -0,0 +1 @@
+©
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/1a72795a3dffdfc999b030d9aab7237dea1e2bc1 b/fuzz/corpora/fuzz_packfile_raw/1a72795a3dffdfc999b030d9aab7237dea1e2bc1
new file mode 100644
index 0000000..5a8a38b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1a72795a3dffdfc999b030d9aab7237dea1e2bc1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1e29cf67a66f225b338610fbcdf1b8185a8f5b7d b/fuzz/corpora/fuzz_packfile_raw/1e29cf67a66f225b338610fbcdf1b8185a8f5b7d
new file mode 100644
index 0000000..52219de
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1e29cf67a66f225b338610fbcdf1b8185a8f5b7d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1eb8977ef8c3be9ee896d785663c762c7e32be28 b/fuzz/corpora/fuzz_packfile_raw/1eb8977ef8c3be9ee896d785663c762c7e32be28
new file mode 100644
index 0000000..d924eb7
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1eb8977ef8c3be9ee896d785663c762c7e32be28 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1f0837530c1c3d122157f2eaa9c2178dcc3580df b/fuzz/corpora/fuzz_packfile_raw/1f0837530c1c3d122157f2eaa9c2178dcc3580df
new file mode 100644
index 0000000..26b0c60
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1f0837530c1c3d122157f2eaa9c2178dcc3580df differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/1f3c5fd6dc091faa397bce776aa97b457388fdae b/fuzz/corpora/fuzz_packfile_raw/1f3c5fd6dc091faa397bce776aa97b457388fdae
new file mode 100644
index 0000000..5b5232d
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/1f3c5fd6dc091faa397bce776aa97b457388fdae differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/20528983163f834108150a7191600ff94ae2c1d2 b/fuzz/corpora/fuzz_packfile_raw/20528983163f834108150a7191600ff94ae2c1d2
new file mode 100644
index 0000000..05189f0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/20528983163f834108150a7191600ff94ae2c1d2 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/20a725140a8ffbe11bb71c1b83f19452147e5180 b/fuzz/corpora/fuzz_packfile_raw/20a725140a8ffbe11bb71c1b83f19452147e5180
new file mode 100644
index 0000000..f0337fa
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/20a725140a8ffbe11bb71c1b83f19452147e5180 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2149aa9e07dda9bbf502e088d8d0a38e8fb94f2e b/fuzz/corpora/fuzz_packfile_raw/2149aa9e07dda9bbf502e088d8d0a38e8fb94f2e
new file mode 100644
index 0000000..e7754ca
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/2149aa9e07dda9bbf502e088d8d0a38e8fb94f2e
@@ -0,0 +1 @@
+À
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/21b664aa8c86aaee4007d9bdbc2d63bf82bd5109 b/fuzz/corpora/fuzz_packfile_raw/21b664aa8c86aaee4007d9bdbc2d63bf82bd5109
new file mode 100644
index 0000000..44c6604
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/21b664aa8c86aaee4007d9bdbc2d63bf82bd5109 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/21b9ec8a7d7ac4d542c9bf7b2e26581cfcfaaab6 b/fuzz/corpora/fuzz_packfile_raw/21b9ec8a7d7ac4d542c9bf7b2e26581cfcfaaab6
new file mode 100644
index 0000000..c2f5439
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/21b9ec8a7d7ac4d542c9bf7b2e26581cfcfaaab6 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/21c07e2affed6b0134d5dc28ea6c4937e691c761 b/fuzz/corpora/fuzz_packfile_raw/21c07e2affed6b0134d5dc28ea6c4937e691c761
new file mode 100644
index 0000000..ee9fc89
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/21c07e2affed6b0134d5dc28ea6c4937e691c761 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/23841d4076641ebcb4f58d1fd03047528c9d359b b/fuzz/corpora/fuzz_packfile_raw/23841d4076641ebcb4f58d1fd03047528c9d359b
new file mode 100644
index 0000000..76b0b49
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/23841d4076641ebcb4f58d1fd03047528c9d359b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/23b9174c42560de6525b1f103125f599479f95cb b/fuzz/corpora/fuzz_packfile_raw/23b9174c42560de6525b1f103125f599479f95cb
new file mode 100644
index 0000000..4bef2f6
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/23b9174c42560de6525b1f103125f599479f95cb differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/241cbd6dfb6e53c43c73b62f9384359091dcbf56 b/fuzz/corpora/fuzz_packfile_raw/241cbd6dfb6e53c43c73b62f9384359091dcbf56
new file mode 100644
index 0000000..bd0fd35
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/241cbd6dfb6e53c43c73b62f9384359091dcbf56
@@ -0,0 +1 @@
+­
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/245a2ddea41e6531944933c4420b8c9790ac351b b/fuzz/corpora/fuzz_packfile_raw/245a2ddea41e6531944933c4420b8c9790ac351b
new file mode 100644
index 0000000..99cbc9b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/245a2ddea41e6531944933c4420b8c9790ac351b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2541e340271ea496a392870bcc20d3510287b9e9 b/fuzz/corpora/fuzz_packfile_raw/2541e340271ea496a392870bcc20d3510287b9e9
new file mode 100644
index 0000000..ff63b2a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/2541e340271ea496a392870bcc20d3510287b9e9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/276af22d5bf94344737fb1a5eb5de7d335004493 b/fuzz/corpora/fuzz_packfile_raw/276af22d5bf94344737fb1a5eb5de7d335004493
new file mode 100644
index 0000000..fd2b077
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/276af22d5bf94344737fb1a5eb5de7d335004493 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/27d5482eebd075de44389774fce28c69f45c8a75 b/fuzz/corpora/fuzz_packfile_raw/27d5482eebd075de44389774fce28c69f45c8a75
new file mode 100644
index 0000000..be54354
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/27d5482eebd075de44389774fce28c69f45c8a75
@@ -0,0 +1 @@
+h
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/28334bd612cb539de776370995f60c8032215434 b/fuzz/corpora/fuzz_packfile_raw/28334bd612cb539de776370995f60c8032215434
new file mode 100644
index 0000000..6d67b28
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/28334bd612cb539de776370995f60c8032215434 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2973e2ac092cba077d7350bfffe1cf2e0644a6e1 b/fuzz/corpora/fuzz_packfile_raw/2973e2ac092cba077d7350bfffe1cf2e0644a6e1
new file mode 100644
index 0000000..1066746
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/2973e2ac092cba077d7350bfffe1cf2e0644a6e1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2adcd01e876b12d867c858ffaec38c42c59c36c7 b/fuzz/corpora/fuzz_packfile_raw/2adcd01e876b12d867c858ffaec38c42c59c36c7
new file mode 100644
index 0000000..4323d10
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/2adcd01e876b12d867c858ffaec38c42c59c36c7 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2b28470644f5d0323643da99c831d82f20a7a74f b/fuzz/corpora/fuzz_packfile_raw/2b28470644f5d0323643da99c831d82f20a7a74f
new file mode 100644
index 0000000..a65ff49
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/2b28470644f5d0323643da99c831d82f20a7a74f differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2b86229020ba808df84e16f800dc152254f18f64 b/fuzz/corpora/fuzz_packfile_raw/2b86229020ba808df84e16f800dc152254f18f64
new file mode 100644
index 0000000..bd650d2
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/2b86229020ba808df84e16f800dc152254f18f64 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2cc5bf2f780cd85ad93d232890f418625f4d1274 b/fuzz/corpora/fuzz_packfile_raw/2cc5bf2f780cd85ad93d232890f418625f4d1274
new file mode 100644
index 0000000..f45a38c
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/2cc5bf2f780cd85ad93d232890f418625f4d1274
@@ -0,0 +1 @@
+Pw
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/2d6ae8fa82b656879dd3371d0a6899e88ef34e76 b/fuzz/corpora/fuzz_packfile_raw/2d6ae8fa82b656879dd3371d0a6899e88ef34e76
new file mode 100644
index 0000000..cd62a7b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/2d6ae8fa82b656879dd3371d0a6899e88ef34e76 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2e74d24e887678f0681d4c7c010477b8b9697f1a b/fuzz/corpora/fuzz_packfile_raw/2e74d24e887678f0681d4c7c010477b8b9697f1a
new file mode 100644
index 0000000..ae9780b
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/2e74d24e887678f0681d4c7c010477b8b9697f1a
@@ -0,0 +1 @@
+ˆ
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/2f436c68a7b0be43aa6d4ad5126ec9401a9f9211 b/fuzz/corpora/fuzz_packfile_raw/2f436c68a7b0be43aa6d4ad5126ec9401a9f9211
new file mode 100644
index 0000000..4841ef5
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/2f436c68a7b0be43aa6d4ad5126ec9401a9f9211 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/2fec48b0dcb45b98597bfec12bf0dc650543b3e3 b/fuzz/corpora/fuzz_packfile_raw/2fec48b0dcb45b98597bfec12bf0dc650543b3e3
new file mode 100644
index 0000000..0ded0e3
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/2fec48b0dcb45b98597bfec12bf0dc650543b3e3 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/31bd25636a9807d6024e78b9b3d02fbb1a02835e b/fuzz/corpora/fuzz_packfile_raw/31bd25636a9807d6024e78b9b3d02fbb1a02835e
new file mode 100644
index 0000000..15d1751
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/31bd25636a9807d6024e78b9b3d02fbb1a02835e
@@ -0,0 +1 @@
+ÿÿÿ@
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/323c88be36ecc20ff30b21cf417106554042db04 b/fuzz/corpora/fuzz_packfile_raw/323c88be36ecc20ff30b21cf417106554042db04
new file mode 100644
index 0000000..0e5c2cb
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/323c88be36ecc20ff30b21cf417106554042db04 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/33b3aa957ca4fb31873033a7f460617f1fe81e32 b/fuzz/corpora/fuzz_packfile_raw/33b3aa957ca4fb31873033a7f460617f1fe81e32
new file mode 100644
index 0000000..cea3b12
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/33b3aa957ca4fb31873033a7f460617f1fe81e32 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/34303d14e37c9ddfb0bad130e006fec927e13785 b/fuzz/corpora/fuzz_packfile_raw/34303d14e37c9ddfb0bad130e006fec927e13785
new file mode 100644
index 0000000..1adb6b1
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/34303d14e37c9ddfb0bad130e006fec927e13785 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/34dac9466a4a2c15aaeef13a9567f6827ace7748 b/fuzz/corpora/fuzz_packfile_raw/34dac9466a4a2c15aaeef13a9567f6827ace7748
new file mode 100644
index 0000000..2b0708e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/34dac9466a4a2c15aaeef13a9567f6827ace7748 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/356a192b7913b04c54574d18c28d46e6395428ab b/fuzz/corpora/fuzz_packfile_raw/356a192b7913b04c54574d18c28d46e6395428ab
new file mode 100644
index 0000000..56a6051
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/356a192b7913b04c54574d18c28d46e6395428ab
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/35bf585248be2c6d3940e15b85f72c4146903097 b/fuzz/corpora/fuzz_packfile_raw/35bf585248be2c6d3940e15b85f72c4146903097
new file mode 100644
index 0000000..f17d4fa
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/35bf585248be2c6d3940e15b85f72c4146903097 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/3725a1c4431714019827277deac8ec2efeed8f1d b/fuzz/corpora/fuzz_packfile_raw/3725a1c4431714019827277deac8ec2efeed8f1d
new file mode 100644
index 0000000..f58c271
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/3725a1c4431714019827277deac8ec2efeed8f1d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/37a2b7de1fadc9eab2d5fabf5dfe7007c245dbee b/fuzz/corpora/fuzz_packfile_raw/37a2b7de1fadc9eab2d5fabf5dfe7007c245dbee
new file mode 100644
index 0000000..0c71198
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/37a2b7de1fadc9eab2d5fabf5dfe7007c245dbee differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/37ab8a0ca81fc62279057401761f7730a5a8f1b2 b/fuzz/corpora/fuzz_packfile_raw/37ab8a0ca81fc62279057401761f7730a5a8f1b2
new file mode 100644
index 0000000..d9b74cf
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/37ab8a0ca81fc62279057401761f7730a5a8f1b2 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/38011be20a664dcd2594e712a26c063c2d50efcd b/fuzz/corpora/fuzz_packfile_raw/38011be20a664dcd2594e712a26c063c2d50efcd
new file mode 100644
index 0000000..bd80616
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/38011be20a664dcd2594e712a26c063c2d50efcd differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/3838851a5da8239c2ae6cbbe869c81446c720e87 b/fuzz/corpora/fuzz_packfile_raw/3838851a5da8239c2ae6cbbe869c81446c720e87
new file mode 100644
index 0000000..d1282b9
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/3838851a5da8239c2ae6cbbe869c81446c720e87 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/3921322ac01429b001f88d64c8319088fe49218e b/fuzz/corpora/fuzz_packfile_raw/3921322ac01429b001f88d64c8319088fe49218e
new file mode 100644
index 0000000..6ed50eb
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/3921322ac01429b001f88d64c8319088fe49218e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/395df8f7c51f007019cb30201c49e884b46b92fa b/fuzz/corpora/fuzz_packfile_raw/395df8f7c51f007019cb30201c49e884b46b92fa
new file mode 100644
index 0000000..fa7af8b
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/395df8f7c51f007019cb30201c49e884b46b92fa
@@ -0,0 +1 @@
+z
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/3e98eb4fd65d3f2c41fa979db0f5678b310e51fe b/fuzz/corpora/fuzz_packfile_raw/3e98eb4fd65d3f2c41fa979db0f5678b310e51fe
new file mode 100644
index 0000000..8f1d1f5
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/3e98eb4fd65d3f2c41fa979db0f5678b310e51fe differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/3f9ec359d0cb573cb6d2b2df64c9f4048ea298b8 b/fuzz/corpora/fuzz_packfile_raw/3f9ec359d0cb573cb6d2b2df64c9f4048ea298b8
new file mode 100644
index 0000000..3c1f737
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/3f9ec359d0cb573cb6d2b2df64c9f4048ea298b8 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4067250457728bf775aa310ef253b223ae2fe4dc b/fuzz/corpora/fuzz_packfile_raw/4067250457728bf775aa310ef253b223ae2fe4dc
new file mode 100644
index 0000000..1e9a88b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4067250457728bf775aa310ef253b223ae2fe4dc differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/40818db87e110b29cb864f73265586cc054f5bbb b/fuzz/corpora/fuzz_packfile_raw/40818db87e110b29cb864f73265586cc054f5bbb
new file mode 100644
index 0000000..e5e52b2
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/40818db87e110b29cb864f73265586cc054f5bbb differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/418f9fb9ce1d4efdf481ca8fff9dadd09caee9fc b/fuzz/corpora/fuzz_packfile_raw/418f9fb9ce1d4efdf481ca8fff9dadd09caee9fc
new file mode 100644
index 0000000..93eb935
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/418f9fb9ce1d4efdf481ca8fff9dadd09caee9fc differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/41ca0ae865b686089b8d99e9d661da291ce51019 b/fuzz/corpora/fuzz_packfile_raw/41ca0ae865b686089b8d99e9d661da291ce51019
new file mode 100644
index 0000000..e6f394f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/41ca0ae865b686089b8d99e9d661da291ce51019 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/42099b4af021e53fd8fd4e056c2568d7c2e3ffa8 b/fuzz/corpora/fuzz_packfile_raw/42099b4af021e53fd8fd4e056c2568d7c2e3ffa8
new file mode 100644
index 0000000..35ec3b9
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/42099b4af021e53fd8fd4e056c2568d7c2e3ffa8
@@ -0,0 +1 @@
+/
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/420ce645ce1c93cee59a06da2159cbbb251e4c01 b/fuzz/corpora/fuzz_packfile_raw/420ce645ce1c93cee59a06da2159cbbb251e4c01
new file mode 100644
index 0000000..5e6efc2
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/420ce645ce1c93cee59a06da2159cbbb251e4c01 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4345cb1fa27885a8fbfe7c0c830a592cc76a552b b/fuzz/corpora/fuzz_packfile_raw/4345cb1fa27885a8fbfe7c0c830a592cc76a552b
new file mode 100644
index 0000000..02691e3
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/4345cb1fa27885a8fbfe7c0c830a592cc76a552b
@@ -0,0 +1 @@
+%
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/450718a71a93a1b5ff982595432400b0fa876fb6 b/fuzz/corpora/fuzz_packfile_raw/450718a71a93a1b5ff982595432400b0fa876fb6
new file mode 100644
index 0000000..977e595
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/450718a71a93a1b5ff982595432400b0fa876fb6 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/453a312eb77b9d4198ac62faef10ecf3e283120c b/fuzz/corpora/fuzz_packfile_raw/453a312eb77b9d4198ac62faef10ecf3e283120c
new file mode 100644
index 0000000..b25fe53
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/453a312eb77b9d4198ac62faef10ecf3e283120c differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/45470317334b614ce4d119c05ed2d6250dbc6061 b/fuzz/corpora/fuzz_packfile_raw/45470317334b614ce4d119c05ed2d6250dbc6061
new file mode 100644
index 0000000..4b9a0a9
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/45470317334b614ce4d119c05ed2d6250dbc6061 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/45a65193e30784b0124f4fed659eb7e46552c2d0 b/fuzz/corpora/fuzz_packfile_raw/45a65193e30784b0124f4fed659eb7e46552c2d0
new file mode 100644
index 0000000..5bd7dea
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/45a65193e30784b0124f4fed659eb7e46552c2d0
@@ -0,0 +1 @@
+¶
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/45cff3494791ded181e1e3dab1c7a0e40130b57b b/fuzz/corpora/fuzz_packfile_raw/45cff3494791ded181e1e3dab1c7a0e40130b57b
new file mode 100644
index 0000000..a92e1a5
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/45cff3494791ded181e1e3dab1c7a0e40130b57b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/481dedc2855981510024d48828af0fe35a1503dd b/fuzz/corpora/fuzz_packfile_raw/481dedc2855981510024d48828af0fe35a1503dd
new file mode 100644
index 0000000..3d95cc3
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/481dedc2855981510024d48828af0fe35a1503dd differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/49a6448a722742b1b392f0471542ee0c572c5a9a b/fuzz/corpora/fuzz_packfile_raw/49a6448a722742b1b392f0471542ee0c572c5a9a
new file mode 100644
index 0000000..c767ee5
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/49a6448a722742b1b392f0471542ee0c572c5a9a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4a6e6af93dea13a5720be52b95f2948e0cab4602 b/fuzz/corpora/fuzz_packfile_raw/4a6e6af93dea13a5720be52b95f2948e0cab4602
new file mode 100644
index 0000000..013d77b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4a6e6af93dea13a5720be52b95f2948e0cab4602 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4ac25548f35e06eb9f91b0f15b89db3cb5bcb283 b/fuzz/corpora/fuzz_packfile_raw/4ac25548f35e06eb9f91b0f15b89db3cb5bcb283
new file mode 100644
index 0000000..2ee6580
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4ac25548f35e06eb9f91b0f15b89db3cb5bcb283 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4b586169f192749a0aa023ad6e4edd2e15d67f53 b/fuzz/corpora/fuzz_packfile_raw/4b586169f192749a0aa023ad6e4edd2e15d67f53
new file mode 100644
index 0000000..d517c58
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4b586169f192749a0aa023ad6e4edd2e15d67f53 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4c3c8ec0e25da9342dc87c2e78d3040c381514ce b/fuzz/corpora/fuzz_packfile_raw/4c3c8ec0e25da9342dc87c2e78d3040c381514ce
new file mode 100644
index 0000000..c6a1059
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4c3c8ec0e25da9342dc87c2e78d3040c381514ce differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4d5189cd1411daaa579df34591c6a5946204c9a0 b/fuzz/corpora/fuzz_packfile_raw/4d5189cd1411daaa579df34591c6a5946204c9a0
new file mode 100644
index 0000000..ac19046
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4d5189cd1411daaa579df34591c6a5946204c9a0 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4d7f1bfa928c0d3399598d562e346c6e23de6a03 b/fuzz/corpora/fuzz_packfile_raw/4d7f1bfa928c0d3399598d562e346c6e23de6a03
new file mode 100644
index 0000000..712cf00
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4d7f1bfa928c0d3399598d562e346c6e23de6a03 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4eee38183d6fce3f42224738be58d0e3975300f4 b/fuzz/corpora/fuzz_packfile_raw/4eee38183d6fce3f42224738be58d0e3975300f4
new file mode 100644
index 0000000..4434b93
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4eee38183d6fce3f42224738be58d0e3975300f4 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4f2e2af611d6567abcf5b6bfc579487ac417a8d4 b/fuzz/corpora/fuzz_packfile_raw/4f2e2af611d6567abcf5b6bfc579487ac417a8d4
new file mode 100644
index 0000000..d16ad16
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4f2e2af611d6567abcf5b6bfc579487ac417a8d4 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4fa04b2c3ac839c36c4a3b51bf882eb99b7cd097 b/fuzz/corpora/fuzz_packfile_raw/4fa04b2c3ac839c36c4a3b51bf882eb99b7cd097
new file mode 100644
index 0000000..0102fe3
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4fa04b2c3ac839c36c4a3b51bf882eb99b7cd097 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/4fbe10aede9fd9ce2030c6e567a9281e1a5338f4 b/fuzz/corpora/fuzz_packfile_raw/4fbe10aede9fd9ce2030c6e567a9281e1a5338f4
new file mode 100644
index 0000000..83ca019
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/4fbe10aede9fd9ce2030c6e567a9281e1a5338f4 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/5037f4f74273aed9a09122af5f4acc10f42c033a b/fuzz/corpora/fuzz_packfile_raw/5037f4f74273aed9a09122af5f4acc10f42c033a
new file mode 100644
index 0000000..cc94079
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/5037f4f74273aed9a09122af5f4acc10f42c033a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/511993d3c99719e38a6779073019dacd7178ddb9 b/fuzz/corpora/fuzz_packfile_raw/511993d3c99719e38a6779073019dacd7178ddb9
new file mode 100644
index 0000000..675f43a
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/511993d3c99719e38a6779073019dacd7178ddb9
@@ -0,0 +1 @@
+P
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/520aa436eab6343c3729f51f0f8048e6b87f6aeb b/fuzz/corpora/fuzz_packfile_raw/520aa436eab6343c3729f51f0f8048e6b87f6aeb
new file mode 100644
index 0000000..b5ec5af
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/520aa436eab6343c3729f51f0f8048e6b87f6aeb
@@ -0,0 +1 @@
+ÏÏ
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/521e228f3b62dca81d87d2e7d5476657d7b5e0a9 b/fuzz/corpora/fuzz_packfile_raw/521e228f3b62dca81d87d2e7d5476657d7b5e0a9
new file mode 100644
index 0000000..c0ea9e9
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/521e228f3b62dca81d87d2e7d5476657d7b5e0a9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/52e37dfd77d56769dc8a96388aa26695a8108dac b/fuzz/corpora/fuzz_packfile_raw/52e37dfd77d56769dc8a96388aa26695a8108dac
new file mode 100644
index 0000000..57d12a9
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/52e37dfd77d56769dc8a96388aa26695a8108dac differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/5374fb6be0a406cf8d0e95771ecb032254d21305 b/fuzz/corpora/fuzz_packfile_raw/5374fb6be0a406cf8d0e95771ecb032254d21305
new file mode 100644
index 0000000..42b16b0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/5374fb6be0a406cf8d0e95771ecb032254d21305 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/53e1d4898c15c8ee3ef5e2fb279d151108725731 b/fuzz/corpora/fuzz_packfile_raw/53e1d4898c15c8ee3ef5e2fb279d151108725731
new file mode 100644
index 0000000..516958e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/53e1d4898c15c8ee3ef5e2fb279d151108725731 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/53e61ad37ca92b7f6c0396e5fab1ed8743e73da0 b/fuzz/corpora/fuzz_packfile_raw/53e61ad37ca92b7f6c0396e5fab1ed8743e73da0
new file mode 100644
index 0000000..ded2968
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/53e61ad37ca92b7f6c0396e5fab1ed8743e73da0 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/55df2a59ed6a888ee2f0cdfdcc8582696702de7a b/fuzz/corpora/fuzz_packfile_raw/55df2a59ed6a888ee2f0cdfdcc8582696702de7a
new file mode 100644
index 0000000..a4a063a
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/55df2a59ed6a888ee2f0cdfdcc8582696702de7a
@@ -0,0 +1 @@
+ï
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/56a2020f68c5eb72786ea168cc2a7e8ea34ad9c2 b/fuzz/corpora/fuzz_packfile_raw/56a2020f68c5eb72786ea168cc2a7e8ea34ad9c2
new file mode 100644
index 0000000..be0ff0d
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/56a2020f68c5eb72786ea168cc2a7e8ea34ad9c2 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/578678e78b72f8bcb9f414e4129ae5d85a4af914 b/fuzz/corpora/fuzz_packfile_raw/578678e78b72f8bcb9f414e4129ae5d85a4af914
new file mode 100644
index 0000000..7482954
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/578678e78b72f8bcb9f414e4129ae5d85a4af914 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/5a8bc5597fd0b2b44194ffabce46e2fa94c1ffd7 b/fuzz/corpora/fuzz_packfile_raw/5a8bc5597fd0b2b44194ffabce46e2fa94c1ffd7
new file mode 100644
index 0000000..4c88499
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/5a8bc5597fd0b2b44194ffabce46e2fa94c1ffd7 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/5bab61eb53176449e25c2c82f172b82cb13ffb9d b/fuzz/corpora/fuzz_packfile_raw/5bab61eb53176449e25c2c82f172b82cb13ffb9d
new file mode 100644
index 0000000..0d758c9
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/5bab61eb53176449e25c2c82f172b82cb13ffb9d
@@ -0,0 +1 @@
+?
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/5c2dd944dde9e08881bef0894fe7b22a5c9c4b06 b/fuzz/corpora/fuzz_packfile_raw/5c2dd944dde9e08881bef0894fe7b22a5c9c4b06
new file mode 100644
index 0000000..0fe2fa5
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/5c2dd944dde9e08881bef0894fe7b22a5c9c4b06
@@ -0,0 +1 @@
+j
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/5cb4674f4468d39f061d1df3c95b9c2dca529c54 b/fuzz/corpora/fuzz_packfile_raw/5cb4674f4468d39f061d1df3c95b9c2dca529c54
new file mode 100644
index 0000000..9b54d9f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/5cb4674f4468d39f061d1df3c95b9c2dca529c54 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/60b6fbfe65dc1796a09a734e054223aba8c90260 b/fuzz/corpora/fuzz_packfile_raw/60b6fbfe65dc1796a09a734e054223aba8c90260
new file mode 100644
index 0000000..a7df9a6
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/60b6fbfe65dc1796a09a734e054223aba8c90260 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/611f5b9368427ef823f7ed89ad23667b02a06435 b/fuzz/corpora/fuzz_packfile_raw/611f5b9368427ef823f7ed89ad23667b02a06435
new file mode 100644
index 0000000..56ee380
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/611f5b9368427ef823f7ed89ad23667b02a06435 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6214b4afdbfe63400ce428d47a58a2e29f682738 b/fuzz/corpora/fuzz_packfile_raw/6214b4afdbfe63400ce428d47a58a2e29f682738
new file mode 100644
index 0000000..09e3c40
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6214b4afdbfe63400ce428d47a58a2e29f682738 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/634b675b80d51b52c3c6fbc73181ed47f61749ba b/fuzz/corpora/fuzz_packfile_raw/634b675b80d51b52c3c6fbc73181ed47f61749ba
new file mode 100644
index 0000000..9afac4f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/634b675b80d51b52c3c6fbc73181ed47f61749ba differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6431f1b31dc492fad89732b7d3e511fa7361985d b/fuzz/corpora/fuzz_packfile_raw/6431f1b31dc492fad89732b7d3e511fa7361985d
new file mode 100644
index 0000000..b68409e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6431f1b31dc492fad89732b7d3e511fa7361985d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6442fd4bbb7656f142c92050da17b0e81e79fad1 b/fuzz/corpora/fuzz_packfile_raw/6442fd4bbb7656f142c92050da17b0e81e79fad1
new file mode 100644
index 0000000..2ca2d96
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6442fd4bbb7656f142c92050da17b0e81e79fad1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6486c8cf6bcc2fca60502564924f6b266399df3d b/fuzz/corpora/fuzz_packfile_raw/6486c8cf6bcc2fca60502564924f6b266399df3d
new file mode 100644
index 0000000..a80e209
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6486c8cf6bcc2fca60502564924f6b266399df3d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/651c573b6fdd393e97536a47f8b9e65226e29c33 b/fuzz/corpora/fuzz_packfile_raw/651c573b6fdd393e97536a47f8b9e65226e29c33
new file mode 100644
index 0000000..ec11120
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/651c573b6fdd393e97536a47f8b9e65226e29c33 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/657fc646e93cb999417f43f0ec77fbad694e3e18 b/fuzz/corpora/fuzz_packfile_raw/657fc646e93cb999417f43f0ec77fbad694e3e18
new file mode 100644
index 0000000..acb56a8
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/657fc646e93cb999417f43f0ec77fbad694e3e18 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/65cc90263dec0020ceabc727d33aa587e57fc175 b/fuzz/corpora/fuzz_packfile_raw/65cc90263dec0020ceabc727d33aa587e57fc175
new file mode 100644
index 0000000..d14a6c3
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/65cc90263dec0020ceabc727d33aa587e57fc175
@@ -0,0 +1 @@
+ÿ÷
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/688934845f22049cb14668832efa33d45013b6b9 b/fuzz/corpora/fuzz_packfile_raw/688934845f22049cb14668832efa33d45013b6b9
new file mode 100644
index 0000000..15294a5
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/688934845f22049cb14668832efa33d45013b6b9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6b0d31c0d563223024da45691584643ac78c96e8 b/fuzz/corpora/fuzz_packfile_raw/6b0d31c0d563223024da45691584643ac78c96e8
new file mode 100644
index 0000000..08b9811
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/6b0d31c0d563223024da45691584643ac78c96e8
@@ -0,0 +1 @@
+m
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/6b4dc6028a3a684a20dbc427b15a37ea2fd12dd1 b/fuzz/corpora/fuzz_packfile_raw/6b4dc6028a3a684a20dbc427b15a37ea2fd12dd1
new file mode 100644
index 0000000..d76aa6f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6b4dc6028a3a684a20dbc427b15a37ea2fd12dd1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6b7486fc2a47a40eb5a85a5edf53af60d48be7d5 b/fuzz/corpora/fuzz_packfile_raw/6b7486fc2a47a40eb5a85a5edf53af60d48be7d5
new file mode 100644
index 0000000..d1e0eed
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6b7486fc2a47a40eb5a85a5edf53af60d48be7d5 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6bace82ea640ac0a78963c79483faf0faa7fd168 b/fuzz/corpora/fuzz_packfile_raw/6bace82ea640ac0a78963c79483faf0faa7fd168
new file mode 100644
index 0000000..8c53a7f
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/6bace82ea640ac0a78963c79483faf0faa7fd168
@@ -0,0 +1 @@
+±
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/6ca38da5f096a5847776e4d50cb63121341fd67c b/fuzz/corpora/fuzz_packfile_raw/6ca38da5f096a5847776e4d50cb63121341fd67c
new file mode 100644
index 0000000..628bda0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6ca38da5f096a5847776e4d50cb63121341fd67c differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6d344a65b9edced36045f94215b6810799789334 b/fuzz/corpora/fuzz_packfile_raw/6d344a65b9edced36045f94215b6810799789334
new file mode 100644
index 0000000..1c79442
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6d344a65b9edced36045f94215b6810799789334 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6dd655e8ef0573eb1c41151af924974aa1e9c454 b/fuzz/corpora/fuzz_packfile_raw/6dd655e8ef0573eb1c41151af924974aa1e9c454
new file mode 100644
index 0000000..5304756
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6dd655e8ef0573eb1c41151af924974aa1e9c454 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6e118259c2940fafba0a9ceeef6308e12e881ae1 b/fuzz/corpora/fuzz_packfile_raw/6e118259c2940fafba0a9ceeef6308e12e881ae1
new file mode 100644
index 0000000..23597c3
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6e118259c2940fafba0a9ceeef6308e12e881ae1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/6e4b5ef83333606a16a63b579f221f6ffb7b48ee b/fuzz/corpora/fuzz_packfile_raw/6e4b5ef83333606a16a63b579f221f6ffb7b48ee
new file mode 100644
index 0000000..6d72c9a
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/6e4b5ef83333606a16a63b579f221f6ffb7b48ee
@@ -0,0 +1 @@
+è
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/6f47ff60d54c012103a0c28851ffa9eab3002511 b/fuzz/corpora/fuzz_packfile_raw/6f47ff60d54c012103a0c28851ffa9eab3002511
new file mode 100644
index 0000000..a7efd53
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/6f47ff60d54c012103a0c28851ffa9eab3002511 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/701a765befff451207517d56c3fe8609d059867d b/fuzz/corpora/fuzz_packfile_raw/701a765befff451207517d56c3fe8609d059867d
new file mode 100644
index 0000000..ee936e3
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/701a765befff451207517d56c3fe8609d059867d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/7050f56d64b28499c89d5430761f18a8a2a933d4 b/fuzz/corpora/fuzz_packfile_raw/7050f56d64b28499c89d5430761f18a8a2a933d4
new file mode 100644
index 0000000..a3df396
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/7050f56d64b28499c89d5430761f18a8a2a933d4 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/724fa0194f615e1a0f08184a9f1520123f8e2833 b/fuzz/corpora/fuzz_packfile_raw/724fa0194f615e1a0f08184a9f1520123f8e2833
new file mode 100644
index 0000000..dd6df78
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/724fa0194f615e1a0f08184a9f1520123f8e2833 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/72c52d0d98717e21dfee45418a046a19198b5d5d b/fuzz/corpora/fuzz_packfile_raw/72c52d0d98717e21dfee45418a046a19198b5d5d
new file mode 100644
index 0000000..922e306
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/72c52d0d98717e21dfee45418a046a19198b5d5d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/72cec0949c5743ee1df67b41ece5d6806f9bede6 b/fuzz/corpora/fuzz_packfile_raw/72cec0949c5743ee1df67b41ece5d6806f9bede6
new file mode 100644
index 0000000..366439d
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/72cec0949c5743ee1df67b41ece5d6806f9bede6 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/72e6bfb7b881befc0b461334411d70ae227a426a b/fuzz/corpora/fuzz_packfile_raw/72e6bfb7b881befc0b461334411d70ae227a426a
new file mode 100644
index 0000000..c7986f6
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/72e6bfb7b881befc0b461334411d70ae227a426a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/73b74736664ad85828ce1be2e29fb4a68d24402b b/fuzz/corpora/fuzz_packfile_raw/73b74736664ad85828ce1be2e29fb4a68d24402b
new file mode 100644
index 0000000..009080e
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/73b74736664ad85828ce1be2e29fb4a68d24402b
@@ -0,0 +1 @@
+÷
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/745bedb79413d20844a8b0e96fbec51b4989c65d b/fuzz/corpora/fuzz_packfile_raw/745bedb79413d20844a8b0e96fbec51b4989c65d
new file mode 100644
index 0000000..0022a3e
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/745bedb79413d20844a8b0e96fbec51b4989c65d
@@ -0,0 +1 @@
+ø
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/748142c17e56d0f0ad9e4d6525b39294d81261d6 b/fuzz/corpora/fuzz_packfile_raw/748142c17e56d0f0ad9e4d6525b39294d81261d6
new file mode 100644
index 0000000..7ac1cad
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/748142c17e56d0f0ad9e4d6525b39294d81261d6 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/74dfea2e26741a8778fb942d1d60a84d0759d7a0 b/fuzz/corpora/fuzz_packfile_raw/74dfea2e26741a8778fb942d1d60a84d0759d7a0
new file mode 100644
index 0000000..fe307f6
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/74dfea2e26741a8778fb942d1d60a84d0759d7a0
@@ -0,0 +1 @@
+˜o
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/767b2efbb7502a2f652a448b471693d32c128677 b/fuzz/corpora/fuzz_packfile_raw/767b2efbb7502a2f652a448b471693d32c128677
new file mode 100644
index 0000000..90a8f3a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/767b2efbb7502a2f652a448b471693d32c128677 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/78abe558c4277852128d4b91282edcb68f86bdea b/fuzz/corpora/fuzz_packfile_raw/78abe558c4277852128d4b91282edcb68f86bdea
new file mode 100644
index 0000000..30644d1
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/78abe558c4277852128d4b91282edcb68f86bdea differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/7960246c2db6d39e68dfe93ded358a3acba8f896 b/fuzz/corpora/fuzz_packfile_raw/7960246c2db6d39e68dfe93ded358a3acba8f896
new file mode 100644
index 0000000..4d3703a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/7960246c2db6d39e68dfe93ded358a3acba8f896 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/7a4ff814176b55af008ad9580201d5e659242f05 b/fuzz/corpora/fuzz_packfile_raw/7a4ff814176b55af008ad9580201d5e659242f05
new file mode 100644
index 0000000..029e4fc
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/7a4ff814176b55af008ad9580201d5e659242f05 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/7a752694fce29ded083fbabbc9ff95f5b92a3d9c b/fuzz/corpora/fuzz_packfile_raw/7a752694fce29ded083fbabbc9ff95f5b92a3d9c
new file mode 100644
index 0000000..82b5593
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/7a752694fce29ded083fbabbc9ff95f5b92a3d9c differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/7a81af3e591ac713f81ea1efe93dcf36157d8376 b/fuzz/corpora/fuzz_packfile_raw/7a81af3e591ac713f81ea1efe93dcf36157d8376
new file mode 100644
index 0000000..883ad6e
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/7a81af3e591ac713f81ea1efe93dcf36157d8376
@@ -0,0 +1 @@
+o
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/7c957a1fd650f9ae0eadc112837ea451a692affc b/fuzz/corpora/fuzz_packfile_raw/7c957a1fd650f9ae0eadc112837ea451a692affc
new file mode 100644
index 0000000..251bc95
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/7c957a1fd650f9ae0eadc112837ea451a692affc differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/7cda4ab6a0daf50f675d5225cbc166c86a8ef95f b/fuzz/corpora/fuzz_packfile_raw/7cda4ab6a0daf50f675d5225cbc166c86a8ef95f
new file mode 100644
index 0000000..9e58e19
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/7cda4ab6a0daf50f675d5225cbc166c86a8ef95f differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/7cf184f4c67ad58283ecb19349720b0cae756829 b/fuzz/corpora/fuzz_packfile_raw/7cf184f4c67ad58283ecb19349720b0cae756829
new file mode 100644
index 0000000..8ac2eb5
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/7cf184f4c67ad58283ecb19349720b0cae756829
@@ -0,0 +1 @@
+H
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/7df1ea8d86d601c3bd39977ea85e5f74c9db6acb b/fuzz/corpora/fuzz_packfile_raw/7df1ea8d86d601c3bd39977ea85e5f74c9db6acb
new file mode 100644
index 0000000..0865a4a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/7df1ea8d86d601c3bd39977ea85e5f74c9db6acb differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/820ec3e39089d863641a1be6942445db3ff34270 b/fuzz/corpora/fuzz_packfile_raw/820ec3e39089d863641a1be6942445db3ff34270
new file mode 100644
index 0000000..a7a949a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/820ec3e39089d863641a1be6942445db3ff34270 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/827704fd978bd02a46268b7396b202a52ad261ed b/fuzz/corpora/fuzz_packfile_raw/827704fd978bd02a46268b7396b202a52ad261ed
new file mode 100644
index 0000000..855e5fc
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/827704fd978bd02a46268b7396b202a52ad261ed differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/828acfc1d49a0fdbcd9f238138ff65582c2a9fc8 b/fuzz/corpora/fuzz_packfile_raw/828acfc1d49a0fdbcd9f238138ff65582c2a9fc8
new file mode 100644
index 0000000..cf479ad
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/828acfc1d49a0fdbcd9f238138ff65582c2a9fc8 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8306a2f04a47fe4c95098675ffa25c074ecd89de b/fuzz/corpora/fuzz_packfile_raw/8306a2f04a47fe4c95098675ffa25c074ecd89de
new file mode 100644
index 0000000..44cda73
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8306a2f04a47fe4c95098675ffa25c074ecd89de differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8327db1c6a884d8b3e3cefd94cec9eb94bffae0a b/fuzz/corpora/fuzz_packfile_raw/8327db1c6a884d8b3e3cefd94cec9eb94bffae0a
new file mode 100644
index 0000000..315e1e6
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8327db1c6a884d8b3e3cefd94cec9eb94bffae0a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/847f4e42f8f2730a48d19951d8829621b2e70082 b/fuzz/corpora/fuzz_packfile_raw/847f4e42f8f2730a48d19951d8829621b2e70082
new file mode 100644
index 0000000..22952d5
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/847f4e42f8f2730a48d19951d8829621b2e70082 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/84a516841ba77a5b4648de2cd0dfcb30ea46dbb4 b/fuzz/corpora/fuzz_packfile_raw/84a516841ba77a5b4648de2cd0dfcb30ea46dbb4
new file mode 100644
index 0000000..3410062
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/84a516841ba77a5b4648de2cd0dfcb30ea46dbb4
@@ -0,0 +1 @@
+c
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/8552526f5aba95119c0b95b61cd40386e7a3738b b/fuzz/corpora/fuzz_packfile_raw/8552526f5aba95119c0b95b61cd40386e7a3738b
new file mode 100644
index 0000000..6a29f0f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8552526f5aba95119c0b95b61cd40386e7a3738b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8565db62ac64209ff009ac40e7c2d2ac4ae944eb b/fuzz/corpora/fuzz_packfile_raw/8565db62ac64209ff009ac40e7c2d2ac4ae944eb
new file mode 100644
index 0000000..066b1da
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8565db62ac64209ff009ac40e7c2d2ac4ae944eb differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/859b3346967c5c3c136459e565b402f9a936aa0d b/fuzz/corpora/fuzz_packfile_raw/859b3346967c5c3c136459e565b402f9a936aa0d
new file mode 100644
index 0000000..9c10c98
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/859b3346967c5c3c136459e565b402f9a936aa0d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/86a69caf3c5866d78d80da087b1b843cfea5e907 b/fuzz/corpora/fuzz_packfile_raw/86a69caf3c5866d78d80da087b1b843cfea5e907
new file mode 100644
index 0000000..b122e37
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/86a69caf3c5866d78d80da087b1b843cfea5e907 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/86e1fb54a04fc18ee482b794ba3b2b306f6515d4 b/fuzz/corpora/fuzz_packfile_raw/86e1fb54a04fc18ee482b794ba3b2b306f6515d4
new file mode 100644
index 0000000..7d31055
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/86e1fb54a04fc18ee482b794ba3b2b306f6515d4 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/86f217ee467d31ad9ad2a8c502b91279cd7f1c40 b/fuzz/corpora/fuzz_packfile_raw/86f217ee467d31ad9ad2a8c502b91279cd7f1c40
new file mode 100644
index 0000000..9951e26
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/86f217ee467d31ad9ad2a8c502b91279cd7f1c40 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8768a53e1d4c182907306300f9ca90cfd8018383 b/fuzz/corpora/fuzz_packfile_raw/8768a53e1d4c182907306300f9ca90cfd8018383
new file mode 100644
index 0000000..3ea63c2
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/8768a53e1d4c182907306300f9ca90cfd8018383
@@ -0,0 +1 @@
+…
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/8834a7aac170c494f45aa4da71b9605a52d82435 b/fuzz/corpora/fuzz_packfile_raw/8834a7aac170c494f45aa4da71b9605a52d82435
new file mode 100644
index 0000000..40d2f60
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8834a7aac170c494f45aa4da71b9605a52d82435 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/883f023f38a031d8a8e8ce2cba6614b9bff5d41f b/fuzz/corpora/fuzz_packfile_raw/883f023f38a031d8a8e8ce2cba6614b9bff5d41f
new file mode 100644
index 0000000..30928b6
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/883f023f38a031d8a8e8ce2cba6614b9bff5d41f differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/88738071086eb04e47b77d1ca28b35ddbfaa0968 b/fuzz/corpora/fuzz_packfile_raw/88738071086eb04e47b77d1ca28b35ddbfaa0968
new file mode 100644
index 0000000..7c1f28e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/88738071086eb04e47b77d1ca28b35ddbfaa0968 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/892aef744c87c6ee4ba3dd457c7ca02ba3d359bd b/fuzz/corpora/fuzz_packfile_raw/892aef744c87c6ee4ba3dd457c7ca02ba3d359bd
new file mode 100644
index 0000000..16e6f0a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/892aef744c87c6ee4ba3dd457c7ca02ba3d359bd differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8afb5c282d23c4055500f88a10b26383c682c900 b/fuzz/corpora/fuzz_packfile_raw/8afb5c282d23c4055500f88a10b26383c682c900
new file mode 100644
index 0000000..cf91507
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8afb5c282d23c4055500f88a10b26383c682c900 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8b3dfce4cd7b8942eedb52af0e9ca4caa5c6de61 b/fuzz/corpora/fuzz_packfile_raw/8b3dfce4cd7b8942eedb52af0e9ca4caa5c6de61
new file mode 100644
index 0000000..4c8cc0c
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8b3dfce4cd7b8942eedb52af0e9ca4caa5c6de61 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8c2cccf751bb5844bea8dc63c22e3f8e4489411e b/fuzz/corpora/fuzz_packfile_raw/8c2cccf751bb5844bea8dc63c22e3f8e4489411e
new file mode 100644
index 0000000..70e2d30
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8c2cccf751bb5844bea8dc63c22e3f8e4489411e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8e30894298502ba4d43af98f1ec3088f9b8f29d5 b/fuzz/corpora/fuzz_packfile_raw/8e30894298502ba4d43af98f1ec3088f9b8f29d5
new file mode 100644
index 0000000..c4df802
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8e30894298502ba4d43af98f1ec3088f9b8f29d5 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8eb4d738f7170d2e0594b779f782eb3171c9d421 b/fuzz/corpora/fuzz_packfile_raw/8eb4d738f7170d2e0594b779f782eb3171c9d421
new file mode 100644
index 0000000..410a7d6
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8eb4d738f7170d2e0594b779f782eb3171c9d421 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/8f46a043da3aa5d466ade170e62b0b9f362b4c5b b/fuzz/corpora/fuzz_packfile_raw/8f46a043da3aa5d466ade170e62b0b9f362b4c5b
new file mode 100644
index 0000000..172736f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/8f46a043da3aa5d466ade170e62b0b9f362b4c5b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9295f39686016bf3abb1d6e9924d6725c1263920 b/fuzz/corpora/fuzz_packfile_raw/9295f39686016bf3abb1d6e9924d6725c1263920
new file mode 100644
index 0000000..04be533
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9295f39686016bf3abb1d6e9924d6725c1263920 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/92fa2c2237724e7ba49e9c59adad8d61ce400bbf b/fuzz/corpora/fuzz_packfile_raw/92fa2c2237724e7ba49e9c59adad8d61ce400bbf
new file mode 100644
index 0000000..b890df0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/92fa2c2237724e7ba49e9c59adad8d61ce400bbf differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/936548b53e1a1e30cb30747a87203abd4eae78ea b/fuzz/corpora/fuzz_packfile_raw/936548b53e1a1e30cb30747a87203abd4eae78ea
new file mode 100644
index 0000000..2171770
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/936548b53e1a1e30cb30747a87203abd4eae78ea differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9835ad3ff27939bc1315632d6a22980b377c36e4 b/fuzz/corpora/fuzz_packfile_raw/9835ad3ff27939bc1315632d6a22980b377c36e4
new file mode 100644
index 0000000..025ad50
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/9835ad3ff27939bc1315632d6a22980b377c36e4
@@ -0,0 +1 @@
+˜Pÿðÿðïÿðï
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/9857740c36a95415fa3be04cdf184db7b41a8b3e b/fuzz/corpora/fuzz_packfile_raw/9857740c36a95415fa3be04cdf184db7b41a8b3e
new file mode 100644
index 0000000..7d3242f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9857740c36a95415fa3be04cdf184db7b41a8b3e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/98c35b9d5e7b430d0d4ef70f642d8e2f3266b6d4 b/fuzz/corpora/fuzz_packfile_raw/98c35b9d5e7b430d0d4ef70f642d8e2f3266b6d4
new file mode 100644
index 0000000..ea7c76e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/98c35b9d5e7b430d0d4ef70f642d8e2f3266b6d4 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9929b50ac145c0781a0347be1559764edc668173 b/fuzz/corpora/fuzz_packfile_raw/9929b50ac145c0781a0347be1559764edc668173
new file mode 100644
index 0000000..33f1e92
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/9929b50ac145c0781a0347be1559764edc668173
@@ -0,0 +1 @@
+žPACK³³
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/9bf6a450d87badf2d495c2df37081ea16156915a b/fuzz/corpora/fuzz_packfile_raw/9bf6a450d87badf2d495c2df37081ea16156915a
new file mode 100644
index 0000000..ff4c483
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9bf6a450d87badf2d495c2df37081ea16156915a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9bffb3ff7a4429144305b770162074bbffe39ce9 b/fuzz/corpora/fuzz_packfile_raw/9bffb3ff7a4429144305b770162074bbffe39ce9
new file mode 100644
index 0000000..aa9c335
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9bffb3ff7a4429144305b770162074bbffe39ce9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9c040d3207196e3aeee0df389170d6e59733ba0f b/fuzz/corpora/fuzz_packfile_raw/9c040d3207196e3aeee0df389170d6e59733ba0f
new file mode 100644
index 0000000..4c4e68a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9c040d3207196e3aeee0df389170d6e59733ba0f differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9c740d0f3b8875a3b19f1cf1a88d5192a997a68d b/fuzz/corpora/fuzz_packfile_raw/9c740d0f3b8875a3b19f1cf1a88d5192a997a68d
new file mode 100644
index 0000000..1f1ea65
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9c740d0f3b8875a3b19f1cf1a88d5192a997a68d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9cf72097400efb70d06179e6b00abb4cdec74e66 b/fuzz/corpora/fuzz_packfile_raw/9cf72097400efb70d06179e6b00abb4cdec74e66
new file mode 100644
index 0000000..25cfb39
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9cf72097400efb70d06179e6b00abb4cdec74e66 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9d36c270ef1f14214742562238dc747242d4756e b/fuzz/corpora/fuzz_packfile_raw/9d36c270ef1f14214742562238dc747242d4756e
new file mode 100644
index 0000000..c54dc55
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9d36c270ef1f14214742562238dc747242d4756e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/9fb415ccadc8e7b0f38646ec5782d5895111e259 b/fuzz/corpora/fuzz_packfile_raw/9fb415ccadc8e7b0f38646ec5782d5895111e259
new file mode 100644
index 0000000..473ebb7
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/9fb415ccadc8e7b0f38646ec5782d5895111e259 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/a13b7fbb454fe3bdebd07a51d466484aa41ee142 b/fuzz/corpora/fuzz_packfile_raw/a13b7fbb454fe3bdebd07a51d466484aa41ee142
new file mode 100644
index 0000000..48edf15
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/a13b7fbb454fe3bdebd07a51d466484aa41ee142 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/a1a7715c7596c77b892dc6d4debb7c108ca4ef97 b/fuzz/corpora/fuzz_packfile_raw/a1a7715c7596c77b892dc6d4debb7c108ca4ef97
new file mode 100644
index 0000000..3958311
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/a1a7715c7596c77b892dc6d4debb7c108ca4ef97
@@ -0,0 +1 @@
+ù
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/a1ac8b656af02b56aefe6029db36b1af9fb664ef b/fuzz/corpora/fuzz_packfile_raw/a1ac8b656af02b56aefe6029db36b1af9fb664ef
new file mode 100644
index 0000000..eeae769
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/a1ac8b656af02b56aefe6029db36b1af9fb664ef differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/a343687e2522222c2d49e8cb18d3feda64cf1d66 b/fuzz/corpora/fuzz_packfile_raw/a343687e2522222c2d49e8cb18d3feda64cf1d66
new file mode 100644
index 0000000..7d24f8c
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/a343687e2522222c2d49e8cb18d3feda64cf1d66 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/a6f57425137e9aa54537f0b3f5364ce165aedb0a b/fuzz/corpora/fuzz_packfile_raw/a6f57425137e9aa54537f0b3f5364ce165aedb0a
new file mode 100644
index 0000000..d50394e
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/a6f57425137e9aa54537f0b3f5364ce165aedb0a
@@ -0,0 +1 @@
+Ì
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/a73df4ce29f75cc638a7a2d823fee57d909ab681 b/fuzz/corpora/fuzz_packfile_raw/a73df4ce29f75cc638a7a2d823fee57d909ab681
new file mode 100644
index 0000000..1a443b9
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/a73df4ce29f75cc638a7a2d823fee57d909ab681 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/a7ee38bb7be4fc44198cb2685d9601dcf2b9f569 b/fuzz/corpora/fuzz_packfile_raw/a7ee38bb7be4fc44198cb2685d9601dcf2b9f569
new file mode 100644
index 0000000..449e49e
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/a7ee38bb7be4fc44198cb2685d9601dcf2b9f569
@@ -0,0 +1 @@
+K
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/a8b9b91157274e617bf4ac5045fc0c6ac97e76f7 b/fuzz/corpora/fuzz_packfile_raw/a8b9b91157274e617bf4ac5045fc0c6ac97e76f7
new file mode 100644
index 0000000..8e4277b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/a8b9b91157274e617bf4ac5045fc0c6ac97e76f7 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/a9c697f383f59a3b0642cd55b88190bce6201bae b/fuzz/corpora/fuzz_packfile_raw/a9c697f383f59a3b0642cd55b88190bce6201bae
new file mode 100644
index 0000000..990de0a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/a9c697f383f59a3b0642cd55b88190bce6201bae differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ab064cd6847c0fa546bbec4241eb9b095e0e73da b/fuzz/corpora/fuzz_packfile_raw/ab064cd6847c0fa546bbec4241eb9b095e0e73da
new file mode 100644
index 0000000..b95307b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ab064cd6847c0fa546bbec4241eb9b095e0e73da differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ab2c64588d3d9dc5c54c48d414e6d46d6a78cfa6 b/fuzz/corpora/fuzz_packfile_raw/ab2c64588d3d9dc5c54c48d414e6d46d6a78cfa6
new file mode 100644
index 0000000..02f5e79
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ab2c64588d3d9dc5c54c48d414e6d46d6a78cfa6 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/abe729b06750880778312618dcebb43257ec03e0 b/fuzz/corpora/fuzz_packfile_raw/abe729b06750880778312618dcebb43257ec03e0
new file mode 100644
index 0000000..fc1860b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/abe729b06750880778312618dcebb43257ec03e0 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ac1bf5a5fe61e5784f72b364ef1bcddfb0d13716 b/fuzz/corpora/fuzz_packfile_raw/ac1bf5a5fe61e5784f72b364ef1bcddfb0d13716
new file mode 100644
index 0000000..5b9fb92
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ac1bf5a5fe61e5784f72b364ef1bcddfb0d13716 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ac47b6d3f0e479df3292131535f8e0d99c288de9 b/fuzz/corpora/fuzz_packfile_raw/ac47b6d3f0e479df3292131535f8e0d99c288de9
new file mode 100644
index 0000000..def06ef
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ac47b6d3f0e479df3292131535f8e0d99c288de9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ac9231da4082430afe8f4d40127814c613648d8e b/fuzz/corpora/fuzz_packfile_raw/ac9231da4082430afe8f4d40127814c613648d8e
new file mode 100644
index 0000000..501a6bb
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/ac9231da4082430afe8f4d40127814c613648d8e
@@ -0,0 +1 @@
+	
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/ace9ffcaa273c01c0eb60381321e47edf4842332 b/fuzz/corpora/fuzz_packfile_raw/ace9ffcaa273c01c0eb60381321e47edf4842332
new file mode 100644
index 0000000..783b97f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ace9ffcaa273c01c0eb60381321e47edf4842332 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ad6ba9b0bc076987efbeb11ce3fc92bc1df69d0a b/fuzz/corpora/fuzz_packfile_raw/ad6ba9b0bc076987efbeb11ce3fc92bc1df69d0a
new file mode 100644
index 0000000..d6e99fc
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ad6ba9b0bc076987efbeb11ce3fc92bc1df69d0a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ae99dcb9b5e1b09aa5df6bb2fada3a3de61268fe b/fuzz/corpora/fuzz_packfile_raw/ae99dcb9b5e1b09aa5df6bb2fada3a3de61268fe
new file mode 100644
index 0000000..09e47fd
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ae99dcb9b5e1b09aa5df6bb2fada3a3de61268fe differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/aeeacf0499ace69549fe2c76757d4948ba65a10b b/fuzz/corpora/fuzz_packfile_raw/aeeacf0499ace69549fe2c76757d4948ba65a10b
new file mode 100644
index 0000000..4832b6e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/aeeacf0499ace69549fe2c76757d4948ba65a10b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/af6614c37604ee5d3f7b00cddca761a8776283b5 b/fuzz/corpora/fuzz_packfile_raw/af6614c37604ee5d3f7b00cddca761a8776283b5
new file mode 100644
index 0000000..f41a799
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/af6614c37604ee5d3f7b00cddca761a8776283b5 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/afd44f8c385a922c8caacc1ea5688d324bad5b39 b/fuzz/corpora/fuzz_packfile_raw/afd44f8c385a922c8caacc1ea5688d324bad5b39
new file mode 100644
index 0000000..eec2110
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/afd44f8c385a922c8caacc1ea5688d324bad5b39 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/aff024fe4ab0fece4091de044c58c9ae4233383a b/fuzz/corpora/fuzz_packfile_raw/aff024fe4ab0fece4091de044c58c9ae4233383a
new file mode 100644
index 0000000..6bf0c97
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/aff024fe4ab0fece4091de044c58c9ae4233383a
@@ -0,0 +1 @@
+w
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/b1f86f05d4928c8393fe0f138c0714df3978f0bb b/fuzz/corpora/fuzz_packfile_raw/b1f86f05d4928c8393fe0f138c0714df3978f0bb
new file mode 100644
index 0000000..a36092c
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/b1f86f05d4928c8393fe0f138c0714df3978f0bb differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/b452cd4b70f2827e3cbd6d5dd20f678b6e55f813 b/fuzz/corpora/fuzz_packfile_raw/b452cd4b70f2827e3cbd6d5dd20f678b6e55f813
new file mode 100644
index 0000000..f763b0d
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/b452cd4b70f2827e3cbd6d5dd20f678b6e55f813 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/b491dbad4c3edc87aa5a7f12b2c9a447a712c20d b/fuzz/corpora/fuzz_packfile_raw/b491dbad4c3edc87aa5a7f12b2c9a447a712c20d
new file mode 100644
index 0000000..9e7d3e0
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/b491dbad4c3edc87aa5a7f12b2c9a447a712c20d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/b54664965911c6fe91e18cd01b68a75c8183b530 b/fuzz/corpora/fuzz_packfile_raw/b54664965911c6fe91e18cd01b68a75c8183b530
new file mode 100644
index 0000000..39e8d66
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/b54664965911c6fe91e18cd01b68a75c8183b530
@@ -0,0 +1 @@
+ý
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/b68542373c05c0ed25231d09955b2c699d37c45b b/fuzz/corpora/fuzz_packfile_raw/b68542373c05c0ed25231d09955b2c699d37c45b
new file mode 100644
index 0000000..050ac90
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/b68542373c05c0ed25231d09955b2c699d37c45b
@@ -0,0 +1 @@
+þ
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/b706e78cf7110a78dfccce991cd4ce22c6fd898a b/fuzz/corpora/fuzz_packfile_raw/b706e78cf7110a78dfccce991cd4ce22c6fd898a
new file mode 100644
index 0000000..e905006
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/b706e78cf7110a78dfccce991cd4ce22c6fd898a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/b8d3910a75ad8a7058f9c3f202f8eb27419137d7 b/fuzz/corpora/fuzz_packfile_raw/b8d3910a75ad8a7058f9c3f202f8eb27419137d7
new file mode 100644
index 0000000..0a0adc4
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/b8d3910a75ad8a7058f9c3f202f8eb27419137d7 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/b93abe6094fb4ebbfa7414fbceb7199ce766075b b/fuzz/corpora/fuzz_packfile_raw/b93abe6094fb4ebbfa7414fbceb7199ce766075b
new file mode 100644
index 0000000..fb7b651
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/b93abe6094fb4ebbfa7414fbceb7199ce766075b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/b9a64cc0694f3ac4a3c530c721bbf69026192187 b/fuzz/corpora/fuzz_packfile_raw/b9a64cc0694f3ac4a3c530c721bbf69026192187
new file mode 100644
index 0000000..c775b6f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/b9a64cc0694f3ac4a3c530c721bbf69026192187 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/b9e5319eca8fbc26e5c322e0b151ed8ed60628d1 b/fuzz/corpora/fuzz_packfile_raw/b9e5319eca8fbc26e5c322e0b151ed8ed60628d1
new file mode 100644
index 0000000..54e0431
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/b9e5319eca8fbc26e5c322e0b151ed8ed60628d1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ba390745a04c5394601f7aa73fe795097b814d1a b/fuzz/corpora/fuzz_packfile_raw/ba390745a04c5394601f7aa73fe795097b814d1a
new file mode 100644
index 0000000..1738d2d
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ba390745a04c5394601f7aa73fe795097b814d1a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/bb7d065b776833337d3e1a3071de4d5d2759d78b b/fuzz/corpora/fuzz_packfile_raw/bb7d065b776833337d3e1a3071de4d5d2759d78b
new file mode 100644
index 0000000..2882b18
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/bb7d065b776833337d3e1a3071de4d5d2759d78b
@@ -0,0 +1 @@
+“
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/bb99cf0bb3e5d75d59300e6ca9cb1f67ce315e3a b/fuzz/corpora/fuzz_packfile_raw/bb99cf0bb3e5d75d59300e6ca9cb1f67ce315e3a
new file mode 100644
index 0000000..7450e26
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/bb99cf0bb3e5d75d59300e6ca9cb1f67ce315e3a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/bd9722d91e0615cbdae3cee3476ec6181fbad98d b/fuzz/corpora/fuzz_packfile_raw/bd9722d91e0615cbdae3cee3476ec6181fbad98d
new file mode 100644
index 0000000..a8f95b6
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/bd9722d91e0615cbdae3cee3476ec6181fbad98d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/bf8b4530d8d246dd74ac53a13471bba17941dff7 b/fuzz/corpora/fuzz_packfile_raw/bf8b4530d8d246dd74ac53a13471bba17941dff7
new file mode 100644
index 0000000..6b2aaa7
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/bf8b4530d8d246dd74ac53a13471bba17941dff7
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/bffc4698ad4aaddd977fe857da20858aa6654263 b/fuzz/corpora/fuzz_packfile_raw/bffc4698ad4aaddd977fe857da20858aa6654263
new file mode 100644
index 0000000..b7cde14
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/bffc4698ad4aaddd977fe857da20858aa6654263 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c0ea828d8f9c4a2c0fc6253908cd283f6c7994a1 b/fuzz/corpora/fuzz_packfile_raw/c0ea828d8f9c4a2c0fc6253908cd283f6c7994a1
new file mode 100644
index 0000000..ab56763
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c0ea828d8f9c4a2c0fc6253908cd283f6c7994a1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c151b760696d665265187501c51f38cd84503634 b/fuzz/corpora/fuzz_packfile_raw/c151b760696d665265187501c51f38cd84503634
new file mode 100644
index 0000000..4be2460
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/c151b760696d665265187501c51f38cd84503634
@@ -0,0 +1 @@
+Ô
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/c16f90096603258174790bc85f076413dad0e228 b/fuzz/corpora/fuzz_packfile_raw/c16f90096603258174790bc85f076413dad0e228
new file mode 100644
index 0000000..d736f27
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c16f90096603258174790bc85f076413dad0e228 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c20fc8fb8f1d44050c281089191b8eac2dc9444c b/fuzz/corpora/fuzz_packfile_raw/c20fc8fb8f1d44050c281089191b8eac2dc9444c
new file mode 100644
index 0000000..221c482
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c20fc8fb8f1d44050c281089191b8eac2dc9444c differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c2143b1a0db17957bec1b41bb2e5f75aa135981e b/fuzz/corpora/fuzz_packfile_raw/c2143b1a0db17957bec1b41bb2e5f75aa135981e
new file mode 100644
index 0000000..52e60b4
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/c2143b1a0db17957bec1b41bb2e5f75aa135981e
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/c22c3fba53bb2c5579b47852fa9ec54a88c03472 b/fuzz/corpora/fuzz_packfile_raw/c22c3fba53bb2c5579b47852fa9ec54a88c03472
new file mode 100644
index 0000000..45df778
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c22c3fba53bb2c5579b47852fa9ec54a88c03472 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c297564cff1bb4f7933221050cfcffa36c59f691 b/fuzz/corpora/fuzz_packfile_raw/c297564cff1bb4f7933221050cfcffa36c59f691
new file mode 100644
index 0000000..751e6bb
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c297564cff1bb4f7933221050cfcffa36c59f691 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c2c4da76233acd3efe08eaebb7ae8dc9b3036527 b/fuzz/corpora/fuzz_packfile_raw/c2c4da76233acd3efe08eaebb7ae8dc9b3036527
new file mode 100644
index 0000000..5533ee3
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c2c4da76233acd3efe08eaebb7ae8dc9b3036527 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c3d47118536d19a8d1a601978510cc24344aa8df b/fuzz/corpora/fuzz_packfile_raw/c3d47118536d19a8d1a601978510cc24344aa8df
new file mode 100644
index 0000000..dac4251
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c3d47118536d19a8d1a601978510cc24344aa8df differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c4cbb032db94c57061003a85d30bdf4117979b1e b/fuzz/corpora/fuzz_packfile_raw/c4cbb032db94c57061003a85d30bdf4117979b1e
new file mode 100644
index 0000000..e46252e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c4cbb032db94c57061003a85d30bdf4117979b1e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c7090127a03c0e7230c11a649e4f98fcb4ca2b75 b/fuzz/corpora/fuzz_packfile_raw/c7090127a03c0e7230c11a649e4f98fcb4ca2b75
new file mode 100644
index 0000000..7009494
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c7090127a03c0e7230c11a649e4f98fcb4ca2b75 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/c8b839665bd381ff7d006b1b08c35f94f1818556 b/fuzz/corpora/fuzz_packfile_raw/c8b839665bd381ff7d006b1b08c35f94f1818556
new file mode 100644
index 0000000..234b26a
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/c8b839665bd381ff7d006b1b08c35f94f1818556 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ca8c7c16d1d6b60e951dcfb558cc97e14231c750 b/fuzz/corpora/fuzz_packfile_raw/ca8c7c16d1d6b60e951dcfb558cc97e14231c750
new file mode 100644
index 0000000..e0b7aec
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ca8c7c16d1d6b60e951dcfb558cc97e14231c750 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/cb46c744c83541a0900e1e61780c18d43031a08b b/fuzz/corpora/fuzz_packfile_raw/cb46c744c83541a0900e1e61780c18d43031a08b
new file mode 100644
index 0000000..825026b
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/cb46c744c83541a0900e1e61780c18d43031a08b
@@ -0,0 +1 @@
+Á
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/cbf1e454dc7ac878bd23e3dfd0b6a28a50b2155d b/fuzz/corpora/fuzz_packfile_raw/cbf1e454dc7ac878bd23e3dfd0b6a28a50b2155d
new file mode 100644
index 0000000..7e60ba4
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/cbf1e454dc7ac878bd23e3dfd0b6a28a50b2155d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/cbfb8cae82ddd82c04996f474fdb4f1b80dcb6db b/fuzz/corpora/fuzz_packfile_raw/cbfb8cae82ddd82c04996f474fdb4f1b80dcb6db
new file mode 100644
index 0000000..7bd0640
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/cbfb8cae82ddd82c04996f474fdb4f1b80dcb6db differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/cf74f755c004ca634818f8ba44c99fffbaa950a1 b/fuzz/corpora/fuzz_packfile_raw/cf74f755c004ca634818f8ba44c99fffbaa950a1
new file mode 100644
index 0000000..6c8a3e2
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/cf74f755c004ca634818f8ba44c99fffbaa950a1 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d07e4bc786c88b8d2304f84c7db2098666f822c0 b/fuzz/corpora/fuzz_packfile_raw/d07e4bc786c88b8d2304f84c7db2098666f822c0
new file mode 100644
index 0000000..5639b6d
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/d07e4bc786c88b8d2304f84c7db2098666f822c0
@@ -0,0 +1 @@
+û
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/d17ab0db9edea68e8f9f51f471decae84b192a1a b/fuzz/corpora/fuzz_packfile_raw/d17ab0db9edea68e8f9f51f471decae84b192a1a
new file mode 100644
index 0000000..e3ec67e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d17ab0db9edea68e8f9f51f471decae84b192a1a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d1854cae891ec7b29161ccaf79a24b00c274bdaa b/fuzz/corpora/fuzz_packfile_raw/d1854cae891ec7b29161ccaf79a24b00c274bdaa
new file mode 100644
index 0000000..ef073cc
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/d1854cae891ec7b29161ccaf79a24b00c274bdaa
@@ -0,0 +1 @@
+n
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/d22aac18f8b435fc34566fe0d3f42464aec9458c b/fuzz/corpora/fuzz_packfile_raw/d22aac18f8b435fc34566fe0d3f42464aec9458c
new file mode 100644
index 0000000..766a326
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d22aac18f8b435fc34566fe0d3f42464aec9458c differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d446a50788c32053358495358696f9d595358bcf b/fuzz/corpora/fuzz_packfile_raw/d446a50788c32053358495358696f9d595358bcf
new file mode 100644
index 0000000..1015f8e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d446a50788c32053358495358696f9d595358bcf differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d461cbcff85c87b0068f0e9c15d2056197cdfa52 b/fuzz/corpora/fuzz_packfile_raw/d461cbcff85c87b0068f0e9c15d2056197cdfa52
new file mode 100644
index 0000000..e475e61
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d461cbcff85c87b0068f0e9c15d2056197cdfa52 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d54709a1b46002c81f57da533379e57f00afe942 b/fuzz/corpora/fuzz_packfile_raw/d54709a1b46002c81f57da533379e57f00afe942
new file mode 100644
index 0000000..010a294
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d54709a1b46002c81f57da533379e57f00afe942 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d567007f84b83e82df7069838bf8b6c5826b18a8 b/fuzz/corpora/fuzz_packfile_raw/d567007f84b83e82df7069838bf8b6c5826b18a8
new file mode 100644
index 0000000..feb21a2
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d567007f84b83e82df7069838bf8b6c5826b18a8 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d5e60b9f94126a9ec865fda83feb6835d294b76b b/fuzz/corpora/fuzz_packfile_raw/d5e60b9f94126a9ec865fda83feb6835d294b76b
new file mode 100644
index 0000000..63dd395
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d5e60b9f94126a9ec865fda83feb6835d294b76b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d81092a4f3607ddbba85862facf2285459696078 b/fuzz/corpora/fuzz_packfile_raw/d81092a4f3607ddbba85862facf2285459696078
new file mode 100644
index 0000000..0074e17
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d81092a4f3607ddbba85862facf2285459696078 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d898eb860ceac044950605db88429e029ea278ef b/fuzz/corpora/fuzz_packfile_raw/d898eb860ceac044950605db88429e029ea278ef
new file mode 100644
index 0000000..a74a67e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d898eb860ceac044950605db88429e029ea278ef differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/d8fc60ccdd8f555c1858b9f0820f263e3d2b58ec b/fuzz/corpora/fuzz_packfile_raw/d8fc60ccdd8f555c1858b9f0820f263e3d2b58ec
new file mode 100644
index 0000000..9d3cd68
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/d8fc60ccdd8f555c1858b9f0820f263e3d2b58ec
@@ -0,0 +1 @@
+®
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/d9b69c63cdc0c1622f2fab84d1307f9e0c0fa3b9 b/fuzz/corpora/fuzz_packfile_raw/d9b69c63cdc0c1622f2fab84d1307f9e0c0fa3b9
new file mode 100644
index 0000000..1f4966d
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/d9b69c63cdc0c1622f2fab84d1307f9e0c0fa3b9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/db1bb4b7348d387623dcaf0a743d0b11fa18409f b/fuzz/corpora/fuzz_packfile_raw/db1bb4b7348d387623dcaf0a743d0b11fa18409f
new file mode 100644
index 0000000..bed137b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/db1bb4b7348d387623dcaf0a743d0b11fa18409f differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/db291360a195c79ae504a3dfb2cd0f71cbc11902 b/fuzz/corpora/fuzz_packfile_raw/db291360a195c79ae504a3dfb2cd0f71cbc11902
new file mode 100644
index 0000000..aaebf73
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/db291360a195c79ae504a3dfb2cd0f71cbc11902 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/dc98359b3ef2ced9c3d07636c89d475a564c39d9 b/fuzz/corpora/fuzz_packfile_raw/dc98359b3ef2ced9c3d07636c89d475a564c39d9
new file mode 100644
index 0000000..44b5bbe
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/dc98359b3ef2ced9c3d07636c89d475a564c39d9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/dccc5642917b20b4dd64d3e44b71d08da30445e9 b/fuzz/corpora/fuzz_packfile_raw/dccc5642917b20b4dd64d3e44b71d08da30445e9
new file mode 100644
index 0000000..d6430c2
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/dccc5642917b20b4dd64d3e44b71d08da30445e9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/dd79c8cfb8beeacd0460429944b4ecbe95a31561 b/fuzz/corpora/fuzz_packfile_raw/dd79c8cfb8beeacd0460429944b4ecbe95a31561
new file mode 100644
index 0000000..8a908ec
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/dd79c8cfb8beeacd0460429944b4ecbe95a31561
@@ -0,0 +1 @@
+â
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/de9550264c4e2dbef14e1281ff3693f2d19dc1c9 b/fuzz/corpora/fuzz_packfile_raw/de9550264c4e2dbef14e1281ff3693f2d19dc1c9
new file mode 100644
index 0000000..2c096ff
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/de9550264c4e2dbef14e1281ff3693f2d19dc1c9 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/df8b4d163e9ed75634eb56467343bde73b13263e b/fuzz/corpora/fuzz_packfile_raw/df8b4d163e9ed75634eb56467343bde73b13263e
new file mode 100644
index 0000000..5c3529e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/df8b4d163e9ed75634eb56467343bde73b13263e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e0184adedf913b076626646d3f52c3b49c39ad6d b/fuzz/corpora/fuzz_packfile_raw/e0184adedf913b076626646d3f52c3b49c39ad6d
new file mode 100644
index 0000000..9fb75b8
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/e0184adedf913b076626646d3f52c3b49c39ad6d
@@ -0,0 +1 @@
+E
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/e0905bac594c818b9cfa909269114977c4d6d1b2 b/fuzz/corpora/fuzz_packfile_raw/e0905bac594c818b9cfa909269114977c4d6d1b2
new file mode 100644
index 0000000..40f2025
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e0905bac594c818b9cfa909269114977c4d6d1b2 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e0bcb16cd6b42128201e1b6454323175a7e412f0 b/fuzz/corpora/fuzz_packfile_raw/e0bcb16cd6b42128201e1b6454323175a7e412f0
new file mode 100644
index 0000000..7386ac1
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e0bcb16cd6b42128201e1b6454323175a7e412f0 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e1ac9563c33f4f31b3e147b9d2fef80fca550948 b/fuzz/corpora/fuzz_packfile_raw/e1ac9563c33f4f31b3e147b9d2fef80fca550948
new file mode 100644
index 0000000..c87f08b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e1ac9563c33f4f31b3e147b9d2fef80fca550948 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e230c91352f1b07f6f34da803d07e75c06897b30 b/fuzz/corpora/fuzz_packfile_raw/e230c91352f1b07f6f34da803d07e75c06897b30
new file mode 100644
index 0000000..ff1376f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e230c91352f1b07f6f34da803d07e75c06897b30 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e26b3bacbfd6603d021d4ddadbac94b7b7aa0034 b/fuzz/corpora/fuzz_packfile_raw/e26b3bacbfd6603d021d4ddadbac94b7b7aa0034
new file mode 100644
index 0000000..e6bdb3a
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/e26b3bacbfd6603d021d4ddadbac94b7b7aa0034
@@ -0,0 +1 @@
+!
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/e2a6f8dc3dc5d6c859f19d6e0fa64745201df0a6 b/fuzz/corpora/fuzz_packfile_raw/e2a6f8dc3dc5d6c859f19d6e0fa64745201df0a6
new file mode 100644
index 0000000..3afd5ca
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e2a6f8dc3dc5d6c859f19d6e0fa64745201df0a6 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e2ba004118345660b379df5147bfa7a39d884dbc b/fuzz/corpora/fuzz_packfile_raw/e2ba004118345660b379df5147bfa7a39d884dbc
new file mode 100644
index 0000000..cb1ff94
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e2ba004118345660b379df5147bfa7a39d884dbc differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e45aaf139d726366a18dce9e4854ee6c82901677 b/fuzz/corpora/fuzz_packfile_raw/e45aaf139d726366a18dce9e4854ee6c82901677
new file mode 100644
index 0000000..0ba1db8
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e45aaf139d726366a18dce9e4854ee6c82901677 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e4b3ab7e8c18de815fc8bd6ebfd5d52cf1924a8e b/fuzz/corpora/fuzz_packfile_raw/e4b3ab7e8c18de815fc8bd6ebfd5d52cf1924a8e
new file mode 100644
index 0000000..786d94b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e4b3ab7e8c18de815fc8bd6ebfd5d52cf1924a8e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e6818b96c50bb749911248959af81a9c412a0223 b/fuzz/corpora/fuzz_packfile_raw/e6818b96c50bb749911248959af81a9c412a0223
new file mode 100644
index 0000000..b8ac98e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e6818b96c50bb749911248959af81a9c412a0223 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e69f20e9f683920d3fb4329abd951e878b1f9372 b/fuzz/corpora/fuzz_packfile_raw/e69f20e9f683920d3fb4329abd951e878b1f9372
new file mode 100644
index 0000000..c137216
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/e69f20e9f683920d3fb4329abd951e878b1f9372
@@ -0,0 +1 @@
+F
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/e6eb439fef7d5461bc3552aa7c064d24e44c5f32 b/fuzz/corpora/fuzz_packfile_raw/e6eb439fef7d5461bc3552aa7c064d24e44c5f32
new file mode 100644
index 0000000..9ab1a4d
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e6eb439fef7d5461bc3552aa7c064d24e44c5f32 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/e9d9930dc3fea44fbc7acb0d1ef4bd867f1c902b b/fuzz/corpora/fuzz_packfile_raw/e9d9930dc3fea44fbc7acb0d1ef4bd867f1c902b
new file mode 100644
index 0000000..bd8ffbe
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/e9d9930dc3fea44fbc7acb0d1ef4bd867f1c902b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/eb05b6ad73fb1f69ef750d0b9cb6c606ab9d949f b/fuzz/corpora/fuzz_packfile_raw/eb05b6ad73fb1f69ef750d0b9cb6c606ab9d949f
new file mode 100644
index 0000000..aaba356
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/eb05b6ad73fb1f69ef750d0b9cb6c606ab9d949f differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/eb0814ae767e5f28b87c998b0f44dcf80814db1b b/fuzz/corpora/fuzz_packfile_raw/eb0814ae767e5f28b87c998b0f44dcf80814db1b
new file mode 100644
index 0000000..f834b0b
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/eb0814ae767e5f28b87c998b0f44dcf80814db1b differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ebbd9763912dd557d08abd1373c867a4b56e6a41 b/fuzz/corpora/fuzz_packfile_raw/ebbd9763912dd557d08abd1373c867a4b56e6a41
new file mode 100644
index 0000000..9a5a0ed
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ebbd9763912dd557d08abd1373c867a4b56e6a41 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ebcdcb7effcc3f06e0d503638ac621de877fc554 b/fuzz/corpora/fuzz_packfile_raw/ebcdcb7effcc3f06e0d503638ac621de877fc554
new file mode 100644
index 0000000..ef60809
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/ebcdcb7effcc3f06e0d503638ac621de877fc554
@@ -0,0 +1 @@
+Ä
\ No newline at end of file
diff --git a/fuzz/corpora/fuzz_packfile_raw/eddccafb2716adafb9ad48203f0621bb00ebc73f b/fuzz/corpora/fuzz_packfile_raw/eddccafb2716adafb9ad48203f0621bb00ebc73f
new file mode 100644
index 0000000..9b1c9fb
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/eddccafb2716adafb9ad48203f0621bb00ebc73f differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/edfbf20c83d3cec45470105581f7dc8b7e0889da b/fuzz/corpora/fuzz_packfile_raw/edfbf20c83d3cec45470105581f7dc8b7e0889da
new file mode 100644
index 0000000..bf9c390
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/edfbf20c83d3cec45470105581f7dc8b7e0889da differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f03218467b1c74e465cebb3b8092e21a5122f31d b/fuzz/corpora/fuzz_packfile_raw/f03218467b1c74e465cebb3b8092e21a5122f31d
new file mode 100644
index 0000000..d7539e4
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f03218467b1c74e465cebb3b8092e21a5122f31d differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f28600befd899a94bed8e62853e90655d614f439 b/fuzz/corpora/fuzz_packfile_raw/f28600befd899a94bed8e62853e90655d614f439
new file mode 100644
index 0000000..5087f32
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f28600befd899a94bed8e62853e90655d614f439 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f3b15185b7a9a10716752d58434fe656d839092e b/fuzz/corpora/fuzz_packfile_raw/f3b15185b7a9a10716752d58434fe656d839092e
new file mode 100644
index 0000000..8575244
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f3b15185b7a9a10716752d58434fe656d839092e differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f436ed7933482610e08e18b40e9eec102b63b7d4 b/fuzz/corpora/fuzz_packfile_raw/f436ed7933482610e08e18b40e9eec102b63b7d4
new file mode 100644
index 0000000..4a7dcff
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f436ed7933482610e08e18b40e9eec102b63b7d4 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f55ea5b7c1cf5400aae56d7faf65a42320d0323a b/fuzz/corpora/fuzz_packfile_raw/f55ea5b7c1cf5400aae56d7faf65a42320d0323a
new file mode 100644
index 0000000..c5e3137
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f55ea5b7c1cf5400aae56d7faf65a42320d0323a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f5eeab2d009aa4984378df6bfdd89366b7ecbb32 b/fuzz/corpora/fuzz_packfile_raw/f5eeab2d009aa4984378df6bfdd89366b7ecbb32
new file mode 100644
index 0000000..15828cf
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f5eeab2d009aa4984378df6bfdd89366b7ecbb32 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f6250c8b3cc0510e0f8f621100be83f018e2d234 b/fuzz/corpora/fuzz_packfile_raw/f6250c8b3cc0510e0f8f621100be83f018e2d234
new file mode 100644
index 0000000..ab03a5e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f6250c8b3cc0510e0f8f621100be83f018e2d234 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f7168410c7158ff7331698930937f9cdc54f4d8a b/fuzz/corpora/fuzz_packfile_raw/f7168410c7158ff7331698930937f9cdc54f4d8a
new file mode 100644
index 0000000..e42053d
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f7168410c7158ff7331698930937f9cdc54f4d8a differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/f91847640af285c1b8a6df27f5c50686ed0deb70 b/fuzz/corpora/fuzz_packfile_raw/f91847640af285c1b8a6df27f5c50686ed0deb70
new file mode 100644
index 0000000..615255f
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/f91847640af285c1b8a6df27f5c50686ed0deb70 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/fa58a6b2d3286a136a43afeeaac589d2dde0a2a6 b/fuzz/corpora/fuzz_packfile_raw/fa58a6b2d3286a136a43afeeaac589d2dde0a2a6
new file mode 100644
index 0000000..860053e
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/fa58a6b2d3286a136a43afeeaac589d2dde0a2a6 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/fe3667be5fd2ffdd553ae04a534a2e9ce5445188 b/fuzz/corpora/fuzz_packfile_raw/fe3667be5fd2ffdd553ae04a534a2e9ce5445188
new file mode 100644
index 0000000..d92e574
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/fe3667be5fd2ffdd553ae04a534a2e9ce5445188 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ff21cad92ddd105224408fa696e91080a8cf98fb b/fuzz/corpora/fuzz_packfile_raw/ff21cad92ddd105224408fa696e91080a8cf98fb
new file mode 100644
index 0000000..c1cfc00
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ff21cad92ddd105224408fa696e91080a8cf98fb differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ff9804ac04790bd58cdd124526c00b920469b812 b/fuzz/corpora/fuzz_packfile_raw/ff9804ac04790bd58cdd124526c00b920469b812
new file mode 100644
index 0000000..4280c82
Binary files /dev/null and b/fuzz/corpora/fuzz_packfile_raw/ff9804ac04790bd58cdd124526c00b920469b812 differ
diff --git a/fuzz/corpora/fuzz_packfile_raw/ffc54ca808e7666f250133ad0ae2185ad688a826 b/fuzz/corpora/fuzz_packfile_raw/ffc54ca808e7666f250133ad0ae2185ad688a826
new file mode 100644
index 0000000..4489a65
--- /dev/null
+++ b/fuzz/corpora/fuzz_packfile_raw/ffc54ca808e7666f250133ad0ae2185ad688a826
@@ -0,0 +1 @@
+²
\ No newline at end of file
diff --git a/fuzz/fuzz_packfile_raw.c b/fuzz/fuzz_packfile_raw.c
new file mode 100644
index 0000000..8258010
--- /dev/null
+++ b/fuzz/fuzz_packfile_raw.c
@@ -0,0 +1,116 @@
+/*
+ * libgit2 raw packfile fuzz target.
+ *
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include "fileops.h"
+#include "hash.h"
+#include "git2.h"
+#include "git2/sys/mempack.h"
+
+static git_odb *odb = NULL;
+static git_odb_backend *mempack = NULL;
+
+/* Arbitrary object to seed the ODB. */
+static const unsigned char base_obj[] = { 07, 076 };
+static const unsigned int base_obj_len = 2;
+
+int LLVMFuzzerInitialize(int *argc, char ***argv)
+{
+	GIT_UNUSED(argc);
+	GIT_UNUSED(argv);
+	if (git_libgit2_init() < 0) {
+		fprintf(stderr, "Failed to initialize libgit2\n");
+		abort();
+	}
+	if (git_odb_new(&odb) < 0) {
+		fprintf(stderr, "Failed to create the odb\n");
+		abort();
+	}
+	if (git_mempack_new(&mempack) < 0) {
+		fprintf(stderr, "Failed to create the mempack\n");
+		abort();
+	}
+	if (git_odb_add_backend(odb, mempack, 999) < 0) {
+		fprintf(stderr, "Failed to add the mempack\n");
+		abort();
+	}
+	return 0;
+}
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+	git_indexer *indexer = NULL;
+	git_transfer_progress stats = {0, 0};
+	bool append_hash = false;
+	git_oid id;
+	char hash[GIT_OID_HEXSZ + 1] = {0};
+	char path[PATH_MAX];
+
+	if (size == 0)
+		return 0;
+
+	if (!odb || !mempack) {
+		fprintf(stderr, "Global state not initialized\n");
+		abort();
+	}
+	git_mempack_reset(mempack);
+
+	if (git_odb_write(&id, odb, base_obj, base_obj_len, GIT_OBJ_BLOB) < 0) {
+		fprintf(stderr, "Failed to add an object to the odb\n");
+		abort();
+	}
+
+	if (git_indexer_new(&indexer, ".", 0, odb, NULL, NULL) < 0) {
+		fprintf(stderr, "Failed to create the indexer: %s\n",
+			giterr_last()->message);
+		abort();
+	}
+
+	/*
+	 * If the first byte in the stream has the high bit set, append the
+	 * SHA1 hash so that the packfile is somewhat valid.
+	 */
+	append_hash = *data & 0x80;
+	++data;
+	--size;
+
+	if (git_indexer_append(indexer, data, size, &stats) < 0)
+		goto cleanup;
+	if (append_hash) {
+		git_oid oid;
+		if (git_hash_buf(&oid, data, size) < 0) {
+			fprintf(stderr, "Failed to compute the SHA1 hash\n");
+			abort();
+		}
+		if (git_indexer_append(indexer, &oid, sizeof(oid), &stats) < 0) {
+			goto cleanup;
+		}
+	}
+	if (git_indexer_commit(indexer, &stats) < 0)
+		goto cleanup;
+
+	/*
+	 * We made it! We managed to produce a valid packfile.
+	 * Let's clean it up.
+	 */
+	git_oid_fmt(hash, git_indexer_hash(indexer));
+	printf("Generated packfile %s\n", hash);
+	snprintf(path, sizeof(path), "pack-%s.idx", hash);
+	unlink(path);
+	snprintf(path, sizeof(path), "pack-%s.pack", hash);
+	unlink(path);
+
+cleanup:
+	git_mempack_reset(mempack);
+	git_indexer_free(indexer);
+	return 0;
+}
diff --git a/fuzz/standalone_driver.c b/fuzz/standalone_driver.c
new file mode 100644
index 0000000..fd8453d
--- /dev/null
+++ b/fuzz/standalone_driver.c
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+
+#include <assert.h>
+#include <dirent.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+
+#include "fileops.h"
+#include "path.h"
+
+extern int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size);
+extern int LLVMFuzzerInitialize(int *argc, char ***argv);
+
+static int run_one_file(const char *filename)
+{
+	git_buf buf = GIT_BUF_INIT;
+	int error = 0;
+
+	if (git_futils_readbuffer(&buf, filename) < 0) {
+		fprintf(stderr, "Failed to read %s: %m\n", filename);
+		error = -1;
+		goto exit;
+	}
+
+	LLVMFuzzerTestOneInput((const unsigned char *)buf.ptr, buf.size);
+exit:
+	git_buf_dispose(&buf);
+	return error;
+}
+
+int main(int argc, char **argv)
+{
+	git_vector corpus_files = GIT_VECTOR_INIT;
+	char *filename = NULL;
+	unsigned i = 0;
+	int error = 0;
+
+	if (argc != 2) {
+		fprintf(stderr, "Usage: %s <corpus directory>\n", argv[0]);
+		error = -1;
+		goto exit;
+	}
+
+	fprintf(stderr, "Running %s against %s\n", argv[0], argv[1]);
+	LLVMFuzzerInitialize(&argc, &argv);
+
+	if (git_path_dirload(&corpus_files, argv[1], 0, 0x0) < 0) {
+		fprintf(stderr, "Failed to scan corpus directory: %m\n");
+		error = -1;
+		goto exit;
+	}
+	git_vector_foreach(&corpus_files, i, filename) {
+		fprintf(stderr, "\tRunning %s...\n", filename);
+		if (run_one_file(filename) < 0) {
+			error = -1;
+			goto exit;
+		}
+	}
+	fprintf(stderr, "Done %d runs\n", i);
+
+exit:
+	git_vector_free_deep(&corpus_files);
+	return error;
+}