From 3e98158a6c47361ca7d6c2c18d47c9f8f3aabb8a Mon Sep 17 00:00:00 2001 From: tonikitoo Date: Fri, 26 Aug 2016 08:37:10 -0700 Subject: Extend pdfium_test capability so that more Javascript can be executed In [1], the lack of support of pdfium_test to some application level hooks was felt. More specifically, the lack of implementation of the hook FFI_GetPage, called when 'this.getAnnot()' is executed in an Acrobar JS context, makes it non-trivial to JS texts that manipulate PDF annotations. [1] https://codereview.chromium.org/2265313002/ Here is the failing call stack in pdfium_test: 0 ::RenderPdf (samples/pdfium_test.cc) 1 ::FORM_DoDocumentOpenAction (fpdfsdk/fpdfformfill.cpp) 2 CPDFSDK_Document::ProcOpenAction (fpdfsdk/fsdk_mgr.cpp) 3 CPDFSDK_ActionHandler::DoAction_DocOpen (fpdfsdk/fsdk_actionhandler.cpp) <----v8----> 4 Document::getAnnot (fpdfsdk/javascript/Document.cpp) 5 CPDFSDK_Document::GetPageView (fpdfsdk/fsdk_mgr.cpp) 6 CPDFDoc_Environment::FFI_GetPage (fpdfsdk/include/fsdk_mgr.h) (frame 6 returns nullptr, and getAnnot call in frame 4 bails) CL extends pdfium_test app with a FFI_GetPage hook implementation. Basically what FFI_GetPage does is returning a FPDF_PAGE instance. In case of pdfium_test, FPDF_PAGE instances were only created on demand when the page was going to get rendered, and then discarded. Since FFI_GetPage can be called by JS before pages are rendered, CL moved the page creation code into a helper function, and cached the FPDF_PAGE instances created in a map, so it does not recreate them needlessly. BUG=pdfium:492 Review-Url: https://codereview.chromium.org/2277063003 --- samples/pdfium_test.cc | 41 ++- testing/resources/pixel/bug_492.pdf | 520 ++++++++++++++++++++++++++++++ testing/resources/pixel/bug_492.pdf.0.png | Bin 0 -> 182787 bytes 3 files changed, 555 insertions(+), 6 deletions(-) create mode 100644 testing/resources/pixel/bug_492.pdf create mode 100644 testing/resources/pixel/bug_492.pdf.0.png diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc index da2d1f6977..421df39bf3 100644 --- a/samples/pdfium_test.cc +++ b/samples/pdfium_test.cc @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -53,6 +54,14 @@ enum OutputFormat { #endif }; +// Hold a map of the currently loaded pages in order to avoid them +// to get loaded twice. +std::map g_loadedPages; + +// Hold a global pointer of FPDF_FORMHANDLE so that PDFium +// app hooks can made use of it. +FPDF_FORMHANDLE g_formHandle; + struct Options { Options() : show_config(false), send_events(false), output_format(OUTPUT_NONE) {} @@ -520,19 +529,35 @@ void SendPageEvents(const FPDF_FORMHANDLE& form, } } +FPDF_PAGE GetPageForIndex(FPDF_FORMFILLINFO* param, + FPDF_DOCUMENT doc, + int index) { + auto iter = g_loadedPages.find(index); + if (iter != g_loadedPages.end()) + return iter->second; + + FPDF_PAGE page = FPDF_LoadPage(doc, index); + if (!page) + return nullptr; + + FORM_OnAfterLoadPage(page, g_formHandle); + FORM_DoPageAAction(page, g_formHandle, FPDFPAGE_AACTION_OPEN); + + g_loadedPages[index] = page; + return page; +} + bool RenderPage(const std::string& name, - const FPDF_DOCUMENT& doc, - const FPDF_FORMHANDLE& form, + FPDF_DOCUMENT doc, + FPDF_FORMHANDLE& form, const int page_index, const Options& options, const std::string& events) { - FPDF_PAGE page = FPDF_LoadPage(doc, page_index); + FPDF_PAGE page = GetPageForIndex(nullptr, doc, page_index); if (!page) return false; FPDF_TEXTPAGE text_page = FPDFText_LoadPage(page); - FORM_OnAfterLoadPage(page, form); - FORM_DoPageAAction(page, form, FPDFPAGE_AACTION_OPEN); if (options.send_events) SendPageEvents(form, page, events); @@ -593,6 +618,8 @@ bool RenderPage(const std::string& name, } else { fprintf(stderr, "Page was too large to be rendered.\n"); } + + g_loadedPages.erase(page_index); FORM_DoPageAAction(page, form, FPDFPAGE_AACTION_CLOSE); FORM_OnBeforeClosePage(page, form); FPDFText_ClosePage(text_page); @@ -620,6 +647,7 @@ void RenderPdf(const std::string& name, #else // PDF_ENABLE_XFA form_callbacks.version = 1; #endif // PDF_ENABLE_XFA + form_callbacks.FFI_GetPage = GetPageForIndex; form_callbacks.m_pJsPlatform = &platform_callbacks; TestLoader loader(pBuf, len); @@ -703,7 +731,8 @@ void RenderPdf(const std::string& name, (void)FPDF_GetDocPermissions(doc); - FPDF_FORMHANDLE form = FPDFDOC_InitFormFillEnvironment(doc, &form_callbacks); + FPDF_FORMHANDLE form = g_formHandle = + FPDFDOC_InitFormFillEnvironment(doc, &form_callbacks); #ifdef PDF_ENABLE_XFA int docType = DOCTYPE_PDF; if (FPDF_HasXFAField(doc, &docType) && docType != DOCTYPE_PDF && diff --git a/testing/resources/pixel/bug_492.pdf b/testing/resources/pixel/bug_492.pdf new file mode 100644 index 0000000000..3a6486d32f --- /dev/null +++ b/testing/resources/pixel/bug_492.pdf @@ -0,0 +1,520 @@ +%PDF-1.3 +% +1 0 obj +<< /Pages 3 0 R /Type /Catalog /OpenAction 5 0 R >> +endobj +3 0 obj +<< /Count 1 /Kids [ 8 0 R ] /MediaBox [ 0 0 612 792 ] /Type /Pages >> +endobj +5 0 obj +<< +/Type /Action +/S /JavaScript +/JS ( + var a = this.getAnnot(0, "Annot-1"); + if ( a != null ) + a.hidden = false; +) +>> +endobj +8 0 obj +<< /Annots 9 0 R /Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 3 0 R /Resources 11 0 R /Rotate 0 /Type /Page >> +endobj +9 0 obj +[ 12 0 R ] +endobj +10 0 obj +<< /Length 16091 >> +stream +q Q q 0 0 612 792 re W n BT 11.04 0 0 11.04 72.024 709.68 Tm /TT2 1 Tf [ (!) +-3 (") -5 (#) 12 ($%) 4 (&') -1 (\(\)*) 6 (%) -4 (&+) 12 (") -5 (,) 12 (") +-5 (#&\)') -1 (-) 9 (&.%) 4 ($) 9 (-/&) -3 (0) 10 (") -5 (1) 3 (\)$0) -2 (-) +9 ($-) -3 (*) 3 ($#) 10 (&.+') 2 (\() 3 (') -1 (\)0') -1 (1) 6 (2) 4 (&$) +7 (,) -1 (') 2 (-3&4) -5 (.$) 10 (0$1.\)&\() 13 (") -5 (#-) 10 (-') -1 (-") +-7 (#) 12 (&0) 8 (") -5 (1) 3 (2) 4 (*) 3 ($&) -3 (%) -4 (.\)\)) 11 (.3&5*) +6 (\)0$) -2 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 695.14 Tm /TT2 1 Tf [ (\() +3 (") -5 (\)*$#$/) 11 (&%) 3 (.2) 4 (1) 3 (.&\)$) -3 (+) 3 (&\(*) 4 (,) -1 +(6') -1 (1) 13 (.#&*,) 4 (-#') -1 (0') -1 ($\)/) 10 (&\(*) 4 (#*) 4 (\)&) +] TJ ET BT 11.04 0 0 11.04 272.09 695.14 Tm /TT2 1 Tf [ (,) -1 ($0-) -2 (*) +3 (\)) 11 (&%) 3 (.,) -1 ($\)*) 3 (.+) 4 (.&,) -1 (') -1 (7) 5 ($#) 10 (") +-5 (/&\)') -1 (-) 8 (&.%) 4 ($-) -3 (&) 9 (0") 4 (%) 6 (%) -4 (") -5 (+) 14 +(") -5 (&) 9 (%) -4 (.2) 4 (1) 3 (.&$) -3 (#) 12 (") -5 (\)&) ] TJ ET BT 11.04 0 0 11.04 72.024 680.62 +Tm /TT2 1 Tf [ (8) 3 (*) 3 (') -1 (\)&*#) 4 (1) 3 (.3&9) 5 (*) 3 (1) 3 (0&) +-2 (6) -4 (') -1 (6) 8 ($##.&') 10 (%) 6 (\() 3 ($#+') 3 ($-) -3 (&$) -3 (1) +3 (') 12 (%) -4 (3&5*) 5 (\)0) 10 ($&) -3 ($\)) 9 (-3&:') 11 (6) -4 (.%) -4 +(*) 3 (\)) 11 (&.&) -3 (-) 9 ($,) -1 (,) -1 (*) 5 (\)3&;) 6 ($,) -1 (,) -1 +($1-) 12 ($\)8*) 4 ($&) -3 (<) 3 (.7) 4 (') -1 (-.1) 4 (-&) 7 (%) 6 (") -5 +(#7) 4 (') -1 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 666.22 Tm /TT2 1 Tf [ +(-#') -1 (\)-') -1 (8) 4 (*) 3 ($&) -3 (\)) 11 ($1$0-) -3 (*) 3 (\)) 11 (&$) +-3 (-) 9 (&1$-*\)&) 9 ($-) -3 (&) 9 (%) -4 (.,) -1 ($\)*) 3 (.+) 4 (.&=) 10 +(.%) 6 ($\)&) -4 (.0) 11 (&-) -3 (*) 3 (#) 12 (\() 3 (') -1 (\)&$2$\)-) -2 +(.) 12 (\)3&;) -4 (#) 12 (") -5 (') -1 (1) 5 (&\(<) 4 (.#$) 11 (-#.&) 9 (1) +3 (") -5 (1) 3 (*) 3 (%) 6 (%) -4 (>) -3 (&\() 12 ($+$3) ] TJ ET BT 11.04 0 0 11.04 506.28 666.22 +Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 643.66 Tm /TT2 1 Tf [ (4) +-3 (.*) 4 (#') -1 (\)&$) 9 (-&) 7 (") ] TJ ET BT 11.04 0 0 11.04 123.14 643.66 +Tm /TT2 1 Tf [ (#0') -1 (3) 4 (&?$1) 13 ($.1&1$0&) 9 (,) -1 (") -3 (#$) 10 +(%) -4 (3&@1) 5 (&\(") -4 (#) 12 (--) -3 (') -1 (-) 11 (") -5 (#3) 3 (&) 9 +(A) -4 (") -5 (1) 14 ($0&) -4 (,) 12 (.") -4 (#$) 10 ($-) -3 (&1) 12 (") -5 +(1) 3 (*) 3 (%) 6 (%) -4 (>) 7 (&.*2) 5 (*) 3 ($3&B) 11 (*) 3 (\)\($1) 4 (+) +3 (') -1 (\)\)$&) -2 (+) 3 (*) 3 (') -1 (&\(*) 6 (#*) 4 (\)/&) ] TJ ET BT +11.04 0 0 11.04 72.024 629.26 Tm /TT2 1 Tf [ (\)0$) -2 (,) -1 ($#') -1 (\)8) +6 (*) 3 ($) 9 (&.-) -2 (/&) 9 (6) -4 (*) 3 (,) -1 (\() 5 (*) 3 (-.-) -2 ($) +9 (&6) -6 (') 12 (-.$) -2 (/&\(#$) 11 (-') -1 (*) 3 (%) 6 (&%) -7 (.) 12 (--) +-3 (') -1 (\)/) 12 (&1*) 4 (1) 3 (03&4) -4 (.*) 4 (#') -1 (\)&$2) 13 ($-) +-3 (&1$8*) 6 ($) 9 (&.-) -2 (&) 9 (\)$) 9 (%) -4 (&) 9 (6) -4 ($1$1.) 3 (-') +10 (\)&$) -4 (,) 12 ($') -1 (=$1+) 5 (3&C-&) ] TJ ET BT 11.04 0 0 11.04 72.024 614.74 +Tm /TT2 1 Tf [ (1) 3 (") -5 (1) 3 (*) 3 (%) 6 (%) -4 (>) -3 (3&5*) 5 (\)0) +10 ($&) -3 (.,) -1 (') 3 (8) 3 (*) 3 ($-) 7 (&\() 12 ($+$&) -2 (1) 3 (") -5 +(1) 3 (&\() 12 ($+$3) ] TJ ET BT 11.04 0 0 11.04 254.33 614.74 Tm /TT2 1 Tf +(&) Tj ET BT 11.04 0 0 11.04 72.024 592.18 Tm /TT2 1 Tf [ (B*) 6 (\)\($1) +4 (+) 3 (') -1 (\)\)$&) -2 (+) 3 (.\() 4 (') -1 (7) 5 (*) 3 (\)&,) -1 (") +-5 (#) 12 ($%) 4 (&) ] TJ ET BT 11.04 0 0 11.04 195.77 592.18 Tm /TT2 1 Tf +[ (\() 3 ($,) -1 (,) -1 ($1-$\)8*) 16 ($&) 7 (%) -4 (.2) 4 (1) 3 (.3&@1) 6 +(-$) -3 (2) 14 ($#&) -2 (1) 3 (*) 3 (,) -1 (,) 2 (.3&A) 7 (") -5 (1) 3 ($0) +8 (&7,) -1 (.) 3 (1) 3 (+) 3 (') -1 (-&=$) -3 (*) 14 (2) 4 (') -1 (.-&,) -1 +(') -1 (2) 5 (*) 3 (,) -1 (.3) 4 (&A) 4 (") -5 (1) 3 ($0&) ] TJ ET BT 11.04 0 0 11.04 72.024 577.78 +Tm /TT2 1 Tf [ (<) 3 ($1+) 5 (#$#') -1 (-/&=$) -2 (,) -1 (') 2 (\)) 11 (&$) +-3 (-) 9 (&') -1 (%) -5 (\() 14 ($#+') 3 ($) 9 (-&) -3 ($*') 2 (\)) 11 (%) +-4 (") -5 (+) 3 (/) 11 (&\(*) 4 (#*) 4 (\)&') -1 (\(\)*) 5 (%) -4 (&\(#) 13 +($) 9 (-') -1 (*) 3 (%) -4 (&) 9 (%) -4 ($) 9 (-*\)/&') -1 (1) 4 (&,) -1 (.0') +-1 (1) 4 (') -1 (.&1) 3 (*) 3 (,) -1 (,) 2 (.&) 9 (1) 3 (') -1 (\),) 2 (&$) +-3 (2) 4 ($-) -3 (&) 9 (\).\() 4 (') -1 ($1) 3 (3&A) 6 (") -5 (1) 3 ($0) 8 +(&) ] TJ ET BT 11.04 0 0 11.04 72.024 563.26 Tm /TT2 1 Tf [ (*) 3 (-&) -3 +($\)-) 7 (&') -1 (1&,) -1 ($0-*\)) 11 (&0) 8 (") -5 (1) 3 (\)$8*) 4 (.-&) +7 (0) 10 (") -5 (1) 3 (\)$8*) 4 (.-3&D) 8 (-') -1 (.) 11 (%) -4 (&$) -3 (2) +4 ($) 9 (-&) -3 (+) 3 (*) 3 (') -1 (3) 4 (&) 9 (?,) 4 (') -1 (8) 5 (*) 3 (.%) +-4 (&$) -3 (#.-) 11 (&6) 4 (") -5 (,) -1 (*) 5 (-\(.-3&B) ] TJ ET BT 11.04 0 0 11.04 418.3 563.26 +Tm /TT2 1 Tf [ ($+&) 10 (.-&) -2 (,) -1 (") -3 (#) 12 ($%) 4 (&') -1 (1&1) +4 (*) 3 (1) 3 (0&) -2 (\() 3 (") -5 (#) 12 (-.&) ] TJ ET BT 11.04 0 0 11.04 72.024 548.74 +Tm /TT2 1 Tf [ (-#') -1 (\)-') -1 (8) 4 (*) 3 ($3) ] TJ ET BT 11.04 0 0 11.04 112.46 548.74 +Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 526.27 Tm /TT2 1 Tf [ (;) +-4 (#") -3 (') -1 (1) 5 (&1) 12 ($0&) -4 (.*) 4 (2) 4 (*) 3 ($3&) 9 (E*') +3 (\)8*) 6 ($&) -3 (.) 12 (,) -1 (') 2 (8) 3 (*) 3 (.%) -4 (&-) -3 ($) 9 (%) +-4 (\() 14 (") -5 (#&) 10 (%) -4 (.2) 4 (1) 3 (.3&;) 7 ($,) -1 (,) 11 ($1-$\)) +-2 (8) 3 (*) 3 ($&) -3 (<) 3 (.7) 4 (') -1 (-.1) 15 (-&) 7 (%) -4 (") -5 (#7) +4 (') -1 (&) 10 (-#) 10 (') -1 (\)-') -1 (8) 4 (*) 3 ($&) -3 (\)$1$) 10 (0-*\)&) +9 ($-) -3 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 511.75 Tm /TT2 1 Tf [ (1) +3 ($-) -3 (*) 3 (\)&$) -4 (-) 9 (&%) 3 (.,) -1 ($\)*) 3 (.+) 4 (.&=.) 11 (%) +-4 ($) 9 (\)&) 8 (.0&-) -3 (*) 3 (#\() 4 (') -1 (\)&$2) 12 ($\)-) -3 (.\)3&9) +5 (*) 3 (1) 3 (0&) 8 (.0&) 8 (%) -4 (.2) 4 (1) 3 (.3&4) -2 (.) 12 ($0$) -4 +(1) 3 (.) 12 (\)&") -7 (+) 3 (') 12 (") -5 (&+) 12 (") -5 (,) 12 (") -5 (#/&) +10 (6) -4 (*) 3 (,) -1 (\() 5 (*) 3 (-.-) -2 ($&) 7 (6) -4 ($,) 10 (/&.*0-) +10 (") -5 (#&) ] TJ ET BT 11.04 0 0 11.04 72.024 497.23 Tm /TT2 1 Tf [ (.0/&.00) +-3 (*) 14 (%) -4 (\).1) 4 (&') -1 (+/&=) 12 ($,) ] TJ ET BT 11.04 0 0 11.04 159.14 497.23 +Tm /TT2 1 Tf [ (') -1 (\)3) 3 (&) 9 (;) -4 ($,) -1 (,) -1 ($) 10 (1) 3 (-$) +-3 (\)8*) 6 ($&) -3 (0*#) 4 (\)*\)) 14 (&\).2') 3 (--) -3 (') -1 (\)) 12 (&=$) +-3 (,) -1 (') 2 (\)) 11 (3&;) -4 ($,) -1 (,) -1 ($1) 14 (-$) -3 (\)8*) 6 ($&) +-3 (\() 14 (") -5 (#-) 10 (-') -1 (-") 3 (#/&) 10 (6) -4 ($,) 10 (') -1 (-&,) +-1 (.0') -1 (1) 4 (') -1 (.&$2) 13 ($\)-) -3 (.\)) 11 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 482.71 +Tm /TT2 1 Tf [ (.*) 4 (0-") -7 (#/) 12 (&+') -1 (.) 3 (%) -4 (&) 9 ($#) 10 +(") -5 (\)&-) 6 ($%) -6 (\() 3 (*) 3 (\)) 11 (&.) 9 (#0*) 4 (/&1$0&) 7 (6) +-4 (*) 3 (,) -1 (\() 5 (*) 3 (-.-) -2 ($) 9 (&.*2) 5 (*) 3 ($&) 7 (%) 6 (.2) +4 (1) 3 (.&6) -5 ($,) -1 (&#') -1 (\)*) 3 (\)3) 13 (&F#.\)&1) 12 (") -5 (1) +3 (&) 9 (%) -4 (.) 12 (2) 4 (1) 3 (.&6) -5 ($,) -1 (&.1-) 10 ($&) -3 (.+) +4 (') -1 (\() 5 (') -1 (\)0') -1 (1) 6 (2) 4 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 468.31 +Tm /TT2 1 Tf [ (#<) 4 (") -5 (1) 3 (0*\)3) ] TJ ET BT 11.04 0 0 11.04 110.78 468.31 +Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 445.75 Tm /TT2 1 Tf [ (:') +3 (6) -4 (.%) -4 (*) 3 (\)) 11 (&.&) 7 (%) -4 (') -1 (3) 4 (&4) 5 (") -5 (#7) +4 (') -1 (&1$8) 4 (*) 14 ($) 9 (3&?,) 3 (') -1 (8) 5 (*) 3 (.%) -4 (&$) -3 +(#.) 13 (-&) -3 (6) 6 (") -5 (,) -1 (*) 5 (-\(.-3) 13 (&@1) 3 (-) 9 ($2$#&) +] TJ ET BT 11.04 0 0 11.04 337.87 445.75 Tm /TT2 1 Tf [ (*) 3 (,) -1 (-#') +-1 (0) 13 ($\)&) -4 (,) 12 (") -5 (7) 3 (") -5 (#) 12 (-') -1 (\)&$) -4 (#) +12 (") -5 (\)3&) 10 (;) -4 ($,) -1 (,) -1 ($1-) 12 ($\)8*) 4 ($&) -3 (<) 3 +(.7) 4 (') -1 (-.1) 15 (-&) ] TJ ET BT 11.04 0 0 11.04 72.024 431.23 Tm /TT2 +1 Tf [ (%) -4 (") -5 (#7) 4 (') 12 (&-) -3 (#') -1 (\)-') -1 (8) 6 (*) 3 ($) +9 (&\)$) -4 (1) 3 ($) 9 (0-*\)&$) 7 (-) 9 (&1$-*\)&$) 7 (-&) 7 (%) -4 (.,) +-1 ($\)*) 3 (.+) 4 (.&=) 10 (.%) 6 ($\)&) 6 (.0&-) -3 (*) 3 (#\() 4 (') -1 +(\)&$2) 12 ($\)-) -3 (.\)3&) 11 (;) -4 (#) 12 (") -5 (') -1 (1) 5 (&\)$) 6 +(%) -4 (\() 3 ($#/&) 8 (.1) 4 (-$) -3 (&) 9 (6) -4 (') -1 (-.) 11 ($&) ] TJ +ET BT 11.04 0 0 11.04 72.024 416.83 Tm /TT2 1 Tf [ (\)") -5 (,) -1 (,) 2 (') +-1 (0') -1 (-*) 4 (+) 3 (') -1 (1) 5 (&\(") 6 (\)*$#$/) 11 (&%) 3 ($-) -3 +(*) 3 (\)) 11 (&8*) 4 (.%) -4 (&') -1 (.0*,) 3 (') -1 (\)) 12 (&1') -1 (7) +6 (<) 3 (/&6) -6 (') -1 (-.) 11 ($&) -3 (\)0) 10 ($,) -1 ($#') -1 (\)8) 4 +(*) 3 ($&) -3 (1) 3 (*) 3 (1) 3 (0&) 8 (%) -4 (.\)\).) 12 (&$) -3 (2) 4 ($) +9 (-&) 7 (\() 3 ($+$3&B$+&) 11 (6) -4 ($,) -1 (') -1 (-&*#1) 5 (./) 12 (&) +] TJ ET BT 11.04 0 0 11.04 72.024 402.31 Tm /TT2 1 Tf [ (') -1 (1) 5 (-$) +-3 (#+) 4 (*) 3 (%) -4 (&) 9 (6) ] TJ ET BT 11.04 0 0 11.04 121.22 402.31 +Tm /TT2 1 Tf [ ($,) -1 (/) 11 (&*,) -1 (-#') 3 (0') -1 ($\)) 9 (&6) 4 ($,) +-1 (/&=) 9 (.*) 4 (0') -1 (7) 4 (*) 3 (\)&.-) -3 (/&8*) 4 (.) 12 (%) -4 (3&A) +6 (") -5 (1) 3 ($0) 8 (&$) -3 (,) 12 (') -1 (-&$) -3 (\)-/) 9 (&0) 8 (") -5 +(1) 3 (\)$0) 8 (-$) -3 (-*$#) 11 (&$) -3 (2) 4 ($) 9 (-/&) -3 (0) 10 (") -5 +(1) 3 (\)$8*) 4 (.-&) -2 (8) 3 (*) 3 (') -1 (\)/) 12 (&-) -3 ($) 9 (%) -4 +(\() 3 (*) 3 (\)&) ] TJ ET BT 11.04 0 0 11.04 72.024 387.79 Tm /TT2 1 Tf [ +(8) 3 (*) 3 (') -1 (\)/&G) -2 (') -1 (\)') 2 (3) ] TJ ET BT 11.04 0 0 11.04 115.7 387.79 +Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 365.33 Tm /TT2 1 Tf [ (@1) +5 (&') -1 (1&1) 4 (*) 3 (1) 3 (03&F,) -1 (.\)\)&.\(-$1-) 11 (&-) -3 (.0') +11 (-') -1 (&\)"0') 2 (") -5 (\)8*) 6 (&.+&,) -1 (') 13 (-") -7 (#.) 13 (&-) +7 (") -5 (#8) 4 (*) 3 ($) 9 (1) 3 (-&) -3 (\() 3 ($#&) -2 (0) 10 (") -5 (1) +3 (*) 3 (7) 3 (') -1 (.&1) 3 (") -5 (\)) 11 (-#./&\($#) 11 (&') 9 (1) 3 (0$\(-") +-6 (\)) 11 (&<>) 8 (%) -4 ($1.$) 11 (") -5 (\)3&) ] TJ ET BT 11.04 0 0 11.04 72.024 350.81 +Tm /TT2 1 Tf [ (A) -4 (") -5 (1) 3 ($) 9 (0&) -2 (*) 3 (,) -1 (,) 2 (.) 12 +(%) -4 (0") 4 (#\() 4 ($#&) -2 (=#') 3 (1) 3 (2) 4 (') -1 (,) 2 (,) -1 (.) +13 (&$) -3 (#") 6 (\)3&5*) 5 (\)0$) -2 (&') -1 (1&) 11 (\)) ] TJ ET BT 11.04 0 0 11.04 263.33 350.81 +Tm /TT2 1 Tf [ (.\() 4 (') -1 ($1) 3 (&$) -3 (*) 3 (&\(*) 15 (#*) 4 (\)&+.\() +5 (') -1 (7) 5 (*) 3 (\)&0) -2 (") 5 (%) 6 (%) -4 (") -5 (+) 14 (") -5 (3&F*) +14 (%) -4 (&\)) 8 (") -5 (0') -1 (') -1 (\)&1) 3 (.) 12 (-") -7 (8) 3 (*) +3 ($) 9 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 336.29 Tm /TT2 1 Tf [ (\() 3 +($1.-') -1 (7) 5 (*) 3 (\)&$) -4 (-&) 7 (%) -4 (.2) 4 (1) 3 (') -1 (\)&+') +3 (\)) 11 (&\(.#) 14 (-*#') 3 ($1-&) 8 (%) -4 (") -5 (1) 3 (-) 9 ($\)/&) -4 +(1) 3 (.\)) 11 (0$-) -4 (*) 3 (#) 12 (&#') 11 (+) 3 (') -1 (0*) 4 (,) -1 (*) +5 (\)&%) -7 (*) 3 (\)3&F#.\)) 12 (&=.*0') 2 (7) 3 (*) 3 (\)&) 8 (0") -6 (1) +3 (+) 3 (') -1 (%) 7 ($1-*%) 8 (&") -7 (+) 3 (') 12 (") -5 (3&) ] TJ ET BT +11.04 0 0 11.04 72.024 321.89 Tm /TT2 1 Tf [ (B$+) 4 (&.0&) -4 (,) -1 (') +2 (2) 4 (*) 3 (,) -1 (.3) 4 (&?,) -1 (') 3 (8) 3 (*) 3 (.%) -4 (&) 9 (.-&) +-2 ($) 9 (#) 12 (") -5 (\)3) ] TJ ET BT 11.04 0 0 11.04 205.37 321.89 Tm /TT2 +1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 299.33 Tm /TT2 1 Tf [ (D-) -2 (') +-1 (.%) 8 (&.-) -2 (&,) -1 (') -1 (2) 5 (*) 3 (,) -1 (.&) 11 ($-) -3 (&-) +7 ($,) -1 (,) -1 (*) 5 (\)&*,) -1 (,) 3 (.) 12 (%) -4 (0) 10 (") -5 (#\() +4 ($#&) -2 (*) 3 (,) -1 (-#') 13 (0$\)) -2 (3&@1) 5 (&=) 9 ($#%) 5 ($1) 12 +(-*%) -3 (/&,) 9 (") -5 (#$) 10 (%) -4 (&1) 12 (") -5 (1) 3 (&0) -2 (*) ] +TJ ET BT 11.04 0 0 11.04 397.66 299.33 Tm /TT2 1 Tf [ (#\)*) 4 (\)&\() 12 +(") -5 (#-) 10 (-') -1 (-") -7 (#/) 12 (&+') -1 (.) 3 (%) 6 (&*#1) 5 (.&) +] TJ ET BT 11.04 0 0 11.04 72.024 284.81 Tm /TT2 1 Tf [ (.00*%) -2 (\).1) +15 (&,) -1 (.0*\)/&\)) 11 ($+&') -1 (1) 4 (-$) -3 (#+) 15 (*) 3 (%) -4 (&G) +-4 (') -1 (\)') 13 (&1') -1 (7) 6 (<) 3 (&1$0&) -3 (1) 3 (') -1 (\),) 2 (3&C) +11 (-&) -3 (-') 10 (1) 3 (0') -1 (+) 4 (*) 3 (1) 3 (-&) -3 (6) -4 (") -5 (,) +-1 (*) 5 (-\(.) 13 (-&) -3 (*) 3 (#1) 4 (.3&4) 8 (.) 12 (*) 3 (#') -1 (\)&$,) +-1 ($') -1 (=$1+) 5 (&1*) 4 (,) -1 (,) 2 (.&) 9 ($2$-&) ] TJ ET BT 11.04 0 0 11.04 72.024 270.41 +Tm /TT2 1 Tf [ (%) -4 (.*) 4 (#') -1 (\)3) 5 (&B$+&) 10 (0*#) 4 (\)*\)&8) +4 (*) 3 (.%) 6 (&') -1 (+&=$,) -1 (') -1 (\)3) 4 (&F*#.) 3 (7) 3 (') -1 (-*) +3 (#&\() 13 (") -5 (\)*$#$) 11 (&8*) 4 (.%) -4 (&) 9 (6) -4 ($,) -1 (&1') +-1 (7) 6 (<) 3 (3&F#.\)) 13 (&+.\() 5 (') -1 (7) 5 (*) 3 (\)&+.\() 5 (') -1 +(7) 5 (*) 3 (\)&1') -1 (\),) 3 (3&) ] TJ ET BT 11.04 0 0 11.04 72.024 255.89 +Tm /TT2 1 Tf [ (:$\)-') -1 (7*) 6 (,) -1 (*) 5 (%) -4 (&8*) 4 (') -1 (\)&+) +13 (") -5 (,) -1 (") -3 (#) 12 (&.&) -3 (=) 12 ($,) -1 (') -1 (\)&0") ] TJ +ET BT 11.04 0 0 11.04 211.61 255.89 Tm /TT2 1 Tf [ (1) 3 (2) 4 (*) 3 ($&) +7 (6) -4 ($<') 13 (0*,) 3 (.3) ] TJ ET BT 11.04 0 0 11.04 275.93 255.89 Tm +/TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 233.33 Tm /TT2 1 Tf [ (4) -3 +(.$0) 9 ($1.\)&\($+) 15 ($&) -3 (\() 3 (*) 3 (#*) 4 (\)/&-) -4 (#') -1 (\)) +13 (-) 9 (') -1 (8) 5 (*) 3 ($&) -3 (.0/&-) 6 ($%) -6 (\() 3 (*) 3 (\)) 11 +(&$) -3 (2) 4 ($-) 7 (/&$) -3 (2) 4 ($) 9 (\)-) 9 (.\)&8*) 5 (') -1 (\)/&%) +5 (.*) 4 (#') -1 (\)3) 5 (&F*#.) 3 (7) 3 (') -1 (-*) 3 (#&1) 13 (") -5 (1) +3 (&$) -3 (#) 12 (") -5 (\)3&9) 4 (*) 3 (,) -1 (,) 2 (.) 12 (%) -4 (&) ] TJ +ET BT 11.04 0 0 11.04 72.024 218.93 Tm /TT2 1 Tf [ (<) 3 ($1+) 5 (#$#') -1 +(-&7') -1 (7) 6 ($1+) 5 (*) 3 (%) -4 (&) 9 (H*) 3 (\)-") -7 (3) 13 (&) 9 (5*) +6 (\)0$) -2 (&') -1 (.0*,) 3 (') -1 (\)/&) 10 ($\)-) -3 (&8*) 4 (') -1 (\)&,) +11 (.0') -1 (1) 5 (') 12 (.&\(#$-') -1 (*) 4 (%) 6 (/&\($+$) 11 (&%) 3 ($-) +-3 (*) 3 (\)&) 8 (%) 6 (") -5 (,) 12 ($\)-) -3 (') -1 ($&,) -1 (.) 11 (0*\)/&.-) +9 (&2#.) 3 (6) -4 (') -1 (+) 5 (.) 12 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 204.41 +Tm /TT2 1 Tf [ (G') -1 (\)') -1 (&.1-$) 9 (&.-) -2 (&,) -1 (') -1 (7) 4 ($) +9 (#") -3 (3&) 11 (E*') 3 (\)8*) 6 ($) 9 (&") -7 (#1) 4 (.#$) 11 (&\(,) -1 +(.) ] TJ ET BT 11.04 0 0 11.04 242.69 204.41 Tm /TT2 1 Tf [ (0$#.) 10 (-&) +-3 (#') -1 (\)*) 6 (\)3&C) 11 (-&) 7 (%) 6 (") -5 (,) -1 ($\)-') 9 ($&) 7 +(%) -4 (.2) 4 (1) 3 (.&.-) 8 (&%) -7 (') -1 (3) 4 (&@1) 14 (-$) -3 (2) 4 ($) +9 (#&.,) -1 (') 2 (8) 3 (*) 3 ($-) -3 (&) 9 (%) -4 (.*) 4 (#') -1 (\)&$) 9 +(-&) ] TJ ET BT 11.04 0 0 11.04 72.024 189.86 Tm /TT2 1 Tf [ (1) 3 (') -1 +(7) 5 (<) 3 (3&C-&) -3 (%) -4 (.-) 10 (-') -1 (\)&,) -1 (') -1 (2) 4 (*) 3 +(,) -1 (.&\() 14 (") -5 (\)*$) 12 (#$&) -2 (6) 6 ($,) -1 (') -1 (-3) ] TJ +ET BT 11.04 0 0 11.04 228.29 189.86 Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 167.42 +Tm /TT2 1 Tf [ (9) 5 (*) 3 (1) 3 (0&) -2 (\).2) 4 (') -1 (--') -1 (\)3&F*#) +4 (.7) 4 (') -1 (-*) 3 (#&) 10 (6) -4 (.#) 13 (') -1 (*) 5 (\)&=#') -1 (1) +4 (2) 4 (') -1 (,) 2 (,) -1 (.&1) 3 (') -1 (\),) 2 (3&A) -4 (*) 3 (') -1 (\)&\(#) +4 ($) 9 (-') -1 (*) 3 (%) -4 (&) 9 (%) -4 (') -1 (&$*') -1 (\)) 13 (%) 6 (") +-5 (+) 3 (&$) -3 (#.) 13 (-3&4) 5 (.$0) 9 ($) 9 (1) 3 (.\)&') -1 (+) 3 (&.*2) +5 (*) 3 ($3&9.) 3 (%) -4 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 152.9 Tm /TT2 +1 Tf [ (6) -4 (*) 3 (,) -1 (\() 5 (*) 3 (-.-) -2 ($3&) 9 (A) -4 (*) 3 (') +-1 (\)&.&8*) 4 (.) 12 (%) -4 (&1) 12 (") 5 (1) 3 (&1$8*) 6 ($&) -3 (,) -1 +(") -3 (7) 14 (") -5 (#-') -1 (\)&) 9 (%) -4 (.,) 12 ($\)*.+) 16 (.3&) ] TJ +ET BT 11.04 0 0 11.04 319.03 152.9 Tm /TT2 1 Tf [ (;) -4 (#.$) 11 (\)$1-&) +8 ($*') 2 (\)%) 5 (") -5 (+) 3 (3&) 11 (A) -4 (") -5 (1) 14 ($) 9 (0&) -2 +(1) 3 (*) 3 (,) -1 (,) 2 (.&.*2) 6 (*) 3 ($/&) -3 (6) 6 ($1$1.) 3 (-') -1 +(\)) 10 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 138.38 Tm /TT2 1 Tf [ (\)0$) +-2 (,) -1 ($#') -1 (\)8) 6 (*) 3 ($/) 9 (&+.\() 5 (') -1 (7) 5 (*) 3 (\)&./&) +-3 (0) 10 (") -5 (1) 14 (\)$8*) 4 (.-&) -2 (.-/) 10 (&,) -1 ($) 8 (") -5 (3) +] TJ ET BT 11.04 0 0 11.04 255.29 138.38 Tm /TT2 1 Tf (&) Tj ET BT 11.04 0 0 11.04 72.024 115.94 +Tm /TT2 1 Tf [ (;) -4 ($,) -1 (,) -1 ($1-) 12 ($\)8*) 4 ($&) -3 (,) -1 (') +2 (7) 3 ($) 9 (#") -3 (&,) 9 ($0-) -4 (*) 3 (\)/) 11 (&) 9 (-#') -1 (\)-') +-1 (8) 4 (*) 3 ($&) -3 (.0/) 11 (&0) 8 (") -5 (1) 3 (\)$0) 8 (-$) -3 (-*$#) +11 (&\)) 8 (') -1 (-&.%) 4 ($-) -3 (/&') 9 (%) -4 (\() 3 ($#+') 14 ($-) -3 +(&*-/) 10 (&H*\)-) 9 (") 5 (3&B$+) 3 (&.,) -1 (') -1 (8) 5 (*) 3 (.%) -4 (&) +9 (") -5 (+) 3 (') -1 (") 7 (&) ] TJ ET BT 11.04 0 0 11.04 72.024 101.42 Tm +/TT2 1 Tf [ (6) -4 (') -1 (-.$) 9 (&-) 7 (") -5 (#-) 10 (") -5 (#3) 3 (&;) +-6 (#) 12 (") -5 (') -1 (1) 5 (&<$1+) 6 (#$#') 12 (-&) -3 (-$) 7 (%) -4 (\() +3 (*) 3 (\)&.#0*3) 4 (&@1) 3 (&<.) 13 (0&) -2 (<) 3 (.7) 4 (') -1 (-) 11 (.\)\)$&) +-3 (\() 3 (,) -1 (.) ] TJ ET BT 11.04 0 0 11.04 348.07 101.42 Tm /TT2 1 Tf +[ (-) 9 ($.&) -3 (+) 3 (') -1 (0-*) 13 (%) -4 (\)-3&B*) 3 (\)\() 14 ($1+) +5 (') -1 (\)\)$&) -2 (\() 3 (") 5 (-$) -3 (1) 3 (-') -1 (3&) ] TJ ET Qendstream +endobj +11 0 obj +<< /Font << /TT2 13 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +12 0 obj +<< /C [ 0.0001108646 0.001760244 0.9982184 ] /Contents () /F 2 /QuadPoints [ 475 688 512 688 475 679 512 679 ] /Rect [ 475 681 512 690 ] /Subtype /Highlight /Type /Annot /NM (Annot-1) >> +endobj +13 0 obj +<< /BaseFont /LOCDUS+Calibri /FirstChar 33 /FontDescriptor 15 0 R /LastChar 72 /Subtype /TrueType /ToUnicode 16 0 R /Type /Font /Widths [ 420 527 349 498 799 226 229 525 391 525 525 229 335 479 250 423 525 471 252 855 459 452 525 525 646 567 517 525 305 453 579 252 615 459 642 488 673 533 715 239 ] >> +endobj +14 0 obj +<< /N 17 0 R >> +endobj +15 0 obj +<< /Ascent 750 /AvgWidth 521 /CapHeight 826 /Descent -250 /Flags 4 /FontBBox [ -503 -307 1240 964 ] /FontFile2 18 0 R /FontName /LOCDUS+Calibri /ItalicAngle 0 /Leading 221 /MaxWidth 1328 /StemV 0 /Type /FontDescriptor /XHeight 654 >> +endobj +16 0 obj +<< /Length 928 >> +stream +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo << + /Registry (Adobe) + /Ordering (UCS) + /Supplement 0 +>> def +/CMapName /Adobe-Identity-UCS def +/CMapType 2 def +1 begincodespacerange +<00> +endcodespacerange +40 beginbfrange +<21><21><004c> +<22><22><006f> +<23><23><0072> +<24><24><0065> +<25><25><006d> +<26><26><0020> +<27><27><0069> +<28><28><0070> +<29><29><0073> +<2a><2a><0075> +<2b><2b><0064> +<2c><2c><006c> +<2d><2d><0074> +<2e><2e><0061> +<2f><2f><002c> +<30><30><0063> +<31><31><006e> +<32><32><0067> +<33><33><002e> +<34><34><004d> +<35><35><0046> +<36><36><0076> +<37><37><0062> +<38><38><0071> +<39><39><004e> +<3a><3a><0056> +<3b><3b><0050> +<3c><3c><0068> +<3d><3d><0066> +<3e><3e><0079> +<3f><3f><0041> +<40><40><0049> +<41><41><0044> +<42><42><0053> +<43><43><0055> +<44><44><0045> +<45><45><0051> +<46><46><0043> +<47><47><0077> +<48><48><006a> +endbfrange +endcmap +CMapName currentdict /CMap defineresource pop +end +end +endstream +endobj +17 0 obj +<< /BBox [ 0 0 37 9 ] /FormType 1 /Resources 19 0 R /Subtype /Form /Type /XObject /Length 102 >> +stream +q Q q 0 0 37 9 re W n /Cs1 cs 0.0001108646 0.001760244 0.9982184 sc /Gs1 gs +-0.9 -2.9 38.8 10.8 re f Qendstream +endobj +18 0 obj +<< /Length1 24752 /Length 24752 >> +stream +true 0cmap4Dhcvt %hfpgm* glyf5+head6hhea4$hmtx3loca4Tmaxp name` prepX$oP)`/e$ύ__<|t   + )   J  J  J  J  J  J ~ J } J | J { J z J y J x J w J v J u J t J s J q J p J o J n J m J l J k J j J i J h J g J f J e J d J c J b J a J ` J _ J ^ J ] J \ J [ J Z J Y J X J W J V J U J T J S J R J Q J P J O J N J M J L J K J J J I J H J G J F J E J D J C J B J A J @ J ? J > J = J < J ; J : J 9 J 8 J 7 J 6 J 5 J 4 J 3 J 2 J 1 J 0 J / J . J - J , J + J * J ) J ( J ' J & J % J $ J # J " J ! J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  + J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J ߴ J ޴ J ݴ J ܴ J ۴ J ڴ J ٴ J ش J ״ J ִ J մ J Դ J Ӵ J Ҵ J Ѵ J д J ϴ J δ J ʹ J ̴ J ˴ J ʴ J ɴ J ȴ J Ǵ J ƴ J Ŵ J Ĵ J ô J ´ J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J ~ J } J | J { J z J y J x J w J v J u J t J s J r J q J p J o J n J m J l J k J j J i J h J g J f J e J d J c J b J a J ` J _ J ^ J ] J \ J [ J Z J Y J X J W J V J U J T J S J R J P J O J N J L J K J J J I J H J G J F J E J D J C J>>:>>~ }>|>{>z>yAxCwCvCuAtCsCrAqBpBoBnCmClCkEjEiEhEgEfDeEdEcEbEaE`E_E^D]E\E[EZEYEXEWEVEUETESEREQEPEOENEMELEKEJIIIHJGJFKELDLCLBKAI@I?J>J=J<K;K:L9L8L7L6L5I4I3J2J1J0K/K.L-L,L+L*L)L(L'I&I%J$J#J"K!K LLLLLLNNOONNOOONNOO O N N +N OOOPQQPQQQQPQQQPQQQQTSTTTSTTTSSTTTTSTSTTTS߲S޲TݲTܲT۲TڲSٲTزTײWֲVղVԲWӲWҲWѲWвVϲVβWͲW̲W˲WʲVɲVȲWDzWƲWŲWIJWòV²WWWVVWWWWWVWWWW?[[[[[[[[>??[[[[[[[[>??[[[[>[[[>??[[[[[?[[[[[abbffUE6~6}a|b{bzdyfxfwfvfuftfsErbqbpcodnfmflfkfjfibhbgafdeddfcfbfaf`f_f^U]E\E[6ZaYbXbWcVdUfTfSfRfQ@PUOVNM-L@K@JAI@H@GAF~EDCBFAF@F?F>D=F<Y;Y:[9[8G7X6Z5[4[3,2G1U0W/W.X-Y,Y+Z*Z)[(['[&[%V$V#W"X!Y ZZ[[[[[]^_____]^___ _ ] ^ +_ ___]^____@bbcdbbbcddddbbcddddbbcddddghhhhghhhghhhh k 1 k l & & l + + + k l m k l m j i h g & 1 1 1@ 1 1 1 q r s t t t q q r s t t t t y z | } ~ ~ ~ ~ ~ ~ - ~ ~ y ~ k y ~ ~ y z | } ~ ~ ~ ~ ~ ~ k - +N +O +g + +%88UUUU}U~}U } }}K}{}}}@ +|UzU{zUyUwUxwUf@d=d<d;d:d9d8d7d6d5d4d3d2d1d0d/d.d-d,d+d*d)d(d'd&d%d$d#d"d!d ddddddddddddddddddd d d d +d dddddAddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddAdddddd~d}d|d{dzdydxdwdvdudtdsdrdqdpdodndmdldkdjdidhdgdfdedddcdbdad`d_d^d]d\d[dZdYdXdWdVdUdTdSdRdPdOdNdLdKdJdIdHdGdFdEdDdCd+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Y+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_^Pjsbym    + ? 6PQZ[\]`abdhijklmnhin`gnfh_acdfhjklmnoportuvvprstuvopqrsuwwxyz{|}{|}wyz|xz|}x}~~~hicjopqopqrflmpy|tuvwz{|}~x{vyz|}~stuwz} A^^@Gd_^]\[ZYXUTSRQPONMLKJIHGFEDCBA@?>=<;:98765/.-,(&%$#" + ,E#F` &`&#HH-,E#F#a &a&#HH-,E#F` a F`&#HH-,E#F#a ` &a a&#HH-,E#F`@a f`&#HH-,E#F#a@` &a@a&#HH-, <<-, E# D# ZQX# D#Y QX# MD#Y &QX# D#Y!!-, EhD ` EFvhE`D-, +C#Ce +-, + C#C -,(#p(>(#p(E: -, E%EadPQXED!!Y-, EC`D-,CCe +-, i@a ,b`+ d#da\XaY-,E+)#D)z-,Ee,#DE+#D-,KRXED!!Y-,%# `#-,%# a#-,%-, ` <<-, a <<-,CC -,!! d#d@b-,!QX d#d b@/+Y`-,!QX d#dUb/+Y`-, d#d@b`#!-,E#E`#E`#E`#vhb -,&&%%E#E &`bch &ae#DD-, ETX@D E@aD!!Y-,E0/E#Ea``iD-,KQX/#p#B!!Y-,KQX %EiSXD!!Y!!Y-,EC`c`iD-,/ED-,E# E`D-,E#E`D-,K#QX34 34YDD-,CX&EXdf`d `f X!@YaY#XeY)#D#)!!!!!Y-,CX%Ed `f X!@Ya#XeY)#D%% XY%% F%#B<%% F%`#B< XY%%)%%)%% XY%%CH%%`CH!Y!!!!!!!-,CX%Ed `f X!@Ya#XeY)#D%% XY%% F%#B<%%%% F%`#B< XY%%)) EeD%%)%% XY%%CH%%%%`CH!Y!!!!!!!-,% F%#B%%EH!!!!-,% %%CH!!!-,E# E P X#e#Y#h @PX!@Y#XeY`D-,KS#KQZX E`D!!Y-,KTX E`D!!Y-,KS#KQZX8!!Y-,!KTX8!!Y-,CTXF+!!!!Y-,CTXG+!!!Y-,CTXH+!!!!Y-,CTXI+!!!Y-, #KSKQZX#8!!Y-, @%&Ia84-,F#F`#Fa#  Fab@@pE`h:-, #Id#SX<!Y-,KRX}zY-,KKTB-,B#Q@SZX TXC`BY$QX @TXC`B$TX C`BKKRXC`BY@TXC`BY@cTXC`BY@cTXC`BY@cTX@C`BYYYYY-,Eh#KQX# E d@PX|Yh`YD-,%%#>#> +#eB #B#?#? #eB#B-, b`#b-,%XY%%% TX!Y!%\%ZX +Y %J%G%G`%Gca%UX%%IcY%XY%%I %\ %ZX +Y%Fca% UXc!Ya# UXc!YY+%\XiY% H#:&XY&X%/Y#2!!-,% +%% %JSX% +% %%Y%% %c#%c` @cSX!&& +@ceQX&e&e +&&%% + .%% + .%%YY UX%%%% % % & TX!Y%%% %I#%% +% %Y QR#xa%%% +% %Iab%% +%#8%%%% +% %İ%% % %I%T#y!!!!!!!!!!!!-,#TX@@YTX@@Y[+-,TX@@Y [+-, TX@@Y[+-,&& && [+-, EiD-#Da]*"bcG""\4bZ4`]q%54d48Z44`!Q!4"5"* Z!( !#"'( $ + &  %/IDXPq + +- + Q > ; w5t7ts9MN[ R:DD-C TC@ ?#5I-??/9//9/310!!#".5'&6332>54&#"#".5467>32#".54>32ZO~#?V3 -<%S[%<.(7B"KlE"Cl;\?$ +*;!IV  (D\M#~"&$ L# L& L L +@ L% L  L  L@(%@, M$#&% "# +   #### # RUU???99//]]99932310+]++++++++%#".'!#"&&67>32#!u%% oj +#% ' *{= ;   {a 9b;+M+M+ M+ M+ M+3/!&,S*50. V??/+++++10%#".54>32#".#"32>32 @_{I~ˏMS8jZF 2OqOVd75c[MsQ4 +)'T\ * '/'E|{A&/&w@?!MM M M M2MM M M M  Q&T??/++++++++++10]#!"&5463!24.##32>V))%Q4o|r9R''WiJ>|,v'M'M' M' M' M'@   @ &&&&& Q' T??9/]qr//99//+++++210%#!"&5463!2#!!2#!!2| + ))f    N +G''j 1T'\MM M M M  ("QU??9///9+++++210#!!2#!#".5463!2T + & + + @ ")F +H   'XP?OMM M M M +M +RU??/++++++10]%#".54>32X!" !!    KHMM M M M R+T??/+++++10%#!"&54>32!2K )"! K '   +<@`>p> 00// +.MM M M M@$1 +M +M + M + + M + M +@ M$6Q  /1.(QUUU????93?/++++++23+++++239=/33310]%#".5##".'##".5463323>332+!3  G  ,h 0$ w &m   g + +l  *$ (W* ~='MM M M M@ +..2M2M2 M2 M2 M2@8R +.'"QUT???9?/+++++23+++++2/310%##".'&&'##".5463323&&54>32~  7'##h A,R':621 G 2'9};HJ  (" +)4c`]/OO  )x$MM M M M@MM L M2% + # Q U??9//+++++++++210###".5463!24.##32>@wx !!**MimL);W],NgF$an<.  ("?\yWOj4(GccA!';@ +!(M(M( M( M( M(2@ + 02M2M2 M2 M2 M23! + -)S%7+ V??99/+++++]+++++9910#".'#".54>324.#"32> + Yt>1cՋDJޔӏH)>*InH('[pp_)&Zrq^(r!?Z<,V_VQp-3232>54.54>32#".#"cCw]AoW;  3PqJ8]C$2RinhR3;iT+WM<  /D]:6P42SjnjS3k[c2 "%"(#7P37N;13>TqOQV-  #0B%6N<23=Sqy+@`- M M  M + M  M @@M@M@MMM M M M +M +@ M +&RR)V???/+++++++++++++++10]#".54>3232>54>32yEuk~D ",SuIKuQ+!! vB>yw#  ZY-,XW  "h$n@$ M($ M&(& ,,L LL@ L&%RRU??9?99//++++10]]]]]+]+%#".'&&66323>32'! Y("! si$$    +? \?3@@ BB/B 4 M4 M4 M4L4@'' M: M: M: M:L:@44;4444.A*@""".J= M/??9/]9/]q^]/+++++^]9/++++2910^]%#"&&55#".54>3354.#"#".54>32#"3267?;QGsQ->ti|1N9=aI1  BVf4aT&DdBYPAo=  Z?F%FfALpJ%F4P5##,U~T-?)FSBDq*=?? +!6 M6 M6 M6L6@+ M+ M+ M+M+M+ +@  +65!0&JFL9M????9/+++++++++2910]#".'#".54>32>324.#"32>3c]+IFF'  (KHH(bW(4V@ >@E'D|C>X7uF&:)n  8  )8#NuEd=*B2SW32#".#"32>32 324>32&&#"32>7G[cW(2b_O@  C}D?X74VA!=@F'  wMVMbtGEC   ESW32#".54>32'6&#"'FpQ@dI/   6Vq@or:"'!KxV.  >zztEDsX.Le7%x<d M ML M M0*%@L% +6G&0H LH???2?/+3+++++310#".#"32###".5#"&54>3354>32)%4     #HmJ#B$  3Q:b$    $]^V)  5>N_@-GMG MG LG3? M?M?L?O@ LO03M@ M-33-@4 MXMX LX*%@ L%08J S`87&&5467&&54>32!24&#"32>4&''32>#2]N7cA6CpR.4kqmb,!1 1/2%$4\L)Ge]0G/e[1H/S_Q ) vKe>t#$W/NxS,.#. +!=Y;>pU1%@Y4!>83L,=`&%]BMzT- !\g 8I(Yf7H^:?-)(AC0>q2y?4* ML M M@ + M  M  M L @ +@ M*-J$FLL????9//+++++++++910]%#".54.#"#".54>326632  .I0>|D    GIZ{L!  M^D$XU  8  KI=faQ/!?#O#o# M MMMM Mq M M ML +@M>IL??+/++++++++++10]%#".54>32#"&54632>    ,;:+,;:+    0:*)9:*)d/$0O2% M% M%L% M%p+ M ML M@ +2.@M.>(IO??+33/++++++++10]#".54>3232>54>32#"&54632Q@dG -  #!/  ,;:*+;;*d{T+ +  -HI  0:*)9:*)>q@?Oo M M ML +FL??/++++10]%#".54>32>      8  P@ M M& L' LpRF M MMM M@ M2 + + M + M + M +L +P@MP>' M' M'M'M' M'2KJ$@ AJ>F-8I-LLL????99??/+++++9+++++9/++++++910]++++%#".54.#"#".54.#"#".54>326632>32  ,D.9sE !,C.9tD  LI8YD0-QKG$WvI  #9^D$XU  #9^D$XU    wUO/A(1D*=fL2@ M M?4*MM M M M@ M  M M + M  M @ M@ +-J*$ILL???9?//+++++++++++910]++%#".54.#"#".54>326632  .I0>|D  LMZ{L!  M^D$XU    wUO=f`Z'@?)()& & &&*)MM M M M +@/ + +MM M M M +MpJ#M??/]++++++/]+++++10]]]]]]]]]#".54>324.#"32>:sron69sson7>jOIiD!?jOHjD nKB~rnJB~|Ib94_MJa94^*=??!6 + M + M +L + M +@+ M+ M+L+ M+ +@  +65!0&JIO9M????9/++++++++2910]#".'#".54>32>324.#"32>3c^(DA@$  )LMQ-bW(3V@ >@F'DzC>Y7vG"4#>    y*>)LuEd<)C1SX3254>32&&#"32>7  )JHI'bW(2c_(FEG*C}D?X74VA!=@F'  )9#MbtG%;)m  SW32>32 $05:#  %A:9 !$ b .L7    6D' + + QI@ /K?KOKKKA MA MAMAMAMA MA@$2$2  M + MM MM@ +M @ M @&M?  .7 +P`p773232>54.54>32#".#"3^N0WE0 +  +?V8*D2'@PUQ@')R{R$H:) + "6I/*@)(@RUS@'ElJ&$ #6%&4("+>V<5aI,  #0'5( "*3354>3232##32>32m ).Fd@~ }   7G$ [" %KsN $  $ +]_ + 2@?4 ' M' + M' M'L' M'@M M ML ML M@ -I' I$ML???99?/++++++++++++910]%#".55#".54>3232674>32MMZ{L!  /H0>{E    wUN327>32{ ((#  +! +   +W       5E޹G@=M8 M)87 M%.&!& &&&'():;;:;-<, MM@ + M MM@ M MAI@ M?Oo@H3I%I:,, M,@Hg,w,E,,L L??]]++]??+]+?/+++/++++10]]]]]]]]]]]]]+]++#".''#".'&&54>327>327>32 (*  )'  "  !  + s  +W        +"|$R@5 M7) M&&6' @ M:8 M;I +I +KOK????9?10]+]+]]]+]]+!#".7&&'&466323>323x12 | $" " $ 9 +\ . *s + 10%#".754>32s  + $$ 4.- +   n  M L?/+10%#"&54632n/><./><.mG/.EG/.LOCDUS+Calibriendstream +endobj +19 0 obj +<< /ColorSpace << /Cs1 20 0 R >> /ExtGState << /Gs1 21 0 R >> /ProcSet [ /PDF ] >> +endobj +20 0 obj +[ /ICCBased 22 0 R ] +endobj +21 0 obj +<< /BM /Multiply /Type /ExtGState >> +endobj +22 0 obj +<< /Alternate /DeviceRGB /N 3 /Length 3144 >> +stream + HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv +#(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y + +' += +T +j + + + + + + " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# +#8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G +k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 +uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmendstream +endobj +xref +0 23 +0000000000 65535 f +0000000015 00000 n +0000000064 00000 n +0000000165 00000 n +0000000250 00000 n +0000000283 00000 n +0000000324 00000 n +0000000426 00000 n +0000000478 00000 n +0000000610 00000 n +0000000636 00000 n +0000016780 00000 n +0000016850 00000 n +0000017050 00000 n +0000017369 00000 n +0000017401 00000 n +0000017651 00000 n +0000018630 00000 n +0000018862 00000 n +0000043682 00000 n +0000043781 00000 n +0000043818 00000 n +0000043871 00000 n +trailer << /Info 2 0 R /Root 1 0 R /Size 23 /ID [<478ae23a7e65ac7469e81c717c1d3092>] >> +startxref +47094 +%%EOF diff --git a/testing/resources/pixel/bug_492.pdf.0.png b/testing/resources/pixel/bug_492.pdf.0.png new file mode 100644 index 0000000000..c0fc1f4f60 Binary files /dev/null and b/testing/resources/pixel/bug_492.pdf.0.png differ -- cgit v1.2.3