Mercurial > hg > Papers > 2019 > anatofuz-thesis
view presen/fig/perl6nqp.eps @ 77:2327c951dfb9
update
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 18 Feb 2019 19:46:14 +0900 |
parents | |
children |
line wrap: on
line source
%!PS-Adobe-3.0 EPSF-3.0 %%HiResBoundingBox: 0.000000 0.000000 460.000000 307.000000 %APL_DSC_Encoding: UTF8 %APLProducer: (Version 10.14.2 (Build 18C54) Quartz PS Context) %%Title: (Unknown) %%Creator: (Unknown) %%CreationDate: (Unknown) %%For: (Unknown) %%DocumentData: Clean7Bit %%LanguageLevel: 2 %%Pages: 1 %%BoundingBox: 0 0 460 307 %%EndComments %%BeginProlog %%BeginFile: cg-pdf.ps %%Copyright: Copyright 2000-2004 Apple Computer Incorporated. %%Copyright: All Rights Reserved. currentpacking true setpacking /cg_md 141 dict def cg_md begin /L3? languagelevel 3 ge def /bd{bind def}bind def /ld{load def}bd /xs{exch store}bd /xd{exch def}bd /cmmtx matrix def mark /sc/setcolor /scs/setcolorspace /dr/defineresource /fr/findresource /T/true /F/false /d/setdash /w/setlinewidth /J/setlinecap /j/setlinejoin /M/setmiterlimit /i/setflat /rc/rectclip /rf/rectfill /rs/rectstroke /f/fill /f*/eofill /sf/selectfont /s/show %/as/ashow /xS/xshow /yS/yshow /xyS/xyshow /S/stroke /m/moveto /l/lineto /c/curveto /h/closepath /n/newpath /q/gsave /Q/grestore counttomark 2 idiv %dup (number of ld's = )print == flush % *** how many {ld}repeat pop /SC{ % CSname /ColorSpace fr scs }bd /sopr /setoverprint where{pop/setoverprint}{/pop}ifelse ld /soprm /setoverprintmode where{pop/setoverprintmode}{/pop}ifelse ld /cgmtx matrix def /sdmtx{cgmtx currentmatrix pop}bd /CM {cgmtx setmatrix}bd % pop the ctm: our gstate ctm on host is now identity /cm {cmmtx astore CM concat}bd % reset the matrix and then concat /W{clip newpath}bd /W*{eoclip newpath}bd statusdict begin product end dup (HP) anchorsearch{ pop pop pop % pop off the search results true }{ pop % previous search result (hp) anchorsearch{ pop pop true }{ pop false }ifelse }ifelse { % HP is the product: we use this method of stroking because of a bug in their clone printers with certain T3 fonts { { % charCode Wx Wy pop pop % charCode (0)dup 0 4 -1 roll put F charpath }cshow } }{ {F charpath} }ifelse /cply exch bd /cps {cply stroke}bd /pgsave 0 def /bp{/pgsave save store}bd /ep{pgsave restore showpage}def % dont' bind /re{4 2 roll m 1 index 0 rlineto 0 exch rlineto neg 0 rlineto h}bd /scrdict 10 dict def /scrmtx matrix def /patarray 0 def /createpat{patarray 3 1 roll put}bd /makepat{ scrmtx astore pop gsave initgraphics CM patarray exch get scrmtx makepattern grestore setpattern }bd /cg_BeginEPSF{ userdict save/cg_b4_Inc_state exch put userdict/cg_endepsf/cg_EndEPSF load put count userdict/cg_op_count 3 -1 roll put countdictstack dup array dictstack userdict/cg_dict_array 3 -1 roll put 3 sub{end}repeat /showpage {} def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath false setstrokeadjust false setoverprint % don't use F }bd /cg_EndEPSF{ countdictstack 3 sub { end } repeat cg_dict_array 3 1 index length 3 sub getinterval {begin}forall count userdict/cg_op_count get sub{pop}repeat userdict/cg_b4_Inc_state get restore F setpacking }bd /cg_biproc{currentfile/RunLengthDecode filter}bd /cg_aiproc{currentfile/ASCII85Decode filter/RunLengthDecode filter}bd /ImageDataSource 0 def L3?{ /cg_mibiproc{pop pop/ImageDataSource{cg_biproc}def}bd /cg_miaiproc{pop pop/ImageDataSource{cg_aiproc}def}bd }{ /ImageBandMask 0 def /ImageBandData 0 def /cg_mibiproc{ string/ImageBandMask xs string/ImageBandData xs /ImageDataSource{[currentfile/RunLengthDecode filter dup ImageBandMask/readstring cvx /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd }bd /cg_miaiproc{ string/ImageBandMask xs string/ImageBandData xs /ImageDataSource{[currentfile/ASCII85Decode filter/RunLengthDecode filter dup ImageBandMask/readstring cvx /pop cvx dup ImageBandData/readstring cvx/pop cvx]cvx bind}bd }bd }ifelse /imsave 0 def /BI{save/imsave xd mark}bd /EI{imsave restore}bd /ID{ counttomark 2 idiv dup 2 add % leave room for imagetype and imagematrix dict begin {def} repeat pop % remove mark /ImageType 1 def /ImageMatrix[Width 0 0 Height neg 0 Height]def currentdict dup/ImageMask known{ImageMask}{F}ifelse exch % currentdict on stack L3?{ dup/MaskedImage known { pop << /ImageType 3 /InterleaveType 2 /DataDict currentdict /MaskDict << /ImageType 1 /Width Width /Height Height /ImageMatrix ImageMatrix /BitsPerComponent 1 /Decode [0 1] currentdict/Interpolate known {/Interpolate Interpolate}if >> >> }if }if exch {imagemask}{image}ifelse end % pop imagedict from dict stack }bd /cguidfix{statusdict begin mark version end {cvr}stopped{cleartomark 0}{exch pop}ifelse 2012 lt{dup findfont dup length dict begin {1 index/FID ne 2 index/UniqueID ne and {def} {pop pop} ifelse}forall currentdict end definefont pop }{pop}ifelse }bd /t_array 0 def /t_i 0 def /t_c 1 string def /x_proc{ % x y exch t_array t_i get add exch moveto /t_i t_i 1 add store }bd /y_proc{ % x y t_array t_i get add moveto /t_i t_i 1 add store }bd /xy_proc{ % x y t_array t_i 2 copy 1 add get 3 1 roll get 4 -1 roll add 3 1 roll add moveto /t_i t_i 2 add store }bd /sop 0 def % don't bind sop /cp_proc/x_proc ld % default moveto proc is for xwidths only /base_charpath % string array { /t_array xs /t_i 0 def { % char t_c 0 3 -1 roll put currentpoint t_c cply sop cp_proc }forall /t_array 0 def }bd /sop/stroke ld % default sop is stroke. Done here so we don't bind in /base_charpath % default sop is stroke /nop{}def /xsp/base_charpath ld /ysp{/cp_proc/y_proc ld base_charpath/cp_proc/x_proc ld}bd /xysp{/cp_proc/xy_proc ld base_charpath/cp_proc/x_proc ld}bd /xmp{/sop/nop ld /cp_proc/x_proc ld base_charpath/sop/stroke ld}bd /ymp{/sop/nop ld /cp_proc/y_proc ld base_charpath/sop/stroke ld}bd /xymp{/sop/nop ld /cp_proc/xy_proc ld base_charpath/sop/stroke ld}bd /refnt{ % newname encoding fontname findfont dup length dict copy dup /Encoding 4 -1 roll put definefont pop }bd /renmfont{ % newname fontname findfont dup length dict copy definefont pop }bd L3? dup dup{save exch}if % languagelevel2 ONLY code goes here /Range 0 def /DataSource 0 def /val 0 def /nRange 0 def /mulRange 0 def /d0 0 def /r0 0 def /di 0 def /ri 0 def /a0 0 def /a1 0 def /r1 0 def /r2 0 def /dx 0 def /Nsteps 0 def /sh3tp 0 def /ymax 0 def /ymin 0 def /xmax 0 def /xmin 0 def /setupFunEval % funDict -- % this calculates and sets up a function dict for evaulation. { begin /nRange Range length 2 idiv store /mulRange % precompute the range data needed to map a sample value from the table to a range value % this data looks like [ range0mul range0min range1mul range1min ... rangeN-1mul rangeN-1min ] [ 0 1 nRange 1 sub { % index 2 mul/nDim2 xd % 2*dimension# we are dealing with Range nDim2 get % ymin Range nDim2 1 add get % ymin ymax 1 index sub % ymin (ymax-ymin) % xmin = 0, xmax = 255 (2^bitspersample - 1) 255 div % ymin (ymax-ymin)/(xmax - xmin) exch % (ymax-ymin)/(xmax - xmin) ymin }for ]store end }bd /FunEval % val1 fundict -> comp1 comp2 ... compN { begin % the value passed in is the base index into the table nRange mul /val xd % compute the actual index to the table % since there are nRange entries per base index 0 1 nRange 1 sub { dup 2 mul/nDim2 xd % dim val % base value to use to do our lookup add DataSource exch get % lookedupval mulRange nDim2 get mul % lookedupval*(ymax-ymin)/(xmax-xmin) mulRange nDim2 1 add get % lookedupval*(ymax-ymin)/(xmax-xmin) ymin add % interpolated result }for % comp1 comp2 ... compN end }bd /max % a b -> max(a, b) { 2 copy lt {exch pop}{pop}ifelse }bd /sh2 { % emulation of shading type 2. Assumes shading dictionary is top dictionary on the dict stack /Coords load aload pop % x0 y0 x1 y1 3 index 3 index translate % origin is now at beginning point of shading % x0 y0 x1 y1 3 -1 roll sub % x0 x1 y1-y0 3 1 roll exch % y1-y0 x1 x0 sub % y1-y0 x1-x0 2 copy dup mul exch dup mul add sqrt % length of segment between two points dup scale atan % atan (dy/dx) %dup (rotation angle = )print == rotate % now line between 0,0 and 1,0 is the line perpendicular to which the axial lines are drawn /Function load setupFunEval % may need to setup function dictionary by calling setupFunEval % this is now specific to axial shadings. Compute the maximum bounds to fill clippath {pathbbox}stopped {0 0 0 0}if newpath % x0 y0 x1 y1 /ymax xs /xmax xs /ymin xs /xmin xs currentdict/Extend known { /Extend load 0 get { 0/Function load FunEval sc % evaluate the function to get a color and set it xmin ymin xmin abs ymax ymin sub rectfill }if }if % paint the rects. The sampling frequency is that of our table /Nsteps/Function load/Size get 0 get 1 sub store /dx 1 Nsteps div store gsave /di ymax ymin sub store /Function load % loop Nsteps + 1 times, incrementing the index by 1 each time 0 1 Nsteps { 1 index FunEval sc 0 ymin dx di rectfill dx 0 translate }for pop % pop our function grestore % origin is back to start point currentdict/Extend known { /Extend load 1 get { Nsteps/Function load FunEval sc % last element 1 ymin xmax 1 sub abs ymax ymin sub rectfill }if }if }bd /shp % this paints our shape for shading type 3 { % x1 r1 x0 r0 - 4 copy % fill interior arc dup 0 gt{ 0 exch a1 a0 arc }{ pop 0 moveto }ifelse dup 0 gt{ 0 exch a0 a1 arcn }{ pop 0 lineto }ifelse fill % fill exterior arc dup 0 gt{ 0 exch a0 a1 arc }{ pop 0 moveto }ifelse dup 0 gt{ 0 exch a1 a0 arcn }{ pop 0 lineto }ifelse fill }bd /calcmaxs { % calculate maximum distance vector from origin to corner points % of bbox xmin dup mul ymin dup mul add sqrt % (xmin2 + ymin2) xmax dup mul ymin dup mul add sqrt % (xmax2 + ymin2) xmin dup mul ymax dup mul add sqrt % (xmin2 + ymax2) xmax dup mul ymax dup mul add sqrt % (xmax2 + ymax2) max max max % maximum value }bd /sh3 { % emulation of shading type 3. Assumes shading dictionary is top dictionary on the dict stack /Coords load aload pop % x0 y0 r1 x1 y1 r2 5 index 5 index translate % origin is now at first circle origin 3 -1 roll 6 -1 roll sub % y0 r1 y1 r2 dx 3 -1 roll 5 -1 roll sub % r1 r2 dx dy 2 copy dup mul exch dup mul add sqrt /dx xs % r1 r2 dx dy 2 copy 0 ne exch 0 ne or { % r1 r2 dx dy exch atan rotate % we are now rotated so dy is zero and positive values of dx move us as expected }{ pop pop }ifelse % r1 r2 /r2 xs /r1 xs /Function load dup/Size get 0 get 1 sub % this is the size of our table minus 1 /Nsteps xs % at some point we should optimize this better so NSteps is based on needed steps for the device setupFunEval % may need to setup function dictionary by calling setupFunEval % determine the case: % case 0: circle1 inside circle2 % case 1: circle 2 inside circle 1 % case 2: r1 = r2 % case 3: r1 != r2 dx r2 add r1 lt{ % circle 2 inside of circle 1 0 }{ dx r1 add r2 le { % circle 1 inside of circle 2 1 }{ % circles don't contain each other r1 r2 eq { % equal 2 }{ % r1 != r2 3 }ifelse }ifelse }ifelse /sh3tp xs % sh3tp has the number of our different cases clippath {pathbbox}stopped {0 0 0 0}if newpath % x0 y0 x1 y1 /ymax xs /xmax xs /ymin xs /xmin xs % Arc angle atan( sqrt((dx*dx + dy*dy) - dr*dr), dr) dx dup mul r2 r1 sub dup mul sub dup 0 gt { sqrt r2 r1 sub atan /a0 exch 180 exch sub store /a1 a0 neg store }{ pop /a0 0 store /a1 360 store }ifelse currentdict/Extend known { /Extend load 0 get r1 0 gt and % no need to extend if the radius of the first end is 0 { 0/Function load FunEval sc % evaluate the function to get a color and set it % case 0: circle1 inside circle2 % case 1: circle 2 inside circle 1 % case 2: circles don't contain each other and r1 == r2 % case 3: circles don't contain each other and r1 != r2 { { % case 0 dx 0 r1 360 0 arcn xmin ymin moveto xmax ymin lineto xmax ymax lineto xmin ymax lineto xmin ymin lineto eofill % for the bigger radius we fill everything except our circle } { % case 1 r1 0 gt{0 0 r1 0 360 arc fill}if } { % case 2 % r1 == r2, extend 0 % r3 = r, x3 = -(abs(minx) + r), x1 = 0 % x(i+1) r(i+1) x(i) r(i) shp 0 r1 xmin abs r1 add neg r1 shp } { % case 3 % no containment, r1 != r2 r2 r1 gt{ % the endpoint we are drawing is that with a circle of zero radius % x(i+1) r(i+1) x(i) r(i) shp 0 r1 r1 neg r2 r1 sub div dx mul % this is point of beginning circle 0 % point of ending circle shp % takes x(i+1) r(i+1) x(i) r(i) }{ % the first circle is the bigger of the two % we find a circle on our line which is outside the bbox in the % negative direction % x(i+1) r(i+1) x(i) r(i) shp 0 r1 calcmaxs % 0 r1 maxs dup % calculating xs: (-(maxs+r2)*x2)/(x2-(r1-r2)) r2 add dx mul dx r1 r2 sub sub div neg % maxs xs' exch 1 index % xs' maxs xs' abs exch sub shp }ifelse } }sh3tp get exec % execute the extend at beginning proc for our shading type }if }if % now do the shading /d0 0 store /r0 r1 store /di dx Nsteps div store /ri r2 r1 sub Nsteps div store /Function load 0 1 Nsteps { % function t(i) 1 index FunEval sc d0 di add r0 ri add d0 r0 shp { % fill interior arc d0 0 r0 a1 a0 arc d0 di add 0 r0 ri add a0 a1 arcn fill % fill exterior arc d0 0 r0 a0 a1 arc d0 di add 0 r0 ri add a1 a0 arcn fill }pop % advance to next /d0 d0 di add store /r0 r0 ri add store }for pop % pop our function dict % handle Extend currentdict/Extend known { /Extend load 1 get r2 0 gt and % no need to extend if the radius of the last end is 0 { Nsteps/Function load FunEval sc % last element % case 0: circle1 inside circle2 % case 1: circle 2 inside circle 1 % case 2: circles don't contain each other and r1 == r2 % case 3: circles don't contain each other and r1 != r2 { { dx 0 r2 0 360 arc fill } { dx 0 r2 360 0 arcn xmin ymin moveto xmax ymin lineto xmax ymax lineto xmin ymax lineto xmin ymin lineto eofill % for the bigger radius we fill everything except our circle } { % r1 == r2, extend 1 % r3 = r, x3 = (abs(xmax) + r), x1 = dx % x(i+1) r(i+1) x(i) r(i) shp xmax abs r1 add r1 dx r1 shp } { % no containment, r1 != r2 r2 r1 gt{ % we find a circle on our line which is outside the bbox in the % positive direction % x(i+1) r(i+1) x(i) r(i) shp calcmaxs dup % maxs maxs % calculating xs: ((maxs+r1)*x2)/(x2-(r2-r1)) r1 add dx mul dx r2 r1 sub sub div % maxs xs exch 1 index % xs maxs xs exch sub dx r2 shp }{ % the endpoint we are drawing is that with a circle of zero radius % x(i+1) r(i+1) x(i) r(i) shp r1 neg r2 r1 sub div dx mul % this is point of ending circle 0 % radius of ending circle dx % point of starting circle r2 % radius of starting circle shp }ifelse } } sh3tp get exec % execute the extend at end proc for our shading type }if }if }bd /sh % emulation of shfill operator for type 2 and type 3 shadings based on type 0 functions { % shadingDict -- begin /ShadingType load dup dup 2 eq exch 3 eq or { % shadingtype gsave newpath /ColorSpace load scs currentdict/BBox known { /BBox load aload pop % llx lly urx ury 2 index sub % llx lly urx ury-lly 3 index % llx lly urx ury-lly llx 3 -1 roll exch sub exch rectclip }if 2 eq {sh2}{sh3}ifelse grestore }{ % shadingtype pop (DEBUG: shading type unimplemented\n)print flush }ifelse end }bd % end of language level 2 ONLY code {restore}if not dup{save exch}if % languagelevel3 ONLY code goes here L3?{ % we do these loads conditionally or else they will fail on a level 2 printer /sh/shfill ld /csq/clipsave ld /csQ/cliprestore ld }if {restore}if %currentdict dup maxlength exch length sub (number of extra slots in md = )print == flush % *** how many entries are free end setpacking % count 0 ne { pstack(***extras on stack during prolog execution***\n)print flush}if % *** BARK if anything is left on stack %%EndFile %%EndProlog %%BeginSetup %%EndSetup %%Page: 1 1 %%PageBoundingBox: 0 0 460 307 %%BeginPageSetup cg_md begin bp sdmtx %RBIBeginFontSubset: HelveticaNeue %!FontType1-1.0: HelveticaNeue 1.0000.1.0000 14 dict begin/FontName /HelveticaNeue def /PaintType 0 def /Encoding 256 array 0 1 255{1 index exch/.notdef put}for dup 33 /space put dup 34 /M put dup 35 /o put dup 36 /a put dup 37 /r put dup 38 /V put dup 39 /P put dup 40 /e put dup 41 /l put dup 42 /six put dup 43 /N put dup 44 /Q put dup 45 /J put readonly def 42/FontType resourcestatus{pop pop false}{true}ifelse %APLsfntBegin {currentfile 0(%APLsfntEnd\n)/SubFileDecode filter flushfile}if /FontType 42 def /FontMatrix matrix def /FontBBox[1000 -951 1 index div -481 2 index div 1987 3 index div 1077 5 -1 roll div]cvx def /sfnts [< 74727565000900000000000063767420000000000000009C000000186670676D00000000000000B400000428676C796600000000000004DC00000B2C6865616400000000000010080000003668686561000000000000104000000024686D747800000000000010640000003C6C6F636100000000000010A0000000206D61787000000000000010C0000000207072657000000000000010E00000004D14000014004B005A00000011FF3A000B0205000C02CA0011B800002C4BB800095058B101018E59B801FF85B844001DB9000900035F5E2DB800012C2020456944B001602DB800022CB800012A212DB800032C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800042C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB800052C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800062C2020456944B001602020457D691844B001602DB800072CB800062A2DB800082C4B20B003265358B0801BB040598A8A20B003265358B0022621B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B80003265358B0032545B8014050582321B8014023211BB003254523212321591B2159442DB800092C4B535845441B2121592DB8000A2C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB8000B2C2020456944B001602DB8000C2CB8000B2A212DB8000D2C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB8000E2C2046B00425465258238A592046206A6164B0042546206A61645258238A592FFD2DB8000F2C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB800102C2020456944B001602020457D691844B001602DB800112CB800102A2DB800122C4B20B003265358B0801BB040598A8A20B0032653582321B0C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB800132C4B535845441B2121592DB800142C4BB800095058B101018E59B801FF85B800441DB9000900035F5E2DB800152C2020456944B001602DB800162CB800152A212DB800172C2046B003254652582359208A208A49648A204620686164B004254620686164525823658A592F20B00053586920B000545821B040591B6920B000545821B0406559593A2DB800182C2046B00425465258238A592046206A6164B0042546 206A61645258238A592FFD2DB800192C4B20B0032650585158B080441BB04044591B21212045B0C05058B0C0441B2159592DB8001A2C2020456944B001602020457D691844B001602DB8001B2CB8001A2A2DB8001C2C4B20B003265358B0401BB000598A8A20B0032653582321B0808A8A1B8A235920B0032653582321B800C08A8A1B8A235920B0032653582321B801008A8A1B8A235920B0032653582321B801408A8A1B8A235920B80003265358B0032545B8018050582321B8018023211BB003254523212321591B2159442DB8001D2C4B535845441B2121592D00020033000101CC02C8000300070065B800142BB800082FB800002FB8000810B80006D0B800062FB900020003F4B8000010B900040003F4B80009DC00B800014558B800042F1BB90004000A3E59B800014558B800052F1BB9000500043E59B8000410B900000002F4B8000510B900020002F4303101211121131121110199FECD013333FE67029AFD950299FD3902C700020026FFF5020702C50023003700E3BA001C000900032BB8001C10BA0013002900032BB8001310411B0006001C0016001C0026001C0036001C0046001C0056001C0066001C0076001C0086001C0096001C00A6001C00B6001C00C6001C000D5D410500D5001C00E5001C00025D410500DA002900EA002900025D411B0009002900190029002900290039002900490029005900290069002900790029008900290099002900A9002900B9002900C90029000D5DB8000910B80033DCB8001310B80039DC00BA002E000E00032BB8002E10BA0004002100032BB8000410BA0018002400032BB8001810B8000410B80000DC303101332E0123220E0215141E0233323E0235342E0223220607273E0333321607321E0215140E0223222E0235343E02019E550868584C643C191134604F435B37181E3751333A591E02010E254236333E7A2436241113243523233725141326360210585D406A8949387864402D45542731543E232C3102295E51353AC31A2B3B211F392C19192A3A21213B2B190000010016FFF001B902CA0015002BBA000C000D00032BB8000C10BA0001000200032BB800011000B800012FBA0006001100032BB8000610303125112311140623222E023D012315141633323E0201B95F3141232D190A5F6C643C513115B20218FDF63B461526341F1E2C666921374600000100500000031702CA000E0057BA0003000000032BB8000310BA000B000800032BB8000B10BA000D0000000B11123900B800012FB800052FB800092FB800002FB8000B2FBA000400010000111239BA000800010000111239BA000D000100001112393031131133113313331333113311230B01505A02DF51DF025A82E2E102CAFD360252FDAE0252FDAE02CAFDA802580000000001004D0000028602CA000B004BBA00 03000000032BB8000310BA0007000800032BB8000710B8000810B8000AD0B8000A2F00B800012FB800052FB800002FB800072FBA000400010000111239BA000A0001000011123930311311331133013311231123014D5A020175685A02FE8802CAFD36023DFDC302CAFDBD02430000000002004E0000026202CA000800130089B800152FBA0001000900032BB8000110B8001510B80010DCB80005DC410500DA000500EA000500025D411B0009000500190005002900050039000500490005005900050069000500790005008900050099000500A9000500B9000500C90005000D5DB8000110B8000BD000B8000A2FBA0009000100032BB8000910BA0000000C00032BB800001030311311333216151406270111331133163635342623ADBA514B4B51FEE75FDA6C6F6F6C0174010643404044010156FD360124017064646F0000020026FFC302D202DB0016002D00E1B8002E2FB8002F2FB8002E10B80026D0B800262FB8002F10B8001CDCBA00020026001C111239B8002610B80009DC411B0006000900160009002600090036000900460009005600090066000900760009008600090096000900A6000900B6000900C60009000D5D410500D5000900E5000900025DB8001C10B80013DC410500DA001300EA001300025D411B0009001300190013002900130039001300490013005900130069001300790013008900130099001300A9001300B9001300C90013000D5D00B800172FBA0004002B00032BB8000410BA0021000E00032BB800211030312507170623222E0235343E0233321E02151406071737273E0135342E0223220E0215141E0233323701C2324F3033415E3C1C1C3C5E41415E3C1C282A73305E36362B5680555580562B2B5680556348CC3A3F1433546936366954333354693642792ABD3C4A3694524987683E3E6887494987683D2A0000000100000000026502CA0007001900B800012FB800052FB800002FBA000400000001111239303121132303230323130167FE63CE02CC66FB02CAFD95026BFD3600020024FFF5020A021100300042015CB800142BBB00380003000D00182BBB002A0003001700182BB8001710B80005D0B800052F4111000600380016003800260038003600380046003800560038006600380076003800085D4105008500380095003800025DB8003810B900200003F4B9001F0003F4B8001710B900300003F4B8001710B80031D0B800312FB8002A10B80044DC00B800014558B800252F1BB9002500083E59B800014558B800022F1BB9000200043E59B800014558B800082F1BB9000800043E59BA000500020025111239B8002510B9001C0002F441050089001C0099001C00025D41110008001C0018001C0028001C0038001C0048001C0058001C0068001C0078001C00085DB8002510B8001FDCB800 0210B9002E0002F441110007002E0017002E0027002E0037002E0047002E0057002E0067002E0077002E00085D41050086002E0096002E00025DBA003000020025111239BA003100020025111239B8003DD030312506232226350E0123222E0235343E02373E0335342E0223220607233E0333321E0215111416333237270E0515141E0233323E0235020A16272127235D36233F2E1B1E313F21233F301C152129143648035502243C4D2C2345382207140B0F8A1034393A2E1D111B24142A3C2612020D252A2A25102237272C3823120607070D19181C2212062939304229120A1F382DFEF61E1C05C70C0B0709142520151D12081723291200000000020024FFF502030211000A0026005BBA0014001F00032BB8001410BA0015000000032BB8001510B8001410B80001D0B8000010B8000CD0B8000C2F00BA000F002400032BB8000F10BA001A000600032BB8001A10BA0001001400032BB8000110B8002410B8000CDC303101213E0333321E0217230E0123222E023721362E0223220E02151E0333323601A7FED702162635212035271754540B45362A3E28120101830215375B4535594124021F3E5B3E587401341E352817172736AE33321C2F3D222F6858392848623B3B64482858000100450000009A02CA00030017BA0003000000032BB800031000B800012FB800002F303113113311455502CAFD3602CA00000000020024FFF5021A02110013002700CBB800282FB800292FB8002810B80014D0B800142FB80000DC411B0006000000160000002600000036000000460000005600000066000000760000008600000096000000A6000000B6000000C60000000D5D410500D5000000E5000000025DB8002910B8001EDCB8000ADC410500DA000A00EA000A00025D411B0009000A0019000A0029000A0039000A0049000A0059000A0069000A0079000A0089000A0099000A00A9000A00B9000A00C9000A000D5D00BA000F001900032BB8000F10BA0023000500032BB8002310303113343E0233321E0215140E0223222E0227141E0233323E0235342E0223220E027E192C3B21213B2C19192C3B21213B2C195A20405E3D3E5D402020405D3E3D5E402001022F49321A1A32492F2F49311A1A31492F39624929294962393963492A2A496300000001003D0000014D0213000E0027BA0003000100032BB8000310B8000DD0B8000D2F00B800012FBA0009000800032BB8000910303113113335343E02333526060723353D55142C4833455A1F020205FDFBE6324D361C5A023C3F6D0000020037FF5B04A802FA000B00110023B800142BBB00060003000300182B00B800042FB800112FBB00090002000000182B3031372226351133111416332115050901370901F75E62622E30034EFEA20136FECA42017FFE8276606101C3FE3D30345DD701 0401004BFEB5FEB80001000000010000062A4FC55F0F3CF5011103E800000000B643600000000000D7C23C38FC49FE1F07C304350000000900020000000000000001000003B8FF2B001C08B1FC49FE8007C300010000000000000000000000000000000F01F4003301160000022C0026020700160367005002D2004D0288004E02F8002602630000021900240219002400DE0045023E0024014D003D04BE003700000048004801080140018A01CA023202E6030604100478049205320560059600010000000F0096000900680004000200000000001E00000200042800030001B800142B01BA0002000200162B01BF0003003E0037002B001F00130000001C2B00BF0002004A0037002B001F00130000001C2B00BA00040004001B2BB8000120457D691844B8000A2BB800002B000000 00>] def /CharStrings 15 dict dup begin /.notdef 0 def /space 1 def /six 2 def /J 3 def /M 4 def /N 5 def /P 6 def /Q 7 def /V 8 def /a 9 def /e 10 def /l 11 def /o 12 def /r 13 def /uni2B91 14 def end readonly def currentdict dup/FontName get exch definefont pop end %APLsfntEnd 42/FontType resourcestatus{pop pop true}{false}ifelse {currentfile 0(%APLT1End\n)/SubFileDecode filter flushfile}if /FontType 1 def /FontMatrix [ 0.001 0 0 0.001 0 0 ] def /FontBBox{-951 -481 1987 1077}def /UniqueID 4151493 def currentdict currentfile eexec 54544758EC884CF30C3CD503CEDBFF3839C47C3C3333173232E3FDBFF439491DB843E1924E63AA7726BBB0485AB56D93D8C0906F647A47162891E73FFC2A9873C4B1EAC5EEBDFFC4D06084FBD84139DF4583C6E259D10699944D1068C9C45667DCCCFB9B7EA01B606435EDCBD273ABAC093D14085CCBAC149BD7382E842CFE0D7FE4FD2EF589A2471F6074A80A8B675C2F7A50D63AC1EF90D787BADD11633CB01CF6EE3B37AAF9078A69AC4740E9B6525D78BBD839551A1CB80DB8682FA5E87591BBD6EE8B946063A2A58D9CA3685AB305495DC5FB5747EB8A9A059C4976C0FE4EEAB1D56FF47F1E9664ED9F4A7DAB763AF92B2F6CF2FA7DEC24710E0B9096E30F772BA7FEA9BDBE496C42ED2CEB58F54E80BDF57CE7B4DB6CCFE7182F43BF93CCA0767AF95D62C5D2C3DC6AE1E6D139F51A2C63432117F1714C5566572EE9967A715420ABDCD1D7BD74F8450B89965FCC81C6ACA565C5F3CCF91D430D1F953E4F1A645300A98DD8C47CD64555F08F422340A85404EAE0D3229C4F9336B9470CACBD6BBF3395104750A915CC6EAAC197668267B8C62D2764C8CD69FD937CA3C924D997A0EDE7964BEB9EA2F92EF70C5E5DA0AA5567765E71F2B911B3C5586B741EEB93F3C73016EC16BFF283758900903D203992EFC8BAFAF13579C602F38C91B1454491BCF48412CA40CE1C5F7851A403FDB5F7EBECD00BD59442330258C8F54F9A2B51CA5B18D1E30D1E4A019367173FB88C9EAC98BBAE7C8DBD85C921487E373D87D743B1E079DE09460CC2A636025DC35BEC305286A6417863D21598DD21D73FBBE42615DDD41C15AD35281AAFDD0AEC69551C6A28E3B80A48799AC3B40AE9CF973E85FC1F0F823599BA829D3CF0DEC0232021563D3AA221D2EF22204AF7B557A804DD4A7B1017F879E2F2118396C1180DCDD08F38BFCE37C662B3F2E366144A4D963025E1A5319637505A2EDFEB528CA9970FF8ED7F9535484185C3C7AD75DFA7DFBB353EB08281333FAAF0B6F0F2B5754F60968B327F893CFC575AF6295EA580E6246E9B6229C6DA6F95A3FCB7058D9E02B63EDD142AF8F2830ACA9D442282B0BA121ED067EE237AC776AE71FAC3BA7EF4719A64FE81A11E38A897407E9951375983367BE16AE2A6F820562728002ECB442A2F1165855819E99A7CCFC0BB3F2DE88A4FD68534CD4D00C0313B5FFDD49D70BBD5046CBD6F47F429844B57132EB7CBBA4F85BD8874586A1824A3245EEFA7AB1B73E63D9FF68E97E489DF0CC28FEC218D3EC8161F48E38C8FCEF2D84C32F49918488A70DCE7101187BB91A3B57162D9FA495C5875C6568760C39FA51C1400B6926C3C77A6CDC92EBE5FF979B01D08729C9A9D8259689CA4D8B404331BEAED1B9E84297C42B695C7984BABA8D1C48EB126878F6234BAC70464CA8714C990A8CA9AF4BB338DE1C3B1E532A7EE B5DF2E0B09D799F0FE0F4CEA78ECDD1C088DC37CEE6110431390711E66F98707098B7B74A73B56A34171A20E859377DF19D8500556F2A3C1CC2B7A95070365B04BEAA4C6E44686F8DE05E946CE1DD8C8474BF1877EEC83ADD29E77DC0A78B9B2232894A43FCB3CBCD95D705483CC0F374A5EAFE14699A4A8D9E6E174FDE9E93B7A3C00B9574052C03638D585BBA34D5C146C19277A5BDBF51FBA97EAC43DE47AEF928D4A6A6669BC75BE267750B0E9D51E0A2278EB48974C8610EC7E63A39601D35508377826D4AEC61EEDF4707E69F95906FCF08531DA749DF4846F846C5B6E93EA1FBF83165D4D13CB08078E860BDD264993367505BED3D19921D4834EB01370C53163264BB9A2FEA871D9BD123448C8C291BF287FF0C048C2BA7F7D6355C84409D4C8CC5510AFCD0994DC89A85B3771E41F05094DC08F113D22BF7B4B09BA1C0D66DB36886294CD658C8F5F3155ED5EAF803D7AF9BCD2FA836BB1607C70E3B71414B4C2F09EEDF004BD40436C69FC37FC3350BAA177FD1FF616C8493948FF25632812D37C56E086C4A0A2810AA8181391E1E2378009DEBB0C0550F2C8299EC3B727C78E840E7313ACFB2FF34A3013AB731DF38B5C01B79492BBEFFD338ACE3B59CD0E533CF22A49BFC433853BBCE878A78750DEFFF0FDF0F46BAABAC5F312A03010F8F1CB430888C1BEF641515C5291A0437A6FDD2D0BDB3334500383084147352B19E1F194A178DAF9FF9AD868FE0093C346BAB3604210B11B075490DAA499AEC959C52B4D28048887C39E67ECF36CD6AFA4C02450624A2B5765F91AB04E63970A39F13832D928A84085AE3B12B45A23659206390F78DF8166CE5DC4F908DFB6FB2C2DDA6D0DBB31E13687E3D410EEA087651C574005B6C64A4F4807C1662E7177B85C9E9F682DB371AAC607A952F8C95C3C8C8FF0B254537F4E445EE7E782B5DC26FA55A025724D21E427BA05D03F80045837EA44A911669897C0E16C83346C225683661087E46E2EFABB768053B93E8DDDDFAF6D7FE5F1E7AB4E8AAB5A9A2B77784176BE3B87C1292048C3DDA80356842E0452F65B65DE41C898A3D508FCAC9D26760348FAC55C191A8F4E5F2C4445D89C2C1B831CE296B2E4D2F2F43A5B156087BC75309493FEC5CCC9A52360C8FB0188283D98B0211071CC9B06725FB16DCEAA5E023373E6FE037F4F4396B6EB65F6DF5E9BB8BE00F8B771B9E019DD8508185A1C6C3044D8DA89CE6A4BB310A7CA62989DBDD61732FF895676B65F55C0723E65BCF70586F8FFFC49D788CF87B7116EFC2120E1657980F3488FF6AEA79C912E50242C4035C957CF40E1915AAAB684C3616B52C7C9EB68A78F6979D7D8CBBDE454F39EF3D470883EA044B7DDC3DBBAB98A0ADF4921A2A14374A850E86063FC8BA4BB1BCE55A19EEA3AE24756ABA535FB872AEECC494530DC912AC1E23B 6FC6A27A318C0D19D66F0706D5EC0BA6E74ABCA979F19D9445629C88EBE06EAE999CE2430D686C5F4857D420379C6C1B674676373C5C93CC829072E560ABB0500589AC7FD211FEA540B193D702A0D86F3DC8EE498FAA4FABC52A87EB199D740EBC673300344A78A739B92B313A299558A9E79BA5C0075C9A4B56C84B9B20B4D56822E079DB29346054F0B40E777756B5BB60B43C197D132FC67A6FBC9B97B44715DFFCF95F16E18C1E2974271C531D56CA9D60A7FAC96DCA144E8A7F670605C273D16D5B446148CB389F7B2703443155F7FC76A686781E0BDCB7BEA353BF7E20A8B5C39FEDFEBB79471C83AF730AE4DD51A8515B04643A4C6A04BD546330566BDAC1FDE0F63E0AABF3CD14AFFEC15A173D1DFDDE35D7941BDC26CB74F7244813F74998C6F2E9A7F19D44746F001812016BB8678C18530CB19875AD3F30B6C7BAB82A4FA79536C72B408647771AFD2F378A2E101F91DE769F1DFC0AC8DFC8E977A6434BA5BED71699422161F6A4F803A448DC4767C8C92520D10CE52EC70CDA6ACF1EC6185DB2F44CA5DB970F72CA2892E920A73597627D8689F6A0F2F06EBBEB6C03AB0DD8BE3E98BB056CC018F1B2A4BF61515409BB274FD330E0014A41AB41790553C144FE817D0B6044ED8E896C2233836B5C66AF22A71635A0E98F74B2971E5C1960C3B14AFD3635EF2606461604CDF5DC2A3188D9018BC64950DCC82BF8FD778EBC33A6A61D78846BDE3122A9165EB636BC86B23B7B35279E437AD75CA026DF505E80A4E51AF62278645F44002295E019DD9601F5D7265416B9CBD7375C2B7D5FB8F0861703ECCD63CE4FAA2FC654B1FB420BB0DD91397497A8E8488D7706F767BEE3AD5BDA994F680D43500C228F0128DD2BF6FF43ECA31C66CC8C76BC6B56CD856C5E55CCC6F71FD99BF19C5468C5FCF9685F329D03C17A02D017ED46A050C3237917B571BA91760432314672233A0C6C54A2FCE6E2FAC31A20E88315C7D0120799B91467DF6B86189C792200FC2AFC8575D5E6ED008DFEBD6EEDD982665976DF89E14179 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark end %APLT1End %RBIEndFontSubset /HelveticaNeue cguidfix /F1.1/HelveticaNeue renmfont [ /CIEBasedABC 4 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def /DecodeABC [ { 1.8008 exp } bind { 1.8008 exp } bind { 1.8008 exp } bind ] def /MatrixABC [ 0.4295 0.2318 0.0204 0.3278 0.6722 0.1111 0.1933 0.0960 0.9578 ] def /RangeLMN [ 0.0 0.9505 0.0 1.0000 0.0 1.0891 ] def end ] /Cs1 exch/ColorSpace dr pop [ /CIEBasedA 5 dict dup begin /WhitePoint [ 0.9505 1.0000 1.0891 ] def /DecodeA { { 1.8008 exp } bind exec} bind def /MatrixA [ 0.9642 1.0000 0.8249 ] def /RangeLMN [ 0.0 2.0000 0.0 2.0000 0.0 2.0000 ] def /DecodeLMN [ { 0.9857 mul} bind { 1.0000 mul} bind { 1.3202 mul} bind ] def end ] /Cs2 exch/ColorSpace dr pop %%EndPageSetup /Cs1 SC 1 1 1 sc q 0 0 460 307 rc -58 365 m 518 365 l 518 -584 l -58 -584 l h -58 365 m f 14 131 m 302 131 l 302 14 l 14 14 l h 14 131 m f 7 w 1 J 1 j 0.60000002 i 0 0 0 sc 1 0 0 -1 -58 365 cm 72 234 m 360 234 l 360 351 l 72 351 l h 72 234 m S /Cs2 SC 0 sc 0 i 1 0 0 -1 158 72.5 cm /F1.1[ 24 0 0 -24 0 0]sf -139 8.6640015 m (!!!!!!!!!"#$%&")[ 6.672000 6.672000 6.672000 6.672000 6.672000 6.672000 6.672000 6.672000 6.672000 20.904000 13.776000 12.888000 7.992000 14.664000 0.000000 ] xS /Cs1 SC 1 1 1 sc CM 14 293 m 446 293 l 446 212 l 14 212 l h 14 293 m f 0.60000002 i 0 0 0 sc 1 0 0 -1 -58 365 cm 72 72 m 504 72 l 504 153 l 72 153 l h 72 72 m S /Cs2 SC 0 sc 0 i 1 0 0 -1 230 252.5 cm -27.552 8.6640015 m ('\(%\)*)[ 15.552000 12.888000 7.992000 5.328000 0.000000 ] xS /Cs1 SC 1 1 1 sc CM 14 212 m 446 212 l 446 131 l 14 131 l h 14 212 m f 0.60000002 i 0 0 0 sc 1 0 0 -1 -58 365 cm 72 153 m 504 153 l 504 234 l 72 234 l h 72 153 m S /Cs2 SC 0 sc 0 i 1 0 0 -1 230 171.5 cm -25.559999 8.6640015 m (+,')[ 17.328000 18.240000 0.000000 ] xS /Cs1 SC 1 1 1 sc CM 239 131 m 446 131 l 446 14 l 239 14 l h 239 131 m f 0.60000002 i 0 0 0 sc 1 0 0 -1 -58 365 cm 297 234 m 504 234 l 504 351 l 297 351 l h 297 234 m S /Cs2 SC 0 sc 0 i 1 0 0 -1 342.5 72.5 cm -24.011999 8.6640015 m (-&")[ 12.456000 14.664000 0.000000 ] xS ep end %%Trailer %%EOF