Commit d5d179f4419dfbbbc3598b91071f6ca7cc44357c

Authored by Jay Berkenbilt
1 parent 30a0c070

Add document and object helpers for outlines (bookmarks)

ChangeLog
  1 +2018-12-19 Jay Berkenbilt <ejb@ql.org>
  2 +
  3 + * Add QPDFOutlineDocumentHelper and QPDFOutlineObjectHelper for
  4 + handling outlines (bookmarks) including bidirectionally mapping
  5 + between bookmarks and pages. Initially there is no support for
  6 + modifying the outlines hierarchy.
  7 +
1 2018-12-18 Jay Berkenbilt <ejb@ql.org> 8 2018-12-18 Jay Berkenbilt <ejb@ql.org>
2 9
3 * New method QPDFObjectHandle::getJSON() returns a JSON object 10 * New method QPDFObjectHandle::getJSON() returns a JSON object
include/qpdf/QPDFOutlineDocumentHelper.hh 0 → 100644
  1 +// Copyright (c) 2005-2018 Jay Berkenbilt
  2 +//
  3 +// This file is part of qpdf.
  4 +//
  5 +// Licensed under the Apache License, Version 2.0 (the "License");
  6 +// you may not use this file except in compliance with the License.
  7 +// You may obtain a copy of the License at
  8 +//
  9 +// http://www.apache.org/licenses/LICENSE-2.0
  10 +//
  11 +// Unless required by applicable law or agreed to in writing, software
  12 +// distributed under the License is distributed on an "AS IS" BASIS,
  13 +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14 +// See the License for the specific language governing permissions and
  15 +// limitations under the License.
  16 +//
  17 +// Versions of qpdf prior to version 7 were released under the terms
  18 +// of version 2.0 of the Artistic License. At your option, you may
  19 +// continue to consider qpdf to be licensed under those terms. Please
  20 +// see the manual for additional information.
  21 +
  22 +#ifndef QPDFOUTLINEDOCUMENTHELPER_HH
  23 +#define QPDFOUTLINEDOCUMENTHELPER_HH
  24 +
  25 +#include <qpdf/QPDFDocumentHelper.hh>
  26 +#include <qpdf/QPDFOutlineObjectHelper.hh>
  27 +#include <qpdf/QPDFNameTreeObjectHelper.hh>
  28 +
  29 +#include <qpdf/QPDF.hh>
  30 +#include <map>
  31 +#include <list>
  32 +#include <set>
  33 +
  34 +#include <qpdf/DLL.h>
  35 +
  36 +// This is a document helper for outlines, also known as bookmarks.
  37 +// Outlines are discussed in section 12.3.3 of the PDF spec
  38 +// (ISO-32000). With the help of QPDFOutlineObjectHelper, the outlines
  39 +// tree is traversed, and a bidirectional map is made between pages
  40 +// and outlines. See also QPDFOutlineObjectHelper.
  41 +
  42 +class QPDFOutlineDocumentHelper: public QPDFDocumentHelper
  43 +{
  44 + public:
  45 + QPDF_DLL
  46 + QPDFOutlineDocumentHelper(QPDF&);
  47 + QPDF_DLL
  48 + virtual ~QPDFOutlineDocumentHelper();
  49 +
  50 + QPDF_DLL
  51 + bool hasOutlines();
  52 +
  53 + QPDF_DLL
  54 + std::list<QPDFOutlineObjectHelper> getTopLevelOutlines();
  55 +
  56 + // If the name is a name object, look it up in the /Dests key of
  57 + // the document catalog. If the name is a string, look it up in
  58 + // the name tree pointed to by the /Dests key of the names
  59 + // dictionary.
  60 + QPDF_DLL
  61 + QPDFObjectHandle
  62 + resolveNamedDest(QPDFObjectHandle name);
  63 +
  64 + // Return a list outlines that are known to target the specified
  65 + // page
  66 + QPDF_DLL
  67 + std::list<QPDFOutlineObjectHelper> getOutlinesForPage(QPDFObjGen const&);
  68 +
  69 + class Accessor
  70 + {
  71 + friend class QPDFOutlineObjectHelper;
  72 +
  73 + QPDF_DLL
  74 + static bool
  75 + checkSeen(QPDFOutlineDocumentHelper& dh, QPDFObjGen const& og)
  76 + {
  77 + return dh.checkSeen(og);
  78 + }
  79 + };
  80 + friend class Accessor;
  81 +
  82 + private:
  83 + bool checkSeen(QPDFObjGen const& og);
  84 + void initializeByPage();
  85 +
  86 + class Members
  87 + {
  88 + friend class QPDFOutlineDocumentHelper;
  89 +
  90 + public:
  91 + QPDF_DLL
  92 + ~Members();
  93 +
  94 + private:
  95 + Members();
  96 + Members(Members const&);
  97 +
  98 + std::list<QPDFOutlineObjectHelper> outlines;
  99 + std::set<QPDFObjGen> seen;
  100 + QPDFObjectHandle dest_dict;
  101 + PointerHolder<QPDFNameTreeObjectHelper> names_dest;
  102 + std::map<QPDFObjGen, std::list<QPDFOutlineObjectHelper> > by_page;
  103 + };
  104 +
  105 + PointerHolder<Members> m;
  106 +};
  107 +
  108 +#endif // QPDFOUTLINEDOCUMENTHELPER_HH
include/qpdf/QPDFOutlineObjectHelper.hh 0 → 100644
  1 +// Copyright (c) 2005-2018 Jay Berkenbilt
  2 +//
  3 +// This file is part of qpdf.
  4 +//
  5 +// Licensed under the Apache License, Version 2.0 (the "License");
  6 +// you may not use this file except in compliance with the License.
  7 +// You may obtain a copy of the License at
  8 +//
  9 +// http://www.apache.org/licenses/LICENSE-2.0
  10 +//
  11 +// Unless required by applicable law or agreed to in writing, software
  12 +// distributed under the License is distributed on an "AS IS" BASIS,
  13 +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14 +// See the License for the specific language governing permissions and
  15 +// limitations under the License.
  16 +//
  17 +// Versions of qpdf prior to version 7 were released under the terms
  18 +// of version 2.0 of the Artistic License. At your option, you may
  19 +// continue to consider qpdf to be licensed under those terms. Please
  20 +// see the manual for additional information.
  21 +
  22 +#ifndef QPDFOUTLINEOBJECTHELPER_HH
  23 +#define QPDFOUTLINEOBJECTHELPER_HH
  24 +
  25 +#include <qpdf/QPDFObjectHelper.hh>
  26 +#include <qpdf/QPDFObjGen.hh>
  27 +#include <list>
  28 +
  29 +class QPDFOutlineDocumentHelper;
  30 +
  31 +#include <qpdf/DLL.h>
  32 +
  33 +// This is an object helper for outline items. Outlines, also known as
  34 +// bookmarks, are described in section 12.3.3 of the PDF spec
  35 +// (ISO-32000). See comments below for details.
  36 +
  37 +class QPDFOutlineObjectHelper: public QPDFObjectHelper
  38 +{
  39 + public:
  40 + QPDF_DLL
  41 + virtual ~QPDFOutlineObjectHelper()
  42 + {
  43 + // This must be cleared explicitly to avoid circular references
  44 + // that prevent cleanup of pointer holders.
  45 + this->m->parent = 0;
  46 + }
  47 +
  48 + // All constructors are private. You can only create one of these
  49 + // using QPDFOutlineDocumentHelper.
  50 +
  51 + // Return parent pointer. Returns a null pointer if this is a
  52 + // top-level outline.
  53 + QPDF_DLL
  54 + PointerHolder<QPDFOutlineObjectHelper> getParent();
  55 +
  56 + // Return children as a list.
  57 + QPDF_DLL
  58 + std::list<QPDFOutlineObjectHelper> getKids();
  59 +
  60 + // Return the destination, regardless of whether it is named or
  61 + // explicit and whether it is directly provided or in a GoTo
  62 + // action. Returns a null object if the destination can't be
  63 + // determined. Named destinations can be resolved using the older
  64 + // root /Dest dictionary or the current names tree.
  65 + QPDF_DLL
  66 + QPDFObjectHandle getDest();
  67 +
  68 + // Return the page that the outline points to. Returns a null
  69 + // object if the destination page can't be determined.
  70 + QPDF_DLL
  71 + QPDFObjectHandle getDestPage();
  72 +
  73 + // Returns the value of /Count as present in the object, or 0 if
  74 + // not present. If count is positive, the outline is open. If
  75 + // negative, it is closed. Either way, the absolute value is the
  76 + // number descendant items that would be visible if this were
  77 + // open.
  78 + QPDF_DLL
  79 + int getCount();
  80 +
  81 + // Returns the title as a UTF-8 string. Returns the empty string
  82 + // if there is no title.
  83 + QPDF_DLL
  84 + std::string getTitle();
  85 +
  86 + class Accessor
  87 + {
  88 + friend class QPDFOutlineDocumentHelper;
  89 +
  90 + static QPDFOutlineObjectHelper
  91 + create(QPDFObjectHandle oh, QPDFOutlineDocumentHelper& dh, int depth)
  92 + {
  93 + return QPDFOutlineObjectHelper(oh, dh, depth);
  94 + }
  95 + };
  96 + friend class Accessor;
  97 +
  98 + private:
  99 + QPDF_DLL
  100 + QPDFOutlineObjectHelper(QPDFObjectHandle, QPDFOutlineDocumentHelper&, int);
  101 +
  102 + class Members
  103 + {
  104 + friend class QPDFOutlineObjectHelper;
  105 +
  106 + public:
  107 + QPDF_DLL
  108 + ~Members();
  109 +
  110 + private:
  111 + Members(QPDFOutlineDocumentHelper& dh);
  112 + Members(Members const&);
  113 +
  114 + QPDFOutlineDocumentHelper& dh;
  115 + PointerHolder<QPDFOutlineObjectHelper> parent;
  116 + std::list<QPDFOutlineObjectHelper> kids;
  117 + };
  118 +
  119 + PointerHolder<Members> m;
  120 +};
  121 +
  122 +#endif // QPDFOUTLINEOBJECTHELPER_HH
libqpdf/QPDFOutlineDocumentHelper.cc 0 → 100644
  1 +#include <qpdf/QPDFOutlineDocumentHelper.hh>
  2 +#include <qpdf/QTC.hh>
  3 +
  4 +QPDFOutlineDocumentHelper::Members::~Members()
  5 +{
  6 +}
  7 +
  8 +QPDFOutlineDocumentHelper::Members::Members()
  9 +{
  10 +}
  11 +
  12 +QPDFOutlineDocumentHelper::QPDFOutlineDocumentHelper(QPDF& qpdf) :
  13 + QPDFDocumentHelper(qpdf),
  14 + m(new Members())
  15 +{
  16 + QPDFObjectHandle root = qpdf.getRoot();
  17 + if (! root.hasKey("/Outlines"))
  18 + {
  19 + return;
  20 + }
  21 + QPDFObjectHandle outlines = root.getKey("/Outlines");
  22 + if (! (outlines.isDictionary() && outlines.hasKey("/First")))
  23 + {
  24 + return;
  25 + }
  26 + QPDFObjectHandle cur = outlines.getKey("/First");
  27 + while (! cur.isNull())
  28 + {
  29 + this->m->outlines.push_back(
  30 + QPDFOutlineObjectHelper::Accessor::create(cur, *this, 1));
  31 + cur = cur.getKey("/Next");
  32 + }
  33 +}
  34 +
  35 +QPDFOutlineDocumentHelper::~QPDFOutlineDocumentHelper()
  36 +{
  37 +}
  38 +
  39 +bool
  40 +QPDFOutlineDocumentHelper::hasOutlines()
  41 +{
  42 + return ! this->m->outlines.empty();
  43 +}
  44 +
  45 +std::list<QPDFOutlineObjectHelper>
  46 +QPDFOutlineDocumentHelper::getTopLevelOutlines()
  47 +{
  48 + return this->m->outlines;
  49 +}
  50 +
  51 +void
  52 +QPDFOutlineDocumentHelper::initializeByPage()
  53 +{
  54 + std::list<QPDFOutlineObjectHelper> queue;
  55 + queue.insert(queue.end(), this->m->outlines.begin(), this->m->outlines.end());
  56 +
  57 + while (! queue.empty())
  58 + {
  59 + QPDFOutlineObjectHelper oh = queue.front();
  60 + queue.pop_front();
  61 + this->m->by_page[oh.getDestPage().getObjGen()].push_back(oh);
  62 + std::list<QPDFOutlineObjectHelper> kids = oh.getKids();
  63 + queue.insert(queue.end(), kids.begin(), kids.end());
  64 + }
  65 +}
  66 +
  67 +std::list<QPDFOutlineObjectHelper>
  68 +QPDFOutlineDocumentHelper::getOutlinesForPage(QPDFObjGen const& og)
  69 +{
  70 + if (this->m->by_page.empty())
  71 + {
  72 + initializeByPage();
  73 + }
  74 + std::list<QPDFOutlineObjectHelper> result;
  75 + if (this->m->by_page.count(og))
  76 + {
  77 + result = this->m->by_page[og];
  78 + }
  79 + return result;
  80 +}
  81 +
  82 +QPDFObjectHandle
  83 +QPDFOutlineDocumentHelper::resolveNamedDest(QPDFObjectHandle name)
  84 +{
  85 + QPDFObjectHandle result;
  86 + if (name.isName())
  87 + {
  88 + if (! this->m->dest_dict.isInitialized())
  89 + {
  90 + this->m->dest_dict = this->qpdf.getRoot().getKey("/Dests");
  91 + }
  92 + if (this->m->dest_dict.isDictionary())
  93 + {
  94 + QTC::TC("qpdf", "QPDFOutlineDocumentHelper name named dest");
  95 + result = this->m->dest_dict.getKey(name.getName());
  96 + }
  97 + }
  98 + else if (name.isString())
  99 + {
  100 + if (0 == this->m->names_dest.getPointer())
  101 + {
  102 + QPDFObjectHandle names = this->qpdf.getRoot().getKey("/Names");
  103 + if (names.isDictionary())
  104 + {
  105 + QPDFObjectHandle dests = names.getKey("/Dests");
  106 + if (dests.isDictionary())
  107 + {
  108 + this->m->names_dest =
  109 + new QPDFNameTreeObjectHelper(dests);
  110 + }
  111 + }
  112 + }
  113 + if (this->m->names_dest.getPointer())
  114 + {
  115 + if (this->m->names_dest->findObject(name.getUTF8Value(), result))
  116 + {
  117 + QTC::TC("qpdf", "QPDFOutlineDocumentHelper string named dest");
  118 + }
  119 + }
  120 + }
  121 + if (! result.isInitialized())
  122 + {
  123 + result = QPDFObjectHandle::newNull();
  124 + }
  125 + return result;
  126 +}
  127 +
  128 +bool
  129 +QPDFOutlineDocumentHelper::checkSeen(QPDFObjGen const& og)
  130 +{
  131 + if (this->m->seen.count(og) > 0)
  132 + {
  133 + return true;
  134 + }
  135 + this->m->seen.insert(og);
  136 + return false;
  137 +}
libqpdf/QPDFOutlineObjectHelper.cc 0 → 100644
  1 +#include <qpdf/QPDFOutlineObjectHelper.hh>
  2 +#include <qpdf/QPDFOutlineDocumentHelper.hh>
  3 +#include <qpdf/QTC.hh>
  4 +
  5 +QPDFOutlineObjectHelper::Members::~Members()
  6 +{
  7 +}
  8 +
  9 +QPDFOutlineObjectHelper::Members::Members(QPDFOutlineDocumentHelper& dh) :
  10 + dh(dh)
  11 +{
  12 +}
  13 +
  14 +QPDFOutlineObjectHelper::QPDFOutlineObjectHelper(
  15 + QPDFObjectHandle oh, QPDFOutlineDocumentHelper& dh, int depth) :
  16 + QPDFObjectHelper(oh),
  17 + m(new Members(dh))
  18 +{
  19 + if (depth > 50)
  20 + {
  21 + // Not exercised in test suite, but was tested manually by
  22 + // temporarily changing max depth to 1.
  23 + return;
  24 + }
  25 + if (QPDFOutlineDocumentHelper::Accessor::checkSeen(
  26 + this->m->dh, this->oh.getObjGen()))
  27 + {
  28 + QTC::TC("qpdf", "QPDFOutlineObjectHelper loop");
  29 + return;
  30 + }
  31 +
  32 + QPDFObjectHandle cur = oh.getKey("/First");
  33 + while (! cur.isNull())
  34 + {
  35 + QPDFOutlineObjectHelper new_ooh(cur, dh, 1 + depth);
  36 + new_ooh.m->parent = new QPDFOutlineObjectHelper(*this);
  37 + this->m->kids.push_back(new_ooh);
  38 + cur = cur.getKey("/Next");
  39 + }
  40 +}
  41 +
  42 +PointerHolder<QPDFOutlineObjectHelper>
  43 +QPDFOutlineObjectHelper::getParent()
  44 +{
  45 + return this->m->parent;
  46 +}
  47 +
  48 +std::list<QPDFOutlineObjectHelper>
  49 +QPDFOutlineObjectHelper::getKids()
  50 +{
  51 + return this->m->kids;
  52 +}
  53 +
  54 +QPDFObjectHandle
  55 +QPDFOutlineObjectHelper::getDest()
  56 +{
  57 + QPDFObjectHandle dest;
  58 + QPDFObjectHandle A;
  59 + if (this->oh.hasKey("/Dest"))
  60 + {
  61 + QTC::TC("qpdf", "QPDFOutlineObjectHelper direct dest");
  62 + dest = this->oh.getKey("/Dest");
  63 + }
  64 + else if ((A = this->oh.getKey("/A")).isDictionary() &&
  65 + A.getKey("/S").isName() &&
  66 + (A.getKey("/S").getName() == "/GoTo") &&
  67 + A.hasKey("/D"))
  68 + {
  69 + QTC::TC("qpdf", "QPDFOutlineObjectHelper action dest");
  70 + dest = A.getKey("/D");
  71 + }
  72 + if (! dest.isInitialized())
  73 + {
  74 + dest = QPDFObjectHandle::newNull();
  75 + }
  76 +
  77 + if (dest.isName() || dest.isString())
  78 + {
  79 + QTC::TC("qpdf", "QPDFOutlineObjectHelper named dest");
  80 + dest = this->m->dh.resolveNamedDest(dest);
  81 + }
  82 +
  83 + return dest;
  84 +}
  85 +
  86 +QPDFObjectHandle
  87 +QPDFOutlineObjectHelper::getDestPage()
  88 +{
  89 + QPDFObjectHandle dest = getDest();
  90 + if ((dest.isArray()) && (dest.getArrayNItems() > 0))
  91 + {
  92 + return dest.getArrayItem(0);
  93 + }
  94 + return QPDFObjectHandle::newNull();
  95 +}
  96 +
  97 +int
  98 +QPDFOutlineObjectHelper::getCount()
  99 +{
  100 + int count = 0;
  101 + if (this->oh.hasKey("/Count"))
  102 + {
  103 + count = this->oh.getKey("/Count").getIntValue();
  104 + }
  105 + return count;
  106 +}
  107 +
  108 +std::string
  109 +QPDFOutlineObjectHelper::getTitle()
  110 +{
  111 + std::string result;
  112 + if (this->oh.hasKey("/Title"))
  113 + {
  114 + result = this->oh.getKey("/Title").getUTF8Value();
  115 + }
  116 + return result;
  117 +}
libqpdf/build.mk
@@ -46,6 +46,8 @@ SRCS_libqpdf = \ @@ -46,6 +46,8 @@ SRCS_libqpdf = \
46 libqpdf/QPDFObjGen.cc \ 46 libqpdf/QPDFObjGen.cc \
47 libqpdf/QPDFObject.cc \ 47 libqpdf/QPDFObject.cc \
48 libqpdf/QPDFObjectHandle.cc \ 48 libqpdf/QPDFObjectHandle.cc \
  49 + libqpdf/QPDFOutlineDocumentHelper.cc \
  50 + libqpdf/QPDFOutlineObjectHelper.cc \
49 libqpdf/QPDFPageDocumentHelper.cc \ 51 libqpdf/QPDFPageDocumentHelper.cc \
50 libqpdf/QPDFPageLabelDocumentHelper.cc \ 52 libqpdf/QPDFPageLabelDocumentHelper.cc \
51 libqpdf/QPDFPageObjectHelper.cc \ 53 libqpdf/QPDFPageObjectHelper.cc \
qpdf/qpdf.testcov
@@ -361,3 +361,9 @@ qpdf keep files open n 0 @@ -361,3 +361,9 @@ qpdf keep files open n 0
361 qpdf keep files open y 0 361 qpdf keep files open y 0
362 qpdf don't disable keep files open 0 362 qpdf don't disable keep files open 0
363 QPDFPageLabelDocumentHelper skip first 0 363 QPDFPageLabelDocumentHelper skip first 0
  364 +QPDFOutlineObjectHelper direct dest 0
  365 +QPDFOutlineObjectHelper action dest 0
  366 +QPDFOutlineObjectHelper named dest 0
  367 +QPDFOutlineDocumentHelper name named dest 0
  368 +QPDFOutlineDocumentHelper string named dest 0
  369 +QPDFOutlineObjectHelper loop 0
qpdf/qtest/qpdf.test
@@ -258,6 +258,24 @@ $td-&gt;runtest(&quot;no page labels&quot;, @@ -258,6 +258,24 @@ $td-&gt;runtest(&quot;no page labels&quot;,
258 258
259 show_ntests(); 259 show_ntests();
260 # ---------- 260 # ----------
  261 +$td->notify("--- Outlines ---");
  262 +my @outline_files = (
  263 + 'page-labels-and-outlines',
  264 + 'outlines-with-actions',
  265 + 'outlines-with-old-root-dests',
  266 + 'outlines-with-loop',
  267 + );
  268 +$n_tests += scalar(@outline_files);
  269 +foreach my $f (@outline_files)
  270 +{
  271 + $td->runtest("outlines: $f",
  272 + {$td->COMMAND => "test_driver 49 $f.pdf"},
  273 + {$td->FILE => "$f.out", $td->EXIT_STATUS => 0},
  274 + $td->NORMALIZE_NEWLINES);
  275 +}
  276 +
  277 +show_ntests();
  278 +# ----------
261 $td->notify("--- Page API Tests ---"); 279 $td->notify("--- Page API Tests ---");
262 $n_tests += 9; 280 $n_tests += 9;
263 281
qpdf/qtest/qpdf/outlines-with-actions.out 0 → 100644
  1 +page 0: Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null -> [ 6 0 R /XYZ null null null ]
  2 +page 1: Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770 -> [ 7 0 R /FitR 66 714 180 770 ]
  3 +page 5: Potato 1 -> 5: /XYZ null null null -> [ 11 0 R /XYZ null null null ]
  4 +page 11: Mern 1.1 -> 11: /Fit -> [ 17 0 R /Fit ]
  5 +page 12: Biherbadem 1.1.1 -> 12: /FitV 100 -> [ 18 0 R /FitV 100 ]
  6 +page 12: Gawehwehweh 1.1.2 -> 12: /XYZ null null null -> [ 18 0 R /XYZ null null null ]
  7 +page 13: Squash ÷πʬ÷ 1.2 -> 13: /FitH 792 -> [ 19 0 R /FitH 792 ]
  8 +page 15: Salad 2 -> 15: /XYZ 66 756 3 -> [ 21 0 R /XYZ 66 756 3 ]
  9 +page 18: Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null -> [ 24 0 R /XYZ null null null ]
  10 +page 19: Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null -> [ 25 0 R /XYZ null null null ]
  11 +page 22: Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null -> [ 28 0 R /XYZ null null null ]
  12 +test 49 done
qpdf/qtest/qpdf/outlines-with-actions.pdf 0 → 100644
  1 +%PDF-1.3
  2 +%¿÷¢þ
  3 +%QDF-1.0
  4 +
  5 +1 0 obj
  6 +<<
  7 + /Outlines 2 0 R
  8 + /PageMode /UseOutlines
  9 + /Pages 3 0 R
  10 + /Type /Catalog
  11 + /Names <<
  12 + /Dests 107 0 R
  13 + >>
  14 +>>
  15 +endobj
  16 +
  17 +2 0 obj
  18 +<<
  19 + /Count 6
  20 + /First 4 0 R
  21 + /Last 5 0 R
  22 + /Type /Outlines
  23 +>>
  24 +endobj
  25 +
  26 +3 0 obj
  27 +<<
  28 + /Count 30
  29 + /Kids [
  30 + 6 0 R
  31 + 7 0 R
  32 + 8 0 R
  33 + 9 0 R
  34 + 10 0 R
  35 + 11 0 R
  36 + 12 0 R
  37 + 13 0 R
  38 + 14 0 R
  39 + 15 0 R
  40 + 16 0 R
  41 + 17 0 R
  42 + 18 0 R
  43 + 19 0 R
  44 + 20 0 R
  45 + 21 0 R
  46 + 22 0 R
  47 + 23 0 R
  48 + 24 0 R
  49 + 25 0 R
  50 + 26 0 R
  51 + 27 0 R
  52 + 28 0 R
  53 + 29 0 R
  54 + 30 0 R
  55 + 31 0 R
  56 + 32 0 R
  57 + 33 0 R
  58 + 34 0 R
  59 + 35 0 R
  60 + ]
  61 + /Type /Pages
  62 +>>
  63 +endobj
  64 +
  65 +4 0 obj
  66 +<<
  67 + /Count 4
  68 + /Dest [
  69 + 11 0 R
  70 + /XYZ
  71 + null
  72 + null
  73 + null
  74 + ]
  75 + /First 36 0 R
  76 + /Last 37 0 R
  77 + /Next 5 0 R
  78 + /Parent 2 0 R
  79 + /Title (Potato 1 -> 5: /XYZ null null null)
  80 + /Type /Outline
  81 +>>
  82 +endobj
  83 +
  84 +5 0 obj
  85 +<<
  86 + /Dest [
  87 + 21 0 R
  88 + /XYZ
  89 + 66
  90 + 756
  91 + 3
  92 + ]
  93 + /Parent 2 0 R
  94 + /Prev 4 0 R
  95 + /Title (Salad 2 -> 15: /XYZ 66 756 3)
  96 + /Type /Outline
  97 +>>
  98 +endobj
  99 +
  100 +%% Page 1
  101 +6 0 obj
  102 +<<
  103 + /Contents 38 0 R
  104 + /MediaBox [
  105 + 0
  106 + 0
  107 + 612
  108 + 792
  109 + ]
  110 + /Parent 3 0 R
  111 + /Resources <<
  112 + /Font <<
  113 + /F1 40 0 R
  114 + >>
  115 + /ProcSet 41 0 R
  116 + >>
  117 + /Type /Page
  118 +>>
  119 +endobj
  120 +
  121 +%% Page 2
  122 +7 0 obj
  123 +<<
  124 + /Contents 42 0 R
  125 + /MediaBox [
  126 + 0
  127 + 0
  128 + 612
  129 + 792
  130 + ]
  131 + /Parent 3 0 R
  132 + /Resources <<
  133 + /Font <<
  134 + /F1 40 0 R
  135 + >>
  136 + /ProcSet 41 0 R
  137 + >>
  138 + /Type /Page
  139 +>>
  140 +endobj
  141 +
  142 +%% Page 3
  143 +8 0 obj
  144 +<<
  145 + /Contents 44 0 R
  146 + /MediaBox [
  147 + 0
  148 + 0
  149 + 612
  150 + 792
  151 + ]
  152 + /Parent 3 0 R
  153 + /Resources <<
  154 + /Font <<
  155 + /F1 40 0 R
  156 + >>
  157 + /ProcSet 41 0 R
  158 + >>
  159 + /Type /Page
  160 +>>
  161 +endobj
  162 +
  163 +%% Page 4
  164 +9 0 obj
  165 +<<
  166 + /Contents 46 0 R
  167 + /MediaBox [
  168 + 0
  169 + 0
  170 + 612
  171 + 792
  172 + ]
  173 + /Parent 3 0 R
  174 + /Resources <<
  175 + /Font <<
  176 + /F1 40 0 R
  177 + >>
  178 + /ProcSet 41 0 R
  179 + >>
  180 + /Type /Page
  181 +>>
  182 +endobj
  183 +
  184 +%% Page 5
  185 +10 0 obj
  186 +<<
  187 + /Contents 48 0 R
  188 + /MediaBox [
  189 + 0
  190 + 0
  191 + 612
  192 + 792
  193 + ]
  194 + /Parent 3 0 R
  195 + /Resources <<
  196 + /Font <<
  197 + /F1 40 0 R
  198 + >>
  199 + /ProcSet 41 0 R
  200 + >>
  201 + /Type /Page
  202 +>>
  203 +endobj
  204 +
  205 +%% Page 6
  206 +11 0 obj
  207 +<<
  208 + /Contents 50 0 R
  209 + /MediaBox [
  210 + 0
  211 + 0
  212 + 612
  213 + 792
  214 + ]
  215 + /Parent 3 0 R
  216 + /Resources <<
  217 + /Font <<
  218 + /F1 40 0 R
  219 + >>
  220 + /ProcSet 41 0 R
  221 + >>
  222 + /Type /Page
  223 +>>
  224 +endobj
  225 +
  226 +%% Page 7
  227 +12 0 obj
  228 +<<
  229 + /Contents 52 0 R
  230 + /MediaBox [
  231 + 0
  232 + 0
  233 + 612
  234 + 792
  235 + ]
  236 + /Parent 3 0 R
  237 + /Resources <<
  238 + /Font <<
  239 + /F1 40 0 R
  240 + >>
  241 + /ProcSet 41 0 R
  242 + >>
  243 + /Type /Page
  244 +>>
  245 +endobj
  246 +
  247 +%% Page 8
  248 +13 0 obj
  249 +<<
  250 + /Contents 54 0 R
  251 + /MediaBox [
  252 + 0
  253 + 0
  254 + 612
  255 + 792
  256 + ]
  257 + /Parent 3 0 R
  258 + /Resources <<
  259 + /Font <<
  260 + /F1 40 0 R
  261 + >>
  262 + /ProcSet 41 0 R
  263 + >>
  264 + /Type /Page
  265 +>>
  266 +endobj
  267 +
  268 +%% Page 9
  269 +14 0 obj
  270 +<<
  271 + /Contents 56 0 R
  272 + /MediaBox [
  273 + 0
  274 + 0
  275 + 612
  276 + 792
  277 + ]
  278 + /Parent 3 0 R
  279 + /Resources <<
  280 + /Font <<
  281 + /F1 40 0 R
  282 + >>
  283 + /ProcSet 41 0 R
  284 + >>
  285 + /Type /Page
  286 +>>
  287 +endobj
  288 +
  289 +%% Page 10
  290 +15 0 obj
  291 +<<
  292 + /Contents 58 0 R
  293 + /MediaBox [
  294 + 0
  295 + 0
  296 + 612
  297 + 792
  298 + ]
  299 + /Parent 3 0 R
  300 + /Resources <<
  301 + /Font <<
  302 + /F1 40 0 R
  303 + >>
  304 + /ProcSet 41 0 R
  305 + >>
  306 + /Type /Page
  307 +>>
  308 +endobj
  309 +
  310 +%% Page 11
  311 +16 0 obj
  312 +<<
  313 + /Contents 60 0 R
  314 + /MediaBox [
  315 + 0
  316 + 0
  317 + 612
  318 + 792
  319 + ]
  320 + /Parent 3 0 R
  321 + /Resources <<
  322 + /Font <<
  323 + /F1 40 0 R
  324 + >>
  325 + /ProcSet 41 0 R
  326 + >>
  327 + /Type /Page
  328 +>>
  329 +endobj
  330 +
  331 +%% Page 12
  332 +17 0 obj
  333 +<<
  334 + /Contents 62 0 R
  335 + /MediaBox [
  336 + 0
  337 + 0
  338 + 612
  339 + 792
  340 + ]
  341 + /Parent 3 0 R
  342 + /Resources <<
  343 + /Font <<
  344 + /F1 40 0 R
  345 + >>
  346 + /ProcSet 41 0 R
  347 + >>
  348 + /Type /Page
  349 +>>
  350 +endobj
  351 +
  352 +%% Page 13
  353 +18 0 obj
  354 +<<
  355 + /Contents 64 0 R
  356 + /MediaBox [
  357 + 0
  358 + 0
  359 + 612
  360 + 792
  361 + ]
  362 + /Parent 3 0 R
  363 + /Resources <<
  364 + /Font <<
  365 + /F1 40 0 R
  366 + >>
  367 + /ProcSet 41 0 R
  368 + >>
  369 + /Type /Page
  370 +>>
  371 +endobj
  372 +
  373 +%% Page 14
  374 +19 0 obj
  375 +<<
  376 + /Contents 66 0 R
  377 + /MediaBox [
  378 + 0
  379 + 0
  380 + 612
  381 + 792
  382 + ]
  383 + /Parent 3 0 R
  384 + /Resources <<
  385 + /Font <<
  386 + /F1 40 0 R
  387 + >>
  388 + /ProcSet 41 0 R
  389 + >>
  390 + /Type /Page
  391 +>>
  392 +endobj
  393 +
  394 +%% Page 15
  395 +20 0 obj
  396 +<<
  397 + /Contents 68 0 R
  398 + /MediaBox [
  399 + 0
  400 + 0
  401 + 612
  402 + 792
  403 + ]
  404 + /Parent 3 0 R
  405 + /Resources <<
  406 + /Font <<
  407 + /F1 40 0 R
  408 + >>
  409 + /ProcSet 41 0 R
  410 + >>
  411 + /Type /Page
  412 +>>
  413 +endobj
  414 +
  415 +%% Page 16
  416 +21 0 obj
  417 +<<
  418 + /Contents 70 0 R
  419 + /MediaBox [
  420 + 0
  421 + 0
  422 + 612
  423 + 792
  424 + ]
  425 + /Parent 3 0 R
  426 + /Resources <<
  427 + /Font <<
  428 + /F1 40 0 R
  429 + >>
  430 + /ProcSet 41 0 R
  431 + >>
  432 + /Type /Page
  433 +>>
  434 +endobj
  435 +
  436 +%% Page 17
  437 +22 0 obj
  438 +<<
  439 + /Contents 72 0 R
  440 + /MediaBox [
  441 + 0
  442 + 0
  443 + 612
  444 + 792
  445 + ]
  446 + /Parent 3 0 R
  447 + /Resources <<
  448 + /Font <<
  449 + /F1 40 0 R
  450 + >>
  451 + /ProcSet 41 0 R
  452 + >>
  453 + /Type /Page
  454 +>>
  455 +endobj
  456 +
  457 +%% Page 18
  458 +23 0 obj
  459 +<<
  460 + /Contents 74 0 R
  461 + /MediaBox [
  462 + 0
  463 + 0
  464 + 612
  465 + 792
  466 + ]
  467 + /Parent 3 0 R
  468 + /Resources <<
  469 + /Font <<
  470 + /F1 40 0 R
  471 + >>
  472 + /ProcSet 41 0 R
  473 + >>
  474 + /Type /Page
  475 +>>
  476 +endobj
  477 +
  478 +%% Page 19
  479 +24 0 obj
  480 +<<
  481 + /Contents 76 0 R
  482 + /MediaBox [
  483 + 0
  484 + 0
  485 + 612
  486 + 792
  487 + ]
  488 + /Parent 3 0 R
  489 + /Resources <<
  490 + /Font <<
  491 + /F1 40 0 R
  492 + >>
  493 + /ProcSet 41 0 R
  494 + >>
  495 + /Type /Page
  496 +>>
  497 +endobj
  498 +
  499 +%% Page 20
  500 +25 0 obj
  501 +<<
  502 + /Contents 78 0 R
  503 + /MediaBox [
  504 + 0
  505 + 0
  506 + 612
  507 + 792
  508 + ]
  509 + /Parent 3 0 R
  510 + /Resources <<
  511 + /Font <<
  512 + /F1 40 0 R
  513 + >>
  514 + /ProcSet 41 0 R
  515 + >>
  516 + /Type /Page
  517 +>>
  518 +endobj
  519 +
  520 +%% Page 21
  521 +26 0 obj
  522 +<<
  523 + /Contents 80 0 R
  524 + /MediaBox [
  525 + 0
  526 + 0
  527 + 612
  528 + 792
  529 + ]
  530 + /Parent 3 0 R
  531 + /Resources <<
  532 + /Font <<
  533 + /F1 40 0 R
  534 + >>
  535 + /ProcSet 41 0 R
  536 + >>
  537 + /Type /Page
  538 +>>
  539 +endobj
  540 +
  541 +%% Page 22
  542 +27 0 obj
  543 +<<
  544 + /Contents 82 0 R
  545 + /MediaBox [
  546 + 0
  547 + 0
  548 + 612
  549 + 792
  550 + ]
  551 + /Parent 3 0 R
  552 + /Resources <<
  553 + /Font <<
  554 + /F1 40 0 R
  555 + >>
  556 + /ProcSet 41 0 R
  557 + >>
  558 + /Type /Page
  559 +>>
  560 +endobj
  561 +
  562 +%% Page 23
  563 +28 0 obj
  564 +<<
  565 + /Contents 84 0 R
  566 + /MediaBox [
  567 + 0
  568 + 0
  569 + 612
  570 + 792
  571 + ]
  572 + /Parent 3 0 R
  573 + /Resources <<
  574 + /Font <<
  575 + /F1 40 0 R
  576 + >>
  577 + /ProcSet 41 0 R
  578 + >>
  579 + /Type /Page
  580 +>>
  581 +endobj
  582 +
  583 +%% Page 24
  584 +29 0 obj
  585 +<<
  586 + /Contents 86 0 R
  587 + /MediaBox [
  588 + 0
  589 + 0
  590 + 612
  591 + 792
  592 + ]
  593 + /Parent 3 0 R
  594 + /Resources <<
  595 + /Font <<
  596 + /F1 40 0 R
  597 + >>
  598 + /ProcSet 41 0 R
  599 + >>
  600 + /Type /Page
  601 +>>
  602 +endobj
  603 +
  604 +%% Page 25
  605 +30 0 obj
  606 +<<
  607 + /Contents 88 0 R
  608 + /MediaBox [
  609 + 0
  610 + 0
  611 + 612
  612 + 792
  613 + ]
  614 + /Parent 3 0 R
  615 + /Resources <<
  616 + /Font <<
  617 + /F1 40 0 R
  618 + >>
  619 + /ProcSet 41 0 R
  620 + >>
  621 + /Type /Page
  622 +>>
  623 +endobj
  624 +
  625 +%% Page 26
  626 +31 0 obj
  627 +<<
  628 + /Contents 90 0 R
  629 + /MediaBox [
  630 + 0
  631 + 0
  632 + 612
  633 + 792
  634 + ]
  635 + /Parent 3 0 R
  636 + /Resources <<
  637 + /Font <<
  638 + /F1 40 0 R
  639 + >>
  640 + /ProcSet 41 0 R
  641 + >>
  642 + /Type /Page
  643 +>>
  644 +endobj
  645 +
  646 +%% Page 27
  647 +32 0 obj
  648 +<<
  649 + /Contents 92 0 R
  650 + /MediaBox [
  651 + 0
  652 + 0
  653 + 612
  654 + 792
  655 + ]
  656 + /Parent 3 0 R
  657 + /Resources <<
  658 + /Font <<
  659 + /F1 40 0 R
  660 + >>
  661 + /ProcSet 41 0 R
  662 + >>
  663 + /Type /Page
  664 +>>
  665 +endobj
  666 +
  667 +%% Page 28
  668 +33 0 obj
  669 +<<
  670 + /Contents 94 0 R
  671 + /MediaBox [
  672 + 0
  673 + 0
  674 + 612
  675 + 792
  676 + ]
  677 + /Parent 3 0 R
  678 + /Resources <<
  679 + /Font <<
  680 + /F1 40 0 R
  681 + >>
  682 + /ProcSet 41 0 R
  683 + >>
  684 + /Type /Page
  685 +>>
  686 +endobj
  687 +
  688 +%% Page 29
  689 +34 0 obj
  690 +<<
  691 + /Contents 96 0 R
  692 + /MediaBox [
  693 + 0
  694 + 0
  695 + 612
  696 + 792
  697 + ]
  698 + /Parent 3 0 R
  699 + /Resources <<
  700 + /Font <<
  701 + /F1 40 0 R
  702 + >>
  703 + /ProcSet 41 0 R
  704 + >>
  705 + /Type /Page
  706 +>>
  707 +endobj
  708 +
  709 +%% Page 30
  710 +35 0 obj
  711 +<<
  712 + /Contents 98 0 R
  713 + /MediaBox [
  714 + 0
  715 + 0
  716 + 612
  717 + 792
  718 + ]
  719 + /Parent 3 0 R
  720 + /Resources <<
  721 + /Font <<
  722 + /F1 40 0 R
  723 + >>
  724 + /ProcSet 41 0 R
  725 + >>
  726 + /Type /Page
  727 +>>
  728 +endobj
  729 +
  730 +36 0 obj
  731 +<<
  732 + /Count -3
  733 + /Dest [
  734 + 17 0 R
  735 + /Fit
  736 + ]
  737 + /First 100 0 R
  738 + /Last 101 0 R
  739 + /Next 37 0 R
  740 + /Parent 4 0 R
  741 + /Title (Mern 1.1 -> 11: /Fit)
  742 + /Type /Outline
  743 +>>
  744 +endobj
  745 +
  746 +37 0 obj
  747 +<<
  748 + /Count 2
  749 + /Dest [
  750 + 19 0 R
  751 + /FitH
  752 + 792
  753 + ]
  754 + /First 102 0 R
  755 + /Last 103 0 R
  756 + /Parent 4 0 R
  757 + /Prev 36 0 R
  758 + /Title <feff005300710075006100730068002000f703c002ac00f700200031002e00320020002d003e002000310033003a0020002f00460069007400480020003700390032>
  759 + /Type /Outline
  760 +>>
  761 +endobj
  762 +
  763 +%% Contents for page 1
  764 +38 0 obj
  765 +<<
  766 + /Length 39 0 R
  767 +>>
  768 +stream
  769 +BT
  770 + /F1 24 Tf
  771 + 72 720 Td
  772 + (Salad 0) Tj
  773 +ET
  774 +endstream
  775 +endobj
  776 +
  777 +39 0 obj
  778 +45
  779 +endobj
  780 +
  781 +40 0 obj
  782 +<<
  783 + /BaseFont /Helvetica
  784 + /Encoding /WinAnsiEncoding
  785 + /Name /F1
  786 + /Subtype /Type1
  787 + /Type /Font
  788 +>>
  789 +endobj
  790 +
  791 +41 0 obj
  792 +[
  793 + /PDF
  794 + /Text
  795 +]
  796 +endobj
  797 +
  798 +%% Contents for page 2
  799 +42 0 obj
  800 +<<
  801 + /Length 43 0 R
  802 +>>
  803 +stream
  804 +BT
  805 + /F1 24 Tf
  806 + 72 720 Td
  807 + (Salad 1) Tj
  808 +ET
  809 +endstream
  810 +endobj
  811 +
  812 +43 0 obj
  813 +45
  814 +endobj
  815 +
  816 +%% Contents for page 3
  817 +44 0 obj
  818 +<<
  819 + /Length 45 0 R
  820 +>>
  821 +stream
  822 +BT
  823 + /F1 24 Tf
  824 + 72 720 Td
  825 + (Salad 2) Tj
  826 +ET
  827 +endstream
  828 +endobj
  829 +
  830 +45 0 obj
  831 +45
  832 +endobj
  833 +
  834 +%% Contents for page 4
  835 +46 0 obj
  836 +<<
  837 + /Length 47 0 R
  838 +>>
  839 +stream
  840 +BT
  841 + /F1 24 Tf
  842 + 72 720 Td
  843 + (Salad 3) Tj
  844 +ET
  845 +endstream
  846 +endobj
  847 +
  848 +47 0 obj
  849 +45
  850 +endobj
  851 +
  852 +%% Contents for page 5
  853 +48 0 obj
  854 +<<
  855 + /Length 49 0 R
  856 +>>
  857 +stream
  858 +BT
  859 + /F1 24 Tf
  860 + 72 720 Td
  861 + (Salad 4) Tj
  862 +ET
  863 +endstream
  864 +endobj
  865 +
  866 +49 0 obj
  867 +45
  868 +endobj
  869 +
  870 +%% Contents for page 6
  871 +50 0 obj
  872 +<<
  873 + /Length 51 0 R
  874 +>>
  875 +stream
  876 +BT
  877 + /F1 24 Tf
  878 + 72 720 Td
  879 + (Salad 5) Tj
  880 +ET
  881 +endstream
  882 +endobj
  883 +
  884 +51 0 obj
  885 +45
  886 +endobj
  887 +
  888 +%% Contents for page 7
  889 +52 0 obj
  890 +<<
  891 + /Length 53 0 R
  892 +>>
  893 +stream
  894 +BT
  895 + /F1 24 Tf
  896 + 72 720 Td
  897 + (Salad 6) Tj
  898 +ET
  899 +endstream
  900 +endobj
  901 +
  902 +53 0 obj
  903 +45
  904 +endobj
  905 +
  906 +%% Contents for page 8
  907 +54 0 obj
  908 +<<
  909 + /Length 55 0 R
  910 +>>
  911 +stream
  912 +BT
  913 + /F1 24 Tf
  914 + 72 720 Td
  915 + (Salad 7) Tj
  916 +ET
  917 +endstream
  918 +endobj
  919 +
  920 +55 0 obj
  921 +45
  922 +endobj
  923 +
  924 +%% Contents for page 9
  925 +56 0 obj
  926 +<<
  927 + /Length 57 0 R
  928 +>>
  929 +stream
  930 +BT
  931 + /F1 24 Tf
  932 + 72 720 Td
  933 + (Salad 8) Tj
  934 +ET
  935 +endstream
  936 +endobj
  937 +
  938 +57 0 obj
  939 +45
  940 +endobj
  941 +
  942 +%% Contents for page 10
  943 +58 0 obj
  944 +<<
  945 + /Length 59 0 R
  946 +>>
  947 +stream
  948 +BT
  949 + /F1 24 Tf
  950 + 72 720 Td
  951 + (Salad 9) Tj
  952 +ET
  953 +endstream
  954 +endobj
  955 +
  956 +59 0 obj
  957 +45
  958 +endobj
  959 +
  960 +%% Contents for page 11
  961 +60 0 obj
  962 +<<
  963 + /Length 61 0 R
  964 +>>
  965 +stream
  966 +BT
  967 + /F1 24 Tf
  968 + 72 720 Td
  969 + (Salad 10) Tj
  970 +ET
  971 +endstream
  972 +endobj
  973 +
  974 +61 0 obj
  975 +46
  976 +endobj
  977 +
  978 +%% Contents for page 12
  979 +62 0 obj
  980 +<<
  981 + /Length 63 0 R
  982 +>>
  983 +stream
  984 +BT
  985 + /F1 24 Tf
  986 + 72 720 Td
  987 + (Salad 11) Tj
  988 +ET
  989 +endstream
  990 +endobj
  991 +
  992 +63 0 obj
  993 +46
  994 +endobj
  995 +
  996 +%% Contents for page 13
  997 +64 0 obj
  998 +<<
  999 + /Length 65 0 R
  1000 +>>
  1001 +stream
  1002 +BT
  1003 + /F1 24 Tf
  1004 + 72 720 Td
  1005 + (Salad 12) Tj
  1006 +ET
  1007 +endstream
  1008 +endobj
  1009 +
  1010 +65 0 obj
  1011 +46
  1012 +endobj
  1013 +
  1014 +%% Contents for page 14
  1015 +66 0 obj
  1016 +<<
  1017 + /Length 67 0 R
  1018 +>>
  1019 +stream
  1020 +BT
  1021 + /F1 24 Tf
  1022 + 72 720 Td
  1023 + (Salad 13) Tj
  1024 +ET
  1025 +endstream
  1026 +endobj
  1027 +
  1028 +67 0 obj
  1029 +46
  1030 +endobj
  1031 +
  1032 +%% Contents for page 15
  1033 +68 0 obj
  1034 +<<
  1035 + /Length 69 0 R
  1036 +>>
  1037 +stream
  1038 +BT
  1039 + /F1 24 Tf
  1040 + 72 720 Td
  1041 + (Salad 14) Tj
  1042 +ET
  1043 +endstream
  1044 +endobj
  1045 +
  1046 +69 0 obj
  1047 +46
  1048 +endobj
  1049 +
  1050 +%% Contents for page 16
  1051 +70 0 obj
  1052 +<<
  1053 + /Length 71 0 R
  1054 +>>
  1055 +stream
  1056 +BT
  1057 + /F1 24 Tf
  1058 + 72 720 Td
  1059 + (Salad 15) Tj
  1060 +ET
  1061 +endstream
  1062 +endobj
  1063 +
  1064 +71 0 obj
  1065 +46
  1066 +endobj
  1067 +
  1068 +%% Contents for page 17
  1069 +72 0 obj
  1070 +<<
  1071 + /Length 73 0 R
  1072 +>>
  1073 +stream
  1074 +BT
  1075 + /F1 24 Tf
  1076 + 72 720 Td
  1077 + (Salad 16) Tj
  1078 +ET
  1079 +endstream
  1080 +endobj
  1081 +
  1082 +73 0 obj
  1083 +46
  1084 +endobj
  1085 +
  1086 +%% Contents for page 18
  1087 +74 0 obj
  1088 +<<
  1089 + /Length 75 0 R
  1090 +>>
  1091 +stream
  1092 +BT
  1093 + /F1 24 Tf
  1094 + 72 720 Td
  1095 + (Salad 17) Tj
  1096 +ET
  1097 +endstream
  1098 +endobj
  1099 +
  1100 +75 0 obj
  1101 +46
  1102 +endobj
  1103 +
  1104 +%% Contents for page 19
  1105 +76 0 obj
  1106 +<<
  1107 + /Length 77 0 R
  1108 +>>
  1109 +stream
  1110 +BT
  1111 + /F1 24 Tf
  1112 + 72 720 Td
  1113 + (Salad 18) Tj
  1114 +ET
  1115 +endstream
  1116 +endobj
  1117 +
  1118 +77 0 obj
  1119 +46
  1120 +endobj
  1121 +
  1122 +%% Contents for page 20
  1123 +78 0 obj
  1124 +<<
  1125 + /Length 79 0 R
  1126 +>>
  1127 +stream
  1128 +BT
  1129 + /F1 24 Tf
  1130 + 72 720 Td
  1131 + (Salad 19) Tj
  1132 +ET
  1133 +endstream
  1134 +endobj
  1135 +
  1136 +79 0 obj
  1137 +46
  1138 +endobj
  1139 +
  1140 +%% Contents for page 21
  1141 +80 0 obj
  1142 +<<
  1143 + /Length 81 0 R
  1144 +>>
  1145 +stream
  1146 +BT
  1147 + /F1 24 Tf
  1148 + 72 720 Td
  1149 + (Salad 20) Tj
  1150 +ET
  1151 +endstream
  1152 +endobj
  1153 +
  1154 +81 0 obj
  1155 +46
  1156 +endobj
  1157 +
  1158 +%% Contents for page 22
  1159 +82 0 obj
  1160 +<<
  1161 + /Length 83 0 R
  1162 +>>
  1163 +stream
  1164 +BT
  1165 + /F1 24 Tf
  1166 + 72 720 Td
  1167 + (Salad 21) Tj
  1168 +ET
  1169 +endstream
  1170 +endobj
  1171 +
  1172 +83 0 obj
  1173 +46
  1174 +endobj
  1175 +
  1176 +%% Contents for page 23
  1177 +84 0 obj
  1178 +<<
  1179 + /Length 85 0 R
  1180 +>>
  1181 +stream
  1182 +BT
  1183 + /F1 24 Tf
  1184 + 72 720 Td
  1185 + (Salad 22) Tj
  1186 +ET
  1187 +endstream
  1188 +endobj
  1189 +
  1190 +85 0 obj
  1191 +46
  1192 +endobj
  1193 +
  1194 +%% Contents for page 24
  1195 +86 0 obj
  1196 +<<
  1197 + /Length 87 0 R
  1198 +>>
  1199 +stream
  1200 +BT
  1201 + /F1 24 Tf
  1202 + 72 720 Td
  1203 + (Salad 23) Tj
  1204 +ET
  1205 +endstream
  1206 +endobj
  1207 +
  1208 +87 0 obj
  1209 +46
  1210 +endobj
  1211 +
  1212 +%% Contents for page 25
  1213 +88 0 obj
  1214 +<<
  1215 + /Length 89 0 R
  1216 +>>
  1217 +stream
  1218 +BT
  1219 + /F1 24 Tf
  1220 + 72 720 Td
  1221 + (Salad 24) Tj
  1222 +ET
  1223 +endstream
  1224 +endobj
  1225 +
  1226 +89 0 obj
  1227 +46
  1228 +endobj
  1229 +
  1230 +%% Contents for page 26
  1231 +90 0 obj
  1232 +<<
  1233 + /Length 91 0 R
  1234 +>>
  1235 +stream
  1236 +BT
  1237 + /F1 24 Tf
  1238 + 72 720 Td
  1239 + (Salad 25) Tj
  1240 +ET
  1241 +endstream
  1242 +endobj
  1243 +
  1244 +91 0 obj
  1245 +46
  1246 +endobj
  1247 +
  1248 +%% Contents for page 27
  1249 +92 0 obj
  1250 +<<
  1251 + /Length 93 0 R
  1252 +>>
  1253 +stream
  1254 +BT
  1255 + /F1 24 Tf
  1256 + 72 720 Td
  1257 + (Salad 26) Tj
  1258 +ET
  1259 +endstream
  1260 +endobj
  1261 +
  1262 +93 0 obj
  1263 +46
  1264 +endobj
  1265 +
  1266 +%% Contents for page 28
  1267 +94 0 obj
  1268 +<<
  1269 + /Length 95 0 R
  1270 +>>
  1271 +stream
  1272 +BT
  1273 + /F1 24 Tf
  1274 + 72 720 Td
  1275 + (Salad 27) Tj
  1276 +ET
  1277 +endstream
  1278 +endobj
  1279 +
  1280 +95 0 obj
  1281 +46
  1282 +endobj
  1283 +
  1284 +%% Contents for page 29
  1285 +96 0 obj
  1286 +<<
  1287 + /Length 97 0 R
  1288 +>>
  1289 +stream
  1290 +BT
  1291 + /F1 24 Tf
  1292 + 72 720 Td
  1293 + (Salad 28) Tj
  1294 +ET
  1295 +endstream
  1296 +endobj
  1297 +
  1298 +97 0 obj
  1299 +46
  1300 +endobj
  1301 +
  1302 +%% Contents for page 30
  1303 +98 0 obj
  1304 +<<
  1305 + /Length 99 0 R
  1306 +>>
  1307 +stream
  1308 +BT
  1309 + /F1 24 Tf
  1310 + 72 720 Td
  1311 + (Salad 29) Tj
  1312 +ET
  1313 +endstream
  1314 +endobj
  1315 +
  1316 +99 0 obj
  1317 +46
  1318 +endobj
  1319 +
  1320 +100 0 obj
  1321 +<<
  1322 + /Count -2
  1323 + /Dest [
  1324 + 18 0 R
  1325 + /FitV
  1326 + 100
  1327 + ]
  1328 + /First 104 0 R
  1329 + /Last 105 0 R
  1330 + /Next 101 0 R
  1331 + /Parent 36 0 R
  1332 + /Title (Biherbadem 1.1.1 -> 12: /FitV 100)
  1333 + /Type /Outline
  1334 +>>
  1335 +endobj
  1336 +
  1337 +101 0 obj
  1338 +<<
  1339 + /Count 1
  1340 + /Dest [
  1341 + 18 0 R
  1342 + /XYZ
  1343 + null
  1344 + null
  1345 + null
  1346 + ]
  1347 + /First 106 0 R
  1348 + /Last 106 0 R
  1349 + /Parent 36 0 R
  1350 + /Prev 100 0 R
  1351 + /Title (Gawehwehweh 1.1.2 -> 12: /XYZ null null null)
  1352 + /Type /Outline
  1353 +>>
  1354 +endobj
  1355 +
  1356 +102 0 obj
  1357 +<<
  1358 + /Dest (gabeebee)
  1359 + /Next 103 0 R
  1360 + /Parent 37 0 R
  1361 + /Title (Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770)
  1362 + /Type /Outline
  1363 +>>
  1364 +endobj
  1365 +
  1366 +103 0 obj
  1367 +<<
  1368 + /A <<
  1369 + /Type /Action
  1370 + /S /GoTo
  1371 + /D [
  1372 + 6 0 R
  1373 + /XYZ
  1374 + null
  1375 + null
  1376 + null
  1377 + ]
  1378 + >>
  1379 + /Parent 37 0 R
  1380 + /Prev 102 0 R
  1381 + /Title (Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null)
  1382 + /Type /Outline
  1383 +>>
  1384 +endobj
  1385 +
  1386 +104 0 obj
  1387 +<<
  1388 + /A <<
  1389 + /Type /Action
  1390 + /S /GoTo
  1391 + /D (glarp)
  1392 + >>
  1393 + /Next 105 0 R
  1394 + /Parent 100 0 R
  1395 + /Title (Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null)
  1396 + /Type /Outline
  1397 +>>
  1398 +endobj
  1399 +
  1400 +105 0 obj
  1401 +<<
  1402 + /Dest [
  1403 + 25 0 R
  1404 + /XYZ
  1405 + null
  1406 + null
  1407 + null
  1408 + ]
  1409 + /Parent 100 0 R
  1410 + /Prev 104 0 R
  1411 + /Title (Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null)
  1412 + /Type /Outline
  1413 +>>
  1414 +endobj
  1415 +
  1416 +106 0 obj
  1417 +<<
  1418 + /Dest 108 0 R
  1419 + /Parent 101 0 R
  1420 + /Title (Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null)
  1421 + /Type /Outline
  1422 +>>
  1423 +endobj
  1424 +
  1425 +107 0 obj
  1426 +<<
  1427 + /Names [
  1428 + (gabeebee) [
  1429 + 7 0 R
  1430 + /FitR
  1431 + 66
  1432 + 714
  1433 + 180
  1434 + 770
  1435 + ]
  1436 + (glarp) [
  1437 + 24 0 R
  1438 + /XYZ
  1439 + null
  1440 + null
  1441 + null
  1442 + ]
  1443 + ]
  1444 +>>
  1445 +endobj
  1446 +
  1447 +108 0 obj
  1448 +[
  1449 + 28 0 R
  1450 + /XYZ
  1451 + null
  1452 + null
  1453 + null
  1454 +]
  1455 +endobj
  1456 +
  1457 +xref
  1458 +0 109
  1459 +0000000000 65535 f
  1460 +0000000025 00000 n
  1461 +0000000158 00000 n
  1462 +0000000238 00000 n
  1463 +0000000627 00000 n
  1464 +0000000845 00000 n
  1465 +0000001019 00000 n
  1466 +0000001224 00000 n
  1467 +0000001429 00000 n
  1468 +0000001634 00000 n
  1469 +0000001839 00000 n
  1470 +0000002045 00000 n
  1471 +0000002251 00000 n
  1472 +0000002457 00000 n
  1473 +0000002663 00000 n
  1474 +0000002870 00000 n
  1475 +0000003077 00000 n
  1476 +0000003284 00000 n
  1477 +0000003491 00000 n
  1478 +0000003698 00000 n
  1479 +0000003905 00000 n
  1480 +0000004112 00000 n
  1481 +0000004319 00000 n
  1482 +0000004526 00000 n
  1483 +0000004733 00000 n
  1484 +0000004940 00000 n
  1485 +0000005147 00000 n
  1486 +0000005354 00000 n
  1487 +0000005561 00000 n
  1488 +0000005768 00000 n
  1489 +0000005975 00000 n
  1490 +0000006182 00000 n
  1491 +0000006389 00000 n
  1492 +0000006596 00000 n
  1493 +0000006803 00000 n
  1494 +0000007010 00000 n
  1495 +0000007206 00000 n
  1496 +0000007388 00000 n
  1497 +0000007713 00000 n
  1498 +0000007815 00000 n
  1499 +0000007835 00000 n
  1500 +0000007954 00000 n
  1501 +0000008013 00000 n
  1502 +0000008115 00000 n
  1503 +0000008158 00000 n
  1504 +0000008260 00000 n
  1505 +0000008303 00000 n
  1506 +0000008405 00000 n
  1507 +0000008448 00000 n
  1508 +0000008550 00000 n
  1509 +0000008593 00000 n
  1510 +0000008695 00000 n
  1511 +0000008738 00000 n
  1512 +0000008840 00000 n
  1513 +0000008883 00000 n
  1514 +0000008985 00000 n
  1515 +0000009028 00000 n
  1516 +0000009130 00000 n
  1517 +0000009174 00000 n
  1518 +0000009276 00000 n
  1519 +0000009320 00000 n
  1520 +0000009423 00000 n
  1521 +0000009467 00000 n
  1522 +0000009570 00000 n
  1523 +0000009614 00000 n
  1524 +0000009717 00000 n
  1525 +0000009761 00000 n
  1526 +0000009864 00000 n
  1527 +0000009908 00000 n
  1528 +0000010011 00000 n
  1529 +0000010055 00000 n
  1530 +0000010158 00000 n
  1531 +0000010202 00000 n
  1532 +0000010305 00000 n
  1533 +0000010349 00000 n
  1534 +0000010452 00000 n
  1535 +0000010496 00000 n
  1536 +0000010599 00000 n
  1537 +0000010643 00000 n
  1538 +0000010746 00000 n
  1539 +0000010790 00000 n
  1540 +0000010893 00000 n
  1541 +0000010937 00000 n
  1542 +0000011040 00000 n
  1543 +0000011084 00000 n
  1544 +0000011187 00000 n
  1545 +0000011231 00000 n
  1546 +0000011334 00000 n
  1547 +0000011378 00000 n
  1548 +0000011481 00000 n
  1549 +0000011525 00000 n
  1550 +0000011628 00000 n
  1551 +0000011672 00000 n
  1552 +0000011775 00000 n
  1553 +0000011819 00000 n
  1554 +0000011922 00000 n
  1555 +0000011966 00000 n
  1556 +0000012069 00000 n
  1557 +0000012113 00000 n
  1558 +0000012216 00000 n
  1559 +0000012236 00000 n
  1560 +0000012443 00000 n
  1561 +0000012678 00000 n
  1562 +0000012834 00000 n
  1563 +0000013086 00000 n
  1564 +0000013290 00000 n
  1565 +0000013488 00000 n
  1566 +0000013627 00000 n
  1567 +0000013829 00000 n
  1568 +trailer <<
  1569 + /Root 1 0 R
  1570 + /Size 109
  1571 + /ID [<d52b0c17c216506962ae6743afec260f><d52b0c17c216506962ae6743afec260f>]
  1572 +>>
  1573 +startxref
  1574 +13888
  1575 +%%EOF
qpdf/qtest/qpdf/outlines-with-loop.out 0 → 100644
  1 +page 5: Potato 1 -> 5: /XYZ null null null -> [ 11 0 R /XYZ null null null ]
  2 +page 5: Potato 1 -> 5: /XYZ null null null -> [ 11 0 R /XYZ null null null ]
  3 +page 11: Mern 1.1 -> 11: /Fit -> [ 17 0 R /Fit ]
  4 +page 12: Biherbadem 1.1.1 -> 12: /FitV 100 -> [ 18 0 R /FitV 100 ]
  5 +page 12: Gawehwehweh 1.1.2 -> 12: /XYZ null null null -> [ 18 0 R /XYZ null null null ]
  6 +page 15: Salad 2 -> 15: /XYZ 66 756 3 -> [ 21 0 R /XYZ 66 756 3 ]
  7 +page 15: Salad 2 -> 15: /XYZ 66 756 3 -> [ 21 0 R /XYZ 66 756 3 ]
  8 +page 18: Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null -> [ 24 0 R /XYZ null null null ]
  9 +page 19: Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null -> [ 25 0 R /XYZ null null null ]
  10 +page 22: Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null -> [ 28 0 R /XYZ null null null ]
  11 +test 49 done
qpdf/qtest/qpdf/outlines-with-loop.pdf 0 → 100644
  1 +%PDF-1.3
  2 +%¿÷¢þ
  3 +%QDF-1.0
  4 +
  5 +1 0 obj
  6 +<<
  7 + /Outlines 2 0 R
  8 + /PageMode /UseOutlines
  9 + /Pages 3 0 R
  10 + /Type /Catalog
  11 + /Names <<
  12 + /Dests 107 0 R
  13 + >>
  14 +>>
  15 +endobj
  16 +
  17 +2 0 obj
  18 +<<
  19 + /Count 6
  20 + /First 4 0 R
  21 + /Last 5 0 R
  22 + /Type /Outlines
  23 +>>
  24 +endobj
  25 +
  26 +3 0 obj
  27 +<<
  28 + /Count 30
  29 + /Kids [
  30 + 6 0 R
  31 + 7 0 R
  32 + 8 0 R
  33 + 9 0 R
  34 + 10 0 R
  35 + 11 0 R
  36 + 12 0 R
  37 + 13 0 R
  38 + 14 0 R
  39 + 15 0 R
  40 + 16 0 R
  41 + 17 0 R
  42 + 18 0 R
  43 + 19 0 R
  44 + 20 0 R
  45 + 21 0 R
  46 + 22 0 R
  47 + 23 0 R
  48 + 24 0 R
  49 + 25 0 R
  50 + 26 0 R
  51 + 27 0 R
  52 + 28 0 R
  53 + 29 0 R
  54 + 30 0 R
  55 + 31 0 R
  56 + 32 0 R
  57 + 33 0 R
  58 + 34 0 R
  59 + 35 0 R
  60 + ]
  61 + /Type /Pages
  62 +>>
  63 +endobj
  64 +
  65 +4 0 obj
  66 +<<
  67 + /Count 4
  68 + /Dest [
  69 + 11 0 R
  70 + /XYZ
  71 + null
  72 + null
  73 + null
  74 + ]
  75 + /First 36 0 R
  76 + /Last 37 0 R
  77 + /Next 5 0 R
  78 + /Parent 2 0 R
  79 + /Title (Potato 1 -> 5: /XYZ null null null)
  80 + /Type /Outline
  81 +>>
  82 +endobj
  83 +
  84 +5 0 obj
  85 +<<
  86 + /Dest [
  87 + 21 0 R
  88 + /XYZ
  89 + 66
  90 + 756
  91 + 3
  92 + ]
  93 + /Parent 2 0 R
  94 + /Prev 4 0 R
  95 + /Title (Salad 2 -> 15: /XYZ 66 756 3)
  96 + /Type /Outline
  97 +>>
  98 +endobj
  99 +
  100 +%% Page 1
  101 +6 0 obj
  102 +<<
  103 + /Contents 38 0 R
  104 + /MediaBox [
  105 + 0
  106 + 0
  107 + 612
  108 + 792
  109 + ]
  110 + /Parent 3 0 R
  111 + /Resources <<
  112 + /Font <<
  113 + /F1 40 0 R
  114 + >>
  115 + /ProcSet 41 0 R
  116 + >>
  117 + /Type /Page
  118 +>>
  119 +endobj
  120 +
  121 +%% Page 2
  122 +7 0 obj
  123 +<<
  124 + /Contents 42 0 R
  125 + /MediaBox [
  126 + 0
  127 + 0
  128 + 612
  129 + 792
  130 + ]
  131 + /Parent 3 0 R
  132 + /Resources <<
  133 + /Font <<
  134 + /F1 40 0 R
  135 + >>
  136 + /ProcSet 41 0 R
  137 + >>
  138 + /Type /Page
  139 +>>
  140 +endobj
  141 +
  142 +%% Page 3
  143 +8 0 obj
  144 +<<
  145 + /Contents 44 0 R
  146 + /MediaBox [
  147 + 0
  148 + 0
  149 + 612
  150 + 792
  151 + ]
  152 + /Parent 3 0 R
  153 + /Resources <<
  154 + /Font <<
  155 + /F1 40 0 R
  156 + >>
  157 + /ProcSet 41 0 R
  158 + >>
  159 + /Type /Page
  160 +>>
  161 +endobj
  162 +
  163 +%% Page 4
  164 +9 0 obj
  165 +<<
  166 + /Contents 46 0 R
  167 + /MediaBox [
  168 + 0
  169 + 0
  170 + 612
  171 + 792
  172 + ]
  173 + /Parent 3 0 R
  174 + /Resources <<
  175 + /Font <<
  176 + /F1 40 0 R
  177 + >>
  178 + /ProcSet 41 0 R
  179 + >>
  180 + /Type /Page
  181 +>>
  182 +endobj
  183 +
  184 +%% Page 5
  185 +10 0 obj
  186 +<<
  187 + /Contents 48 0 R
  188 + /MediaBox [
  189 + 0
  190 + 0
  191 + 612
  192 + 792
  193 + ]
  194 + /Parent 3 0 R
  195 + /Resources <<
  196 + /Font <<
  197 + /F1 40 0 R
  198 + >>
  199 + /ProcSet 41 0 R
  200 + >>
  201 + /Type /Page
  202 +>>
  203 +endobj
  204 +
  205 +%% Page 6
  206 +11 0 obj
  207 +<<
  208 + /Contents 50 0 R
  209 + /MediaBox [
  210 + 0
  211 + 0
  212 + 612
  213 + 792
  214 + ]
  215 + /Parent 3 0 R
  216 + /Resources <<
  217 + /Font <<
  218 + /F1 40 0 R
  219 + >>
  220 + /ProcSet 41 0 R
  221 + >>
  222 + /Type /Page
  223 +>>
  224 +endobj
  225 +
  226 +%% Page 7
  227 +12 0 obj
  228 +<<
  229 + /Contents 52 0 R
  230 + /MediaBox [
  231 + 0
  232 + 0
  233 + 612
  234 + 792
  235 + ]
  236 + /Parent 3 0 R
  237 + /Resources <<
  238 + /Font <<
  239 + /F1 40 0 R
  240 + >>
  241 + /ProcSet 41 0 R
  242 + >>
  243 + /Type /Page
  244 +>>
  245 +endobj
  246 +
  247 +%% Page 8
  248 +13 0 obj
  249 +<<
  250 + /Contents 54 0 R
  251 + /MediaBox [
  252 + 0
  253 + 0
  254 + 612
  255 + 792
  256 + ]
  257 + /Parent 3 0 R
  258 + /Resources <<
  259 + /Font <<
  260 + /F1 40 0 R
  261 + >>
  262 + /ProcSet 41 0 R
  263 + >>
  264 + /Type /Page
  265 +>>
  266 +endobj
  267 +
  268 +%% Page 9
  269 +14 0 obj
  270 +<<
  271 + /Contents 56 0 R
  272 + /MediaBox [
  273 + 0
  274 + 0
  275 + 612
  276 + 792
  277 + ]
  278 + /Parent 3 0 R
  279 + /Resources <<
  280 + /Font <<
  281 + /F1 40 0 R
  282 + >>
  283 + /ProcSet 41 0 R
  284 + >>
  285 + /Type /Page
  286 +>>
  287 +endobj
  288 +
  289 +%% Page 10
  290 +15 0 obj
  291 +<<
  292 + /Contents 58 0 R
  293 + /MediaBox [
  294 + 0
  295 + 0
  296 + 612
  297 + 792
  298 + ]
  299 + /Parent 3 0 R
  300 + /Resources <<
  301 + /Font <<
  302 + /F1 40 0 R
  303 + >>
  304 + /ProcSet 41 0 R
  305 + >>
  306 + /Type /Page
  307 +>>
  308 +endobj
  309 +
  310 +%% Page 11
  311 +16 0 obj
  312 +<<
  313 + /Contents 60 0 R
  314 + /MediaBox [
  315 + 0
  316 + 0
  317 + 612
  318 + 792
  319 + ]
  320 + /Parent 3 0 R
  321 + /Resources <<
  322 + /Font <<
  323 + /F1 40 0 R
  324 + >>
  325 + /ProcSet 41 0 R
  326 + >>
  327 + /Type /Page
  328 +>>
  329 +endobj
  330 +
  331 +%% Page 12
  332 +17 0 obj
  333 +<<
  334 + /Contents 62 0 R
  335 + /MediaBox [
  336 + 0
  337 + 0
  338 + 612
  339 + 792
  340 + ]
  341 + /Parent 3 0 R
  342 + /Resources <<
  343 + /Font <<
  344 + /F1 40 0 R
  345 + >>
  346 + /ProcSet 41 0 R
  347 + >>
  348 + /Type /Page
  349 +>>
  350 +endobj
  351 +
  352 +%% Page 13
  353 +18 0 obj
  354 +<<
  355 + /Contents 64 0 R
  356 + /MediaBox [
  357 + 0
  358 + 0
  359 + 612
  360 + 792
  361 + ]
  362 + /Parent 3 0 R
  363 + /Resources <<
  364 + /Font <<
  365 + /F1 40 0 R
  366 + >>
  367 + /ProcSet 41 0 R
  368 + >>
  369 + /Type /Page
  370 +>>
  371 +endobj
  372 +
  373 +%% Page 14
  374 +19 0 obj
  375 +<<
  376 + /Contents 66 0 R
  377 + /MediaBox [
  378 + 0
  379 + 0
  380 + 612
  381 + 792
  382 + ]
  383 + /Parent 3 0 R
  384 + /Resources <<
  385 + /Font <<
  386 + /F1 40 0 R
  387 + >>
  388 + /ProcSet 41 0 R
  389 + >>
  390 + /Type /Page
  391 +>>
  392 +endobj
  393 +
  394 +%% Page 15
  395 +20 0 obj
  396 +<<
  397 + /Contents 68 0 R
  398 + /MediaBox [
  399 + 0
  400 + 0
  401 + 612
  402 + 792
  403 + ]
  404 + /Parent 3 0 R
  405 + /Resources <<
  406 + /Font <<
  407 + /F1 40 0 R
  408 + >>
  409 + /ProcSet 41 0 R
  410 + >>
  411 + /Type /Page
  412 +>>
  413 +endobj
  414 +
  415 +%% Page 16
  416 +21 0 obj
  417 +<<
  418 + /Contents 70 0 R
  419 + /MediaBox [
  420 + 0
  421 + 0
  422 + 612
  423 + 792
  424 + ]
  425 + /Parent 3 0 R
  426 + /Resources <<
  427 + /Font <<
  428 + /F1 40 0 R
  429 + >>
  430 + /ProcSet 41 0 R
  431 + >>
  432 + /Type /Page
  433 +>>
  434 +endobj
  435 +
  436 +%% Page 17
  437 +22 0 obj
  438 +<<
  439 + /Contents 72 0 R
  440 + /MediaBox [
  441 + 0
  442 + 0
  443 + 612
  444 + 792
  445 + ]
  446 + /Parent 3 0 R
  447 + /Resources <<
  448 + /Font <<
  449 + /F1 40 0 R
  450 + >>
  451 + /ProcSet 41 0 R
  452 + >>
  453 + /Type /Page
  454 +>>
  455 +endobj
  456 +
  457 +%% Page 18
  458 +23 0 obj
  459 +<<
  460 + /Contents 74 0 R
  461 + /MediaBox [
  462 + 0
  463 + 0
  464 + 612
  465 + 792
  466 + ]
  467 + /Parent 3 0 R
  468 + /Resources <<
  469 + /Font <<
  470 + /F1 40 0 R
  471 + >>
  472 + /ProcSet 41 0 R
  473 + >>
  474 + /Type /Page
  475 +>>
  476 +endobj
  477 +
  478 +%% Page 19
  479 +24 0 obj
  480 +<<
  481 + /Contents 76 0 R
  482 + /MediaBox [
  483 + 0
  484 + 0
  485 + 612
  486 + 792
  487 + ]
  488 + /Parent 3 0 R
  489 + /Resources <<
  490 + /Font <<
  491 + /F1 40 0 R
  492 + >>
  493 + /ProcSet 41 0 R
  494 + >>
  495 + /Type /Page
  496 +>>
  497 +endobj
  498 +
  499 +%% Page 20
  500 +25 0 obj
  501 +<<
  502 + /Contents 78 0 R
  503 + /MediaBox [
  504 + 0
  505 + 0
  506 + 612
  507 + 792
  508 + ]
  509 + /Parent 3 0 R
  510 + /Resources <<
  511 + /Font <<
  512 + /F1 40 0 R
  513 + >>
  514 + /ProcSet 41 0 R
  515 + >>
  516 + /Type /Page
  517 +>>
  518 +endobj
  519 +
  520 +%% Page 21
  521 +26 0 obj
  522 +<<
  523 + /Contents 80 0 R
  524 + /MediaBox [
  525 + 0
  526 + 0
  527 + 612
  528 + 792
  529 + ]
  530 + /Parent 3 0 R
  531 + /Resources <<
  532 + /Font <<
  533 + /F1 40 0 R
  534 + >>
  535 + /ProcSet 41 0 R
  536 + >>
  537 + /Type /Page
  538 +>>
  539 +endobj
  540 +
  541 +%% Page 22
  542 +27 0 obj
  543 +<<
  544 + /Contents 82 0 R
  545 + /MediaBox [
  546 + 0
  547 + 0
  548 + 612
  549 + 792
  550 + ]
  551 + /Parent 3 0 R
  552 + /Resources <<
  553 + /Font <<
  554 + /F1 40 0 R
  555 + >>
  556 + /ProcSet 41 0 R
  557 + >>
  558 + /Type /Page
  559 +>>
  560 +endobj
  561 +
  562 +%% Page 23
  563 +28 0 obj
  564 +<<
  565 + /Contents 84 0 R
  566 + /MediaBox [
  567 + 0
  568 + 0
  569 + 612
  570 + 792
  571 + ]
  572 + /Parent 3 0 R
  573 + /Resources <<
  574 + /Font <<
  575 + /F1 40 0 R
  576 + >>
  577 + /ProcSet 41 0 R
  578 + >>
  579 + /Type /Page
  580 +>>
  581 +endobj
  582 +
  583 +%% Page 24
  584 +29 0 obj
  585 +<<
  586 + /Contents 86 0 R
  587 + /MediaBox [
  588 + 0
  589 + 0
  590 + 612
  591 + 792
  592 + ]
  593 + /Parent 3 0 R
  594 + /Resources <<
  595 + /Font <<
  596 + /F1 40 0 R
  597 + >>
  598 + /ProcSet 41 0 R
  599 + >>
  600 + /Type /Page
  601 +>>
  602 +endobj
  603 +
  604 +%% Page 25
  605 +30 0 obj
  606 +<<
  607 + /Contents 88 0 R
  608 + /MediaBox [
  609 + 0
  610 + 0
  611 + 612
  612 + 792
  613 + ]
  614 + /Parent 3 0 R
  615 + /Resources <<
  616 + /Font <<
  617 + /F1 40 0 R
  618 + >>
  619 + /ProcSet 41 0 R
  620 + >>
  621 + /Type /Page
  622 +>>
  623 +endobj
  624 +
  625 +%% Page 26
  626 +31 0 obj
  627 +<<
  628 + /Contents 90 0 R
  629 + /MediaBox [
  630 + 0
  631 + 0
  632 + 612
  633 + 792
  634 + ]
  635 + /Parent 3 0 R
  636 + /Resources <<
  637 + /Font <<
  638 + /F1 40 0 R
  639 + >>
  640 + /ProcSet 41 0 R
  641 + >>
  642 + /Type /Page
  643 +>>
  644 +endobj
  645 +
  646 +%% Page 27
  647 +32 0 obj
  648 +<<
  649 + /Contents 92 0 R
  650 + /MediaBox [
  651 + 0
  652 + 0
  653 + 612
  654 + 792
  655 + ]
  656 + /Parent 3 0 R
  657 + /Resources <<
  658 + /Font <<
  659 + /F1 40 0 R
  660 + >>
  661 + /ProcSet 41 0 R
  662 + >>
  663 + /Type /Page
  664 +>>
  665 +endobj
  666 +
  667 +%% Page 28
  668 +33 0 obj
  669 +<<
  670 + /Contents 94 0 R
  671 + /MediaBox [
  672 + 0
  673 + 0
  674 + 612
  675 + 792
  676 + ]
  677 + /Parent 3 0 R
  678 + /Resources <<
  679 + /Font <<
  680 + /F1 40 0 R
  681 + >>
  682 + /ProcSet 41 0 R
  683 + >>
  684 + /Type /Page
  685 +>>
  686 +endobj
  687 +
  688 +%% Page 29
  689 +34 0 obj
  690 +<<
  691 + /Contents 96 0 R
  692 + /MediaBox [
  693 + 0
  694 + 0
  695 + 612
  696 + 792
  697 + ]
  698 + /Parent 3 0 R
  699 + /Resources <<
  700 + /Font <<
  701 + /F1 40 0 R
  702 + >>
  703 + /ProcSet 41 0 R
  704 + >>
  705 + /Type /Page
  706 +>>
  707 +endobj
  708 +
  709 +%% Page 30
  710 +35 0 obj
  711 +<<
  712 + /Contents 98 0 R
  713 + /MediaBox [
  714 + 0
  715 + 0
  716 + 612
  717 + 792
  718 + ]
  719 + /Parent 3 0 R
  720 + /Resources <<
  721 + /Font <<
  722 + /F1 40 0 R
  723 + >>
  724 + /ProcSet 41 0 R
  725 + >>
  726 + /Type /Page
  727 +>>
  728 +endobj
  729 +
  730 +36 0 obj
  731 +<<
  732 + /Count -3
  733 + /Dest [
  734 + 17 0 R
  735 + /Fit
  736 + ]
  737 + /First 100 0 R
  738 + /Last 101 0 R
  739 + /Next 4 0 R
  740 + /Parent 4 0 R
  741 + /Title (Mern 1.1 -> 11: /Fit)
  742 + /Type /Outline
  743 +>>
  744 +endobj
  745 +
  746 +37 0 obj
  747 +<<
  748 + /Count 2
  749 + /Dest [
  750 + 19 0 R
  751 + /FitH
  752 + 792
  753 + ]
  754 + /First 102 0 R
  755 + /Last 103 0 R
  756 + /Parent 4 0 R
  757 + /Prev 36 0 R
  758 + /Title <feff005300710075006100730068002000f703c002ac00f700200031002e00320020002d003e002000310033003a0020002f00460069007400480020003700390032>
  759 + /Type /Outline
  760 +>>
  761 +endobj
  762 +
  763 +%% Contents for page 1
  764 +38 0 obj
  765 +<<
  766 + /Length 39 0 R
  767 +>>
  768 +stream
  769 +BT
  770 + /F1 24 Tf
  771 + 72 720 Td
  772 + (Salad 0) Tj
  773 +ET
  774 +endstream
  775 +endobj
  776 +
  777 +39 0 obj
  778 +45
  779 +endobj
  780 +
  781 +40 0 obj
  782 +<<
  783 + /BaseFont /Helvetica
  784 + /Encoding /WinAnsiEncoding
  785 + /Name /F1
  786 + /Subtype /Type1
  787 + /Type /Font
  788 +>>
  789 +endobj
  790 +
  791 +41 0 obj
  792 +[
  793 + /PDF
  794 + /Text
  795 +]
  796 +endobj
  797 +
  798 +%% Contents for page 2
  799 +42 0 obj
  800 +<<
  801 + /Length 43 0 R
  802 +>>
  803 +stream
  804 +BT
  805 + /F1 24 Tf
  806 + 72 720 Td
  807 + (Salad 1) Tj
  808 +ET
  809 +endstream
  810 +endobj
  811 +
  812 +43 0 obj
  813 +45
  814 +endobj
  815 +
  816 +%% Contents for page 3
  817 +44 0 obj
  818 +<<
  819 + /Length 45 0 R
  820 +>>
  821 +stream
  822 +BT
  823 + /F1 24 Tf
  824 + 72 720 Td
  825 + (Salad 2) Tj
  826 +ET
  827 +endstream
  828 +endobj
  829 +
  830 +45 0 obj
  831 +45
  832 +endobj
  833 +
  834 +%% Contents for page 4
  835 +46 0 obj
  836 +<<
  837 + /Length 47 0 R
  838 +>>
  839 +stream
  840 +BT
  841 + /F1 24 Tf
  842 + 72 720 Td
  843 + (Salad 3) Tj
  844 +ET
  845 +endstream
  846 +endobj
  847 +
  848 +47 0 obj
  849 +45
  850 +endobj
  851 +
  852 +%% Contents for page 5
  853 +48 0 obj
  854 +<<
  855 + /Length 49 0 R
  856 +>>
  857 +stream
  858 +BT
  859 + /F1 24 Tf
  860 + 72 720 Td
  861 + (Salad 4) Tj
  862 +ET
  863 +endstream
  864 +endobj
  865 +
  866 +49 0 obj
  867 +45
  868 +endobj
  869 +
  870 +%% Contents for page 6
  871 +50 0 obj
  872 +<<
  873 + /Length 51 0 R
  874 +>>
  875 +stream
  876 +BT
  877 + /F1 24 Tf
  878 + 72 720 Td
  879 + (Salad 5) Tj
  880 +ET
  881 +endstream
  882 +endobj
  883 +
  884 +51 0 obj
  885 +45
  886 +endobj
  887 +
  888 +%% Contents for page 7
  889 +52 0 obj
  890 +<<
  891 + /Length 53 0 R
  892 +>>
  893 +stream
  894 +BT
  895 + /F1 24 Tf
  896 + 72 720 Td
  897 + (Salad 6) Tj
  898 +ET
  899 +endstream
  900 +endobj
  901 +
  902 +53 0 obj
  903 +45
  904 +endobj
  905 +
  906 +%% Contents for page 8
  907 +54 0 obj
  908 +<<
  909 + /Length 55 0 R
  910 +>>
  911 +stream
  912 +BT
  913 + /F1 24 Tf
  914 + 72 720 Td
  915 + (Salad 7) Tj
  916 +ET
  917 +endstream
  918 +endobj
  919 +
  920 +55 0 obj
  921 +45
  922 +endobj
  923 +
  924 +%% Contents for page 9
  925 +56 0 obj
  926 +<<
  927 + /Length 57 0 R
  928 +>>
  929 +stream
  930 +BT
  931 + /F1 24 Tf
  932 + 72 720 Td
  933 + (Salad 8) Tj
  934 +ET
  935 +endstream
  936 +endobj
  937 +
  938 +57 0 obj
  939 +45
  940 +endobj
  941 +
  942 +%% Contents for page 10
  943 +58 0 obj
  944 +<<
  945 + /Length 59 0 R
  946 +>>
  947 +stream
  948 +BT
  949 + /F1 24 Tf
  950 + 72 720 Td
  951 + (Salad 9) Tj
  952 +ET
  953 +endstream
  954 +endobj
  955 +
  956 +59 0 obj
  957 +45
  958 +endobj
  959 +
  960 +%% Contents for page 11
  961 +60 0 obj
  962 +<<
  963 + /Length 61 0 R
  964 +>>
  965 +stream
  966 +BT
  967 + /F1 24 Tf
  968 + 72 720 Td
  969 + (Salad 10) Tj
  970 +ET
  971 +endstream
  972 +endobj
  973 +
  974 +61 0 obj
  975 +46
  976 +endobj
  977 +
  978 +%% Contents for page 12
  979 +62 0 obj
  980 +<<
  981 + /Length 63 0 R
  982 +>>
  983 +stream
  984 +BT
  985 + /F1 24 Tf
  986 + 72 720 Td
  987 + (Salad 11) Tj
  988 +ET
  989 +endstream
  990 +endobj
  991 +
  992 +63 0 obj
  993 +46
  994 +endobj
  995 +
  996 +%% Contents for page 13
  997 +64 0 obj
  998 +<<
  999 + /Length 65 0 R
  1000 +>>
  1001 +stream
  1002 +BT
  1003 + /F1 24 Tf
  1004 + 72 720 Td
  1005 + (Salad 12) Tj
  1006 +ET
  1007 +endstream
  1008 +endobj
  1009 +
  1010 +65 0 obj
  1011 +46
  1012 +endobj
  1013 +
  1014 +%% Contents for page 14
  1015 +66 0 obj
  1016 +<<
  1017 + /Length 67 0 R
  1018 +>>
  1019 +stream
  1020 +BT
  1021 + /F1 24 Tf
  1022 + 72 720 Td
  1023 + (Salad 13) Tj
  1024 +ET
  1025 +endstream
  1026 +endobj
  1027 +
  1028 +67 0 obj
  1029 +46
  1030 +endobj
  1031 +
  1032 +%% Contents for page 15
  1033 +68 0 obj
  1034 +<<
  1035 + /Length 69 0 R
  1036 +>>
  1037 +stream
  1038 +BT
  1039 + /F1 24 Tf
  1040 + 72 720 Td
  1041 + (Salad 14) Tj
  1042 +ET
  1043 +endstream
  1044 +endobj
  1045 +
  1046 +69 0 obj
  1047 +46
  1048 +endobj
  1049 +
  1050 +%% Contents for page 16
  1051 +70 0 obj
  1052 +<<
  1053 + /Length 71 0 R
  1054 +>>
  1055 +stream
  1056 +BT
  1057 + /F1 24 Tf
  1058 + 72 720 Td
  1059 + (Salad 15) Tj
  1060 +ET
  1061 +endstream
  1062 +endobj
  1063 +
  1064 +71 0 obj
  1065 +46
  1066 +endobj
  1067 +
  1068 +%% Contents for page 17
  1069 +72 0 obj
  1070 +<<
  1071 + /Length 73 0 R
  1072 +>>
  1073 +stream
  1074 +BT
  1075 + /F1 24 Tf
  1076 + 72 720 Td
  1077 + (Salad 16) Tj
  1078 +ET
  1079 +endstream
  1080 +endobj
  1081 +
  1082 +73 0 obj
  1083 +46
  1084 +endobj
  1085 +
  1086 +%% Contents for page 18
  1087 +74 0 obj
  1088 +<<
  1089 + /Length 75 0 R
  1090 +>>
  1091 +stream
  1092 +BT
  1093 + /F1 24 Tf
  1094 + 72 720 Td
  1095 + (Salad 17) Tj
  1096 +ET
  1097 +endstream
  1098 +endobj
  1099 +
  1100 +75 0 obj
  1101 +46
  1102 +endobj
  1103 +
  1104 +%% Contents for page 19
  1105 +76 0 obj
  1106 +<<
  1107 + /Length 77 0 R
  1108 +>>
  1109 +stream
  1110 +BT
  1111 + /F1 24 Tf
  1112 + 72 720 Td
  1113 + (Salad 18) Tj
  1114 +ET
  1115 +endstream
  1116 +endobj
  1117 +
  1118 +77 0 obj
  1119 +46
  1120 +endobj
  1121 +
  1122 +%% Contents for page 20
  1123 +78 0 obj
  1124 +<<
  1125 + /Length 79 0 R
  1126 +>>
  1127 +stream
  1128 +BT
  1129 + /F1 24 Tf
  1130 + 72 720 Td
  1131 + (Salad 19) Tj
  1132 +ET
  1133 +endstream
  1134 +endobj
  1135 +
  1136 +79 0 obj
  1137 +46
  1138 +endobj
  1139 +
  1140 +%% Contents for page 21
  1141 +80 0 obj
  1142 +<<
  1143 + /Length 81 0 R
  1144 +>>
  1145 +stream
  1146 +BT
  1147 + /F1 24 Tf
  1148 + 72 720 Td
  1149 + (Salad 20) Tj
  1150 +ET
  1151 +endstream
  1152 +endobj
  1153 +
  1154 +81 0 obj
  1155 +46
  1156 +endobj
  1157 +
  1158 +%% Contents for page 22
  1159 +82 0 obj
  1160 +<<
  1161 + /Length 83 0 R
  1162 +>>
  1163 +stream
  1164 +BT
  1165 + /F1 24 Tf
  1166 + 72 720 Td
  1167 + (Salad 21) Tj
  1168 +ET
  1169 +endstream
  1170 +endobj
  1171 +
  1172 +83 0 obj
  1173 +46
  1174 +endobj
  1175 +
  1176 +%% Contents for page 23
  1177 +84 0 obj
  1178 +<<
  1179 + /Length 85 0 R
  1180 +>>
  1181 +stream
  1182 +BT
  1183 + /F1 24 Tf
  1184 + 72 720 Td
  1185 + (Salad 22) Tj
  1186 +ET
  1187 +endstream
  1188 +endobj
  1189 +
  1190 +85 0 obj
  1191 +46
  1192 +endobj
  1193 +
  1194 +%% Contents for page 24
  1195 +86 0 obj
  1196 +<<
  1197 + /Length 87 0 R
  1198 +>>
  1199 +stream
  1200 +BT
  1201 + /F1 24 Tf
  1202 + 72 720 Td
  1203 + (Salad 23) Tj
  1204 +ET
  1205 +endstream
  1206 +endobj
  1207 +
  1208 +87 0 obj
  1209 +46
  1210 +endobj
  1211 +
  1212 +%% Contents for page 25
  1213 +88 0 obj
  1214 +<<
  1215 + /Length 89 0 R
  1216 +>>
  1217 +stream
  1218 +BT
  1219 + /F1 24 Tf
  1220 + 72 720 Td
  1221 + (Salad 24) Tj
  1222 +ET
  1223 +endstream
  1224 +endobj
  1225 +
  1226 +89 0 obj
  1227 +46
  1228 +endobj
  1229 +
  1230 +%% Contents for page 26
  1231 +90 0 obj
  1232 +<<
  1233 + /Length 91 0 R
  1234 +>>
  1235 +stream
  1236 +BT
  1237 + /F1 24 Tf
  1238 + 72 720 Td
  1239 + (Salad 25) Tj
  1240 +ET
  1241 +endstream
  1242 +endobj
  1243 +
  1244 +91 0 obj
  1245 +46
  1246 +endobj
  1247 +
  1248 +%% Contents for page 27
  1249 +92 0 obj
  1250 +<<
  1251 + /Length 93 0 R
  1252 +>>
  1253 +stream
  1254 +BT
  1255 + /F1 24 Tf
  1256 + 72 720 Td
  1257 + (Salad 26) Tj
  1258 +ET
  1259 +endstream
  1260 +endobj
  1261 +
  1262 +93 0 obj
  1263 +46
  1264 +endobj
  1265 +
  1266 +%% Contents for page 28
  1267 +94 0 obj
  1268 +<<
  1269 + /Length 95 0 R
  1270 +>>
  1271 +stream
  1272 +BT
  1273 + /F1 24 Tf
  1274 + 72 720 Td
  1275 + (Salad 27) Tj
  1276 +ET
  1277 +endstream
  1278 +endobj
  1279 +
  1280 +95 0 obj
  1281 +46
  1282 +endobj
  1283 +
  1284 +%% Contents for page 29
  1285 +96 0 obj
  1286 +<<
  1287 + /Length 97 0 R
  1288 +>>
  1289 +stream
  1290 +BT
  1291 + /F1 24 Tf
  1292 + 72 720 Td
  1293 + (Salad 28) Tj
  1294 +ET
  1295 +endstream
  1296 +endobj
  1297 +
  1298 +97 0 obj
  1299 +46
  1300 +endobj
  1301 +
  1302 +%% Contents for page 30
  1303 +98 0 obj
  1304 +<<
  1305 + /Length 99 0 R
  1306 +>>
  1307 +stream
  1308 +BT
  1309 + /F1 24 Tf
  1310 + 72 720 Td
  1311 + (Salad 29) Tj
  1312 +ET
  1313 +endstream
  1314 +endobj
  1315 +
  1316 +99 0 obj
  1317 +46
  1318 +endobj
  1319 +
  1320 +100 0 obj
  1321 +<<
  1322 + /Count -2
  1323 + /Dest [
  1324 + 18 0 R
  1325 + /FitV
  1326 + 100
  1327 + ]
  1328 + /First 104 0 R
  1329 + /Last 105 0 R
  1330 + /Next 101 0 R
  1331 + /Parent 36 0 R
  1332 + /Title (Biherbadem 1.1.1 -> 12: /FitV 100)
  1333 + /Type /Outline
  1334 +>>
  1335 +endobj
  1336 +
  1337 +101 0 obj
  1338 +<<
  1339 + /Count 1
  1340 + /Dest [
  1341 + 18 0 R
  1342 + /XYZ
  1343 + null
  1344 + null
  1345 + null
  1346 + ]
  1347 + /First 106 0 R
  1348 + /Last 106 0 R
  1349 + /Parent 36 0 R
  1350 + /Prev 100 0 R
  1351 + /Title (Gawehwehweh 1.1.2 -> 12: /XYZ null null null)
  1352 + /Type /Outline
  1353 +>>
  1354 +endobj
  1355 +
  1356 +102 0 obj
  1357 +<<
  1358 + /Dest (gabeebee)
  1359 + /Next 103 0 R
  1360 + /Parent 37 0 R
  1361 + /Title (Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770)
  1362 + /Type /Outline
  1363 +>>
  1364 +endobj
  1365 +
  1366 +103 0 obj
  1367 +<<
  1368 + /A <<
  1369 + /Type /Action
  1370 + /S /GoTo
  1371 + /D [
  1372 + 6 0 R
  1373 + /XYZ
  1374 + null
  1375 + null
  1376 + null
  1377 + ]
  1378 + >>
  1379 + /Parent 37 0 R
  1380 + /Prev 102 0 R
  1381 + /Title (Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null)
  1382 + /Type /Outline
  1383 +>>
  1384 +endobj
  1385 +
  1386 +104 0 obj
  1387 +<<
  1388 + /A <<
  1389 + /Type /Action
  1390 + /S /GoTo
  1391 + /D (glarp)
  1392 + >>
  1393 + /Next 105 0 R
  1394 + /Parent 100 0 R
  1395 + /Title (Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null)
  1396 + /Type /Outline
  1397 +>>
  1398 +endobj
  1399 +
  1400 +105 0 obj
  1401 +<<
  1402 + /Dest [
  1403 + 25 0 R
  1404 + /XYZ
  1405 + null
  1406 + null
  1407 + null
  1408 + ]
  1409 + /Parent 100 0 R
  1410 + /Prev 104 0 R
  1411 + /Title (Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null)
  1412 + /Type /Outline
  1413 +>>
  1414 +endobj
  1415 +
  1416 +106 0 obj
  1417 +<<
  1418 + /Dest 108 0 R
  1419 + /Parent 101 0 R
  1420 + /Title (Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null)
  1421 + /Type /Outline
  1422 +>>
  1423 +endobj
  1424 +
  1425 +107 0 obj
  1426 +<<
  1427 + /Names [
  1428 + (gabeebee) [
  1429 + 7 0 R
  1430 + /FitR
  1431 + 66
  1432 + 714
  1433 + 180
  1434 + 770
  1435 + ]
  1436 + (glarp) [
  1437 + 24 0 R
  1438 + /XYZ
  1439 + null
  1440 + null
  1441 + null
  1442 + ]
  1443 + ]
  1444 +>>
  1445 +endobj
  1446 +
  1447 +108 0 obj
  1448 +[
  1449 + 28 0 R
  1450 + /XYZ
  1451 + null
  1452 + null
  1453 + null
  1454 +]
  1455 +endobj
  1456 +
  1457 +xref
  1458 +0 109
  1459 +0000000000 65535 f
  1460 +0000000025 00000 n
  1461 +0000000158 00000 n
  1462 +0000000238 00000 n
  1463 +0000000627 00000 n
  1464 +0000000845 00000 n
  1465 +0000001019 00000 n
  1466 +0000001224 00000 n
  1467 +0000001429 00000 n
  1468 +0000001634 00000 n
  1469 +0000001839 00000 n
  1470 +0000002045 00000 n
  1471 +0000002251 00000 n
  1472 +0000002457 00000 n
  1473 +0000002663 00000 n
  1474 +0000002870 00000 n
  1475 +0000003077 00000 n
  1476 +0000003284 00000 n
  1477 +0000003491 00000 n
  1478 +0000003698 00000 n
  1479 +0000003905 00000 n
  1480 +0000004112 00000 n
  1481 +0000004319 00000 n
  1482 +0000004526 00000 n
  1483 +0000004733 00000 n
  1484 +0000004940 00000 n
  1485 +0000005147 00000 n
  1486 +0000005354 00000 n
  1487 +0000005561 00000 n
  1488 +0000005768 00000 n
  1489 +0000005975 00000 n
  1490 +0000006182 00000 n
  1491 +0000006389 00000 n
  1492 +0000006596 00000 n
  1493 +0000006803 00000 n
  1494 +0000007010 00000 n
  1495 +0000007206 00000 n
  1496 +0000007387 00000 n
  1497 +0000007712 00000 n
  1498 +0000007814 00000 n
  1499 +0000007834 00000 n
  1500 +0000007953 00000 n
  1501 +0000008012 00000 n
  1502 +0000008114 00000 n
  1503 +0000008157 00000 n
  1504 +0000008259 00000 n
  1505 +0000008302 00000 n
  1506 +0000008404 00000 n
  1507 +0000008447 00000 n
  1508 +0000008549 00000 n
  1509 +0000008592 00000 n
  1510 +0000008694 00000 n
  1511 +0000008737 00000 n
  1512 +0000008839 00000 n
  1513 +0000008882 00000 n
  1514 +0000008984 00000 n
  1515 +0000009027 00000 n
  1516 +0000009129 00000 n
  1517 +0000009173 00000 n
  1518 +0000009275 00000 n
  1519 +0000009319 00000 n
  1520 +0000009422 00000 n
  1521 +0000009466 00000 n
  1522 +0000009569 00000 n
  1523 +0000009613 00000 n
  1524 +0000009716 00000 n
  1525 +0000009760 00000 n
  1526 +0000009863 00000 n
  1527 +0000009907 00000 n
  1528 +0000010010 00000 n
  1529 +0000010054 00000 n
  1530 +0000010157 00000 n
  1531 +0000010201 00000 n
  1532 +0000010304 00000 n
  1533 +0000010348 00000 n
  1534 +0000010451 00000 n
  1535 +0000010495 00000 n
  1536 +0000010598 00000 n
  1537 +0000010642 00000 n
  1538 +0000010745 00000 n
  1539 +0000010789 00000 n
  1540 +0000010892 00000 n
  1541 +0000010936 00000 n
  1542 +0000011039 00000 n
  1543 +0000011083 00000 n
  1544 +0000011186 00000 n
  1545 +0000011230 00000 n
  1546 +0000011333 00000 n
  1547 +0000011377 00000 n
  1548 +0000011480 00000 n
  1549 +0000011524 00000 n
  1550 +0000011627 00000 n
  1551 +0000011671 00000 n
  1552 +0000011774 00000 n
  1553 +0000011818 00000 n
  1554 +0000011921 00000 n
  1555 +0000011965 00000 n
  1556 +0000012068 00000 n
  1557 +0000012112 00000 n
  1558 +0000012215 00000 n
  1559 +0000012235 00000 n
  1560 +0000012442 00000 n
  1561 +0000012677 00000 n
  1562 +0000012833 00000 n
  1563 +0000013085 00000 n
  1564 +0000013289 00000 n
  1565 +0000013487 00000 n
  1566 +0000013626 00000 n
  1567 +0000013828 00000 n
  1568 +trailer <<
  1569 + /Root 1 0 R
  1570 + /Size 109
  1571 + /ID [<d52b0c17c216506962ae6743afec260f><d52b0c17c216506962ae6743afec260f>]
  1572 +>>
  1573 +startxref
  1574 +13887
  1575 +%%EOF
qpdf/qtest/qpdf/outlines-with-old-root-dests.out 0 → 100644
  1 +page 0: •Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null -> [ 6 0 R /XYZ null null null ]
  2 +page 1: •Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770 -> [ 7 0 R /FitR 66 714 180 770 ]
  3 +page 5: •Potato 1 -> 5: /XYZ null null null -> [ 11 0 R /XYZ null null null ]
  4 +page 11: •Mern 1.1 -> 11: /Fit -> [ 17 0 R /Fit ]
  5 +page 12: •Biherbadem 1.1.1 -> 12: /FitV 100 -> [ 18 0 R /FitV 100 ]
  6 +page 12: •Gawehwehweh 1.1.2 -> 12: /XYZ null null null -> [ 18 0 R /XYZ null null null ]
  7 +page 13: •Squash ÷πʬ÷ 1.2 -> 13: /FitH 792 -> [ 19 0 R /FitH 792 ]
  8 +page 15: •Salad 2 -> 15: /XYZ 66 756 3 -> [ 21 0 R /XYZ 66 756 3 ]
  9 +page 18: •Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null -> [ 24 0 R /XYZ null null null ]
  10 +page 19: •Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null -> [ 25 0 R /XYZ null null null ]
  11 +page 22: •Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null -> [ 28 0 R /XYZ null null null ]
  12 +test 49 done
qpdf/qtest/qpdf/outlines-with-old-root-dests.pdf 0 → 100644
  1 +%PDF-1.3
  2 +%¿÷¢þ
  3 +%QDF-1.0
  4 +
  5 +1 0 obj
  6 +<<
  7 + /PageLabels << /Nums [ 0 << /P (0) >> 1 << /S /R >> ] >>
  8 + /Outlines 2 0 R
  9 + /PageMode /UseOutlines
  10 + /Pages 3 0 R
  11 + /Type /Catalog
  12 + /Dests 107 0 R
  13 +>>
  14 +endobj
  15 +
  16 +2 0 obj
  17 +<<
  18 + /Count 6
  19 + /First 4 0 R
  20 + /Last 5 0 R
  21 + /Type /Outlines
  22 +>>
  23 +endobj
  24 +
  25 +3 0 obj
  26 +<<
  27 + /Count 30
  28 + /Kids [
  29 + 6 0 R
  30 + 7 0 R
  31 + 8 0 R
  32 + 9 0 R
  33 + 10 0 R
  34 + 11 0 R
  35 + 12 0 R
  36 + 13 0 R
  37 + 14 0 R
  38 + 15 0 R
  39 + 16 0 R
  40 + 17 0 R
  41 + 18 0 R
  42 + 19 0 R
  43 + 20 0 R
  44 + 21 0 R
  45 + 22 0 R
  46 + 23 0 R
  47 + 24 0 R
  48 + 25 0 R
  49 + 26 0 R
  50 + 27 0 R
  51 + 28 0 R
  52 + 29 0 R
  53 + 30 0 R
  54 + 31 0 R
  55 + 32 0 R
  56 + 33 0 R
  57 + 34 0 R
  58 + 35 0 R
  59 + ]
  60 + /Type /Pages
  61 +>>
  62 +endobj
  63 +
  64 +4 0 obj
  65 +<<
  66 + /Count 4
  67 + /Dest [
  68 + 11 0 R
  69 + /XYZ
  70 + null
  71 + null
  72 + null
  73 + ]
  74 + /First 36 0 R
  75 + /Last 37 0 R
  76 + /Next 5 0 R
  77 + /Parent 2 0 R
  78 + /Title (€Potato 1 -> 5: /XYZ null null null)
  79 + /Type /Outline
  80 +>>
  81 +endobj
  82 +
  83 +5 0 obj
  84 +<<
  85 + /Dest [
  86 + 21 0 R
  87 + /XYZ
  88 + 66
  89 + 756
  90 + 3
  91 + ]
  92 + /Parent 2 0 R
  93 + /Prev 4 0 R
  94 + /Title (€Salad 2 -> 15: /XYZ 66 756 3)
  95 + /Type /Outline
  96 +>>
  97 +endobj
  98 +
  99 +%% Page 1
  100 +6 0 obj
  101 +<<
  102 + /Contents 38 0 R
  103 + /MediaBox [
  104 + 0
  105 + 0
  106 + 612
  107 + 792
  108 + ]
  109 + /Parent 3 0 R
  110 + /Resources <<
  111 + /Font <<
  112 + /F1 40 0 R
  113 + >>
  114 + /ProcSet 41 0 R
  115 + >>
  116 + /Type /Page
  117 +>>
  118 +endobj
  119 +
  120 +%% Page 2
  121 +7 0 obj
  122 +<<
  123 + /Contents 42 0 R
  124 + /MediaBox [
  125 + 0
  126 + 0
  127 + 612
  128 + 792
  129 + ]
  130 + /Parent 3 0 R
  131 + /Resources <<
  132 + /Font <<
  133 + /F1 40 0 R
  134 + >>
  135 + /ProcSet 41 0 R
  136 + >>
  137 + /Type /Page
  138 +>>
  139 +endobj
  140 +
  141 +%% Page 3
  142 +8 0 obj
  143 +<<
  144 + /Contents 44 0 R
  145 + /MediaBox [
  146 + 0
  147 + 0
  148 + 612
  149 + 792
  150 + ]
  151 + /Parent 3 0 R
  152 + /Resources <<
  153 + /Font <<
  154 + /F1 40 0 R
  155 + >>
  156 + /ProcSet 41 0 R
  157 + >>
  158 + /Type /Page
  159 +>>
  160 +endobj
  161 +
  162 +%% Page 4
  163 +9 0 obj
  164 +<<
  165 + /Contents 46 0 R
  166 + /MediaBox [
  167 + 0
  168 + 0
  169 + 612
  170 + 792
  171 + ]
  172 + /Parent 3 0 R
  173 + /Resources <<
  174 + /Font <<
  175 + /F1 40 0 R
  176 + >>
  177 + /ProcSet 41 0 R
  178 + >>
  179 + /Type /Page
  180 +>>
  181 +endobj
  182 +
  183 +%% Page 5
  184 +10 0 obj
  185 +<<
  186 + /Contents 48 0 R
  187 + /MediaBox [
  188 + 0
  189 + 0
  190 + 612
  191 + 792
  192 + ]
  193 + /Parent 3 0 R
  194 + /Resources <<
  195 + /Font <<
  196 + /F1 40 0 R
  197 + >>
  198 + /ProcSet 41 0 R
  199 + >>
  200 + /Type /Page
  201 +>>
  202 +endobj
  203 +
  204 +%% Page 6
  205 +11 0 obj
  206 +<<
  207 + /Contents 50 0 R
  208 + /MediaBox [
  209 + 0
  210 + 0
  211 + 612
  212 + 792
  213 + ]
  214 + /Parent 3 0 R
  215 + /Resources <<
  216 + /Font <<
  217 + /F1 40 0 R
  218 + >>
  219 + /ProcSet 41 0 R
  220 + >>
  221 + /Type /Page
  222 +>>
  223 +endobj
  224 +
  225 +%% Page 7
  226 +12 0 obj
  227 +<<
  228 + /Contents 52 0 R
  229 + /MediaBox [
  230 + 0
  231 + 0
  232 + 612
  233 + 792
  234 + ]
  235 + /Parent 3 0 R
  236 + /Resources <<
  237 + /Font <<
  238 + /F1 40 0 R
  239 + >>
  240 + /ProcSet 41 0 R
  241 + >>
  242 + /Type /Page
  243 +>>
  244 +endobj
  245 +
  246 +%% Page 8
  247 +13 0 obj
  248 +<<
  249 + /Contents 54 0 R
  250 + /MediaBox [
  251 + 0
  252 + 0
  253 + 612
  254 + 792
  255 + ]
  256 + /Parent 3 0 R
  257 + /Resources <<
  258 + /Font <<
  259 + /F1 40 0 R
  260 + >>
  261 + /ProcSet 41 0 R
  262 + >>
  263 + /Type /Page
  264 +>>
  265 +endobj
  266 +
  267 +%% Page 9
  268 +14 0 obj
  269 +<<
  270 + /Contents 56 0 R
  271 + /MediaBox [
  272 + 0
  273 + 0
  274 + 612
  275 + 792
  276 + ]
  277 + /Parent 3 0 R
  278 + /Resources <<
  279 + /Font <<
  280 + /F1 40 0 R
  281 + >>
  282 + /ProcSet 41 0 R
  283 + >>
  284 + /Type /Page
  285 +>>
  286 +endobj
  287 +
  288 +%% Page 10
  289 +15 0 obj
  290 +<<
  291 + /Contents 58 0 R
  292 + /MediaBox [
  293 + 0
  294 + 0
  295 + 612
  296 + 792
  297 + ]
  298 + /Parent 3 0 R
  299 + /Resources <<
  300 + /Font <<
  301 + /F1 40 0 R
  302 + >>
  303 + /ProcSet 41 0 R
  304 + >>
  305 + /Type /Page
  306 +>>
  307 +endobj
  308 +
  309 +%% Page 11
  310 +16 0 obj
  311 +<<
  312 + /Contents 60 0 R
  313 + /MediaBox [
  314 + 0
  315 + 0
  316 + 612
  317 + 792
  318 + ]
  319 + /Parent 3 0 R
  320 + /Resources <<
  321 + /Font <<
  322 + /F1 40 0 R
  323 + >>
  324 + /ProcSet 41 0 R
  325 + >>
  326 + /Type /Page
  327 +>>
  328 +endobj
  329 +
  330 +%% Page 12
  331 +17 0 obj
  332 +<<
  333 + /Contents 62 0 R
  334 + /MediaBox [
  335 + 0
  336 + 0
  337 + 612
  338 + 792
  339 + ]
  340 + /Parent 3 0 R
  341 + /Resources <<
  342 + /Font <<
  343 + /F1 40 0 R
  344 + >>
  345 + /ProcSet 41 0 R
  346 + >>
  347 + /Type /Page
  348 +>>
  349 +endobj
  350 +
  351 +%% Page 13
  352 +18 0 obj
  353 +<<
  354 + /Contents 64 0 R
  355 + /MediaBox [
  356 + 0
  357 + 0
  358 + 612
  359 + 792
  360 + ]
  361 + /Parent 3 0 R
  362 + /Resources <<
  363 + /Font <<
  364 + /F1 40 0 R
  365 + >>
  366 + /ProcSet 41 0 R
  367 + >>
  368 + /Type /Page
  369 +>>
  370 +endobj
  371 +
  372 +%% Page 14
  373 +19 0 obj
  374 +<<
  375 + /Contents 66 0 R
  376 + /MediaBox [
  377 + 0
  378 + 0
  379 + 612
  380 + 792
  381 + ]
  382 + /Parent 3 0 R
  383 + /Resources <<
  384 + /Font <<
  385 + /F1 40 0 R
  386 + >>
  387 + /ProcSet 41 0 R
  388 + >>
  389 + /Type /Page
  390 +>>
  391 +endobj
  392 +
  393 +%% Page 15
  394 +20 0 obj
  395 +<<
  396 + /Contents 68 0 R
  397 + /MediaBox [
  398 + 0
  399 + 0
  400 + 612
  401 + 792
  402 + ]
  403 + /Parent 3 0 R
  404 + /Resources <<
  405 + /Font <<
  406 + /F1 40 0 R
  407 + >>
  408 + /ProcSet 41 0 R
  409 + >>
  410 + /Type /Page
  411 +>>
  412 +endobj
  413 +
  414 +%% Page 16
  415 +21 0 obj
  416 +<<
  417 + /Contents 70 0 R
  418 + /MediaBox [
  419 + 0
  420 + 0
  421 + 612
  422 + 792
  423 + ]
  424 + /Parent 3 0 R
  425 + /Resources <<
  426 + /Font <<
  427 + /F1 40 0 R
  428 + >>
  429 + /ProcSet 41 0 R
  430 + >>
  431 + /Type /Page
  432 +>>
  433 +endobj
  434 +
  435 +%% Page 17
  436 +22 0 obj
  437 +<<
  438 + /Contents 72 0 R
  439 + /MediaBox [
  440 + 0
  441 + 0
  442 + 612
  443 + 792
  444 + ]
  445 + /Parent 3 0 R
  446 + /Resources <<
  447 + /Font <<
  448 + /F1 40 0 R
  449 + >>
  450 + /ProcSet 41 0 R
  451 + >>
  452 + /Type /Page
  453 +>>
  454 +endobj
  455 +
  456 +%% Page 18
  457 +23 0 obj
  458 +<<
  459 + /Contents 74 0 R
  460 + /MediaBox [
  461 + 0
  462 + 0
  463 + 612
  464 + 792
  465 + ]
  466 + /Parent 3 0 R
  467 + /Resources <<
  468 + /Font <<
  469 + /F1 40 0 R
  470 + >>
  471 + /ProcSet 41 0 R
  472 + >>
  473 + /Type /Page
  474 +>>
  475 +endobj
  476 +
  477 +%% Page 19
  478 +24 0 obj
  479 +<<
  480 + /Contents 76 0 R
  481 + /MediaBox [
  482 + 0
  483 + 0
  484 + 612
  485 + 792
  486 + ]
  487 + /Parent 3 0 R
  488 + /Resources <<
  489 + /Font <<
  490 + /F1 40 0 R
  491 + >>
  492 + /ProcSet 41 0 R
  493 + >>
  494 + /Type /Page
  495 +>>
  496 +endobj
  497 +
  498 +%% Page 20
  499 +25 0 obj
  500 +<<
  501 + /Contents 78 0 R
  502 + /MediaBox [
  503 + 0
  504 + 0
  505 + 612
  506 + 792
  507 + ]
  508 + /Parent 3 0 R
  509 + /Resources <<
  510 + /Font <<
  511 + /F1 40 0 R
  512 + >>
  513 + /ProcSet 41 0 R
  514 + >>
  515 + /Type /Page
  516 +>>
  517 +endobj
  518 +
  519 +%% Page 21
  520 +26 0 obj
  521 +<<
  522 + /Contents 80 0 R
  523 + /MediaBox [
  524 + 0
  525 + 0
  526 + 612
  527 + 792
  528 + ]
  529 + /Parent 3 0 R
  530 + /Resources <<
  531 + /Font <<
  532 + /F1 40 0 R
  533 + >>
  534 + /ProcSet 41 0 R
  535 + >>
  536 + /Type /Page
  537 +>>
  538 +endobj
  539 +
  540 +%% Page 22
  541 +27 0 obj
  542 +<<
  543 + /Contents 82 0 R
  544 + /MediaBox [
  545 + 0
  546 + 0
  547 + 612
  548 + 792
  549 + ]
  550 + /Parent 3 0 R
  551 + /Resources <<
  552 + /Font <<
  553 + /F1 40 0 R
  554 + >>
  555 + /ProcSet 41 0 R
  556 + >>
  557 + /Type /Page
  558 +>>
  559 +endobj
  560 +
  561 +%% Page 23
  562 +28 0 obj
  563 +<<
  564 + /Contents 84 0 R
  565 + /MediaBox [
  566 + 0
  567 + 0
  568 + 612
  569 + 792
  570 + ]
  571 + /Parent 3 0 R
  572 + /Resources <<
  573 + /Font <<
  574 + /F1 40 0 R
  575 + >>
  576 + /ProcSet 41 0 R
  577 + >>
  578 + /Type /Page
  579 +>>
  580 +endobj
  581 +
  582 +%% Page 24
  583 +29 0 obj
  584 +<<
  585 + /Contents 86 0 R
  586 + /MediaBox [
  587 + 0
  588 + 0
  589 + 612
  590 + 792
  591 + ]
  592 + /Parent 3 0 R
  593 + /Resources <<
  594 + /Font <<
  595 + /F1 40 0 R
  596 + >>
  597 + /ProcSet 41 0 R
  598 + >>
  599 + /Type /Page
  600 +>>
  601 +endobj
  602 +
  603 +%% Page 25
  604 +30 0 obj
  605 +<<
  606 + /Contents 88 0 R
  607 + /MediaBox [
  608 + 0
  609 + 0
  610 + 612
  611 + 792
  612 + ]
  613 + /Parent 3 0 R
  614 + /Resources <<
  615 + /Font <<
  616 + /F1 40 0 R
  617 + >>
  618 + /ProcSet 41 0 R
  619 + >>
  620 + /Type /Page
  621 +>>
  622 +endobj
  623 +
  624 +%% Page 26
  625 +31 0 obj
  626 +<<
  627 + /Contents 90 0 R
  628 + /MediaBox [
  629 + 0
  630 + 0
  631 + 612
  632 + 792
  633 + ]
  634 + /Parent 3 0 R
  635 + /Resources <<
  636 + /Font <<
  637 + /F1 40 0 R
  638 + >>
  639 + /ProcSet 41 0 R
  640 + >>
  641 + /Type /Page
  642 +>>
  643 +endobj
  644 +
  645 +%% Page 27
  646 +32 0 obj
  647 +<<
  648 + /Contents 92 0 R
  649 + /MediaBox [
  650 + 0
  651 + 0
  652 + 612
  653 + 792
  654 + ]
  655 + /Parent 3 0 R
  656 + /Resources <<
  657 + /Font <<
  658 + /F1 40 0 R
  659 + >>
  660 + /ProcSet 41 0 R
  661 + >>
  662 + /Type /Page
  663 +>>
  664 +endobj
  665 +
  666 +%% Page 28
  667 +33 0 obj
  668 +<<
  669 + /Contents 94 0 R
  670 + /MediaBox [
  671 + 0
  672 + 0
  673 + 612
  674 + 792
  675 + ]
  676 + /Parent 3 0 R
  677 + /Resources <<
  678 + /Font <<
  679 + /F1 40 0 R
  680 + >>
  681 + /ProcSet 41 0 R
  682 + >>
  683 + /Type /Page
  684 +>>
  685 +endobj
  686 +
  687 +%% Page 29
  688 +34 0 obj
  689 +<<
  690 + /Contents 96 0 R
  691 + /MediaBox [
  692 + 0
  693 + 0
  694 + 612
  695 + 792
  696 + ]
  697 + /Parent 3 0 R
  698 + /Resources <<
  699 + /Font <<
  700 + /F1 40 0 R
  701 + >>
  702 + /ProcSet 41 0 R
  703 + >>
  704 + /Type /Page
  705 +>>
  706 +endobj
  707 +
  708 +%% Page 30
  709 +35 0 obj
  710 +<<
  711 + /Contents 98 0 R
  712 + /MediaBox [
  713 + 0
  714 + 0
  715 + 612
  716 + 792
  717 + ]
  718 + /Parent 3 0 R
  719 + /Resources <<
  720 + /Font <<
  721 + /F1 40 0 R
  722 + >>
  723 + /ProcSet 41 0 R
  724 + >>
  725 + /Type /Page
  726 +>>
  727 +endobj
  728 +
  729 +36 0 obj
  730 +<<
  731 + /Count 3
  732 + /Dest [
  733 + 17 0 R
  734 + /Fit
  735 + ]
  736 + /First 100 0 R
  737 + /Last 101 0 R
  738 + /Next 37 0 R
  739 + /Parent 4 0 R
  740 + /Title (€Mern 1.1 -> 11: /Fit)
  741 + /Type /Outline
  742 +>>
  743 +endobj
  744 +
  745 +37 0 obj
  746 +<<
  747 + /Count 2
  748 + /Dest [
  749 + 19 0 R
  750 + /FitH
  751 + 792
  752 + ]
  753 + /First 102 0 R
  754 + /Last 103 0 R
  755 + /Parent 4 0 R
  756 + /Prev 36 0 R
  757 + /Title <feff2022005300710075006100730068002000f703c002ac00f700200031002e00320020002d003e002000310033003a0020002f00460069007400480020003700390032>
  758 + /Type /Outline
  759 +>>
  760 +endobj
  761 +
  762 +%% Contents for page 1
  763 +38 0 obj
  764 +<<
  765 + /Length 39 0 R
  766 +>>
  767 +stream
  768 +BT
  769 + /F1 24 Tf
  770 + 72 720 Td
  771 + (Soup 0) Tj
  772 +ET
  773 +endstream
  774 +endobj
  775 +
  776 +39 0 obj
  777 +44
  778 +endobj
  779 +
  780 +40 0 obj
  781 +<<
  782 + /BaseFont /Helvetica
  783 + /Encoding /WinAnsiEncoding
  784 + /Name /F1
  785 + /Subtype /Type1
  786 + /Type /Font
  787 +>>
  788 +endobj
  789 +
  790 +41 0 obj
  791 +[
  792 + /PDF
  793 + /Text
  794 +]
  795 +endobj
  796 +
  797 +%% Contents for page 2
  798 +42 0 obj
  799 +<<
  800 + /Length 43 0 R
  801 +>>
  802 +stream
  803 +BT
  804 + /F1 24 Tf
  805 + 72 720 Td
  806 + (Soup 1) Tj
  807 +ET
  808 +endstream
  809 +endobj
  810 +
  811 +43 0 obj
  812 +44
  813 +endobj
  814 +
  815 +%% Contents for page 3
  816 +44 0 obj
  817 +<<
  818 + /Length 45 0 R
  819 +>>
  820 +stream
  821 +BT
  822 + /F1 24 Tf
  823 + 72 720 Td
  824 + (Soup 2) Tj
  825 +ET
  826 +endstream
  827 +endobj
  828 +
  829 +45 0 obj
  830 +44
  831 +endobj
  832 +
  833 +%% Contents for page 4
  834 +46 0 obj
  835 +<<
  836 + /Length 47 0 R
  837 +>>
  838 +stream
  839 +BT
  840 + /F1 24 Tf
  841 + 72 720 Td
  842 + (Soup 3) Tj
  843 +ET
  844 +endstream
  845 +endobj
  846 +
  847 +47 0 obj
  848 +44
  849 +endobj
  850 +
  851 +%% Contents for page 5
  852 +48 0 obj
  853 +<<
  854 + /Length 49 0 R
  855 +>>
  856 +stream
  857 +BT
  858 + /F1 24 Tf
  859 + 72 720 Td
  860 + (Soup 4) Tj
  861 +ET
  862 +endstream
  863 +endobj
  864 +
  865 +49 0 obj
  866 +44
  867 +endobj
  868 +
  869 +%% Contents for page 6
  870 +50 0 obj
  871 +<<
  872 + /Length 51 0 R
  873 +>>
  874 +stream
  875 +BT
  876 + /F1 24 Tf
  877 + 72 720 Td
  878 + (Soup 5) Tj
  879 +ET
  880 +endstream
  881 +endobj
  882 +
  883 +51 0 obj
  884 +44
  885 +endobj
  886 +
  887 +%% Contents for page 7
  888 +52 0 obj
  889 +<<
  890 + /Length 53 0 R
  891 +>>
  892 +stream
  893 +BT
  894 + /F1 24 Tf
  895 + 72 720 Td
  896 + (Soup 6) Tj
  897 +ET
  898 +endstream
  899 +endobj
  900 +
  901 +53 0 obj
  902 +44
  903 +endobj
  904 +
  905 +%% Contents for page 8
  906 +54 0 obj
  907 +<<
  908 + /Length 55 0 R
  909 +>>
  910 +stream
  911 +BT
  912 + /F1 24 Tf
  913 + 72 720 Td
  914 + (Soup 7) Tj
  915 +ET
  916 +endstream
  917 +endobj
  918 +
  919 +55 0 obj
  920 +44
  921 +endobj
  922 +
  923 +%% Contents for page 9
  924 +56 0 obj
  925 +<<
  926 + /Length 57 0 R
  927 +>>
  928 +stream
  929 +BT
  930 + /F1 24 Tf
  931 + 72 720 Td
  932 + (Soup 8) Tj
  933 +ET
  934 +endstream
  935 +endobj
  936 +
  937 +57 0 obj
  938 +44
  939 +endobj
  940 +
  941 +%% Contents for page 10
  942 +58 0 obj
  943 +<<
  944 + /Length 59 0 R
  945 +>>
  946 +stream
  947 +BT
  948 + /F1 24 Tf
  949 + 72 720 Td
  950 + (Soup 9) Tj
  951 +ET
  952 +endstream
  953 +endobj
  954 +
  955 +59 0 obj
  956 +44
  957 +endobj
  958 +
  959 +%% Contents for page 11
  960 +60 0 obj
  961 +<<
  962 + /Length 61 0 R
  963 +>>
  964 +stream
  965 +BT
  966 + /F1 24 Tf
  967 + 72 720 Td
  968 + (Soup 10) Tj
  969 +ET
  970 +endstream
  971 +endobj
  972 +
  973 +61 0 obj
  974 +45
  975 +endobj
  976 +
  977 +%% Contents for page 12
  978 +62 0 obj
  979 +<<
  980 + /Length 63 0 R
  981 +>>
  982 +stream
  983 +BT
  984 + /F1 24 Tf
  985 + 72 720 Td
  986 + (Soup 11) Tj
  987 +ET
  988 +endstream
  989 +endobj
  990 +
  991 +63 0 obj
  992 +45
  993 +endobj
  994 +
  995 +%% Contents for page 13
  996 +64 0 obj
  997 +<<
  998 + /Length 65 0 R
  999 +>>
  1000 +stream
  1001 +BT
  1002 + /F1 24 Tf
  1003 + 72 720 Td
  1004 + (Soup 12) Tj
  1005 +ET
  1006 +endstream
  1007 +endobj
  1008 +
  1009 +65 0 obj
  1010 +45
  1011 +endobj
  1012 +
  1013 +%% Contents for page 14
  1014 +66 0 obj
  1015 +<<
  1016 + /Length 67 0 R
  1017 +>>
  1018 +stream
  1019 +BT
  1020 + /F1 24 Tf
  1021 + 72 720 Td
  1022 + (Soup 13) Tj
  1023 +ET
  1024 +endstream
  1025 +endobj
  1026 +
  1027 +67 0 obj
  1028 +45
  1029 +endobj
  1030 +
  1031 +%% Contents for page 15
  1032 +68 0 obj
  1033 +<<
  1034 + /Length 69 0 R
  1035 +>>
  1036 +stream
  1037 +BT
  1038 + /F1 24 Tf
  1039 + 72 720 Td
  1040 + (Soup 14) Tj
  1041 +ET
  1042 +endstream
  1043 +endobj
  1044 +
  1045 +69 0 obj
  1046 +45
  1047 +endobj
  1048 +
  1049 +%% Contents for page 16
  1050 +70 0 obj
  1051 +<<
  1052 + /Length 71 0 R
  1053 +>>
  1054 +stream
  1055 +BT
  1056 + /F1 24 Tf
  1057 + 72 720 Td
  1058 + (Soup 15) Tj
  1059 +ET
  1060 +endstream
  1061 +endobj
  1062 +
  1063 +71 0 obj
  1064 +45
  1065 +endobj
  1066 +
  1067 +%% Contents for page 17
  1068 +72 0 obj
  1069 +<<
  1070 + /Length 73 0 R
  1071 +>>
  1072 +stream
  1073 +BT
  1074 + /F1 24 Tf
  1075 + 72 720 Td
  1076 + (Soup 16) Tj
  1077 +ET
  1078 +endstream
  1079 +endobj
  1080 +
  1081 +73 0 obj
  1082 +45
  1083 +endobj
  1084 +
  1085 +%% Contents for page 18
  1086 +74 0 obj
  1087 +<<
  1088 + /Length 75 0 R
  1089 +>>
  1090 +stream
  1091 +BT
  1092 + /F1 24 Tf
  1093 + 72 720 Td
  1094 + (Soup 17) Tj
  1095 +ET
  1096 +endstream
  1097 +endobj
  1098 +
  1099 +75 0 obj
  1100 +45
  1101 +endobj
  1102 +
  1103 +%% Contents for page 19
  1104 +76 0 obj
  1105 +<<
  1106 + /Length 77 0 R
  1107 +>>
  1108 +stream
  1109 +BT
  1110 + /F1 24 Tf
  1111 + 72 720 Td
  1112 + (Soup 18) Tj
  1113 +ET
  1114 +endstream
  1115 +endobj
  1116 +
  1117 +77 0 obj
  1118 +45
  1119 +endobj
  1120 +
  1121 +%% Contents for page 20
  1122 +78 0 obj
  1123 +<<
  1124 + /Length 79 0 R
  1125 +>>
  1126 +stream
  1127 +BT
  1128 + /F1 24 Tf
  1129 + 72 720 Td
  1130 + (Soup 19) Tj
  1131 +ET
  1132 +endstream
  1133 +endobj
  1134 +
  1135 +79 0 obj
  1136 +45
  1137 +endobj
  1138 +
  1139 +%% Contents for page 21
  1140 +80 0 obj
  1141 +<<
  1142 + /Length 81 0 R
  1143 +>>
  1144 +stream
  1145 +BT
  1146 + /F1 24 Tf
  1147 + 72 720 Td
  1148 + (Soup 20) Tj
  1149 +ET
  1150 +endstream
  1151 +endobj
  1152 +
  1153 +81 0 obj
  1154 +45
  1155 +endobj
  1156 +
  1157 +%% Contents for page 22
  1158 +82 0 obj
  1159 +<<
  1160 + /Length 83 0 R
  1161 +>>
  1162 +stream
  1163 +BT
  1164 + /F1 24 Tf
  1165 + 72 720 Td
  1166 + (Soup 21) Tj
  1167 +ET
  1168 +endstream
  1169 +endobj
  1170 +
  1171 +83 0 obj
  1172 +45
  1173 +endobj
  1174 +
  1175 +%% Contents for page 23
  1176 +84 0 obj
  1177 +<<
  1178 + /Length 85 0 R
  1179 +>>
  1180 +stream
  1181 +BT
  1182 + /F1 24 Tf
  1183 + 72 720 Td
  1184 + (Soup 22) Tj
  1185 +ET
  1186 +endstream
  1187 +endobj
  1188 +
  1189 +85 0 obj
  1190 +45
  1191 +endobj
  1192 +
  1193 +%% Contents for page 24
  1194 +86 0 obj
  1195 +<<
  1196 + /Length 87 0 R
  1197 +>>
  1198 +stream
  1199 +BT
  1200 + /F1 24 Tf
  1201 + 72 720 Td
  1202 + (Soup 23) Tj
  1203 +ET
  1204 +endstream
  1205 +endobj
  1206 +
  1207 +87 0 obj
  1208 +45
  1209 +endobj
  1210 +
  1211 +%% Contents for page 25
  1212 +88 0 obj
  1213 +<<
  1214 + /Length 89 0 R
  1215 +>>
  1216 +stream
  1217 +BT
  1218 + /F1 24 Tf
  1219 + 72 720 Td
  1220 + (Soup 24) Tj
  1221 +ET
  1222 +endstream
  1223 +endobj
  1224 +
  1225 +89 0 obj
  1226 +45
  1227 +endobj
  1228 +
  1229 +%% Contents for page 26
  1230 +90 0 obj
  1231 +<<
  1232 + /Length 91 0 R
  1233 +>>
  1234 +stream
  1235 +BT
  1236 + /F1 24 Tf
  1237 + 72 720 Td
  1238 + (Soup 25) Tj
  1239 +ET
  1240 +endstream
  1241 +endobj
  1242 +
  1243 +91 0 obj
  1244 +45
  1245 +endobj
  1246 +
  1247 +%% Contents for page 27
  1248 +92 0 obj
  1249 +<<
  1250 + /Length 93 0 R
  1251 +>>
  1252 +stream
  1253 +BT
  1254 + /F1 24 Tf
  1255 + 72 720 Td
  1256 + (Soup 26) Tj
  1257 +ET
  1258 +endstream
  1259 +endobj
  1260 +
  1261 +93 0 obj
  1262 +45
  1263 +endobj
  1264 +
  1265 +%% Contents for page 28
  1266 +94 0 obj
  1267 +<<
  1268 + /Length 95 0 R
  1269 +>>
  1270 +stream
  1271 +BT
  1272 + /F1 24 Tf
  1273 + 72 720 Td
  1274 + (Soup 27) Tj
  1275 +ET
  1276 +endstream
  1277 +endobj
  1278 +
  1279 +95 0 obj
  1280 +45
  1281 +endobj
  1282 +
  1283 +%% Contents for page 29
  1284 +96 0 obj
  1285 +<<
  1286 + /Length 97 0 R
  1287 +>>
  1288 +stream
  1289 +BT
  1290 + /F1 24 Tf
  1291 + 72 720 Td
  1292 + (Soup 28) Tj
  1293 +ET
  1294 +endstream
  1295 +endobj
  1296 +
  1297 +97 0 obj
  1298 +45
  1299 +endobj
  1300 +
  1301 +%% Contents for page 30
  1302 +98 0 obj
  1303 +<<
  1304 + /Length 99 0 R
  1305 +>>
  1306 +stream
  1307 +BT
  1308 + /F1 24 Tf
  1309 + 72 720 Td
  1310 + (Soup 29) Tj
  1311 +ET
  1312 +endstream
  1313 +endobj
  1314 +
  1315 +99 0 obj
  1316 +45
  1317 +endobj
  1318 +
  1319 +100 0 obj
  1320 +<<
  1321 + /Count -2
  1322 + /Dest [
  1323 + 18 0 R
  1324 + /FitV
  1325 + 100
  1326 + ]
  1327 + /First 104 0 R
  1328 + /Last 105 0 R
  1329 + /Next 101 0 R
  1330 + /Parent 36 0 R
  1331 + /Title (€Biherbadem 1.1.1 -> 12: /FitV 100)
  1332 + /Type /Outline
  1333 +>>
  1334 +endobj
  1335 +
  1336 +101 0 obj
  1337 +<<
  1338 + /Count 1
  1339 + /Dest [
  1340 + 18 0 R
  1341 + /XYZ
  1342 + null
  1343 + null
  1344 + null
  1345 + ]
  1346 + /First 106 0 R
  1347 + /Last 106 0 R
  1348 + /Parent 36 0 R
  1349 + /Prev 100 0 R
  1350 + /Title (€Gawehwehweh 1.1.2 -> 12: /XYZ null null null)
  1351 + /Type /Outline
  1352 +>>
  1353 +endobj
  1354 +
  1355 +102 0 obj
  1356 +<<
  1357 + /Dest /gabeebee
  1358 + /Next 103 0 R
  1359 + /Parent 37 0 R
  1360 + /Title (€Gabeebeebee (name) 1.2.1 -> 1: /FitR 66 714 180 770)
  1361 + /Type /Outline
  1362 +>>
  1363 +endobj
  1364 +
  1365 +103 0 obj
  1366 +<<
  1367 + /A <<
  1368 + /Type /Action
  1369 + /S /GoTo
  1370 + /D [
  1371 + 6 0 R
  1372 + /XYZ
  1373 + null
  1374 + null
  1375 + null
  1376 + ]
  1377 + >>
  1378 + /Parent 37 0 R
  1379 + /Prev 102 0 R
  1380 + /Title (€Merschqaberschq (A) 1.2.2 -> 0: /XYZ null null null)
  1381 + /Type /Outline
  1382 +>>
  1383 +endobj
  1384 +
  1385 +104 0 obj
  1386 +<<
  1387 + /A <<
  1388 + /Type /Action
  1389 + /S /GoTo
  1390 + /D /glarp
  1391 + >>
  1392 + /Next 105 0 R
  1393 + /Parent 100 0 R
  1394 + /Title (€Glarpenspliel (A, name) 1.1.1.1 -> 18: /XYZ null null null)
  1395 + /Type /Outline
  1396 +>>
  1397 +endobj
  1398 +
  1399 +105 0 obj
  1400 +<<
  1401 + /Dest [
  1402 + 25 0 R
  1403 + /XYZ
  1404 + null
  1405 + null
  1406 + null
  1407 + ]
  1408 + /Parent 100 0 R
  1409 + /Prev 104 0 R
  1410 + /Title (€Hagoogamagoogle 1.1.1.2 -> 19: /XYZ null null null)
  1411 + /Type /Outline
  1412 +>>
  1413 +endobj
  1414 +
  1415 +106 0 obj
  1416 +<<
  1417 + /Dest [
  1418 + 28 0 R
  1419 + /XYZ
  1420 + null
  1421 + null
  1422 + null
  1423 + ]
  1424 + /Parent 101 0 R
  1425 + /Title (€Jawarnianbvarwash 1.1.2.1 -> 22: /XYZ null null null)
  1426 + /Type /Outline
  1427 +>>
  1428 +endobj
  1429 +
  1430 +107 0 obj
  1431 +<<
  1432 + /gabeebee [
  1433 + 7 0 R
  1434 + /FitR
  1435 + 66
  1436 + 714
  1437 + 180
  1438 + 770
  1439 + ]
  1440 + /glarp [
  1441 + 24 0 R
  1442 + /XYZ
  1443 + null
  1444 + null
  1445 + null
  1446 + ]
  1447 +>>
  1448 +endobj
  1449 +
  1450 +xref
  1451 +0 108
  1452 +0000000000 65535 f
  1453 +0000000025 00000 n
  1454 +0000000198 00000 n
  1455 +0000000278 00000 n
  1456 +0000000667 00000 n
  1457 +0000000886 00000 n
  1458 +0000001061 00000 n
  1459 +0000001266 00000 n
  1460 +0000001471 00000 n
  1461 +0000001676 00000 n
  1462 +0000001881 00000 n
  1463 +0000002087 00000 n
  1464 +0000002293 00000 n
  1465 +0000002499 00000 n
  1466 +0000002705 00000 n
  1467 +0000002912 00000 n
  1468 +0000003119 00000 n
  1469 +0000003326 00000 n
  1470 +0000003533 00000 n
  1471 +0000003740 00000 n
  1472 +0000003947 00000 n
  1473 +0000004154 00000 n
  1474 +0000004361 00000 n
  1475 +0000004568 00000 n
  1476 +0000004775 00000 n
  1477 +0000004982 00000 n
  1478 +0000005189 00000 n
  1479 +0000005396 00000 n
  1480 +0000005603 00000 n
  1481 +0000005810 00000 n
  1482 +0000006017 00000 n
  1483 +0000006224 00000 n
  1484 +0000006431 00000 n
  1485 +0000006638 00000 n
  1486 +0000006845 00000 n
  1487 +0000007052 00000 n
  1488 +0000007248 00000 n
  1489 +0000007430 00000 n
  1490 +0000007759 00000 n
  1491 +0000007860 00000 n
  1492 +0000007880 00000 n
  1493 +0000007999 00000 n
  1494 +0000008058 00000 n
  1495 +0000008159 00000 n
  1496 +0000008202 00000 n
  1497 +0000008303 00000 n
  1498 +0000008346 00000 n
  1499 +0000008447 00000 n
  1500 +0000008490 00000 n
  1501 +0000008591 00000 n
  1502 +0000008634 00000 n
  1503 +0000008735 00000 n
  1504 +0000008778 00000 n
  1505 +0000008879 00000 n
  1506 +0000008922 00000 n
  1507 +0000009023 00000 n
  1508 +0000009066 00000 n
  1509 +0000009167 00000 n
  1510 +0000009211 00000 n
  1511 +0000009312 00000 n
  1512 +0000009356 00000 n
  1513 +0000009458 00000 n
  1514 +0000009502 00000 n
  1515 +0000009604 00000 n
  1516 +0000009648 00000 n
  1517 +0000009750 00000 n
  1518 +0000009794 00000 n
  1519 +0000009896 00000 n
  1520 +0000009940 00000 n
  1521 +0000010042 00000 n
  1522 +0000010086 00000 n
  1523 +0000010188 00000 n
  1524 +0000010232 00000 n
  1525 +0000010334 00000 n
  1526 +0000010378 00000 n
  1527 +0000010480 00000 n
  1528 +0000010524 00000 n
  1529 +0000010626 00000 n
  1530 +0000010670 00000 n
  1531 +0000010772 00000 n
  1532 +0000010816 00000 n
  1533 +0000010918 00000 n
  1534 +0000010962 00000 n
  1535 +0000011064 00000 n
  1536 +0000011108 00000 n
  1537 +0000011210 00000 n
  1538 +0000011254 00000 n
  1539 +0000011356 00000 n
  1540 +0000011400 00000 n
  1541 +0000011502 00000 n
  1542 +0000011546 00000 n
  1543 +0000011648 00000 n
  1544 +0000011692 00000 n
  1545 +0000011794 00000 n
  1546 +0000011838 00000 n
  1547 +0000011940 00000 n
  1548 +0000011984 00000 n
  1549 +0000012086 00000 n
  1550 +0000012130 00000 n
  1551 +0000012232 00000 n
  1552 +0000012252 00000 n
  1553 +0000012460 00000 n
  1554 +0000012696 00000 n
  1555 +0000012852 00000 n
  1556 +0000013105 00000 n
  1557 +0000013309 00000 n
  1558 +0000013508 00000 n
  1559 +0000013693 00000 n
  1560 +trailer <<
  1561 + /Root 1 0 R
  1562 + /Size 108
  1563 + /ID [<d52b0c17c216506962ae6743afec260f><d52b0c17c216506962ae6743afec260f>]
  1564 +>>
  1565 +startxref
  1566 +13848
  1567 +%%EOF
qpdf/qtest/qpdf/page-labels-and-outlines.out 0 → 100644
  1 +page 0: Trepsicle 1.2.2 -> 0: /XYZ null null null -> [ 3 0 R /XYZ null null null ]
  2 +page 1: Trepsichord 1.2.1 -> 1: /FitR 66 714 180 770 -> [ 4 0 R /FitR 66 714 180 770 ]
  3 +page 5: Isís 1 -> 5: /XYZ null null null -> [ 8 0 R /XYZ null null null ]
  4 +page 11: Amanda 1.1 -> 11: /Fit -> [ 14 0 R /Fit ]
  5 +page 12: Isosicle 1.1.1 -> 12: /FitV 100 -> [ 15 0 R /FitV 100 ]
  6 +page 12: Isosicle 1.1.2 -> 12: /XYZ null null null -> [ 15 0 R /XYZ null null null ]
  7 +page 13: Sandy ÷Σανδι÷ 1.2 -> 13: /FitH 792 -> [ 16 0 R /FitH 792 ]
  8 +page 15: Trepak 2 -> 15: /XYZ 66 756 3 -> [ 18 0 R /XYZ 66 756 3 ]
  9 +page 18: Isosicle 1.1.1.1 -> 18: /XYZ null null null -> [ 21 0 R /XYZ null null null ]
  10 +page 19: Isosicle 1.1.1.2 -> 19: /XYZ null null null -> [ 22 0 R /XYZ null null null ]
  11 +page 22: Isosicle 1.1.2.1 -> 22: /XYZ null null null -> [ 25 0 R /XYZ null null null ]
  12 +test 49 done
qpdf/test_driver.cc
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 #include <qpdf/QPDFNumberTreeObjectHelper.hh> 9 #include <qpdf/QPDFNumberTreeObjectHelper.hh>
10 #include <qpdf/QPDFNameTreeObjectHelper.hh> 10 #include <qpdf/QPDFNameTreeObjectHelper.hh>
11 #include <qpdf/QPDFPageLabelDocumentHelper.hh> 11 #include <qpdf/QPDFPageLabelDocumentHelper.hh>
  12 +#include <qpdf/QPDFOutlineDocumentHelper.hh>
12 #include <qpdf/QUtil.hh> 13 #include <qpdf/QUtil.hh>
13 #include <qpdf/QTC.hh> 14 #include <qpdf/QTC.hh>
14 #include <qpdf/Pl_StdioFile.hh> 15 #include <qpdf/Pl_StdioFile.hh>
@@ -1730,6 +1731,29 @@ void runtest(int n, char const* filename1, char const* arg2) @@ -1730,6 +1731,29 @@ void runtest(int n, char const* filename1, char const* arg2)
1730 assert(ntoh.findObject("07 sev\xe2\x80\xa2n", oh)); 1731 assert(ntoh.findObject("07 sev\xe2\x80\xa2n", oh));
1731 assert("seven!" == oh.getStringValue()); 1732 assert("seven!" == oh.getStringValue());
1732 } 1733 }
  1734 + else if (n == 49)
  1735 + {
  1736 + // Outlines
  1737 + std::vector<QPDFPageObjectHelper> pages =
  1738 + QPDFPageDocumentHelper(pdf).getAllPages();
  1739 + QPDFOutlineDocumentHelper odh(pdf);
  1740 + int pageno = 0;
  1741 + for (std::vector<QPDFPageObjectHelper>::iterator iter = pages.begin();
  1742 + iter != pages.end(); ++iter, ++pageno)
  1743 + {
  1744 + std::list<QPDFOutlineObjectHelper> outlines =
  1745 + odh.getOutlinesForPage((*iter).getObjectHandle().getObjGen());
  1746 + for (std::list<QPDFOutlineObjectHelper>::iterator oiter =
  1747 + outlines.begin();
  1748 + oiter != outlines.end(); ++oiter)
  1749 + {
  1750 + std::cout
  1751 + << "page " << pageno << ": "
  1752 + << (*oiter).getTitle() << " -> "
  1753 + << (*oiter).getDest().unparseResolved() << std::endl;
  1754 + }
  1755 + }
  1756 + }
1733 else 1757 else
1734 { 1758 {
1735 throw std::runtime_error(std::string("invalid test ") + 1759 throw std::runtime_error(std::string("invalid test ") +