Commit 3d03024ab235cf09517b8b1125093a9062151da2

Authored by Jay Berkenbilt
1 parent d263a049

oss-fuzz initial integration

.gitignore
... ... @@ -13,6 +13,7 @@ doc/qpdf.1
13 13 doc/zlib-flate.1
14 14 examples/build/
15 15 external-libs
  16 +fuzz/build/
16 17 libqpdf.map
17 18 libqpdf.pc
18 19 libqpdf/build/
... ...
ChangeLog
  1 +2019-06-13 Jay Berkenbilt <ejb@ql.org>
  2 +
  3 + * Perform initial integration of Google's oss-fuzz project by
  4 + copying the fuzzer someone from Google already did into the qpdf
  5 + repository and adding build support. This shift in control is in
  6 + preparation for an ideal integration with oss-fuzz.
  7 +
1 8 2019-06-09 Jay Berkenbilt <ejb@ql.org>
2 9  
3 10 * When /DecodeParms is an empty list, ignore it on read and delete
... ...
Makefile
... ... @@ -35,7 +35,7 @@
35 35 # install to install in a separate location. This is useful for
36 36 # packagers.
37 37  
38   -BUILD_ITEMS := manual libqpdf zlib-flate libtests qpdf examples
  38 +BUILD_ITEMS := manual libqpdf zlib-flate libtests qpdf fuzz examples
39 39 OUTPUT_DIR = build
40 40 ALL_TARGETS =
41 41  
... ...
NOTICE.md
... ... @@ -10,6 +10,8 @@ Versions of qpdf prior to version 7 were released under the terms of version 2.0
10 10  
11 11 The qpdf distribution includes a copy of [qtest](http://qtest.qbilt.org), which is released under the terms of the [version 2.0 of the Artistic license](https://opensource.org/licenses/Artistic-2.0), which can be found at https://opensource.org/licenses/Artistic-2.0.
12 12  
  13 +The standalone fuzz target runner (fuzz/standalone_fuzz_target_runner.cc) is copyright 2017 by Google and is also released under the Apache license, Version 2.0.
  14 +
13 15 The Rijndael encryption implementation used as the basis for AES encryption and decryption support comes from Philip J. Erdelsky's public domain implementation. The files `libqpdf/rijndael.cc` and `libqpdf/qpdf/rijndael.h` remain in the public domain. They were obtained from
14 16 * http://www.efgh.com/software/rijndael.htm
15 17 * http://www.efgh.com/software/rijndael.txt
... ...
README-maintainer
... ... @@ -17,6 +17,19 @@ Memory checks:
17 17 LDFLAGS="-fsanitize=address -fsanitize=undefined" \
18 18 --enable-werror --disable-shared
19 19  
  20 +GOOGLE OSS-FUZZ
  21 +
  22 +* https://github.com/google/oss-fuzz/tree/master/projects/qpdf
  23 +* To test locally, see https://github.com/google/oss-fuzz/tree/master/docs/,
  24 + especially new_project_guide.md
  25 +
  26 +Clone the oss-fuzz project. From the root directory of the repository:
  27 +
  28 + python infra/helper.py build_image --pull qpdf
  29 + python infra/helper.py build_fuzzers qpdf
  30 + python infra/helper.py check_build qpdf
  31 + python infra/helper.py build_fuzzers --sanitizer coverage qpdf
  32 + python infra/helper.py coverage qpdf
20 33  
21 34 CODING RULES
22 35  
... ...
autoconf.mk.in
... ... @@ -37,6 +37,7 @@ XMLLINT=@XMLLINT@
37 37 BUILD_HTML=@BUILD_HTML@
38 38 BUILD_PDF=@BUILD_PDF@
39 39 VALIDATE_DOC=@VALIDATE_DOC@
  40 +OSS_FUZZ=@OSS_FUZZ@
40 41 QPDF_SKIP_TEST_COMPARE_IMAGES=@QPDF_SKIP_TEST_COMPARE_IMAGES@
41 42 BUILDRULES=@BUILDRULES@
42 43 HAVE_LD_VERSION_SCRIPT=@HAVE_LD_VERSION_SCRIPT@
... ...
autofiles.sums
1   -ba2adf968b787efe32cd4396a5cfeceeb52d2c48686bdc21a3b03edae169632c configure.ac
  1 +f0057d67ba676a48d07264f6c9a947c59c36dee48dbd6c41903d5f03c586a9cf configure.ac
2 2 35bc5c645dc42d47f2daeea06f8f3e767c8a1aee6a35eb2b4854fd2ce66c3413 m4/ax_random_device.m4
3 3 37f8897d5f68d7d484e5457832a8f190ddb7507fa2a467cb7ee2be40a4364643 m4/libtool.m4
4 4 e77ebba8361b36f14b4d0927173a034b98c5d05049697a9ded84d85eb99a7990 m4/ltoptions.m4
... ...
azure-pipelines.yml
... ... @@ -100,3 +100,11 @@ jobs:
100 100 buildPlatform: AppImage
101 101 dependsOn: Linux
102 102 condition: succeeded()
  103 +- job: Fuzzers
  104 + pool:
  105 + vmImage: ubuntu-16.04
  106 + steps:
  107 + - script: azure-pipelines/build-fuzzer
  108 + displayName: 'Build Fuzzer'
  109 + dependsOn: Linux
  110 + condition: succeeded()
... ...
azure-pipelines/build-fuzzer 0 โ†’ 100755
  1 +#!/bin/bash
  2 +set -ex
  3 +export WORK=$PWD/work
  4 +export OUT=$PWD/out
  5 +mkdir -p $WORK $OUT
  6 +sudo apt-get update
  7 +sudo apt-get -y install \
  8 + autoconf build-essential zlib1g-dev libjpeg-dev
  9 +./fuzz/oss-fuzz-build
  10 +ls -l out/qpdf*fuzzer
  11 +ls -l out/
... ...
configure
... ... @@ -630,6 +630,7 @@ ac_includes_default=&quot;\
630 630  
631 631 ac_subst_vars='LTLIBOBJS
632 632 LIBOBJS
  633 +OSS_FUZZ
633 634 VALIDATE_DOC
634 635 BUILD_PDF
635 636 BUILD_HTML
... ... @@ -774,6 +775,7 @@ enable_doc_maintenance
774 775 enable_html_doc
775 776 enable_pdf_doc
776 777 enable_validate_doc
  778 +enable_oss_fuzz
777 779 '
778 780 ac_precious_vars='build_alias
779 781 host_alias
... ... @@ -1449,6 +1451,8 @@ Optional Features:
1449 1451 --enable-html-doc whether to build HTML documents
1450 1452 --enable-pdf-doc whether to build PDF documents
1451 1453 --enable-validate-doc whether to validate xml document source
  1454 + --enable-doc-maintenance
  1455 + if set, build static fuzzers for oss-fuzz
1452 1456  
1453 1457 Optional Packages:
1454 1458 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
... ... @@ -16924,6 +16928,19 @@ else
16924 16928 fi
16925 16929  
16926 16930  
  16931 +
  16932 +# Check whether --enable-oss-fuzz was given.
  16933 +if test "${enable_oss_fuzz+set}" = set; then :
  16934 + enableval=$enable_oss_fuzz; if test "$enableval" = "yes"; then
  16935 + OSS_FUZZ=1;
  16936 + else
  16937 + OSS_FUZZ=0;
  16938 + fi
  16939 +else
  16940 + OSS_FUZZ=0
  16941 +fi
  16942 +
  16943 +
16927 16944 if test "$VALIDATE_DOC" = "1"; then
16928 16945 if test "$XMLLINT" = ""; then
16929 16946 MISSING_XMLLINT=1
... ...
configure.ac
... ... @@ -501,6 +501,17 @@ AC_ARG_ENABLE(validate-doc,
501 501 fi],
502 502 [VALIDATE_DOC=$doc_default])
503 503  
  504 +AC_SUBST(OSS_FUZZ)
  505 +AC_ARG_ENABLE(oss-fuzz,
  506 + AS_HELP_STRING([--enable-doc-maintenance],
  507 + [if set, build static fuzzers for oss-fuzz]),
  508 + [if test "$enableval" = "yes"; then
  509 + OSS_FUZZ=1;
  510 + else
  511 + OSS_FUZZ=0;
  512 + fi],
  513 + [OSS_FUZZ=0])
  514 +
504 515 if test "$VALIDATE_DOC" = "1"; then
505 516 if test "$XMLLINT" = ""; then
506 517 MISSING_XMLLINT=1
... ...
fuzz/Makefile 0 โ†’ 100644
  1 +include ../make/proxy.mk
... ...
fuzz/README.md 0 โ†’ 100644
  1 +pdf.dict was copied from https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/pdf.dict
... ...
fuzz/build.mk 0 โ†’ 100644
  1 +# This directory contains support for Google's oss-fuzz project. See
  2 +# https://github.com/google/oss-fuzz/tree/master/projects/qpdf
  3 +
  4 +FUZZERS = \
  5 + qpdf_read_memory_fuzzer
  6 +
  7 +DEFAULT_FUZZ_RUNNER := standalone_fuzz_target_runner
  8 +OBJ_DEFAULT_FUZZ := fuzz/$(OUTPUT_DIR)/$(DEFAULT_FUZZ_RUNNER).$(OBJ)
  9 +
  10 +BINS_fuzz = $(foreach B,$(FUZZERS),fuzz/$(OUTPUT_DIR)/$(call binname,$(B)))
  11 +TARGETS_fuzz = $(OBJ_DEFAULT_FUZZ) $(BINS_fuzz)
  12 +
  13 +INCLUDES_fuzz = include
  14 +
  15 +# LIB_FUZZING_ENGINE is overridden by oss-fuzz
  16 +LIB_FUZZING_ENGINE ?= $(OBJ_DEFAULT_FUZZ)
  17 +
  18 +# Depend on OBJ_DEFAULT_FUZZ to ensure that it is always compiled.
  19 +# Don't depend on LIB_FUZZING_ENGINE, which we can't build. When used
  20 +# by oss-fuzz, it will be there.
  21 +$(BINS_fuzz): $(TARGETS_libqpdf) $(OBJ_DEFAULT_FUZZ)
  22 +
  23 +# -----
  24 +
  25 +$(foreach B,$(FUZZERS),$(eval \
  26 + OBJS_$(B) = $(call src_to_obj,fuzz/$(B).cc)))
  27 +
  28 +ifeq ($(GENDEPS),1)
  29 +-include $(foreach B,$(FUZZERS),$(call obj_to_dep,$(OBJS_$(B))))
  30 +endif
  31 +
  32 +$(foreach B,$(DEFAULT_FUZZ_RUNNER),$(eval \
  33 + fuzz/$(OUTPUT_DIR)/%.$(OBJ): fuzz/$(B).cc ; \
  34 + $(call compile,fuzz/$(B).cc,$(INCLUDES_fuzz))))
  35 +
  36 +$(foreach B,$(FUZZERS),$(eval \
  37 + $(OBJS_$(B)): fuzz/$(OUTPUT_DIR)/%.$(OBJ): fuzz/$(B).cc ; \
  38 + $(call compile,fuzz/$(B).cc,$(INCLUDES_fuzz))))
  39 +
  40 +ifeq ($(suffix $(LIB_FUZZING_ENGINE)),.$(OBJ))
  41 + FUZZ_as_obj := $(LIB_FUZZING_ENGINE)
  42 + FUZZ_as_lib :=
  43 +else
  44 + FUZZ_as_obj :=
  45 + FUZZ_as_lib := $(LIB_FUZZING_ENGINE)
  46 +endif
  47 +
  48 +$(foreach B,$(FUZZERS),$(eval \
  49 + fuzz/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \
  50 + $(call makebin,$(OBJS_$(B)) $(FUZZ_as_obj),$$@,$(LDFLAGS_libqpdf) $(LDFLAGS),$(FUZZ_as_lib) $(LIBS_libqpdf) $(LIBS))))
  51 +
  52 +ifeq ($(OSS_FUZZ),1)
  53 +
  54 +# Build fuzzers linked with static libraries and installed into a
  55 +# location provided by oss-fuzz. This is specifically to support the
  56 +# oss-fuzz project. These rules won't on systems that don't allow main
  57 +# to be in a library or don't name their libraries libsomething.a.
  58 +
  59 +STATIC_BINS_fuzz := $(foreach B,$(FUZZERS),fuzz/$(OUTPUT_DIR)/static/$(call binname,$(B)))
  60 +$(STATIC_BINS_fuzz): $(TARGETS_libqpdf) $(OBJ_DEFAULT_FUZZ)
  61 +
  62 +# OUT is provided in the oss-fuzz environment
  63 +OUT ?= $(CURDIR)/fuzz/$(OUTPUT_DIR)/fuzz-install
  64 +
  65 +# These are not fully static, but they statically link with qpdf and
  66 +# our external dependencies other than system libraries.
  67 +$(foreach B,$(FUZZERS),$(eval \
  68 + fuzz/$(OUTPUT_DIR)/static/$(call binname,$(B)): $(OBJS_$(B)) ; \
  69 + $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS_libqpdf) $(LDFLAGS),$(LIB_FUZZING_ENGINE) $(patsubst -l%,-l:lib%.a,$(LIBS_libqpdf) $(LIBS)))))
  70 +
  71 +# The install_fuzz target is used by build.sh in oss-fuzz's qpdf project.
  72 +install_fuzz: $(STATIC_BINS_fuzz)
  73 + mkdir -p $(OUT)
  74 + cp fuzz/pdf.dict $(STATIC_BINS_fuzz) $(OUT)/
  75 + for B in $(FUZZERS); do \
  76 + cp fuzz/options $(OUT)/$${B}.options; \
  77 + if test -d fuzz/$${B}_seed_corpus; then \
  78 + (cd fuzz/$${B}_seed_corpus; zip -q -r $(OUT)/$${B}_seed_corpus.zip .); \
  79 + fi; \
  80 + done
  81 +
  82 +endif # OSS_FUZZ
... ...
fuzz/options 0 โ†’ 100644
  1 +[libfuzzer]
  2 +dict = pdf.dict
... ...
fuzz/oss-fuzz-build 0 โ†’ 100755
  1 +#!/bin/bash -e
  2 +
  3 +# This is used invoked from
  4 +# https://github.com/google/oss-fuzz/blob/master/projects/qpdf/build.sh
  5 +
  6 +# It should be run from the top level directory of a clean checkout of
  7 +# qpdf. It is also exercised in ../azure-pipelines/build-fuzzer
  8 +
  9 +./configure \
  10 + --enable-oss-fuzz \
  11 + --enable-static \
  12 + --disable-shared \
  13 + --prefix="$WORK" \
  14 + LDFLAGS="-L$WORK/lib" \
  15 + CPPFLAGS="-I$WORK/include" \
  16 + LIBS="-pthread"
  17 +make -j$(nproc) install
  18 +make install_fuzz
... ...
fuzz/pdf.dict 0 โ†’ 100644
  1 +#
  2 +# AFL dictionary for PDF
  3 +# ----------------------
  4 +#
  5 +# This is a pretty big PDF dictionary constructed by Ben by manually reviewing
  6 +# the spec and combining that with the data pulled out of a corpus of sample
  7 +# PDFs.
  8 +#
  9 +# Contributed by Ben Nagy <ben@iagu.net>
  10 +#
  11 +
  12 +"#"
  13 +"%"
  14 +"%%"
  15 +"%%EOF"
  16 +"%FDF-1.7"
  17 +"%PDF-1.7"
  18 +"("
  19 +"(/xdp:xdp)"
  20 +"(\\001)"
  21 +"(config)"
  22 +"(datasets)"
  23 +"(template)"
  24 +"(xdp:xdp)"
  25 +")"
  26 +"-1"
  27 +"-1.0"
  28 +".."
  29 +"/"
  30 +"/#23clipboard"
  31 +"/.notdef"
  32 +"/1"
  33 +"/1.0"
  34 +"/1.3"
  35 +"/3D"
  36 +"/3DA"
  37 +"/3DAnimationStyle"
  38 +"/3DB"
  39 +"/3DD"
  40 +"/3DI"
  41 +"/3DLightingScheme"
  42 +"/3DRenderMode"
  43 +"/3DV"
  44 +"/3DView"
  45 +"/90pv-RKSJ-H"
  46 +"/A"
  47 +"/A0"
  48 +"/A85"
  49 +"/AA"
  50 +"/AAIC"
  51 +"/AAPL"
  52 +"/ABCDEF+ACaslonPro-Regular"
  53 +"/ABCDEF+AJensonPro-LtIt"
  54 +"/ABCDEF+AdobeCorpID-MinionRg"
  55 +"/ABCDEF+Arial,Bold"
  56 +"/ABCDEF+BankGothicMdBT"
  57 +"/ABCDEF+Bauhaus-Heavy"
  58 +"/ABCDEF+BluesClues"
  59 +"/ABCDEF+BodegaSans"
  60 +"/ABCDEF+BodoniMTCondensed"
  61 +"/ABCDEF+BookAntiqua"
  62 +"/ABCDEF+CMBX10"
  63 +"/ABCDEF+CaflischScriptPro-Regular"
  64 +"/ABCDEF+CityBlueprint"
  65 +"/ABCDEF+CourierNewPSMT"
  66 +"/ABCDEF+FixedsysExcelsior2.00"
  67 +"/ABCDEF+MSTT31854bd45bo188067S00"
  68 +"/ABCDEF+MinionPro-BoldCnIt"
  69 +"/ABCDEF+MyriadMM-It_400_300_"
  70 +"/ABCDEF+Wingdings"
  71 +"/ABCDEF+ZapfDingbats"
  72 +"/AC"
  73 +"/ADBE"
  74 +"/ADB_DEVICE_DEFAULT_STYLE"
  75 +"/ADB_DefaultStyle"
  76 +"/ADB_NO_TRAP_STYLE"
  77 +"/AE"
  78 +"/AESV2"
  79 +"/AGaramond"
  80 +"/AH"
  81 +"/AI8DstIndex"
  82 +"/AI8SrcIndex"
  83 +"/AIMetaData"
  84 +"/AIPDFPrivateData1"
  85 +"/AIS"
  86 +"/AL"
  87 +"/AN"
  88 +"/AP"
  89 +"/AS"
  90 +"/ASCII85Decode"
  91 +"/ASCIIHexDecode"
  92 +"/ASomewhatLongerName"
  93 +"/AU"
  94 +"/Aacute"
  95 +"/Acc.#20Prod.#202501#20#2F2#20#20"
  96 +"/Accounts#20payable"
  97 +"/AccurateScreens"
  98 +"/Acircumflex"
  99 +"/AcroForm"
  100 +"/Action"
  101 +"/Actual"
  102 +"/Add"
  103 +"/Adieresis"
  104 +"/Adobe"
  105 +"/Adobe#20PDF#20Library"
  106 +"/Adobe.PPKLite"
  107 +"/AdobeCorpID-Acrobat"
  108 +"/AdobeCorpID-MinionRg"
  109 +"/AdobePhotoshop"
  110 +"/Agrave"
  111 +"/All"
  112 +"/AllKO"
  113 +"/AllOn"
  114 +"/Alt"
  115 +"/Alternate"
  116 +"/AlternatePresentations"
  117 +"/Alternates"
  118 +"/Amex"
  119 +"/And"
  120 +"/Angle"
  121 +"/Annot"
  122 +"/Annots"
  123 +"/AntiAlias"
  124 +"/AnyOn"
  125 +"/Apag_PDFX_Checkup"
  126 +"/App"
  127 +"/Architecture-Normal"
  128 +"/Arial"
  129 +"/Aring"
  130 +"/Art"
  131 +"/ArtBox"
  132 +"/Article"
  133 +"/Artifact"
  134 +"/Artwork"
  135 +"/Ascent"
  136 +"/Aspect"
  137 +"/Assistant"
  138 +"/Atilde"
  139 +"/AuthEvent"
  140 +"/Author"
  141 +"/Avenir-Heavy"
  142 +"/Avenir-MediumOblique"
  143 +"/AvgWidth"
  144 +"/BBox"
  145 +"/BC"
  146 +"/BCL"
  147 +"/BDC"
  148 +"/BDL"
  149 +"/BE"
  150 +"/BFSOL"
  151 +"/BG"
  152 +"/BG2"
  153 +"/BM"
  154 +"/BMC"
  155 +"/BS"
  156 +"/BW"
  157 +"/Bank"
  158 +"/BaseEncoding"
  159 +"/BaseFont"
  160 +"/BaseState"
  161 +"/BaseVersion"
  162 +"/Birch"
  163 +"/BitsPerComponent"
  164 +"/BitsPerCoordinate"
  165 +"/BitsPerFlag"
  166 +"/BitsPerSample"
  167 +"/Bl"
  168 +"/BlCDel"
  169 +"/BlMiNu"
  170 +"/Black"
  171 +"/BlackIs1"
  172 +"/BlackOP"
  173 +"/BlackPoint"
  174 +"/BleedBox"
  175 +"/Blend"
  176 +"/Block"
  177 +"/Blue"
  178 +"/BluesClues"
  179 +"/Bookshelf"
  180 +"/Border"
  181 +"/Bounds"
  182 +"/BoxColorInfo"
  183 +"/Btn"
  184 +"/BulmerMT-BoldDisplay"
  185 +"/ByteRange"
  186 +"/C"
  187 +"/C0"
  188 +"/C0_0"
  189 +"/C1"
  190 +"/C2W"
  191 +"/C3"
  192 +"/CALS_AIS"
  193 +"/CALS_BM"
  194 +"/CALS_HT"
  195 +"/CALS_SMASK"
  196 +"/CALS_ca"
  197 +"/CAM"
  198 +"/CB"
  199 +"/CC"
  200 +"/CCH"
  201 +"/CCITTFaxDecode"
  202 +"/CD"
  203 +"/CDL"
  204 +"/CEN"
  205 +"/CF"
  206 +"/CFM"
  207 +"/CI"
  208 +"/CIDFontType0"
  209 +"/CIDFontType0C"
  210 +"/CIDFontType2"
  211 +"/CIDInit"
  212 +"/CIDSet"
  213 +"/CIDSystemInfo"
  214 +"/CIDToGIDMap"
  215 +"/CMV_LabBar"
  216 +"/CMV_LabControl"
  217 +"/CMYK"
  218 +"/CMYK#20#2880,#208,#2034,#200#29"
  219 +"/CMap"
  220 +"/CMapName"
  221 +"/CMapType"
  222 +"/CMapVersion"
  223 +"/CO"
  224 +"/CP"
  225 +"/CS"
  226 +"/CS0"
  227 +"/CT"
  228 +"/CV"
  229 +"/CalGray"
  230 +"/CalRGB"
  231 +"/CapHeight"
  232 +"/Caption"
  233 +"/Caslon540BT-Roman"
  234 +"/CaslonBT-Bold"
  235 +"/CaslonBT-BoldItalic"
  236 +"/Catalog"
  237 +"/Category"
  238 +"/Ccedilla"
  239 +"/CenturySchoolbookBT-Roman"
  240 +"/Ch"
  241 +"/Chair"
  242 +"/Chap"
  243 +"/Chaparral-Display"
  244 +"/CharProcs"
  245 +"/CharSet"
  246 +"/CheckSum"
  247 +"/Circle"
  248 +"/ClarendonBT-Black"
  249 +"/ClassMap"
  250 +"/Clearface-Black"
  251 +"/Clip"
  252 +"/ClippedText"
  253 +"/Cn"
  254 +"/Collection"
  255 +"/CollectionItem"
  256 +"/CollectionSchema"
  257 +"/CollectionSubitem"
  258 +"/Color"
  259 +"/ColorBurn"
  260 +"/ColorDodge"
  261 +"/ColorMatch"
  262 +"/ColorSpace"
  263 +"/ColorTransform"
  264 +"/ColorType"
  265 +"/Colorants"
  266 +"/Colors"
  267 +"/Columns"
  268 +"/ComicSansMS,Bold"
  269 +"/Comment"
  270 +"/Comments"
  271 +"/Company"
  272 +"/Compatibility"
  273 +"/Compatible"
  274 +"/Components"
  275 +"/CompressArt"
  276 +"/Condensed"
  277 +"/Configs"
  278 +"/Consultant"
  279 +"/ContainerVersion"
  280 +"/Contents"
  281 +"/Coords"
  282 +"/Copy"
  283 +"/Copy#20center"
  284 +"/Cor"
  285 +"/Corner#20surface"
  286 +"/CosineDot"
  287 +"/Count"
  288 +"/Cour"
  289 +"/Courier"
  290 +"/Create"
  291 +"/CreationDate"
  292 +"/Creator"
  293 +"/CreatorInfo"
  294 +"/CreatorVersion"
  295 +"/CropBox"
  296 +"/CropFixed"
  297 +"/CropRect"
  298 +"/Crypt"
  299 +"/CryptFilter"
  300 +"/CryptFilterDecodeParms"
  301 +"/Cs12"
  302 +"/Cs3"
  303 +"/Cyan"
  304 +"/D"
  305 +"/DA"
  306 +"/DCTDecode"
  307 +"/DIC#202525p*"
  308 +"/DIS"
  309 +"/DL"
  310 +"/DOS"
  311 +"/DP"
  312 +"/DR"
  313 +"/DS"
  314 +"/DSz"
  315 +"/DV"
  316 +"/DW"
  317 +"/DamagedRowsBeforeError"
  318 +"/Darken"
  319 +"/Data"
  320 +"/Date"
  321 +"/Decode"
  322 +"/DecodeParms"
  323 +"/DefEmbeddedFile"
  324 +"/Default"
  325 +"/DefaultCryptFilter"
  326 +"/DefaultForPrinting"
  327 +"/DefaultRGB"
  328 +"/Delete"
  329 +"/Delta"
  330 +"/DescendantFonts"
  331 +"/Descent"
  332 +"/Description"
  333 +"/Design"
  334 +"/Dest"
  335 +"/DestOutputProfile"
  336 +"/DestOutputProfileRef"
  337 +"/Dests"
  338 +"/DeviceCMYK"
  339 +"/DeviceGray"
  340 +"/DeviceN"
  341 +"/DeviceRGB"
  342 +"/Difference"
  343 +"/Differences"
  344 +"/DigestLocation"
  345 +"/DigestMethod"
  346 +"/DigestValue"
  347 +"/Dimmed"
  348 +"/Direction"
  349 +"/DisplayDocTitle"
  350 +"/Dissolve"
  351 +"/Div"
  352 +"/Dm"
  353 +"/DocMDP"
  354 +"/DocOpen"
  355 +"/Document"
  356 +"/Documents"
  357 +"/Domain"
  358 +"/Door"
  359 +"/DotGain"
  360 +"/Draw"
  361 +"/Dt"
  362 +"/Dur"
  363 +"/Dynamic#20connector"
  364 +"/E"
  365 +"/EF"
  366 +"/EFF"
  367 +"/EMC"
  368 +"/Eacute"
  369 +"/EarlyChange"
  370 +"/Ecircumflex"
  371 +"/Edieresis"
  372 +"/Editable"
  373 +"/Egrave"
  374 +"/EmbedFonts"
  375 +"/EmbedICCProfile"
  376 +"/Embedded"
  377 +"/EmbeddedFile"
  378 +"/EmbeddedFiles"
  379 +"/Encode"
  380 +"/EncodedByteAlign"
  381 +"/Encoding"
  382 +"/Encrypt"
  383 +"/EncryptMetadata"
  384 +"/EndIndent"
  385 +"/EndOfBlock"
  386 +"/EndOfLine"
  387 +"/Euro"
  388 +"/Euro.037"
  389 +"/Event"
  390 +"/ExData"
  391 +"/Exchange-Pro"
  392 +"/Exclude"
  393 +"/Exclusion"
  394 +"/Executive"
  395 +"/Export"
  396 +"/ExportCrispy"
  397 +"/ExportState"
  398 +"/ExtGState"
  399 +"/Extend"
  400 +"/Extends"
  401 +"/ExtensionLevel"
  402 +"/Extensions"
  403 +"/F1"
  404 +"/F1.0"
  405 +"/F12"
  406 +"/F13"
  407 +"/F3"
  408 +"/F5"
  409 +"/F6"
  410 +"/F7"
  411 +"/F8"
  412 +"/FB"
  413 +"/FD"
  414 +"/FDecodeParms"
  415 +"/FFilter"
  416 +"/FICL"
  417 +"/FM"
  418 +"/FOV"
  419 +"/FRM"
  420 +"/FS"
  421 +"/FT"
  422 +"/Facilities"
  423 +"/Fade"
  424 +"/False"
  425 +"/Feature"
  426 +"/FedEx#20Orange"
  427 +"/FedEx#20Purple"
  428 +"/Field"
  429 +"/Fields"
  430 +"/Figure"
  431 +"/File"
  432 +"/Files"
  433 +"/Filespec"
  434 +"/FillIn"
  435 +"/Filter"
  436 +"/First"
  437 +"/FirstChar"
  438 +"/FirstPage"
  439 +"/Fit"
  440 +"/FitB"
  441 +"/FitBH"
  442 +"/FitBV"
  443 +"/FitH"
  444 +"/FitR"
  445 +"/FitV"
  446 +"/FitWindow"
  447 +"/FixedPrint"
  448 +"/Flags"
  449 +"/FlateDecode"
  450 +"/Fm0"
  451 +"/Fm4"
  452 +"/Fo"
  453 +"/Focoltone#201047"
  454 +"/Font"
  455 +"/FontBBox"
  456 +"/FontDescriptor"
  457 +"/FontFamily"
  458 +"/FontFile"
  459 +"/FontFile2"
  460 +"/FontMatrix"
  461 +"/FontName"
  462 +"/FontStretch"
  463 +"/FontWeight"
  464 +"/Form"
  465 +"/FormEx"
  466 +"/FormType"
  467 +"/FreeText"
  468 +"/FreeTextCallout"
  469 +"/Frequency"
  470 +"/FullSave"
  471 +"/FullScreen"
  472 +"/Function"
  473 +"/FunctionType"
  474 +"/Functions"
  475 +"/Futura-Bold"
  476 +"/Futura-CondensedExtraBold"
  477 +"/G"
  478 +"/G02"
  479 +"/GLGR"
  480 +"/GS0"
  481 +"/GS1"
  482 +"/GS2"
  483 +"/GTS"
  484 +"/GTS_PDFA1"
  485 +"/GTS_PDFX"
  486 +"/GTS_PDFXConformance"
  487 +"/GTS_PDFXVersion"
  488 +"/GWG#20Green"
  489 +"/Gamma"
  490 +"/Garamond"
  491 +"/Georgia,Bold"
  492 +"/GoTo"
  493 +"/GoTo3DView"
  494 +"/GoToE"
  495 +"/GoToR"
  496 +"/Gold"
  497 +"/Goudy"
  498 +"/Gray"
  499 +"/Green"
  500 +"/GreymantleMVB"
  501 +"/GrotesqueMT"
  502 +"/Group"
  503 +"/H"
  504 +"/HDAG_Tools"
  505 +"/HKana"
  506 +"/HT"
  507 +"/HT2"
  508 +"/Halftone"
  509 +"/HalftoneName"
  510 +"/HalftoneType"
  511 +"/HardLight"
  512 +"/HeBo"
  513 +"/Head1"
  514 +"/Headlamp"
  515 +"/Height"
  516 +"/HeiseiMin"
  517 +"/Helv"
  518 +"/Helvetica"
  519 +"/Helvetica-Bold"
  520 +"/Helvetica-BoldOblique"
  521 +"/Helvetica-Condensed"
  522 +"/HelveticaNeue-Black"
  523 +"/Hide"
  524 +"/HonMincho-M"
  525 +"/Horizontal"
  526 +"/Hue"
  527 +"/I"
  528 +"/I0"
  529 +"/IC"
  530 +"/ICCBased"
  531 +"/ICCVersion"
  532 +"/ID"
  533 +"/IDS"
  534 +"/IDTree"
  535 +"/IEC"
  536 +"/IF"
  537 +"/IN"
  538 +"/ISO32000Registry"
  539 +"/ISO_PDFE1"
  540 +"/ISO_PDFEVersion"
  541 +"/IT"
  542 +"/ITO"
  543 +"/ITP"
  544 +"/IV"
  545 +"/IX"
  546 +"/Icircumflex"
  547 +"/Icon"
  548 +"/Identity"
  549 +"/Identity-H"
  550 +"/IgnEP"
  551 +"/Illustrator"
  552 +"/Illustrator8.0"
  553 +"/Im0"
  554 +"/Im1"
  555 +"/Im2"
  556 +"/Im3"
  557 +"/Im4"
  558 +"/Image"
  559 +"/Image1"
  560 +"/ImageB"
  561 +"/ImageC"
  562 +"/ImageI"
  563 +"/ImageMask"
  564 +"/ImageResources"
  565 +"/ImageType"
  566 +"/Import"
  567 +"/ImportData"
  568 +"/ImpressBT-Regular"
  569 +"/Index"
  570 +"/Indexed"
  571 +"/Info"
  572 +"/Information#20services"
  573 +"/Ink"
  574 +"/InkList"
  575 +"/InsertPages"
  576 +"/Insignia"
  577 +"/IntegerItem"
  578 +"/Intent"
  579 +"/Interpolate"
  580 +"/ItalicAngle"
  581 +"/ItcKabel-Ultra"
  582 +"/Item1"
  583 +"/Item2"
  584 +"/JBIG2Decode"
  585 +"/JBIG2Globals"
  586 +"/JPXDecode"
  587 +"/JS"
  588 +"/JT"
  589 +"/JTC"
  590 +"/JTF"
  591 +"/JTFile"
  592 +"/JTM"
  593 +"/JavaScript"
  594 +"/JobTicketContents"
  595 +"/Justify"
  596 +"/Keywords"
  597 +"/Kids"
  598 +"/L"
  599 +"/L1"
  600 +"/L1a"
  601 +"/L1b"
  602 +"/L2R"
  603 +"/L50188"
  604 +"/LBody"
  605 +"/LI"
  606 +"/LL"
  607 +"/LLE"
  608 +"/LLO"
  609 +"/LS"
  610 +"/LSP"
  611 +"/LZW"
  612 +"/LZWDecode"
  613 +"/Lab"
  614 +"/Lang"
  615 +"/Last"
  616 +"/LastChar"
  617 +"/LastItem"
  618 +"/LastModified"
  619 +"/Lateral#20file"
  620 +"/Launch"
  621 +"/Layout"
  622 +"/Lbl"
  623 +"/Leading"
  624 +"/Legal"
  625 +"/Length"
  626 +"/Length1"
  627 +"/Length2"
  628 +"/Length3"
  629 +"/LetterspaceFlags"
  630 +"/Lighten"
  631 +"/Limits"
  632 +"/Line"
  633 +"/LineDimension"
  634 +"/LineHeight"
  635 +"/Linear"
  636 +"/Linearized"
  637 +"/Link"
  638 +"/Locked"
  639 +"/LogoGreen"
  640 +"/LrTb"
  641 +"/Lslash"
  642 +"/Luminosity"
  643 +"/M"
  644 +"/MB"
  645 +"/MC"
  646 +"/MC0"
  647 +"/MCD"
  648 +"/MCID"
  649 +"/MCR"
  650 +"/MD5"
  651 +"/MH"
  652 +"/MIT"
  653 +"/MK"
  654 +"/MMType1"
  655 +"/MP"
  656 +"/MR"
  657 +"/MS"
  658 +"/MUX#20#2F#20DEMUX"
  659 +"/Mac"
  660 +"/MacRomanEncoding"
  661 +"/Magenta"
  662 +"/Manager"
  663 +"/MarkInfo"
  664 +"/Marked"
  665 +"/MarkedPDF"
  666 +"/Marker#20board"
  667 +"/Markup3D"
  668 +"/Mask"
  669 +"/Mastercard"
  670 +"/Matrix"
  671 +"/Max"
  672 +"/MaxLen"
  673 +"/MaxWidth"
  674 +"/Me"
  675 +"/Measure"
  676 +"/MediaBox"
  677 +"/MetaData"
  678 +"/Min"
  679 +"/MinionMM"
  680 +"/MissingWidth"
  681 +"/MixedContainer"
  682 +"/MixingHints"
  683 +"/ModDate"
  684 +"/Mode"
  685 +"/Modify"
  686 +"/Movie"
  687 +"/Msg"
  688 +"/MurrayHillBT-Bold"
  689 +"/MxGeom"
  690 +"/MxLaNu"
  691 +"/MxPts"
  692 +"/MyriadPro-Black"
  693 +"/NA"
  694 +"/NChannel"
  695 +"/ND"
  696 +"/NL"
  697 +"/NM"
  698 +"/NR"
  699 +"/Name"
  700 +"/Name1"
  701 +"/Named"
  702 +"/Names"
  703 +"/NeedsRendering"
  704 +"/NewCenturySchlbk-Italic"
  705 +"/NewWindow"
  706 +"/Next"
  707 +"/NextPage"
  708 +"/No"
  709 +"/NonEFontNoWarn"
  710 +"/NonStruct"
  711 +"/None"
  712 +"/Normal"
  713 +"/Not"
  714 +"/NotDefSpecial"
  715 +"/NumBlock"
  716 +"/Nums"
  717 +"/OB"
  718 +"/OBJR"
  719 +"/OC"
  720 +"/OC2"
  721 +"/OC3"
  722 +"/OC4"
  723 +"/OCG"
  724 +"/OCGs"
  725 +"/OCL"
  726 +"/OCMD"
  727 +"/OCProperties"
  728 +"/OE"
  729 +"/OFF"
  730 +"/OLN"
  731 +"/ON"
  732 +"/OOL"
  733 +"/OPBG"
  734 +"/OPBS"
  735 +"/OPI"
  736 +"/OPM"
  737 +"/OS"
  738 +"/OT"
  739 +"/Oacute"
  740 +"/Obj"
  741 +"/ObjStm"
  742 +"/Ocircumflex"
  743 +"/Odieresis"
  744 +"/Ograve"
  745 +"/Omega"
  746 +"/OneColumn"
  747 +"/Online"
  748 +"/Open"
  749 +"/OpenAction"
  750 +"/Operation"
  751 +"/Opt"
  752 +"/OptionSet"
  753 +"/Options"
  754 +"/Or"
  755 +"/Orange"
  756 +"/Order"
  757 +"/Ordering"
  758 +"/OriginalLayerName"
  759 +"/Oslash"
  760 +"/Otilde"
  761 +"/Outlines"
  762 +"/OutputCondition"
  763 +"/OutputConditionIdentifier"
  764 +"/OutputIntent"
  765 +"/OutputIntents"
  766 +"/Overlay"
  767 +"/P0"
  768 +"/P1"
  769 +"/P2"
  770 +"/P2,#2300ff007900000000,PANTONE#20151#20C"
  771 +"/PANTONE"
  772 +"/PANTONE#20158-5#20CVS"
  773 +"/PANTONE#20221#20CVU"
  774 +"/PANTONE#203405#20C"
  775 +"/PANTONE#20399#20CVC"
  776 +"/PANTONE#20Blue#20072#20C"
  777 +"/PANTONE#20Orange#20021#20C"
  778 +"/PANTONE#20Orange#20021#20CVC"
  779 +"/PANTONE#20Yellow#20C"
  780 +"/PC"
  781 +"/PDFDocEncoding"
  782 +"/PIX"
  783 +"/PO"
  784 +"/PS"
  785 +"/PUBLISHER"
  786 +"/PZ"
  787 +"/Pa0"
  788 +"/Page"
  789 +"/PageElement"
  790 +"/PageLabels"
  791 +"/PageLayout"
  792 +"/PageMode"
  793 +"/PageRange"
  794 +"/Pages"
  795 +"/PaintType"
  796 +"/Palatino,Bold"
  797 +"/Pale#20Brown.c"
  798 +"/Panose"
  799 +"/Paper#20tray"
  800 +"/Para"
  801 +"/Params"
  802 +"/Parent"
  803 +"/ParentTree"
  804 +"/ParentTreeNextKey"
  805 +"/Part"
  806 +"/Pattern"
  807 +"/PatternType"
  808 +"/PcZ"
  809 +"/Perceptual"
  810 +"/Perms"
  811 +"/Pg"
  812 +"/Pgf"
  813 +"/PieceInfo"
  814 +"/PitStop"
  815 +"/Placement"
  816 +"/Play"
  817 +"/Polygon"
  818 +"/PolygonCloud"
  819 +"/Popup"
  820 +"/Position"
  821 +"/PowerUpPDF"
  822 +"/PrOut"
  823 +"/PrRGBGra"
  824 +"/PrRGBIma"
  825 +"/Predictor"
  826 +"/PresSteps"
  827 +"/PreserveRB"
  828 +"/Prev"
  829 +"/PrevPage"
  830 +"/Preview"
  831 +"/Print"
  832 +"/PrintRecord"
  833 +"/PrintScaling"
  834 +"/PrintState"
  835 +"/PrintStyle"
  836 +"/Printed"
  837 +"/PrintingOrder"
  838 +"/Private"
  839 +"/ProcSet"
  840 +"/Process"
  841 +"/ProcessBlue"
  842 +"/ProcessGreen"
  843 +"/ProcessRed"
  844 +"/Producer"
  845 +"/ProfileCS"
  846 +"/ProfileName"
  847 +"/Prop_Build"
  848 +"/Properties"
  849 +"/Proportional"
  850 +"/PubSec"
  851 +"/Q"
  852 +"/QuadPoints"
  853 +"/R1"
  854 +"/RBGroups"
  855 +"/RC"
  856 +"/RD"
  857 +"/REC"
  858 +"/REx"
  859 +"/RF"
  860 +"/RGB"
  861 +"/RI"
  862 +"/RICMYKGra"
  863 +"/RICMYKIma"
  864 +"/RICalGra"
  865 +"/RICalIma"
  866 +"/RIDefault"
  867 +"/RIDevNGra"
  868 +"/RIDevNIma"
  869 +"/RIRGBGra"
  870 +"/RIRGBIma"
  871 +"/RL"
  872 +"/RM"
  873 +"/RV"
  874 +"/Range"
  875 +"/Rect"
  876 +"/Red"
  877 +"/Redact"
  878 +"/Ref"
  879 +"/Reference"
  880 +"/Registry"
  881 +"/RegistryName"
  882 +"/RelativeColorimetric"
  883 +"/Rendition"
  884 +"/Renditions"
  885 +"/Requirements"
  886 +"/ResetForm"
  887 +"/Resolution"
  888 +"/Resources"
  889 +"/ReversedChars"
  890 +"/RoleMap"
  891 +"/Root"
  892 +"/Rotate"
  893 +"/Round"
  894 +"/RoundTrip"
  895 +"/RoundtripVersion"
  896 +"/Router"
  897 +"/Rows"
  898 +"/RunLengthDecode"
  899 +"/Ryumin"
  900 +"/SA"
  901 +"/SBDraft"
  902 +"/SC"
  903 +"/SE"
  904 +"/SFSSL"
  905 +"/SFTWS"
  906 +"/SI"
  907 +"/SL"
  908 +"/SLA"
  909 +"/SM"
  910 +"/SMask"
  911 +"/SMaskInData"
  912 +"/SP"
  913 +"/SPS"
  914 +"/STL"
  915 +"/SU"
  916 +"/SW"
  917 +"/Saturation"
  918 +"/SaveAs"
  919 +"/SaveContents"
  920 +"/SaveResource"
  921 +"/SavedBy"
  922 +"/Scaron"
  923 +"/Schema"
  924 +"/Screen"
  925 +"/Sect"
  926 +"/SemiCondensed"
  927 +"/SemiExpanded"
  928 +"/Separation"
  929 +"/SeparationInfo"
  930 +"/SetOCGState"
  931 +"/SettingsFileName"
  932 +"/Sh0"
  933 +"/Sh1"
  934 +"/Shading"
  935 +"/ShadingType"
  936 +"/Shape"
  937 +"/Sig"
  938 +"/SigFlags"
  939 +"/SigRef"
  940 +"/Signature"
  941 +"/Signed"
  942 +"/SinglePage"
  943 +"/Size"
  944 +"/SlideShow"
  945 +"/SoftLight"
  946 +"/Solid"
  947 +"/Solidities"
  948 +"/SomeName"
  949 +"/Sort"
  950 +"/Sound"
  951 +"/Space"
  952 +"/SpaceAfter"
  953 +"/SpaceBefore"
  954 +"/Span"
  955 +"/SpawnTemplate"
  956 +"/SpdrArt"
  957 +"/SpiderInfo"
  958 +"/Split"
  959 +"/Spot"
  960 +"/Spot1"
  961 +"/Spot2"
  962 +"/SpotFunction"
  963 +"/SpotMap"
  964 +"/St"
  965 +"/Stamp"
  966 +"/StandardImageFileData"
  967 +"/Star"
  968 +"/Start"
  969 +"/StartIndent"
  970 +"/StartResource"
  971 +"/State"
  972 +"/StdCF"
  973 +"/StemH"
  974 +"/StemV"
  975 +"/Stm"
  976 +"/StmF"
  977 +"/Stop"
  978 +"/Story"
  979 +"/StrF"
  980 +"/StrikeOut"
  981 +"/StringItem"
  982 +"/StructElem"
  983 +"/StructParent"
  984 +"/StructParents"
  985 +"/StructTreeRoot"
  986 +"/Style"
  987 +"/SubFilter"
  988 +"/SubType"
  989 +"/Subdictionary"
  990 +"/Subform"
  991 +"/Subj"
  992 +"/Subject"
  993 +"/SubmitForm"
  994 +"/SubmitStandalone"
  995 +"/SubsetFontsBelow"
  996 +"/SubsetFontsRatio"
  997 +"/Supplement"
  998 +"/Swiss721BT-Black"
  999 +"/Switch"
  1000 +"/T"
  1001 +"/T1"
  1002 +"/T1_0"
  1003 +"/TB"
  1004 +"/TC"
  1005 +"/TCS"
  1006 +"/TF"
  1007 +"/TID"
  1008 +"/TK"
  1009 +"/TM"
  1010 +"/TO"
  1011 +"/TOC"
  1012 +"/TOCI"
  1013 +"/TOYO#200004pc"
  1014 +"/TP"
  1015 +"/TR"
  1016 +"/TR2"
  1017 +"/TRUMATCH#206-e"
  1018 +"/TS"
  1019 +"/TSV"
  1020 +"/TT"
  1021 +"/TT0"
  1022 +"/TTRefMan"
  1023 +"/TU"
  1024 +"/TV"
  1025 +"/TW"
  1026 +"/TWS"
  1027 +"/TWY"
  1028 +"/Tabs"
  1029 +"/TagSuspect"
  1030 +"/TargetCS"
  1031 +"/Technical"
  1032 +"/Template"
  1033 +"/TemplateInstantiated"
  1034 +"/Templates"
  1035 +"/Text"
  1036 +"/TextAlign"
  1037 +"/TextBox"
  1038 +"/TextIndent"
  1039 +"/The"
  1040 +"/This"
  1041 +"/Thorn"
  1042 +"/Thread"
  1043 +"/Threads"
  1044 +"/Thumb"
  1045 +"/Thumbnail"
  1046 +"/Thumbs"
  1047 +"/Ti"
  1048 +"/TiBI"
  1049 +"/TilingType"
  1050 +"/Times-BoldItalic"
  1051 +"/Times-Roman"
  1052 +"/Title"
  1053 +"/ToUnicode"
  1054 +"/Toggle"
  1055 +"/Trans"
  1056 +"/TransferFunction"
  1057 +"/TransformMethod"
  1058 +"/TransformParams"
  1059 +"/Transparency"
  1060 +"/TrapInfo"
  1061 +"/TrapMagicNumber"
  1062 +"/TrapRegions"
  1063 +"/TrapSet"
  1064 +"/Trapped"
  1065 +"/Trapping"
  1066 +"/TrappingDetails"
  1067 +"/TrappingParameters"
  1068 +"/TrimBox"
  1069 +"/True"
  1070 +"/TrueType"
  1071 +"/TrustedMode"
  1072 +"/TwoColumnLeft"
  1073 +"/Tx"
  1074 +"/Type"
  1075 +"/Type0"
  1076 +"/U3D"
  1077 +"/UA"
  1078 +"/UCR"
  1079 +"/UCR2"
  1080 +"/UIDOffset"
  1081 +"/UR"
  1082 +"/UR3"
  1083 +"/URI"
  1084 +"/URL"
  1085 +"/URLs"
  1086 +"/Uacute"
  1087 +"/Ucircumflex"
  1088 +"/Udieresis"
  1089 +"/Ugrave"
  1090 +"/Univers-BoldExt"
  1091 +"/Unix"
  1092 +"/Unknown"
  1093 +"/Usage"
  1094 +"/UseAttachments"
  1095 +"/UseNone"
  1096 +"/UseOC"
  1097 +"/UseOutlines"
  1098 +"/UseThumbs"
  1099 +"/UsedCMYK"
  1100 +"/UserProperties"
  1101 +"/UserUnit"
  1102 +"/V2"
  1103 +"/VA"
  1104 +"/VE"
  1105 +"/VP"
  1106 +"/Verdana,Bold"
  1107 +"/Version"
  1108 +"/Vertical"
  1109 +"/VeryLastItem"
  1110 +"/View"
  1111 +"/ViewerPreferences"
  1112 +"/Visa"
  1113 +"/Visible"
  1114 +"/Volume"
  1115 +"/W2"
  1116 +"/WAI"
  1117 +"/WAN"
  1118 +"/WMode"
  1119 +"/WP"
  1120 +"/WarnockPro-BoldIt"
  1121 +"/Watermark"
  1122 +"/WebCapture"
  1123 +"/Which"
  1124 +"/WhiteBG"
  1125 +"/WhitePoint"
  1126 +"/Widget"
  1127 +"/Width"
  1128 +"/Widths"
  1129 +"/Win"
  1130 +"/WinAnsiEncoding"
  1131 +"/Window"
  1132 +"/Windows"
  1133 +"/Work#20surface"
  1134 +"/Workbook"
  1135 +"/Worksheet"
  1136 +"/WritingMode"
  1137 +"/X"
  1138 +"/X1"
  1139 +"/XFA"
  1140 +"/XHeight"
  1141 +"/XML"
  1142 +"/XN"
  1143 +"/XObject"
  1144 +"/XRef"
  1145 +"/XRefStm"
  1146 +"/XStep"
  1147 +"/XUID"
  1148 +"/XYZ"
  1149 +"/Y"
  1150 +"/YStep"
  1151 +"/Yacute"
  1152 +"/Ydieresis"
  1153 +"/Yellow"
  1154 +"/Z"
  1155 +"/Z7KNXbN"
  1156 +"/ZaDb"
  1157 +"/ZapfDingbats"
  1158 +"/Zcaron"
  1159 +"/Zoom"
  1160 +"/_No_paragraph_style_"
  1161 +"/a1"
  1162 +"/acute"
  1163 +"/adbe.pkcs7.detached"
  1164 +"/ampersand"
  1165 +"/apple"
  1166 +"/approxequal"
  1167 +"/asciicircum"
  1168 +"/asciitilde"
  1169 +"/asterisk"
  1170 +"/at"
  1171 +"/audio#2Fmpeg"
  1172 +"/b"
  1173 +"/backslash"
  1174 +"/bar"
  1175 +"/blank"
  1176 +"/braceleft"
  1177 +"/braceright"
  1178 +"/bracketleft"
  1179 +"/bracketright"
  1180 +"/breve"
  1181 +"/brokenbar"
  1182 +"/bullet"
  1183 +"/c108"
  1184 +"/cCompKind"
  1185 +"/cCompQuality"
  1186 +"/cCompression"
  1187 +"/cRes"
  1188 +"/cResolution"
  1189 +"/ca"
  1190 +"/caron"
  1191 +"/cedilla"
  1192 +"/cent"
  1193 +"/circumflex"
  1194 +"/colon"
  1195 +"/comma"
  1196 +"/copyright"
  1197 +"/currency"
  1198 +"/dagger"
  1199 +"/daggerdbl"
  1200 +"/degree"
  1201 +"/deviceNumber"
  1202 +"/dieresis"
  1203 +"/divide"
  1204 +"/dollar"
  1205 +"/dotaccent"
  1206 +"/dotlessi"
  1207 +"/dotlessj"
  1208 +"/eight"
  1209 +"/ellipsis"
  1210 +"/emdash"
  1211 +"/endash"
  1212 +"/equal"
  1213 +"/eth"
  1214 +"/exclam"
  1215 +"/exclamdown"
  1216 +"/f"
  1217 +"/ff"
  1218 +"/ffi"
  1219 +"/ffl"
  1220 +"/fi"
  1221 +"/five"
  1222 +"/fl"
  1223 +"/florin"
  1224 +"/four"
  1225 +"/fraction"
  1226 +"/gCompKind"
  1227 +"/gCompQuality"
  1228 +"/gCompression"
  1229 +"/gRes"
  1230 +"/gResolution"
  1231 +"/germandbls"
  1232 +"/go1"
  1233 +"/grave"
  1234 +"/greater"
  1235 +"/greaterequal"
  1236 +"/guillemotleft"
  1237 +"/guillemotright"
  1238 +"/guilsinglleft"
  1239 +"/guilsinglright"
  1240 +"/hungarumlaut"
  1241 +"/hyphen"
  1242 +"/iacute"
  1243 +"/idieresis"
  1244 +"/igrave"
  1245 +"/infinity"
  1246 +"/integral"
  1247 +"/j"
  1248 +"/k"
  1249 +"/less"
  1250 +"/lessequal"
  1251 +"/logicalnot"
  1252 +"/lozenge"
  1253 +"/lt#20blue"
  1254 +"/mCompKind"
  1255 +"/mCompression"
  1256 +"/mRes"
  1257 +"/mResolution"
  1258 +"/macron"
  1259 +"/minus"
  1260 +"/mu"
  1261 +"/multiply"
  1262 +"/n"
  1263 +"/n0"
  1264 +"/nine"
  1265 +"/notequal"
  1266 +"/ntilde"
  1267 +"/numbersign"
  1268 +"/o"
  1269 +"/ogonek"
  1270 +"/one"
  1271 +"/onehalf"
  1272 +"/onequarter"
  1273 +"/onesuperior"
  1274 +"/op"
  1275 +"/ordfeminine"
  1276 +"/ordmasculine"
  1277 +"/p"
  1278 +"/pageH"
  1279 +"/pageV"
  1280 +"/paragraph"
  1281 +"/parenleft"
  1282 +"/parenright"
  1283 +"/partialdiff"
  1284 +"/pdf"
  1285 +"/pdfx"
  1286 +"/percent"
  1287 +"/period"
  1288 +"/periodcentered"
  1289 +"/perthousand"
  1290 +"/pi"
  1291 +"/plus"
  1292 +"/plusminus"
  1293 +"/pms#208400"
  1294 +"/printX"
  1295 +"/product"
  1296 +"/question"
  1297 +"/questiondown"
  1298 +"/quotedbl"
  1299 +"/quotedblbase"
  1300 +"/quotedblleft"
  1301 +"/quotedblright"
  1302 +"/quoteleft"
  1303 +"/quoteright"
  1304 +"/quotesinglbase"
  1305 +"/quotesingle"
  1306 +"/r"
  1307 +"/radical"
  1308 +"/registered"
  1309 +"/ring"
  1310 +"/s"
  1311 +"/s1"
  1312 +"/sd1"
  1313 +"/sd2"
  1314 +"/section"
  1315 +"/semicolon"
  1316 +"/seven"
  1317 +"/six"
  1318 +"/slash"
  1319 +"/sterling"
  1320 +"/summation"
  1321 +"/thinspace"
  1322 +"/three"
  1323 +"/threequarters"
  1324 +"/threesuperior"
  1325 +"/tilde"
  1326 +"/trademark"
  1327 +"/two"
  1328 +"/twosuperior"
  1329 +"/u"
  1330 +"/underscore"
  1331 +"/v"
  1332 +"/w"
  1333 +"/y1"
  1334 +"/yen"
  1335 +"/yes"
  1336 +"/zero"
  1337 +"0 R"
  1338 +"1"
  1339 +"1.0"
  1340 +"<"
  1341 +"<<"
  1342 +">"
  1343 +">>"
  1344 +"Adobe.PPKLite"
  1345 +"Adobe.PubSec"
  1346 +"B*"
  1347 +"BDC"
  1348 +"BI"
  1349 +"BMC"
  1350 +"BT"
  1351 +"BX"
  1352 +"CS"
  1353 +"DP"
  1354 +"Do"
  1355 +"EI"
  1356 +"EMC"
  1357 +"ET"
  1358 +"EX"
  1359 +"Entrust.PPKEF"
  1360 +"ID"
  1361 +"MP"
  1362 +"R"
  1363 +"T*"
  1364 +"TJ"
  1365 +"TL"
  1366 +"Tc"
  1367 +"Td"
  1368 +"Tf"
  1369 +"Tj"
  1370 +"Tm"
  1371 +"Tr"
  1372 +"Ts"
  1373 +"Tw"
  1374 +"W*"
  1375 +"["
  1376 +"[0.0 0.0 0.0 0.0 0.0 0.0]"
  1377 +"[1 1 1]"
  1378 +"[1.0 -1.0 1.0 -1.0]"
  1379 +"[1.0 -1.0]"
  1380 +"\\"
  1381 +"]"
  1382 +"abs"
  1383 +"adbe.pkcs7.s3"
  1384 +"adbe.pkcs7.s4"
  1385 +"adbe.pkcs7.s5"
  1386 +"add"
  1387 +"and"
  1388 +"atan"
  1389 +"begin"
  1390 +"beginarrangedfont"
  1391 +"beginbfchar"
  1392 +"begincidrange"
  1393 +"begincmap"
  1394 +"begincodespacerange"
  1395 +"beginnotdefchar"
  1396 +"beginnotdefrange"
  1397 +"beginusematrix"
  1398 +"bitshift"
  1399 +"ceiling"
  1400 +"cm"
  1401 +"copy"
  1402 +"cos"
  1403 +"cvi"
  1404 +"cvr"
  1405 +"d0"
  1406 +"d1"
  1407 +"div"
  1408 +"dup"
  1409 +"end"
  1410 +"endarrangedfont"
  1411 +"endbfchar"
  1412 +"endcidrange"
  1413 +"endcmap"
  1414 +"endcodespacerange"
  1415 +"endnotdefchar"
  1416 +"endnotdefrange"
  1417 +"endobj"
  1418 +"endstream"
  1419 +"endusematrix"
  1420 +"eq"
  1421 +"exch"
  1422 +"exp"
  1423 +"f*"
  1424 +"false"
  1425 +"findresource"
  1426 +"floor"
  1427 +"ge"
  1428 +"gs"
  1429 +"gt"
  1430 +"idiv"
  1431 +"if"
  1432 +"ifelse"
  1433 +"index"
  1434 +"le"
  1435 +"ln"
  1436 +"log"
  1437 +"lt"
  1438 +"mod"
  1439 +"mul"
  1440 +"ne"
  1441 +"neg"
  1442 +"not"
  1443 +"null"
  1444 +"obj"
  1445 +"or"
  1446 +"page"
  1447 +"pop"
  1448 +"re"
  1449 +"rg"
  1450 +"ri"
  1451 +"roll"
  1452 +"round"
  1453 +"sin"
  1454 +"sqrt"
  1455 +"startxref"
  1456 +"stream"
  1457 +"sub"
  1458 +"trailer"
  1459 +"true"
  1460 +"truncate"
  1461 +"usecmap"
  1462 +"usefont"
  1463 +"xor"
  1464 +"xref"
  1465 +"{"
  1466 +"}"
... ...
fuzz/qpdf_read_memory_fuzzer.cc 0 โ†’ 100644
  1 +#include "qpdf/qpdf-c.h"
  2 +
  3 +#include <algorithm>
  4 +#include <cstddef>
  5 +#include <cstdlib>
  6 +
  7 +extern "C" int LLVMFuzzerTestOneInput(const unsigned char* data, size_t size) {
  8 + const size_t kMaxSize = 64 * 1024; // 64 KiB
  9 + size = std::min(size, kMaxSize);
  10 + _qpdf_data* qpdf = qpdf_init();
  11 + const char* buffer = reinterpret_cast<const char*>(data);
  12 + qpdf_read_memory(qpdf, /*description=*/"", buffer, size, /*password=*/"");
  13 + qpdf_cleanup(&qpdf);
  14 + return 0;
  15 +}
... ...
fuzz/standalone_fuzz_target_runner.cc 0 โ†’ 100644
  1 +// Copyright 2017 Google Inc. All Rights Reserved.
  2 +// Licensed under the Apache License, Version 2.0 (the "License");
  3 +
  4 +// Except for formatting, comments, and portability, this was copied
  5 +// from projects/example/my-api-repo/standalone_fuzz_target_runner.cpp
  6 +// in https://github.com/oss-fuzz
  7 +
  8 +#include <cassert>
  9 +#include <iostream>
  10 +#include <fstream>
  11 +#include <vector>
  12 +
  13 +extern "C" int LLVMFuzzerTestOneInput(unsigned char const* data, size_t size);
  14 +
  15 +int main(int argc, char **argv)
  16 +{
  17 + for (int i = 1; i < argc; i++)
  18 + {
  19 + std::ifstream in(argv[i]);
  20 + in.seekg(0, in.end);
  21 + size_t length = in.tellg();
  22 + in.seekg (0, in.beg);
  23 + std::cout << "Reading " << length << " bytes from " << argv[i]
  24 + << std::endl;
  25 + // Allocate exactly length bytes so that we reliably catch
  26 + // buffer overflows.
  27 + std::vector<char> bytes(length);
  28 + in.read(bytes.data(), bytes.size());
  29 + assert(in);
  30 + LLVMFuzzerTestOneInput(
  31 + reinterpret_cast<unsigned char const*>(bytes.data()),
  32 + bytes.size());
  33 + std::cout << "Execution successful" << std::endl;
  34 + }
  35 + return 0;
  36 +}
... ...