%!PS % Some PostScript and Acrobat .PDF Post Editing Tools % ==================================================== % by Don Lancaster GG #75 EBAYSTAT.PSL /ggnum 75 store % Copyright c 2006 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % Linking welcome. Reposting expressly forbidden. % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % IMPORTANT NOTE: Don Lancaster's file gonzo.ps is required for this program. % After obvious location mods, uncomment ONE of the following two lines: (C:\\Documents and Settings\\don\\Desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % NOTE THAT ALL PS FILENAME STRINGS !!!DEMAND!!! DOUBLE REVERSE SLASHES. % GONZO20A Guru Gonzo PostScript power tools (Interim release) % Includes gonzo justification and layout utilities. % Copyright c 1990, 1996, 2001 by Don Lancaster and Synergetics, Box 809, % Thatcher Arizona, 5552 (928) 428-4073 don@tinaja.com support % via http://www.tinaja.com All commercial rights and all electronic % media rights **FULLY** reserved. Reposting is expressly forbidden. % Many routines removed and cleaned at #58 %%%%%%%%%%% links menu directory %%%%%%%%%%%% % This code locks pdfmark commands out of a PostScript printer. /pdfmark where {pop}{userdict /pdfmark /cleartomark load put} ifelse % /surl "start url" marks the beginning of a text sequence to be urled. % It also paints the text blue... /surl {mark /blue cvx 0.33 /setgray cvx % change text to blue /currentpoint cvx % remember box start /urly /exch cvx /store cvx /urlx /exch cvx /store cvx ] cvx % complete deferred command printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def % /eurl "end url" unmarks the end of a text sequence and sets up % the pdfmark needed to define the Acrobat web link. /eurl {mark % start deferred proc exch % position url string % /black cvx 0 /setgray cvx % turn blue marker off % maintextcolor /setrgbcolor cvx % reset to main text color??? /aqua cvx /black cvx /makeurl cvx % defer call of url builder ] cvx % complete deferred proc printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } def % /makeurl generates the pdfmark, receiving a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /urlover 0.2 def % fraction of hot area over bounds /makeurl { /cururlname exch store % save the url string mark % start pdfmark currentfont /ScaleMatrix get 3 get /fsize exch store % guess height /Rect [ urlx fsize urlover mul sub % set box left x urly fsize urlover mul sub % set box left y currentpoint exch fsize urlover mul add exch fsize add ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def % /makeurlx generates the box specific pdfmark, receiving % a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /makeurlx { /cururlnamex exch store % save the url string mark % start pdfmark /Rect [ xpos % set box left x ypos 0.9 sub % set box left y xpos 2.8 add % box right x ypos 0.9 sub 2.8 add % box right y ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def /maintextcolor {0 0 0 } def % text link specific data -- use dictionary instead below { /cubic01 {(http://www.tinaja.com/cubic01.asp) eurl} def /hack62 {(http://www.tinaja.com/glib/hack62.pdf) eurl} def /increment {(http://www.tinaja.com/text/bezgen3.html) eurl} def /interpolate {(http://members.bellatlantic.net/~vze2vrva/design.html) eurl } def /bezmath {(http://www.tinaja.com/text/bezmath.html) eurl } def /table {(http://www.tinaja.com/psutils/imtable.psl) eurl } def } pop % keep for search marker % dictionary method << % entered during gg75 /distbug (http://www.adobe.com/devnet/acrobat/downloads/Acrobat_SDK_readme.html) /pstrans2.pdf (http://www.tinaja.com/glib/pstrans2.pdf) /ghostscript (http://pages.cs.wisc.edu/~ghost/doc/AFPL/index.htm) /PLRM (http://www.adobe.com/products/postscript/pdfs/PLRM.pdf) /pdfref (http://www.adobe.com/devnet/pdf/pdf_reference.html) % entered during gg 74 /ebaymktsearch (http://pages.ebay.com/marketplace%5Fresearch/) /ebaystat.psl (http://www.tinaja.com/glib/ebaystat.psl) /ebayadvsearch (http://search.ebay.com/ws/search/AdvSearch?sofindtype=13&_trksid=m37) /ebaystatservice (http://www.medved.net/cgi-bin/cal.exe?EIND) % entered during gg 73 /bridge701.psl (http://www.tinaja.com/magsn_5/bridge701.psl) /bridge701.pdf (http://www.tinaja.com/magsn_5/bridge701.pdf) /demo28a (http://www.tinaja.com/demo28a.asp) /gaussjordan (http://en.wikipedia.org/wiki/Gauss-Jordan_elimination) /sinseries (http://www.ucl.ac.uk/Mathematics/geomath/level2/series/ser11.html) /newtonmethod (http://en.wikipedia.org/wiki/Newton's_method) /trigidentity (http://www.sosmath.com/trig/Trig5/trig5/trig5.html) /demo28a.asp (http://www.tinaja.com/demo28a.asp) % entered during gg 71 /detmssol.pdf (http://www.tinaja.com/glib/detmssol.pdf) /detmssol.psl (http://www.tinaja.com/glib/detmssol.psl) /alvinpile (http://www.tinaja.com/glib/enhebay2.pdf) % duplicate name /dilbert (http://www.dilbert.com) /putty (http://www.putty.nl) /legible1.pdf (http://www.tinaja.com/glib/legible1.pdf) /muse144.pdf (http://www.tinaja.com/glib/muse144.pdf) /webcolr.pdf (http://www.tinaja.com/psutils/webcolor.pdf) /ifilter (http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611) /drmsbiz1 (http://reform.house.gov/UploadedFiles/MG%20Williams%20July%2025%20Testimony.pdf) /drmsbiz2 (http://www.gao.gov/new.items/d05277.pdf) /drmsclosed (http://www.drms.dla.mil/A76/transitionsitelistrevised.pdf) /drmsmap (http://www.drms.dla.mil/meo/routemap.htm) /drms (http://www.drms.dla.mil/) /enhebay4.pdf (http://www.tinaja.com/glib/enhebay4.pdf) % entered during gg 70 /insidegame (http://www.amazon.com/exec/obidos/ISBN%3D1585006246/donlancastersgurA/002-8267096-8078436) /auctionbytes (http://www.auctionbytes.com) /texasauctionlaw (Texas auction law: http://www.license.state.tx.us/auc/auction.htm) /shermananti (http://www.gamingip.com/Statutes/ShermanAct/ST-Sherman1-4.html) /mainantique (http://www.antiquedigest.com/articles/auclaw.htm) /finex1 (http://www.tinaja.com/images/bargs/pwrssrx3.jpg) /knockback.psl (http://www.tinaja.com/psutils/knockback.psl) /krylondull (http://www.krylon.com/main/product_template.cfm?levelid=5&sub_levelid=8&productid=1822&content=product_details) /adeptaabb (http://www.tinaja.com/images/bargs/araabbb.jpg) /bonnette (http://www.bonnetteauctions.com/) /walmartauctionsignup (mailto://Joan.Ramsey@Wal-Mart.com) /walmartauction (http://walmartstores.com/GlobalWMStoresWeb/navigate.do?catg=504&contId=49) /ucc (http://www.law.cornell.edu/ucc/) /whtnu06 (http://www.tinaja.com/whtnu06.asp) % entered during gg69 /wikicat (http://en.wikipedia.org/wiki/Catenary) /bezcat.psl (http://www.tinaja.com/glib/bezcat.psl) /nubz4pts1.pdf (http://www.tinaja.com/glib/nubz4pts1.pdf) % entered during gg68 /nobodydog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /kaizen (http://en.wikipedia.org/wiki/Kaizen) /circuitcellar (http://www.circuitcellar.com/guru/) /makemag (http://www.makezine.com/) /adamsadventures (http://www.msadams.com/downloads.htm) /linux (http://www.linux.org/) /opensource (http://www.opensource.org/) /craigslist (http://phoenix.craigslist.org/) /autotrader (http://www.autotrader.com/) /lulu (http://www.lulu.com/) /bookmarket (http://www.bookmarket.com/ondemand.html) /burgerking (http://www.bk.com) /newtek (http://www.newtek.com) /memsnet (http://www.memsnet.org/) /muse120.pdf (http://www.tinaja.com/glib/muse120.pdf) /supercap (http://www.sciencemag.org/cgi/content/abstract/313/5794/1760?maxtoshow=&HITS=10&hits=10&RESULTFORMAT=&fulltext=carbon+pore+sizes&searchid=1&FIRSTINDEX=0&resourcetype=HWCIT) /quantumdots (http://www.google.com/search?q=%22quantum+dots%22+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /datasheetarchive (http://www.datasheetarchive.com/chipPhotos/photosA.html) /googleearth (http://www.earth.google.com) /toystory (http://us.imdb.com/title/tt0114709/) /robotmovie (http://us.imdb.com/title/tt0358082/) /cars (http://us.imdb.com/title/tt0317219/) /netflix (http://www.netflix.com/) /blockbuster (http://www.blockbuster.com/online/) % entered during gg67 /puzz01.psl (http://www.tinaja.com/psutils/puzz01.psl) /alphamet1 ( http://www.tkcs-collins.com/truman/alphamet/alphamet.shtml) /alphamet2 (http://www.tkcs-collins.com/truman/alphamet/alpha_gen.shtml) /alphamet3 (http://users.aol.com/s6sj7gt/mikealp.htm) /msinexec.pdf (http://www.tinaja.com/glib/msinexec.pdf) /paradigm.pdf (http://www.tinaja.com/glib/paradigm.pdf) % entered during gg66 /thunderbird (http://www.thunderbird.com) /spysweeper (http://www.webroot.com/consumer/products/spysweeper/?rc=1651) /norton (http://www.symantec.com/index.htm) /pestpatrol (http://www.pestpatrol.com/) /firefox (http://www.firefox.com) /sciencemag (http://www.sciencemag.org/) /worldfact (http://www.cia.gov/cia/publications/factbook/) /internetdog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /zipcode (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /weather (http://www.weather.com/) /thomasreg (http://www.thomasregister.com/) /topozone (http://www.topozone.com/) /yahoostock (http://finance.yahoo.com/) /reversephone (http://www.reversephonedirectory.com/) /uspto (http://www.uspto.gov/patft/index.html) /msnbc (http://www.msnbc.com/) /imdb (http://us.imdb.com/) /loanamort (http://www.hsh.com/calc-amort.html) /kellybook (http://www.kbb.com/) /googlemaps (http://maps.google.com/) /newyorker (http://www.newyorker.com/) /currexch (http://www.xe.net/ucc/) /chemele (http://www.chemicalelements.com) /cnn (http://www.cnn.com) /areacodes (http://decoder.americom.com/cgi-bin/decoder.cgi) /tinajaoffsite (http://www.tinaja.com#offsite) /tinajaengines (http://www.tinja.com#engines) /walmart (http://www.walmart.com) /rssbook (http://www.amazon.com/exec/obidos/ISBN%3D0764588486/donlancastersgurA/002-5434897-4181636) /webwb01 (http://www.tinaja.com/webwb01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /validator (http://rss.scripting.com/) /webbooks (http://www.tinaja.com/books/bkwbmast.asp) /golive (http://www.adobe.com/products/golive/) /frontpage (http://office.microsoft.com/en-us/FX010858021033.aspx) /htmlbooks (http://www.tinaja.com/books/bkhtml.asp) /htmldummybook (http://www.amazon.com/exec/obidos/ISBN=0764507230/donlancastersgurA/) /naa (http://www.auctioneers.org) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /enhebay3.pdf (http://www.tinaja.com/glib/enhebay3.pdf) /ipswitch (http://www.ipswitch.com/Products/WS_FTP) /networksolutions (http://www.networksolutions.com) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) % entered furing gg65 msexec summary /picpro (http://www.tinaja.com/glib/mspicpro.pdf) /fourier (http://www.tinaja.com/glib/muse90.pdf) % entered during GG64 log log graphs /pdfrm1 (http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/pdfmarkReference.pdf) /loglog01.psl (http://www.tinaja.com/psutils/loglog01.psl) /loglog01.pdf (http://www.tinaja.com/glair/loglog01.pdf) /bookcvr1.psl (http://www.tinaja.com/psutils/bookcvr1.psl) /bookcvr1.pdf (http://www.tinaja.com/glair/bookcvr1.pdf) % entered during gg 63 two phase magic sinewaves /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /mspicpro.pdf (http://www.tinaja.com/glib/mspicpro.pdf) % entered during gg 62 enhance III /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /rss (http://www.tinaja.com/whtnu.xml) /oreproptable (http://www.tinaja.com/whtnu05.asp#rogue3) /javascriptslideshow (http://www.codelifter.com/main/javascript/slideshow4.html) /logrptx2.psl (http://www.tinaja.com/psutils/logrptx2.psl) % entered during GG61 /jpg2pdf.pdf (http://www.tinaja.com/glib/jpg2pdf.pdf) /barcodeonline (http://www.raise-the-bar.co.uk/cgi-bin/webbarcodegen.pl) /barcodegen (http://www.terryburton.co.uk/barcodewriter/) /barcodetutorial (http://www.barcode-us.com/info_center/bookinfo.htm) /isbn (http://www.isbn.org/standards/home/index.asp) /bookcovr.psl (http://www.tinaja.com/psutils/bookcovr.psl) /bookcovr.pdf (http://www.tinaja.com/psutils/bookcovr.pdf) /begstuff (http://www.tinaja.com/post01.asp#begstuff) /ghostscript (http://www.cs.wisc.edu/~ghost/) /bod01 (http://www.tinaja.com/bod01.asp) % entered during GG 60 /bezlenjf.pdf (http://www.tinaja.com/glib/bezlenjf.pdf) /bzlnsub1.psl (http://www.tinaja.com/psutils/bzlnsub1.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) % entered during GG 59 /imbz4p01.psl (http://www.tinaja.com/psutils/imbz4p01.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) /bernstein (http://graphics.idav.ucdavis.edu/education/CAGDNotes/Bernstein-Polynomials.pdf) /ellipse4.psl (http://www.tinaja.com/glib/ellipse4.psl) /wnhsl (http://www.tinaja.com/whatnu05.asp#hsl) /stalac.pdf (http://www.tinaja.com/glib/stalac.pdf) /santa01 (http://www.tinaja.com/santa01.asp) /imxytab.psl (http://www.tinaja.com/psutils/imxytab.psl) /nonlingr.pdf (http://www.tinaja.com/glib/nonlingr.pdf) /unibmm01.psl (http://www.tinaja.com/psutils/unibm01.psl) /webimage.pdf (http://www.tinaja.com/glib/webimage.pdf) /keycor01.pdf (http://www.tinaja.com/glib/keycor01.pdf) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /basis.pdf (http://www.tinaja.com/glib/basis.pdf) /fixtlt01.psl (http://www.tinaja.com/psutils/fixtlt01.psl) /swingt01.psl (http://www.tinaja.com/psutils/swingt01.psl) /perspec1.pdf (http://www.tinaja.com/glib/perspec1.pdf) /starwars.psl (http://www.tinaja.com/psutils/starwars.psl) /video901.jpg (http://www.tinaja.com/images/bargs/finalc9.jpg) /video901.bmp (http://www.tinaja.com/images/bargs/finalc9.bmp) /autobmf1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmfauto1.pdf (http://www.tinaja.com/glib/bmfauto1.pdf) /autobm1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmdemo1.bmp (http://www.tinaja.com/psutils/bmdemo1.bmp) /adobeifilter (http://www.adobe.com/support/downloads/product.jsp?product=1&platform=Windows) /myriadfont (http://store.adobe.com/type/browser/P/P_1706.html) /stonefont (http://store.adobe.com/type/browser/F/STAQ/F_STAQ-11705000.html) /cleartype (http://grc.com/cleartype.htm) /adobeacrobat (http://www.adobe.com/products/acrobat/main.html) /acroread (http://www.adobe.com/products/acrobat/readstep2.html) /dutchdare (http://www.darenet.nl/page/language.view/home) /sedn (news:///sci.electronics.design) /sern (news:///sci.electronics.repair) /mcmaster (http://www.mcmaster.com/ ) /smallparts (http://www.smallparts.com/ ) /grainger (http://www.grainger.com/Grainger/ ) /mouser (http://www.mouser.com/ ) /digikey (http://www.digikey.com/ ) /allied (http://www.alliedelec.com/ ) /newark (http://www.newark.com/) /thomasreg (http://www.thomasregister.com/) /whtnu05 (http://www.tinaja.com/whtnu05.asp) /refurblg.pdf (http://www.tinaja.com/glib/refurblg.pdf) /refurb.pdf (http://www.tinaja.com/glib/refurb.pdf) /advetorl.pdf (http://www.tinaja.com/glib/advetorl.pdf) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /marcia.pdf (http://www.tinaja.com/glib/marcia.pdf) /auctscne.pdf (http://www.tinaja.com/glib/auctscne.pdf) /ebaysell.pdf (http://www.tinaja.com/glib/ebaysell.pdf) /ebayspoof (mailto:spoof@ebay.com) /auct01links (http://www.tinaja.com/auct01.asp#links) /enhebay2.pdf (http://www.tinaja.com/glib/enhebay2.pdf) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /pdfflash.pdf(http://www.tinaja.com/glib/pdfflash.pdf) /adobejava (http://partners.adobe.com/public/developer/pdf/topic_js.html) /p3anim01.pdf (http://www.tinaja.com/glib/p3anim01.pdf) /xpdf (http://www.foolabs.com/xpdf/) /heapsort.pdf (http://www.tinaja.com/glib/heapsort.pdf) /strconv.pdf (http://www.tinaja.com/glib/strconv.pdf) /pdfrefman (http://partners.adobe.com/public/developer/pdf/index_reference.html) /uncompresspdf.api (http://www.tinaja.com/plugins/uncompressPDF.api) /adobeebooks (http://www.adobe.com/epaper/ebooks/main.html) /viewpdf1.psl (http://www.tinaja.com/psutils/viewpdf1.psl) /adobeacrobatsdk (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html) /adobejavascriptguide (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html#js) /wordfreq.pdf (http://www.tinaja.com/glib/wordfreq.pdf) /azauct01.pdf (http://www.tinaja.com/glib/azauct01.pdf) /startsdk.pdf (http://www.tinaja.com/glib/startsdk.pdf) /flatevue.pdf (http://www.tinaja.com/glib/flatvue.pdf) /wordfrq1.psl (http://www.tinaja.com/psutils/wordfrq1.psl) /otherwf (http://www.mytranslate.com/wordfrequency.htm) /homonyms (http://www.cooper.com/alan/homonym_list.html) /wrightauct (http://www.wrightbrosauctioneers.com/) /a1auct (http://www.a1auctionz.com/) /auctbroke (http://www.auctionbrokers.us/) /ronbrunk (http://www.brunksauction.com/) /americawest (http://www.yellowpages-ads.com/01231827) /azauctioneers (http://www.arizonaauctioneers.com/) /dickerson (http://www.cfdauction.com/) /wsmauct (http://www.westernsalesmanagement.com/) /asustore (http://property.asu.edu/) /uaauct (http://pacs.web.arizona.edu/pacs_home.html) /schoolauct (http://web.archive.org/web/20040229230404/http://www.dist.maricopa.edu/surplus/other.html) /haynieauct (http://www.chuckhaynieauctions.com/pages/1/index.htm) /crawfordauct (http://www.tumbleweedauction.com/) /mangold (http://www.azauctioneers.org/members/8402_OCMangold.asp) /tingle (http://brucetingleauctioneering.com/) /countass (http://www.soldyourway.com/) /southwestliq (http://www.swliquidators.com/) /maricopacoll (http://www.dist.maricopa.edu/surplus/) /sierraauct (http://www.sierraauction.com/) /cunninghamauct (http://www.auctionaz.com/) /auctappr (http://www.auctionandappraise.com/) /azauctionassn (http://www.azauctioneers.org/home.asp) /natauctionassn (http://www.auctioneers.org/) /azclassifieds (http://www.arizclassified.com/classifieds/index.inn) /azrepublic (http://www.azcentral.com/class/merch/) /tudailystar (http://classified.tucson.com/index.php?site_name=citizen) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /busonly.psl (http://www.tinaja.com/psutils/busonly.psl) /rebound1.psl (http://www.tinaja.com/glib/rebound1.psl) /rebound1.pdf (http://www.tinaja.com/glib/rebound1.pdf) /funfield.pdf (http://www.tinaja.com/glib/funfield.pdf) /psar2img.pdf (http://www.tinaja.com/glib/psar2img.pdf) /dovebid (http://www.dovebid.com) /michaelfox (http://www.michaelfox.com) /mjauctions (http://www.mjauctions.com) /ucc (http://www.law.cornell.edu/ucc/) /arizlaw (http://www.azleg.state.az.us/ArizonaRevisedStatutes.asp) /vickrey (http://www.vanderbilt.edu/econ/reiley/papers/VickreyHistory.pdf) /whtnu04 (http://www.tinaja.com/whtnu04.asp) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /nutilt01.psl (http://www.tinaja.com/psutils/nutilt01.psl) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /dodbur01.psl (http://www.tinaja.com/psutils/dodbur01.psl) /ebayphen.pdf (http://www.tinaja.com/glib/ebayphen.pdf) /gallery.pdf (http://www.tinaja.com/glib/gallery.pdf) /histolog (http://www.tinaja.com/glib/histolog.pdf) /bmfonts (http://www.tinaja.com/glib/bmfonts.pdf) /dodbur (http://www.tinaja.com/glib/dodgebur.pdf) /ebayphoto (http://www.tinaja.com/glib/ebayfoto.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /phonenums (http://www.switchboard.com/bin/cgiqa.dll?MG=) /reversephone (http://www.reversephonedirectory.com/) /scholar (http://www.scholar.google.com/) /shieldsup (https://grc.com/x/ne.dll?bh0bkyd2) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /topozone (http://www.topozone.com/) /thomasreg (http://www.thomasregister.com/) /uhaul (http://www.uhaul.com/) /ups (http://www.ups.com/) /usps (http://www.usps.com/) /vrane (http://www.vrane.com) /wayback (http://web.archive.org/) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) /grainger (http://www.grainger.com/) /zipcodes (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /mcmaster (http://www.mcmaster.com/) /mscsupply (http://www.mscdirect.com/) /natauctioneers (http://www.auctioneers.org/) /newspapers (http://www.usnpl.com/) /norfolk (http://www.norfolkandwaay.com) /quickphrase (http://www.typingmaster.com/index.asp?go=quickphrase) /myebays (http://www.tinaja.com/glib/myebays.pdf) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /mapsonus (http://www6.mapsonus.com/) /aafont01 (http://www.tinaja.com/aafont01.asp) /froogle (http://www.froogle.com) /govliquidation (http://www.govliquidation.com) /intershipper (http://www.intershipper.com) /kelly (http://www.kbb.com) /paypal (https://www.paypal.com/refer/pal=don%40tinaja.com) /ebaysell (http://www.tinaja.com/glib/ebaysell.pdf) /ebaybuy (http://www.tinaja.com/glib/ebaybuy.pdf) /deja (http://groups.google.com/googlegroups/deja_announcement.html) /drhtml (http://www2.imagiware.com/RxHTML/) /fedex (http://www.fedex.com/us/) /currency (http://www.xe.net/ucc/) /terraserver (http://terraserver-usa.com/) /areacode (http://decoder.americom.com/cgi-bin/decoder.cgi) /asiansources (http://www.asia.globalsources.com/HOMEPAGES/ASOL/HOME) /ebaystore (http://stores.ebay.com/synergeticsabeja) /amazon (http://www.amazon.com/exec/obidos/redirect-home/donlancastersgur/) /aucres01 (http://www.tinaja.com/aucres01.asp) /auctlinks (http://www.tinaja.com/auct01.asp#links) /wayback (http://www.archive.org/web/web.php) /agilent (http://www.agilent.com) /fields01.psl (http://www.tinaja.com/glib/fields01.psl) /fields01.pdf (http://www.tinaja.com/glib/fields01.pdf) /maxwells (http://hyperphysics.phy-astr.gsu.edu/hbase/electric/maxeq.html#c3) /muse121 (http://www.tinaja.com/glib/muse121.pdf) /maxwellbook (http://www.amazon.com/exec/obidos/ISBN=0486606368/donlancastersgurA) /transtronics (http://www.transtronics.com) /sigview.pdf (http://www.tinaja.com/glib/sigview.pdf) /mscal28nd.asp (http://www.tinaja.com/mscal28nd.asp) /microchip (http://www.microchip.com) /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /numschip.psl (http://www.tinaja.com/glib/numschip.psl) /msd28a.asm (http://www.tinaja.com/glib/msd28a.asm) /lineartechnology (http://www.lineartechnology.com) /bmtypewr (http://www.tinaja/com/psutils/bmtypewr.psl) /distlang.pdf (http://www.tinaja.com/glib/distlang.pdf) /muse141 (http://www.tinaja.com/glib/muse141.pdf) /screenthief (http://www.keyscreen.com/KeyScreen(s)5/scrnthf.htm) /giffont (http://www.tinaja.com/bmfonts/giffont1.bmp) /f507bg.txt (http://www.tinaja.com/bmfonts/f507bg.txt) /f507bg.psl (http://www.tinaja.com/bmfonts/f507bg.psl) /f507bg.pdf (http://www.tinaja.com/bmfonts/f507bg.pdf) /f607bg.txt (http://www.tinaja.com/bmfonts/f607bg.txt) /f707bg.txt (http://www.tinaja.com/bmfonts/f707bg.txt) /imgwrds1.psl (http://www.tinaja.com/psutils/imgwrds1.psl) /bmfont01 (http://www.tinaja.com/bmfont01.asp) /expbmp.psl (http://www.tinaja.com/glib/expbmp.psl) /kikisu (http://www.tinaja.com/images/bargs/ki710101.jpg) /hp3336a (http://www.tinaja.com/images/bargs/hp333601.jpg) /bmtransfer (http://www.tinaja.com/bmfonts/lettex01.bmp) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /histolog.psl (http://www.tinaja.com/glib/histolog.psl) /site01 (http://www.tinaja.com/site01.asp) /dayproc1.psl (http://www.tinaja.com/psutils/dayproc1.psl) /trail30.psl (http://www.tinaja.com/psutils/trail30.psl) /logrptm1.psl (http://www.tinaja.com/psutils/logrptm1.psl) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /powerfit (http://www.tinaja.com/glib/powerfit.pdf) /pssort (http://www.tinaja.com/glib/pssort.pdf) /heapsort (http://www.tinaja.com/glib/heapsort.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /pseudo01 (http://www.tinaja.com/pseudo01.asp) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /muse89 (http://www.tinaja.com/glib/muse89.pdf) /muse151 (http://www.tinaja.com/glib/muse151.pdf) /muse153 (http://www.tinaja.com/glib/muse153.pdf) /pssecrets (http://www.tinaja.com/glib/pssecrets.pdf) /bouncy (http://www.tinaja.com/glib/bouncy.pdf) /vectstep (http://www.tinaja.com/glib/vectstep.pdf) /muse102 (http://www.tinaja.com/glib/muse102.pdf) /onesword (http://www.tinaja.com/text/onesword.html) /emergop2 (http://www.tinaja.com/glib/emergop2.pdf) /wave01 (http://www.tinaja.com/wave01.asp) /chaincode (http://www.tinaja.com/text/chain01.html) /muse152 (http://www.tinaja.com/glib/muse152.pdf) /atg1 (http://www.tinaja.com/glib/atg1.pdf) /hack62 (http://www.tinaja.com/glib/hack62.pdf) /psinscrt (http://www.tinaja.com/glib/psinscrt.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /thefern (http://www.tinaja.com/psutils/fern2img.pdf) /cmoscb (http://www.amazon.com/exec/obidos/ISBN%3D0750699434/donlancastersgurA/002-0496817-3688016) /activecb (http://www.amazon.com/exec/obidos/ISBN%3D075062986X/donlancastersgurA/002-0496817-3688016) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /nss (http://www.caves.org) /sinquest (http://www.tinaja.com/glib/sinquest.pdf) /askguru (http://www.tinaja.com/glair01.asp) /assycb (http://www.amazon.com/exec/obidos/ISBN%3D0672223317/donlancastersgurA/002-3338585-9572047) /muse105 (http://www.tinaja.com/glib/muse105.pdf) /muse107 (http://www.tinaja.com/glib/muse107.pdf) /resbn90 (http://www.tinaja.com/glib/resbn90.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /testdemo (http://www.tinaja.com/glib/FULL60-1.ASC) /mschips (http://www.tinaja.com/glib/mschips.pdf) /sigview (http://www.sigview.com) /ggsigview (http://www.tinaja.com/glib/sigview.pdf) /mock (http://www.technicalworks.com) /xtronics (http://www.xtronics.com/) /oshen (http://www.oshonsoft.com/pic.html) /heapps01 (http://www.tinaja.com/psutils/heapps01.psl) /distlangpdf (http://www.tinaja.com/glib/distlang.pdf) /strconv (http://www.tinaja.com/glib/strconv.pdf) /fancysort (http://linux.wku.edu/~lamonml/algor/sort) /presort (http://www.tinaja.com/psutils/presort1.psl) /psnt (http://www.tinaja.com/glib/psnt.pdf) /insort (http://www.tinaja.com/psutils/insort.ps) /bublsort (http://www.tinaja.com/psutils/bublsort.ps) /oldstrconv (http://www.tinaja.com/psutils/strconv.html) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /muse01 (http://www.tinaja.com/muse01.asp) /gonzopow (http://www.tinaja.com/glib/gonzopow.pdf) /analogeb (http://www.tinaja.com/glib/analogeb.pdf) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /flut01 (http://www.tinaja.com/flut01.asp) /clpng (news:///comp.lang.postscript) /ctpng (news:///comp.text.pdf) /yahoo (http://www.yahoo.com) /google (http://www.google.com) /scodes (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) /whois (http://www.networksolutions.com/en_US/whois/index.jhtml) /zekes (http://www.zekes.com) /logfileformat (http://www.microsoft.com/windows2000/en/server/iis/default.asp?url=/windows2000/en/server/iis/htm/core/iicnvlg.htm) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /logrpt01.log (http://www.tinaja.com/psutils/logrpt01.log) /ex031126 (http://www.tinaja.com/psutils/ex031126.log) /picup01 (http://www.tinaja.com/picup01.asp) /webwb01 (http://www.tinaja.com/webwb01.asp) /muse90 (http://www.tinaja.com/glib/muse90.pdf) /vismagsn (http://www.tinaja.com/glib/vismagsn.psl) /vismagsn.pdf (http://www.tinaja.com/glib/vismagsn.pdf) /msquant (http://www.tinaja.com/glib/msquant.psl) /optjit01 (http://www.tinaja.com/psutils/optjit01.psl) /optjit01demo (http://www.tinaja.com/psutils/optjit01.pdf) /qall01 (http://www.tinaja.com/psutils/qall01.psl) /deltapat (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.pdf (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.psl (http://www.tinaja.com/psutils/deltapat.psl) /mindist1 (http://www.tinaja.com/glib/mindist1.pdf) /deltams1 (http://www.tinaja.com/glib/deltams1.pdf) /grabjpg (http://www.tinaja.com/psutils/grabjpg.psl) /gallery (http://www.tinaja.com/glib/gallery.pdf) /nutour01 (http://wwww.tinaja.com/nutour01.pdf) /linkpdf1 (http://www.tinaja.com/glib/linkpdf1.html) /ebayfoto (http://www.tinaja.com/glib/ebayfoto.pdf) /jpeg2pdf.html (http://www.tinaja.com/text/jpeg2pdf.html) /pdf2bmp (http://www.tinaja.com/psutils/pdf2bmp.psl) /bitmfont (http://www.tinaja.com/psutils/bitmfont.txt) /antifontpsl (http://www.tinaja.com/psutils/antifont.psl) /antifonttxt (http://www.tinaja.com/psutils/antifont.txt) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /swingtlt (http://www.tinaja.com/glib/swingtlt.pdf) /newsamoe (news:///alt.marketing/online.ebay) /webtrends (http://www.netiq.com/webtrends/default.asp) /stegan (http://63.140.207.28/books/bkwater.asp) /nodi (http://www.pages.ebay.com/help/community/notice-infringe2.pdf) /ebayvero (http://www.pages.ebay.com/help/community/vero-program.html) /aboutme (http://members.ebay.com/aboutme/abeja/) /magfill2 (http://www.tinaja.com/psutils/magfill2.psl) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /waywere (http://www.tinaja.com/glib/waywere.pdf) /nikon (http://www.nikon.com) /bayer (http://www.coreco.com/Web/wbtools3.nsf/0/87fce126f109ea3a05256c7100591c9a?OpenDocument) /hewpack (http://www.hp.com) /auct01 (http://www.tinaja.com/auct01.asp) /blat01 (http://www.tinaja.com/blat01.asp) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /autourl (http://www.tinaja.com/glib/autourl.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msintrosource (http://www.tinaja.com/glib/msintro1.psl) /knockout (http://www.tinaja.com/glib/knockout.bmp) /stepsynt (http://www.tinaja.com/glib/stepsynt.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msinprop (http://www.tinaja.com/glib/msinprop.pdf) /muse106 (http://www.tinaja.com/glib/muse106.pdf) /muse142 (http://www.tinaja.com/glib/muse142.pdf) /math01 (http://www.tinaja.com/math01.asp) /cubic01 (http://www.tinaja.com/cubic01.asp) /bez4pts (http://www.tinaja.com/glib/bez4pts.pdf) /muse145 (http://www.tinaja.com/glib/muse145.pdf) /muse148 (http://www.tinaja.com/glib/muse148.pdf) /curveft3 (http://www.tinaja.com/psutils/curveft3.psl) /fuzzybez (http://www.tinaja.com/glib/fuzzybez.pdf) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /nowhit01 (http://www.tinaja.com/psutils/nowhit01.psl) /blender (http://www.tinaja.com/psutils/blender.psl) /speedup2 (http://www.tinaja.com/glib/speedup2.pdf) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /imgviewer32 (http://www.arcatapet.net/imgv32.cfm) /basis (http://www.tinaja.com/glib/basis.pdf) /expbmp (http://www.tinaja.com/glib/expbmp.pdf) /dodbur01 (http://www.tinaja.com/psutils/dodbur01.psl) /dodgebur (http://www.tinaja.com/glib/dodgebur.pdf) /magfill1 (http://www.tinaja.com/psutils/magfill1.psl) /swingt01 (http://www.tinaja.com/psutils/swingt01.psl) /before01 (http://www.tinaja.com/images/bargs/marcon01.jpg) /during01 (http://www.tinaja.com/images/bargs/marcon01.bmp) /after01 (http://www.tinaja.com/images/bargs/marconz1.jpg) /repobmp (http://www.tinaja.com/glib/repobmp.pdf) /basis01 (http://www.tinaja.com/glib/basis.pdf) /arcata (http://www.arcatapet.net/imgv32.cfm) /comparebmp (http://www.designer-info.com/Writing/bmp_tiff_jpeg_gif.htm) /imagimag (http://www.tinaja.com/glib/imagimag.pdf) /myebays (http://www.tinaja.com/glib/myebays.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /aafont01 (http://www.tinaja.com/aafont01.asp) /here1 (http://village.infoweb.ne.jp/~fwhw1257/study/bmpform.htm) /here2 (http://www.daubnet.com/formats/BMP.html) /bittype (http://www.tinaja.com/psutils/pdf2bmp.psl) /photocombine (http://www.tinaja.com/psutils/blender.psl) /psl (http://www.tinaja.com/psutils/) % dummy temp /psl1 (http://www.tinaja.com/psutils/pdf2bmp.psl) /psl2 (http://www.tinaja.com/psutils/acatdata.psl) /psl3 (http://www.tinaja.com/psutils/catwords.psl) /psl4 (http://www.tinaja.com/psutils/graburls.psl) /psl5 (http://www.tinaja.com/psutils/blender.psl) /psl6 (http://www.tinaja.com/psutils/catools1.psl) /psl7 (http://www.tinaja.com/psutils/strconv.html) /psl8 (http://www.tinaja.com/psutils/bodcat.psl) /psl9 (http://www.tinaja.com/psutils/flatvue1.psl) /psl10 (http://www.tinaja.com/psutils/fern2img.psl) /psl11 (http://www.tinaja.com/psutils/flutools.psl) /psl12 (http://www.tinaja.com/psutils/mscal156q.psl) /psl13 (http://www.tinaja.com/psutils/weblogu2.psl) /psl14 (http://www.tinaja.com/psutils/pfa2pfb.psl) /psl15 (http://www.tinaja.com/psutils/pfb2pfa.psl) /psl16 (http://www.tinaja.com/glib/psdisk03.psl) /psl17 (http://www.tinaja.com/psutils/disktool.psl) /psl18 (http://www.tinaja.com/glib/psinscrt.psl) /psl19 (http://www.tinaja.com/glib/pssearch.psl) /psl20 (http://www.tinaja.com/text/refsum1.html) /psl21 (http://www.tinaja.com/text/reflog1.html) /psl22 (http://www.tinaja.com/psutils/reflog1.psl) /psl23 (http://www.tinaja.com/psutils/refsum1.psl) /psl24 (http://www.tinaja.com/psutils/searepl.psl) /psl25 (http://www.tinaja.com/psutils/weberru2.psl) /psl26 (http://www.tinaja.com/psutils/grabsrch.psl) /psl27 (http://www.tinaja.com/psutils/grabrefs.psl) /magsn01 (http://www.tinaja.com/magsn01.asp) /gonzoutils (http://www.tinaja.com/post01.asp#gonzo) /disktool (http://www.tinaja.com/psutils/disktool.ps) /elesimp (http://www.tinaja.com/glib/elesimp.pdf) /tn5603 (http://partners.adobe.com/asn/developer/pdfs/tn/TN5603.Filters.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /fern (http://www.tinaja.com/psutils/fern2img.pdf) /oldfern (http://www.tinaja.com/psutils/fernx1.pdf) /acrosdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /refman2 (http://partners.adobe.com/asn/developer/pdfs/tn/psrefman.pdf) /refman3 (http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf) /s3011 (http://partners.adobe.com/asn/developer/pdfs/tn/PS3010and3011.Supplement.pdf) /s2011 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2011.supplement.pdf) /s2012 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2012.supplement.pdf) /s2013 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2013.supplement.pdf) /s2014 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2014.supplement.pdf) /s2015 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2015.supplement.pdf) /s2016 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2016.supplement.pdf) /ghost (http://www.cs.wisc.edu/~ghost/) /distlang (http://www.tinaja.com/psutils/distlang.html) /adobepst (http://partners.adobe.com/asn/developer/technotes/) /maildon (mailto:don@tinaja.com) /tinaja (http://www.tinaja.com) /adobe (http://www.adobe.com) /adobesdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /borland (http://www.borland.com/products/downloads/download_cbuilder.html) /ebay (http://cgi6.ebay.com/ws/eBayISAPI.dll?ViewSellersOtherItems&userid=abeja&completed=0&sort=2&since=-1&include=0&page=1&rows=100) /searepl (http://www.tinaja.com/psutils/searepl.psl) /aasdk (http://www.tinaja.com/plugins/AboutAcrobatSDK.api) /uncomp (http://www.tinaja.com/plugins/UncompressPDF.api) /addimage (http://www.tinaja.com/plugins/AddImage.api) /samplejpg (http://www.tinaja.com/plugins/sample.jpg) /transparency (http://www.tinaja.com/plugins/Transparency.api) /threerects (http://www.tinaja.com/plugins/threerects.pdf) /watermark (http://www.tinaja.com/plugins/Watermark.api) /verifyurls (http://www.tinaja.com/plugins/VerifyURLS.api) /flate (http://www.tinaja.com/glib/flatvue.pdf) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /advt01 (http://www.tinaja.com/advt01.asp) /amlink01 (http://www.tinaja.com/amlink01.asp) /ng1 (news:///comp.text.pdf) /ng2 (news:///comp.lang.postscript) /msc++ (http://msdn.microsoft.com/visualc/productinfo/default.asp) /degub (http://www.tinaja.com/glib/degub.pdf) % dead /ghostscript (http://www.artifex.com/pressreleases/GS70.htm) /demox.psl (http://www.tinaja.com/glib/g9demox.psl) /demox.pdf (http://www.tinaja.com/glib/g9demox.pdf) /demo.pdf (http://www.tinaja.com/glib/g9demo.pdf) /flatvue (http://www.tinaja.com/glib/flatvue.psl) /pdfrefman (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /psrefman (http://partners.adobe.com/asn/developer/technotes/postscript.html) /pdfmrm (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /tipdf (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /asdk (http://partners.adobe.com/asn/developer/acrosdk) /mtcr (http://support.adobe.com/devsup/devsup.nsf/docs/51864.htm) /flatvue1 (http://www.tinaja.com/psutils/flatvue1.psl) /acrob01 (http://www.tinaja.com/acrob01.asp) /post01 (http://www.tinaja.com/post01.asp) /info01 (http://www.tinaja.com/info01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /energfun (http://www.tinaja.com/glib/energfun.pdf) { /tilley (http://www.tilleyfoundation.com) /mnglobal (http://www.mnglobal.com/energy/pg2.htm) /keely (http://www.keelynet.com) /evolve (http://www.evolvedtechnology.com) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /resbn58 (http://www.tinaja.com/glib/resbn58.pdf) /bppt (http://www.batterypoweronline.com) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /energfun (http://www.tinaja.com/glib/energfun.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /adobe (http://www.adobe.com) /netscape (http://www.netscape.com) /gallypsl (http://www.tinaja.com/galley1.psl) /gallypdf (http://www.tinaja.com/galley1.pdf) /atn5150 (http://partners.adobe.com/asn/developer/acrosdk/docs/createpdfapi/pdfmarkReference.pdf) /nutour (http://www.tinaja.com/bargains/nutour02.pdf) /nutoursource (http://www.tinaja.com/bargains/nutour02.psl) /bwhistle (http://www.tinaja.com/glib/bwhistle.pdf) /gonzo1 (http://www.tinaja.com/post01.asp#gonzo) /barg01 (http://www.tinaja.com/barg01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /z1 (http://www.tinaja.com/bargains/thumb/albradz2.jpg) /z2 (http://www.tinaja.com/bargains/sbtesteq.asp) /z3 (http://www.tinaja.com/images/bargs/albrad02.jpg) /z4 (http://www.tinaja.com/bargains/thumb/tutenaz2.jpg) /z5 (http://www.tinaja.com/bargains/sbphone.asp) /z6 (http://www.tinaja.com/images/bargs/tutena02.jpg) /sourceme (http://www.tinaja.com/glib/gallery.psl) /sourceme2 (http://www.tinaja.com/glib/autourl.psl) } pop >> {mark exch /eurl cvx ] cvx def} forall %%%%%%%%%%%%%%%% New colorizer patches %%%%%%%%%%%%%%%%%% /boxgrays 0.899 def /grayshade boxgrays def /mastergray boxgrays def /staytint {0.33 setgray} def /staytint1 {0.25 setgray} def /showadgrays true def /red {0 settint} def /Zmacro {staytint /ypos ypos 2 add def 72 300 div setlinewidth xpos ypos moveto txtwide 0 rlineto stroke /ypos ypos -2 add def tintoff} def % hair rule /amacro {(zy0) stringmacro /ypos ypos ypara add def 0.33 setgray } def % start drop cap /bmacro {(iFy1) stringmacro /ypos ypos ypara add def black} def % finish drop cap % Gonzo character colorizer /blueon {mark /blue cvx 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /blueoff {mark /beige cvx 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton {mark 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1 {mark 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark beige cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1p {mark /burple cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1r {mark /red cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark /beige cvx % try for beige after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tintoff {mark 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def %%%%%%%%%%%%%% COMPACT VERSION OF COLORIZER II %%%%%%%%%%%%%%%%%%%%%% /settint {dup /currenttint exch store 5.999 mul dup floor cvi /&cbar exch store dup floor sub /&cwt exch store [ {/setgray [ /dup cvx 0.3 &cwt 0.59 mul add /ge cvx [1 /exch cvx &cwt 0.59 mul 0.30 add /sub cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx ] cvx [ &cwt 0.59 mul 0.3 add /div cvx /dup cvx &cwt /mul cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub 0.3 mul add /ge cvx [1 &cwt sub 0.3 mul 0.59 add /sub cvx &cwt 0.3 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx /exch cvx 1 /exch cvx] cvx [1 &cwt sub 0.3 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 &cwt 0.11 mul add /ge cvx [&cwt 0.11 mul 0.59 add /sub cvx 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx 1 /exch cvx] cvx [0 /exch cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub mul 0.11 add /ge cvx [1 &cwt sub 0.59 mul 0.11 add /sub cvx &cwt 0.59 mul 0.30 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx 1] cvx [0 /exch cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.11 &cwt 0.30 mul add /ge cvx[&cwt 0.30 mul 0.11 add /sub cvx 1 &cwt sub 0.30 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx 1] cvx [ &cwt 0.30 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx /exch cvx 0 /exch cvx ] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} {/setgray [ /dup cvx 0.30 1 &cwt sub 0.11 mul add /ge cvx[ 1 /exch cvx 1 &cwt sub 0.11 mul 0.30 add /sub cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx ] cvx [ 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx 0 /exch cvx] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} ] &cbar get exec exec} bind def /beige {0.10 settint} def % examples of convenience operators /aqua {0.52 settint} def /blue {0.67 settint} def /lime {0.44 settint} def /burple {0.75 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /guru { gonzo begin ps.util.1 begin printerror nuisance begin} def % guru % activate gonzo utilities 50 50 10 setgrid % create grid % 56 61 showgrid /setpagefonts { /cstretch 0.015 def /sstretch 0.015 def /font0 /StoneSans-Bold 1.6 gonzofont /font1 /StoneSans 0.95 gonzofont /font2 /StoneSans [0.95 0 0.25 0.95 0 0 ] gonzofont /font4 /StoneSans 0.85 gonzofont /font3 /StoneSans-Bold 0.85 gonzofont /font6 /StoneSans-Bold 0.85 gonzofont /font7 /StoneSans-Bold 1.05 gonzofont % subheaders /font8 /StoneSans-Bold [0.65 0 0 0.65 0 0.4] gonzofont /txtwide 36 store /yinc 1.2 store /kern 0.1 store /pm 1.5 store aqua 0.33 setgray font1 black /amacro { mark /aqua cvx 0.33 /setgray cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /bmacro { mark /black cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /shiftin {xpos /xposhold exch store /xpos xpos 3 add store} def /shiftout {/xpos xposhold store} def /texttop 51 store /textleft 3 store /cmacro {aqua 0.25 setgray (znhL7) stringmacro /xpos xpos 1.7 sub store /ypos ypos .1 sub def } def % left title /dmacro {black (pL1hz) stringmacro /xpos xpos 1.7 add store /ypos ypos .1 add def} def % normal text after centered title /fmacro % try and fake | {mark /gsave cvx /currentpoint cvx /moveto cvx 0.1 /setlinewidth cvx 0 0.65 /rlineto cvx /stroke cvx /grestore cvx ] cvx printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def } def setpagefonts % -2 50.5 (optional header here \274) cl %% Set document opening conventions. Note DOCVIEW limited. [/CropBox [0 0 520 620] % set the wierd size /PAGES pdfmark [ {Catalog} << /ViewerPreferences << /FitWindow true /CenterWindow true >> /PageLayout /OneColumn % continous /Pagemode /UseNone % no thumbs /View [/XYZ null null 1 ] % force 100% >> /PUT pdfmark %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% page manager /pagenum 1 store /startnewpage { black beige 0.35 setgray 21 -2.5 (|3\320|j|j) ggnum 10 string cvs mergestr (|j.|j) mergestr pagenum 10 string cvs mergestr (|j|j\320) mergestr cc aqua showpage %% start next page /pagenum pagenum 1 add store 50 50 10 setgrid % create grid setpagefonts font1 textleft texttop } def /su {surl font6} store /to {tinton1 font6} store /tx {tintoff font1} store /tabs [7 20] store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % //// REVISED DIPDRAW PROC ///// electronics begin % dipdraw - draws a dip integrated circuit. (old code to be improved) % Enter with currentpoint set to pin 1 and scale % set so that 1.0 = distance between pins. Then % do a numpins-(name)-(hipins)-(lopins) dipdraw % Pin callouts preceeded by / will be complemented. % main dipdraw entry: /dipdraw { save /dipsnap exch def /hipins exch def /lopins exch def /chipname exch def /numpins exch def mark 0 0 0 0 0 0 0 0 0 0 0 0 % temp patch /howlong {numpins 2 div cvi 1 add} def /howhigh {4 numpins 36 ge {1 add} if} def /stub {howhigh 1.4 sub 2 div} def % internal service subs start here: /pinproc {numpins 2 div cvi{newpath 0 cpos 0.37 0 360 arc gsave 1 setgray fill grestore 0.067 setlinewidth stroke pin# 5 string cvs dup stringwidth pop 2 div neg cpos 0.2 sub moveto show 1 0 translate /pin# pin# dir add def} repeat } def /stretchprint { dup stringwidth pop 2 div neg exch length 1 sub stretch mul 2 div sub 0 moveto callout (/) anchorsearch true eq {currentpoint exch stretch add exch moveto pop dup /callout exch def stringwidth pop callout length 1 sub stretch mul add /barwide exch def 0.033 setlinewidth gsave currentpoint 0.55 add moveto barwide 0 rlineto stroke grestore} if stretch 0 callout ashow pop} def /pincallouts{0 vpos translate {workstring ( ) search true eq {/callout exch def pop /workstring exch def callout stretchprint 1 0 translate}{dup /callout exch def stretchprint exit } ifelse}loop} def % actual dipdraw process starts here: % ........ the outline: gsave 1 setlinecap 1 setlinejoin currentpoint translate newpath -1 howhigh 2 div 0.7 -90 90 arc 0 stub rlineto howlong 0 rlineto 0 howhigh neg rlineto howlong neg 0 rlineto closepath gsave grayshade setgray fill grestore grayshade dup 1 ne {0.33}{0} ifelse setgray 0.36 setlinewidth stroke newpath -.55 .45 0.15 0 360 arc fill black % ........ pin circles and numbers: /Helvetica-Bold findfont [0.4 0 0 0.55 0 0] makefont setfont gsave /pin# 1 def /dir 1 def /cpos 0 def pinproc grestore gsave /pin# numpins def /dir -1 def /cpos howhigh def pinproc grestore % pin callouts: /Helvetica findfont [0.35 0 0 0.6 0 0] makefont setfont /stretch 0.033 def gsave /workstring hipins def /vpos 0.6 def pincallouts grestore gsave /workstring lopins def /vpos howhigh 1.05 sub def pincallouts grestore % device number: grayshade 1 ne {0.33}{0} ifelse setgray /Helvetica-Bold findfont [1.4 0 0 1 0 0] makefont setfont /stretch 0.05 def gsave numpins 2 div 1 sub 2 div howhigh 2 div 0.33 sub translate chipname dup /callout exch def stretchprint grestore black % end cleanup: grestore grestore cleartomark dipsnap restore} def end % get out of electronics? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Burplebox routines /burpwide 29.5 store /burpcom {save /burpx exch store /bht exch store save /burp1 exch store xpos ypos translate -1 .2 mt bht yinc mul .4 add pd burpwide pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store /burpwidew 32 store /burpcomw {save /burpx exch store /bht exch store save /burp1 exch store xpos 1 sub ypos translate 0 .2 mt bht yinc mul .4 add pd burpwidew pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store { /burplebox1 {1.5 burpcom} store /burplebox1.5 {2 burpcom} store /burplebox2 {2.5 burpcom} store /burplebox2.5 {3 burpcom} store /burplebox3 {3.5 burpcom} store /burplebox3.5 {4 burpcom} store /burplebox4 {4.5 burpcom} store /burplebox4.5 {5 burpcom} store /burplebox5 {5.5 burpcom} store /burplebox5.5 {6 burpcom} store /burplebox6 {6.5 burpcom} store /burplebox6.5 {7 burpcom} store /burplebox7 {7.5 burpcom} store /burplebox7.5 {8 burpcom} store /burplebox8 {8.5 burpcom} store /burplebox8.5 {9 burpcom} store /burplebox9 {9.5 burpcom} store /burplebox9.5 {10 burpcom} store /burplebox10 {10.5 burpcom} store /burplebox10.5 {11 burpcom} store /burplebox11 {11.5 burpcom} store /burplebox11.5 {12 burpcom} store /burplebox12 {12.5 burpcom} store /burplebox11w {11.5 burpcomw} store /burplebox12.5 {13 burpcom} store /burplebox13 {13.5 burpcom} store /burplebox13.5 {14 burpcom} store /burplebox14 {14.5 burpcom} store /burplebox14.5 {15 burpcom} store /burplebox15{15.5 burpcom} store /burplebox15.5{16 burpcom} store /burplebox16 {16.5 burpcom} store /burplebox16.5 {17 burpcom} store /burplebox17 {17.5 burpcom} store /burplebox17.5 {18 burpcom} store /burplebox18 {18.5 burpcom} store /burplebox18.5 {19 burpcom} store /burplebox19 {19.5 burpcom} store /burplebox19.5 {20 burpcom} store /burplebox20 {20.5 burpcom} store /burplebox21.5 {22 burpcom} store /burplebox22{22.5 burpcom} store /burplebox22.5 {23 burpcom} store /burplebox23 {23.5 burpcom} store /burplebox23.5 {24 burpcom} store /burplebox24{24.5 burpcom} store /burplebox25{25.5 burpcom} store /burplebox25.5{26 burpcom} store /burplebox27{27.5 burpcom} store /burplebox28 {28.5 burpcom} store /burplebox28.5 {29 burpcom} store /burplebox30 {30.5 burpcom} store /burplebox31 {31.5 burpcom} store /burplebox31.5 {32 burpcom} store /burplebox33.5 {34 burpcom} store /burplebox34 {34.5 burpcom} store /burplebox38 {38.5 burpcom} store /burplebox38.5{39 burpcom} store /burplebox40{40.5 burpcom} store /burplebox40.5{41 burpcom} store /burplebox41.5{42 burpcom} store /burplebox42 {42.5 burpcom} store /burplebox42.5{43 burpcom} store % nearly a full page /burplebox43 {43.5 burpcom} store } pop 1 1 50 {cvi /size exch store % make all the burpleboxes (burplebox) size 20 string cvs mergestr cvn mark size 0.5 add /burpcom cvx ] cvx store (burplebox) size 0.5 add 20 string cvs mergestr cvn mark size 1 add /burpcom cvx ] cvx store } for /burplebox34w{34.5 burpcomw} store /burplebox34.5w{35 burpcomw} store /burplebox38w{38.5 burpcomw} store /burplebox38.5w{39 burpcomw} store /burplebox40w{40.5 burpcomw} store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % New sequence of auto positioning figures... % combined autopos jpeg conversion and hotlink: /autoimageandlink1 {save /af1 exch store xpos ypos yinc add translate 11.8 -12.1 511 492 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/qsc53601.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\71_ebayskill_V\\qsc53601.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink2 {save /af2 exch store xpos ypos yinc add translate 18 -11.8 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/ce47u25v.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\ce47u25v.jpg) jpegimageprocwithlink af2 restore} store /autoimageandlink3 {save /af1 exch store xpos ypos yinc add translate 1 -12 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3x.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\origpwri.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink4 {save /af2 exch store xpos ypos yinc add translate 18 -12 -1.5 add 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\finpwri.jpg) jpegimageprocwithlink af2 restore} store /jpegimageprocwithlink { % hoffset voffset hres vres save /snap2 exch def /infilename exch store % grab passed pix file /inurllink exch store % grab link filename /photoscale exch store /vpixels exch store /hpixels exch store translate % adjust position for final figure ??? inurllink setareaurl % autolink sizing /DeviceRGB setcolorspace % pick color model 0 0 translate % set page position hpixels vpixels scale % magnify unit square photoscale dup scale /infile infilename (r) file def % establish input read file /Data {infile /DCTDecode filter} def % define a data source << % start image dicationary /ImageType 1 % always one /Width hpixels % JPEG width in pixels /Height vpixels % JPEG height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource Data % proc to get filtered JPEG /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image operator ypos snap2 restore /ypos exch def } def /setareaurl { % for auto include routine /cururlname exch store mark % start pdfmark /Rect [ 0 0 hpixels photoscale mul vpixels photoscale mul ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def %%%%%%%%%%%%% ordinary tracking figures /autofig1 { /figadvance 23 store save /snap1 exch store xpos 2 add ypos figadvance sub translate figure1 snap1 restore /ypos ypos figadvance sub yinc sub store } store /autofig2 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure2 snap2 restore /ypos ypos figadvance sub yinc sub store } store /autofig3 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure3 snap2 restore /ypos ypos figadvance sub yinc sub store } store /autofig4 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure4 snap2 restore /ypos ypos figadvance sub yinc sub store } store %%%%%%%%%%%%%%% fixed position figures here %%%%%%%%%%%%%%% /figure1 {0 0 mt 10 pu 10 pr 10 pd closepath fill} store % temp tester /figure1 { save /f1snap exch store mark 5 12.2 translate -55 rotate 0.09 dup scale -100 -100 translate /solvexy {/ff exch store % grab values - not optimized /ee exch store /dd exch store /cc exch store /bb exch store /aa exch store cc aa dd div ff mul sub bb aa ee mul dd div sub div /yy exch store /xx cc bb yy mul sub aa div store xx yy } store /bez4ptsx1 {aload pop % unpack array /y3 exch store /x3 exch store % stash data. Strange /y5 exch store /x5 exch store % numbering is in use /y4 exch store /x4 exch store /y0 exch store /x0 exch store % find the chords /c1 x4 x0 sub dup mul y4 y0 sub dup mul add sqrt store /c2 x5 x4 sub dup mul y5 y4 sub dup mul add sqrt store /c3 x3 x5 sub dup mul y3 y5 sub dup mul add sqrt store % guess at the best t values % /t1 c1 dup c2 add c3 add div store % /t2 c1 c2 add dup c3 add div store /b0 {1 exch sub dup dup mul mul} store /b1 {dup 1 exch sub dup mul mul 3 mul} store /b2 {dup 1 exch sub exch dup mul mul 3 mul} store /b3 {dup dup mul mul} store % ai + bj = k t1 b1 t1 b2 x4 x0 t1 b0 mul sub x3 t1 b3 mul sub t2 b1 t2 b2 x5 x0 t2 b0 mul sub x3 t2 b3 mul sub solvexy /x2 exch store /x1 exch store t1 b1 t1 b2 y4 y0 t1 b0 mul sub y3 t1 b3 mul sub t2 b1 t2 b2 y5 y0 t2 b0 mul sub y3 t2 b3 mul sub solvexy /y2 exch store /y1 exch store x0 y0 moveto x1 y1 x2 y2 x3 y3 curveto } def /data [100 100 180 120 270 190 320 100 sub 300] store % /data [100 100 200 120 300 190 200.24 300] store /bdot {gsave 16 dup scale 0 0 dot grestore} store /bdot8 {gsave 6 dup scale 0 0 dot grestore} store data 0 get data 1 get mt bdot data 2 get data 3 get mt bdot data 4 get data 5 get mt bdot data 6 get data 7 get mt bdot /t1 0.33 store /t2 0.67 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke true { 1 0 0 setrgbcolor /t1 0.28 store /t2 0.72 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke 0 0 1 setrgbcolor /t1 0.37 store /t2 0.63 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke } if cleartomark f1snap restore } store /figure1 { save /f1snap exch store 5 -7.5 translate 0.1 dup scale /dots [0.0 0.0 0.264953 1.54495 0.604746 3.07298 1.03917 4.57484 1.59717 6.03836 2.31306 7.42849 3.22877 8.69581 4.37073 9.76335 5.71563 10.5583 7.19172 11.074 8.7265 11.3795 10.2797 11.5763 11.8334 11.7684 13.371 12.0601 14.8541 12.5554 16.2111 13.3298 17.3652 14.3824 18.2898 15.6429 19.0102 17.0323 19.5673 18.4938 20.0 20.0] store 0 0 10 setgrid 20 20 showgrid /x0 0 store /y0 0 store /x1 3 store /y1 20 store /x2 16 store /y2 4 store /x3 20 store /y3 20 store x0 y0 moveto x1 y1 x2 y2 x3 y3 curveto black line1 stroke 0 1 20 {2 mul /jj exch store dots jj get dots jj 1 add get mt dot } for f1snap restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% special figure one for gg61 book layout /figure1 { save /f1xsnap exch store gsave % temp 10.2 0.8 translate 0.4 dup scale % adjust fit on page % add an active link for expandion temporary /cururlname (http://www.tinaja.com/glib/loglog01.pdf) store mark % start pdfmark /Rect [ 0 0 30 30 ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators % Custom Engineering Graphs: A log log display % ================================== % by Don Lancaster % Copyright c 2006 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % An example of using my Gonzo Utilities to do a custom engineering graph. % Detailed example does a scatterplot on a 3x3 log graph. % IMPORTANT NOTE: Don Lancaster's file gonzo.ps is required for this program. % This may be freely downloaded from http://www.tinaja.com/post01.asp#gonzo % To activate after obvious location mods, uncomment ONE of the following two lines: % (C:\\Documents and Settings\\don\\Desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % Plus the next line when Gonzo is to be activated... % gonzo begin ps.util.1 begin nuisance begin % NOTE THAT ALL PS FILENAME STRINGS !!!DEMAND!!! DOUBLE REVERSE SLASHES. % To use this program, you modify your values and save it as an ordinary ASCII % textfile. That file is then sent to Acrobat Distiller for coversion to a .PDF % file format. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% Fixzed Input Data %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /backgroundcolor {0.8 1 1} store % background color of graph /graphlinecolor {0 0.8 0.8}store % line color of graph /datadotcolor {0.3 0.3 0.3} store % dot color % loglines establishes the fine line detail of the log plots % always refers to a 1,1 lower left axis and NOT to the actual % scaled data values /loglines [ 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100 200 300 400 500 600 700 800 900 1000 ] store /xdatascale 1.0 store % scale factor to make left data = 1 /ydatascale 10 store % scale factor to make bottom data = 1 /xaxisname (TREES PER ACRE) store % x axis label /yaxisname (TREE DIAMETER IN INCHES) store % y axis label /xnums [1 10 100 1000] store % scaled x axis data /ynums [.1 1.0 10 100] store % scaled y axis data /maintitle (HULAPAI TIMBER ALLOTMENT\n( T20N R15E ) ) store % main title % /inputdata may be cut and pasted here or run as a separate textfile % below. Format is an array of [ x0, y0, x1, y1, .... xn, yn ] data % values. Limited to a maximum of 32767 data value pairs. Data is % ACTUAL values, not graph scaled ones. /inputdata [ 3.0634 0.3678 3 3 3 30 30 0.4 30 4 30 40 300 0.5 300 5 300 50 100 {90 random 10 add 90 random 10 add 10 div } repeat % fake some dense data ] store % Note: fonts must be defined BELOW and AFTER grid is established. % Availability of STONE font is recommended for this demo. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% File Read Input Data %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Any and all of the above data may optionally be read from a textfile. % If used, be sure to use a DOUBLE reverse % slash every time you want a single one in a PostScript string. % Be sure to provide complete, correct, and accurate location for access. % /datafilename (C:\\Documents and Settings\\don\\Desktop\\trees\\tree1.txt) store % Uncomment the following line ONLY if external data is to be disk read... % datafilename run % run additional data from external file. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% Low Level Graph Creating Code %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /makeagrid establishes the grid size. Each 10 x 10 area will be one % decade. Also puts down edges and background of log display area /makeagrid { % 100 100 10 setgrid % establish xposn yposn size grid /cstretch 0.01 store % adjust font to grid /sstretch 0.01 store backgroundcolor setrgbcolor % paint background. Comment out 0 0 mt 30 pu 30 pr 30 pd % or use [1 1 1] for white closepath fill graphlinecolor setrgbcolor % paint decades heavier line2 1 setlinecap 1 setlinejoin [ {-0.3 0 mt 30.3 r}10 4 ] yrpt % [{action} spacing repeats ] [ {0 -0.3 mt 30.3 u}10 4 ] xrpt } store % /make3x3log provides the inside detail for the log graphs. Both axes % done separately just in case semilog is later needed /make3x3log { line1 % thin line 0 1 loglines length 1 sub % draw verticals {/ptr exch store loglines ptr get log 10 mul 0 mt 30 u } for 0 1 loglines length 1 sub % draw horizontals {/ptr exch store loglines ptr get 0 exch log 10 mul mt 30 r } for } store % /plotdata scales and plots the data points from the inputdata array /plotdata { datadotcolor setrgbcolor % set dot color 0 2 inputdata length 2 sub % go through plotdata list {/ptr1 exch store % save location inputdata ptr1 get % get x value xdatascale mul log 10 mul inputdata ptr1 1 add get % get y value ydatascale mul log 10 mul mt dot % and plot dot } for } store % /addaxis lables the axes /addaxis { /font1 /StoneSans-Bold 0.85 gonzofont % numeric value font /font2 /StoneSans-Bold 1.2 gonzofont % title value font font1 % pick numeric font black % and color 0 1 xnums length 1 sub { % show the x axis nums /ptr2 exch store ptr2 10 mul -1.5 xnums ptr2 get 20 string cvs cc } for 0 1 ynums length 1 sub { % show the y axis nums /ptr2 exch store -0.9 ptr2 10 mul 0.3 sub ynums ptr2 get 20 string cvs cr } for font2 15 -3.5 xaxisname cc gsave -3.5 15 translate 90 rotate 0 0 yaxisname cc grestore } store % /addboiler provides the main graph name, can later extensively annotate. /addboiler { /font3 /StoneSans-Bold 2 gonzofont % title value font font3 /yinc 2.2 store 15 35 maintitle cc % print main title } store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% High Level Graph Creating Code %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This routine combines the needed steps for the complete log log plot. /makealogloggraph { makeagrid % sets up grid make3x3log % draws log graph addaxis % letters the axes plotdata % plots data points addboiler % adds title and desc } store % temp defaults. uncomment for debug % /make3x3log {} store % /addaxis {} store % /plotdata {} store /addboiler {} store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% Actual Graph Creator %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This routine actually draws the graph makealogloggraph grestore % undo translate and page positioning f1xsnap restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% specific to gg65 ms executive summary %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% specific figures for append %%%%%%%%%%%%%% /ms0360 { save /snapxx exch store 5 -2 translate % reposition absolute on page 0.76 dup scale /hh {32 mul 90 div 0.78 mul } store /uu 12.5 store /posninc 90 7.5 div store /p1s 11.086 store % best efficiency leans /p1e 12.913 store /p2s 22.211 store /p2e 25.788 store /p3s 33.416 store /p3e 38.583 store /p4s 44.733 store /p4e 51.266 store /p5s 56.192 store /p5e 63.807 store /p6s 67.819 store /p6e 76.180 store /p7s 79.628 store /p7e 88.371 store /msinplot {gsave translate 0.5 0 0.5 setrgbcolor line1 gsave % [{0 12 moveto 0.8 u} posninc hh 8] xrpt grestore 0 0 mt p1s hh pr uu pu p1e p1s sub hh pr uu pd p2s p1e sub hh pr uu pu p2e p2s sub hh pr uu pd p3s p2e sub hh pr uu pu p3e p3s sub hh pr uu pd p4s p3e sub hh pr uu pu p4e p4s sub hh pr uu pd p5s p4e sub hh pr uu pu p5e p5s sub hh pr uu pd p6s p5e sub hh pr uu pu p6e p6s sub hh pr uu pd p7s p6e sub hh pr uu pu p7e p7s sub hh pr uu pd 90 p7e sub hh pr gsave 0 0.83 0.83 setrgbcolor fill grestore line3 1 setlinecap 1 setlinejoin 0 0.33 0.33 setrgbcolor stroke grestore} store 0.8 1 scale % 40 100 showgrid /lilplot0 {gsave translate 0.5 0.5 scale 0 0 msinplot grestore} store /lilplot1 {gsave translate -0.5 0.5 scale 0 0 msinplot grestore} store /lilplot2 {gsave translate 0.5 -0.5 scale 0 0 msinplot grestore} store /lilplot3 {gsave translate -0.5 -0.5 scale 0 0 msinplot grestore} store 0 10 lilplot0 25 10 lilplot1 24.5 10 lilplot2 49.5 10 lilplot3 snapxx restore } store %%%%%%%%%%%%%%%%%%%%% /spectrumplot {save /snap3 exch store /cstretch 0.01 store /sstretch 0.01 store /font0 /StoneSans-Bold 1.2 gonzofont /font1 /StoneSans-Bold 1 gonzofont font1 /kern 0.1 store /yinc 1.1 store 7.5 5.8 translate % adjust position 0.7 dup scale gsave 0.75 1 1 setrgbcolor 0 0 mt 15 pu 36.5 pr 15 pd closepath fill grestore % 33 13 showgrid % uncomment to view gsave line1 [{0 0 mt 0.3 d} 2 19] xrpt grestore gsave line1 [{-0.4 3 mt 36.9 r} 3 5] yrpt grestore line1 36.5 0 mt 15 u 0 1 1 setrgbcolor 0 setlinecap line1 0.5 0 mt 15 pu 1 pr 15 pd gsave closepath fill grestore 0 0.33 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 28.5 0 mt 4.2 pu 1 pr 4.2 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 30.5 0 mt 2.25 pu 1 pr 2.25 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 32.5 0 mt 3 pu 1 pr 3 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 34.5 0 mt 0.5 pu 1 pr 0.5 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke black % /font1 /Helvetica 0.8 gonzofont font1 font1 /yinc 2 store /kern 0.1 store gsave 1.45 -0.9 translate 90 rotate black 0 0 (1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35) cr grestore font0 0.25 dup dup setrgbcolor % temp gray 12.5 -4 (HARMONIC NUMBER) cl font1 -1 -0.3 (0.0) cr -1 2.7 (0.2) cr -1 5.7 (0.4) cr -1 8.7 (0.6) cr -1 11.7 (0.8) cr -1 14.7 (1.0) cr gsave -3.5 4.0 translate 90 rotate % black font0 0 0 (AMPLITUDE) cl grestore black line2 0 0 mt -.5 0 mt 37 r 0 -.5 mt 16 u black font1 11 12.6 ((|jbest efficiency n|j=|j28|j a|j=|j0.97|j)) cl % flashtext font0 1 0 0 setrgbcolor 15 6.65 (All Intermediate\nHarmonics are ZERO|j!!!) cc snap3 restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% /plot2897 {save /snap4 exch store /cstretch 0.01 store /sstretch 0.01 store /font0 /StoneSans-Bold 1.2 gonzofont /font1 /StoneSans-Bold 1 gonzofont font1 /kern 0.1 store /yinc 1.1 store 3.2 14 translate % adjust position 0.85 dup scale %%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% pattern utilities %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% /bluerndcolor [153 215 230 40] store % random pattern colors [red blue green variance ] /slidewide 40 store /slidehigh 36.5 store /DeviceRGB setcolorspace % pick color model /hpixels 50 store % size of pattern image /vpixels 50 store /issize hpixels vpixels mul store % makestring converts a stack top array into a string... /makestring {dup length string dup /NullEncode filter 3 -1 roll {1 index exch write} forall pop} def % /buildpixels makes three nearby colors given [r b g texture] all 0-255 integers /buildpixels {aload pop /texture exch store /b0 exch store /g0 exch store /r0 exch store 123 srand /r1 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g1 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b1 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /r2 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g2 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b2 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /r3 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g3 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b3 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store } store % /makeimagestring creates a sting usable for a pattern image /makeimagestring { 12345 srand % make repeatable /iarray mark issize { r1 g1 b1} repeat ] store % fill all with color 1 issize 2 div cvi { iarray issize % fill half with color 2 random 3 mul cvi [ r2 g2 b2 ] putinterval} repeat issize 2 div cvi { iarray issize % fill third with color 3 random 3 mul cvi [ r3 g3 b3 ] putinterval} repeat iarray makestring } store % /rndimage shows the random string as a patternable image /bodyrandimage { gsave 5 dup scale << % start image dicationary /ImageType 1 % always one /Width hpixels % width in pixels /Height vpixels % height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource bodypatstring % proc to get string data /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image grestore } def /accentrandimage { gsave 5 dup scale << % start image dicationary /ImageType 1 % always one /Width hpixels % width in pixels /Height vpixels % height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource accentpatstring % proc to get string data /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image grestore } def % using a separate pattern dictionary for each pattern... /bodypatdict << /PatternType 1 % Tiling pattern /PaintType 1 % Colored /TilingType 1 /BBox [0 0 50 50] /XStep 5 /YStep 5 /PaintProc { begin bodyrandimage end} >> store /accentpatdict << /PatternType 1 % Tiling pattern /PaintType 1 % Colored /TilingType 1 /BBox [0 0 50 50] /XStep 5 /YStep 5 /PaintProc { begin accentrandimage end} >> store % /makepatternstrings generates the needed patterns /makepatternstrings { [230 100 230 120] pop bluerndcolor buildpixels makeimagestring /bodypatstring exch store } store bluerndcolor buildpixels makepatternstrings %%%%%%%% end pattern utils %%%%%%%% save /snap1 exch store % show the body background bodypatdict matrix % Identity matrix makepattern % Instantiate the pattern /bodypat exch def 0 0 % for the actual slide size slidewide slidehigh /Pattern setcolorspace bodypat setcolor rectfill % Fill rectangle with pattern snap1 restore %%%% end % 40 36 showgrid /cstretch 0.01 store /sstretch 0.01 store /font1 /StoneSans-Bold 0.95 gonzofont % parameter value font /font2 /StoneSans [0.85 0 0 1 0 0 ] gonzofont % numeric value font /orange { 241 255 div 158 255 div 30 255 div setrgbcolor } store /magenta { 254 255 div 156 255 div 255 236 div setrgbcolor } store /ltblue { 207 255 div 255 255 div 255 255 div setrgbcolor } store /white {1 1 1 setrgbcolor} store /lime { 54 255 div 255 255 div 52 255 div setrgbcolor } store /aqua { 102 255 div 255 255 div 201 255 div setrgbcolor } store orange %%%%%%%%%%%% orange series gsave .8 .8 translate [{orange 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 14] yrpt font1 0.33 dup dup setrgbcolor /dat1 [(p7e:) (p7s:) (p6e:) (p6s:) (p5e:) (p5s:) (p4e:) (p4s:) (p3e:) (p3s:) (p2e:) (p2s:) (p1e:) (p1s:)] store font1 0.12 dup dup setrgbcolor 0 1 dat1 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat1 ii get cc} for /dat2 [ (89.76625289081) (75.93480958918) (75.13315213749) (63.77803849250) (62.12795009229) (52.45588082770) (49.57368364472) (41.56706542527) (37.14383081926) (30.95837849073) (24.75285471101) (20.53940226898) (12.37453450377) (10.24045703622) ] store font2 0 1 dat2 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat2 ii get cl} for gsave 0 31.2 translate lime 0 0 mt 3.7 pu 12 pr 3.7 pd fill 13 0 mt 3.7 pu 25 pr 3.7 pd fill % right lime font1 0.12 dup dup setrgbcolor /yinc 1.2 store 6 2 (Pulse Positions\nin Degrees) cc 25 2.2 (Target Amplitude: ) cr 25 1.9 1.3 sub (Target Power: ) cr [{white 25.7 0.3 mt 1.3 pu 8.2 pr 1.3 pd fill} 1.7 2] yrpt font2 26 2.2 (0.970000000) cl 26 0.6 (0.9409 ) cl grestore % lime grestore % undo whole left %%%%%%%% %%%%%%%%%%%% mid blue series gsave 13.8 .8 translate [{ltblue 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 12] yrpt font1 0.33 dup dup setrgbcolor /dat3 [(h25:) (h23:) (h21:) (h19:) (h17:) (h15:) (h13:) (h11:) (h09:) (h07:) (h05:) (h03:) ] store font1 0.12 dup dup setrgbcolor 0 1 dat3 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat3 ii get cc} for /dat4 [ (-0.00000000014) (-0.00000000032) (-0.00000000004) (-0.00000000021) (-0.00000000022) (-0.00000000002) (-0.00000000024) ( 0.00000000044) (-0.00000000022) (-0.00000000011) (-0.00000000013) (0.000000000070) ] store font2 0 1 dat4 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat4 ii get cl} for gsave % magenta series magenta [{magenta 0 26.4 mt 1.7 pu 25.0 pr 1.7 pd closepath fill} 2.2 2 ] yrpt font1 0.12 dup dup setrgbcolor 0.8 26.8 (THD ) cl 0.8 6.2 add 26.8 (is ) cl 0.8 15.3 add 26.8 (percent.) cl 0.8 26.8 2.3 add (Fundamental Amplitude:) cl white 3.2 5.2 add 26.6 mt 1.3 pu 7.2 pr 1.3 pd fill white 14.2 28.8 mt 1.3 pu 7.2 pr 1.3 pd fill % fund amp box white 3.2 26.6 mt 1.3 pu 3.2 pr 1.3 pd fill 0.12 dup dup setrgbcolor font2 3.6 26.8 (2-28) cl 8.7 26.8 (0.00000006128) cl font2 14.7 27 2.1 add (0.97000000) cl grestore % burple grestore % whole middle %%%%%%%% %%%%%%%%%%%% right blue series gsave 26.8 .8 translate [{ltblue 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 12] yrpt [{aqua 0 19.8 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 20 mt 1.3 pu 8.2 pr 1.3 pd fill } 2.2 2] yrpt % emphasis font1 0.33 dup dup setrgbcolor /dat1 [(h49:) (h47:) (h45:) (h43:) (h41:) (h39:) (h37:) (h35:) (h33:) (h31:) (h29:) (h27:) ] store font1 0.12 dup dup setrgbcolor 0 1 dat1 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat1 ii get cc} for /dat6 [ (-0.00924395093) ( 0.00562585661) (-0.00342276346) ( 0.00211106203) (-0.00078946014) ( 0.00660309293) ( 0.04412815271) ( 0.17750740386) ( 0.20474366480) (-0.15202976905) (-0.28097991216) (-0.00000000009) ] store font2 0 1 dat6 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat6 ii get cl} for grestore snap4 restore } store %%%%%%%% /stalacs { %figadvance has to go in figuretwoauto save /snap3 exch def 11 10.3 translate % latest page positioner 0.8 dup scale -0.5 2.5 translate % reposition on page INTERACTS WITH FIGADVANCE 0 1 0 setrgbcolor % green grid /linestring 1000 string store /sdatproc { 0.0 0.7 0.1 setrgbcolor [ 0.4 7.33 0.38 6.36 -0.32 7.12 -0.04 7.33 -0.38 7.07 -0.07 7.26 -0.2 4.68 0.07 5.15 0.11 6.17 -0.27 4.26 0.01 6.32 -0.23 4.79 0.05 2.95 -0.29 6.05 -0.02 6.3 0.02 7.29 -0.09 7.37 -0.15 6.89 -0.12 6.19 0.16 5.06 -0.18 7.0 0.1 7.32 0.13 7.29 -0.71 7.44 -0.54 5.7 -0.26 7.38 -0.88 6.82 -0.6 4.84 -0.56 5.38 -0.29 5.67 -0.63 6.12 -0.49 7.26 -0.45 6.66 -0.17 7.01 -0.51 7.05 ] makedots 0.6 0.2 1.0 setrgbcolor [ 0.65 7.03 0.69 6.23 0.97 6.68 0.63 6.72 0.62 6.51 0.6 7.45 0.8 6.74 1.08 7.27 0.74 6.98 0.74 6.97 1.05 7.33 0.71 6.69 0.38 7.38 0.04 6.4 0.32 6.16 0.36 5.3 0.63 7.17 0.02 7.15 0.3 5.41 0.01 6.4 0.29 5.16 0.33 7.08 -0.05 7.19 0.23 7.39 0.26 5.94 0.47 5.9 0.13 7.29 0.41 5.73 0.44 7.34 0.13 6.76 0.4 5.73 0.44 6.52 0.72 7.49 0.07 7.3 0.1 7.49 0.38 4.95 0.66 7.44 ] makedots 0.6 0.4 0.0 setrgbcolor [ 1.63 6.68 0.93 5.94 1.21 6.41 1.25 7.01 0.87 6.21 0.91 6.32 1.19 5.19 1.05 5.6 1.33 6.22 1.36 5.73 0.99 5.61 1.26 7.47 1.02 4.35 1.3 2.75 1.33 6.82 0.96 6.06 1.24 6.51 1.27 6.22 1.41 6.99 0.6 6.37 0.54 6.21 0.58 6.38 0.85 6.71 0.72 6.05 0.38 7.2 0.65 5.61 0.69 4.44 0.97 5.07 0.63 5.68 0.9 7.44 0.94 7.24 ]makedots 0.0 0.6 0.5 setrgbcolor [ 1.94 5.77 2.22 6.47 1.88 6.61 2.19 7.1 1.88 6.99 1.91 7.36 2.19 7.2 1.85 6.98 1.5 6.84 1.44 7.42 1.3 6.69 1.57 6.66 1.33 7.31 1.61 4.16 1.89 6.58 1.27 6.45 1.55 4.73 1.58 6.33 1.86 6.88 1.27 6.28 1.54 5.29 1.58 5.83 1.86 7.0 1.2 7.36 1.24 7.32 1.52 4.83 1.79 7.44 1.72 6.96 1.66 7.1 1.7 7.36 1.69 7.14 1.63 6.09 0.94 7.5 1.19 7.27 ]makedots 1.0 0.0 0.9 setrgbcolor [ 2.77 7.47 2.19 5.69 2.47 6.39 2.5 5.62 2.13 6.29 2.16 4.87 2.44 3.68 2.47 6.99 2.1 6.96 2.38 7.43 2.41 6.96 2.3 7.28 2.61 6.33 2.27 5.22 2.55 4.32 2.59 6.34 2.21 6.99 2.53 6.05 1.86 5.69 2.17 7.05 1.52 7.32 1.79 5.86 1.83 4.38 2.11 5.13 1.77 6.23 1.97 7.29 1.91 7.2 1.94 4.78 2.22 5.62 2.26 7.34 1.88 6.26 1.92 7.41 2.19 6.71 ]makedots 0.3 0.5 0.0 setrgbcolor [ 3.08 6.71 3.36 7.4 3.2 6.33 3.47 7.16 3.13 7.36 3.17 7.34 3.45 6.83 3.17 7.46 3.44 7.49 3.1 7.36 2.44 7.31 2.71 7.35 2.75 4.87 3.03 7.12 2.41 7.35 2.69 5.99 2.72 7.09 2.68 6.84 2.72 7.03 2.66 6.77 2.59 7.22 2.86 4.34 3.14 6.88 3.18 7.38 2.52 6.65 2.8 5.26 2.84 5.32 3.11 6.18 2.52 7.09 2.8 6.44 2.83 5.51 3.11 6.94 2.49 7.14 2.77 4.86 2.53 7.25 2.19 7.45 2.44 6.93 ]makedots 0.0 0.5 1.0 setrgbcolor [ 3.64 7.35 3.3 7.22 3.58 6.56 3.76 7.24 3.44 6.46 3.72 7.27 3.48 7.12 3.75 5.15 3.38 7.25 3.41 4.44 3.69 3.51 3.73 5.53 4.01 7.05 3.35 6.95 3.67 5.83 3.53 6.9 3.8 6.46 3.84 6.79 3.78 6.81 3.0 7.19 2.97 6.5 3.25 7.11 3.11 6.04 3.15 6.8 3.42 6.27 3.05 6.49 3.08 3.17 3.36 4.46 3.4 6.24 3.02 5.79 3.06 6.77 3.33 6.1 3.2 6.17 3.47 7.04 3.51 7.39 3.45 7.05 2.75 7.44 ]makedots 1.0 0.1 0.3 setrgbcolor [ 4.34 6.3 4.61 7.2 4.65 7.42 4.59 7.15 4.7 7.4 3.89 7.33 3.73 6.72 4.0 3.61 4.28 6.52 4.04 7.22 4.32 6.81 3.66 6.66 3.94 5.38 3.98 5.13 4.25 6.11 3.66 7.44 3.94 6.92 3.97 5.78 4.25 7.24 3.91 5.82 4.12 5.7 4.43 7.33 4.05 6.71 4.09 5.35 4.37 6.42 4.09 6.24 4.02 6.0 4.06 7.23 4.34 7.37 3.67 6.43 3.33 7.09 3.61 7.22 3.65 7.09 3.58 7.28 3.76 7.26 3.69 7.43 ]makedots 0.0 0.7 0.0 setrgbcolor [ 4.58 7.35 4.89 6.06 4.56 6.0 4.83 5.44 4.87 6.67 4.81 7.43 5.01 7.15 4.73 7.42 5.01 5.81 4.67 5.29 4.95 4.82 4.98 4.94 5.26 6.8 4.64 7.41 4.92 5.63 4.25 6.6 4.29 7.06 4.56 6.64 4.22 4.58 4.5 5.64 4.54 6.9 4.16 7.17 4.47 7.29 4.36 7.28 4.4 6.74 4.68 6.43 4.34 3.63 4.61 5.07 4.37 7.09 4.65 5.26 4.27 6.35 4.31 5.98 4.59 5.46 4.0 7.29 ]makedots 0.4 0.3 1.0 setrgbcolor [ 5.59 6.81 5.9 6.88 5.56 7.13 5.84 6.87 5.14 5.55 5.08 7.33 5.12 6.93 5.32 7.37 4.98 6.64 5.26 3.82 5.53 6.82 5.29 6.04 5.57 5.79 4.92 6.85 5.19 5.84 5.23 3.83 5.51 5.32 5.23 5.46 5.5 7.18 5.16 5.83 5.2 6.85 5.48 7.09 5.34 6.4 5.62 7.5 4.81 7.33 4.65 7.07 4.93 6.14 4.59 6.91 4.86 7.21 4.9 5.77 4.9 7.0 4.56 7.36 4.83 6.93 ]makedots 0.7 0.3 0.0 setrgbcolor [ 6.15 6.63 5.87 7.2 6.15 5.63 5.81 5.65 6.09 5.32 6.12 5.13 6.4 7.02 6.06 6.39 6.26 7.28 5.92 6.94 6.2 6.79 6.23 5.51 6.51 7.41 6.17 6.43 5.36 7.43 5.51 7.44 5.82 6.75 5.5 6.91 5.54 6.08 5.82 5.82 5.48 3.44 5.75 5.04 5.51 6.75 5.79 4.91 5.41 6.78 5.45 6.19 5.73 5.79 5.93 7.45 5.59 5.32 5.87 6.59 5.63 6.95 5.9 5.34 5.56 6.13 5.84 5.86 5.14 6.82 ]makedots 0.0 0.6 0.4 setrgbcolor [ 7.04 7.5 7.15 7.2 7.09 7.43 6.46 7.26 6.12 6.97 6.4 4.49 6.67 7.28 6.43 6.23 6.71 6.08 6.33 6.83 6.37 4.92 6.65 6.23 6.37 6.64 6.3 7.44 6.23 7.41 6.51 5.31 6.55 5.76 6.82 5.74 6.45 7.15 6.48 3.87 6.76 5.59 6.8 6.77 6.48 6.19 6.42 6.79 6.45 6.5 6.73 6.95 5.79 7.0 6.07 6.14 5.73 7.34 6.04 6.11 5.9 7.47 6.18 6.79 6.21 7.19 6.15 5.33 6.15 7.25 6.09 7.43 6.12 7.21 ]makedots 0.9 0.1 1.0 setrgbcolor [ 7.29 7.27 7.26 7.18 7.4 6.53 7.4 6.23 7.06 6.33 7.34 6.24 7.1 7.48 7.37 4.5 7.65 6.77 7.31 6.19 7.49 6.95 6.68 7.19 6.96 7.05 6.62 5.82 6.89 6.95 6.93 6.63 6.8 6.9 7.07 6.24 6.79 6.03 7.07 6.0 6.73 3.87 7.01 5.57 6.77 5.63 7.04 3.61 7.32 7.46 6.67 7.25 6.7 5.31 6.98 5.09 7.02 7.24 6.84 7.45 7.16 6.44 6.82 7.17 7.09 7.13 6.4 6.67 6.37 7.3 ]makedots 0.4 0.5 0.0 setrgbcolor [ 8.3 6.97 7.54 6.99 7.71 7.12 7.37 6.89 7.65 4.65 7.69 4.84 7.96 4.92 7.59 7.18 7.62 3.54 7.9 5.44 7.94 6.42 7.62 6.36 7.56 7.43 7.59 6.95 7.87 7.45 7.76 7.33 7.8 6.47 8.08 6.65 7.74 5.22 8.01 6.78 8.05 6.63 7.71 7.03 7.04 6.54 7.32 5.84 7.35 6.05 7.63 7.38 6.98 7.16 7.02 6.9 7.29 4.53 7.57 7.39 7.29 7.02 7.26 7.27 7.47 7.44 7.41 5.97 7.37 7.37 ]makedots 0.0 0.5 0.8 setrgbcolor [ 8.55 6.85 8.54 6.92 8.2 7.43 8.48 7.42 8.51 5.78 8.66 7.29 8.63 5.12 8.9 7.37 8.56 6.9 7.94 6.75 8.21 6.14 7.93 6.24 8.21 6.29 7.87 4.98 8.15 6.45 7.91 6.19 8.18 4.55 7.84 6.49 8.12 6.39 8.05 7.12 8.33 6.67 8.3 7.32 8.05 6.91 8.32 7.08 8.36 7.49 7.98 5.47 8.26 6.96 8.02 5.46 8.3 3.73 7.96 5.48 8.23 5.51 8.27 6.33 7.54 6.99 7.65 7.38 7.69 7.42 7.96 7.49 7.62 7.08 ]makedots 1.0 0.1 0.5 setrgbcolor [ 9.55 7.28 8.79 6.18 8.83 6.08 9.1 6.22 8.76 5.77 9.04 7.15 8.9 5.93 8.94 4.5 9.22 4.86 8.6 7.37 8.88 3.59 9.15 5.69 8.91 6.5 9.19 5.24 8.85 7.26 9.13 7.36 8.87 6.98 8.85 6.6 9.12 7.3 8.99 7.17 9.3 7.34 8.18 7.28 8.46 6.72 8.5 6.68 8.43 5.98 8.29 6.98 8.57 6.52 8.61 5.32 8.89 6.97 8.27 6.34 8.55 3.98 8.82 7.23 8.58 6.78 8.86 6.94 8.52 7.17 8.54 7.26 8.52 6.56 8.66 7.4 ]makedots 0.2 0.6 0.0 setrgbcolor [ 9.8 6.75 9.8 7.41 9.77 5.22 10.05 7.5 9.71 7.47 9.88 6.62 9.32 7.17 9.53 7.16 9.19 6.04 9.47 5.59 9.5 6.83 9.44 6.68 9.19 6.2 9.46 6.45 9.5 6.67 9.12 5.26 9.4 6.86 9.16 4.95 9.44 3.11 9.71 7.46 9.1 5.65 9.37 5.75 9.41 6.32 9.27 6.32 9.55 5.18 9.21 6.6 9.49 6.82 9.52 6.3 8.79 6.84 8.83 6.66 9.1 6.81 8.76 6.83 ]makedots 0.3 0.3 1.0 setrgbcolor [ 10.04 6.29 10.08 4.67 10.36 5.1 10.02 4.64 10.29 6.46 10.05 6.92 10.33 5.84 10.19 5.38 10.47 5.91 10.51 7.32 10.13 5.0 10.41 6.84 10.17 6.14 10.44 5.06 10.1 7.19 10.38 7.45 10.1 7.11 9.44 6.85 9.71 6.44 9.75 4.93 10.03 6.74 9.41 6.52 9.69 4.36 9.96 7.5 9.72 6.79 10.0 7.02 9.66 7.4 9.86 5.66 10.14 7.41 9.52 6.69 9.8 4.79 9.83 6.04 10.11 6.42 9.77 6.74 9.77 6.73 ]makedots 1.0 0.2 0.0 setrgbcolor [ 10.91 7.16 11.05 7.48 11.09 7.36 11.02 5.75 10.99 7.38 10.67 7.33 10.33 6.74 10.61 6.39 10.64 7.3 10.33 7.2 10.6 7.48 10.64 7.47 10.26 6.95 10.3 6.49 10.58 5.31 10.78 7.3 10.44 6.28 10.72 6.05 10.76 5.96 10.69 6.07 10.44 7.06 10.72 7.46 10.75 6.48 10.38 6.52 10.41 4.77 10.69 3.24 10.73 6.4 11.0 7.45 10.35 5.79 10.63 6.1 10.66 5.26 10.8 7.17 10.78 7.14 10.08 6.13 10.36 6.5 10.02 6.58 10.33 7.42 ]makedots 0.0 0.6 0.3 setrgbcolor [ 11.22 6.79 11.5 7.15 11.16 7.28 11.3 7.27 11.33 4.31 11.61 5.03 11.65 6.41 11.27 4.66 11.55 6.65 11.31 5.62 11.58 4.51 11.24 7.26 11.24 7.46 11.45 7.04 11.38 6.98 11.42 6.71 11.7 5.95 10.89 6.57 10.83 6.71 10.69 7.26 10.97 7.05 10.73 7.28 11.0 4.02 11.28 6.31 10.66 5.93 10.94 3.77 11.22 7.33 10.98 4.98 11.25 5.52 10.91 6.4 10.91 6.71 11.11 6.91 11.05 6.47 11.09 6.23 11.37 6.8 11.03 7.15 ]makedots 0.7 0.1 1.0 setrgbcolor [ 12.23 7.39 12.16 6.71 12.28 7.1 11.92 6.63 11.58 6.05 11.86 5.86 11.9 5.52 12.17 7.41 11.83 6.25 11.58 7.16 11.89 6.42 11.52 7.14 11.55 5.33 11.83 4.13 11.87 6.67 11.49 6.8 11.77 7.12 11.8 6.21 11.7 7.37 11.97 7.33 12.01 6.03 11.95 6.4 12.01 7.16 11.67 5.73 11.94 4.82 11.98 6.09 12.26 7.36 11.6 6.84 11.88 7.28 11.64 7.4 11.92 5.21 11.25 7.01 11.22 6.15 11.5 6.58 11.16 7.12 11.33 6.54 11.61 7.07 11.27 7.2 11.58 7.05 ]makedots 0.5 0.4 0.0 setrgbcolor [ 12.47 5.57 12.75 6.2 12.79 7.17 12.41 6.42 12.45 6.95 12.72 6.15 12.59 5.22 12.86 6.04 12.9 5.99 12.52 5.79 12.56 5.2 12.84 4.29 12.5 7.17 12.14 4.79 12.42 6.88 11.8 6.96 12.08 5.31 12.12 6.0 12.39 6.51 11.98 7.36 12.26 4.46 12.53 6.78 12.29 7.33 12.57 6.79 11.92 6.3 12.19 4.6 12.23 3.93 12.51 4.85 12.17 5.9 12.16 6.86 12.34 7.28 ]makedots 0.0 0.6 0.6 setrgbcolor [ 13.48 6.98 13.42 7.11 13.0 7.4 13.04 6.94 12.97 6.79 13.18 6.79 12.84 6.28 13.11 6.29 12.87 7.27 13.15 4.42 13.43 6.8 13.15 6.22 12.81 5.16 13.08 4.22 13.12 5.37 13.4 6.84 13.26 6.99 12.92 7.39 13.2 6.9 13.23 6.71 12.5 6.86 12.82 6.67 12.47 5.58 12.75 6.26 12.79 7.14 ]makedots 1.0 0.0 0.7 setrgbcolor [ 13.73 5.27 14.01 6.14 14.04 5.86 13.67 6.41 13.7 5.65 13.98 4.9 13.84 6.91 14.15 6.51 13.81 5.86 14.09 5.3 14.13 7.43 13.28 7.23 13.12 6.95 13.4 3.86 13.67 6.45 13.43 6.76 13.71 6.24 13.06 6.41 13.33 4.82 13.37 3.84 13.65 4.86 13.51 5.96 13.54 7.26 13.82 6.91 13.17 7.47 13.45 6.31 13.48 4.22 13.76 5.33 13.06 7.49 13.04 7.19 13.15 7.44 ]makedots 0.3 0.5 0.0 setrgbcolor [ 14.73 7.37 14.32 6.89 13.98 6.88 14.25 6.93 14.29 5.03 14.57 7.26 14.23 6.65 14.29 6.97 13.95 6.55 14.22 5.9 14.26 6.56 14.2 6.9 14.09 7.35 14.13 7.16 14.4 4.51 14.68 7.03 14.06 7.1 14.34 5.93 14.38 6.55 14.65 7.37 14.4 6.93 14.06 6.05 14.34 5.5 14.37 5.0 14.65 6.75 14.03 7.05 14.31 5.06 13.65 7.02 13.96 6.69 13.62 6.48 13.89 7.12 13.79 7.39 14.07 6.36 13.73 6.99 14.01 7.09 13.73 6.03 14.01 6.84 14.04 6.5 13.67 7.45 13.7 6.72 13.98 6.15 ]makedots 0.2 0.4 1.0 setrgbcolor [ 14.87 7.12 15.18 7.42 15.12 7.21 14.98 6.03 15.26 6.97 15.02 7.07 15.29 5.4 14.92 7.25 14.95 5.24 15.23 4.68 15.27 6.81 15.07 7.28 15.34 7.03 14.54 5.67 14.85 7.36 14.47 6.9 14.51 6.04 14.79 6.79 14.65 7.5 14.37 7.04 14.65 4.32 14.93 6.9 14.69 5.74 14.96 5.37 14.31 6.73 14.59 5.47 14.35 7.36 14.62 2.32 14.9 4.09 14.94 6.47 14.56 5.92 14.6 7.38 14.87 6.93 14.74 5.65 15.01 6.7 14.32 7.41 14.29 6.11 ]makedots 1.0 0.1 0.2 setrgbcolor [ 15.88 7.35 15.43 7.31 15.57 7.05 15.61 7.05 15.23 7.08 15.51 7.28 15.27 6.68 15.54 3.8 15.82 6.64 15.86 7.41 15.2 7.14 15.48 6.02 15.52 6.44 15.79 7.31 15.54 6.79 15.2 6.4 15.48 5.95 15.51 5.24 15.79 6.98 15.45 5.93 15.66 5.73 15.59 7.11 15.63 6.5 15.91 7.49 15.59 7.37 15.63 5.74 15.9 7.48 15.56 6.04 14.9 6.86 14.94 6.5 15.21 5.37 14.87 6.61 15.15 6.76 15.19 7.19 14.87 5.94 15.15 6.81 15.18 6.26 14.84 6.97 15.12 6.48 15.33 6.93 15.3 7.3 14.98 7.29 15.3 6.74 14.96 6.99 15.23 6.64 ]makedots 0.0 0.7 0.1 setrgbcolor [ 16.12 6.88 16.44 6.17 16.1 6.55 16.37 6.17 16.27 7.35 16.55 5.97 16.21 5.87 16.49 5.61 16.52 6.31 15.51 7.37 15.79 4.91 16.07 7.32 15.83 5.97 16.1 5.68 15.73 6.51 15.76 3.92 16.04 5.22 16.08 7.06 15.9 5.84 15.94 5.68 16.22 5.53 15.84 6.94 15.6 7.34 15.88 2.78 16.15 4.63 15.91 7.06 16.19 5.52 15.46 7.4 15.43 6.46 15.54 5.9 ]makedots 0.5 0.2 1.0 setrgbcolor [ 16.69 5.54 16.66 7.21 16.86 6.88 16.52 6.55 16.8 3.9 17.08 6.86 16.83 6.56 17.11 6.48 16.46 7.23 16.73 6.32 16.77 5.41 17.05 6.6 16.79 7.44 16.45 7.12 16.73 6.89 16.77 4.86 17.05 6.87 16.43 7.42 16.7 5.86 16.74 7.37 16.88 7.29 16.88 7.24 16.08 7.23 16.35 6.28 16.19 5.98 16.47 4.97 16.5 7.3 16.13 6.35 16.4 6.67 16.44 5.88 16.12 6.35 16.4 7.33 16.16 7.07 16.44 5.53 16.1 6.36 16.37 6.03 ]makedots 0.6 0.4 0.0 setrgbcolor [ 17.38 7.47 17.41 7.11 17.69 5.74 17.35 6.19 17.63 5.98 17.66 6.46 17.8 7.33 17.46 7.28 17.74 7.23 17.78 6.69 16.93 7.18 16.9 6.89 17.11 7.45 17.05 7.22 17.36 7.11 16.77 7.45 17.04 5.26 17.08 4.82 17.36 4.71 16.98 6.99 16.74 7.17 17.02 2.45 17.29 4.49 17.05 6.74 17.33 5.17 17.19 6.57 17.47 6.63 17.13 4.65 17.41 6.13 17.17 6.9 17.44 5.55 16.71 7.31 16.75 7.05 16.69 5.24 16.8 6.64 ]makedots 0.0 0.6 0.5 setrgbcolor [ 18.0 6.69 17.66 6.85 17.94 4.45 18.22 7.21 17.97 6.71 18.25 6.68 17.88 7.17 17.91 6.21 18.19 7.3 17.91 6.03 17.85 7.36 17.77 7.27 18.05 5.25 18.09 6.27 18.36 6.39 17.99 7.41 18.02 5.35 18.3 6.72 18.02 5.6 17.96 6.7 17.99 7.0 17.67 7.31 17.33 5.84 17.61 4.86 17.64 7.04 17.27 6.77 17.54 7.1 17.58 6.18 17.26 7.03 17.58 6.15 17.24 7.37 17.51 7.12 17.44 6.4 17.72 5.68 17.76 6.69 17.38 6.95 17.66 7.4 17.42 7.44 17.69 5.39 17.41 7.11 17.69 5.81 17.35 6.64 17.63 6.51 17.66 6.86 ]makedots 1.0 0.0 0.9 setrgbcolor [ 18.83 7.22 18.67 7.39 18.94 6.27 18.6 6.72 18.88 6.71 18.92 5.92 18.19 6.58 18.22 6.02 18.5 5.98 18.16 5.12 18.44 6.39 18.47 6.71 18.34 7.18 18.61 6.59 18.3 6.56 18.33 4.74 18.61 4.89 18.65 7.25 17.99 7.15 18.27 2.87 18.55 4.97 18.31 5.61 18.58 3.93 18.38 6.85 18.7 6.52 17.83 6.49 18.0 6.65 17.66 7.16 17.94 5.0 17.98 7.0 18.25 7.03 ]makedots 0.4 0.5 0.0 setrgbcolor [ 19.08 6.8 19.26 6.53 18.92 6.73 19.19 4.53 19.47 7.41 19.23 5.46 19.51 5.64 19.13 7.4 19.17 5.12 19.44 6.58 19.16 5.7 19.1 7.29 19.14 7.4 19.31 7.17 19.34 6.87 19.62 7.15 19.28 6.27 19.28 7.12 19.25 7.42 18.47 7.38 18.75 6.66 18.92 6.82 18.58 5.26 18.86 4.41 18.9 5.43 19.17 6.93 18.52 6.49 18.8 7.0 18.56 6.84 18.83 4.59 19.11 7.39 18.52 7.37 18.55 6.74 18.83 5.41 18.49 6.79 18.77 6.71 18.8 6.88 18.97 7.17 19.01 6.92 18.95 5.92 18.94 6.96 18.92 6.97 ]makedots 0.0 0.5 1.0 setrgbcolor [ 20.08 6.85 20.06 6.88 20.17 6.32 19.5 7.21 19.48 7.02 19.76 6.44 19.44 6.84 19.48 4.88 19.75 5.08 19.79 7.2 19.41 4.09 19.69 5.8 19.45 6.13 19.73 4.7 19.59 7.32 19.87 6.91 19.59 5.78 19.87 6.1 19.9 7.06 19.52 4.68 19.8 6.37 19.56 5.41 19.84 3.96 19.14 6.31 18.8 7.32 19.08 5.28 19.12 7.02 19.39 7.1 19.26 7.1 19.19 5.83 19.23 6.48 19.51 6.71 ]makedots 1.0 0.1 0.4 setrgbcolor [ 20.4 7.09 20.33 5.94 20.37 6.49 20.65 6.68 20.31 6.77 20.3 7.44 20.51 7.22 20.17 7.42 20.45 5.71 20.48 5.11 20.76 5.53 20.42 5.04 20.7 6.68 20.73 7.05 20.42 6.33 20.39 7.02 20.07 6.95 19.72 6.03 20.0 5.34 20.04 6.0 20.32 7.42 19.97 5.91 19.97 6.82 20.18 7.16 19.84 5.73 20.11 5.19 20.15 4.59 20.43 6.48 19.77 7.07 19.81 6.23 20.09 3.94 20.36 7.16 20.12 7.31 19.81 6.78 20.09 5.68 19.74 7.03 20.02 7.11 20.06 6.11 20.2 7.24 ]makedots 0.1 0.7 0.0 setrgbcolor [ 21.34 7.29 21.31 6.37 21.42 7.49 20.62 6.84 20.89 7.02 20.55 6.85 20.87 7.1 20.76 7.45 21.07 6.9 20.73 6.31 21.01 5.86 20.73 4.81 21.01 5.23 21.04 6.13 20.67 4.33 20.94 6.15 20.7 4.87 20.98 3.28 20.64 6.17 20.92 6.31 20.84 7.47 20.78 6.85 20.81 6.2 21.09 5.23 20.75 6.95 21.03 7.2 21.06 7.42 20.22 7.24 20.4 7.0 20.4 5.86 20.67 7.43 20.06 6.97 20.33 5.02 20.37 5.56 20.65 5.86 20.31 6.35 20.45 7.37 20.48 6.83 20.76 7.21 20.42 7.18 ] makedots } store % Total count = 1282. /makedots {/curmat exch store 0 2 curmat length 2 sub {/cposn exch store curmat cposn get curmat cposn 1 add get mt dot } for } store % 100 100 10 setgrid % only when not standalone 1.15 dup scale 0.92 setgray 1 setlinewidth 0 setlinecap 0.5 0 mt 7 u 19.5 0 mt 7 u 2 setlinewidth 10 0 mt 7 u 20 7 showgrid black line1 10 -0.3 mt 7.8 u gsave 0 0 mt 7.5 pu 20 pr 7.5 pd closepath clip sdatproc grestore % get off clip /cstretch 0 store /sstretch 0.015 store /font1 /StoneSans-Bold 0.75 gonzofont font1 black line1 0 7.5 mt 20 r 0 -0.3 mt 7.8 u 20 -0.3 mt 7.8 u -0.3 0 mt 20.6 r 0 2.5 mt 0.3 l 0 5 mt 0.3 l 0 7.5 mt 0.3 l /kern 0.1 store 0.2 0.2 0.2 setrgbcolor 0 -1.5 (0.52) cc 10 -1.5 (0.53) cc 20 -1.5 (0.54) cc 10 -2.5 (amplitude) cc -1 0 0.2 sub(0.00|j%) cr -1 2.5 0.2 sub (0.05|j%) cr -1 5 0.2 sub (0.10|j%) cr -1 7.5 0.2 sub (0.15|j%) cr gsave -4.4 3.75 translate 90 rotate 0 0 (distortion 2-22) cc grestore % end ypos snap3 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /deltachip { %aaaaaaaaaaaa /figadvance 10 store save /snap3 exch def /linestring 1000 string store %%%%%%%%%%%%%%%%%%% electronics begin bestgray 8 37.5 translate % reposition on page 0.85 dup scale % 0 0 10 setgrid already there % 33 14 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.0 def /red {0 settint} def /blue {0.67 settint} def /purple {0.75 settint} def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font0 /helvetica-bold [1 0 0 0.8 0 0 ] gonzofont /font1 /Helvetica 0.75 gonzofont /font4 /Helvetica 0.6 gonzofont /font3 /Helvetica-Bold 0.75 gonzofont /font2 /Helvetica-Oblique 0.75 gonzofont /font5 /Helvetica-Bold 1.1 gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont /font9 /Helvetica [.6 0 0 .6 -.15 .4] gonzofont /font- /Helvetica-Bold [0.4 0 0 0.55 0 0] gonzofont /kern 0.15 def /tabs [16.5] def /txtwide 29 def font1 /tabs [17.5] def font1 /yinc 0.9 def line1 bestgray black 22 6 mt 3 d 5 rx circ1 26 3 mt rarrow 21 6 mt 1 d 6 rx circ1 26 5 mt rarrow 20 6 mt 1.5 d 4 rx 2 ux 3 r circ1 26 6.5 mt rarrow 19 6 mt 2 d 5.5 rx 4 ux 2.5 r circ1 26 8 mt rarrow 17 10 mt 1 u 5 l 8 d 4 l circ1 9.5 3 mt rarrow % low priority 18 6 mt 1.5 d ground 17 6 mt 2.5 d 7 lx 1 u 2 l circ1 9.5 4.5 mt rarrow 16 6 mt 2 d 5.5 lx 2 u 2.5 l circ1 9.5 6 mt rarrow 15 6 mt 1.5 d 4 lx 3 u 3 l circ1 9.5 7.5 mt rarrow 14 6 mt 1 d 2.5 lx 4 u 3.5 l circ1 9.5 9 mt rarrow 21 10 mt 2 ux 3 r 2 d 3 r circ1 26 13 mt rarrow 20 10 mt 2.5 u 4.5 r 1 d 2.5 r circ1 26 11.5 mt rarrow 19 10 mt 3 u 8 r circ1 26 10 mt rarrow 18 10 mt 1.5 u circ1 % +5v 16 10 mt 3 ux circ1 16 12.3 mt darrow 15 10 mt 2 ux 7 l circ1 9.5 12 mt rarrow 14 10 mt 1.5 ux 2.5 l 1 d 3.5 l circ1 9.5 10.5 mt rarrow beige 14 6 moveto 18 (MS28D-05X) (IN1 IN0 XIN IN6 +5V /DA /DB /DC NC) (IN2 IN3 IN4 IN5 GND DA DB DC SYNC) dipdraw font4 22 10.65 (NC) cc font1 18 12 (+5V) cc font1 /overstrikeht 0.55 store 27.7 13 0.3 sub (Delta "A" complement) cl 27.7 11.5 0.3 sub (Delta "B" complement) cl 27.7 10 0.3 sub (Delta "C" complement) cl 27.7 8 0.3 sub (Delta "A" true output) cl 27.7 6.5 0.3 sub (Delta "B" true output) cl 27.7 5 0.3 sub (Delta "C" true output) cl 27.7 3 0.3 sub (Zero degrees sync) cl 16 14.7 (10 MHz per 60 Hz) cc 16 13.8 (input clock ref) cc 7.3 2.7 (high ~|jOR|j~ 0-100 amp bit 6) cr 7.3 4.2 (high ~|jOR|j~ 0-100 amp bit 5) cr 7.3 5.7 (high ~|jOR|j~ 0-100 amp bit 4) cr 7.3 7.2 (slew up ~|jOR|j~ 0-100 amp bit 3) cr 7.3 8.7 (slew down ~|jOR|j~ 0-100 amp bit 2) cr 7.3 10.2 (step up ~|jOR|j~ 0-100 amp bit 1) cr 7.3 11.7 (step down ~|jOR|j~ 0-100 amp bit 0) cr end ypos snap3 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fig3 for fastmsol2 /figure3 { % transfer of angles vs ampliude for gg72 % save /snap3 exch def %%%%%%%%%%%%%%%%%%% 11.5 5 translate % position on page % capture the 28 best efficiency data set to .01 detail... % truncated for gg /angs0 [ 12.00 12.00 24.00 24.00 36.00 36.00 48.00 48.00 60.00 60.00 72.00 72.00 84.00 84.00 ] store /coss0 mark angs0 {cos} forall ] store /angs1 [ 11.98 12.01 23.97 24.02 35.96 36.03 47.95 48.04 59.94 60.05 71.94 72.05 83.94 84.05 ] store /angs2 [ 11.974847054192383 % a=p1s 12.024744017679858 % a=p1e 23.950819469133126 % a=p2s 24.048433365709524 % a=p2e 35.9289889953262 % a=p3s 36.07005477232906 % a=p3e 47.910323239760814 % a=p4s 48.088676789078065 % a=p4e 59.89564103809268 % a=p5s 60.10348816058274 % a=p5e 71.88557608883967 % a=p6s 72.11383286811898 % a=p6e 83.88055055992965 % a=p7s 84.11924037287778 % a=p7e ] store /angs3 [ 11.962118915829903 % a=p1s 12.03696090624807 % a=p1e 23.92595162929968 % a=p2s 24.07236703949866 % a=p2e 35.893127245474595 % a=p3s 36.10472087707484 % a=p3e 47.86511076741572 % a=p4s 48.13263882275228 % a=p4e 59.84313379542474 % a=p5s 60.15490640171296 % a=p5e 71.8281392839728 % a=p6s 72.17053048401827 % a=p6e 83.82074309176468 % a=p7s 84.17878636192533 % a=p7e ] store /angs4 [ 11.949290517283893 % a=p1s 12.049073387651642 % a=p1e 23.900900022994463 % a=p2s 24.096110421824473 % a=p2e 35.85702905846874 % a=p3s 36.13914449836989 % a=p3e 47.81964912772209 % a=p4s 48.17634896136679 % a=p4e 59.790407132381254 % a=p5s 60.20610752850041 % a=p5e 71.7705506598397 % a=p6s 72.22708352375918 % a=p6e 83.76087805625558 % a=p7s 84.23828505542117 % a=p7e ] store /angs5 [ 11.936362466871577 % a=p1s 12.06108068586895 % a=p1e 23.875665544479162 % a=p2s 24.119662226290405 % a=p2e 35.820695114855724 % a=p3s 36.173324291962636 % a=p3e 47.77393833539115 % a=p4s 48.21980630146989 % a=p4e 59.737460197319905 % a=p5s 60.25709145625097 % a=p5e 71.71280864356133 % a=p6s 72.28349283843973 % a=p6e 83.70095359631462 % a=p7s 84.29773803842423 % a=p7e ] store /angs6 [ 11.92333534962837 % a=p1s 12.072981999867295 % a=p1e 23.850249033990785 % a=p2s 24.14302110761017 % a=p2e 35.78412600358127 % a=p3s 36.20725881394451 % a=p3e 47.72797828072875 % a=p4s 48.263009807514656 % a=p4e 59.68429200398899 % a=p5s 60.30785796415633 % a=p5e 71.65491155362278 % a=p6s 72.33975917878625 % a=p6e 83.64096780758828 % a=p7s 84.35714686441895 % a=p7e ] store /angs7 [ 11.910209727377705 % a=p1s 12.084776503234172 % a=p1e 23.824651278023655 % a=p2s 24.166185660657497 % a=p2e 35.747322222396384 % a=p3s 36.24094651910828 % a=p3e 47.68176872964642 % a=p4s 48.30595830989897 % a=p4e 59.63090143051986 % a=p5s 60.35840669388239 % a=p5e 71.59685759776832 % a=p6s 72.3958831951506 % a=p6e 83.58091873602368 % a=p7s 84.41651305690237 % a=p7e ] store /angs8 [ 11.896986138776953 % a=p1s 12.096463343780352 % a=p1e 23.798873009544423 % a=p2s 24.1891544194381 % a=p2e 35.71028417813772 % a=p3s 36.27438575915712 % a=p3e 47.635309323468576 % a=p4s 48.348650502768294 % a=p4e 59.577287218151646 % a=p5s 60.40873714787044 % a=p5e 71.53864487064128 % a=p6s 72.45186543727682 % a=p6e 83.52080437530424 % a=p7s 84.47583811090627 % a=p7e ] store /angs9 [ 11.883665099327878 % a=p1s 12.10804164310246 % a=p1e 23.77291490813462 % a=p2s 24.21192585597619 % a=p2e 35.673012186877045 % a=p3s 36.30757478075494 % a=p3e 47.58859957853082 % a=p4s 48.39108494156987 % a=p4e 59.52344796968203 % a=p5s 60.45884868734144 % a=p5e 71.4802713511592 % a=p6s 72.50770635383223 % a=p6e 83.46062266414432 % a=p7s 84.53512349445879 % a=p7e ] store /angs10 [ 11.870247101357558 % a=p1s 12.119510496110177 % a=p1e 23.746777600061925 % a=p2s 24.23449837911455 % a=p2e 35.63550647394103 % a=p3s 36.34051172341407 % a=p3e 47.541638885569256 % a=p4s 48.43326004035069 % a=p4e 59.469382147639834 % a=p5s 60.50874052999415 % a=p5e 71.42173489961449 % a=p6s 72.56340629169891 % a=p6e 83.4003714834328 % a=p7s 84.59437064998934 % a=p7e ] store /angs11 [ 11.856732613966773 % a=p1s 12.130868970513701 % a=p1e 23.720461658280186 % a=p2s 24.2568703332254 % a=p2e 35.59776717380025 % a=p3s 36.37319461721436 % a=p3e 47.49442650889857 % a=p4s 48.475174068789634 % a=p4e 59.41508807217332 % a=p5s 60.55841174738708 % a=p5e 71.36303325448995 % a=p6s 72.61896549501986 % a=p6e 83.34004865321407 % a=p7s 84.65358099568142 % a=p7e ] store /angs12 [ 11.843122082945142 % a=p1s 12.142116106270509 % a=p1e 23.693967602355304 % a=p2s 24.279039996827304 % a=p2e 35.55979432982573 % a=p3s 36.405621380346524 % a=p3e 47.44696158537543 % a=p4s 48.516825148952385 % a=p4e 59.360563918645916 % a=p5s 60.6078612619903 % a=p5e 71.30416402897619 % a=p6s 72.67438410399262 % a=p6e 83.2796519294945 % a=p7s 84.71275592677652 % a=p7e ] store /angs13 [ 11.82941593065426 % a=p1s 12.153250914990615 % a=p1e 23.667295898318045 % a=p2s 24.3010055811062 % a=p2e 35.52158789391118 % a=p3s 36.43778981647274 % a=p3e 47.39924312314353 % a=p4s 48.558211251757726 % a=p4e 59.305807714931596 % a=p5s 60.65708784389479 % a=p5e 71.24512470717748 % a=p6s 72.72966215340223 % a=p6e 83.21917900086149 % a=p7s 84.7718968168333 % a=p7e ] store /angs14 [ 11.815614555875824 % a=p1s 12.164272379297325 % a=p1e 23.6404469584398 % a=p2s 24.322765228334127 % a=p2e 35.48314772595886 % a=p3s 36.469697611896315 % a=p3e 47.351270000155424 % a=p4s 48.599330193141476 % a=p4e 59.25081733839909 % a=p5s 60.70609010716251 % a=p5e 71.1859126399899 % a=p6s 72.78479957088365 % a=p6e 83.15862748490005 % a=p7s 84.83100501894486 % a=p7e ] store /angs15 [ 11.801718333625152 % a=p1s 12.175179452142526 % a=p1e 23.613421140931536 % a=p2s 24.344317010183318 % a=p2e 35.4444735932256 % a=p3s 36.50134233253178 % a=p3e 47.3030409624662 % a=p4s 48.640179629904 % a=p4e 59.19559051257442 % a=p5s 60.75486650580041 % a=p5e 71.12652504063502 % a=p6s 72.83979617490274 % a=p6e 83.09799492439242 % a=p7s 84.89008186691791 % a=p7e ] store /angs16 [ 11.787727614929405 % a=p1s 12.18597105607372 % a=p1e 23.586218749562654 % a=p2s 24.36565892592901 % a=p2e 35.40556516952632 % a=p3s 36.53272142066584 % a=p3e 47.25455462229148 % a=p4s 48.680757055225016 % a=p4e 59.14012480346797 % a=p5s 60.80341532933896 % a=p5e 71.06695897982998 % a=p6s 72.89465167244286 % a=p6e 83.03727878328297 % a=p7s 84.94912867641655 % a=p7e ] store /angs17 [ 11.77364272656729 % a=p1s 12.196646082450007 % a=p1e 23.55884003319776 % a=p2s 24.386788900536796 % a=p2e 35.36642203429076 % a=p3s 36.56383219149893 % a=p3e 47.205809455823555 % a=p4s 48.721059793828665 % a=p4e 59.08441761555297 % a=p5s 60.85173469799367 % a=p5e 71.00721138057251 % a=p6s 72.94936565638254 % a=p6e 82.97647644239078 % a=p7s 85.00814674607393 % a=p7e ] store /angs18 [ 11.759463970771552 % a=p1s 12.207203390605802 % a=p1e 23.531285185248322 % a=p2s 24.407704782627324 % a=p2e 35.32704367146845 % a=p3s 36.59467182945564 % a=p3e 47.15680380079669 % a=p4s 48.761084996779495 % a=p4e 59.02846618737822 % a=p5s 60.89982255738604 % a=p5e 70.94727901251849 % a=p6s 73.00393760254836 % a=p6e 82.91558519484946 % a=p7s 85.06713735857441 % a=p7e ] store /angs19 [ 11.745191624890726 % a=p1s 12.217641806957563 % a=p1e 23.503554343036566 % a=p2s 24.428404342313463 % a=p2e 35.28742946827808 % a=p3s 36.625237384252536 % a=p3e 47.107535853792385 % a=p4s 48.80082963588889 % a=p4e 58.972267586798715 % a=p5s 60.94767667279787 % a=p5e 70.88715848592577 % a=p6s 73.05836686642435 % a=p6e 82.85460224125279 % a=p7s 85.12610178170924 % a=p7e ] store /angs20 [ 11.730825941009456 % a=p1s 12.227960124052048 % a=p1e 23.47564758706738 % a=p2s 24.448885268901304 % a=p2e 35.247578713793736 % a=p3s 36.65552576670891 % a=p3e 47.05800366727401 % a=p4s 48.84029049770906 % a=p4e 58.91581870580349 % a=p5s 60.995294622930274 % a=p5e 70.82684624513675 % a=p6s 73.11265267949769 % a=p6e 82.79352468448211 % a=p7s 85.18504126940833 % a=p7e ] store /angs21 [ 11.71636714552474 % a=p1s 12.238157099551403 % a=p1e 23.44756494020518 % a=p2s 24.469145168448645 % a=p2e 35.20749059736334 % a=p3s 36.68553374428745 % a=p3e 47.008205146339535 % a=p4s 48.87946417709021 % a=p4e 58.859116254920146 % a=p5s 61.04267379313565 % a=p5e 70.76633856156903 % a=p6s 73.16679414521796 % a=p6e 82.73234952418977 % a=p7s 85.24395706275082 % a=p7e ] store /angs22 [ 11.701815438676984 % a=p1s 12.248231455152272 % a=p1e 23.419306366750394 % a=p2s 24.489181561171776 % a=p2e 35.167164206850316 % a=p3s 36.71525793634734 % a=p3e 46.958138045178856 % a=p4s 48.91834707027344 % a=p4e 58.8021567571719 % a=p5s 61.089811368087894 % a=p5e 70.70563152617991 % a=p6s 73.22079023454442 % a=p6e 82.67107365091016 % a=p7s 85.30285039095683 % a=p7e ] store /angs23 [ 11.687170994032428 % a=p1s 12.258181875434113 % a=p1e 23.390871771411508 % a=p2s 24.50899187869209 % a=p2e 35.126598526691865 % a=p3s 36.744694809094355 % a=p3e 46.907799963221834 % a=p4s 48.956935367490466 % a=p4e 58.74493654156117 % a=p5s 61.13670432385263 % a=p5e 70.64472104136836 % a=p6s 73.27463978105305 % a=p6e 82.60969383976686 % a=p7s 85.36172247236334 % a=p7e ] store /angs24 [ 11.672433957915235 % a=p1s 12.26800700663286 % a=p1e 23.362260998166978 % a=p2s 24.528573461112185 % a=p2e 35.085792435764034 % a=p3s 36.773840670208166 % a=p3e 46.85718834096131 % a=p4s 48.99522504503821 % a=p4e 58.68745173605153 % a=p5s 61.18334941931543 % a=p5e 70.58360281227317 % a=p6s 73.3283414755723 % a=p6e 82.54820674374241 % a=p7s 85.42057451538614 % a=p7e ] store /angs25 [ 11.657604448786142 % a=p1s 12.277705455334987 % a=p1e 23.33347382901136 % a=p2s 24.547923553911666 % a=p2e 35.04474470504407 % a=p3s 36.80269166312757 % a=p3e 46.80630045543359 % a=p4s 49.03321185679282 % a=p4e 58.62969826001678 % a=p5s 61.2297431869218 % a=p5e 70.52227233742346 % a=p6s 73.38189386031235 % a=p6e 82.48660888647268 % a=p7s 85.47940771947097 % a=p7e ] store /angs26 [ 11.642682556563992 % a=p1s 12.287275787086035 % a=p1e 23.304509982578292 % a=p2s 24.567039304649334 % a=p2e 35.00345399505897 % a=p3s 36.83124376097095 % a=p3e 46.75513341533713 % a=p4s 49.07089132512581 % a=p4e 58.57167181612225 % a=p5s 61.27588192267824 % a=p5e 70.4607248986916 % a=p6s 73.43529532244932 % a=p6e 82.4248966545247 % a=p7s 85.5382232760357 % a=p7e ] store /angs27 [ 11.62766834188761 % a=p1s 12.29671652490895 % a=p1e 23.275369112634362 % a=p2s 24.585917759460802 % a=p2e 34.961918853108216 % a=p3s 36.859492760068704 % a=p3e 46.703684155768975 % a=p4s 49.10825873117987 % a=p4e 58.51336788160183 % a=p5s 61.32176167535815 % a=p5e 70.3989555504958 % a=p6s 73.48854408712174 % a=p6e 82.36306628911284 % a=p7s 85.5970223694067 % a=p7e ] store /angs28 [ 11.61256183531389 % a=p1s 12.306026147724955 % a=p1e 23.246050806434955 % a=p2s 24.6045558593367 % a=p2e 34.920137710247616 % a=p3s 36.88743427308142 % a=p3e 46.651949432555526 % a=p4s 49.14530910446015 % a=p4e 58.45478169888876 % a=p5s 61.36737823485163 % a=p5e 70.33695910819229 % a=p6s 73.54163820979106 % a=p6e 82.30111387720302 % a=p7s 85.6558061777513 % a=p7e ] store /angs29 [ 11.59736303644711 % a=p1s 12.315203088670305 % a=p1e 23.21655458293341 % a=p2s 24.622950436166153 % a=p2e 34.87810887801911 % a=p3s 36.91506372167538 % a=p3e 46.5999258161524 % a=p4s 49.18203721169034 % a=p4e 58.39590826555562 % a=p5s 61.41272711959097 % a=p5e 70.27473013559283 % a=p6s 73.594575567914 % a=p6e 82.23903534194987 % a=p7s 85.71457587400957 % a=p7e ] store /angs30 [ 11.582071912996428 % a=p1s 12.324245733302025 % a=p1e 23.186879890834618 % a=p2s 24.64109820852994 % a=p2e 34.83583054491118 % a=p3s 36.94237632872516 % a=p3e 46.54760968508595 % a=p4s 49.21843754488009 % a=p4e 58.336742323513874 % a=p5s 61.45780356297762 % a=p5e 70.21226293153529 % a=p6s 73.64735385186718 % a=p6e 82.17682643240578 % a=p7s 85.77333262682737 % a=p7e ] store /angs31 [ 11.566688399755103 % a=p1s 12.333152417683447 % a=p1e 23.157026106481293 % a=p2s 24.65899577722405 % a=p2e 34.793300772531175 % a=p3s 36.96936711000882 % a=p3e 46.49499721890572 % a=p4s 49.254504308544554 % a=p4e 58.27727834741927 % a=p5s 61.502602498728 % a=p5e 70.14955151542911 % a=p6s 73.69997055505918 % a=p6e 82.11448271243431 % a=p7s 85.83207760149402 % a=p7e ] store /angs32 [ 11.55121239749649 % a=p1s 12.341921426340825 % a=p1e 23.12699253156217 % a=p2s 24.676639620494885 % a=p2e 34.750517491470966 % a=p3s 36.996030865359884 % a=p3e 46.44208439061452 % a=p4s 49.29023140601078 % a=p4e 58.21751053222307 % a=p5s 61.54711854504793 % a=p5e 70.08658961168794 % a=p6s 73.75242296315676 % a=p6e 82.05199954875309 % a=p7s 85.89081196088709 % a=p7e ] store /angs33 [ 11.535643771780839 % a=p1s 12.35055099008155 % a=p1e 23.09677839062888 % a=p2s 24.6940260889639 % a=p2e 34.7074784968436 % a=p3s 37.02236216923542 % a=p3e 46.388866958539694 % a=p4s 49.32561242474032 % a=p4e 58.15743277980454 % a=p5s 61.5913459875349 % a=p5e 70.02337063295417 % a=p6s 73.80470814234442 % a=p6e 81.98937209802318 % a=p7s 85.94953686642697 % a=p7e ] store /angs34 [ 11.519982351665762 % a=p1s 12.359039283662634 % a=p1e 23.066382828406926 % a=p2s 24.711151400217876 % a=p2e 34.66418144346757 % a=p3s 37.04835536065633 % a=p3e 46.33534045760484 % a=p4s 49.360640620589926 % a=p4e 58.09703868461281 % a=p5s 61.63527876069768 % a=p5e 69.95988766200874 % a=p6s 73.8568229265267 % a=p6e 81.92659529289242 % a=p7s 86.00825347904505 % a=p7e ] store /angs35 [ 11.504227928312746 % a=p1s 12.367384423297112 % a=p1e 23.03580490688566 % a=p2s 24.728011633039017 % a=p2e 34.62062384067247 % a=p3s 37.0740045324722 % a=p3e 46.2815001899581 % a=p4s 49.39530890092468 % a=p4e 58.03632151823934 % a=p5s 61.67891042797037 % a=p5e 69.8961334322492 % a=p6s 73.90876390337225 % a=p6e 81.86366382688989 % a=p7s 86.06696296016798 % a=p7e ] store /angs36 [ 11.488380253482298 % a=p1s 12.375584463986224 % a=p1e 23.00504360216978 % a=p2s 24.744602721245936 % a=p2e 34.57680304669713 % a=p3s 37.09930351989759 % a=p3e 46.22734121490803 % a=p4s 49.42960980648992 % a=p4e 57.975274212834535 % a=p5s 61.722234160085286 % a=p5e 69.83210030660594 % a=p6s 73.96052739908667 % a=p6e 81.80057213805719 % a=p7s 86.12566647272173 % a=p7e ] store /angs37 [ 11.472439037907781 % a=p1s 12.383637396662037 % a=p1e 22.974097801072595 % a=p2s 24.760920447114106 % a=p2e 34.53271626264794 % a=p3s 37.12424588826167 % a=p3e 46.17285833811334 % a=p4s 49.46353549193782 % a=p4e 57.91388934327296 % a=p5s 61.765242711653386 % a=p5e 69.76778025475258 % a=p6s 74.01210946178786 % a=p6e 81.73731439118794 % a=p7s 86.18436518215925 % a=p7e ] store /angs38 [ 11.456403949537945 % a=p1s 12.391541145124311 % a=p1e 22.94296629743082 % a=p2s 24.776960434340847 % a=p2e 34.48836052598261 % a=p3s 37.14882491990828 % a=p3e 46.11804609996735 % a=p4s 49.497077704895275 % a=p4e 57.85215910796204 % a=p5s 61.80792839578511 % a=p5e 69.7031648284505 % a=p6s 74.06350584334204 % a=p6e 81.67388445853271 % a=p7s 86.24306025751534 % a=p7e ] store /angs39 [ 11.440274611637554 % a=p1s 12.399293562754744 % a=p1e 22.91164778811647 % a=p2s 24.792718140516374 % a=p2e 34.443732703479476 % a=p3s 37.17303360017536 % a=p3e 46.06289876311179 % a=p4s 49.530227763446774 % a=p4e 57.79007530817778 % a=p5s 61.850283056564976 % a=p5e 69.63824513484936 % a=p6s 74.1147119795016 % a=p6e 81.6102758988087 % a=p7s 86.30175287249307 % a=p7e ] store /angs40 [ 11.424050600733594 % a=p1s 12.406892428988357 % a=p1e 22.880140868720527 % a=p2s 24.80818884905887 % a=p2e 34.39882948364979 % a=p3s 37.19686460237714 % a=p3e 46.0074102990076 % a=p4s 49.562976531893824 % a=p4e 57.727629325799626 % a=p5s 61.89229803917272 % a=p5e 69.57301180754612 % a=p6s 74.16572296816564 % a=p6e 81.54648193433371 % a=p7s 86.36044420658635 % a=p7e ] store /angs41 [ 11.407731444392123 % a=p1s 12.414335445520077 % a=p1e 22.848444028878745 % a=p2s 24.82336766056565 % a=p2e 34.35364736854382 % a=p3s 37.22031027170321 % a=p3e 45.95157437348261 % a=p4s 49.595314394636866 % a=p4e 57.664812099301635 % a=p5s 61.93396415741885 % a=p5e 69.50745497518102 % a=p6s 74.21653354556209 % a=p6e 81.48249542608227 % a=p7s 86.4191354462431 % a=p7e ] store /angs42 [ 11.391316618812636 % a=p1s 12.421620232222997 % a=p1e 22.816555647207974 % a=p2s 24.838249483529232 % a=p2e 34.30818266489811 % a=p3s 37.24336260794033 % a=p3e 45.89538433116774 % a=p4s 49.62723122800976 % a=p4e 57.60161409784311 % a=p5s 61.975271658436604 % a=p5e 69.44156422732436 % a=p6s 74.2671380601239 % a=p6e 81.4183088464351 % a=p7s 86.47782778607522 % a=p7e ] store /angs43 [ 11.374805546220893 % a=p1s 12.428744322751362 % a=p1e 22.784473985816735 % a=p2s 24.852829024359778 % a=p2e 34.26243147456385 % a=p3s 37.26601324691203 % a=p3e 45.83883317872304 % a=p4s 49.65871636987805 % a=p4e 57.53802529328333 % a=p5s 62.01621018424045 % a=p5e 69.37532857737801 % a=p6s 74.31753044380257 % a=p6e 81.35391424936446 % a=p7s 86.53652243012 % a=p7e ] store /angs44 [ 11.35819759204244 % a=p1s 12.435705159797667 % a=p1e 22.75219718435015 % a=p2s 24.86710077664962 % a=p2e 34.21638968414958 % a=p3s 37.28825344052012 % a=p3e 45.78191356674409 % a=p4s 49.6897585867911 % a=p4e 57.474035129926285 % a=p5s 62.05676872982675 % a=p5e 69.30873642218249 % a=p6s 74.36770418052814 % a=p6e 81.28930323776372 % a=p7s 86.59522059316049 % a=p7e ] store /angs45 [ 11.34149206183451 % a=p1s 12.442500089971064 % a=p1e 22.719723253524165 % a=p2s 24.881059009607743 % a=p2e 34.17005295380453 % a=p3s 37.31007403525855 % a=p3e 45.72461777022698 % a=p4s 49.72034603845508 % a=p4e 57.40963249177892 % a=p5s 62.096935597452855 % a=p5e 69.24177549798291 % a=p6s 74.41765227148547 % a=p6e 81.2244669275907 % a=p7s 86.65392350211121 % a=p7e ] store /angs46 [ 11.324688197954293 % a=p1s 12.449126358260662 % a=p1e 22.687050068099666 % a=p2s 24.894697755584264 % a=p2e 34.12341670505911 % a=p3s 37.33146544905604 % a=p3e 45.66693766745586 % a=p4s 49.75046623926626 % a=p4e 57.3448056670816 % a=p5s 62.13669834668453 % a=p5e 69.17443283236364 % a=p6s 74.46736719683196 % a=p6e 81.15939590844944 % a=p7s 86.7126323974769 % a=p7e ] store /angs47 [ 11.30778517593426 % a=p1s 12.45558110203941 % a=p1e 22.654175359239318 % a=p2s 24.908010796594976 % a=p2e 34.07647610762935 % a=p3s 37.352417646286725 % a=p3e 45.60886471716075 % a=p4s 49.780106016614425 % a=p4e 57.2795423098412 % a=p5s 62.176043739750995 % a=p5e 69.10669469171246 % a=p6s 74.51684087342855 % a=p6e 81.09408020018329 % a=p7s 86.77134853489343 % a=p7e ] store /angs48 [ 11.290782100537243 % a=p1s 12.46186134456465 % a=p1e 22.6210967061847 % a=p2s 24.92099164974485 % a=p2e 34.02922606508087 % a=p3s 37.37292011076909 % a=p3e 45.55038993377577 % a=p4s 49.809251465631526 % a=p4e 57.21382939806499 % a=p5s 62.214957681686315 % a=p5e 69.03854652371888 % a=p6s 74.56606460809658 % a=p6e 81.02850920499182 % a=p7s 86.83007318675996 % a=p7e ] store /angs49 [ 11.273678001455522 % a=p1s 12.467963987920319 % a=p1e 22.58781152718225 % a=p2s 24.93363355143764 % a=p2e 33.981661199234416 % a=p3s 37.39296181655209 % a=p3e 45.49150386060608 % a=p4s 49.83788790002112 % a=p4e 57.14765318835708 % a=p5s 62.25342515466871 % a=p5e 68.96997289434539 % a=p6s 74.61502904584103 % a=p6e 80.96267165451394 % a=p7s 86.888807643973 % a=p7e ] store /angs50 [ 11.256471828616469 % a=p1s 12.473885805342528 % a=p1e 22.55431706957733 % a=p2s 24.945929440243628 % a=p2e 33.93377583318008 % a=p3s 37.412531196262016 % a=p3e 45.43219654068899 % a=p4s 49.86599979855995 % a=p4e 57.08099916649744 % a=p5s 62.29143014589003 % a=p5e 68.90095741863797 % a=p6s 74.66372411239975 % a=p6e 80.89655555123879 % a=p7s 86.94755321777491 % a=p7e ] store /angs51 [ 11.239162447052136 % a=p1s 12.47962343286081 % a=p1e 22.520610398986634 % a=p2s 24.95787193828209 % a=p2e 33.88556397275016 % a=p3s 37.43161610675572 % a=p3e 45.372457485106786 % a=p4s 49.8935707468113 % a=p4e 57.01385199357515 % a=p5s 62.32895556819798 % a=p5e 68.83148268465389 % a=p6s 74.7121389503812 % a=p6e 80.83014810350937 % a=p7s 87.00631124172916 % a=p7e ] store /angs52 [ 11.221748631282578 % a=p1s 12.48517336017917 % a=p1e 22.486688387444715 % a=p2s 24.969453330954863 % a=p2e 33.83701928628069 % a=p3s 37.4502037917929 % a=p3e 45.31227563847723 % a=p4s 49.92058337353123 % a=p4e 56.94619544719365 % a=p5s 62.36598317264838 % a=p5e 68.76153016968738 % a=p6s 74.76026184814054 % a=p6e 80.76343565327369 % a=p7s 87.06508307383864 % a=p7e ] store /angs53 [ 11.20422905915866 % a=p1s 12.490531920710476 % a=p1e 22.452547700408434 % a=p2s 24.98066554484676 % a=p2e 33.788135082467825 % a=p3s 37.46828084140232 % a=p3e 45.25163934131193 % a=p4s 49.94701928118102 % a=p4e 56.87801235720142 % a=p5s 62.402493451983915 % a=p5e 68.6910801478577 % a=p6s 74.8080801604117 % a=p6e 80.69640359560516 % a=p7s 87.12387009882286 % a=p7e ] store /angs54 [ 11.186602305099901 % a=p1s 12.495695280665814 % a=p1e 22.418184782485486 % a=p2s 24.991500123582217 % a=p2e 33.73890428609978 % a=p3s 37.4858331475734 % a=p3e 45.19053628888994 % a=p4s 49.97285896988131 % a=p4e 56.80928453532971 % a=p5s 62.43846553391484 % a=p5e 68.62011158799075 % a=p6s 74.85558021955563 % a=p6e 80.62903628886036 % a=p7s 87.18267373057436 % a=p7e ] store /angs55 [ 11.168866832655869 % a=p1s 12.50065942708694 % a=p1e 22.38359584173527 % a=p2s 25.001948201398868 % a=p2e 33.689319411412896 % a=p3s 37.50284585585413 % a=p3e 45.128953486246175 % a=p4s 49.99808175405332 % a=p4e 56.739992698034094 % a=p5s 62.47387706291255 % a=p5e 68.54860204056897 % a=p6s 74.90274723610061 % a=p6e 80.56131695415807 % a=p7s 87.24149541481523 % a=p7e ] store /angs56 [ 11.151020986307298 % a=p1s 12.505420154692983 % a=p1e 22.348776832366852 % a=p2s 25.012000474163663 % a=p2e 33.63937253278393 % a=p3s 37.51930331237692 % a=p3e 45.06687719881598 % a=p4s 50.02266567088745 % a=p4e 56.670116381738616 % a=p5s 62.50870406903544 % a=p5e 68.476527512343 % a=p6s 74.94956518702878 % a=p6e 80.49322756264593 % a=p7s 87.30033663197948 % a=p7e ] store /angs57 [ 11.13306298241263 % a=p1s 12.50997305139454 % a=p1e 22.31372343563443 % a=p2s 25.02164716751755 % a=p2e 33.58905525242943 % a=p3s 37.535189005766014 % a=p3e 45.0042928982123 % a=p4s 50.046587379658476 % a=p4e 56.599633849567944 % a=p5s 62.54292082208086 % a=p5e 68.4038623269841 % a=p6s 74.9960166900026 % a=p6e 80.42474870876194 % a=p7s 87.35919890034931 % a=p7e ] store /angs58 [ 11.114990899189143 % a=p1s 12.514313482305218 % a=p1e 22.27843103869883 % a=p2s 25.030878001786867 % a=p2e 33.53835866473104 % a=p3s 37.550485503298596 % a=p3e 44.94118520253261 % a=p4s 50.06982205076392 % a=p4e 56.52852198851917 % a=p5s 62.576499669092854 % a=p5e 68.33057896990591 % a=p6s 75.04208286140883 % a=p6e 80.35585946738757 % a=p7s 87.41808377947804 % a=p7e ] store /angs59 [ 11.096802665602791 % a=p1s 12.51843657205544 % a=p1e 22.24289471118855 % a=p2s 25.039682153244534 % a=p2e 33.4872733167486 % a=p3s 37.56517438059821 % a=p3e 44.877537810502034 % a=p4s 50.092343243195536 % a=p4e 56.45675619586943 % a=p5s 62.60941085294281 % a=p5e 68.25664791508777 % a=p6s 75.0877431557225 % a=p6e 80.28653723241713 % a=p7s 87.47699287393749 % a=p7e ] store /angs60 [ 11.078496049018788 % a=p1s 12.522337185180852 % a=p1e 22.207109179150628 % a=p2s 25.048048211237965 % a=p2e 33.435789164411744 % a=p3s 37.57923614402594 % a=p3e 44.813333428650054 % a=p4s 50.114122768958474 % a=p4e 56.38431025343144 % a=p5s 62.6416223093306 % a=p5e 68.18203743138122 % a=p6s 75.13297518323725 % a=p6e 80.2167575338191 % a=p7s 87.53592783743304 % a=p7e ] store /angs61 [ 11.060068641441879 % a=p1s 12.52600990432232 % a=p1e 22.171068796031477 % a=p2s 25.055964130622204 % a=p2e 33.38389552379846 % a=p3s 37.59265014480355 % a=p3e 44.748553690590235 % a=p4s 50.135130542720844 % a=p4e 56.311156188052415 % a=p5s 62.67309943911543 % a=p5e 68.1067133653657 % a=p6s 75.17775450265952 % a=p6e 80.14649382972333 % a=p7s 87.59489037733685 % a=p7e ] store /angs62 [ 11.041517844146707 % a=p1s 12.52944900592984 % a=p1e 22.134767510267338 % a=p2s 25.063417178844876 % a=p2e 33.331581016809906 % a=p3s 37.60539448374439 % a=p3e 44.68317906731879 % a=p4s 50.15533441470291 % a=p4e 56.23726411649478 % a=p5s 62.70380485236126 % a=p5e 68.03063889732242 % a=p6s 75.22205438439424 % a=p6e 80.07571726940691 % a=p7s 87.65388225969777 % a=p7e ] store /angs63 [ 11.022840850463098 % a=p1s 12.532648433109795 % a=p1e 22.09819882899121 % a=p2s 25.070393876915794 % a=p2e 33.278833510432506 % a=p3s 37.61744590527948 % a=p3e 44.617188767265105 % a=p4s 50.17469998448852 % a=p4e 56.16260207253044 % a=p5s 62.73369807985659 % a=p5e 67.95377426630246 % a=p6s 75.26584553953315 % a=p6e 80.00439642224802 % a=p7s 87.71290531479623 % a=p7e ] store /angs64 [ 11.004034626440033 % a=p1s 12.535601765191819 % a=p1e 22.06135577727643 % a=p2s 25.076879933362243 % a=p2e 33.225640048635384 % a=p3s 37.628779679240274 % a=p3e 44.55056062460701 % a=p4s 50.1931903930522 % a=p4e 56.08713581371444 % a=p5s 62.76273524711508 % a=p5e 67.87607645955154 % a=p6s 75.30909580855457 % a=p6e 79.93249696672828 % a=p7s 87.77196144332437 % a=p7e ] store /angs65 [ 10.985095889062986 % a=p1s 12.538302183515828 % a=p1e 22.024230852231366 % a=p2s 25.08286017010714 % a=p2e 33.17198677577882 % a=p3s 37.63936946858586 % a=p3e 44.483270974097714 % a=p4s 50.21076608982633 % a=p4e 56.01082860486339 % a=p5s 62.790868704955884 % a=p5e 67.7974988606935 % a=p6s 75.35176980250732 % a=p6e 79.85998133234801 % a=p7s 87.83105262328567 % a=p7e ] store /angs66 [ 10.966021081636118 % a=p1s 12.540742432845043 % a=p1e 21.986815971131573 % a=p2s 25.0883184390112 % a=p2e 33.11785885020017 % a=p3s 37.64918718093233 % a=p3e 44.415294510329325 % a=p4s 50.227384571068235 % a=p4e 55.93364097473211 % a=p5s 62.818046609661955 % a=p5e 67.71799085003121 % a=p6s 75.39382848791966 % a=p6e 79.78680828581052 % a=p7s 87.89018091772554 % a=p7e ] store /angs67 [ 10.94680634586756 % a=p1s 12.54291477769846 % a=p1e 21.94910241261885 % a=p2s 25.093237527579294 % a=p2e 33.06324034638662 % a=p3s 37.658202801337055 % a=p3e 44.34660412896331 % a=p4s 50.243000085101365 % a=p4e 55.85553044173637 % a=p5s 62.84421244437447 % a=p5e 67.6374973490548 % a=p6s 75.43522870476507 % a=p6e 79.7129324509537 % a=p7s 87.94934848342535 % a=p7e ] store /angs68 [ 10.927447490103745 % a=p1s 12.544810952756503 % a=p1e 21.91108074980412 % a=p2s 25.09759905203626 % a=p2e 33.008114143830355 % a=p3s 37.66638420329706 % a=p3e 44.27717074697666 % a=p4s 50.257563299167835 % a=p4e 55.77645120378118 % a=p5s 62.869304471741685 % a=p5e 67.55595829969172 % a=p6s 75.47592260442312 % a=p6e 79.63830374955334 % a=p7s 88.00855758071803 % a=p7e ] store /angs69 [ 10.907939953044973 % a=p1s 12.54642210632034 % a=p1e 21.872740773873115 % a=p2s 25.101383335613146 % a=p2e 32.95246180027236 % a=p3s 37.673696934309646 % a=p3e 44.20696309837506 % a=p4s 50.271020921603245 % a=p4e 55.69635378628597 % a=p5s 62.893255105823094 % a=p5e 67.4733080669238 % a=p6s 75.51585699155763 % a=p6e 79.56286674715845 % a=p7s 88.06781058461439 % a=p7e ] store /angs70 [ 10.88827876213401 % a=p1s 12.547738735592494 % a=p1e 21.834071406497248 % a=p2s 25.104569269430915 % a=p2e 32.89626340655733 % a=p3s 37.680103971586306 % a=p3e 44.13594750108554 % a=p4s 50.283315271777106 % a=p4e 55.615184641300885 % a=p5s 62.915990188754535 % a=p5e 67.38947475103117 % a=p6s 75.55497255000346 % a=p6e 79.48655988435449 % a=p7s 88.12710999746892 % a=p7e ] store /angs71 [ 10.868458485630846 % a=p1s 12.548750612276178 % a=p1e 21.795060598981305 % a=p2s 25.10713415280293 % a=p2e 32.83949741971713 % a=p3s 37.6855654425648 % a=p3e 44.06408758981432 % a=p4s 50.29438378866586 % a=p4e 55.53288568912042 % a=p5s 62.93742815457482 % a=p5e 67.30437939278238 % a=p6s 75.59320292786317 % a=p6e 79.40931456904917 % a=p7s 88.18645846346183 % a=p7e ] store /angs72 [ 10.848473177165172 % a=p1s 12.54944669665458 % a=p1e 21.755695215611905 % a=p2s 25.10905350906351 % a=p2e 32.78214047013667 % a=p3s 37.690038303674356 % a=p3e 43.99134400849086 % a=p4s 50.30415846695302 % a=p4e 55.44939379193438 % a=p5s 62.95747905872753 % a=p5e 67.2179350512085 % a=p6s 75.63047365071941 % a=p6e 79.33105409919511 % a=p7s 88.24585878523492 % a=p7e ] store /angs73 [ 10.82831631127428 % a=p1s 12.54981503788168 % a=p1e 21.715960898076432 % a=p2s 25.110300872123222 % a=p2e 32.724167137687495 % a=p3s 37.693475969299065 % a=p3e 43.91767405444072 % a=p4s 50.312565207062136 % a=p4e 55.364640146702015 % a=p5s 62.9760434468519 % a=p5e 67.13004572895788 % a=p6s 75.66670082371068 % a=p6e 79.25169237736007 % a=p7s 88.30531394309575 % a=p7e ] store /angs74 [ 10.807980708069964 % a=p1s 12.54984265766669 % a=p1e 21.675841907060825 % a=p2s 25.11084753779409 % a=p2e 32.66554969047322 % a=p3s 37.69582788095825 % a=p3e 43.84303126453871 % a=p4s 50.31952306236405 % a=p4e 55.2785495814377 % a=p5s 62.993011030256994 % a=p5e 67.04060511433761 % a=p6s 75.70178957255598 % a=p6e 79.17113236809766 % a=p7s 88.36482711730189 % a=p7e ] store /angs75 [ 10.787458444709657 % a=p1s 12.549515413826098 % a=p1e 21.635320936152468 % a=p2s 25.11066227243144 % a=p2e 32.606257778229484 % a=p3s 37.697039004236025 % a=p3e 43.76736493115638 % a=p4s 50.324943362741315 % a=p4e 55.19103973524946 % a=p5s 63.008259127518066 % a=p5e 66.94949510161331 % a=p6s 75.7356321595626 % a=p6e 79.08926423529904 % a=p7s 88.42440171406147 % a=p7e ] store /angs76 [ 10.76674075073603 % a=p1s 12.54881783925506 % a=p1e 21.59437889189328 % a=p2s 25.109710969494113 % a=p2e 32.54625807033505 % a=p3s 37.69704923776268 % a=p3e 43.69061953254325 % a=p4s 50.328728688439405 % a=p4e 55.10202009748705 % a=p5s 63.0216508213731 % a=p5e 66.8565840414203 % a=p6s 75.76810569196802 % a=p6e 79.00596307839702 % a=p7s 88.48404139604865 % a=p7e ] store /angs77 [ 10.745817883542566 % a=p1s 12.547732950655154 % a=p1e 21.552994632142486 % a=p2s 25.107956242064812 % a=p2e 32.48551382564454 % a=p3s 37.6957927143048 % a=p3e 43.612734058110654 % a=p4s 50.33077166126485 % a=p4e 55.011390874833026 % a=p5s 63.03303276674643 % a=p5e 66.76172466049388 % a=p6s 75.79906931487801 % a=p6e 78.92108616172325 % a=p7s 88.54375011844128 % a=p7e ] store /angs78 [ 10.724678979154362 % a=p1s 12.546242019744097 % a=p1e 21.511144652666793 % a=p2s 25.10535693597329 % a=p2e 32.42398437770426 % a=p3s 37.693196968388726 % a=p3e 43.53364120354497 % a=p4s 50.3309535111145 % a=p4e 54.91904164654285 % a=p5s 63.042232568185476 % a=p5e 66.66475157331087 % a=p6s 75.82836074703079 % a=p6e 78.83446949800086 % a=p7s 88.6035321717656 % a=p7e ] store /angs79 [ 10.703311872070397 % a=p1s 12.544324297503936 % a=p1e 21.468802708860174 % a=p2s 25.10186754359615 % a=p2e 32.36162451400444 % a=p3s 37.6891819373172 % a=p3e 43.453266403232774 % a=p4s 50.32914236368454 % a=p4e 54.824849756494636 % a=p5s 63.04905562170921 % a=p5e 66.565478286174 % a=p6s 75.85579197093445 % a=p6e 78.74592360127376 % a=p7s 88.66339223320006 % a=p7e ] store /angs80 [ 10.681702875954299 % a=p1s 12.541956679075694 % a=p1e 21.42593935538871 % a=p2s 25.097437492192512 % a=p2e 32.29838372123975 % a=p3s 37.68365875215961 % a=p3e 43.3715266573525 % a=p4s 50.32519117878111 % a=p4e 54.728678375066174 % a=p5s 63.053281284795474 % a=p5e 66.46369356464169 % a=p6s 75.881143824128 % a=p6e 78.6552281611952 % a=p7s 88.72333542848413 % a=p7e ] store /angs81 [ 10.659836514247882 % a=p1s 12.539113292836335 % a=p1e 21.382521380886654 % a=p2s 25.092010272063927 % a=p2e 32.23420525933059 % a=p3s 37.67652826113121 % a=p3e 43.28832909702567 % a=p4s 50.31893524611107 % a=p4e 54.63037414236975 % a=p5s 63.054658195711696 % a=p5e 66.35915699490941 % a=p6s 75.90415914721605 % a=p6e 78.5621253015316 % a=p7s 88.78336740724937 % a=p7e ] store /angs82 [ 10.637695185993898 % a=p1s 12.535764991504823 % a=p1e 21.33851110689382 % a=p2s 25.085522357840425 % a=p2e 32.16902501405345 % a=p3s 37.66767920798015 % a=p3e 43.203569211389976 % a=p4s 50.310189114033676 % a=p4e 54.529764274421154 % a=p5s 63.05289850477063 % a=p5e 66.2515935141803 % a=p6s 75.92453401446242 % a=p6e 78.46631095883205 % a=p7s 88.84349443551498 % a=p7e ] store /angs83 [ 10.61525874674933 % a=p1s 12.531878715022073 % a=p1e 21.293865508926707 % a=p2s 25.077901859150412 % a=p2e 32.102770059768275 % a=p3s 37.656985959876216 % a=p3e 43.1171286326933 % a=p4s 50.29874278230683 % a=p4e 54.42665297137745 % a=p5s 63.047670698031496 % a=p5e 66.14068660725404 % a=p6s 75.94190638480522 % a=p6e 78.36742373365804 % a=p7s 88.90372351038114 % a=p7e ] store /angs84 [ 10.592503976654715 % a=p1s 12.527416683236392 % a=p1e 21.248535101219208 % a=p2s 25.069066812278805 % a=p2e 32.035356837154495 % a=p3s 37.64430563864088 % a=p3e 43.028872335345895 % a=p4s 50.28435692581228 % a=p4e 54.32081690576332 % a=p5s 63.03859057713544 % a=p5e 66.02606975574359 % a=p6s 75.95584123474288 % a=p6e 78.26503029691146 % a=p7s 88.9640625037828 % a=p7e ] store /angs85 [ 10.569403896174823 % a=p1s 12.522335359137418 % a=p1e 21.202462502516937 % a=p2s 25.058922988051854 % a=p2e 31.966688811640243 % a=p3s 37.62947444923545 % a=p3e 42.93864504562983 % a=p4s 50.2667568221177 % a=p4e 54.21199947856619 % a=p5s 63.02520978945754 % a=p5e 65.90731556547105 % a=p6s 75.96581082065448 % a=p6e 78.15860602993351 % a=p7s 89.02452034480287 % a=p7e ] store /angs86 [ 10.545926872605126 % a=p1s 12.516584097323948 % a=p1e 21.155580563877532 % a=p2s 25.04736103638729 % a=p2e 31.89665341905499 % a=p3s 37.612302909182475 % a=p3e 42.846266569495306 % a=p4s 50.24562451436328 % a=p4e 54.09990339572997 % a=p5s 63.007001051557715 % a=p5e 65.78392175908459 % a=p6s 75.97116808614204 % a=p6e 78.0475089606994 % a=p7s 89.0851072539084 % a=p7e ] store /angs87 [ 10.522035433517816 % a=p1s 12.510103352160264 % a=p1e 21.10780988314357 % a=p2s 25.034252703364917 % a=p2e 31.825118013673226 % a=p3s 37.59256954340369 % a=p3e 42.75152560808503 % a=p4s 50.22058852343689 % a=p4e 53.98418090914118 % a=p5s 62.9833388276552 % a=p5e 65.65529285871052 % a=p6s 75.9711102439751 % a=p6e 77.93094409735356 % a=p7s 89.14583504825299 % a=p7e ] store /angs88 [ 10.497684660592489 % a=p1s 12.502822256276911 % a=p1e 21.059055441433046 % a=p2s 25.019445722575252 % a=p2e 31.75192438887398 % a=p3s 37.570012388417375 % a=p3e 42.654171412167706 % a=p4s 50.19121007951041 % a=p4e 53.86442073640436 % a=p5s 62.95347363033468 % a=p5e 65.52071581820768 % a=p6s 75.96462798667281 % a=p6e 77.8079137255463 % a=p7s 89.20671754601857 % a=p7e ] store /angs89 [ 10.472819967382202 % a=p1s 12.494655275793896 % a=p1e 21.00920195089533 % a=p2s 25.00275676337861 % a=p2e 31.676881203639077 % a=p3s 37.54431728967448 % a=p3e 42.55390226966079 % a=p4s 50.15696428250893 % a=p4e 53.74013013574648 % a=p5s 62.9164971546799 % a=p5e 65.37932695490305 % a=p6s 75.95043319432422 % a=p6e 77.67714671916806 % a=p7s 89.267771111587 % a=p7e ] store /angs90 [ 10.44737394623543 % a=p1s 12.485497472250978 % a=p1e 20.95810725568375 % a=p2s 24.98396144813609 % a=p2e 31.599753247054046 % a=p3s 37.51510136707036 % a=p3e 42.45034921663944 % a=p4s 50.1172136554016 % a=p4e 53.610709704045156 % a=p5s 62.87129386468458 % a=p5e 65.23006601413964 % a=p6s 75.92685363715245 % a=p6e 77.53699566206811 % a=p7s 89.32901540553087 % a=p7e ] store /angs91 [ 10.421261761253758 % a=p1s 12.475217590906341 % a=p1e 20.905592692739635 % a=p2s 24.962779798689688 % a=p2e 31.520245767122837 % a=p3s 37.48188895354737 % a=p3e 42.34305230016192 % a=p4s 50.071169894367095 % a=p4e 53.47541687050413 % a=p5s 62.816471889197054 % a=p5e 65.07161056727695 % a=p6s 75.89167552706655 % a=p6e 77.38528314961515 % a=p7s 89.39047444015759 % a=p7e ] store /angs92 [ 10.39437418034958 % a=p1s 12.463647623808814 % a=p1e 20.851428517050195 % a=p2s 24.93885427281721 % a=p2e 31.437980790359042 % a=p3s 37.4440753432555 % a=p3e 42.23142476643647 % a=p4s 50.01783657095724 % a=p4e 53.33331112576324 % a=p5s 62.75026106623974 % a=p5e 64.90227915475951 % a=p6s 75.84190088464126 % a=p6e 77.21906515428934 % a=p7s 89.4521781042207 % a=p7e ] store /angs93 [ 10.366566594024654 % a=p1s 12.450566387400894 % a=p1e 20.7953109387511 % a=p2s 24.91171522392829 % a=p2e 31.352459835082556 % a=p3s 37.40086986833539 % a=p3e 42.11469675473716 % a=p4s 49.95591963617774 % a=p4e 53.183168342405175 % a=p5s 62.67035634556985 % a=p5e 64.71988238764112 % a=p6s 75.77336031510298 % a=p6e 77.03425376248032 % a=p7s 89.51416443218523 % a=p7e ] store /angs94 [ 10.337640827583373 % a=p1s 12.43567236437918 % a=p1e 20.736824100778414 % a=p2s 24.880723810756752 % a=p2e 31.263002207045993 % a=p3s 37.351201943985174 % a=p3e 41.99182224402634 % a=p4s 49.88368040256907 % a=p4e 53.02333981853951 % a=p5s 62.573665066453344 % a=p5e 64.52148239066106 % a=p6s 75.68006906658896 % a=p6e 76.82499053487105 % a=p7s 89.57648310092486 % a=p7e ] store /angs95 [ 10.3073131210325 % a=p1s 12.418535962 % a=p1e 20.675373157115303 % a=p2s 24.84497168741433 % a=p2e 31.168636456211317 % a=p3s 37.29355619650331 % a=p3e 41.861315568140476 % a=p4s 49.79867863856155 % a=p4e 52.85150561997737 % a=p5s 62.45587317977757 % a=p5e 64.30297938970263 % a=p6s 75.55310227890614 % a=p6e 76.58255351663618 % a=p7s 89.639201041776 % a=p7e ] store /angs96 [ 10.27515327329313 % a=p1s 12.398508906273932 % a=p1e 20.610057118365663 % a=p2s 24.80309072406826 % a=p2e 31.0678942534632 % a=p3s 37.22566008831809 % a=p3e 41.72094132649595 % a=p4s 49.69728761978492 % a=p4e 52.66420838116201 % a=p5s 62.3106404326897 % a=p5e 64.05834364726535 % a=p6s 75.37850966942737 % a=p6e 76.2933344097417 % a=p7s 89.70241189457685 % a=p7e ] store /angs97 [ 10.240457014776476 % a=p1s 12.374534483857923 % a=p1e 20.539402258496843 % a=p2s 24.752854701221814 % a=p2e 30.958378485619786 % a=p3s 37.143830811962594 % a=p3e 41.567065421883505 % a=p4s 49.57368363983764 % a=p4e 52.45588082398579 % a=p5s 62.12795008488131 % a=p5e 63.77803848358542 % a=p6s 75.13315211918425 % a=p6e 75.93480957381597 % a=p7s 89.7662528933324 % a=p7e ] store /angs98 [ 10.201940783287087 % a=p1s 12.344694343661418 % a=p1e 20.460724780181135 % a=p2s 24.69022861634551 % a=p2e 30.835731476098257 % a=p3s 37.041418581955604 % a=p3e 41.393107024755516 % a=p4s 49.41744597628106 % a=p4e 52.2165341809466 % a=p5s 61.8902485673239 % a=p5e 63.445327791130374 % a=p6s 74.77556573610576 % a=p6e 75.46672987115005 % a=p7s 89.83093728039667 % a=p7e ] store /angs99 [ 10.156863514538578 % a=p1s 12.304906380898949 % a=p1e 20.368298086378783 % a=p2s 24.6066397184238 % a=p2e 30.690671442542342 % a=p3s 36.90434732074166 % a=p3e 41.185102323629934 % a=p4s 49.206715079304736 % a=p4e 51.92516721537275 % a=p5s 61.561627576755996 % a=p5e 63.025927609896144 % a=p6s 74.22325640356571 % a=p6e 74.80934874610683 % a=p7s 89.89682247726977 % a=p7e ] store /angs100 [ 10.097664637482845 % a=p1s 12.243948888604791 % a=p1e 20.2463452806097 % a=p2s 24.478569462863145 % a=p2e 30.49768963075752 % a=p3s 36.69417993773908 % a=p3e 40.904866750365436 % a=p4s 48.88245951368224 % a=p4e 51.525008083759836 % a=p5s 61.048280116916224 % a=p5e 62.43026757621404 % a=p6s 73.28583530820094 % a=p6e 73.77999848960131 % a=p7s 89.9645717192571 % a=p7e ] store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /masterangs [ angs0 angs1 angs2 angs3 angs4 angs5 angs6 angs7 angs8 angs9 angs10 angs11 angs12 angs13 angs14 angs15 angs16 angs17 angs18 angs19 angs20 angs21 angs22 angs23 angs24 angs25 angs26 angs27 angs28 angs29 angs30 angs31 angs32 angs33 angs34 angs35 angs36 angs37 angs38 angs39 angs40 angs41 angs42 angs43 angs44 angs45 angs46 angs47 angs48 angs49 angs50 angs51 angs52 angs53 angs54 angs55 angs56 angs57 angs58 angs59 angs60 angs61 angs62 angs63 angs64 angs65 angs66 angs67 angs68 angs69 angs70 angs71 angs72 angs73 angs74 angs75 angs76 angs77 angs78 angs79 angs80 angs81 angs82 angs83 angs84 angs85 angs86 angs87 angs88 angs89 angs90 angs91 angs92 angs93 angs94 angs95 angs96 angs97 angs98 angs99 angs100 ] store %% grab individual angle reports /p1sangs mark masterangs {0 get} forall ] store /p2sangs mark masterangs {2 get} forall ] store /p3sangs mark masterangs {4 get} forall ] store /p4sangs mark masterangs {6 get} forall ] store /p5sangs mark masterangs {8 get} forall ] store /p6sangs mark masterangs {10 get} forall ] store /p7sangs mark masterangs {12 get} forall ] store %% grab angle diffrences from carrier impulse /p1sdangs mark p1sangs {12 sub} forall ] store /p2sdangs mark p2sangs {24 sub} forall ] store /p3sdangs mark p3sangs {36 sub} forall ] store /p4sdangs mark p4sangs {48 sub} forall ] store /p5sdangs mark p5sangs {60 sub} forall ] store /p6sdangs mark p6sangs {72 sub} forall ] store /p7sdangs mark p7sangs {84 sub} forall ] store %% calculate cosine half differences... /p1sdcos mark p1sangs {cos 12 cos sub } forall ] store /p2sdcos mark p2sangs {cos 24 cos sub } forall ] store /p3sdcos mark p3sangs {cos 36 cos sub } forall ] store /p4sdcos mark p4sangs {cos 48 cos sub } forall ] store /p5sdcos mark p5sangs {cos 60 cos sub } forall ] store /p6sdcos mark p6sangs {cos 72 cos sub } forall ] store /p7sdcos mark p7sangs {cos 84 cos sub } forall ] store % get normalized max values /normp1s p1sdcos 100 get store /normp2s p2sdcos 100 get store /normp3s p3sdcos 100 get store /normp4s p4sdcos 100 get store /normp5s p5sdcos 100 get store /normp6s p6sdcos 100 get store /normp7s p7sdcos 100 get store %% find fractional tota;s /fractot 12 sin 24 sin add 36 sin add 48 sin add 60 sin add 72 sin add 84 sin add store /fracts [ 12 sin fractot div 24 sin fractot div 36 sin fractot div 48 sin fractot div 60 sin fractot div 72 sin fractot div 84 sin fractot div ] store % calculate cosine contributed half fractions /fract12 fracts 0 get 2 div store /fract24 fracts 1 get 2 div store /fract36 fracts 2 get 2 div store /fract48 fracts 3 get 2 div store /fract60 fracts 4 get 2 div store /fract72 fracts 6 get 2 div store /fract84 fracts 6 get 2 div store % use reminder % /data [ 0 0 0.5 0.7 1 1 ] store solvelineq plotit showpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% zzz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % do a total plot and compare against existing and better guesses % 150 100 10 setgrid 0 0 mt 45 pu 20 pr 45 pd closepath 0.8 1 1 setrgbcolor fill 20 45 showgrid % two degrees per v block black % p7s 0 84 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 12 get 2 div lineto } for 20 84 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 84 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 13 get 2 div lineto } for 20 84 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p6s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 72 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 10 get 2 div lineto } for 20 72 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 72 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 11 get 2 div lineto } for 20 72 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p5s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 60 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 8 get 2 div lineto } for 20 60 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 60 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 9 get 2 div lineto } for 20 60 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p4s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 48 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 6 get 2 div lineto } for 20 48 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 48 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 7 get 2 div lineto } for 20 48 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p3s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 36 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 4 get 2 div lineto } for 20 36 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 36 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 5 get 2 div lineto } for 20 36 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p2s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 24 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 2 get 2 div lineto } for 20 24 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 24 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 3 get 2 div lineto } for 20 24 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p1s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 12 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 0 get 2 div lineto } for 20 12 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 12 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 1 get 2 div lineto } for 20 12 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill line1 [{0.2 6 mt 19.6 r} 6 7 ] yrpt black line1 0 84 2 div mt 20 masterangs 1 get 13 get 84 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 13 get 84 sub 100 mul neg rlineto closepath stroke 0 72 2 div mt 20 masterangs 1 get 11 get 72 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 11 get 72 sub 100 mul neg rlineto closepath stroke 0 60 2 div mt 20 masterangs 1 get 9 get 60 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 9 get 60 sub 100 mul neg rlineto closepath stroke 0 48 2 div mt 20 masterangs 1 get 7 get 48 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 7 get 48 sub 100 mul neg rlineto closepath stroke 0 36 2 div mt 20 masterangs 1 get 5 get 36 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 5 get 36 sub 100 mul neg rlineto closepath stroke 0 24 2 div mt 20 masterangs 1 get 3 get 24 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 3 get 24 sub 100 mul neg rlineto closepath stroke 0 12 2 div mt 20 masterangs 1 get 1 get 12 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 1 get 12 sub 100 mul neg rlineto closepath stroke { 0 0 1 setrgbcolor 0 36 2 div mt 20 masterangs 1 get 5 get 36 sub 2 div 100 mul 0.6000 sub rlineto 20 0 masterangs 1 get 5 get 36 sub 100 mul neg rlineto closepath stroke } pop black line1 -0.4 0 mt 20.4 r 0 0 mt 0.4 d 10 0 mt 0.4 d 20 0 mt 0.4 d /cstretch 0.02 store /sstretch 0.02 store /font1 /Helvetica-Bold 0.85 gonzofont font1 0 -1.3 (0.0) cc 10 -1.3 (0.5) cc 20 -1.3 (1.0) cc 10 -2.7 (input amplitude) cc 10 3.5 (best efficiency 7 pulse per quadrant magic sinewave pulse positions) cc -1.3 -0.3 (0.0000) cr -1.3 6 0.3 sub (12.000) cr -1.3 12 0.3 sub (24.000) cr -1.3 18 0.3 sub (36.000) cr -1.3 24 0.3 sub (48.000) cr -1.3 30 0.3 sub (60.000) cr -1.3 36 0.3 sub (72.000) cr -1.3 42 0.3 sub (84.000) cr -1.3 45 0.3 sub (90.000) cr [{0 0 mt 0.4 l}6 8 ] yrpt 0 45 mt 0.4 l 0 0 mt 45 u 20 r 45 d 18 42 0.3 sub (P7) cc 18 36 0.3 sub (P6) cc 18 30 0.3 sub (P5) cc 18 24 0.3 sub (P4) cc 18 18 0.3 sub (P3) cc 18 12 0.3 sub (P2) cc 18 6 0.3 sub (P1) cc gsave -5.5 22.5 translate 90 rotate 0 0 (pulse starting or ending angle position in degrees) cc grestore snap3 restore } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % figure1 for detmssol 72 /figure1 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% -0.3 -2.5 translate % position on box 1.5 dup scale 0 1 0 setrgbcolor line1 gsave 0 0 mt 10 pu 20 pr 10 pd closepath 0.8 1 1 setrgbcolor fill grestore 20 10 showgrid 0 1 1 setrgbcolor line2 10 0 mt 10 u 0 10 mt 20 r 0 0 mt 10 pu 20 pr 10 pd closepath stroke newpath 0 0 mt 10 pu 20 pr 10 pd closepath clip newpath 10 0 translate black /f1 { /b1 exch store /m1 exch store % capture slope and error -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x1 exch store % plotting loop for linear x1 m1 mul b1 add abs x1 exch lineto } for stroke -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x1 exch store % plotting loop for square x1 m1 mul b1 add dup mul % sqrt % find rms x1 exch % 2 copy == == (\n) print flush % gsave black 2 copy mt dot grestore lineto } for stroke 1 0 0 setrgbcolor % verify and plot minimum b1 m1 div neg 0 mt 20 u 0 b1 mt dot % plot initial y value } def 2 3 f1 % and do it slope - offset f1 snapxxx restore } store %%%%%%%%%%%%%%%% % figure2 for detmssol 72 /figure2 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% -0.3 -2.5 translate % position on box 1.5 dup scale 0 1 0 setrgbcolor line1 gsave 0 0 mt 10 pu 20 pr 10 pd closepath 0.8 1 1 setrgbcolor fill grestore 20 10 showgrid 0 1 1 setrgbcolor line2 10 0 mt 10 u 0 10 mt 20 r 0 0 mt 10 pu 20 pr 10 pd closepath stroke newpath 0 0 mt 10 pu 20 pr 10 pd closepath clip newpath 10 0 translate black /f123 {/b7 exch store /m7 exch store % capture 7h slope and error /b5 exch store /m5 exch store % capture 5h slope and error /b3 exch store /m3 exch store % capture 3h slope and error -11 11 mt line1 -10 0.1 10 {/x3 exch store % plotting loop for 3h linear x3 m3 mul b3 add abs x3 exch lineto } for stroke 1 0 0 setrgbcolor % show intercept 0 b3 mt dot black -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x5 exch store % plotting loop for 5h linear x5 m5 mul b5 add abs x5 exch lineto } for stroke 1 0 0 setrgbcolor % show intercept 0 b5 mt dot black -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x7 exch store % plotting loop for 7h linear x7 m7 mul b7 add abs x7 exch lineto } for stroke 1 0 0 setrgbcolor % show intercept 0 b7 mt dot black -11 11 mt line1 0.07 setlinewidth % plot sum of squares -10 0.1 10 {/ss exch store ss m3 mul b3 add dup mul ss m5 mul b5 add dup mul add ss m7 mul b7 add dup mul add sqrt % plot as rms ss exch lineto } for stroke % minimum shold be - (m3b3 + m5b5 + m7b7)/(m3m3 + m5m5 + m7m7) 1 0 0 setrgbcolor % verify and plot minimum m3 b3 mul m5 b5 mul add m7 b7 mul add m3 dup mul m5 dup mul add m7 dup mul add div neg 0 mt 20 u } def 2 3 .5 2 -0.75 2.5 f123 % and do it slope - offset f1 snapxxx restore } store %% figure 1 for ebaystat 74 /figure1 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% 4.5 1.7 translate % position on box % new data for 1000 to 5000 has been modified to include two additional points /data1k5k [ 800 118 50 900 100 39 1000 93.50 73 1100 82 77 1200 75 21 1300 70 26 1400 63 37 1500 59 53 1600 53 52 1700 50 16 1800 50 36 1900 47 61 2000 45 25 2100 41 98 2200 40 20 2300 39 40 2400 36 89 2500 35 15 2600 33.39 52 2700 31.49 67 2800 30 42 2900 30 36 3000 29 63 3100 27.63 84 3200 26 95 3300 25 49 3400 25 13 3500 25 30 3600 24.95 38 3700 24 38 3800 23 30 3900 22 54 4000 21 67 4100 20.50 99 4200 20 33 4300 19.99 15 4400 19.99 23 4500 19.99 25 4600 19.95 41 4700 18.99 7 4800 18.45 57 4900 17.99 27 5000 17.12 90 ] store % 150 150 10 setgrid gsave 0 0 mt 21 pu 24 pr 21 pd closepath 0.7 1 1 setrgbcolor fill grestore 24 21 showgrid 0 1 1 setrgbcolor line2 0 -0.60 mt 21.6 u 20 r 21.6 d 4 20 mt 20.6 d 8 20 mt 20.6 d 12 20 mt 20.6 d 16 20 mt 20.6 d 24 20 mt 20.6 d 24 0 mt 24.6 l 24 1 mt 24.6 l 24 6 mt 24.6 l 24 11 mt 24.6 l 24 16 mt 24.6 l 24 21 mt 24.6 l 1 0 0 setrgbcolor % plot the red approximation 24 0 mt /const 0.85 store 1 -0.01 0.148 {/jj exch store % at jj = 1 yy = 0 at jj = 0.18 yy = 1 /yy 1 jj sub const div store jj 24 mul yy 1 exp 0.07 mul % first yy 2 exp 0.35 mul add yy 11 exp 0.58 mul add % eighth 21 mul lineto } for line1 stroke 0.3 0.3 0.3 setrgbcolor 0 3 data1k5k length 1 sub {/ii exch store /bins data1k5k ii 0 add get store /bucks data1k5k ii 1 add get store /buys data1k5k ii 2 add get store bins 800 sub 4000 div 20 mul bucks 5 div exch % swap usual axes mt dot } for /cstretch 0.02 store /sstretch 0.05 store /font1 /Helvetica-bold 0.85 gonzofont font1 black 0 -1.8 ($0) cc 4 -1.8 ($20) cc 8 -1.8 ($40) cc 12 -1.8 ($60) cc 16 -1.8 ($80) cc 20 -1.8 ($100) cc 24 -1.8 ($120) cc 12.5 -3.1 (dollars per bin ) cc gsave 0 -0.3 translate -1.3 1 (1000) cr -1.3 6 (2000) cr -1.3 11 (3000) cr -1.3 16 (3000) cr -1.3 21 (5000) cr grestore 15 18 (total bins = 18,400) cc gsave -4.3 11 translate 90 rotate 0 0 (bin count from max$) cc grestore snapxxx restore } store /figure2 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% 4.5 -0.4 translate % position on box % new data for 800 to 5000 has been modified to include two additional points /data1k5k [ 800 118 50 900 100 39 1000 93.50 73 1100 82 77 1200 75 21 1300 70 26 1400 63 37 1500 59 53 1600 53 52 1700 50 16 1800 50 36 1900 47 61 2000 45 25 2100 41 98 2200 40 20 2300 39 40 2400 36 89 2500 35 15 2600 33.39 52 2700 31.49 67 2800 30 42 2900 30 36 3000 29 63 3100 27.63 84 3200 26 95 3300 25 49 3400 25 13 3500 25 30 3600 24.95 38 3700 24 38 3800 23 30 3900 22 54 4000 21 67 4100 20.50 99 4200 20 33 4300 19.99 15 4400 19.99 23 4500 19.99 25 4600 19.95 41 4700 18.99 7 4800 18.45 57 4900 17.99 27 5000 17.12 90 ] store % generate new data files /functbb {/curbucks exch store /yy 1 curbucks 120 div sub 0.85 div store yy 11 exp 0.55 mul yy 2 exp 0.35 mul add yy 1 exp 0.07 mul add 4200 mul 800 add } store /binsperbuck [ 18 1 120 {/bucks exch store bucks bucks functbb bucks 1 sub functbb bucks 1 add functbb sub 2 div } for ] store % binsperbuck == % 150 150 10 setgrid gsave 0 0 mt 15 pu 24 pr 15 pd closepath 0.7 1 1 setrgbcolor fill grestore 24 15 showgrid 0 1 1 setrgbcolor line2 0 -0.60 mt 15.6 u 20 r 15.6 d 4 15 mt 15.6 d 8 15 mt 15.6 d 12 15 mt 15.6 d 16 15 mt 15.6 d 24 15 mt 15.6 d 24 0 mt 24.6 l 24 5 mt 24.6 l 24 10 mt 24.6 l 24 15 mt 24.6 l % plot the bins versus dollars 0.3 0.3 0.3 setrgbcolor 0 3 binsperbuck length 3 sub {/ii exch store binsperbuck ii get % the dollars 120 div 24 mul binsperbuck ii 2 add get % the bins 20 div mt dot } for /cstretch 0.02 store /sstretch 0.05 store /font1 /Helvetica-bold 0.85 gonzofont font1 black 0 -1.8 ($0) cc 4 -1.8 ($20) cc 8 -1.8 ($40) cc 12 -1.8 ($60) cc 16 -1.8 ($80) cc 20 -1.8 ($100) cc 24 -1.8 ($120) cc 12 -3.1 (price in integer dollars ) cc gsave 0 -0.3 translate -1.3 0 (0) cr -1.3 5 (100) cr -1.3 10 (200) cr -1.3 15 (300) cr grestore % 15 18 (total bins = 18,400) cc gsave -3.7 7.5 translate 90 rotate 0 0 (gross bin count per integer dollar) cc grestore /yinc 1.2 store /kern 0.1 store 15.5 12.5 (An |jinteger |jprice |jof\n"$34" represents all\nof the prices from\n$33.50 to $34.49.) cc snapxxx restore } store /figure3 { % for gg74 save /snapxxx exch def %%%%%%%%%%%%%%%%%%% 5.5 -9.4 translate % position on box % new data for 1000 to 5000 has been modified to include two additional points /data1k5k [ 800 118 50 900 100 39 1000 93.50 73 1100 82 77 1200 75 21 1300 70 26 1400 63 37 1500 59 53 1600 53 52 1700 50 16 1800 50 36 1900 47 61 2000 45 25 2100 41 98 2200 40 20 2300 39 40 2400 36 89 2500 35 15 2600 33.39 52 2700 31.49 67 2800 30 42 2900 30 36 3000 29 63 3100 27.63 84 3200 26 95 3300 25 49 3400 25 13 3500 25 30 3600 24.95 38 3700 24 38 3800 23 30 3900 22 54 4000 21 67 4100 20.50 99 4200 20 33 4300 19.99 15 4400 19.99 23 4500 19.99 25 4600 19.95 41 4700 18.99 7 4800 18.45 57 4900 17.99 27 5000 17.12 90 ] store % 150 150 10 setgrid gsave 0 0 mt 21 pu 20 pr 21 pd closepath 0.7 1 1 setrgbcolor fill grestore 20 21 showgrid 0 1 1 setrgbcolor line2 0 -0.60 mt 21.6 u 20 r 21.6 d 4 20 mt 20.6 d 8 20 mt 20.6 d 12 20 mt 20.6 d 16 20 mt 20.6 d 20 0 mt 20.6 l 20 1 mt 20.6 l 20.6 6 mt 21.2 l 20.6 11 mt 21.2 l 20.6 16 mt 21.2 l 20.6 21 mt 21.2 l 0 0 1 setrgbcolor % plot the raw sellthrough 0 3 data1k5k length 1 sub {/ii exch store /bins data1k5k ii 0 add get store /bucks data1k5k ii 1 add get store /buys data1k5k ii 2 add get store bins 800 sub 4000 div 20 mul buys 5 div exch % swap usual axes mt dot } for 1 0 0 setrgbcolor % plot the filtered sellthrough 12 3 data1k5k length 15 sub {/ii exch store /bins data1k5k ii 0 add get store /bucks data1k5k ii 1 add get store /buys data1k5k ii 2 add get store bins 800 sub 4000 div 20 mul data1k5k ii 10 sub get data1k5k ii 7 sub get add data1k5k ii 4 sub get add data1k5k ii 1 sub get add data1k5k ii 2 add get add % center data1k5k ii 5 add get add data1k5k ii 8 add get add data1k5k ii 11 add get add data1k5k ii 14 add get add 9 div 5 div exch % swap usual axes mt dot } for /cstretch 0.02 store /sstretch 0.05 store /font1 /Helvetica-bold 0.85 gonzofont font1 black 0 -1.8 (0.0) cc 4 -1.8 (0.2) cc 8 -1.8 (0.4) cc 12 -1.8 (0.6) cc 16 -1.8 (0.8) cc 20 -1.8 (1.0) cc 10 -3.1 (sellthru per bin ) cc gsave 0 -0.3 translate -1.3 1 (1000) cr -1.3 6 (2000) cr -1.3 11 (3000) cr -1.3 16 (4000) cr -1.3 21 (5000) cr grestore % 15 18 (total bins = 18,400) cc gsave -4.3 11 translate 90 rotate 0 0 (bin count from max$) cc grestore gsave 24.4 11 translate 90 rotate 0 0 (price per bin) cc grestore 0 1 1 setrgbcolor 20 0.5 mt 0.6 r black gsave 0 -0.3 translate 21.3 0.5 ($100) cl 21.3 6 ($45) cl 21.3 11 ($29) cl 21.3 16 ($21) cl 21.3 21 ($17) cl grestore 10 18.4 (blue = raw sellthru) cl /kern 0.1 store 10.3 17.4 (red = 9 point average) cl snapxxx restore } store /figure4 { % for gg74 save /snapxxx exch def %%%%%%%%%%%%%%%%%%% 7 -8 translate % position on box %%%%%%%%%%%%%%%%%%%%%%% % new data for 800 to 5000 has been modified to include two additional points /data1k5k [ 800 118 50 900 100 39 1000 93.50 73 1100 82 77 1200 75 21 1300 70 26 1400 63 37 1500 59 53 1600 53 52 1700 50 16 1800 50 36 1900 47 61 2000 45 25 2100 41 98 2200 40 20 2300 39 40 2400 36 89 2500 35 15 2600 33.39 52 2700 31.49 67 2800 30 42 2900 30 36 3000 29 63 3100 27.63 84 3200 26 95 3300 25 49 3400 25 13 3500 25 30 3600 24.95 38 3700 24 38 3800 23 30 3900 22 54 4000 21 67 4100 20.50 99 4200 20 33 4300 19.99 15 4400 19.99 23 4500 19.99 25 4600 19.95 41 4700 18.99 7 4800 18.45 57 4900 17.99 27 5000 17.12 90 ] store % generate new data files /functbb {/curbucks exch store /yy 1 curbucks 120 div sub 0.85 div store yy 11 exp 0.55 mul yy 2 exp 0.35 mul add yy 1 exp 0.07 mul add 4200 mul 800 add } store % this curve peaks a little high... use it anyway for now /functst { /curbucks exch store /yy curbucks 120 div store 1 yy sub 3 exp -2.9 mul 1 yy sub 2 exp 2.9 mul add yy 0.4 mul add } store /binsperbuck [ 18 1 100 {/bucks exch store mark bucks bucks functbb bucks 1 sub functbb bucks 1 add functbb sub 2 div /bins exch store bins bucks functst /sellthru exch store sellthru bucks bins mul sellthru mul 100 mul /rawdol exch store rawdol % 30:1 bucks 0.97 mul 10 sub bins mul sellthru mul 100 mul /dol30 exch store dol30 % 10:1 bucks 0.9 mul 10 sub bins mul sellthru mul 100 mul /dol10 exch store dol10 % 3:1 bucks 0.67 mul 10 sub bins mul sellthru mul 100 mul /dol3 exch store dol3 ] } for ] store binsperbuck == % 150 150 10 setgrid gsave 0 0 mt 20 pu 20 pr 20 pd closepath 0.7 1 1 setrgbcolor fill grestore 20 20 showgrid 0 1 1 setrgbcolor line2 0 -0.60 mt 20.6 u 20 r 20.6 d 4 20 mt 20.6 d 8 20 mt 20.6 d 12 20 mt 20.6 d 16 20 mt 20.6 d 20 0 mt 20.6 l 20 5 mt 20.6 l 20 10 mt 20.6 l 20 15 mt 20.6 l % plot the bins versus dollars % binsperbuck format is [ dollars bin# bins sellthru rawcash dol30 dol3 ] 0.3 0.3 0.3 setrgbcolor % black net gain 0 1 binsperbuck length 1 sub {binsperbuck exch get /curarray exch store curarray 0 get 5 div % the price curarray 4 get 10000 div mt dot } for 1 0 0 setrgbcolor % plot 30:1 % black net gain 0 1 binsperbuck length 1 sub {binsperbuck exch get /curarray exch store curarray 0 get 5 div % the price curarray 5 get 10000 div mt dot } for 1 0 1 setrgbcolor % plot 10:1 % black net gain 0 1 binsperbuck length 1 sub {binsperbuck exch get /curarray exch store curarray 0 get 5 div % the price curarray 6 get 10000 div mt dot } for 0 0 1 setrgbcolor % plot 3:1 0 1 binsperbuck length 1 sub {binsperbuck exch get /curarray exch store curarray 0 get 5 div % the price curarray 7 get 10000 div mt dot } for /cstretch 0.02 store /sstretch 0.05 store /font1 /Helvetica-bold 0.85 gonzofont font1 black 0 -1.8 ($0) cc 4 -1.8 ($20) cc 8 -1.8 ($40) cc 12 -1.8 ($60) cc 16 -1.8 ($80) cc 20 -1.8 ($100) cc 10 -3.1 (price in integer dollars ) cc gsave 0 -0.3 translate -1.3 0 ($0) cr -1.3 5 ($50,000) cr -1.3 10 ($100,000) cr -1.3 15 ($150,000) cr -1.3 20 ($200,000) cr grestore % 15 18 (total bins = 18,400) cc gsave -6.7 12.5 translate 90 rotate 0 0 (total sales per integer dollar) cc grestore /yinc 1.0 store /kern 0.1 store gsave % make it smaller and less obnoxious 3.3 3.5 translate 0.8 dup scale 9.5 18 (black = zero process,\n infinite SBR) cl 9.5 15.5 (red = $10 process,\n 30:1 SBR) cl 9.5 13 (magenta = $10 process,\n 10:1 SBR) cl 9.5 10.5 (blue = $10 process,\n 3:1 SBR) cl grestore snapxxx restore } store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Specific file info here /font; /Helvetica [0.7 0 0 0.7 0 0.4] gonzofont font1 /font- /Symbol 0.85 gonzofont aqua 0.33 setgray font0 /narrowx {/txtwide txtwide 8.5 sub store} store /widenx {/txtwide txtwide 8.5 add store} store /burpon {mark /burple cvx 0.33 /setgray cvx ] cvx % additional internal gonzo printlist exch 3 index exch put exch 1 add exch} def /burpoff {mark /aqua cvx 0 /setgray cvx ] cvx printlist exch 3 index exch put exch 1 add exch} def /darkenheader {save /headsnap exch store xpos 1 sub ypos 0.2 add translate 0.3 1 1 setrgbcolor 0 0 mt 3.2 pd burpwide pr 3.2 pu closepath fill headsnap restore} store % sssssssssssssssssssss % start marker /tabs [14] store 20 48.3 0.7 add % 1 sub (Some |jPostScript |jand |jAcrobat |j.PDF)cc 20 46.3 0.7 add % 1 sub (Post |jDocument |jEditing |jTools) cc black font2 textleft 43 0.3 add % this one only need |h below (|/aqua |/staytint1 |3Don Lancaster Synergetics, Box 809, Thatcher, AZ 85552 copyright c2007 as |/surl |6GuruGram|1|/gurgrm01 |/tinton1 |6#75 |/surl http://www.tinaja.com|/tinaja |/surl don@tinaja.com|/maildon (928) 428-4073 |/aqua |/black |a|0T|b|1here are times and places where you might want to modify several existing |/su PostScript|1|/post01 or |/su Acrobat|1|/acrob01 documents. Perhaps the files are way too long because of inefficient machine generation or translation. |h Or you want to add borders or logos or IP statements. Or you might wish to programmatically extract form data for a different reuse. Or you need to reformat text for an entirely different application. Or want to resize or reorient. Or want to make major changes to the final document use or appearance. |h In general\274 |6|/shiftin |/aqua |/burplebox8.5 |/staytint1 |h The Acrobat .PDF format is clearly NOT intended for simple or easy post-document editing! |h If at all possible, GO BACK TO THE ORIGINAL DOCUMENT SOURCECODE for any and all edits or data capture. |h Use the tools and techniques shown here ONLY if and when no reasonable alternatives exist. |h |1|/shiftout |/aqua |/black |h There is no particular sequence with which any marks will appear on an |/su Adobe|/acrob01 |/su Acrobat|1|/acrob01 page. What may seem like a block of text might be put down as its individual words or even individual letters. It can often be enormously difficult to, say, edit a paragraph where words will reflow between lines. Or to distinguish between words in a figure and words in a text body. |h For the tools and techniques we are about to look at to work, you will have to be a "bare metal" machine language type of person. Access and |/to thorough|/tx familiarity with both the |/su PostScript Language Reference Manual|1|/PLRM and the |/su PDF Reference|1|/pdfref are a must. As is understanding exactly how to go about |/su Using Acrobat Distiller as a|1|/distlang |/su General Purpose PostScript Computer|1|/distlang . ) cl startnewpage (Our approach here will be based upon\274 |6|/shiftin |/aqua |/burplebox10 |/staytint1 |h .PDF Acrobat editing is often best done by... |h (1) Print to disk to recapture an equivalent to the underlying PostScript code as a clean textfile. |h (2) Thoroughly study the captured code to understand exactly what happens in which sequence. |h (3) Edit or modify the captured PostScript code. |h (4) Redistill the modified ps code back to Acrobat. |h |1|/shiftout |/aqua |/black |h A |/to print to disk|/tx function is usually built into most |/su Acrobat|1|/acrob01 or |/su GhostScript|1|/ghostscript print drivers. This will let you convert from Acrobat back down to raw PostScript. Usually a non-obvious box will have to be clicked to switch from paper to file. |h There are many print to disk options\274 |6|/shiftin |/aqua |/burplebox6.5 |/staytint1 |h When doing a .PDF print to disk\274 |h \267 Turn off ALL compression. |h \267 Print to Level II compatibility. |h \267 Print as 7-bit clean ASCII text. |h |1|/shiftout |/aqua |/black |h Getting a |/to 7-bit clean ASCII textfile|/tx will usually be an essential starting point to your editing process. |h There are some possible complications as your images may get extremely long in |/to ASCII85|/tx format. And treatment of |/su transparency|1|/pstrans2.pdf also may end up tricky because this newer .PDF feature has no direct PostScript equivalent. Should any of these complications arise, just |/to bypass them temporarily and reintroduce them later|/tx . |h Let's turn to some individual tools and techniques that you might find most useful for .PDF post editing. Chances are you may want to mix and match these so they are appropriate to your particular needs\274 |h |c Working |jWith |jDisk |jFiles |d One of the most powerful (|jand least appreciated|j) features of the |/to PostScript|/tx language is its superb ability to |/to write or read most any diskfile in most any |/to format and most any language|/tx . It is also possible to convert most ordinary |/su PostScript|1|/post01 strings into a file that can be read from or written to. But subject to a strict maximum 65K size limit. |h ) cl startnewpage (If your target doc has several pages, |/to it may be best to split up the doc into a |/to new header file, new individual page files, and a new footer file|/tx . |h This can end up quite useful if you want to edit many files |/to programmatically|/tx , rather than one file |/to manually|/tx . Because footers are not usually a big deal, you can sometimes simply leave them tacked onto the last page. These split files are easily recombined later. |h There are some specific rules for PostScript access to filenames in a |/to Windows XP|/tx or similar environment\274 |6|/shiftin |/aqua |/burplebox7 |/staytint1 |h \267 The FULL file pathname MUST be used. |h \267 Spaces are discouraged in directory or subdirectory filenames. Use split_name instead. |h \267 DOUBLE REVERSE SLASHES are required INSIDE any PostScript string that needs a single reverse slash. |h |1|/shiftout |/aqua |/black Here is how you create a proper filename for PostScript access. First, you may need this |/to /mergestr|/tx routine from our |/su Gonzo|1|/gonzoutils utilities\274 |6|/shiftin |/burple |/burplebox5.5 |/staytint1 |h % /mergestr merges the two stack strings into one\274 |h /mergestr {2 copy length exch length add string dup dup 4 3 roll 4 index length exch putinterval 3 1 roll exch 0 exch putinterval} def |h |1|/shiftout |/aqua |/black |h Here is how you might prepare a pair of host based diskfiles for reading and writing\274 |6|/shiftin |/burple |/burplebox11 |/staytint1 |h /sourcefileprefix (C:\\\\\\\\Documents and Settings\\\\\\\\don\\\\\\\\Desktop\\\\\\\\ps_story\\\\\\\\) store /sourcefilename (demosource1.psl) store /destfilename (demodest1.psl) store |h /s4file sourcefileprefix sourcefilename % source file mergestr (r) file store |h /d4file sourcefileprefix destfilename % destination file mergestr (w) file store |h |1|/shiftout |/aqua |/black |h Other options are to use |/to (w+)|/tx to read and write. Or |/to (a|/tx ) to append. |h ) cl startnewpage (The usual problem with an |/to -invalidaccess-|/tx error message is having the wrong directory and subdirectory sequence. Or not properly merging it. In interest of sanity, |/to it pays to keep all read and written files in the same subdirectory|/tx . |h Some further details: Normally, you would read or write a file in sequential order. But you may want to read and rewrite part of a file up to a marker, insert some new stuff, and then continue on. It turns out there are |/su PostScript|1|/post01 commands of |/to -fileposition-|/tx and |/to -setfileposition-|/tx . |h These can be used to find where something happens in a file or set the file to that location for reading or writing. One quirk: |/to -setfileposition-|/tx "expires" if you ever read an entire file. Or try to write beyond the end of an existing file. If either happens, |/to you will have to close and reopen the file for any further read or |/to write access|/tx . |h There is no direct way to find the length of a disk based |/su PostScript|1|/post01 file. Instead, you have to combine |/to -fileposition-|/tx and |/to -bytesavailable-|/tx \274 |6|/shiftin |/burple |/burplebox3.5 |/staytint1 |h To find the size of a PostScript file: |h \274 file dup fileposition exch bytesavailable add \274 |h |1|/shiftout |/aqua |/black |h |c Three |jFile |jOptions |d There are three different |/su PostScript|1|/post01 commands for reading a host disk based file. These are |/to -read-|/tx , |/to -readline-|/tx , and |/to -readstring-|/tx . Each has particular strengths and weaknesses. |h With |/to -read-|/tx and its companion |/to -write-|/tx , a file can be read |/to one byte at a time|/tx . And returning an |/to 0-255|/tx integer byte. An ASCII upper case |/to "A"|/tx thus might be decimal |/to 63|/tx . This method is often the best for complex disk manipulations in that there are no issues with end-of-line characters or any |/su string dereferencing|1|/strconv.pdf hassles. |h The PostScript buffering internals are swift enough to only actually do disk reads or writes in larger blocks. So, this |/to -read- |/tx method is reasonably fast and does not create excessive disk wear. |h With |/to -readline-|/tx , one line of the input file is read to a string, |/to but excluding any |/to end-of-file markers|/tx . Your work string has to be longer than the longest line to be read, but |/to 1024|/tx bytes is often more than enough. The returned strings can be searched for markers to be edited. If the edited strings are to be rewritten to disk, end-of-line markers (|jsuch as |/to (\\\\n)|/tx |j) will have to be inserted between string writes. |h With |/to - readstring-|/tx , a workstring gets |/to completely|/tx filled with everything that will fit from the input file. Including any and all end-of-line characters. As with most any |/su PostScript|1|/post01 string, |/to there is a 65,535 byte maximum length|1|/tx . |h ) cl startnewpage (If you are going to break up a larger input file into pieces, I feel it is best to first use |/to -readline-|/tx to scan and then search the document for break points. A |/to hitlist|/tx array of break filepositions can then be created. Finally, the blocks between the marking file positions can be transferred using |/to -read-|/tx and |/to -write|/tx . |h We'll see some example code shortly. |h |c Strings |jas |jfiles? |d Yes, it is possible to convert most any |/su PostScript|1|/post01 string into a file that can be read or written. Here is how to read a string the same as a disk file\274 |6|/shiftin |/burple |/burplebox5 |/staytint1 |h /str1 (This is a test) store |h /file1 str1 0 (%EOF) /SubFileDecode filter store |h 6 {file1 read pop == } repeat |h |1|/shiftout |/aqua |/black |h Here our original string is |/to str1|/tx . To create |/to file1|/tx , three parameters of the original string, an occurance counter, and an end of string marker are passed through a |/to SubFileDecode|/tx filter. Our final line reads the first six ASCII characters as equivalent integers 84, 104, 105, 115, 32, and 105. |h Creating a write file is equally simple\274 |6|/shiftin |/burple |/burplebox5 |/staytint1 |h /str2 (zzzzzzzzzzzzzzzzz) store |h /file2 str2 /NullEncode filter store |h file2 65 write file2 66 write file2 67 write str2 == |h |1|/shiftout |/aqua |/black |h This time, we use a file write to replace the first three string characters with |/to (ABC)|/tx . |h Remember there is a strict |/to 65K length limit|/tx on any string file read or write. |h Here is a mind-bogglingly obscure example use for strings as files. Where we do an ultra sneaky |/su numeric array to string conversion|1|/strconv \274 |6|/shiftin |/burple |/burplebox5 |/staytint1 |h /makestring {dup length string dup /NullEncode filter 3 -1 roll {1 index exch write} forall pop } def |h [72 105 32 116 104 101 114 101 33] --> (Hi there!) |h |1|/shiftout |/aqua |/black |h Similar sneaky tricks and useful stunts can be found |/su here|1|/strconv.pdf |h ) cl startnewpage /tabs [16.5] store (|c Splitting |jup and |jmodifying |jan |jInput |jFile |d As we've seen, it often can be useful to split up your task into individual header and page files. Doing this manually is no big deal. Just use simple cut and pastes. Visually keying on obvious divisions. |h Programmatically splitting up a file can be a tad trickier. And is often best done using the file techniques we just looked at. Exactly |/to how|/tx you split your input file will be highly dependent on the third party code used to create it. A careful study of your input code will be needed to determine suitable break points. |h Very often, there will be a |/to "%%Page:|/tx marker after the header and immediately before each page. Once again, I feel it is best to scan the document for markers and create a |/to hitlist|/tx of file positions. That hitlist array can then be used to create the individual files. Here is how you might scan for a |/to "%%Page:|/tx or other marker and create a hit list from it\274 |6|/shiftin |/burple |/burplebox12 |/staytint1 |h /prevfileposn 0 store |t % previous file position /hitlist mark 0 |t % start hitlist array |h 20000 { s1file ws1 readline { (%%Page:) search |t % look for page starts {|jpop pop pop prevfileposn|j} |t % mark start if found {pop /prevfileposn s1file fileposition store} ifelse |t % save old position } {pop exit} ifelse} repeat |h prevfileposn |t % mark file end ] store |t % save hitlist |h |1|/shiftout |/aqua |/black |h Your hitlist will then be an array holding the initial starting file position for each new file to be created and saved to disk. |h Here's how to get from a pagecount index (|jsuch as |/to jj|/tx |j) to a new filename\274 |6|/shiftin |/burple |/burplebox4 |/staytint1 |h /d1file sourcefileprefix (~page) mergestr jj 10 string cvs mergestr (.psl) mergestr (w) file store |h |1|/shiftout |/aqua |/black |h Finally here's how you use two hitlist entries to create a new file\274 ) cl startnewpage /tabs [16.5] store (|6|/shiftin |/burple |/burplebox4 |/staytint1 |h hitlist jj get 1 hitlist jj 1 add get 1 sub {s1file exch setfileposition s1file read {d1file exch write} if} for |h |1|/shiftout |/aqua |/black |h Note the |/to 1 sub|/tx . Normally, your new page file should end |/to one file position count |/to before|/tx the next one starts. |h |c Changing |jPage |jHeaders |d You likely will want to modify your split out page files. Perhaps by changing their internal header, adding new post-header code to do your stuff, and finally the page content itself. |h A captured single page doc of |/to ~page8.psl|/tx might be resaved as |/to ~page8m.pdf|/tx . |h Each page should have some defining point where its header ends and its live content begins. These markers will be highly third party sourcecode specific. In one recent client example, the final header code lines were a unique |/to end end|/tx . To rewrite the unchanged header, you would read |/to up to|/tx the fileposition just past the |/to end end|/tx marker and write this to your modified file. |h If you are to insert some new post header code, you would do so at this point. You then would continue with the actual page content on your original file and write it to your new modified file. Starting with your saved file position. |h Here is how you programmatically insert new post header page code\274 |6|/shiftin |/burple |/burplebox12.5 |/staytint1 |h d2file (\\\\n\\\\n\%% BeginInsertedMods\\\\n\\\\n) writestring |h d2file (\\\\nnew ps code line for everybody #1) writestring d2file (\\\\nnew ps code line for everybody #2) writestring d2file (\\\\n . . . etc . . . #x) writestring |h jj 3 eq { d2file (\\\\nnew ps code line for page3 only #1) writestring d2file (\\\\nnew ps code line for page3 only #2) writestring d2file (\\\\n . . . etc . . . #x) writestring } if |h d2file (\\\\n\\\\n%% EndInsertedMods\\\\n\\\\n) writestring |h |1|/shiftout |/aqua |/black |h Your code can be made conditional on individual pages as shown above. |h An alternate page header might be needed if you are changing page sizes, are switching to or from landscape, or need similar mods. To handle this, you would ) cl startnewpage (start off reading and writing an alternate header file. Then you add your post header code. Finally, you would go back to the |/to original|/tx page header end file position marker and write the content specific page info. |h A suitable flag could be used to conditionally select the original or alternate header. |h |c Recombining |jFiles |d After your rework and modifications, you may want to recombine your individual page files back into a single document. A doc you can send to Acrobat Distiller to create your final output .PDF file. |h The simplest way to recombine files is to write a ps scripting program that runs one modified header or one new page at a time\274 |6|/shiftin |/burple |/burplebox6 |/staytint1 |h (|j~headerm.psl|j) run (|j~page1m.psl|j) run (|j~page2m.psl|j) run . . . . . . (|j~pagexm.psl|j) run |h |1|/shiftout |/aqua |/black |h Otherwise, a read-write loop can be done to combine your modified files. A run script is obviously faster and more convenient. But it requires the presence of all the individual files every time it is used. |h |c The |jCrucial |jKey |jto |jPostdoc |j.PDF |jEditing |d The key secret tool to Acrobat post editing is\274 |6|/shiftin |/aqua |/burplebox11 |/staytint1 |h To Post-Edit an Acrobat .PDF or PS file\274 |h (1) Begin a new unlocked and predefined dictionary. |h (2) Redefine -showpage- and similar procs so they do a combination of old and new tasks. |h (3) Be sure to use -def- and not -store- when making any new definitions. |h (4) Be sure to close the new dictionary before any end-of-page -restore-. |h |1|/shiftout |/aqua |/black |h Here is an example of a showpage redefinition\274 ) cl startnewpage (|6|/shiftin |/burple |/burplebox9 |/staytint1 |h /showpage { % procs that go ON TOP OF or AFTER % existing marks ON THIS PAGE go here. |h systemdict /showpage get exec % do "real" showpage |h % procs that go UNDERNEATH or BEFORE % existing marks ON THE NEXT page go here. |h } def |h |1|/shiftout |/aqua |/black |h One more time: anything happening |/to before|/tx the "real" showpage will go |/to on top |/to of|/to or |/to after|/tx the |/to present|/tx page marks. Anything |/to after|/tx the "real" showpage will go |/to underneath|/tx or |/to before|/tx the |/to next|/tx page marks. |h An extra print-defeated showpage at document start or ignoring anything extra at document end may be needed to get everything to come out even. |h It is also very important to note the procedure in separating "old" and "new" identical commands. Otherwise you may end up calling yourself in an infinite loop. In the case of showpage, a |/to systemdict /showpage get exec|/tx should work. |h In the case of a third party routine buried in an obscure dictionary, you could find the dictionary name and use the above |/to dictname /procname get exec|/tx . Or simply copy the third party routine into your new top-of-stack dictionary. |h Yet another detail: Note that |/to -def-|/tx will define a proc to the |/to top|/tx dictionary on the stack. Either creating a new proc or overwriting an existing one. By contrast, any |/to -store-|/tx will reach down into the dictionary stack as far as it has to when overwriting an existing def or store. |h The problem of having to close your new dictionary before a restore can often be done as the last step in any |/to -showpage-|/tx redefinition. Note that a |/to -restore-|/tx will generate an error if there is a new dictionary still active. |h The original third party software may have |/to -showpage-|/tx buried in some other proc. Just redefine their own redefinition as needed. |h |c Dealing |jwith |j-readonly- |d Sometimes the third party code will lock out any attempt at creating a new dictionary such as the |/to /mydict 100 dict def|/tx that you will need sometime before any actual |/to mydict begin|/tx used before any redefinition. |h If this happens, the first thing to try is to |/to attempt defining your new dictionary |/to very early in the header|/tx . If this does not work, then you will have to modify the existing headers to bypass or else comment out any |/to currentdict readonly pop|/tx code sequence. |h ) cl startnewpage (|c|y Capturing |jText |d Very often, you would like to capture actual text. Perhaps for reformatting or editing. Or else to extract form or customer specific data. I have sometimes found it convenient to create a |/to text data array|/tx of form\274 |6|/shiftin |/burple |/burplebox8 |/staytint1 |h /textdata [ [ xpos0 ypos0 (string0) ] [ xpos1 ypos1 (string1) ] [ xpos2 ypos2 (string2) ] . . . . . . . [ xposx yposx (stringx) ] ] store |h |1|/shiftout |/aqua |/black |h Such an array can simply be sent into your log file with a |/to ==|/tx command. Or else selectively written to a new disk file using our above techniques. |h Here is an example of diverting the |/to -show-|/tx command so it also reports\274 |6|/shiftin |/burple |/burplebox10 |/staytint1 |h /show { /curstr exch store |t % grab string & x,y currentpoint /cury exch store /curs exch store |h ([ ) curx 10 string cvs mergestr |t % report data ( ) mergestr cury 10 string cvs mergestr curstr mergestr (]\\\\n)mergestr == |h curstr userdict /show get exec |t % do actual show } store |h |1|/shiftout |/aqua |/black |h And here is how the somewhat more obtuse |/to -xshow-|/tx can also report\274 |6|/shiftin |/burple |/burplebox11 |/staytint1 |h /xshow { /curxdat exch store |t % save x data array /curstr exch store |t % save current string currentpoint /cury exch store |t % save currentpoint /curx exch store |h ([ ) curx 10 string cvs mergestr |t % report data ( ) mergestr cury 10 string cvs mergestr curstr mergestr (]\\\\n) mergestr == |h curstr curxdat userdict /xshow |t % do actual show get exec } store |h |1|/shiftout |/aqua |/black |h ) cl startnewpage (One more small detail: The original code may use |/to clipping windows|/tx to prevent a long data entry from trashing the rest of the form or page. This may prevent the immediate relocation of the entered data, giving you a blank area instead. |h One way of dealing with this is to selectively defeat the |/to -clip-|/tx command and allow overwrites to happen. Otherwise, creative use of the |/to -clippath-|/tx operator can be used to extract the intended size limits and then suitably handle them. |h Another detail: the simple text capture shown here may not allow for special characters, space kernings, or a fill justify. Much of this is easily dealt with using our upcoming |/su Gonzo|1|/gonzoutils techniques. What remains can often be ignored or custom patched. Otherwise, the actual |/to curxdat|/tx kerning info can be extracted and reused with some considerably more complicated redefinition procs. |h |c Capturing |jData |d Once you have a newly saved array of positions and strings, it is a simple matter to reach into that array to selectively extract data. |h Ferinstance, |/to [ 120.0 75.0 (Arron A. Aardvark) ]|/tx might be a customer name. And all similar customer names are likely to be presented at the same |/to 120, 75|/tx position on other pages. You can search on the first two array values for a customer name hit. |h Just be sure you |/to never compare a real against an integer!|/tx It is also a good idea to compare against a small window rather than a specific value. In this case, accepting any hit between |/to x=119|/tx to |/to x=121|/tx and |/to y=74|/tx and |/to y=76|/tx might be a good choice. |h |c Using |jthe |jGonzo |jUtilities |d I have written a set of |/su PostScript Gonzo Utilities|1|/gonzoutils . These are totally device independent and offer exceptional typesetting quality and superb drawings in amazingly compact file sizes. Gonzo can be ideal for further post processing of captured .PDF info. |h On the other hand, Gonzo is proudly non-WYSIWYG and has a steep learning curve, so it is clearly not for everybody. Many hundreds of |/to .PSL|/tx Gonzo example files appear in our |/su GrurGram|1|/gurgrm01 , our |/su PostScript|1|/post01 , and similar |/su Guru's Lair|1|/tinaja libraries. |h In a recent client job, a |/to 95K|/tx header and a |/to 35K|/tx page file got replaced with a |/to 2973|/tx byte |/su Gonzo|1|/gonzoutils file. With considerable slop and bloat remaining if file size is |/to really|/tx a big time issue. |h Typical final code to be distilled might look something like this\274 ) cl startnewpage (|6|/shiftin |/burple |/burplebox19 |/staytint1 |h (C:\\\\\\\\Documents and Settings\\\\\\\\don\\\\\\\\Desktop\\\\\\\\ gonzo\\\\\\\\gonzo.ps) run landscape /font1 /Helvetica-Bold 9 gonzofont font1 [ [ 21.0 563.0 (string100) ] [ 187.0 535.0 (string101) ] . . . . . [ 187.0 521.0 (string1xx) ] ] {aload pop cl} forall |h /font2 /Helvetica 9 gonzofont font2 [ [ 56.0 464.0 (string200) ] [ 87.0 464.0 (string201) ] . . . . . [ 39.0 464.0 (string2xx) ] ] {aload pop cl} forall |h showpage % EOF |h |1|/shiftout |/aqua |/black |h |c An |jImportant |jUpdate\274 |d |6|/shiftin |/aqua |/burplebox6.5 |/staytint1 |h Versions 8.1 and higher of Acrobat Distiller default to preventing general file reads or writes. |h The workaround is to run Distiller from the Windows command line using "acrodist -F" . Solutions for other operating systems are found |/su here|1|/distbug . |h |1|/shiftout |/aqua |/black |h |c For |jAdditional |jAssistance |d Similar tutorials and additional support materials are found on our |/su PostScript|1|/post01 and our |/su GurGram|1|/gurgrm01 library pages. As always, |/su Custom Consulting|1|/info01 is available on a cash and carry or contract basis. As are seminars. |h For details, you can email |/su don@tinaja.com|1|/maildon . Or call |/to (928) 428-4073|/tx . ) cl startnewpage % EOF