From 5abbfa071a2df3c5f3a2252348208d9fac51541e Mon Sep 17 00:00:00 2001 From: Lindlar Date: Fri, 31 Mar 2023 17:51:13 +0200 Subject: [PATCH] added PDF-handbuilt-test-corpus to testset Please enter the commit message for your changes. Lines starting --- pdf-handbuilt-test-corpus/README.md | 10 ++++++++++ .../T01_001_header-invalid-major-version.pdf | Bin 0 -> 631 bytes .../T01_002_header-invalid-minor-version.pdf | Bin 0 -> 631 bytes .../T01_003_header-no-minor-version.pdf | Bin 0 -> 630 bytes .../T01_004_header_invalid-syntax-no-dash.pdf | Bin 0 -> 630 bytes ...T01_005_header-invalid-syntax-replace-char.pdf | Bin 0 -> 631 bytes .../T01_006_header-invalid-syntax-no-pdf.pdf | Bin 0 -> 626 bytes .../T01_007_header-no-version-info.pdf | Bin 0 -> 622 bytes ...1_001_document-catalog-No-document-catalog.pdf | Bin 0 -> 584 bytes ...1_002_document-catalog-wrong-object-number.pdf | Bin 0 -> 629 bytes ...-catalog-indirecte-pages-reference-missing.pdf | Bin 0 -> 617 bytes ...document-catalog-incorrect-pages-reference.pdf | Bin 0 -> 629 bytes ...2-01_005_document-catalog-type-key-missing.pdf | Bin 0 -> 623 bytes ...T02-01_006_document-catalog-wrong-type-key.pdf | Bin 0 -> 626 bytes ...cument-catalog-type-key-value-pair-missing.pdf | Bin 0 -> 614 bytes .../T02-02_001_no-page-tree-node.pdf | Bin 0 -> 577 bytes .../T02-02_002_page-tree-kids-links-recursive.pdf | Bin 0 -> 629 bytes .../T02-02_003_page-tree-different-kids.pdf | Bin 0 -> 641 bytes ...2_004_page-tree-non-existing-object-as-kid.pdf | Bin 0 -> 629 bytes .../T02-02_005_page-tree-no-kids.pdf | Bin 0 -> 616 bytes .../T02-02_006_page-tree-no-type.pdf | Bin 0 -> 617 bytes .../T02-02_007_page-tree-wrong-count.pdf | Bin 0 -> 629 bytes .../T02-02_008_page-tree-node-no-count.pdf | Bin 0 -> 621 bytes .../T02-02_009_page-tree-wrong-type.pdf | Bin 0 -> 629 bytes .../T02-03_001_page-object-no-type.pdf | Bin 0 -> 618 bytes .../T02-03_002_page-object-wrong-type.pdf | Bin 0 -> 629 bytes .../T02-03_003_page-object-no-parent.pdf | Bin 0 -> 616 bytes .../T02-03_004_page-object-wrong-parent.pdf | Bin 0 -> 629 bytes ...2-03_005_page-object-parent-contains-array.pdf | Bin 0 -> 637 bytes .../T02-03_006_page-object-missing.pdf | Bin 0 -> 522 bytes ...-03_007_page-object-resources-wrong-object.pdf | Bin 0 -> 629 bytes .../T02-03_008_page-object-mediabox-missing.pdf | Bin 0 -> 606 bytes ...-03_009_page-object-mediabox-not-rectangle.pdf | Bin 0 -> 627 bytes .../T02-03_010_page-object-missing-contents.pdf | Bin 0 -> 612 bytes ...3_011_page-object-wrong-contents-reference.pdf | Bin 0 -> 629 bytes .../T02-03_012_page-object-resources-missing.pdf | Bin 0 -> 613 bytes .../T02-04-01_001_resources-basefont-missing.pdf | Bin 0 -> 606 bytes ...02-04-01_002_resources-basefont-wrong-font.pdf | Bin 0 -> 626 bytes .../T02-04-01_003_resources-type-missing.pdf | Bin 0 -> 618 bytes ...04-01_004_resources-wrong-declaration-type.pdf | Bin 0 -> 629 bytes .../T02-04-01_005_resources-subtype-missing.pdf | Bin 0 -> 614 bytes .../T02-04-01_006_resources_subtype_wrong.pdf | Bin 0 -> 629 bytes .../T02-05-01_001_Stream-BT-missing.pdf | Bin 0 -> 628 bytes .../T02-05-01_002_Stream-ET-missing.pdf | Bin 0 -> 628 bytes .../T02-05-01_003_Stream-BT-and-ET-missing.pdf | Bin 0 -> 626 bytes .../T02-05-01_004_Font-name-operator--missing.pdf | Bin 0 -> 626 bytes .../T02-05-01_005_invalid-Font-name-operator.pdf | Bin 0 -> 630 bytes .../T02-05-01_006_font-size-operator-missing.pdf | Bin 0 -> 628 bytes .../T02-05-01_007_invalid-font-size-operator.pdf | Bin 0 -> 636 bytes .../T02-05-01_008_Font-set-operator-missing.pdf | Bin 0 -> 628 bytes .../T02-05-01_009_Missing_open_paranthesis.pdf | Bin 0 -> 629 bytes .../T02-05-01_010_Missing_closing_paranthesis.pdf | Bin 0 -> 629 bytes ..._011_paranthesis-substituted-with-brackets.pdf | Bin 0 -> 630 bytes .../T02-05-01_012_text-show-operator-missing.pdf | Bin 0 -> 628 bytes .../T02-05-01_013_stream-keyword-missing.pdf | Bin 0 -> 624 bytes .../T02-05-01_014_endstream-keyword-missing.pdf | Bin 0 -> 620 bytes ...01_015_invalid-stream-length-in-dictionary.pdf | Bin 0 -> 631 bytes ...01_016_stream-length-missing-in-dictionary.pdf | Bin 0 -> 619 bytes ...2-05-01_017_bytes-between-endstream-endobj.pdf | Bin 0 -> 635 bytes ...T02-05-01_018_position-information-missing.pdf | Bin 0 -> 608 bytes .../T03_001_no-cross-reference-table.pdf | Bin 0 -> 503 bytes .../T03_002_xref-keyword-missing.pdf | Bin 0 -> 627 bytes .../T03_003_number-of-entries-missing.pdf | Bin 0 -> 630 bytes .../T03_004_number-of-entries-too-many.pdf | Bin 0 -> 631 bytes .../T03_005_number-of-entries-too-few.pdf | Bin 0 -> 631 bytes .../T03_006_offset_missing.pdf | Bin 0 -> 611 bytes .../T03_007_offset_wrong.pdf | Bin 0 -> 631 bytes .../T03_008_entry-offset-too-short.pdf | Bin 0 -> 629 bytes .../T03_009_invalid-keyword-entry.pdf | Bin 0 -> 630 bytes .../T03_010_wrong-generation-number.pdf | Bin 0 -> 631 bytes .../T04_001_EOF-not-standalone.pdf | Bin 0 -> 630 bytes pdf-handbuilt-test-corpus/T04_002_EOF-missing.pdf | Bin 0 -> 626 bytes .../T04_003_EOF-incomplete-EO.pdf | Bin 0 -> 628 bytes .../T04_004_EOF-incomplete_EOF.pdf | Bin 0 -> 629 bytes .../T04_005_EOF-followed-by-junk-data.pdf | Bin 0 -> 640 bytes .../T04_006_premature-EOF.pdf | Bin 0 -> 637 bytes .../T04_007_premature-EOF-only.pdf | Bin 0 -> 632 bytes .../T04_008_trailer-no-trailer-keyword.pdf | Bin 0 -> 624 bytes .../T04_009_trailer-no-opening-brackets.pdf | Bin 0 -> 628 bytes .../T04_010_trailer-no-closing-brackets.pdf | Bin 0 -> 628 bytes .../T04_011_trailer-no-root-key-value-pair.pdf | Bin 0 -> 619 bytes ...T04_012_trailer-root-no-indirect-reference.pdf | Bin 0 -> 629 bytes ...13_trailer-root-invalid-indirect-reference.pdf | Bin 0 -> 628 bytes ...er-root-indirect-reference-to-wrong-object.pdf | Bin 0 -> 630 bytes .../T04_015_trailer-no-size-key-value-pair.pdf | Bin 0 -> 623 bytes .../T04_016_trailer-wrong-size-key-value-pair.pdf | Bin 0 -> 630 bytes .../T04_017_trailer-no-startxref-keyword.pdf | Bin 0 -> 621 bytes .../T04_018_trailer-no-xref-byte-offset.pdf | Bin 0 -> 628 bytes pdf-handbuilt-test-corpus/hello_world.pdf | Bin 0 -> 631 bytes pdf-handbuilt-test-corpus/minimal_test.pdf | Bin 0 -> 15 bytes 90 files changed, 10 insertions(+) create mode 100644 pdf-handbuilt-test-corpus/README.md create mode 100644 pdf-handbuilt-test-corpus/T01_001_header-invalid-major-version.pdf create mode 100644 pdf-handbuilt-test-corpus/T01_002_header-invalid-minor-version.pdf create mode 100644 pdf-handbuilt-test-corpus/T01_003_header-no-minor-version.pdf create mode 100644 pdf-handbuilt-test-corpus/T01_004_header_invalid-syntax-no-dash.pdf create mode 100644 pdf-handbuilt-test-corpus/T01_005_header-invalid-syntax-replace-char.pdf create mode 100644 pdf-handbuilt-test-corpus/T01_006_header-invalid-syntax-no-pdf.pdf create mode 100644 pdf-handbuilt-test-corpus/T01_007_header-no-version-info.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-01_001_document-catalog-No-document-catalog.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-01_002_document-catalog-wrong-object-number.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-01_003_document-catalog-indirecte-pages-reference-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-01_004_document-catalog-incorrect-pages-reference.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-01_005_document-catalog-type-key-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-01_006_document-catalog-wrong-type-key.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-01_007_document-catalog-type-key-value-pair-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_001_no-page-tree-node.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_002_page-tree-kids-links-recursive.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_003_page-tree-different-kids.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_004_page-tree-non-existing-object-as-kid.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_005_page-tree-no-kids.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_006_page-tree-no-type.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_007_page-tree-wrong-count.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_008_page-tree-node-no-count.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-02_009_page-tree-wrong-type.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_001_page-object-no-type.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_002_page-object-wrong-type.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_003_page-object-no-parent.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_004_page-object-wrong-parent.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_005_page-object-parent-contains-array.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_006_page-object-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_007_page-object-resources-wrong-object.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_008_page-object-mediabox-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_009_page-object-mediabox-not-rectangle.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_010_page-object-missing-contents.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_011_page-object-wrong-contents-reference.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-03_012_page-object-resources-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-04-01_001_resources-basefont-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-04-01_002_resources-basefont-wrong-font.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-04-01_003_resources-type-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-04-01_004_resources-wrong-declaration-type.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-04-01_005_resources-subtype-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-04-01_006_resources_subtype_wrong.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_001_Stream-BT-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_002_Stream-ET-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_003_Stream-BT-and-ET-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_004_Font-name-operator--missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_005_invalid-Font-name-operator.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_006_font-size-operator-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_007_invalid-font-size-operator.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_008_Font-set-operator-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_009_Missing_open_paranthesis.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_010_Missing_closing_paranthesis.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_011_paranthesis-substituted-with-brackets.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_012_text-show-operator-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_013_stream-keyword-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_014_endstream-keyword-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_015_invalid-stream-length-in-dictionary.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_016_stream-length-missing-in-dictionary.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_017_bytes-between-endstream-endobj.pdf create mode 100644 pdf-handbuilt-test-corpus/T02-05-01_018_position-information-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_001_no-cross-reference-table.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_002_xref-keyword-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_003_number-of-entries-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_004_number-of-entries-too-many.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_005_number-of-entries-too-few.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_006_offset_missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_007_offset_wrong.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_008_entry-offset-too-short.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_009_invalid-keyword-entry.pdf create mode 100644 pdf-handbuilt-test-corpus/T03_010_wrong-generation-number.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_001_EOF-not-standalone.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_002_EOF-missing.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_003_EOF-incomplete-EO.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_004_EOF-incomplete_EOF.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_005_EOF-followed-by-junk-data.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_006_premature-EOF.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_007_premature-EOF-only.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_008_trailer-no-trailer-keyword.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_009_trailer-no-opening-brackets.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_010_trailer-no-closing-brackets.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_011_trailer-no-root-key-value-pair.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_012_trailer-root-no-indirect-reference.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_013_trailer-root-invalid-indirect-reference.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_014_trailer-root-indirect-reference-to-wrong-object.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_015_trailer-no-size-key-value-pair.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_016_trailer-wrong-size-key-value-pair.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_017_trailer-no-startxref-keyword.pdf create mode 100644 pdf-handbuilt-test-corpus/T04_018_trailer-no-xref-byte-offset.pdf create mode 100644 pdf-handbuilt-test-corpus/hello_world.pdf create mode 100644 pdf-handbuilt-test-corpus/minimal_test.pdf diff --git a/pdf-handbuilt-test-corpus/README.md b/pdf-handbuilt-test-corpus/README.md new file mode 100644 index 0000000..052b753 --- /dev/null +++ b/pdf-handbuilt-test-corpus/README.md @@ -0,0 +1,10 @@ +## About this folder + +This folder contains a handbuilt PDF set created as part of an ipres2017 paper. +The data set presents a corpus of light-weight files designed to test the validation criteria of JHOVE's PDF module against "well-formedness". Test cases are based on structural requirements for PDF files as per ISO 32000-1:2008 standard. It currently only tests against 88 different cases. + +Further information on the testset: +https://dx.doi.org/10.22000/53 + +Link to paper: +https://hdl.handle.net/11353/10.931074 \ No newline at end of file diff --git a/pdf-handbuilt-test-corpus/T01_001_header-invalid-major-version.pdf b/pdf-handbuilt-test-corpus/T01_001_header-invalid-major-version.pdf new file mode 100644 index 0000000000000000000000000000000000000000..386522e736c7c24216f3312d292fd10a484187f0 GIT binary patch literal 631 zcmZ8fL2kk@5WMdzwueaVq1XvYpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%8+1bOe*eCIz(ky-#+mXe03~ z%dL6CxNk|7(NgTe?;v-Z4iTMtoF3~vj8b4UNH^|ax`FElSriIw${$J>+0_lEJD8+k zbE`XH6JgZWbV;8Qtb-W~GNQJvB#v5cfFcFnER3V58{q~U%%{F~VR^=S|_aSqK<_@ z4x^-2i-4fn5?K2AE|E>eR#w2q>QEZw zFdTv`Ggo1GP3crgQ87=ZcYH&ZyOeurb1l{>O|B^J9%S&kE1`VSCJa6)vz&|jip;G_= literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T01_004_header_invalid-syntax-no-dash.pdf b/pdf-handbuilt-test-corpus/T01_004_header_invalid-syntax-no-dash.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ed9da176cfee3e7fea9dcdf7a49f09158a19b213 GIT binary patch literal 630 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<_uj|7^x#Jd;($~VDB!VmNQwYgI>!DyEXBwVI@jKJ!pc^ zeq6S-EWOc6h*%Gt`1N}vD(O&`=6hM)J{nQvYhd%k$~YHRho3B2rfpvDlN~GCNIc7O zYu+&KTT*4T6no$u^xdXIM5mrlkM$l#DKHwO8+S0>!1aSH3WXH%?T6Auc6Ed44kjts z-0Du)L>RR-UDBrn>tM!$jHqoZiKCVqph&@Q7RFK3jc|hv#;LDeSe~&S`Mbb)pRVu% u3;J}07g*@Gct(r7kQ&?%GgHc-H9>bi&%Y$iZ5Ypc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<=7bH5AT@89Y&%M!cI**YgmcWP!F1* zYdBK&!8@PUuMWK*VzWq?T$gXZM-N7UU zn_Jxpn+T(}rc3&iU>(d@kP)?QC2`bp0~9F)&B8c}IuUNL!8rA`3(GUsBYzhd@6#1t vU}2xG@B-@wEuPULFQf+d!_1U2Xidv6oThXUK98Sq{X3v literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T01_006_header-invalid-syntax-no-pdf.pdf b/pdf-handbuilt-test-corpus/T01_006_header-invalid-syntax-no-pdf.pdf new file mode 100644 index 0000000000000000000000000000000000000000..847a830e00bc95d25e2cf79d7c19b8078b7018df GIT binary patch literal 626 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnJl+Yx`~Ca=0ggVZ)ed1W0QQt;6)pmTW=mk{=etBU6>TUki&2Y zvdmnCKp`|6*T3|0S%f(0?ap4mX^8kBy0kxdTN*(lCR@kkHXALV+8tOq4g!bdI zt!3$rRzk#j;KZ-rBT-3*vNYez>h{ryB3}cWA6CY>usZx?$ue#8dY|lA(MIA~mRs|N zao>_Eqovpb@1XBC9U?mQe0r?+FiL^ZAlJoq+oNa zJ7E)H)Yf!KpAxKt84EI^wyh+NT5f%Mx#aoy%7!z9k8Ty&31|CPkQhV^hccChSIRv zw42vA^X9#6>-X>b2YmEUt#$~50f?t8EpZVrG+Tm5KHmw&RBovRF;<7dpbx_#P?5R{ z%d1PLQj;avS`aUkW^$yCxbPT=`~Z7*0k@n{sSbKgC3Y&}S;I;chI{Y?UHfs_)Uxzi zD`sLfaO_p@ku1rfBFXkt-aZwbCvP|2&+9x|!w3c|LVr$+o>RVE2 zG|4^qZS>scL&&F|$B*?MMhOTWq!YC<*}(M!<+;M?eSG_&be>+_V6uZr0yej*6V?%i zO-+~dDZwh3v1B7^+eqT5X#*T7c=f_43_Briu*Q7uYZn%0tjGQ?Fu%`Nc!33dzQPNv o>os^r%Pc1i?uVHvWzd@7JD+D?#B;g4q&9BQZWutTHF=HUA3?#NxBvhE literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-01_001_document-catalog-No-document-catalog.pdf b/pdf-handbuilt-test-corpus/T02-01_001_document-catalog-No-document-catalog.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5acd3dc88f5ae8ad98b814ca21c0fbb3d81cce67 GIT binary patch literal 584 zcmZ8f!A`wN84TUh- zw41kY=DnF+Z*m{EWV;LA@89ZRQzLW0xlceO1MJ-fRC20Iv$rcriCSq+k_Ur#hmAXPjlI?WadUPt!Rv>2krK`GN9eHetnOwYH$97n>k$Bd{ z#=T+GXHw~`Ry&Yw^s7aikaj(vKC2y!5)fph6SXl}!}WvCbAvqP4`cK6>IRc7j1%Cw z)s?UrA#fb5UIR@D{3b98!%m26Y%m#Ob&ACa>yc%SGfejBRxYrhPq%V`b^SA*vntEA gt)9Tt7>A_Aw>ZnbG})>qpscHWcEbQXZ~Pkn199n-+5i9m literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-01_002_document-catalog-wrong-object-number.pdf b/pdf-handbuilt-test-corpus/T02-01_002_document-catalog-wrong-object-number.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3cc931051416253a2e9c61532b09b4d2873d40d4 GIT binary patch literal 629 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%oJ*`3{4d(->mmUlw%e*eCIfTNFUwL=&TfIa0|g^Pfo*%Da#`7V)7#a33p#_CWS z_Eqovpb@1XBC9U?mQeEO{SFiL?@A>Fux=?1PJWKk%zE`KOpWLGzs?qHIF z^{vi?jfHVr(>Z-|ur_8as1dboIdRl-17s=q&B8c}x)E-$!FYu37Rxi%qyFq_VZ2Wx uyugA!jqm~s{T9z?krz_C_cBw;AZgi=&+{)yWjVWqHm=Sv3c&LwugO1ZO`&c8 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-01_003_document-catalog-indirecte-pages-reference-missing.pdf b/pdf-handbuilt-test-corpus/T02-01_003_document-catalog-indirecte-pages-reference-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eea8ffe1a7d19a33503ff2531e76aff53c4b765b GIT binary patch literal 617 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmgQLE*`3+lc+>mjmUlw%e*eCIfTNFUwL=&TfIa0|g^Pfo*%Da#`7V)7#a33p#_CWS zvf-3T|>V4QN&u* z97ZFMMd~UnuP&VlEiJ*;0(+5ZCdTT7OOJqv``8=!)N(FMb<`VKVz(k*G^|8ns0TR+ z?8jA8%hGGDn243(*sI=SQA&rhBs<8m{b)p$SQFipVD zt?GpJ2*akPn=}q=_OsK8pdf13n8ZoTEzn58s~1LL*bQ-uHO8s0U07VO9_72jc%QED u3iJDPg;!YMHF!pgESK8-FLR{~+6-iPk$p+B<;EqnaXy34hgNI)8vg@u4WV@a literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-01_005_document-catalog-type-key-missing.pdf b/pdf-handbuilt-test-corpus/T02-01_005_document-catalog-type-key-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..77c3360f01f86da36f54b8d31b79c94239638b07 GIT binary patch literal 623 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`3*Oyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPC1ix7rM^QJz4K^63j&@;r#(Ff_1;+byc^6pF rr^~y*Lchf`TI7Y)?oXL1Wzf2(%bw?7l5Dx4gf`A+7zN;Ylh@=QFLIxJ literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-01_006_document-catalog-wrong-type-key.pdf b/pdf-handbuilt-test-corpus/T02-01_006_document-catalog-wrong-type-key.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7c1a8ebb579d8ecb144de860f936044e4a7b5638 GIT binary patch literal 626 zcmZ8f!A`7f6{}0pg-d5))vBM z({5hh%zN{;-sCR1=A96{pWm-<;OL`TZV?6pV2^oL;XEK{x&W4byh&sev5^(9TeU9@ zau^OlmYJ)tytZ^Aw6p|U3+!2DxfrPf&V2%69$@b#pq5ivsl8sw3cEG&s9_~aLp{hr zXg@AawJg2WN{Cn+PW<{k5|wl)OY@zqt{;pj@)fYzerenkR);quS*C4X?`9k;+Dbgh za${aG?pso2v=lqw9rWF%Lqw;ZPmk3OMkz2d(v3TquHo`t7KK8a^1ISSc5#L27RD*q z-0Du)Mi`xHx}=)~>tGtE{~ixou7UCdzg-wdQ8&Uhwiu_Tc42wMdNkY_#`|=CXIRju q`#Zxz|Ac3>$P206&oWiYpdEnjdzODnvgNW8+BlzK6oBWAUy?s5yP!z` literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-01_007_document-catalog-type-key-value-pair-missing.pdf b/pdf-handbuilt-test-corpus/T02-01_007_document-catalog-type-key-value-pair-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e345d4c449ed22582c1053e1d83caec4d1763bfc GIT binary patch literal 614 zcmZ8fL2kk@5WMdzwueaV0UU=UPziCMC2G}HMUWffV2GhXA+8*w(tfgs{(yd@Yo`Q+ zWhK^Rc4u}RZ+xG$csm5|@caD(9DP)a4MM*U>?zMGoCO3;=D^a=cZqB)*0KV2r*@@5 z4ub*6GIJG{*OZQhmX=^^fxXBq7elqjnNL8>1MJ=g)N&##wbM&kVW%dZG^|8vs0TR+ z?Z^4KmZdjZ2@z|(PiJUjm!%7RF6sb@*{4%e2kweH_P%HWJUW zT$?wHdzMrgEyWgi8-2Iw5YegY(_^`XVG4|lbmBIqE4Y4;MWN89{GoJ_UEN^1fl&%J zx4IKH5k}{lF6sXSPciScTmfYWezP!+qE3V>Y%orZ?85Sdb!ngrjQ8lyF0i0ScXok= m{u$3`krz_CA7rAGL2H`sc$$AnvgPs-+BlzK6oBWAUXwrOKAeaE literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-02_001_no-page-tree-node.pdf b/pdf-handbuilt-test-corpus/T02-02_001_no-page-tree-node.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a6c7d80bc255c740b2bd74287e632b47b23023e2 GIT binary patch literal 577 zcmZ8e!A`P{fz7f6{}0pg-blE0r+W zw42x0dGp?Qle?rP+aY-0Kc8RlR{{E{mpg=hAH+l%DlAIIrXZeZovEQd;@oE-mH~Ee zg9V5wmHJ>-RAQ$lrthzW{PUJTjC5hSM~U;$eO$m`0933i2}f_V5+>HFiC@2ms-y}P zX||`b^`j||eRYHB4#p`sFLftuY(?jqE`{=xU_I$bu@SvJ zOX6r~0~{&%O<^2God`GBV3PZ~!r~w6vcC&V_IQOCSkU7YUSOer#`sJ Z54`eO_CY*W6_+x$nlp?7@VxPJ@(ZStk<0)9 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-02_002_page-tree-kids-links-recursive.pdf b/pdf-handbuilt-test-corpus/T02-02_002_page-tree-kids-links-recursive.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ccec6e4ac4e29366328ef74179002b6e5c61735a GIT binary patch literal 629 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!i9xqOJM2eyF@k>TUh}ct3zp! z!*B?)%v?p#E}aT3Ey30Tdy!c#M(T(QpMaPL*t-j;!1aSH3WYZ152cIj>ITytOj5A9 z)t#`3FluYMq)!Rf!HfkNQQKA$M=du%k%HeWjH9R<;RYLwQ(wEVJYzlbcY*OfUEu{5 s^yvyOu+VSuj23wzwfkRYN*S~s=*s8$m!z>=TtXW+XBY+Gd6U=VA7>JwYybcN literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-02_003_page-tree-different-kids.pdf b/pdf-handbuilt-test-corpus/T02-02_003_page-tree-different-kids.pdf new file mode 100644 index 0000000000000000000000000000000000000000..21936944a56fec1d42572e360d9e952edd9d3544 GIT binary patch literal 641 zcmZ8fOHRWu5Z%uyhD9V;Q0LzuRb8|+0s*2*v#VIRjayQsF>+i{xFid102g8Gs3EFl zIo8v7-e=;>Z_{gU5Q6jb`}GYTx+qsWgwY7tLs>Mq^a;u^uxDb<7hw6vn?N?_ThRcU z%0sO&fbkeaUD(&=P1k15m7oICIs^73ijq&{5tl9jvFGFP#;2BBDxJ-I@WubO&o?+o)2 v8sQn{Cp5w{EOdKyTJf?H%KkfW#g(=?!^j86nLVd}2&SW+ literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-02_004_page-tree-non-existing-object-as-kid.pdf b/pdf-handbuilt-test-corpus/T02-02_004_page-tree-non-existing-object-as-kid.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ad0afed818cbdb619dcb66cc2421e923af027ffa GIT binary patch literal 629 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bP8;*%Da#`7V)7#a33p#_CWS zgmT8;U`(($8HWJUW z+?qFx`<7H0EyW&q2Yt8c5YegU(__7dQ3{L(>Bb#QH*ozRi$bAI`9tXI#8Jx)P^92D3*#v2M!3NS t1%0~03oP_oJflTkNbUZYnNkL=2fFfk{v~NF7njh+%^5}kc;4hS`3HAbp>qHL literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-02_005_page-tree-no-kids.pdf b/pdf-handbuilt-test-corpus/T02-02_005_page-tree-no-kids.pdf new file mode 100644 index 0000000000000000000000000000000000000000..46af0b734e8eb3b9ab58c2905ae96f08084f422f GIT binary patch literal 616 zcmZ8fL2kk@5WMdzwueaV0UU=UPziB>617sRBFGJKFkomSNNpEC{y^46zuo8u#8YM16`?zXrS$f?W zONi)tWQkvW$D))DWodSlW#`F=JlgjwQD<8w2^q0#ooMOJg}tF zXeo}syXd=3mxykCpN`ED#wplFdT|%i9o#<3JXdIg{ZKmJ-rQk&fN2Ugx2h605k_rI zmvo(A70g7C5w&k6an^DN6e;-4!Z?b05$>?TIMuZaiwo8#e^(eE&a;c_9dw;7njh+^%+J1c;56i`3KDbo#y}m literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-02_006_page-tree-no-type.pdf b/pdf-handbuilt-test-corpus/T02-02_006_page-tree-no-type.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d67a8c673a73c3f0fb4fe6c853109fc15c25e577 GIT binary patch literal 617 zcmZ8f!A`wN84Ygsj z>2BV>%zN{u&g?Gkc-;V;pWm-<@X$rQ-Xjc$ARe={#HCNrd<7sT`dC=>U^D_%q!o+b z8v0Bc#RTSqcvfj9$NGdzmw?Fgv488YK+ILCk7lDv?A65N<4vKM$(>?}!cq-V4ft`@ z)?#|26%(;G8N2m4mZhptkz@x|b{?$Evki#FacwIF*6~2pa?Ir7^**=5qK(9pDt7i2 zqXCmjYm_{I*G0G5bP4I!cj>b^z&HUxMtV^flPz4|t321p$-Zlor&l+a>|vS!=T=w3 zCc?0-$tjfQ1Z$@gNsZ`TD~Xd)TcAk6Z5Bph*b8xs4dzi@UReBNed_N5^9D4+3(OzT q2rsa}ZSky;S*}d=kIc2U$UV@=7ulyGTUA`r*ve-R`rtUzm-r8&4V_&8 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-02_007_page-tree-wrong-count.pdf b/pdf-handbuilt-test-corpus/T02-02_007_page-tree-wrong-count.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fd83684aa33e1e5b8df5b992d9fbd7c9c2edd714 GIT binary patch literal 629 zcmZ8f!ES;;5WUY=Ob;aOK^G8E6XQWEY11|}$jx|IWwjV&n`KRHf3k=ELHi?}T_O@U z8`wPF&YSlJXMP`dylw!_@89B?-52LU{85g;nF84SpiEw-vzQc--!y?R31x> zLl}=il$pI@c+J&0SAqzpTmtMxWI3P66E0l>BG1SE(5I4#sN_*?M1{SYc+oHtrKTFx zL0~?v+FFL*XvIXV8;;%jJ>iwGC`&7!3@m(n|0HcwKburb9@lzDtkI0VXLhYNQu+G2O!LgD47#Cgl&QitOeN(>=^m zFuB#0u!%5iYucpG3D&_(IT?|=RuU&Awm^}B+boR2uovPM8_c7+W?^~3`sD8l^9D4+ uE6g9z2(PffZSl0?c_EbjUlJ)b8V@w`MgAqIEgKhC+V&ZQJ~+F?(kJakd6b_l~Eu;)ChaN!e_EP_wYD8{ZNgS2f07VLJvoH$7UWglPFpqT2!t#RkslO}C8_)=^Fn>TJ pyut#v#nX!Cg;4fCNu<UdgYf2}o&`jW35U)B()zBPp?h+7654-mswVdkG?2DByu~QSz8Z41p>Om9u z{Bd!q#q>riB4RyoQ2~17+h*{(&Z_^I+&3nBW81v#G%k@ph&@O7KTC432==KCaEtk%+FYt{9R$PM^|`- tc|E$qE6jH2Pt2zC^1IHP^MgMs$p>zNM literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_001_page-object-no-type.pdf b/pdf-handbuilt-test-corpus/T02-03_001_page-object-no-type.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9762b9b947438d8c21315214f1f5602f2fc39227 GIT binary patch literal 618 zcmZ8fL2kk@5WMdzwueaV0UU=UPziB>618fpBFGJKFvQTH5Lb>-X+PORf6#uUYe%FJ zmK9s0*`1wnyxCpS;oT6tpWm-<;OL`T?-7PWV2^oL;W8j-z5~T3Ujw1@`yBpX^} z)fTXvMj#<#J!Rt8=U7zIp)Ac0vg$k-QREw7i{sk3(X9b~_Fyy6=j1TDDF0f!g q?{618fpBFGJKFvQTH5Lb>-X+PORf6#uUYe%FJ zmX%nO*`1wnyxCpS;oT6tpWm-<;OL`T?-7PWV2^oL;W8j-z5~T3Ujw1@=$5mU)(i<&HuLn;2`aKqvbSO*ngRD9aMilu5*y6Z0&V|+CXG>0wjMV#V$BH%* zPqN&ZSBwXiR2ePB0eBaEx9JeksqfQcbAWLQj0Wk&T}-!deJ_hbp-uT+=_0$j!E_JP z6l`vFCu|~&+L|uubAoj+6G2AQu9d_|%Pml(;5Q57DC$MH#RlWl*Dfsou|D~`!1#c! v@B#}4bcGjK=(l)Ai@cE9{V#K+3|bF#<%|4N(pWAop^cj}i~{hy=}Ynlnf9TF literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_003_page-object-no-parent.pdf b/pdf-handbuilt-test-corpus/T02-03_003_page-object-no-parent.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e50cab9a751374b562e07f0eca490b19336a117c GIT binary patch literal 616 zcmZ8f!A`lHM&{WD*z&kGF1U>^8avCh+3VFzU`<<#M^)_1D@H?0 zs!XZm0YneETeJyjH{kTz9AJ_FqagjLhshQ$?^K>^w8g&bGEXnAFxkT_0b5nAgl%hK z*VC1Y_72)&rjiEHyH3%kQf+}M1>Qawg<(I$Ew-2-UHf41j}2(PGfWKW*3K}0NCD2U nfOmMNlv%Dy_lqpFHfU#{z{~7YQ7l)NERD+^c4eeDs~c literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_004_page-object-wrong-parent.pdf b/pdf-handbuilt-test-corpus/T02-03_004_page-object-wrong-parent.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4aab7c26afbfbec1b384ada5ddc2c8767a6a98b3 GIT binary patch literal 629 zcmZ8f-A=+V6uv)CalBZf7tnQV0~5jp$f8jrf!z@=3M)7=R@0S;zN8nvfxd{RT^I{X zvo&A7p6{pgW_L-4cSG=g|Gs~KqmOE}Ll_Q$J?2@3%YdNyE3owQT_T%_t*n4e)S)!U zVKf3+X6}ULHAiPcOCt2_SzymH%f(n7ap@Bf^8ov|0gar?N*(lCRwv?F!%CEfW{`uh zcF@wYa~rLMh_&IwufJnaNr$pD-^;4=U__Cxfh`Uz<5E~1eu`w7Hb}iraja+~@g&Qw zdBb>MNtMx3?16XDcZ)U=?fO2w)_WMIz{p51?qa%u>w8%g3T?|DN*CGH4W>JoreJ%k zCt*`z)Yf!OqrDJnur6jID2Up&T0d&J0jd=I=D|3MdJ%50!8pye50+=FPx&q|KAF^H literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_005_page-object-parent-contains-array.pdf b/pdf-handbuilt-test-corpus/T02-03_005_page-object-parent-contains-array.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ce72547f9cedb1d13b5038b79950093b8c31b283 GIT binary patch literal 637 zcmZ8fK~BRk5WMdzmO~^sP{(PK7OCo?r4a}aRmiR4;5KeamBz?%Md6bi_yK%`wL?Qx z%Sx=#cxGo3Z+@Lz@?Hqu_s{1SaP(0vw+N#Vu)89!aS;%dJ_F0%UnR1+*vJ~#RP8H+ z9L8giRqk$BUVC*ev?Rj9>ZREKlX#GMAtvg83!jjf2ROJ2NII3Z+Uu398)nzbT2+R$ zXp*pz>3CY<)-xeuGkD@R?}@0TLs?erWPN#SL|LqWJ?)pqrLmd#(ath$pk^OqS<}|y zURE3Pg7MIjYNMst0q>#jHXR~54Sag6b}-3+(IEY}huIp=Z)902v~9mBUFK&Om~CN} zf$gtR!nVq&>**RtSLAWhsh}Wg(`o;pkwJ$K)3Xd80Z2 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_006_page-object-missing.pdf b/pdf-handbuilt-test-corpus/T02-03_006_page-object-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..01591bbc1366b82364515295e293e5ca6f1c518c GIT binary patch literal 522 zcmZ8dOK!q25Z%uyri)1J0&IsQWPw;fiCVQ%5oA|&VTeP6lDJBY`nhBmy+L~s#zxR6 zmK9qsZ1Mq(TzJEX9$^9eh1mI5OqqiBd}4%c_8EH&Eb@46|os~b%But>p% zIWgfSSJ>5b@zJ)lIy;?93Zi$NDn1&O1IGyXWnmPCqY!hvV1jtPS3kSc%e551JsX zCunJP+gb?`>wy!$K1ZUG4rOV+lhyUT5kZB3W-|6s;~jHpd3^@Emcph&@Q7RFK3jc|<(#;LDeSe~#R`8&gSpPujx3;Ohg pXISXBct(r7klOt(Go=h#5A@{o{8Q3cE-s;sn=_08@Vv=$@&{#!p=$sD literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_008_page-object-mediabox-missing.pdf b/pdf-handbuilt-test-corpus/T02-03_008_page-object-mediabox-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a996ea11034b0a9ade53328207538ff402608cad GIT binary patch literal 606 zcmZ8f%WlFj5WMeKY!8vz12~2xLR{HKef(q({e$*Lx^^Iq zu&me`&Cbq_6D+Q?9`8pG{QQ1>1IG~6a)&S;1G_8N2A>85< zk;7yHvR?ZN$7@R$LQ6+*wE!%aMjiA@8XS70Bj&VfOJr&lHLW_Lj^2u9L~NX8VRKG} zksf75xtFGQYeiMAfIS|T*4uTa`N_LuI>*gE`F2g)7WcB=+80bxM>1ARu?ODA&~LiL zbQ^{AS?yt303##Aq>sf0E^lO2DRgnZDP65EuCUm_yZ{$aql9f%akrMf%-x

%JDan?POK9tTM)3fGVE&N(0j;~6VgLXD literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_009_page-object-mediabox-not-rectangle.pdf b/pdf-handbuilt-test-corpus/T02-03_009_page-object-mediabox-not-rectangle.pdf new file mode 100644 index 0000000000000000000000000000000000000000..37946d6919eee912d70b9556ad00bb774f756cf4 GIT binary patch literal 627 zcmZ8fL2kk@5WMdzwueaV0UU=UPziB>618fpBFGK(V2GhXA+8*w(tfgs{-FIx*NzAg zmK9s0*`1wnyxCpS;oT6t-@or4;OL`T?GT1TV2^oL;W8j-{t7Jpe3!^(Vk;|P6LlyJ zau|(3mYJ)tyry&}w6p|U3+!2DxfrV>E`5x7fc@Km8qQ^<4tgys?A5fhf)ywYbs+t) z)^90UdZUyOu^u<^>vJqB=}?yDds%fJj41Lou*G3zoCmAJPlhbh+Nk%*j1_Gpo@BW- zZx|0OsWMuMJ@792Zqp^ATi>V8dJp3i7!A^kyO?g^`d$`=LYwi2(nWT4gXs>YDcIEN zPS^w(wKZMNr~K+*CW4HpZ7cJmmK&f*!EYAEQPhiYgAK;1uU%N4u|D~`!1#b3@B#}4 r^ne#w=(l)Ai@cE9{Vj8)3|bHL;EViA(pWAop^cj}i~{hy=}Ynti6o&N literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_010_page-object-missing-contents.pdf b/pdf-handbuilt-test-corpus/T02-03_010_page-object-missing-contents.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f282f06fee8e722754e6602e530cee2328243670 GIT binary patch literal 612 zcmZ8eL2kk@5WMdzwueaV0UU=UPziB>618fpBFGK(V2GhXA+8*w(tfgs{-FIx*NzAg zmK9r*+1c5#H@izZyc>e|`}h3=9DP))9l~%3>@m+OTm}TqUxB5c?-JQeY-I&(q7J1& z4xMNtMx3 z?16XDcbhH|-TFR#)_WMIz{p51?qa%u>w8%g3T>z#N*CGH4W>JoreI^Lm9R-HYWH-( zo&u|Lm&u* z97ZFMMd~UnuP&VlEiJ*;0(+5ZCdTT7OOJqv``8=!)N(FMb<`VKVz(k*G^|8ns0U3j zupd`VElaPpVj@-p$6oawi&8q2CD}oi?MEZ>Yy)g@TpQ=Y>hQBA%e2j_eYO)cC7xxm zGjAC6EvYnGiUaTtdT!Gpq*KqM$L0Xz1Q-p{jXIcY;r2o1xk8)rhthd^bBDy^sjppFT(BPbyTW*%uJ8); s`*ej@Sl~5yMvE+$+Wjwcr3_jRbmfceOVU^_E}@N^GYEZXwWhD}KXQ7ZasU7T literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-03_012_page-object-resources-missing.pdf b/pdf-handbuilt-test-corpus/T02-03_012_page-object-resources-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..740d6d8c7cd53ef743729e77c8ba114a988b0dc4 GIT binary patch literal 613 zcmZ8fL2kk@5WMdzwueaV0c?jPPziB>618fpBFGJKFvQTH5Lby&X+PORf6#uUYe%FJ zmK9s0+1c4~yxCpc5#0d1pWm-<5Xe!l_Xxuwu*WQ|aOo2?Uja)#-W0N#+^GuKL>~)- z0!AZHMd~UnuPL3$Qdxqn1@^4cOpf&lmz;n|_}IVoSJ2k9l7*of>KN1=TiU(0c1*s_4NS*A5!@3Vc|w6XuBik*4IXkbZ|DV02c z=puKUE+O6eoIaZaj1ypFq!)ED*~0a`%5#l2)puRy>D3J;dzdC*bE=iFi7agQbjh9* ztHYj18bt3}DW6KU1&R=OvoH$7UWi+4FhRO@VeyakX}$|g4Cu)&Fn>T#c7X-F#WSVM ia#gzjW3IJ9I|DuOBKuTi%f%&2<9r6851u!DiT?nU_ndA3 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-04-01_001_resources-basefont-missing.pdf b/pdf-handbuilt-test-corpus/T02-04-01_001_resources-basefont-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7bd1f396b9e2d848c99220aa502f5d53d8e17f14 GIT binary patch literal 606 zcmZ8f!A`wMT8*0O5 z({5hhym|As-t0cP6`csYpWm-<5E!6d?-7PW@E`N6!evO%dQpa3;wgpayix~Tm}U6M2P*nkR<1-(nqsV6?SXle-Ca^TGAi~ z5r15@dojJ~l@PHuoCNL-{^Gc{&Mpgzvv(%4O1;m%S-sJEQsvIRVsF5t${HmPAUYVh zO^29H{eT{u1B_Gfsbja-!E_7P52`3Ma-8ql6xr1crhAyCzyZ}t*kl#Ad%8%^QPl}d zq?Lu(hJ}m>AGqU0~sW?&<=If)>vjnHS2q eA7ieyMV^7~c9DN7vgP8E#yX!-9D?UfUy?t1F_~BZ literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-04-01_002_resources-basefont-wrong-font.pdf b/pdf-handbuilt-test-corpus/T02-04-01_002_resources-basefont-wrong-font.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c207354efec625f97354abb36dffb562185cca4d GIT binary patch literal 626 zcmZ8f!ES;;5WUY=Ob;aOp~51dO^gSvq)FS9C`k{-!zwGqAloc!YWtHt^bgt}>Fg4b zxLIKH_RYMRH#o_Ce9L+PIKO}2KfusKx!xg+M&LdcS&d7dp!o{i^z&VyoA6xJ;7;YC z(#T*u22o`;!tmPAgezePCKlXhkrjL*kGS**h?tLqJD*a{MJ*3%BWmn7#IuHxs5IrE z3IcPv>S`H!s}&QmDLD3;?}XRFqV8)^2~$=vKyFGjJ=|0Jqh zzhN{qq*^P%_rQAS*-eL#P6Ll#n>|cYaH)!Z)WdWO*AJpBB^rxAq$;zk8%%dFOTn1d zWWv_Ju&ZfpKH1l}GUb|=GVj=MRALL{CwT3`C=B}{Zn4D}zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrP%skFH3K{5+c?OCw~1NiAp+@rTJb~w~s~?`5M^#urh86>%+k+*84Prb!v2zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPdTltJr(u6&+f+ae5yARe={#D&k$dP_f_SDhlVf$jh08$X`PjepIpv&6wbv^uu~!q%8djn(oP#R} z?B%kpW$BGp%*49j*scF#SyF|HB->Hhc`!21R&eUUUfFE*KGknknw(EmY|J}G14}B6 zCb>;?#!YB-TA+E8(JkDzu7H6!_{as+*fM<4r`2(KW1s1q1 lp3ySPNmmbKu9QLB1JC$1`z9`{vP)`H)ft37IL`DX{s*vroG<_Y literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-04-01_006_resources_subtype_wrong.pdf b/pdf-handbuilt-test-corpus/T02-04-01_006_resources_subtype_wrong.pdf new file mode 100644 index 0000000000000000000000000000000000000000..837bc4fece9c8b9f0b0265be272e02571b37979f GIT binary patch literal 629 zcmZ8f%WlFj5WMeKY!8vz12_qJPziB>618fpBFGJKFvQTH5Lb>-X@9bZ{sH}wt{o8~ zEGw}lvpYNEIMauu<8=dYPJchY;Gv6hwL=&TfIa6~g$tjc*%Da#^&yZ=`BqfG#_~{V z^k6syQD(Nn@S4&oSHciXEwERS<$NTMxNr%GJRjqGpIXjDB@b#XD(uz7i-wUXHT9qg z0`qa%)-v=)DR)X)r>!NEn9YQ+AEDRO3!&`)GLurH@jzET&%XtYW#i&X+c|^K2gjMbCI50qp>qHL literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_001_Stream-BT-missing.pdf b/pdf-handbuilt-test-corpus/T02-05-01_001_Stream-BT-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..001931025daaa626dfb6ce454e15ace08715cb52 GIT binary patch literal 628 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wn(3{>Tx4aXA_xtz#0~~!+s~y5%0PHExDqI8v&6dE@&v%JzDz>r$Hdcqy zAcx@)WSO}N%WF!fLQ6}qwZL9vmWz=(;=(5&<^lHZ0%|#vl{)CPtgu@X&l*;uG}MD8 z2<^vZTg%cLt%Qj6z=>bKN1~DrWof>b)$OAZMZN|$Kdg*%VRiV)l4aWF^*-6LqK(9} zEVt$jOR;67_}8$&Zqq9SjK{EsBJ5Uqm~<>K*4Vo#!=LbaDxrTsjppFp0OUeyTEv#F7N^i s`gDO8Sm?KSMvJ_V+Wjpvr3_jRbm8;-OVU^_ETN5?GmHZ8yvb|w4_0ZQ_W%F@ literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_002_Stream-ET-missing.pdf b/pdf-handbuilt-test-corpus/T02-05-01_002_Stream-ET-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..09f54f4854d009b40a058c7d64aa5cf8793f8b8e GIT binary patch literal 628 zcmZ8fL2kk@5WMdzwueaV0UU=UPziB>Hfq&YMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wn(3{>R9o`MW`~Ca=0ggVZ)ed1e1oo6?6)pmTW=mk{=etBU6Kp`|6*T3|0S%f(n7ap4mX^8ov|0kxdTN*(lCR@keFXALV+8tOq4 zg!bdIt!3$rRzk#j;KZ-rV^K+mvNYezs`F?>k*|Tx4=dwbSRH<{WSO>ky-#+mXe03~ z%dL6CcwkAD(NgSzchPs74iTODK0VfZ7^lE!kY3!ybOYB9vM3bVls}X%va1_RcK|lE zx(_x1Mr}ox^C`bNmWd!6YTL@;sO1JIQ1F|DaTN6;++c%o>T4I4XRJ@|E-*fz3%tOB s0bSq)7Wyro(IPLTc7MxEDTCGnUHClzk~EeJOK9Wf45I)%@BTIU2UUuo^Z)<= literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_003_Stream-BT-and-ET-missing.pdf b/pdf-handbuilt-test-corpus/T02-05-01_003_Stream-BT-and-ET-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b0c32ef4bdff3bab9818daa765c7b5eb1c316457 GIT binary patch literal 626 zcmZ8fL2kk@5WMdzwueaV0UU=UPziB>Hfq&YMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wn(3{>R9o`MW`~Ca=0ggVZ)ed1e1oo6?6)pmTW=mk{=etBU6Kp`|6*T3|0S%f(n7ap4mX^8ov|0kxdTN*(lCR@keFXALV+8tOq4 zg!bdIt!3$rRzk#j;KZ-rV^K+mvNYezs`F?>k*|Tx4=dwbSRH<{WSO>ky-#+mXe03~ z%dL6CcwkAD(NgSzchPs74iTODK0VfZ07hf<;x48exPFjDq0nahp>&a5-C(){u$k3e zu!%2f>$#Lq>D8f31es9VRtiTgH$ZWM-zxcX=lPeUv0PL_8#iYd1>kx2ugO33>Y!c# literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_004_Font-name-operator--missing.pdf b/pdf-handbuilt-test-corpus/T02-05-01_004_Font-name-operator--missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6af027083ad1737579e1cb8e1555bf14b17af949 GIT binary patch literal 626 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wn(3{>Tx4aXA_xtz#0~~!+s~y5%0PHExDqI8v&6dE@&v%JzDz>r$Hdcqy zAcx@)WSO}N%WF!fLQ6}qwZL9vmWz=(;=(5&<^lHZ0%|#vl{)CPtgu@X&l*;uG}MD8 z2<^vZTg%cLt%Qj6z=>bKN1~DrWof>b)$OAZMZN|$Kdg*%VRiV)l4aWF^*-6LqK(9} zEVt$jjzmB3T?t4N*CGH4W>Joq+m0v zyI>Pv)Yfw;pVF&C84EI@wyhM7T5f>i1ix7rM^QJz4K^63zII`G#(L!K0^@zUz6&hq r)Ae0oq2J;eE%HKY_pi*9GH5-}bTx4hE@@AvQf2RQnuRy%~j0N7KWRk#QUnk|8)pYIacRBUAhY^)BY zK@P(q$TD*kme-U{g_f3JYk|GUEEgkn#Dz~l%meJ*1=MmTD|OIoSz%Zc&l*;uG}MD8 z=-Q9Vww9$gS_u*BffK)ek3=OM%F=uwU6gMH`7{ zS#Hf6#(hhwjFw^#yo0{mbcpEG^XakP!zcxogc!yhOgC`-Ad5nwP5DFVBD=c5bO)0Z zY;JWYY$A->nl9;6f^{%sK}OWJmBdlY4N#=uHw)t^3M1TLgK_F>7nWzNNB%A_-lr?P uz=A$q;RV+9TRfvhUP$f!mzh!qtp~dDdHyA7EEkv1#?9G{0`R=aYw{1ffT558 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_006_font-size-operator-missing.pdf b/pdf-handbuilt-test-corpus/T02-05-01_006_font-size-operator-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..542f285a228c9eb1d8b25d5bb973ef9f96ab0184 GIT binary patch literal 628 zcmZ8fL2kk@5WMdzwueaV0UU<}sDwB`iCVQ)5#)wA7-DEph%3jaw4dyuKcFA!+7Thb zvJz`DyR$P6deeuv#oHlxr@xbZS>uyLqw;ZPmlE;MhP$)q>af2ZXacyE3_GZDxIe{cbM#8l7LOE z>VtKFQB%?7e9o_mWh}^s+BR}HYPkUl6#RN&H;OtDZm`BU^|cF&3)UldR~YZp1zur6 spDyqU3;hPqXp!YoyT4_oltJr(E_|MSOB&0CCA4vKhEV{XH+hTy0f~p9Bme*a literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_007_invalid-font-size-operator.pdf b/pdf-handbuilt-test-corpus/T02-05-01_007_invalid-font-size-operator.pdf new file mode 100644 index 0000000000000000000000000000000000000000..90d80c8c99f0c76288c7fd5516aab727fe6ab46e GIT binary patch literal 636 zcmZ8f!EVAZ488j+yaUp9fHb8oAR!Jgs!iK81ic{+fd*Donkfw$+fVMWKiGa`PAW=; z6}8dpv!DH3Y|ZZDHtz(``u+R<0gfK3^&Vk31oo7rB`$q}<||;y=etBU6FXS~o2X-9 zki%#MvPfNq<<+S(p`|6*TwpIU&BR!paOn{caUXjFpGwYUsg8OhOYBy}i-wgb4Ar0x z0{d~*)UxziD<)#qaO_p@u_&cOS&|)O*?u%4&o;mo$F*@&SRH;I$ue#6>YT^1qP4`c zEOzD%qrN4TMoV!3-a*eDx`cG=dGy#EV4MJ>M!M0!MF*2D+&;)WS7^QdP&!XTx4aXA_xtz#0~~!+s~y5%0PHExDqI8v&6dE@&v%JzDz>r$Hdcqy zAcx@)WSO}N%WF!fLQ6}qwZL9vmWz=(;=(5&<^lHZ0%|#vl{)CPtgu@X&l*;uG}MD8 z2<^vZTg%cLt%Qj6z=>bKN1~DrWof>b)$OAZMZN|$Kdg*%VRiV)l4aWF^*-6LqK(9} zEVt$jOR;67_}8$&Zqq9SjK{EsBJ5Uqm~<>K*4Vo#!=LbaDxrTsjppFp0OUeyTEv#F7N^i s`gDO8Sm?KSMvJ_V+Wjpvr3_jRbm8;-OVU^_ETN5?GmHZ8yvb|w4>47s(*OVf literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_009_Missing_open_paranthesis.pdf b/pdf-handbuilt-test-corpus/T02-05-01_009_Missing_open_paranthesis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1402b4d097d937633cc1ae9e7c0b2544bd0dab73 GIT binary patch literal 629 zcmZ8fL2kk@5WMdzwuc;g0LLK-R6-n}M6KGY2y#Ol3^6n)#Fb-I+E4b-AG9Co+7Thb zvJz`DyR$P6db9ha!@D7PzklC9z|lvw-Xjc$z@GA~!ev0vd<881e3!^(VkawL6Ll;N zau|(3mYJ)tyry&}w6p|U3+zQ^xfrVxE`0)G9$^12pq6u4siWS=3VSv2qG2UULp^AM z(0*LCwJg2SN{CnwocQ&7EGp?xmgWapbsmi<@(r-Xac!IntHaNhEYmix_t}mWZ6uy$ zxifDV4=kxNT8abkF8XfMA)-^?r^n_1;}jST(u=#8Zs9=|g+d$hhtfrMbBpO7rYYFi z>PFZk7_}u`(B}Z_Tqc5is9h_Fla^bcM8R(s#!=LZaElGbsjppFUa&sdyTbT@Ztw~V s26Tg0Sm?KSMvJ_V+Wjtbr3_jRbmNQsOVU^_EuoE@GmHZ8yyBH1i2v&h8P+Y;>s~9?I(Na5897(?T8Rz zS&227-Psujz1e-z;oT6t-@or4;OL`T?-7PWU{85g;W8j-z5~T3Ujw1@BU`4w{ZI)i$bAI`9tXR0Ec9DEqeWgw?S7ZJQUpF literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_011_paranthesis-substituted-with-brackets.pdf b/pdf-handbuilt-test-corpus/T02-05-01_011_paranthesis-substituted-with-brackets.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c152a675cbeccfa6eb2c9376564219701e02faca GIT binary patch literal 630 zcmZ8fL2kk@5WMdzwucgy9g_bDmYW3<#R9fTdp_64^}bWCd)Zj-^2k zqY=n5a}}1?l+J{fmSAgvy~->XV|Bu%Pe9BA?B55}axN=%)Eil0uO?nKtVC(32Tc&# zkE^zpr8im$5$k~yzkZKJB^}Dr{2;5&lMzL}0k$}618fpBFGJKFvQSQA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wn(3{;Q9o`MW`~Ca=0ggVZ^&7%)2<$P>DqIEx%~!zE&v%JzCU&v{Hc^Mt zAcxTiWSO}N%WFz!LQ6}qwZNWbmW#1E;?gG|<^lF^18O;!l{)B+tgu%T&l*;uG}MD8 z2<^vJTg%cLt%Qj6z=>bK$D)!BWof>bRp-HoBHsX89M;CUusZx?$ue#8dY|lA(MIA) zmOJx`@xYQQqovpb@1pNE9U?mQeR^#6FiwHdAicPY=@zcNqEc9DEqeWgw?f#azQUTx4aXA_xtz#0~~!+s~y5%0PHEx3@!qKW=mk{=etBU6 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_014_endstream-keyword-missing.pdf b/pdf-handbuilt-test-corpus/T02-05-01_014_endstream-keyword-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d5880da5b79f5db5b613f0f064255ef570265be2 GIT binary patch literal 620 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wn(3{>Tx4aXA_xtz#0~~!+s~y5%0PHExDqI8v&6dE@&v%JzDz>r$Hdcqy zAcx@)WSO}N%WF!fLQ6}qwZL9vmWz=(;=(5&<^lHZ0%|#vl{)CPtgu@X&l*;uG}MD8 z2<^vZTg%cLt%Qj6z=>bKN1~DrWof>b)$OAZMZN|$Kdg*%VRiV)l4aWF^*-6LqK(9} zEVt$jPEQ12IJJ%E-cSjk6c|~yiXT*fdzfK qxC<=wTRfvhUP$f!l9^Hltp~d3dHyA7EEkf{#?2W<0eIfzHTehqADyZI literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_015_invalid-stream-length-in-dictionary.pdf b/pdf-handbuilt-test-corpus/T02-05-01_015_invalid-stream-length-in-dictionary.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a58b55377b5371b02516e0b869328bcb78c68602 GIT binary patch literal 631 zcmZ8fL2kk@5WMdzwueaVp>Z4%pc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%l!zv-@or4;25A&SCU%;eP4 zoz?09vV(rL=@8MW@6%^z5OsYPjBup*~2secB{^Wjd4*+ zsrL8mTW!ZgQTb-q>i=Z*7RX5On}xk7>PEQ529uPR7Zw++PhDMMazKN-!h!(}?g|V2 m7SCCg<=R%SWNwT@?tuoq$i6g{RoSJitLhA+06cH{7XJe@E}l*R literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T02-05-01_017_bytes-between-endstream-endobj.pdf b/pdf-handbuilt-test-corpus/T02-05-01_017_bytes-between-endstream-endobj.pdf new file mode 100644 index 0000000000000000000000000000000000000000..da75f93e3535b2b7e92e515f7c77d426c38f79fb GIT binary patch literal 635 zcmZ8f!ES;;5WUY=Ob;aOp)QMnHZdNsk~VEqquh*#RaT2Zwt+RZ{mCBs2knn^b_qz_ zY+&pj9~1nenGD_nX6%~!yZ&v%JzCU&v{Hc`hy zBZu)AWRcnm!)r@tqLhYUYJt7TG!v0J;nF1_o;8d_p{WN= z;G2)Du9l&|vUK z$*t~$QGx_C!a-Nq#@)nNr!x`cM(sLroJzR`$`#ypVHgDc0Jqp;ocfxD#Tgrr$qS4R x=^igIZ%Fref%$HSr%RFLva~wN84W(hz zWRur7^X9!-XL=vsdYu5A-@or4@X$rQ+93=EAfB?c#D!1LYzZRyd{-!@a;r)ZV|^$r zdN3SVsLU61z3=tick6r5-dv zz(1F5Ev7eGF%j#5W4FFXvQ!l+l5DTa+ea(&Yz<<5SlP-2>v$(i%;e_vce2Bxjl{Dm zw)PF9K9fpol-vW15)h==jXIcY;QB%3xkirjLz_Iky1`@zlLR=Rx&)i7!glj2(out;O(WnhjcHlM#qcH4-xWNYVs4pKZ&RCC(Twq?Gc6EXIecIIp7Pu{*H8RVU hf$C+-}|aVD=Z`~#ESogV-I literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T03_001_no-cross-reference-table.pdf b/pdf-handbuilt-test-corpus/T03_001_no-cross-reference-table.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d99a8c87d2540052a80dd7d836c3be99b5c1de7f GIT binary patch literal 503 zcmYjO!EVAZ488j+yhEk!0BH-9O+p-CRGYSG2zo;t0yV6tG*c2Zwx8T#f53iZaU(h; zE3usC_w1KodY`tUb{B%v@AnTx7@}J35C#JfPepEU5xdfC2_pM^Clph;B?Drt4wc0S zhC`q#uR9pmv`(ca25>Kk7s?AcQb$~bu8>4A_U~dxIU}PEdQAp99{8`p5|wovZh|g9 zE-$qh-e{!`=m$52Fl(8>Ex8G26iP1C^yhcKJi;GQYaPYzLDJ*f-CF zjfK5S&D!a+gWj02bc?9%r4v@mq9hIVhs~6-$Ry75dGSS<_<5zaM@<{(_F@Qv$!iLK D>raUf literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T03_002_xref-keyword-missing.pdf b/pdf-handbuilt-test-corpus/T03_002_xref-keyword-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0da10eef5499ea29754425275e3c23815d7fe322 GIT binary patch literal 627 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2Fq#JiI-N5yOEDD7-!+&B8c}x)E-$!8rA_3(GUsBX1WN@6+{NU_qa* s?*a?`7SCvr7gB@!S!PNZvN+2%`WzZ}OVJKY|;d%m4rY literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T03_003_number-of-entries-missing.pdf b/pdf-handbuilt-test-corpus/T03_003_number-of-entries-missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..367927d829cac6dd74c4de4608c529b873f84b1d GIT binary patch literal 630 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*Rco@ zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmRVh4c}?k5XlV(y7TAl-axqdzT=)dUJiy*vKrLsoQU|@36?Pr*tYIZeLp^AM z(0*LDwJg2SN{HwNPJH(siAvTeOY^;~ZXb;(@-?veVP$F;R)?P~S*C67_Q{SFZ6uy$ zxixPX_bsV1T8cgJ4*K<`Lqw;ZPmlE;Mkz2Fq#JiI-N5yOEDD7-RR->!eQ!x?skFjHqoZiKCVqAlH7gFpi>bgqt(QsjXdDp0OU;yTEv#ZtwyN t`gDUASm?KSMvJ_V8tVULrj$YJfv$X>e@Tp8Ttb_A&M*qV^Cqte`~v{hp-TV& literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T03_004_number-of-entries-too-many.pdf b/pdf-handbuilt-test-corpus/T03_004_number-of-entries-too-many.pdf new file mode 100644 index 0000000000000000000000000000000000000000..37a3688c23ef8d79e0397e214ec9386facb038c2 GIT binary patch literal 631 zcmZ8fL2kk@5WMdzwg;s40JcLCKtdd#M6KGY2y#Ol3^6n)#Fb-I+E4b-AG9CoIuRkl zvJz`DyR$P+Yjz*CMaPHM@89H+LBCVH$(W zt?Gnzgh5lYO!}N)70g7E5xr|9aWZNP90$Pbg<%kM1KeVb3F_+><`=9-{;n|5rz^a| uygpsw73T8>&l;I#%0T(U%(b@YOwgS#(l3Q!m6tTO9MlgyXtk!V5&Q$BWub%s literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T03_005_number-of-entries-too-few.pdf b/pdf-handbuilt-test-corpus/T03_005_number-of-entries-too-few.pdf new file mode 100644 index 0000000000000000000000000000000000000000..58525c5178d6ff466948f8ceea9899d0cce24673 GIT binary patch literal 631 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2Fq#JiI-N5yOEDD7- t1%0~03oP_oJflTkNDc0XnJHz^nxH$M=U)=zIxnG(8#Igp@Vv=u0{@^tp?&}W literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T03_006_offset_missing.pdf b/pdf-handbuilt-test-corpus/T03_006_offset_missing.pdf new file mode 100644 index 0000000000000000000000000000000000000000..46ff5d4017655e81fd016784ac060fcf534f3113 GIT binary patch literal 611 zcmZ8f!A`wNO4TZ4T zY&UP;%$s>rZ*m{s%2o%w-@or4km#dcZV~!@5KmcJ;yhqzx&V=Uz7vXx+E58%r1ynI z34;Mpkya6o*Mv@#AxChrAYLfV)KDLA?lTa{0K0bqr<_u$_hv;Uwrk=^!$}mDb8rP6 z_qaIMa`Z+kW@24%?APC+Dyc$6lI^IxeY7giRv>2krLDSfI`Y_(W4h$^KDOgT8;NHs zHueppo+FjkklKN4pzklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2Fq#JiI-N5yOEDD7-bi&%Y$i618fpBFGJKFvQTH5Lb>-X+PORf6#uUYexi% zWhK^Rc4ucCZ*rHkcsm5|=lAOyIQpoTTZDce*khhmI1dP#E`X&UZxY!=Y-9y&r1qsj z4ub*6GIJG{*OX3#mX=^^fj!GC7ejTxxlcgM1MJ=g)N(2-wbv_IVW%dZG^|8vs0U3D z+K-EKElY2-5+c?ECw~1Nib^_^rTI=)tp_8DdhPl_%e2kweY9gm8;K`b zZp9N|uFa<_~bmBIqYq-9bMWN89{H}D7UEN^1g>ect zx4IKH5k}{lF6m=}buc4AM%3mkiG!AFph&@Q7RFK3iExb##;LDeSe~#h`Mbb)kFM|n u3wm^g|FF-LTYfo%Ty_Y)&kx5EdP`=l}k%#^>NgXIo&))5bU#R)^P?EYmixc5TOsHWE*= z*qc|3hL%(sEyWRd4?VZ(5YlPj(PMjrNdk-p=|??Gc5rA5aq4Rq78h(l{v39$X?#dG y=%5SDAJPr}!ve3xGg@T1)ZqS?g;EBs2fFfQ_9mjmUlw%e*eCIfTNFUwL=&TfIa0|g^Pfo*%Da#`7V)7#a33p#_CWS z_Eqovpb@1XBCT_U>md^*;97^T3dkZ#<;bOYB9vM3Z6|_}SQ|4I)QH-)oH%N^0kRbQW?>vf-3T|>V4U*Wh2 uU_qZoc!7m}i)XaR3#q~VFf*kL+9qh`^ZZLvUCu9|jVm;a0`R=aYXbkG&Y^+; literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_001_EOF-not-standalone.pdf b/pdf-handbuilt-test-corpus/T04_001_EOF-not-standalone.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4f7d8cb444564910deb2af65fecce0fa9a529b8f GIT binary patch literal 630 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2Fq#JiI-N5yOEDD7-d5?yt;I%tY!k&f_T+wrbgz7i-3Tx46%0?Qp=ex&B3m9iJgjg)?kUkQ4g9R z;*ZOw7Sn632@$J-CqeZdsZx7XB-vh&TNOW^(gtpX{(`E%Bm@ zt$V|6pGl>&TJ1r$G4PuXF`aq=J=S{|B_L>!PPdK82Cg4=!w%~u5nK2I81l{>O`_eR*&r4b72aVzo;2(Tqpj`j} literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_003_EOF-incomplete-EO.pdf b/pdf-handbuilt-test-corpus/T04_003_EOF-incomplete-EO.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0074fdf69b1c8d193345e0d68b288529083d66c0 GIT binary patch literal 628 zcmZ8fL2kk@5WMdzwueaV0UU=UPziB>f?Bmz5#)wA7-DEph%3jaw4dyuKcFA!+7Thb zvJz`DyR$QnH+`72csm5|^!M`%9DP))9YVhk>^VzITm%HomcWv)4~c9lwz32^QisAI zhrs}3k-7@Yt4pUsOG~h|z+PpViJ>~;!Y3f+0e0^LYB`goI_R}5u~QK*8djn()Pp7n z?Z;(P%hGGD2@$J-Cw}!Fic&h1CD~qhQBA%e2j_eYRsoYl#9O9!Fabt`bmBH98@PRxd9Ki={Hb)F-rQlbgK+{j zx2hA?5k^f-m-IQoDwvTVBWl}7;;7{YC{pn2g>e*hBHUn&aq4Rq78k5b{;n|Iqbt0^ sf*xJr6&Cspp3x%9rFQ?zOeurb16}z%`<678i%V$Z<_x0%Ja7E=569`DCjbBd literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_004_EOF-incomplete_EOF.pdf b/pdf-handbuilt-test-corpus/T04_004_EOF-incomplete_EOF.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ae3f8c056785c2c5b5f055f20b6ffd9e7d48d4a3 GIT binary patch literal 629 zcmZ8fL2kk@5WMdzwg;s40FFZvsDwB`iCVQ)5#)wA7-DEph%3jaw4dyuKcFA!+7Thb zvJz`DyR$P+Yx)qkc_)C@>F?(kIC`j7JA}ai*mIVaxbO*@ErBIp9}?MAY-I^-tPX`i z4#OeHB6Ss(SC>wOmX=^^fxXH!6C-uRg-1ZdeeB)))N&?EbwMj8%o1w z({5hh%$xVN&g?Gg@U9Qe@89Ujd6h-zBn{*vS&uL{+&) z4xAREkkd#A|loUM{fNdi&9#Y#pywood+$lbOUTrt+jPwboj}VVVdUkKG`v%jl`48 zcls5>fgzQ;km3Nmi>}>t29IM$I0i<8^ujL2Te!ZLS*FmW{Gp00xw^r457QV- zZgnSYA`IG^HtAD>bube_M%1pA#IcZDph&@O7KTC43vi1K#;LDan4hse`MbdQfUfWY z^9FQ<7ntw1c)Ad2CJV4X%v>pr#suB@BK?vym(5EQ+79Xm9yreQCBl7`za``b{sCi` Br1Jm( literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_006_premature-EOF.pdf b/pdf-handbuilt-test-corpus/T04_006_premature-EOF.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eb21b5d94c4d4d72183c95f9b931e0b6cede062e GIT binary patch literal 637 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2FryF-L-N5yOEDD7->kp-i?CJ*7 z9ZXWNLUku>G^4hr%lnjL9nV;h9kp%cany1H6fF47!Z?b$5pJ--IQ6v)%QMy^e-{|< v(?wojL7y)20t@{X&uEbsQiJ<#W=a{fCg|qp`In@*TwX#OH)t3IP^bJ46TqUc literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_007_premature-EOF-only.pdf b/pdf-handbuilt-test-corpus/T04_007_premature-EOF-only.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9489a146ee3ade00d838ab9b921d2b5b2dc41fda GIT binary patch literal 632 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2FryF-L-N5yOEDD7->kp-i?CJ*7 z9ZXWNLUku>G^4hr%lnjL9nV;h9kp%cany1H6fF47!Z?b$5pJ--IQ6v)%QMy^e-{|< t(?wojL7y)20t@{X&uEbsQiJ<#W=a{fCg|qp`In@*TwX#OH)t3I0RQLPp^E?j literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_008_trailer-no-trailer-keyword.pdf b/pdf-handbuilt-test-corpus/T04_008_trailer-no-trailer-keyword.pdf new file mode 100644 index 0000000000000000000000000000000000000000..23124eb013ca8a0fc105333b63d43a1e2e6c4dbe GIT binary patch literal 624 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+BPh(tfgs{-FIx*NzAg zmX%nO*`3*Oyy<;%%R3=>zklC9z|lvw+93=Ez@G9<<02qvwgi@bzDs0Nv6ULwSRG1( z9EL-XW#%d@uPL31N?L-g1@QJqv#%@hKYgmcWP!Dnt z+K9O9!C>o{j(j literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_009_trailer-no-opening-brackets.pdf b/pdf-handbuilt-test-corpus/T04_009_trailer-no-opening-brackets.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ffc55e24fa40ebbd41950da720d315ade36ccf2c GIT binary patch literal 628 zcmZ8eL2kk@5WMdzwueaVq1X;dpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NF%b zmK9r*@y^byH@%N?uo2T=)ddmcWwFcZF;!x2gm-)`!BP zfZ-5SkybApuX#F^Mmd6e3+zRunH=dOE;s>^@UeI2Q^}bs^}(!FiQSrb)^HMqr5e;h z;C?RKT8`dm#YC(dj(L5KWT`5YCD~q;w~tol*&5jVu(Fj4rz1|59McuA_sNbEZ6uym zv9)g)^&P3SM#(*h4)SW#C8S%A(`UVhQ38w_=|&w)HgNr*@?4`!`9qsLy}H3<2a^O` zZgnMWA`IJ_Rnn&f>tM!`jOcAEiK9^)ph$r?3!^aXhPc576I9nNEY4Vu{9Rz8Pb0j* s{63BF0tu_^CqwHKfs}&{{R30 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_010_trailer-no-closing-brackets.pdf b/pdf-handbuilt-test-corpus/T04_010_trailer-no-closing-brackets.pdf new file mode 100644 index 0000000000000000000000000000000000000000..10966ce7ed062f379e84d6b8e65c6ef5e01ece36 GIT binary patch literal 628 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2Fq#JiI-N5yOEDD7-xG}>h0MDDeCjYwNO4W(hT zX*aKL=Dm4aXLc8LWY-7h_wV}$B)V9vb_l~Eh{rT3ap5sEUxJ7~-wDM`ZK(t?DGs?o z38N8Eo>Uc<*ObnbCQGojAf72n)wnp~!et4%2ZQW9eEnbGHvsEpT@DGjl>h> zTl0qDz>-R%N$o*)(XBQg0zUO!eysN}jzO@IUf9KW1K0PIWd+)lKMI{CS2q~%U>bwX zt?q}(}3(R+0Jfl^bkp}z2aKPyov6(6)rA_6|4?J+3=}YtvAEcg* literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_012_trailer-root-no-indirect-reference.pdf b/pdf-handbuilt-test-corpus/T04_012_trailer-root-no-indirect-reference.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8df3b96cf3630b683382e91c80f6c610ba9eaa95 GIT binary patch literal 629 zcmZ8fL2kk@5WMdzwueaV0UU=UPziB>618fpBAOfGV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyxCpS;oT6t-@or4;OL`T?GT1TV2^oL;UXYtz66$jzDr~?v6U6Di8_=9 zIgCai%gj|+UQ;>~T3Ujw1@RR-UDBrn>tH5=jHqoZiKCVqph&@Q7RFK3i*SPt#;LDeSe~&y`MbdQfUfWY s3kGzB7g*@Gct(r7kQ&?%Ggr!>H9=A5Uy{ahaS3hQoM9Az=S^Rde_hR?B>(^b literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_013_trailer-root-invalid-indirect-reference.pdf b/pdf-handbuilt-test-corpus/T04_013_trailer-root-invalid-indirect-reference.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bd105b1677e37418a766f616aa56b70a7a85a485 GIT binary patch literal 628 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmgQLE*`3|lc+>mjmUlw%e*eCIfTNFUwL=&TfIa0|g^Pfo*%Da#`7V)7#a33p#_CWS z_Eqovpb@1XBCT_U>md^*;97^T3dkZ#<;bOYB9vM3Z6|_}SQ|4I)QH-)oH%N^0kRbQW?>vf-3T|>V4U*Wh2c;4hS`3J>mp(g+U literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_014_trailer-root-indirect-reference-to-wrong-object.pdf b/pdf-handbuilt-test-corpus/T04_014_trailer-root-indirect-reference-to-wrong-object.pdf new file mode 100644 index 0000000000000000000000000000000000000000..18caa288c729a17e5c29339575d85a77b766771a GIT binary patch literal 630 zcmZ8fL2kk@5WMdzwueaV0UU=UPziB>618fpBAOfGV2GhXA+8*w(tfgs{-FIx*NzAg zmgQLE*`3|lc(c2t!@D7PzklC9z|lvw+93>wz#j9g!bL#PdE_?!F9$^1AppphZd&AZ{w1j{=a_ZO literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_015_trailer-no-size-key-value-pair.pdf b/pdf-handbuilt-test-corpus/T04_015_trailer-no-size-key-value-pair.pdf new file mode 100644 index 0000000000000000000000000000000000000000..963ceb5ce05ab1679359267c55e23ad6dc0ca3fa GIT binary patch literal 623 zcmZ8fL2kk@5WMdzwueaVq1X;dpc3K$C2G}HMQLt`gCT|ng}8EzN?+MSf6#uU>qLYI z%Sx=t?9R?O-uynk6}q{Q)G|?(KA5$tu-_2R8cw3L)Pp7n z+{a~C%h6k{n2625F>l@zS*aRjX}(w0?W2`Nz6SPoSlQZz(-9|2j_H~=`(($7wi3^( z+}d}HhK^KOqvRe$4|%=m5YlPD>9O9!Bn3u;^rIf88@PT@MWNB9{HaZmUEN^1gINkL zx26-e5r$pOI_Xn_O)yhQM)bCm#L=h?P^7@yg;5yxL)>7C3F_+>mS=20{w^>vq$|9@ o{2^W81s3oQ&l;H*%0T_YBwAZ^CK70ZlE&5(2B8n0H+zl$0hd~zR{#J2 literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_016_trailer-wrong-size-key-value-pair.pdf b/pdf-handbuilt-test-corpus/T04_016_trailer-wrong-size-key-value-pair.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3000b13c79d4ea0b2d22ed91b27dc53b78d49332 GIT binary patch literal 630 zcmZ8fL2kk@5WMdzwueaVp*Rjnpc3K$C2G}HMUWffV2GhXA+8*w(tfgs{-FIx*NzAg zmX%nO*`1wnyy<;%%R3=>zklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2Fq#JiI-N5yOEDD7-%4?EZqP6a!1E@r$v*(0p>+TN literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/T04_017_trailer-no-startxref-keyword.pdf b/pdf-handbuilt-test-corpus/T04_017_trailer-no-startxref-keyword.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8daeb57534746f557693065afe4d4e10a2af8e8c GIT binary patch literal 621 zcmZ8f!A`wNO4W(hT zX*aKL=FNLsXL=vq%8n1t@89^VzITm%HomcWv)4~c9lwz32^R)@kM zhv5)pk-7@Yt4pUsOG~h|z+PpViIFzklC9z|lvw+93=Ez@GA~!bL#PYzZv=e3!_kVk;|PV|6GE zau^OlmYJ)tyry(2w6p|U3+zQ^xfrPb9rWF%Lqw;ZPmlE;Mkz2Fq#JiI-N5yOEDD7-B_P2eA*QlWtW literal 0 HcmV?d00001 diff --git a/pdf-handbuilt-test-corpus/minimal_test.pdf b/pdf-handbuilt-test-corpus/minimal_test.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7524650692b05b7ff758e9321372cb9fcd2ffdcf GIT binary patch literal 15 WcmY!laB