Commit 35dd11f3560f820d01da9acb6c5425afcdeaea93

Authored by Jay Berkenbilt
1 parent 71e86272

Allow --rotate=0

ChangeLog
  1 +2021-02-20 Jay Berkenbilt <ejb@ql.org>
  2 +
  3 + * Allow --rotate=0 to clear rotation from a page.
  4 +
1 5 2021-02-18 Jay Berkenbilt <ejb@ql.org>
2 6  
3 7 * Add QPDFAcroFormDocumentHelper::addFormField, which adds a new
... ...
libqpdf/QPDFObjectHandle.cc
... ... @@ -1579,6 +1579,8 @@ QPDFObjectHandle::rotatePage(int angle, bool relative)
1579 1579 new_angle += old_angle;
1580 1580 }
1581 1581 new_angle = (new_angle + 360) % 360;
  1582 + // Make this explicit even with new_angle == 0 since /Rotate can
  1583 + // be inherited.
1582 1584 replaceKey("/Rotate", QPDFObjectHandle::newInteger(new_angle));
1583 1585 }
1584 1586  
... ...
manual/qpdf-manual.xml
... ... @@ -1008,7 +1008,7 @@ make
1008 1008 linkend="ref.page-selection"/>. If the page range is omitted,
1009 1009 the rotation is applied to all pages. The
1010 1010 <option>angle</option> portion of the parameter may be either
1011   - 90, 180, or 270. If preceded by <option>+</option> or
  1011 + 0, 90, 180, or 270. If preceded by <option>+</option> or
1012 1012 <option>-</option>, the angle is added to or subtracted from
1013 1013 the specified pages' original rotations. This is almost always
1014 1014 what you want. Otherwise the pages' rotations are set to the
... ... @@ -5175,6 +5175,12 @@ print &quot;\n&quot;;
5175 5175 from the given files.
5176 5176 </para>
5177 5177 </listitem>
  5178 + <listitem>
  5179 + <para>
  5180 + It is now valid to provide <option>--rotate=0</option> to
  5181 + clear rotation from a page.
  5182 + </para>
  5183 + </listitem>
5178 5184 </itemizedlist>
5179 5185 </listitem>
5180 5186 <listitem>
... ...
qpdf/qpdf.cc
... ... @@ -1374,8 +1374,8 @@ ArgParser::argHelp()
1374 1374 << " concatenated\n"
1375 1375 << "--flatten-rotation move page rotation from /Rotate key to content\n"
1376 1376 << "--rotate=[+|-]angle[:page-range]\n"
1377   - << " rotate each specified page 90, 180, or 270 degrees;\n"
1378   - << " rotate all pages if no page range is given\n"
  1377 + << " rotate each specified page 0, 90, 180, or 270\n"
  1378 + << " degrees; rotate all pages if no page range is given\n"
1379 1379 << "--split-pages=[n] write each output page to a separate file\n"
1380 1380 << "--overlay options -- overlay pages from another file\n"
1381 1381 << "--underlay options -- underlay pages from another file\n"
... ... @@ -1399,7 +1399,7 @@ ArgParser::argHelp()
1399 1399 << "or investigatory purposes. See manual for further discussion.\n"
1400 1400 << "\n"
1401 1401 << "The --rotate flag can be used to specify pages to rotate pages either\n"
1402   - << "90, 180, or 270 degrees. The page range is specified in the same\n"
  1402 + << "0, 90, 180, or 270 degrees. The page range is specified in the same\n"
1403 1403 << "format as with the --pages option, described below. Repeat the option\n"
1404 1404 << "to rotate multiple groups of pages. If the angle is preceded by + or -,\n"
1405 1405 << "it is added to or subtracted from the original rotation. Otherwise, the\n"
... ... @@ -3448,7 +3448,8 @@ ArgParser::parseRotationParameter(std::string const&amp; parameter)
3448 3448 // ignore
3449 3449 }
3450 3450 if (range_valid &&
3451   - ((angle_str == "90") || (angle_str == "180") || (angle_str == "270")))
  3451 + ((angle_str == "0") ||(angle_str == "90") ||
  3452 + (angle_str == "180") || (angle_str == "270")))
3452 3453 {
3453 3454 int angle = QUtil::string_to_int(angle_str.c_str());
3454 3455 if (relative == -1)
... ...
qpdf/qtest/qpdf.test
... ... @@ -2241,7 +2241,7 @@ $td-&gt;runtest(&quot;explicit keep files open = n&quot;,
2241 2241 show_ntests();
2242 2242 # ----------
2243 2243 $td->notify("--- Rotate Pages ---");
2244   -$n_tests += 4;
  2244 +$n_tests += 6;
2245 2245 # Do absolute, positive, and negative on ranges that include
2246 2246 # inherited and non-inherited.
2247 2247 # Pages 11-15 inherit /Rotate 90
... ... @@ -2258,6 +2258,14 @@ $td-&gt;runtest(&quot;check output&quot;,
2258 2258 {$td->FILE => "a.pdf"},
2259 2259 {$td->FILE => "rotated.pdf"});
2260 2260  
  2261 +$td->runtest("remove rotation",
  2262 + {$td->COMMAND => "qpdf --static-id rotated.pdf a.pdf" .
  2263 + " --qdf --no-original-object-ids --rotate=0"},
  2264 + {$td->STRING => "", $td->EXIT_STATUS => 0});
  2265 +$td->runtest("check output",
  2266 + {$td->FILE => "a.pdf"},
  2267 + {$td->FILE => "unrotated.pdf"});
  2268 +
2261 2269 $td->runtest("rotate all pages",
2262 2270 {$td->COMMAND =>
2263 2271 "qpdf --static-id --rotate=180 minimal.pdf a.pdf"},
... ...
qpdf/qtest/qpdf/unrotated.pdf 0 โ†’ 100644
  1 +%PDF-1.4
  2 +%ยฟรทยขรพ
  3 +%QDF-1.0
  4 +
  5 +1 0 obj
  6 +<<
  7 + /Pages 3 0 R
  8 + /Type /Catalog
  9 +>>
  10 +endobj
  11 +
  12 +2 0 obj
  13 +<<
  14 + /CreationDate (D:20120721200217)
  15 + /Producer (Apex PDFWriter)
  16 +>>
  17 +endobj
  18 +
  19 +3 0 obj
  20 +<<
  21 + /Count 20
  22 + /Kids [
  23 + 4 0 R
  24 + 5 0 R
  25 + 6 0 R
  26 + 7 0 R
  27 + 8 0 R
  28 + 9 0 R
  29 + 10 0 R
  30 + 11 0 R
  31 + 12 0 R
  32 + 13 0 R
  33 + 14 0 R
  34 + 15 0 R
  35 + 16 0 R
  36 + 17 0 R
  37 + 18 0 R
  38 + 19 0 R
  39 + ]
  40 + /Type /Pages
  41 +>>
  42 +endobj
  43 +
  44 +%% Page 1
  45 +4 0 obj
  46 +<<
  47 + /Contents 20 0 R
  48 + /MediaBox [
  49 + 0
  50 + 0
  51 + 612
  52 + 792
  53 + ]
  54 + /Parent 3 0 R
  55 + /Resources <<
  56 + /Font <<
  57 + /F1 22 0 R
  58 + >>
  59 + /ProcSet [
  60 + /PDF
  61 + /Text
  62 + ]
  63 + >>
  64 + /Rotate 0
  65 + /Type /Page
  66 +>>
  67 +endobj
  68 +
  69 +%% Page 2
  70 +5 0 obj
  71 +<<
  72 + /Contents 23 0 R
  73 + /MediaBox [
  74 + 0
  75 + 0
  76 + 612
  77 + 792
  78 + ]
  79 + /Parent 3 0 R
  80 + /Resources <<
  81 + /Font <<
  82 + /F1 22 0 R
  83 + >>
  84 + /ProcSet [
  85 + /PDF
  86 + /Text
  87 + ]
  88 + >>
  89 + /Rotate 0
  90 + /Type /Page
  91 +>>
  92 +endobj
  93 +
  94 +%% Page 3
  95 +6 0 obj
  96 +<<
  97 + /Contents 25 0 R
  98 + /MediaBox [
  99 + 0
  100 + 0
  101 + 612
  102 + 792
  103 + ]
  104 + /Parent 3 0 R
  105 + /Resources <<
  106 + /Font <<
  107 + /F1 22 0 R
  108 + >>
  109 + /ProcSet [
  110 + /PDF
  111 + /Text
  112 + ]
  113 + >>
  114 + /Rotate 0
  115 + /Type /Page
  116 +>>
  117 +endobj
  118 +
  119 +%% Page 4
  120 +7 0 obj
  121 +<<
  122 + /Contents 27 0 R
  123 + /MediaBox [
  124 + 0
  125 + 0
  126 + 612
  127 + 792
  128 + ]
  129 + /Parent 3 0 R
  130 + /Resources <<
  131 + /Font <<
  132 + /F1 22 0 R
  133 + >>
  134 + /ProcSet [
  135 + /PDF
  136 + /Text
  137 + ]
  138 + >>
  139 + /Rotate 0
  140 + /Type /Page
  141 +>>
  142 +endobj
  143 +
  144 +%% Page 5
  145 +8 0 obj
  146 +<<
  147 + /Contents 29 0 R
  148 + /MediaBox [
  149 + 0
  150 + 0
  151 + 612
  152 + 792
  153 + ]
  154 + /Parent 3 0 R
  155 + /Resources <<
  156 + /Font <<
  157 + /F1 22 0 R
  158 + >>
  159 + /ProcSet [
  160 + /PDF
  161 + /Text
  162 + ]
  163 + >>
  164 + /Rotate 0
  165 + /Type /Page
  166 +>>
  167 +endobj
  168 +
  169 +%% Page 6
  170 +9 0 obj
  171 +<<
  172 + /Contents 31 0 R
  173 + /MediaBox [
  174 + 0
  175 + 0
  176 + 612
  177 + 792
  178 + ]
  179 + /Parent 3 0 R
  180 + /Resources <<
  181 + /Font <<
  182 + /F1 22 0 R
  183 + >>
  184 + /ProcSet [
  185 + /PDF
  186 + /Text
  187 + ]
  188 + >>
  189 + /Rotate 0
  190 + /Type /Page
  191 +>>
  192 +endobj
  193 +
  194 +%% Page 7
  195 +10 0 obj
  196 +<<
  197 + /Contents 33 0 R
  198 + /MediaBox [
  199 + 0
  200 + 0
  201 + 612
  202 + 792
  203 + ]
  204 + /Parent 3 0 R
  205 + /Resources <<
  206 + /Font <<
  207 + /F1 22 0 R
  208 + >>
  209 + /ProcSet [
  210 + /PDF
  211 + /Text
  212 + ]
  213 + >>
  214 + /Rotate 0
  215 + /Type /Page
  216 +>>
  217 +endobj
  218 +
  219 +%% Page 8
  220 +11 0 obj
  221 +<<
  222 + /Contents 35 0 R
  223 + /MediaBox [
  224 + 0
  225 + 0
  226 + 612
  227 + 792
  228 + ]
  229 + /Parent 3 0 R
  230 + /Resources <<
  231 + /Font <<
  232 + /F1 22 0 R
  233 + >>
  234 + /ProcSet [
  235 + /PDF
  236 + /Text
  237 + ]
  238 + >>
  239 + /Rotate 0
  240 + /Type /Page
  241 +>>
  242 +endobj
  243 +
  244 +%% Page 9
  245 +12 0 obj
  246 +<<
  247 + /Contents 37 0 R
  248 + /MediaBox [
  249 + 0
  250 + 0
  251 + 612
  252 + 792
  253 + ]
  254 + /Parent 3 0 R
  255 + /Resources <<
  256 + /Font <<
  257 + /F1 22 0 R
  258 + >>
  259 + /ProcSet [
  260 + /PDF
  261 + /Text
  262 + ]
  263 + >>
  264 + /Rotate 0
  265 + /Type /Page
  266 +>>
  267 +endobj
  268 +
  269 +%% Page 10
  270 +13 0 obj
  271 +<<
  272 + /Contents 39 0 R
  273 + /MediaBox [
  274 + 0
  275 + 0
  276 + 612
  277 + 792
  278 + ]
  279 + /Parent 3 0 R
  280 + /Resources <<
  281 + /Font <<
  282 + /F1 22 0 R
  283 + >>
  284 + /ProcSet [
  285 + /PDF
  286 + /Text
  287 + ]
  288 + >>
  289 + /Rotate 0
  290 + /Type /Page
  291 +>>
  292 +endobj
  293 +
  294 +14 0 obj
  295 +<<
  296 + /Count 5
  297 + /Kids [
  298 + 41 0 R
  299 + 42 0 R
  300 + 43 0 R
  301 + 44 0 R
  302 + 45 0 R
  303 + ]
  304 + /Parent 3 0 R
  305 + /Rotate 90
  306 + /Type /Pages
  307 +>>
  308 +endobj
  309 +
  310 +%% Page 16
  311 +15 0 obj
  312 +<<
  313 + /Contents 46 0 R
  314 + /MediaBox [
  315 + 0
  316 + 0
  317 + 612
  318 + 792
  319 + ]
  320 + /Parent 3 0 R
  321 + /Resources <<
  322 + /Font <<
  323 + /F1 22 0 R
  324 + >>
  325 + /ProcSet [
  326 + /PDF
  327 + /Text
  328 + ]
  329 + >>
  330 + /Rotate 0
  331 + /Type /Page
  332 +>>
  333 +endobj
  334 +
  335 +%% Page 17
  336 +16 0 obj
  337 +<<
  338 + /Contents 48 0 R
  339 + /MediaBox [
  340 + 0
  341 + 0
  342 + 612
  343 + 792
  344 + ]
  345 + /Parent 3 0 R
  346 + /Resources <<
  347 + /Font <<
  348 + /F1 22 0 R
  349 + >>
  350 + /ProcSet [
  351 + /PDF
  352 + /Text
  353 + ]
  354 + >>
  355 + /Rotate 0
  356 + /Type /Page
  357 +>>
  358 +endobj
  359 +
  360 +%% Page 18
  361 +17 0 obj
  362 +<<
  363 + /Contents 50 0 R
  364 + /MediaBox [
  365 + 0
  366 + 0
  367 + 612
  368 + 792
  369 + ]
  370 + /Parent 3 0 R
  371 + /Resources <<
  372 + /Font <<
  373 + /F1 22 0 R
  374 + >>
  375 + /ProcSet [
  376 + /PDF
  377 + /Text
  378 + ]
  379 + >>
  380 + /Rotate 0
  381 + /Type /Page
  382 +>>
  383 +endobj
  384 +
  385 +%% Page 19
  386 +18 0 obj
  387 +<<
  388 + /Contents 52 0 R
  389 + /MediaBox [
  390 + 0
  391 + 0
  392 + 612
  393 + 792
  394 + ]
  395 + /Parent 3 0 R
  396 + /Resources <<
  397 + /Font <<
  398 + /F1 22 0 R
  399 + >>
  400 + /ProcSet [
  401 + /PDF
  402 + /Text
  403 + ]
  404 + >>
  405 + /Rotate 0
  406 + /Type /Page
  407 +>>
  408 +endobj
  409 +
  410 +%% Page 20
  411 +19 0 obj
  412 +<<
  413 + /Contents 54 0 R
  414 + /MediaBox [
  415 + 0
  416 + 0
  417 + 612
  418 + 792
  419 + ]
  420 + /Parent 3 0 R
  421 + /Resources <<
  422 + /Font <<
  423 + /F1 22 0 R
  424 + >>
  425 + /ProcSet [
  426 + /PDF
  427 + /Text
  428 + ]
  429 + >>
  430 + /Rotate 0
  431 + /Type /Page
  432 +>>
  433 +endobj
  434 +
  435 +%% Contents for page 1
  436 +20 0 obj
  437 +<<
  438 + /Length 21 0 R
  439 +>>
  440 +stream
  441 +BT /F1 15 Tf 72 720 Td (Original page 1) Tj ET
  442 +endstream
  443 +endobj
  444 +
  445 +21 0 obj
  446 +47
  447 +endobj
  448 +
  449 +22 0 obj
  450 +<<
  451 + /BaseFont /Times-Roman
  452 + /Encoding /WinAnsiEncoding
  453 + /Subtype /Type1
  454 + /Type /Font
  455 +>>
  456 +endobj
  457 +
  458 +%% Contents for page 2
  459 +23 0 obj
  460 +<<
  461 + /Length 24 0 R
  462 +>>
  463 +stream
  464 +BT /F1 15 Tf 72 720 Td (Original page 2) Tj ET
  465 +endstream
  466 +endobj
  467 +
  468 +24 0 obj
  469 +47
  470 +endobj
  471 +
  472 +%% Contents for page 3
  473 +25 0 obj
  474 +<<
  475 + /Length 26 0 R
  476 +>>
  477 +stream
  478 +BT /F1 15 Tf 72 720 Td (Original page 3) Tj ET
  479 +endstream
  480 +endobj
  481 +
  482 +26 0 obj
  483 +47
  484 +endobj
  485 +
  486 +%% Contents for page 4
  487 +27 0 obj
  488 +<<
  489 + /Length 28 0 R
  490 +>>
  491 +stream
  492 +BT /F1 15 Tf 72 720 Td (Original page 4) Tj ET
  493 +endstream
  494 +endobj
  495 +
  496 +28 0 obj
  497 +47
  498 +endobj
  499 +
  500 +%% Contents for page 5
  501 +29 0 obj
  502 +<<
  503 + /Length 30 0 R
  504 +>>
  505 +stream
  506 +BT /F1 15 Tf 72 720 Td (Original page 5) Tj ET
  507 +endstream
  508 +endobj
  509 +
  510 +30 0 obj
  511 +47
  512 +endobj
  513 +
  514 +%% Contents for page 6
  515 +31 0 obj
  516 +<<
  517 + /Length 32 0 R
  518 +>>
  519 +stream
  520 +BT /F1 15 Tf 72 720 Td (Original page 6) Tj ET
  521 +endstream
  522 +endobj
  523 +
  524 +32 0 obj
  525 +47
  526 +endobj
  527 +
  528 +%% Contents for page 7
  529 +33 0 obj
  530 +<<
  531 + /Length 34 0 R
  532 +>>
  533 +stream
  534 +BT /F1 15 Tf 72 720 Td (Original page 7) Tj ET
  535 +endstream
  536 +endobj
  537 +
  538 +34 0 obj
  539 +47
  540 +endobj
  541 +
  542 +%% Contents for page 8
  543 +35 0 obj
  544 +<<
  545 + /Length 36 0 R
  546 +>>
  547 +stream
  548 +BT /F1 15 Tf 72 720 Td (Original page 8) Tj ET
  549 +endstream
  550 +endobj
  551 +
  552 +36 0 obj
  553 +47
  554 +endobj
  555 +
  556 +%% Contents for page 9
  557 +37 0 obj
  558 +<<
  559 + /Length 38 0 R
  560 +>>
  561 +stream
  562 +BT /F1 15 Tf 72 720 Td (Original page 9) Tj ET
  563 +endstream
  564 +endobj
  565 +
  566 +38 0 obj
  567 +47
  568 +endobj
  569 +
  570 +%% Contents for page 10
  571 +39 0 obj
  572 +<<
  573 + /Length 40 0 R
  574 +>>
  575 +stream
  576 +BT /F1 15 Tf 72 720 Td (Original page 10) Tj ET
  577 +endstream
  578 +endobj
  579 +
  580 +40 0 obj
  581 +48
  582 +endobj
  583 +
  584 +%% Page 11
  585 +41 0 obj
  586 +<<
  587 + /Contents 56 0 R
  588 + /MediaBox [
  589 + 0
  590 + 0
  591 + 612
  592 + 792
  593 + ]
  594 + /Parent 14 0 R
  595 + /Resources <<
  596 + /Font <<
  597 + /F1 22 0 R
  598 + >>
  599 + /ProcSet [
  600 + /PDF
  601 + /Text
  602 + ]
  603 + >>
  604 + /Rotate 0
  605 + /Type /Page
  606 +>>
  607 +endobj
  608 +
  609 +%% Page 12
  610 +42 0 obj
  611 +<<
  612 + /Contents 58 0 R
  613 + /MediaBox [
  614 + 0
  615 + 0
  616 + 612
  617 + 792
  618 + ]
  619 + /Parent 14 0 R
  620 + /Resources <<
  621 + /Font <<
  622 + /F1 22 0 R
  623 + >>
  624 + /ProcSet [
  625 + /PDF
  626 + /Text
  627 + ]
  628 + >>
  629 + /Rotate 0
  630 + /Type /Page
  631 +>>
  632 +endobj
  633 +
  634 +%% Page 13
  635 +43 0 obj
  636 +<<
  637 + /Contents 60 0 R
  638 + /MediaBox [
  639 + 0
  640 + 0
  641 + 612
  642 + 792
  643 + ]
  644 + /Parent 14 0 R
  645 + /Resources <<
  646 + /Font <<
  647 + /F1 22 0 R
  648 + >>
  649 + /ProcSet [
  650 + /PDF
  651 + /Text
  652 + ]
  653 + >>
  654 + /Rotate 0
  655 + /Type /Page
  656 +>>
  657 +endobj
  658 +
  659 +%% Page 14
  660 +44 0 obj
  661 +<<
  662 + /Contents 62 0 R
  663 + /MediaBox [
  664 + 0
  665 + 0
  666 + 612
  667 + 792
  668 + ]
  669 + /Parent 14 0 R
  670 + /Resources <<
  671 + /Font <<
  672 + /F1 22 0 R
  673 + >>
  674 + /ProcSet [
  675 + /PDF
  676 + /Text
  677 + ]
  678 + >>
  679 + /Rotate 0
  680 + /Type /Page
  681 +>>
  682 +endobj
  683 +
  684 +%% Page 15
  685 +45 0 obj
  686 +<<
  687 + /Contents 64 0 R
  688 + /MediaBox [
  689 + 0
  690 + 0
  691 + 612
  692 + 792
  693 + ]
  694 + /Parent 14 0 R
  695 + /Resources <<
  696 + /Font <<
  697 + /F1 22 0 R
  698 + >>
  699 + /ProcSet [
  700 + /PDF
  701 + /Text
  702 + ]
  703 + >>
  704 + /Rotate 0
  705 + /Type /Page
  706 +>>
  707 +endobj
  708 +
  709 +%% Contents for page 16
  710 +46 0 obj
  711 +<<
  712 + /Length 47 0 R
  713 +>>
  714 +stream
  715 +BT /F1 15 Tf 72 720 Td (Original page 16) Tj ET
  716 +endstream
  717 +endobj
  718 +
  719 +47 0 obj
  720 +48
  721 +endobj
  722 +
  723 +%% Contents for page 17
  724 +48 0 obj
  725 +<<
  726 + /Length 49 0 R
  727 +>>
  728 +stream
  729 +BT /F1 15 Tf 72 720 Td (Original page 17) Tj ET
  730 +endstream
  731 +endobj
  732 +
  733 +49 0 obj
  734 +48
  735 +endobj
  736 +
  737 +%% Contents for page 18
  738 +50 0 obj
  739 +<<
  740 + /Length 51 0 R
  741 +>>
  742 +stream
  743 +BT /F1 15 Tf 72 720 Td (Original page 18) Tj ET
  744 +endstream
  745 +endobj
  746 +
  747 +51 0 obj
  748 +48
  749 +endobj
  750 +
  751 +%% Contents for page 19
  752 +52 0 obj
  753 +<<
  754 + /Length 53 0 R
  755 +>>
  756 +stream
  757 +BT /F1 15 Tf 72 720 Td (Original page 19) Tj ET
  758 +endstream
  759 +endobj
  760 +
  761 +53 0 obj
  762 +48
  763 +endobj
  764 +
  765 +%% Contents for page 20
  766 +54 0 obj
  767 +<<
  768 + /Length 55 0 R
  769 +>>
  770 +stream
  771 +BT /F1 15 Tf 72 720 Td (Original page 20) Tj ET
  772 +endstream
  773 +endobj
  774 +
  775 +55 0 obj
  776 +48
  777 +endobj
  778 +
  779 +%% Contents for page 11
  780 +56 0 obj
  781 +<<
  782 + /Length 57 0 R
  783 +>>
  784 +stream
  785 +BT /F1 15 Tf 72 720 Td (Original page 11) Tj ET
  786 +endstream
  787 +endobj
  788 +
  789 +57 0 obj
  790 +48
  791 +endobj
  792 +
  793 +%% Contents for page 12
  794 +58 0 obj
  795 +<<
  796 + /Length 59 0 R
  797 +>>
  798 +stream
  799 +BT /F1 15 Tf 72 720 Td (Original page 12) Tj ET
  800 +endstream
  801 +endobj
  802 +
  803 +59 0 obj
  804 +48
  805 +endobj
  806 +
  807 +%% Contents for page 13
  808 +60 0 obj
  809 +<<
  810 + /Length 61 0 R
  811 +>>
  812 +stream
  813 +BT /F1 15 Tf 72 720 Td (Original page 13) Tj ET
  814 +endstream
  815 +endobj
  816 +
  817 +61 0 obj
  818 +48
  819 +endobj
  820 +
  821 +%% Contents for page 14
  822 +62 0 obj
  823 +<<
  824 + /Length 63 0 R
  825 +>>
  826 +stream
  827 +BT /F1 15 Tf 72 720 Td (Original page 14) Tj ET
  828 +endstream
  829 +endobj
  830 +
  831 +63 0 obj
  832 +48
  833 +endobj
  834 +
  835 +%% Contents for page 15
  836 +64 0 obj
  837 +<<
  838 + /Length 65 0 R
  839 +>>
  840 +stream
  841 +BT /F1 15 Tf 72 720 Td (Original page 15) Tj ET
  842 +endstream
  843 +endobj
  844 +
  845 +65 0 obj
  846 +48
  847 +endobj
  848 +
  849 +xref
  850 +0 66
  851 +0000000000 65535 f
  852 +0000000025 00000 n
  853 +0000000079 00000 n
  854 +0000000165 00000 n
  855 +0000000408 00000 n
  856 +0000000649 00000 n
  857 +0000000890 00000 n
  858 +0000001131 00000 n
  859 +0000001372 00000 n
  860 +0000001613 00000 n
  861 +0000001854 00000 n
  862 +0000002096 00000 n
  863 +0000002338 00000 n
  864 +0000002581 00000 n
  865 +0000002813 00000 n
  866 +0000002971 00000 n
  867 +0000003214 00000 n
  868 +0000003457 00000 n
  869 +0000003700 00000 n
  870 +0000003943 00000 n
  871 +0000004198 00000 n
  872 +0000004302 00000 n
  873 +0000004322 00000 n
  874 +0000004454 00000 n
  875 +0000004558 00000 n
  876 +0000004601 00000 n
  877 +0000004705 00000 n
  878 +0000004748 00000 n
  879 +0000004852 00000 n
  880 +0000004895 00000 n
  881 +0000004999 00000 n
  882 +0000005042 00000 n
  883 +0000005146 00000 n
  884 +0000005189 00000 n
  885 +0000005293 00000 n
  886 +0000005336 00000 n
  887 +0000005440 00000 n
  888 +0000005483 00000 n
  889 +0000005587 00000 n
  890 +0000005631 00000 n
  891 +0000005736 00000 n
  892 +0000005767 00000 n
  893 +0000006011 00000 n
  894 +0000006255 00000 n
  895 +0000006499 00000 n
  896 +0000006743 00000 n
  897 +0000007000 00000 n
  898 +0000007105 00000 n
  899 +0000007149 00000 n
  900 +0000007254 00000 n
  901 +0000007298 00000 n
  902 +0000007403 00000 n
  903 +0000007447 00000 n
  904 +0000007552 00000 n
  905 +0000007596 00000 n
  906 +0000007701 00000 n
  907 +0000007745 00000 n
  908 +0000007850 00000 n
  909 +0000007894 00000 n
  910 +0000007999 00000 n
  911 +0000008043 00000 n
  912 +0000008148 00000 n
  913 +0000008192 00000 n
  914 +0000008297 00000 n
  915 +0000008341 00000 n
  916 +0000008446 00000 n
  917 +trailer <<
  918 + /Info 2 0 R
  919 + /Root 1 0 R
  920 + /Size 66
  921 + /ID [<e032a88c7a987db6ca3abee555506ccc><31415926535897932384626433832795>]
  922 +>>
  923 +startxref
  924 +8466
  925 +%%EOF
... ...