From 2dcfe2f07af05124d5ebee4672d67d7eeae7af60 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 3 Feb 2019 22:44:58 +0000 Subject: ketcindy (3feb19) git-svn-id: svn://tug.org/texlive/trunk@49922 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/support/ketcindy/HowToInstallE.pdf | Bin 18681 -> 19296 bytes .../doc/support/ketcindy/HowToInstallJ.pdf | Bin 31065 -> 31563 bytes Master/texmf-dist/doc/support/ketcindy/README | 4 +- .../doc/support/ketcindy/ketcindyjs/Cindy.js | 1462 ++--- .../doc/support/ketcindy/ketcindyjs/Cindy.js.map | 7 + .../doc/support/ketcindy/ketcindyjs/basic1list.txt | 163 + .../doc/support/ketcindy/ketcindyjs/basic2list.txt | 118 + .../doc/support/ketcindy/ketcindyjs/commonused.txt | 401 ++ .../doc/support/ketcindy/ketcindyjs/ignoredfun.txt | 39 + .../support/ketcindy/ketcindyjs/katex-plugin.js | 296 + .../ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttf | Bin 0 -> 67996 bytes .../ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff | Bin 0 -> 37620 bytes .../katex/fonts/KaTeX_Main-Regular.woff2 | Bin 0 -> 31220 bytes .../ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttf | Bin 0 -> 41448 bytes .../ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff | Bin 0 -> 23820 bytes .../ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2 | Bin 0 -> 20432 bytes .../ketcindy/ketcindyjs/katex/katex.min.css | 1 + .../support/ketcindy/ketcindyjs/katex/katex.min.js | 5 + .../support/ketcindy/ketcindyjs/ketcindylib.txt | 6419 ------------------- .../support/ketcindy/ketcindyjs/makefunlist.cdy | Bin 0 -> 5478 bytes .../doc/support/ketcindy/ketcindyjs/webfont.js | 45 + .../ketcindy/ketmanual/KeTCindyReferenceE.pdf | Bin 1821670 -> 2024034 bytes .../ketcindy/ketmanual/KeTCindyReferenceJ.pdf | Bin 2679815 -> 2695015 bytes .../s05spacefigure/DLofPolyhedrons_objE.txt | 9 + .../s05spacefigure/DLofPolyhedrons_objJ.txt | 10 + .../ketcindy/samples/s05spacefigure/fig/kc.command | 0 .../ketcindy/samples/s07slides/s0704thinE.out | 0 .../ketcindy/samples/s07slides/s0704thinE.pdf | Bin 15961 -> 0 bytes .../ketcindy/samples/s07slides/s0704thinE.tex | 161 - .../support/ketcindy/samples/s08R/s0808ttest.cdy | Bin 3877 -> 3916 bytes .../samples/s09surfaceC/s0901paraboloid.cdy | Bin 5324 -> 5285 bytes .../ketcindy/samples/s09surfaceC/s0902cone.cdy | Bin 5251 -> 5210 bytes .../ketcindy/samples/s09surfaceC/s0903saddle.cdy | Bin 5202 -> 5180 bytes .../ketcindy/samples/s09surfaceC/s0904mant.cdy | Bin 5255 -> 5240 bytes .../ketcindy/samples/s09surfaceC/s0905sphere.cdy | Bin 5257 -> 5220 bytes .../samples/s09surfaceC/s0906curveonsurf.cdy | Bin 5309 -> 5278 bytes .../samples/s09surfaceC/s0907intersectcrvsf.cdy | Bin 5331 -> 5332 bytes .../ketcindy/samples/s09surfaceC/s0908wiredata.cdy | Bin 5359 -> 5281 bytes .../ketcindy/samples/s09surfaceC/s0909conecut.cdy | Bin 5350 -> 5274 bytes .../samples/s09surfaceC/s0910multisurfaces.cdy | Bin 5320 -> 5290 bytes .../samples/s09surfaceC/s0911saddleskeleton.cdy | Bin 5266 -> 5219 bytes .../samples/s09surfaceC/s0912animesaddle.cdy | Bin 6156 -> 6105 bytes .../samples/s09surfaceC/s0913animeparaboloid.cdy | Bin 6686 -> 6979 bytes .../samples/s09surfaceC/s0914animemobius.cdy | Bin 6675 -> 6939 bytes .../ketcindy/samples/s09surfaceC/s0915discont.cdy | Bin 5265 -> 5226 bytes .../samples/s09surfaceC/s0916multiandcut.cdy | Bin 5336 -> 5276 bytes .../ketcindy/samples/s16ketcindyJS/s1601basic.cdy | Bin 6246 -> 4123 bytes .../samples/s16ketcindyJS/s1602diffeq2.cdy | Bin 7573 -> 5475 bytes .../samples/s16ketcindyJS/s1602diffeq2.html | 229 - .../s16ketcindyJS/s1602diffeq2ketcindy.html | 6639 ------------------- .../s16ketcindyJS/s1602diffeq2ketcindyon.html | 6640 -------------------- .../ketcindy/samples/s16ketcindyJS/s1603gamow.cdy | Bin 6577 -> 4964 bytes .../ketcindy/samples/s17spacekc/ReadmeE.txt | 6 + .../ketcindy/samples/s17spacekc/ReadmeJ.txt | 6 + .../ketcindy/samples/s17spacekc/Spacekc.cdy | Bin 12054 -> 12099 bytes .../ketcindy/samples/s17spacekc/Spacekc.pdf | Bin 0 -> 265937 bytes .../samples/s17spacekc/SpacekcReference.pdf | Bin 0 -> 112718 bytes .../ketcindy/source/howtoinstall/HowToInstallE.tex | 12 +- .../ketcindy/source/howtoinstall/HowToInstallJ.tex | 8 +- .../source/ketmanual/Fig/Intersectcurvsf.pdf | Bin 28101 -> 26868 bytes .../ketcindy/source/ketmanual/Fig/frustume.tex | 71 + .../ketcindy/source/ketmanual/Fig/frustumew.tex | 89 + .../ketcindy/source/ketmanual/Fig/frustumewn.tex | 105 + .../ketcindy/source/ketmanual/Fig/frustumw.tex | 55 + .../ketcindy/source/ketmanual/Fig/letter3d.tex | 70 + .../ketcindy/source/ketmanual/Fig/mkpttable.tex | 62 +- .../ketcindy/source/ketmanual/Fig/phparadata04.tex | 34 + .../ketcindy/source/ketmanual/Fig/setorigin.pdf | Bin 6868 -> 22324 bytes .../ketcindy/source/ketmanual/Fig/sfbdpara05.tex | 170 + .../ketcindy/source/ketmanual/Fig/sfcut.tex | 85 + .../ketcindy/source/ketmanual/Fig/surfacemodel.tex | 2204 +++++++ .../ketcindy/source/ketmanual/Fig/wire01.tex | 30 + .../ketcindy/source/ketmanual/Fig/wire02.tex | 30 + .../ketcindy/source/ketmanual/Fig/wire03.tex | 30 + .../ketcindy/source/ketmanual/Fig/wire04.tex | 30 + .../source/ketmanual/KeTCindyReferenceE.tex | 1803 +++--- .../source/ketmanual/KeTCindyReferenceJ.tex | 310 +- .../ketcindy/source/readme/ReadmeLinuxE.tex | 15 +- .../ketcindy/source/readme/ReadmeLinuxJ.tex | 13 +- .../support/ketcindy/source/readme/ReadmeMacE.tex | 2 +- .../support/ketcindy/source/readme/ReadmeWinE.tex | 2 +- .../ketcindy/source/spacekc/SpacekcReferenceE.tex | 619 ++ .../ketcindy/source/spacekc/SpacekcReferenceJ.tex | 831 +++ 83 files changed, 7568 insertions(+), 21772 deletions(-) create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js.map create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic1list.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/basic2list.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/commonused.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex-plugin.js create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttf create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff2 create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttf create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2 create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.css create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.js delete mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ketcindylib.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy create mode 100644 Master/texmf-dist/doc/support/ketcindy/ketcindyjs/webfont.js create mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objE.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/DLofPolyhedrons_objJ.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/fig/kc.command delete mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.out delete mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdf delete mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex delete mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2.html delete mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindy.html delete mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindyon.html create mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeE.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeJ.txt create mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.pdf create mode 100644 Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/SpacekcReference.pdf create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustume.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumew.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumewn.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumw.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3d.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/phparadata04.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfbdpara05.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfcut.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodel.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire01.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire02.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire03.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire04.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceE.tex create mode 100644 Master/texmf-dist/doc/support/ketcindy/source/spacekc/SpacekcReferenceJ.tex (limited to 'Master/texmf-dist/doc/support') diff --git a/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf b/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf index 312420da278..893496815f3 100644 Binary files a/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf and b/Master/texmf-dist/doc/support/ketcindy/HowToInstallE.pdf differ diff --git a/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf b/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf index 3762776f930..91332161cfe 100644 Binary files a/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf and b/Master/texmf-dist/doc/support/ketcindy/HowToInstallJ.pdf differ diff --git a/Master/texmf-dist/doc/support/ketcindy/README b/Master/texmf-dist/doc/support/ketcindy/README index cb05dba8668..d56ec8ca7fd 100644 --- a/Master/texmf-dist/doc/support/ketcindy/README +++ b/Master/texmf-dist/doc/support/ketcindy/README @@ -1,7 +1,7 @@ KeTCindy ======== -Version: 20181225.0 +Version: 20190203.0 KeTCindy combines a plugin to Cinderella with free mathematical software (R, Maxima, ...) to produce high-quality LaTeX graphics. @@ -30,7 +30,7 @@ https://github.com/ketpic/ketcindy License and Copyright --------------------- -Copyright 2014-2018 Setsuo Takato +Copyright 2014-2019 Setsuo Takato This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js index 04aa2fd9134..2be04890fd5 100644 --- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/Cindy.js @@ -1,159 +1,159 @@ /* CindyJS - (C) 2014-2016 The CindyJS Project * Mostly licensed under the Apache License 2.0, but subprojects may use different licensing. - * See https://github.com/CindyJS/CindyJS/tree/bb244cab7fdc8d4ea030751ec40c6d384c09f464 + * See https://github.com/CindyJS/CindyJS/tree/8c01b8d1d336e92934ad80c44aafc5510a1aea36 * for corresponding sources and their respective licensing conditions. */ -var enableInlineVideo=function(){function p(f,k,p,F){function E(p){ea=k(E,F);f(p-(K||p));K=p}var ea,K;return{start:function(){ea||E(0)},stop:function(){p(ea);ea=null;K=0}}}function E(f,k,p,F){function E(k){!!f[p]===!!F&&k.stopImmediatePropagation();delete f[p]}return f.addEventListener(k,E,!1),E}function ja(f,k,p,F){function E(f){p[k]=f}F&&E(f[k]);Object.defineProperty(f,k,{get:function(){return p[k]},set:E})}function Ca(f,k,p){p.addEventListener(k,function(){return f.dispatchEvent(new Event(k))})} -function pa(f,k){Promise.resolve().then(function(){f.dispatchEvent(new Event(k))})}function Da(f){var k=new Audio;return Ca(f,"play",k),Ca(f,"playing",k),Ca(f,"pause",k),k.crossOrigin=f.crossOrigin,k.src=f.src||f.currentSrc||"data:",k}function aa(k,p,F){(K||0)+200=this.video.HAVE_FUTURE_DATA?(this.hasAudio||(this.driver.currentTime=this.video.currentTime+f*this.video.playbackRate/1E3,this.video.loop&& -this.driver.currentTime>=this.video.duration&&(this.driver.currentTime=0)),aa(this.video,this.driver.currentTime)):this.video.networkState===this.video.NETWORK_IDLE&&0===this.video.buffered.length&&this.video.load();this.video.ended&&(delete this.video[Ea],this.video.pause(!0))}function Oa(){var f=this[W];return this.webkitDisplayingFullscreen?void this[ob]():("data:"!==f.driver.src&&f.driver.src!==this.src&&(aa(this,0,!0),f.driver.src=this.src),void(this.paused&&(f.paused=!1,0===this.buffered.length&& -this.load(),f.driver.play(),f.updater.start(),f.hasAudio||(pa(this,"play"),f.video.readyState>=f.video.HAVE_ENOUGH_DATA&&pa(this,"playing")))))}function F(f){var k=this[W];k.driver.pause();k.updater.stop();this.webkitDisplayingFullscreen&&this[sa]();k.paused&&!f||(k.paused=!0,k.hasAudio||pa(this,"pause"),this.ended&&(this[Ea]=!0,pa(this,"ended")))}function ea(F,E){var I=F[W]={};I.paused=!0;I.hasAudio=E;I.video=F;I.updater=p(k.bind(I),requestAnimationFrame,cancelAnimationFrame);E?I.driver=Da(F):(F.addEventListener("canplay", -function(){F.paused||pa(F,"playing")}),I.driver={src:F.src||F.currentSrc||"data:",muted:!0,paused:!0,pause:function(){I.driver.paused=!0},play:function(){I.driver.paused=!1;I.driver.currentTime>=I.video.duration&&aa(F,0)},get ended(){return I.driver.currentTime>=I.video.duration}});F.addEventListener("emptied",function(){var f=!I.driver.src||"data:"===I.driver.src;I.driver.src&&I.driver.src!==F.src&&(aa(F,0,!0),I.driver.src=F.src,f?I.driver.play():I.updater.stop())},!1);F.addEventListener("webkitbeginfullscreen", -function(){F.paused?E&&0===I.driver.buffered.length&&I.driver.load():(F.pause(),F[ob]())});E&&(F.addEventListener("webkitendfullscreen",function(){I.driver.currentTime=F.currentTime}),F.addEventListener("seeking",function(){0>f.indexOf(100*F.currentTime|0)&&(I.driver.currentTime=F.currentTime)}))}var K,U="object"==typeof document&&"object-fit"in document.head.style&&!matchMedia("(-webkit-video-playable-inline)").matches,W="bfred-it:iphone-inline-video",Ea="bfred-it:iphone-inline-video:event",ob="bfred-it:iphone-inline-video:nativeplay", -sa="bfred-it:iphone-inline-video:nativepause",f=[],nb=0;return function(f,k){if(void 0===k&&(k={}),!f[W])if(k.everywhere||U&&(k.iPad||k.ipad?/iPhone|iPod|iPad/:/iPhone|iPod/).test(navigator.userAgent)){!f.paused&&f.webkitDisplayingFullscreen&&f.pause();ea(f,!f.muted);var p=f[W];f[ob]=f.play;f[sa]=f.pause;f.play=Oa;f.pause=F;ja(f,"paused",p.driver);ja(f,"muted",p.driver,!0);ja(f,"playbackRate",p.driver,!0);ja(f,"ended",p.driver);ja(f,"loop",p.driver,!0);E(f,"seeking");E(f,"seeked");E(f,"timeupdate", -Ea,!1);E(f,"ended",Ea,!1);f.classList.add("IIV");f.muted&&f.autoplay&&f.play();/iPhone|iPod|iPad/.test(navigator.platform)||console.warn("iphone-inline-video is not guaranteed to work in emulated environments")}}}(); -(function(){function p(b,d,e){f.biginteger_used=1;null!=b&&("number"==typeof b&&"undefined"==typeof d?this.fromInt(b):"number"==typeof b?this.fromNumber(b,d,e):null==d&&"string"!=typeof b?this.fromString(b,256):this.fromString(b,d))}function E(){return new p(null,void 0,void 0)}function ja(b,d,e,q,f,k){for(;0<=--k;){var v=d*this[b++]+e[q]+f;f=Math.floor(v/67108864);e[q++]=v&67108863}return f}function Ca(b,d,e,q,f,k){var v=d&32767;for(d>>=15;0<=--k;){var C=this[b]&32767,p=this[b++]>>15,F=d*C+p*v,C= -v*C+((F&32767)<<15)+e[q]+(f&1073741823);f=(C>>>30)+(F>>>15)+d*p+(f>>>30);e[q++]=C&1073741823}return f}function pa(b,d,e,q,f,k){var v=d&16383;for(d>>=14;0<=--k;){var C=this[b]&16383,p=this[b++]>>14,F=d*C+p*v,C=v*C+((F&16383)<<14)+e[q]+f;f=(C>>28)+(F>>14)+d*p;e[q++]=C&268435455}return f}function Da(b,d){var e=cb[b.charCodeAt(d)];return null==e?-1:e}function aa(b){var d=E();d.fromInt(b);return d}function k(b){var d=1,e;0!=(e=b>>>16)&&(b=e,d+=16);0!=(e=b>>8)&&(b=e,d+=8);0!=(e=b>>4)&&(b=e,d+=4);0!=(e= -b>>2)&&(b=e,d+=2);0!=b>>1&&(d+=1);return d}function Oa(b){this.m=b}function F(b){this.m=b;this.mp=b.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<=qa;++qa)cb[V++]=qa;V=97;for(qa= -10;36>qa;++qa)cb[V++]=qa;V=65;for(qa=10;36>qa;++qa)cb[V++]=qa;Oa.prototype.convert=function(b){return 0>b.s||0<=b.compareTo(this.m)?b.mod(this.m):b};Oa.prototype.revert=function(b){return b};Oa.prototype.reduce=function(b){b.divRemTo(this.m,null,b)};Oa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};Oa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};F.prototype.convert=function(b){var d=E();b.abs().dlShiftTo(this.m.t,d);d.divRemTo(this.m,null,d);0>b.s&&0>15)*this.mpl&this.um)<<15)&b.DM,e=d+this.m.t;for(b[e]+=this.m.am(0,q,b,d,0,this.m.t);b[e]>=b.DV;)b[e]-=b.DV,b[++e]++}b.clamp();b.drShiftTo(this.m.t,b);0<=b.compareTo(this.m)&&b.subTo(this.m,b)};F.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)}; -F.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};p.prototype.copyTo=function(b){for(var d=this.t-1;0<=d;--d)b[d]=this[d];b.t=this.t;b.s=this.s};p.prototype.fromInt=function(b){this.t=1;this.s=0>b?-1:0;0b?this[0]=b+this.DV:this.t=0};p.prototype.fromString=function(b,d){var e;if(16==d)e=4;else if(8==d)e=3;else if(256==d)e=8;else if(2==d)e=1;else if(32==d)e=5;else if(4==d)e=2;else{this.fromRadix(b,d);return}this.s=this.t=0;for(var q=b.length,f=!1,k=0;0<=--q;){var v=8==e? -b[q]&255:Da(b,q);0>v?"-"==b.charAt(q)&&(f=!0):(f=!1,0==k?this[this.t++]=v:k+e>this.DB?(this[this.t-1]|=(v&(1<>this.DB-k):this[this.t-1]|=v<=this.DB&&(k-=this.DB))}8==e&&0!=(b[0]&128)&&(this.s=-1,0>q|v,v=(this[C]&f)<=this.t)d.t= -0;else{var q=b%this.DB,f=this.DB-q,k=(1<>q;for(var v=e+1;v>q;0>=this.DB;if(b.t>=this.DB;f+=this.s}else{for(f+=this.s;e>=this.DB;f-=b.s}d.s=0>f?-1:0;-1>f?d[e++]=this.DV+ -f:0=d.DV&&(b[e+d.t]-=d.DV,b[e+d.t+1]=1)}0=f.t)){var n=this.abs();if(n.t>this.F2:0),bb=this.FV/F,F=(1<v&&p.ZERO.subTo(e,e)}}}};p.prototype.invDigit=function(){if(1>this.t)return 0;var b=this[0];if(0==(b&1))return 0;var d=b&3,d=d*(2-(b&15)*d)&15,d=d*(2-(b&255)*d)&255,d=d*(2-((b&65535)*d&65535))&65535,d=d*(2-b*d%this.DV)% -this.DV;return 0b)return p.ONE;var e=E(),f=E(),n=d.convert(this),N=k(b)-1;for(n.copyTo(e);0<=--N;)if(d.sqrTo(e,f),0<(b&1<this.s)return"-"+this.negate().toString(b);if(16==b)b=4;else if(8==b)b=3;else if(2==b)b=1;else if(32==b)b=5;else if(4==b)b=2;else return this.toRadix(b); -var d=(1<>v)&&(f=!0,n="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));0<=k;)v>(v+=this.DB-b)):(e=this[k]>>(v-=b)&d,0>=v&&(v+=this.DB,--k)),0this.s?this.negate():this};p.prototype.compareTo= -function(b){var d=this.s-b.s;if(0!=d)return d;var e=this.t,d=e-b.t;if(0!=d)return 0>this.s?-d:d;for(;0<=--e;)if(0!=(d=this[e]-b[e]))return d;return 0};p.prototype.bitLength=function(){return 0>=this.t?0:this.DB*(this.t-1)+k(this[this.t-1]^this.s&this.DM)};p.prototype.mod=function(b){var d=E();this.abs().divRemTo(b,null,d);0>this.s&&0b||d.isEven()?new Oa(d):new F(d);return this.exp(b,e)};p.ZERO=aa(0);p.ONE= -aa(1);Ea.prototype.convert=ob;Ea.prototype.revert=ob;Ea.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e)};Ea.prototype.sqrTo=function(b,d){b.squareTo(d)};sa.prototype.convert=function(b){if(0>b.s||b.t>2*this.m.t)return b.mod(this.m);if(0>b.compareTo(this.m))return b;var d=E();b.copyTo(d);this.reduce(d);return d};sa.prototype.revert=function(b){return b};sa.prototype.reduce=function(b){b.drShiftTo(this.m.t-1,this.r2);b.t>this.m.t+1&&(b.t=this.m.t+1,b.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+ -1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);0>b.compareTo(this.r2);)b.dAddOffset(1,this.m.t+1);for(b.subTo(this.r2,b);0<=b.compareTo(this.m);)b.subTo(this.m,b)};sa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};sa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};var H=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239, -241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Zb=67108864/H[H.length-1];p.prototype.chunkSize= -function(b){return Math.floor(Math.LN2*this.DB/Math.log(b))};p.prototype.toRadix=function(b){null==b&&(b=10);if(0==this.signum()||2>b||36F?"-"==b.charAt(C)&&0==this.signum()&&(n=!0):(v=d*v+F,++k>=e&&(this.dMultiply(f),this.dAddOffset(v,0),v=k=0))}0b)this.fromInt(1);else for(this.fromNumber(b,e),this.testBit(b-1)||this.bitwiseTo(p.ONE.shiftLeft(b-1),K,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(d);)this.dAddOffset(2,0),this.bitLength()>b&&this.subTo(p.ONE.shiftLeft(b- -1),this);else{e=[];var f=b&7;e.length=(b>>3)+1;d.nextBytes(e);e[0]=0>=this.DB;if(b.t>=this.DB;f+=this.s}else{for(f+=this.s;e>=this.DB;f+=b.s}d.s=0>f?-1:0;0f&&(d[e++]=this.DV+f);d.t=e;d.clamp()};p.prototype.dMultiply=function(b){this[this.t]=this.am(0,b-1,this,0,0,this.t);++this.t;this.clamp()};p.prototype.dAddOffset=function(b,d){if(0!=b){for(;this.t<=d;)this[this.t++]=0;for(this[d]+= -b;this[d]>=this.DV;)this[d]-=this.DV,++d>=this.t&&(this[this.t++]=0),++this[d]}};p.prototype.multiplyLowerTo=function(b,d,e){var f=Math.min(this.t+b.t,d);e.s=0;for(e.t=f;0=b)return 0;var d=this.DV%b,e=0>this.s?b-1:0;if(0=e)return!1;var f=d.shiftRight(e);b=b+1>>1;b>H.length&&(b=H.length);for(var n=E(),k=0;kthis.s){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>24};p.prototype.shortValue=function(){return 0== -this.t?this.s:this[0]<<16>>16};p.prototype.signum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this[0]?0:1};p.prototype.toByteArray=function(){var b=this.t,d=[];d[0]=this.s;var e=this.DB-b*this.DB%8,f,n=0;if(0>e)!=(this.s&this.DM)>>e&&(d[n++]=f|this.s<e?(f=(this[b]&(1<>(e+=this.DB-8)):(f=this[b]>>(e-=8)&255,0>=e&&(e+=this.DB,--b)),0!=(f&128)&&(f|=-256),0==n&&(this.s&128)!=(f&128)&&++n,0this.compareTo(b)?this:b};p.prototype.max=function(b){return 0b?this.rShiftTo(-b,d):this.lShiftTo(b,d);return d};p.prototype.shiftRight=function(b){var d=E();0>b?this.lShiftTo(-b,d):this.rShiftTo(b,d);return d};p.prototype.getLowestSetBit=function(){for(var b=0;b>=16,e+=16);0==(b&255)&&(b>>=8,e+=8);0==(b&15)&&(b>>=4,e+=4);0==(b&3)&&(b>>=2,e+=2); -0==(b&1)&&++e;b=e}return d+b}return 0>this.s?this.t*this.DB:-1};p.prototype.bitCount=function(){for(var b=0,d=this.s&this.DM,e=0;e=this.t?0!=this.s:0!=(this[d]&1<=e)return n;f=18>e?1:48>e?3:144>e?4:768>e?5:6;N=8>e?new Oa(d):d.isEven()?new sa(d):new F(d);var v=[],C=3,p=f-1,bb=(1<=p?K=b[H]>>e-p&bb:(K=(b[H]&(1<>this.DB+e-p));for(C=f;0==(K&1);)K>>=1,--C;0>(e-=C)&&(e+=this.DB,--H);if(ea)v[K].copyTo(n),ea=!1;else{for(;1--e&&(e=this.DB-1,--H)}return N.revert(n)};p.prototype.modInverse=function(b){var d=b.isEven();if(this.isEven()&&d||0==b.signum())return p.ZERO;for(var e=b.clone(),f=this.clone(),n=aa(1),k=aa(0),v=aa(0),C=aa(1);0!=e.signum();){for(;e.isEven();)e.rShiftTo(1,e),d?(n.isEven()&&k.isEven()||(n.addTo(this,n),k.subTo(b,k)),n.rShiftTo(1,n)):k.isEven()||k.subTo(b,k),k.rShiftTo(1,k);for(;f.isEven();)f.rShiftTo(1,f),d?(v.isEven()&& -C.isEven()||(v.addTo(this,v),C.subTo(b,C)),v.rShiftTo(1,v)):C.isEven()||C.subTo(b,C),C.rShiftTo(1,C);0<=e.compareTo(f)?(e.subTo(f,e),d&&n.subTo(v,n),k.subTo(C,k)):(f.subTo(e,f),d&&v.subTo(n,v),C.subTo(k,C))}if(0!=f.compareTo(p.ONE))return p.ZERO;if(0<=C.compareTo(b))return C.subtract(b);if(0>C.signum())C.addTo(b,C);else return C;return 0>C.signum()?C.add(b):C};p.prototype.pow=function(b){return this.exp(b,new Ea)};p.prototype.gcd=function(b){var d=0>this.s?this.negate():this.clone();b=0>b.s?b.negate(): -b.clone();if(0>d.compareTo(b)){var e=d,d=b;b=e}var e=d.getLowestSetBit(),f=b.getLowestSetBit();if(0>f)return d;eb.compareTo(d)?!0:!1};p.op_Addition=function(b,d){return(new p(b)).add(new p(d))};p.op_Subtraction=function(b,d){return(new p(b)).subtract(new p(d))};p.Int128Mul=function(b,d){return(new p(b)).multiply(new p(d))};p.op_Division=function(b,d){return b.divide(d)};p.prototype.ToDouble=function(){return parseFloat(this.toString())};V=function(b,d){var e;if("undefined"==typeof Object.getOwnPropertyNames)for(e in d.prototype){if("undefined"==typeof b.prototype[e]||b.prototype[e]== -Object.prototype[e])b.prototype[e]=d.prototype[e]}else for(var f=Object.getOwnPropertyNames(d.prototype),n=0;nb||2147483647b?Math.ceil(b):Math.floor(b):~~b}:Jb&&"function"==typeof Number.toInteger?function(b){return Number.toInteger(b)}:xb||ab? -function(b){return parseInt(b,10)}:Y?function(b){return-2147483648>b||2147483647b?Math.ceil(b):Math.floor(b):b|0}:function(b){return 0>b?Math.ceil(b):Math.floor(b)};f.Clear=function(b){b.length=0};f.PI=3.141592653589793;f.PI2=6.283185307179586;f.IntPoint=function(){var b=arguments,d=b.length;this.Y=this.X=0;f.use_xyz?(this.Z=0,3==d?(this.X=b[0],this.Y=b[1],this.Z=b[2]):2==d?(this.X=b[0],this.Y=b[1],this.Z=0):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y), -this.Z=0):(b=b[0],"undefined"==typeof b.Z&&(b.Z=0),this.X=b.X,this.Y=b.Y,this.Z=b.Z):this.Z=this.Y=this.X=0):2==d?(this.X=b[0],this.Y=b[1]):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y)):(b=b[0],this.X=b.X,this.Y=b.Y):this.Y=this.X=0};f.IntPoint.op_Equality=function(b,d){return b.X==d.X&&b.Y==d.Y};f.IntPoint.op_Inequality=function(b,d){return b.X!=d.X||b.Y!=d.Y};f.use_xyz?(f.IntPoint0=function(){this.Z=this.Y=this.X=0},f.IntPoint1=function(b){this.X= -b.X;this.Y=b.Y;this.Z=b.Z},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y);this.Z=0},f.IntPoint2=function(b,d){this.X=b;this.Y=d;this.Z=0},f.IntPoint3=function(b,d,e){this.X=b;this.Y=d;this.Z=e}):(f.IntPoint0=function(){this.Y=this.X=0},f.IntPoint1=function(b){this.X=b.X;this.Y=b.Y},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y)},f.IntPoint2=function(b,d){this.X=b;this.Y=d});f.IntRect=function(){var b=arguments,d=b.length;4==d?(this.left= -b[0],this.top=b[1],this.right=b[2],this.bottom=b[3]):1==d?(this.left=b[0].left,this.top=b[0].top,this.right=b[0].right,this.bottom=b[0].bottom):this.bottom=this.right=this.top=this.left=0};f.IntRect0=function(){this.bottom=this.right=this.top=this.left=0};f.IntRect1=function(b){this.left=b.left;this.top=b.top;this.right=b.right;this.bottom=b.bottom};f.IntRect4=function(b,d,e,f){this.left=b;this.top=d;this.right=e;this.bottom=f};f.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2,ctXor:3};f.PolyType= -{ptSubject:0,ptClip:1};f.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3};f.JoinType={jtSquare:0,jtRound:1,jtMiter:2};f.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4};f.EdgeSide={esLeft:0,esRight:1};f.Direction={dRightToLeft:0,dLeftToRight:1};f.TEdge=function(){this.Bot=new f.IntPoint;this.Curr=new f.IntPoint;this.Top=new f.IntPoint;this.Delta=new f.IntPoint;this.Dx=0;this.PolyTyp=f.PolyType.ptSubject;this.Side=f.EdgeSide.esLeft;this.OutIdx= -this.WindCnt2=this.WindCnt=this.WindDelta=0;this.PrevInSEL=this.NextInSEL=this.PrevInAEL=this.NextInAEL=this.NextInLML=this.Prev=this.Next=null};f.IntersectNode=function(){this.Edge2=this.Edge1=null;this.Pt=new f.IntPoint};f.MyIntersectNodeSort=function(){};f.MyIntersectNodeSort.Compare=function(b,d){var e=d.Pt.Y-b.Pt.Y;return 0e?-1:0};f.LocalMinima=function(){this.Y=0;this.Next=this.RightBound=this.LeftBound=null};f.Scanbeam=function(){this.Y=0;this.Next=null};f.OutRec=function(){this.Idx= +var enableInlineVideo=function(){function p(f,k,p,E){function F(p){ia=k(F,E);f(p-(N||p));N=p}var ia,N;return{start:function(){ia||F(0)},stop:function(){p(ia);ia=null;N=0}}}function F(f,k,p,E){function F(k){!!f[p]===!!E&&k.stopImmediatePropagation();delete f[p]}return f.addEventListener(k,F,!1),F}function ha(f,k,p,E){function F(f){p[k]=f}E&&F(f[k]);Object.defineProperty(f,k,{get:function(){return p[k]},set:F})}function Ga(f,k,p){p.addEventListener(k,function(){return f.dispatchEvent(new Event(k))})} +function pa(f,k){Promise.resolve().then(function(){f.dispatchEvent(new Event(k))})}function Ha(f){var k=new Audio;return Ga(f,"play",k),Ga(f,"playing",k),Ga(f,"pause",k),k.crossOrigin=f.crossOrigin,k.src=f.src||f.currentSrc||"data:",k}function ea(k,p,E){(N||0)+200=this.video.HAVE_FUTURE_DATA?(this.hasAudio||(this.driver.currentTime=this.video.currentTime+f*this.video.playbackRate/1E3,this.video.loop&& +this.driver.currentTime>=this.video.duration&&(this.driver.currentTime=0)),ea(this.video,this.driver.currentTime)):this.video.networkState===this.video.NETWORK_IDLE&&0===this.video.buffered.length&&this.video.load();this.video.ended&&(delete this.video[fa],this.video.pause(!0))}function Qa(){var f=this[S];return this.webkitDisplayingFullscreen?void this[ub]():("data:"!==f.driver.src&&f.driver.src!==this.src&&(ea(this,0,!0),f.driver.src=this.src),void(this.paused&&(f.paused=!1,0===this.buffered.length&& +this.load(),f.driver.play(),f.updater.start(),f.hasAudio||(pa(this,"play"),f.video.readyState>=f.video.HAVE_ENOUGH_DATA&&pa(this,"playing")))))}function E(f){var k=this[S];k.driver.pause();k.updater.stop();this.webkitDisplayingFullscreen&&this[$a]();k.paused&&!f||(k.paused=!0,k.hasAudio||pa(this,"pause"),this.ended&&(this[fa]=!0,pa(this,"ended")))}function ia(E,F){var M=E[S]={};M.paused=!0;M.hasAudio=F;M.video=E;M.updater=p(k.bind(M),requestAnimationFrame,cancelAnimationFrame);F?M.driver=Ha(E):(E.addEventListener("canplay", +function(){E.paused||pa(E,"playing")}),M.driver={src:E.src||E.currentSrc||"data:",muted:!0,paused:!0,pause:function(){M.driver.paused=!0},play:function(){M.driver.paused=!1;M.driver.currentTime>=M.video.duration&&ea(E,0)},get ended(){return M.driver.currentTime>=M.video.duration}});E.addEventListener("emptied",function(){var f=!M.driver.src||"data:"===M.driver.src;M.driver.src&&M.driver.src!==E.src&&(ea(E,0,!0),M.driver.src=E.src,f?M.driver.play():M.updater.stop())},!1);E.addEventListener("webkitbeginfullscreen", +function(){E.paused?F&&0===M.driver.buffered.length&&M.driver.load():(E.pause(),E[ub]())});F&&(E.addEventListener("webkitendfullscreen",function(){M.driver.currentTime=E.currentTime}),E.addEventListener("seeking",function(){0>f.indexOf(100*E.currentTime|0)&&(M.driver.currentTime=E.currentTime)}))}var N,V="object"==typeof document&&"object-fit"in document.head.style&&!matchMedia("(-webkit-video-playable-inline)").matches,S="bfred-it:iphone-inline-video",fa="bfred-it:iphone-inline-video:event",ub="bfred-it:iphone-inline-video:nativeplay", +$a="bfred-it:iphone-inline-video:nativepause",f=[],tb=0;return function(f,k){if(void 0===k&&(k={}),!f[S])if(k.everywhere||V&&(k.iPad||k.ipad?/iPhone|iPod|iPad/:/iPhone|iPod/).test(navigator.userAgent)){!f.paused&&f.webkitDisplayingFullscreen&&f.pause();ia(f,!f.muted);var p=f[S];f[ub]=f.play;f[$a]=f.pause;f.play=Qa;f.pause=E;ha(f,"paused",p.driver);ha(f,"muted",p.driver,!0);ha(f,"playbackRate",p.driver,!0);ha(f,"ended",p.driver);ha(f,"loop",p.driver,!0);F(f,"seeking");F(f,"seeked");F(f,"timeupdate", +fa,!1);F(f,"ended",fa,!1);f.classList.add("IIV");f.muted&&f.autoplay&&f.play();/iPhone|iPod|iPad/.test(navigator.platform)||console.warn("iphone-inline-video is not guaranteed to work in emulated environments")}}}(); +(function(){function p(b,d,e){f.biginteger_used=1;null!=b&&("number"==typeof b&&"undefined"==typeof d?this.fromInt(b):"number"==typeof b?this.fromNumber(b,d,e):null==d&&"string"!=typeof b?this.fromString(b,256):this.fromString(b,d))}function F(){return new p(null,void 0,void 0)}function ha(b,d,e,r,f,k){for(;0<=--k;){var u=d*this[b++]+e[r]+f;f=Math.floor(u/67108864);e[r++]=u&67108863}return f}function Ga(b,d,e,r,f,k){var u=d&32767;for(d>>=15;0<=--k;){var C=this[b]&32767,p=this[b++]>>15,E=d*C+p*u,C= +u*C+((E&32767)<<15)+e[r]+(f&1073741823);f=(C>>>30)+(E>>>15)+d*p+(f>>>30);e[r++]=C&1073741823}return f}function pa(b,d,e,r,f,k){var u=d&16383;for(d>>=14;0<=--k;){var C=this[b]&16383,p=this[b++]>>14,E=d*C+p*u,C=u*C+((E&16383)<<14)+e[r]+f;f=(C>>28)+(E>>14)+d*p;e[r++]=C&268435455}return f}function Ha(b,d){var e=gb[b.charCodeAt(d)];return null==e?-1:e}function ea(b){var d=F();d.fromInt(b);return d}function k(b){var d=1,e;0!=(e=b>>>16)&&(b=e,d+=16);0!=(e=b>>8)&&(b=e,d+=8);0!=(e=b>>4)&&(b=e,d+=4);0!=(e= +b>>2)&&(b=e,d+=2);0!=b>>1&&(d+=1);return d}function Qa(b){this.m=b}function E(b){this.m=b;this.mp=b.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<= +ua;++ua)gb[Y++]=ua;Y=97;for(ua=10;36>ua;++ua)gb[Y++]=ua;Y=65;for(ua=10;36>ua;++ua)gb[Y++]=ua;Qa.prototype.convert=function(b){return 0>b.s||0<=b.compareTo(this.m)?b.mod(this.m):b};Qa.prototype.revert=function(b){return b};Qa.prototype.reduce=function(b){b.divRemTo(this.m,null,b)};Qa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};Qa.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};E.prototype.convert=function(b){var d=F();b.abs().dlShiftTo(this.m.t,d);d.divRemTo(this.m, +null,d);0>b.s&&0>15)*this.mpl&this.um)<<15)&b.DM,e=d+this.m.t;for(b[e]+=this.m.am(0,r,b,d,0,this.m.t);b[e]>=b.DV;)b[e]-=b.DV,b[++e]++}b.clamp();b.drShiftTo(this.m.t,b);0<=b.compareTo(this.m)&&b.subTo(this.m,b)};E.prototype.mulTo=function(b, +d,e){b.multiplyTo(d,e);this.reduce(e)};E.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};p.prototype.copyTo=function(b){for(var d=this.t-1;0<=d;--d)b[d]=this[d];b.t=this.t;b.s=this.s};p.prototype.fromInt=function(b){this.t=1;this.s=0>b?-1:0;0b?this[0]=b+this.DV:this.t=0};p.prototype.fromString=function(b,d){var e;if(16==d)e=4;else if(8==d)e=3;else if(256==d)e=8;else if(2==d)e=1;else if(32==d)e=5;else if(4==d)e=2;else{this.fromRadix(b,d);return}this.s=this.t=0;for(var r= +b.length,f=!1,k=0;0<=--r;){var u=8==e?b[r]&255:Ha(b,r);0>u?"-"==b.charAt(r)&&(f=!0):(f=!1,0==k?this[this.t++]=u:k+e>this.DB?(this[this.t-1]|=(u&(1<>this.DB-k):this[this.t-1]|=u<=this.DB&&(k-=this.DB))}8==e&&0!=(b[0]&128)&&(this.s=-1,0>r|u,u=(this[C]&f)<=this.t)d.t=0;else{var r=b%this.DB,f=this.DB-r,k=(1<>r;for(var u=e+1;u>r;0>=this.DB;if(b.t>=this.DB;f+=this.s}else{for(f+=this.s;e>=this.DB; +f-=b.s}d.s=0>f?-1:0;-1>f?d[e++]=this.DV+f:0=d.DV&&(b[e+d.t]-=d.DV,b[e+d.t+1]=1)}0=f.t)){var n=this.abs();if(n.t>this.F2:0),ab=this.FV/E,E=(1<u&&p.ZERO.subTo(e,e)}}}};p.prototype.invDigit=function(){if(1>this.t)return 0;var b=this[0];if(0==(b&1))return 0;var d=b&3,d=d*(2-(b&15)*d)&15,d=d*(2-(b&255)*d)&255,d=d*(2-((b& +65535)*d&65535))&65535,d=d*(2-b*d%this.DV)%this.DV;return 0b)return p.ONE;var e=F(),f=F(),n=d.convert(this),I=k(b)-1;for(n.copyTo(e);0<=--I;)if(d.sqrTo(e,f),0<(b&1<this.s)return"-"+this.negate().toString(b);if(16==b)b=4;else if(8==b)b=3;else if(2==b)b=1;else if(32==b)b= +5;else if(4==b)b=2;else return this.toRadix(b);var d=(1<>u)&&(f=!0,n="0123456789abcdefghijklmnopqrstuvwxyz".charAt(e));0<=k;)u>(u+=this.DB-b)):(e=this[k]>>(u-=b)&d,0>=u&&(u+=this.DB,--k)),0 +this.s?this.negate():this};p.prototype.compareTo=function(b){var d=this.s-b.s;if(0!=d)return d;var e=this.t,d=e-b.t;if(0!=d)return 0>this.s?-d:d;for(;0<=--e;)if(0!=(d=this[e]-b[e]))return d;return 0};p.prototype.bitLength=function(){return 0>=this.t?0:this.DB*(this.t-1)+k(this[this.t-1]^this.s&this.DM)};p.prototype.mod=function(b){var d=F();this.abs().divRemTo(b,null,d);0>this.s&&0b||d.isEven()?new Qa(d): +new E(d);return this.exp(b,e)};p.ZERO=ea(0);p.ONE=ea(1);fa.prototype.convert=ub;fa.prototype.revert=ub;fa.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e)};fa.prototype.sqrTo=function(b,d){b.squareTo(d)};$a.prototype.convert=function(b){if(0>b.s||b.t>2*this.m.t)return b.mod(this.m);if(0>b.compareTo(this.m))return b;var d=F();b.copyTo(d);this.reduce(d);return d};$a.prototype.revert=function(b){return b};$a.prototype.reduce=function(b){b.drShiftTo(this.m.t-1,this.r2);b.t>this.m.t+1&&(b.t=this.m.t+ +1,b.clamp());this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);0>b.compareTo(this.r2);)b.dAddOffset(1,this.m.t+1);for(b.subTo(this.r2,b);0<=b.compareTo(this.m);)b.subTo(this.m,b)};$a.prototype.mulTo=function(b,d,e){b.multiplyTo(d,e);this.reduce(e)};$a.prototype.sqrTo=function(b,d){b.squareTo(d);this.reduce(d)};var H=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167, +173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977, +983,991,997],ic=67108864/H[H.length-1];p.prototype.chunkSize=function(b){return Math.floor(Math.LN2*this.DB/Math.log(b))};p.prototype.toRadix=function(b){null==b&&(b=10);if(0==this.signum()||2>b||36E?"-"==b.charAt(C)&&0==this.signum()&&(n=!0):(u=d*u+E,++k>=e&&(this.dMultiply(f),this.dAddOffset(u,0),u=k=0))}0b)this.fromInt(1);else for(this.fromNumber(b,e),this.testBit(b-1)||this.bitwiseTo(p.ONE.shiftLeft(b-1),N,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(d);)this.dAddOffset(2, +0),this.bitLength()>b&&this.subTo(p.ONE.shiftLeft(b-1),this);else{e=[];var f=b&7;e.length=(b>>3)+1;d.nextBytes(e);e[0]=0>=this.DB;if(b.t>=this.DB;f+=this.s}else{for(f+=this.s;e>=this.DB;f+=b.s}d.s=0>f?-1:0;0f&&(d[e++]=this.DV+f);d.t=e;d.clamp()};p.prototype.dMultiply=function(b){this[this.t]=this.am(0,b-1,this,0,0,this.t);++this.t;this.clamp()};p.prototype.dAddOffset= +function(b,d){if(0!=b){for(;this.t<=d;)this[this.t++]=0;for(this[d]+=b;this[d]>=this.DV;)this[d]-=this.DV,++d>=this.t&&(this[this.t++]=0),++this[d]}};p.prototype.multiplyLowerTo=function(b,d,e){var f=Math.min(this.t+b.t,d);e.s=0;for(e.t=f;0=b)return 0;var d=this.DV%b,e=0>this.s?b-1:0;if(0=e)return!1;var f=d.shiftRight(e);b=b+1>>1;b>H.length&&(b=H.length);for(var n=F(),k=0;kthis.s){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>24};p.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16};p.prototype.signum=function(){return 0>this.s?-1:0>=this.t||1==this.t&&0>=this[0]?0:1};p.prototype.toByteArray=function(){var b=this.t,d=[];d[0]=this.s;var e=this.DB-b*this.DB%8,f,n=0;if(0>e)!=(this.s&this.DM)>>e&&(d[n++]=f|this.s<e?(f=(this[b]&(1<>(e+=this.DB-8)):(f=this[b]>>(e-=8)&255,0>=e&&(e+=this.DB,--b)),0!=(f& +128)&&(f|=-256),0==n&&(this.s&128)!=(f&128)&&++n,0this.compareTo(b)?this:b};p.prototype.max=function(b){return 0b?this.rShiftTo(-b,d):this.lShiftTo(b,d);return d};p.prototype.shiftRight=function(b){var d=F();0>b?this.lShiftTo(-b,d):this.rShiftTo(b,d);return d};p.prototype.getLowestSetBit=function(){for(var b=0;b>=16,e+=16); +0==(b&255)&&(b>>=8,e+=8);0==(b&15)&&(b>>=4,e+=4);0==(b&3)&&(b>>=2,e+=2);0==(b&1)&&++e;b=e}return d+b}return 0>this.s?this.t*this.DB:-1};p.prototype.bitCount=function(){for(var b=0,d=this.s&this.DM,e=0;e=this.t?0!=this.s:0!=(this[d]&1<=e)return n;f=18>e?1:48>e?3:144>e?4:768>e?5:6;I=8>e?new Qa(d):d.isEven()?new $a(d):new E(d);var u=[],C=3,p=f-1,ab=(1<=p?N=b[H]>>e-p&ab:(N=(b[H]&(1<>this.DB+e-p));for(C=f;0==(N&1);)N>>=1,--C;0>(e-=C)&&(e+=this.DB,--H);if(ia)u[N].copyTo(n), +ia=!1;else{for(;1--e&&(e=this.DB-1,--H)}return I.revert(n)};p.prototype.modInverse=function(b){var d=b.isEven();if(this.isEven()&&d||0==b.signum())return p.ZERO;for(var e=b.clone(),f=this.clone(),n=ea(1),k=ea(0),u=ea(0),C=ea(1);0!=e.signum();){for(;e.isEven();)e.rShiftTo(1,e),d?(n.isEven()&&k.isEven()||(n.addTo(this,n),k.subTo(b,k)),n.rShiftTo(1,n)):k.isEven()|| +k.subTo(b,k),k.rShiftTo(1,k);for(;f.isEven();)f.rShiftTo(1,f),d?(u.isEven()&&C.isEven()||(u.addTo(this,u),C.subTo(b,C)),u.rShiftTo(1,u)):C.isEven()||C.subTo(b,C),C.rShiftTo(1,C);0<=e.compareTo(f)?(e.subTo(f,e),d&&n.subTo(u,n),k.subTo(C,k)):(f.subTo(e,f),d&&u.subTo(n,u),C.subTo(k,C))}if(0!=f.compareTo(p.ONE))return p.ZERO;if(0<=C.compareTo(b))return C.subtract(b);if(0>C.signum())C.addTo(b,C);else return C;return 0>C.signum()?C.add(b):C};p.prototype.pow=function(b){return this.exp(b,new fa)};p.prototype.gcd= +function(b){var d=0>this.s?this.negate():this.clone();b=0>b.s?b.negate():b.clone();if(0>d.compareTo(b)){var e=d,d=b;b=e}var e=d.getLowestSetBit(),f=b.getLowestSetBit();if(0>f)return d;eb.compareTo(d)?!0:!1};p.op_Addition=function(b,d){return(new p(b)).add(new p(d))};p.op_Subtraction=function(b,d){return(new p(b)).subtract(new p(d))};p.Int128Mul=function(b,d){return(new p(b)).multiply(new p(d))};p.op_Division=function(b,d){return b.divide(d)};p.prototype.ToDouble=function(){return parseFloat(this.toString())};Y=function(b,d){var e;if("undefined"==typeof Object.getOwnPropertyNames)for(e in d.prototype){if("undefined"== +typeof b.prototype[e]||b.prototype[e]==Object.prototype[e])b.prototype[e]=d.prototype[e]}else for(var f=Object.getOwnPropertyNames(d.prototype),n=0;nb||2147483647b?Math.ceil(b):Math.floor(b):~~b}:Sb&&"function"==typeof Number.toInteger?function(b){return Number.toInteger(b)}: +Cb||fb?function(b){return parseInt(b,10)}:ba?function(b){return-2147483648>b||2147483647b?Math.ceil(b):Math.floor(b):b|0}:function(b){return 0>b?Math.ceil(b):Math.floor(b)};f.Clear=function(b){b.length=0};f.PI=3.141592653589793;f.PI2=6.283185307179586;f.IntPoint=function(){var b=arguments,d=b.length;this.Y=this.X=0;f.use_xyz?(this.Z=0,3==d?(this.X=b[0],this.Y=b[1],this.Z=b[2]):2==d?(this.X=b[0],this.Y=b[1],this.Z=0):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y= +f.Clipper.Round(b.Y),this.Z=0):(b=b[0],"undefined"==typeof b.Z&&(b.Z=0),this.X=b.X,this.Y=b.Y,this.Z=b.Z):this.Z=this.Y=this.X=0):2==d?(this.X=b[0],this.Y=b[1]):1==d?b[0]instanceof f.DoublePoint?(b=b[0],this.X=f.Clipper.Round(b.X),this.Y=f.Clipper.Round(b.Y)):(b=b[0],this.X=b.X,this.Y=b.Y):this.Y=this.X=0};f.IntPoint.op_Equality=function(b,d){return b.X==d.X&&b.Y==d.Y};f.IntPoint.op_Inequality=function(b,d){return b.X!=d.X||b.Y!=d.Y};f.use_xyz?(f.IntPoint0=function(){this.Z=this.Y=this.X=0},f.IntPoint1= +function(b){this.X=b.X;this.Y=b.Y;this.Z=b.Z},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y);this.Z=0},f.IntPoint2=function(b,d){this.X=b;this.Y=d;this.Z=0},f.IntPoint3=function(b,d,e){this.X=b;this.Y=d;this.Z=e}):(f.IntPoint0=function(){this.Y=this.X=0},f.IntPoint1=function(b){this.X=b.X;this.Y=b.Y},f.IntPoint1dp=function(b){this.X=f.Clipper.Round(b.X);this.Y=f.Clipper.Round(b.Y)},f.IntPoint2=function(b,d){this.X=b;this.Y=d});f.IntRect=function(){var b=arguments, +d=b.length;4==d?(this.left=b[0],this.top=b[1],this.right=b[2],this.bottom=b[3]):1==d?(this.left=b[0].left,this.top=b[0].top,this.right=b[0].right,this.bottom=b[0].bottom):this.bottom=this.right=this.top=this.left=0};f.IntRect0=function(){this.bottom=this.right=this.top=this.left=0};f.IntRect1=function(b){this.left=b.left;this.top=b.top;this.right=b.right;this.bottom=b.bottom};f.IntRect4=function(b,d,e,f){this.left=b;this.top=d;this.right=e;this.bottom=f};f.ClipType={ctIntersection:0,ctUnion:1,ctDifference:2, +ctXor:3};f.PolyType={ptSubject:0,ptClip:1};f.PolyFillType={pftEvenOdd:0,pftNonZero:1,pftPositive:2,pftNegative:3};f.JoinType={jtSquare:0,jtRound:1,jtMiter:2};f.EndType={etOpenSquare:0,etOpenRound:1,etOpenButt:2,etClosedLine:3,etClosedPolygon:4};f.EdgeSide={esLeft:0,esRight:1};f.Direction={dRightToLeft:0,dLeftToRight:1};f.TEdge=function(){this.Bot=new f.IntPoint;this.Curr=new f.IntPoint;this.Top=new f.IntPoint;this.Delta=new f.IntPoint;this.Dx=0;this.PolyTyp=f.PolyType.ptSubject;this.Side=f.EdgeSide.esLeft; +this.OutIdx=this.WindCnt2=this.WindCnt=this.WindDelta=0;this.PrevInSEL=this.NextInSEL=this.PrevInAEL=this.NextInAEL=this.NextInLML=this.Prev=this.Next=null};f.IntersectNode=function(){this.Edge2=this.Edge1=null;this.Pt=new f.IntPoint};f.MyIntersectNodeSort=function(){};f.MyIntersectNodeSort.Compare=function(b,d){var e=d.Pt.Y-b.Pt.Y;return 0e?-1:0};f.LocalMinima=function(){this.Y=0;this.Next=this.RightBound=this.LeftBound=null};f.Scanbeam=function(){this.Y=0;this.Next=null};f.OutRec=function(){this.Idx= 0;this.IsOpen=this.IsHole=!1;this.PolyNode=this.BottomPt=this.Pts=this.FirstLeft=null};f.OutPt=function(){this.Idx=0;this.Pt=new f.IntPoint;this.Prev=this.Next=null};f.Join=function(){this.OutPt2=this.OutPt1=null;this.OffPt=new f.IntPoint};f.ClipperBase=function(){this.m_CurrentLM=this.m_MinimaList=null;this.m_edges=[];this.PreserveCollinear=this.m_HasOpenPaths=this.m_UseFullRange=!1;this.m_CurrentLM=this.m_MinimaList=null;this.m_HasOpenPaths=this.m_UseFullRange=!1};f.ClipperBase.horizontal=-9007199254740992; f.ClipperBase.Skip=-2;f.ClipperBase.Unassigned=-1;f.ClipperBase.tolerance=1E-20;f.ClipperBase.loRange=47453132;f.ClipperBase.hiRange=0xfffffffffffff;f.ClipperBase.near_zero=function(b){return b>-f.ClipperBase.tolerance&&bd.X==b.Xd.Y==b.Yd.X==b.Xd.Y==b.Yf.ClipperBase.hiRange||b.Y>f.ClipperBase.hiRange||-b.X>f.ClipperBase.hiRange||-b.Y>f.ClipperBase.hiRange)&&f.Error("Coordinate outside allowed range in RangeTest().");else if(b.X>f.ClipperBase.loRange||b.Y>f.ClipperBase.loRange||-b.X>f.ClipperBase.loRange||-b.Y>f.ClipperBase.loRange)d.Value=!0,this.RangeTest(b,d)};f.ClipperBase.prototype.InitEdge= -function(b,d,e,q){b.Next=d;b.Prev=e;b.Curr.X=q.X;b.Curr.Y=q.Y;f.use_xyz&&(b.Curr.Z=q.Z);b.OutIdx=-1};f.ClipperBase.prototype.InitEdge2=function(b,d){b.Curr.Y>=b.Next.Curr.Y?(b.Bot.X=b.Curr.X,b.Bot.Y=b.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Curr.Z),b.Top.X=b.Next.Curr.X,b.Top.Y=b.Next.Curr.Y,f.use_xyz&&(b.Top.Z=b.Next.Curr.Z)):(b.Top.X=b.Curr.X,b.Top.Y=b.Curr.Y,f.use_xyz&&(b.Top.Z=b.Curr.Z),b.Bot.X=b.Next.Curr.X,b.Bot.Y=b.Next.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Next.Curr.Z));this.SetDx(b);b.PolyTyp=d};f.ClipperBase.prototype.FindNextLocMin= -function(b){for(var d;;){for(;f.IntPoint.op_Inequality(b.Bot,b.Prev.Bot)||f.IntPoint.op_Equality(b.Curr,b.Top);)b=b.Next;if(b.Dx!=f.ClipperBase.horizontal&&b.Prev.Dx!=f.ClipperBase.horizontal)break;for(;b.Prev.Dx==f.ClipperBase.horizontal;)b=b.Prev;for(d=b;b.Dx==f.ClipperBase.horizontal;)b=b.Next;if(b.Top.Y!=b.Prev.Bot.Y){d.Prev.Bot.Xq.Next.Top.X&&(q=n.Prev)}for(;b!=q;)b.NextInLML=b.Next,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!= -b.Prev.Top.X&&this.ReverseHorizontal(b);q=q.Next}else{for(;q.Top.Y==q.Prev.Bot.Y&&q.Prev.OutIdx!=f.ClipperBase.Skip;)q=q.Prev;if(q.Dx==f.ClipperBase.horizontal&&q.Prev.OutIdx!=f.ClipperBase.Skip){for(n=q;n.Next.Dx==f.ClipperBase.horizontal;)n=n.Next;n.Next.Top.X==q.Prev.Top.X?d||(q=n.Next):n.Next.Top.X>q.Prev.Top.X&&(q=n.Next)}for(;b!=q;)b.NextInLML=b.Prev,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Next.Top.X&&this.ReverseHorizontal(b),b=b.Prev;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!= -b.Next.Top.X&&this.ReverseHorizontal(b);q=q.Prev}return q};f.ClipperBase.prototype.AddPath=function(b,d,e){f.use_lines?e||d!=f.PolyType.ptClip||f.Error("AddPath: Open paths must be subject."):e||f.Error("AddPath: Open paths have been disabled.");var q=b.length-1;if(e)for(;0q||!e&&1>q)return!1;for(var n=[],k=0;k<=q;k++)n.push(new f.TEdge);var v=!0;n[1].Curr.X=b[1].X;n[1].Curr.Y=b[1].Y;f.use_xyz&&(n[1].Curr.Z= -b[1].Z);var C={Value:this.m_UseFullRange};this.RangeTest(b[0],C);this.m_UseFullRange=C.Value;C.Value=this.m_UseFullRange;this.RangeTest(b[q],C);this.m_UseFullRange=C.Value;this.InitEdge(n[0],n[1],n[q],b[0]);this.InitEdge(n[q],n[0],n[q-1],b[q]);for(k=q-1;1<=k;--k)C.Value=this.m_UseFullRange,this.RangeTest(b[k],C),this.m_UseFullRange=C.Value,this.InitEdge(n[k],n[k+1],n[k-1],b[k]);for(k=b=q=n[0];;)if(b.Curr!=b.Next.Curr||!e&&b.Next==q){if(b.Prev==b.Next)break;else if(e&&f.ClipperBase.SlopesEqual(b.Prev.Curr, -b.Curr,b.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(b.Prev.Curr,b.Curr,b.Next.Curr))){b==q&&(q=b.Next);b=this.RemoveEdge(b);k=b=b.Prev;continue}b=b.Next;if(b==k||!e&&b.Next==q)break}else{if(b==b.Next)break;b==q&&(q=b.Next);k=b=this.RemoveEdge(b)}if(!e&&b==b.Next||e&&b.Prev==b.Next)return!1;e||(this.m_HasOpenPaths=!0,q.Prev.OutIdx=f.ClipperBase.Skip);b=q;do this.InitEdge2(b,d),b=b.Next,v&&b.Curr.Y!=q.Curr.Y&&(v=!1);while(b!=q);if(v){if(e)return!1;b.Prev.OutIdx= -f.ClipperBase.Skip;b.Prev.Bot.Xb.X==d.X +function(b,d,e,r){b.Next=d;b.Prev=e;b.Curr.X=r.X;b.Curr.Y=r.Y;f.use_xyz&&(b.Curr.Z=r.Z);b.OutIdx=-1};f.ClipperBase.prototype.InitEdge2=function(b,d){b.Curr.Y>=b.Next.Curr.Y?(b.Bot.X=b.Curr.X,b.Bot.Y=b.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Curr.Z),b.Top.X=b.Next.Curr.X,b.Top.Y=b.Next.Curr.Y,f.use_xyz&&(b.Top.Z=b.Next.Curr.Z)):(b.Top.X=b.Curr.X,b.Top.Y=b.Curr.Y,f.use_xyz&&(b.Top.Z=b.Curr.Z),b.Bot.X=b.Next.Curr.X,b.Bot.Y=b.Next.Curr.Y,f.use_xyz&&(b.Bot.Z=b.Next.Curr.Z));this.SetDx(b);b.PolyTyp=d};f.ClipperBase.prototype.FindNextLocMin= +function(b){for(var d;;){for(;f.IntPoint.op_Inequality(b.Bot,b.Prev.Bot)||f.IntPoint.op_Equality(b.Curr,b.Top);)b=b.Next;if(b.Dx!=f.ClipperBase.horizontal&&b.Prev.Dx!=f.ClipperBase.horizontal)break;for(;b.Prev.Dx==f.ClipperBase.horizontal;)b=b.Prev;for(d=b;b.Dx==f.ClipperBase.horizontal;)b=b.Next;if(b.Top.Y!=b.Prev.Bot.Y){d.Prev.Bot.Xr.Next.Top.X&&(r=n.Prev)}for(;b!=r;)b.NextInLML=b.Next,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Prev.Top.X&&this.ReverseHorizontal(b),b=b.Next;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!= +b.Prev.Top.X&&this.ReverseHorizontal(b);r=r.Next}else{for(;r.Top.Y==r.Prev.Bot.Y&&r.Prev.OutIdx!=f.ClipperBase.Skip;)r=r.Prev;if(r.Dx==f.ClipperBase.horizontal&&r.Prev.OutIdx!=f.ClipperBase.Skip){for(n=r;n.Next.Dx==f.ClipperBase.horizontal;)n=n.Next;n.Next.Top.X==r.Prev.Top.X?d||(r=n.Next):n.Next.Top.X>r.Prev.Top.X&&(r=n.Next)}for(;b!=r;)b.NextInLML=b.Prev,b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!=b.Next.Top.X&&this.ReverseHorizontal(b),b=b.Prev;b.Dx==f.ClipperBase.horizontal&&b!=e&&b.Bot.X!= +b.Next.Top.X&&this.ReverseHorizontal(b);r=r.Prev}return r};f.ClipperBase.prototype.AddPath=function(b,d,e){f.use_lines?e||d!=f.PolyType.ptClip||f.Error("AddPath: Open paths must be subject."):e||f.Error("AddPath: Open paths have been disabled.");var r=b.length-1;if(e)for(;0r||!e&&1>r)return!1;for(var n=[],k=0;k<=r;k++)n.push(new f.TEdge);var u=!0;n[1].Curr.X=b[1].X;n[1].Curr.Y=b[1].Y;f.use_xyz&&(n[1].Curr.Z= +b[1].Z);var C={Value:this.m_UseFullRange};this.RangeTest(b[0],C);this.m_UseFullRange=C.Value;C.Value=this.m_UseFullRange;this.RangeTest(b[r],C);this.m_UseFullRange=C.Value;this.InitEdge(n[0],n[1],n[r],b[0]);this.InitEdge(n[r],n[0],n[r-1],b[r]);for(k=r-1;1<=k;--k)C.Value=this.m_UseFullRange,this.RangeTest(b[k],C),this.m_UseFullRange=C.Value,this.InitEdge(n[k],n[k+1],n[k-1],b[k]);for(k=b=r=n[0];;)if(b.Curr!=b.Next.Curr||!e&&b.Next==r){if(b.Prev==b.Next)break;else if(e&&f.ClipperBase.SlopesEqual(b.Prev.Curr, +b.Curr,b.Next.Curr,this.m_UseFullRange)&&(!this.PreserveCollinear||!this.Pt2IsBetweenPt1AndPt3(b.Prev.Curr,b.Curr,b.Next.Curr))){b==r&&(r=b.Next);b=this.RemoveEdge(b);k=b=b.Prev;continue}b=b.Next;if(b==k||!e&&b.Next==r)break}else{if(b==b.Next)break;b==r&&(r=b.Next);k=b=this.RemoveEdge(b)}if(!e&&b==b.Next||e&&b.Prev==b.Next)return!1;e||(this.m_HasOpenPaths=!0,r.Prev.OutIdx=f.ClipperBase.Skip);b=r;do this.InitEdge2(b,d),b=b.Next,u&&b.Curr.Y!=r.Curr.Y&&(u=!1);while(b!=r);if(u){if(e)return!1;b.Prev.OutIdx= +f.ClipperBase.Skip;b.Prev.Bot.Xb.X==d.X b.Y==d.Y=this.m_MinimaList.Y)b.Next=this.m_MinimaList,this.m_MinimaList=b;else{for(var d=this.m_MinimaList;null!== d.Next&&b.Ythis.m_Scanbeam.Y){var d=new f.Scanbeam;d.Y=b;d.Next=this.m_Scanbeam;this.m_Scanbeam=d}else{for(var e=this.m_Scanbeam;null!==e.Next&&b<=e.Next.Y;)e=e.Next;b!=e.Y&&(d=new f.Scanbeam,d.Y=b,d.Next=e.Next,e.Next=d)}};f.Clipper.prototype.Execute= -function(){var b=arguments,d=b.length,e=b[1]instanceof f.PolyTree;if(4!=d||e){if(4==d&&e){var d=b[0],q=b[1],e=b[2],b=b[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0;this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!0;try{(n=this.ExecuteInternal())&&this.BuildResult2(q)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}if(2==d&&!e||2==d&&e)return d=b[0],q=b[1],this.Execute(d,q,f.PolyFillType.pftEvenOdd,f.PolyFillType.pftEvenOdd)}else{d= -b[0];q=b[1];e=b[2];b=b[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&f.Error("Error: PolyTree struct is need for open path clipping.");this.m_ExecuteLocked=!0;f.Clear(q);this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!1;try{var n=this.ExecuteInternal();n&&this.BuildResult(q)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}};f.Clipper.prototype.FixHoleLinkage=function(b){if(null!==b.FirstLeft&&(b.IsHole==b.FirstLeft.IsHole||null===b.FirstLeft.Pts)){for(var d= +function(){var b=arguments,d=b.length,e=b[1]instanceof f.PolyTree;if(4!=d||e){if(4==d&&e){var d=b[0],r=b[1],e=b[2],b=b[3];if(this.m_ExecuteLocked)return!1;this.m_ExecuteLocked=!0;this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!0;try{(n=this.ExecuteInternal())&&this.BuildResult2(r)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}if(2==d&&!e||2==d&&e)return d=b[0],r=b[1],this.Execute(d,r,f.PolyFillType.pftEvenOdd,f.PolyFillType.pftEvenOdd)}else{d= +b[0];r=b[1];e=b[2];b=b[3];if(this.m_ExecuteLocked)return!1;this.m_HasOpenPaths&&f.Error("Error: PolyTree struct is need for open path clipping.");this.m_ExecuteLocked=!0;f.Clear(r);this.m_SubjFillType=e;this.m_ClipFillType=b;this.m_ClipType=d;this.m_UsingPolyTree=!1;try{var n=this.ExecuteInternal();n&&this.BuildResult(r)}finally{this.DisposeAllPolyPts(),this.m_ExecuteLocked=!1}return n}};f.Clipper.prototype.FixHoleLinkage=function(b){if(null!==b.FirstLeft&&(b.IsHole==b.FirstLeft.IsHole||null===b.FirstLeft.Pts)){for(var d= b.FirstLeft;null!==d&&(d.IsHole==b.IsHole||null===d.Pts);)d=d.FirstLeft;b.FirstLeft=d}};f.Clipper.prototype.ExecuteInternal=function(){try{this.Reset();if(null===this.m_CurrentLM)return!1;var b=this.PopScanbeam();do{this.InsertLocalMinimaIntoAEL(b);f.Clear(this.m_GhostJoins);this.ProcessHorizontals(!1);if(null===this.m_Scanbeam)break;var d=this.PopScanbeam();if(!this.ProcessIntersections(d))return!1;this.ProcessEdgesAtTopOfScanbeam(d);b=d}while(null!==this.m_Scanbeam||null!==this.m_CurrentLM);for(var b= -0,e=this.m_PolyOuts.length;bb.Top.Y?d.Top.Xf.Clipper.TopX(d,b.Top.Y):d.Curr.Xb.WindCnt2}case f.ClipType.ctUnion:switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;default:return 0<=b.WindCnt2}case f.ClipType.ctDifference:if(b.PolyTyp==f.PolyType.ptSubject)switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2; default:return 0<=b.WindCnt2}else switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0!==b.WindCnt2;case f.PolyFillType.pftPositive:return 0b.WindCnt2}case f.ClipType.ctXor:if(0===b.WindDelta)switch(e){case f.PolyFillType.pftEvenOdd:case f.PolyFillType.pftNonZero:return 0===b.WindCnt2;case f.PolyFillType.pftPositive:return 0>=b.WindCnt2;default:return 0<=b.WindCnt2}}return!0};f.Clipper.prototype.SetWindingCount=function(b){for(var d=b.PrevInAEL;null!== -d&&(d.PolyTyp!=b.PolyTyp||0===d.WindDelta);)d=d.PrevInAEL;if(null===d)b.WindCnt=0===b.WindDelta?1:b.WindDelta,b.WindCnt2=0,d=this.m_ActiveEdges;else{if(0===b.WindDelta&&this.m_ClipType!=f.ClipType.ctUnion)b.WindCnt=1;else if(this.IsEvenOddFillType(b))if(0===b.WindDelta){for(var e=!0,q=d.PrevInAEL;null!==q;)q.PolyTyp==d.PolyTyp&&0!==q.WindDelta&&(e=!e),q=q.PrevInAEL;b.WindCnt=e?0:1}else b.WindCnt=b.WindDelta;else b.WindCnt=0>d.WindCnt*d.WindDelta?1d.WindDelta*b.WindDelta?d.WindCnt: +d&&(d.PolyTyp!=b.PolyTyp||0===d.WindDelta);)d=d.PrevInAEL;if(null===d)b.WindCnt=0===b.WindDelta?1:b.WindDelta,b.WindCnt2=0,d=this.m_ActiveEdges;else{if(0===b.WindDelta&&this.m_ClipType!=f.ClipType.ctUnion)b.WindCnt=1;else if(this.IsEvenOddFillType(b))if(0===b.WindDelta){for(var e=!0,r=d.PrevInAEL;null!==r;)r.PolyTyp==d.PolyTyp&&0!==r.WindDelta&&(e=!e),r=r.PrevInAEL;b.WindCnt=e?0:1}else b.WindCnt=b.WindDelta;else b.WindCnt=0>d.WindCnt*d.WindDelta?1d.WindDelta*b.WindDelta?d.WindCnt: d.WindCnt+b.WindDelta:0===b.WindDelta?1:b.WindDelta:0===b.WindDelta?0>d.WindCnt?d.WindCnt-1:d.WindCnt+1:0>d.WindDelta*b.WindDelta?d.WindCnt:d.WindCnt+b.WindDelta;b.WindCnt2=d.WindCnt2;d=d.NextInAEL}if(this.IsEvenOddAltFillType(b))for(;d!=b;)0!==d.WindDelta&&(b.WindCnt2=0===b.WindCnt2?1:0),d=d.NextInAEL;else for(;d!=b;)b.WindCnt2+=d.WindDelta,d=d.NextInAEL};f.Clipper.prototype.AddEdgeToSEL=function(b){null===this.m_SortedEdges?(this.m_SortedEdges=b,b.PrevInSEL=null,b.NextInSEL=null):(b.NextInSEL=this.m_SortedEdges, b.PrevInSEL=null,this.m_SortedEdges=this.m_SortedEdges.PrevInSEL=b)};f.Clipper.prototype.CopyAELToSEL=function(){var b=this.m_ActiveEdges;for(this.m_SortedEdges=b;null!==b;)b.PrevInSEL=b.PrevInAEL,b=b.NextInSEL=b.NextInAEL};f.Clipper.prototype.SwapPositionsInAEL=function(b,d){if(b.NextInAEL!=b.PrevInAEL&&d.NextInAEL!=d.PrevInAEL){if(b.NextInAEL==d){var e=d.NextInAEL;null!==e&&(e.PrevInAEL=b);var f=b.PrevInAEL;null!==f&&(f.NextInAEL=d);d.PrevInAEL=f;d.NextInAEL=b;b.PrevInAEL=d;b.NextInAEL=e}else d.NextInAEL== b?(e=b.NextInAEL,null!==e&&(e.PrevInAEL=d),f=d.PrevInAEL,null!==f&&(f.NextInAEL=b),b.PrevInAEL=f,b.NextInAEL=d,d.PrevInAEL=b,d.NextInAEL=e):(e=b.NextInAEL,f=b.PrevInAEL,b.NextInAEL=d.NextInAEL,null!==b.NextInAEL&&(b.NextInAEL.PrevInAEL=b),b.PrevInAEL=d.PrevInAEL,null!==b.PrevInAEL&&(b.PrevInAEL.NextInAEL=b),d.NextInAEL=e,null!==d.NextInAEL&&(d.NextInAEL.PrevInAEL=d),d.PrevInAEL=f,null!==d.PrevInAEL&&(d.PrevInAEL.NextInAEL=d));null===b.PrevInAEL?this.m_ActiveEdges=b:null===d.PrevInAEL&&(this.m_ActiveEdges= d)}};f.Clipper.prototype.SwapPositionsInSEL=function(b,d){if(null!==b.NextInSEL||null!==b.PrevInSEL)if(null!==d.NextInSEL||null!==d.PrevInSEL){if(b.NextInSEL==d){var e=d.NextInSEL;null!==e&&(e.PrevInSEL=b);var f=b.PrevInSEL;null!==f&&(f.NextInSEL=d);d.PrevInSEL=f;d.NextInSEL=b;b.PrevInSEL=d;b.NextInSEL=e}else d.NextInSEL==b?(e=b.NextInSEL,null!==e&&(e.PrevInSEL=d),f=d.PrevInSEL,null!==f&&(f.NextInSEL=b),b.PrevInSEL=f,b.NextInSEL=d,d.PrevInSEL=b,d.NextInSEL=e):(e=b.NextInSEL,f=b.PrevInSEL,b.NextInSEL= d.NextInSEL,null!==b.NextInSEL&&(b.NextInSEL.PrevInSEL=b),b.PrevInSEL=d.PrevInSEL,null!==b.PrevInSEL&&(b.PrevInSEL.NextInSEL=b),d.NextInSEL=e,null!==d.NextInSEL&&(d.NextInSEL.PrevInSEL=d),d.PrevInSEL=f,null!==d.PrevInSEL&&(d.PrevInSEL.NextInSEL=d));null===b.PrevInSEL?this.m_SortedEdges=b:null===d.PrevInSEL&&(this.m_SortedEdges=d)}};f.Clipper.prototype.AddLocalMaxPoly=function(b,d,e){this.AddOutPt(b,e);0==d.WindDelta&&this.AddOutPt(d,e);b.OutIdx==d.OutIdx?(b.OutIdx=-1,d.OutIdx=-1):b.OutIdxd.Dx?(q=this.AddOutPt(b,e),d.OutIdx=b.OutIdx,b.Side=f.EdgeSide.esLeft,d.Side=f.EdgeSide.esRight,n=b,b=n.PrevInAEL==d?d.PrevInAEL:n.PrevInAEL):(q=this.AddOutPt(d,e),b.OutIdx=d.OutIdx,b.Side=f.EdgeSide.esRight,d.Side=f.EdgeSide.esLeft,n=d,b=n.PrevInAEL==b?b.PrevInAEL:n.PrevInAEL);null!==b&&0<=b.OutIdx&&f.Clipper.TopX(b,e.Y)==f.Clipper.TopX(n,e.Y)&&f.ClipperBase.SlopesEqual(n, -b,this.m_UseFullRange)&&0!==n.WindDelta&&0!==b.WindDelta&&(e=this.AddOutPt(b,e),this.AddJoin(q,e,n.Top));return q};f.Clipper.prototype.CreateOutRec=function(){var b=new f.OutRec;b.Idx=-1;b.IsHole=!1;b.IsOpen=!1;b.FirstLeft=null;b.Pts=null;b.BottomPt=null;b.PolyNode=null;this.m_PolyOuts.push(b);b.Idx=this.m_PolyOuts.length-1;return b};f.Clipper.prototype.AddOutPt=function(b,d){var e=b.Side==f.EdgeSide.esLeft;if(0>b.OutIdx){var q=this.CreateOutRec();q.IsOpen=0===b.WindDelta;var n=new f.OutPt;q.Pts= -n;n.Idx=q.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=n;n.Prev=n;q.IsOpen||this.SetHoleState(b,q);b.OutIdx=q.Idx}else{var q=this.m_PolyOuts[b.OutIdx],k=q.Pts;if(e&&f.IntPoint.op_Equality(d,k.Pt))return k;if(!e&&f.IntPoint.op_Equality(d,k.Prev.Pt))return k.Prev;n=new f.OutPt;n.Idx=q.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=k;n.Prev=k.Prev;n.Prev.Next=n;k.Prev=n;e&&(q.Pts=n)}return n};f.Clipper.prototype.SwapPoints=function(b,d){var e=new f.IntPoint(b.Value);b.Value.X=d.Value.X; +this.AppendPolygon(b,d):this.AppendPolygon(d,b)};f.Clipper.prototype.AddLocalMinPoly=function(b,d,e){var r,n;f.ClipperBase.IsHorizontal(d)||b.Dx>d.Dx?(r=this.AddOutPt(b,e),d.OutIdx=b.OutIdx,b.Side=f.EdgeSide.esLeft,d.Side=f.EdgeSide.esRight,n=b,b=n.PrevInAEL==d?d.PrevInAEL:n.PrevInAEL):(r=this.AddOutPt(d,e),b.OutIdx=d.OutIdx,b.Side=f.EdgeSide.esRight,d.Side=f.EdgeSide.esLeft,n=d,b=n.PrevInAEL==b?b.PrevInAEL:n.PrevInAEL);null!==b&&0<=b.OutIdx&&f.Clipper.TopX(b,e.Y)==f.Clipper.TopX(n,e.Y)&&f.ClipperBase.SlopesEqual(n, +b,this.m_UseFullRange)&&0!==n.WindDelta&&0!==b.WindDelta&&(e=this.AddOutPt(b,e),this.AddJoin(r,e,n.Top));return r};f.Clipper.prototype.CreateOutRec=function(){var b=new f.OutRec;b.Idx=-1;b.IsHole=!1;b.IsOpen=!1;b.FirstLeft=null;b.Pts=null;b.BottomPt=null;b.PolyNode=null;this.m_PolyOuts.push(b);b.Idx=this.m_PolyOuts.length-1;return b};f.Clipper.prototype.AddOutPt=function(b,d){var e=b.Side==f.EdgeSide.esLeft;if(0>b.OutIdx){var r=this.CreateOutRec();r.IsOpen=0===b.WindDelta;var n=new f.OutPt;r.Pts= +n;n.Idx=r.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=n;n.Prev=n;r.IsOpen||this.SetHoleState(b,r);b.OutIdx=r.Idx}else{var r=this.m_PolyOuts[b.OutIdx],k=r.Pts;if(e&&f.IntPoint.op_Equality(d,k.Pt))return k;if(!e&&f.IntPoint.op_Equality(d,k.Prev.Pt))return k.Prev;n=new f.OutPt;n.Idx=r.Idx;n.Pt.X=d.X;n.Pt.Y=d.Y;f.use_xyz&&(n.Pt.Z=d.Z);n.Next=k;n.Prev=k.Prev;n.Prev.Next=n;k.Prev=n;e&&(r.Pts=n)}return n};f.Clipper.prototype.SwapPoints=function(b,d){var e=new f.IntPoint(b.Value);b.Value.X=d.Value.X; b.Value.Y=d.Value.Y;f.use_xyz&&(b.Value.Z=d.Value.Z);d.Value.X=e.X;d.Value.Y=e.Y;f.use_xyz&&(d.Value.Z=e.Z)};f.Clipper.prototype.HorzSegmentsOverlap=function(b,d,e,f){var n;b>d&&(n=b,b=d,d=n);e>f&&(n=e,e=f,f=n);return b=k&&q>=e||n>=k&&n>= +(d.X-b.X)/(d.Y-b.Y)};f.Clipper.prototype.FirstIsBottomPt=function(b,d){for(var e=b.Prev;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Prev;for(var r=Math.abs(this.GetDx(b.Pt,e.Pt)),e=b.Next;f.IntPoint.op_Equality(e.Pt,b.Pt)&&e!=b;)e=e.Next;for(var n=Math.abs(this.GetDx(b.Pt,e.Pt)),e=d.Prev;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Prev;for(var k=Math.abs(this.GetDx(d.Pt,e.Pt)),e=d.Next;f.IntPoint.op_Equality(e.Pt,d.Pt)&&e!=d;)e=e.Next;e=Math.abs(this.GetDx(d.Pt,e.Pt));return r>=k&&r>=e||n>=k&&n>= e};f.Clipper.prototype.GetBottomPt=function(b){for(var d=null,e=b.Next;e!=b;)e.Pt.Y>b.Pt.Y?(b=e,d=null):e.Pt.Y==b.Pt.Y&&e.Pt.X<=b.Pt.X&&(e.Pt.Xf.Pt.Y?b:e.Pt.Yf.Pt.X?d:e.Next==e?d:f.Next==f?b:this.FirstIsBottomPt(e,f)?b:d};f.Clipper.prototype.Param1RightOfParam2=function(b,d){do if(b=b.FirstLeft,b==d)return!0;while(null!==b);return!1};f.Clipper.prototype.GetOutRec=function(b){for(b=this.m_PolyOuts[b];b!=this.m_PolyOuts[b.Idx];)b=this.m_PolyOuts[b.Idx];return b};f.Clipper.prototype.AppendPolygon=function(b,d){var e=this.m_PolyOuts[b.OutIdx],q=this.m_PolyOuts[d.OutIdx],n;n=this.Param1RightOfParam2(e, -q)?q:this.Param1RightOfParam2(q,e)?e:this.GetLowermostRec(e,q);var k=e.Pts,v=k.Prev,C=q.Pts,p=C.Prev;b.Side==f.EdgeSide.esLeft?(d.Side==f.EdgeSide.esLeft?(this.ReversePolyPtLinks(C),C.Next=k,k.Prev=C,v.Next=p,p.Prev=v,e.Pts=p):(p.Next=k,k.Prev=p,C.Prev=v,v.Next=C,e.Pts=C),k=f.EdgeSide.esLeft):(d.Side==f.EdgeSide.esRight?(this.ReversePolyPtLinks(C),v.Next=p,p.Prev=v,C.Next=k,k.Prev=C):(v.Next=C,C.Prev=v,k.Prev=p,p.Next=k),k=f.EdgeSide.esRight);e.BottomPt=null;n==q&&(q.FirstLeft!=e&&(e.FirstLeft=q.FirstLeft), -e.IsHole=q.IsHole);q.Pts=null;q.BottomPt=null;q.FirstLeft=e;n=b.OutIdx;v=d.OutIdx;b.OutIdx=-1;d.OutIdx=-1;for(C=this.m_ActiveEdges;null!==C;){if(C.OutIdx==v){C.OutIdx=n;C.Side=k;break}C=C.NextInAEL}q.Idx=e.Idx};f.Clipper.prototype.ReversePolyPtLinks=function(b){if(null!==b){var d,e;d=b;do e=d.Next,d.Next=d.Prev,d=d.Prev=e;while(d!=b)}};f.Clipper.SwapSides=function(b,d){var e=b.Side;b.Side=d.Side;d.Side=e};f.Clipper.SwapPolyIndexes=function(b,d){var e=b.OutIdx;b.OutIdx=d.OutIdx;d.OutIdx=e};f.Clipper.prototype.IntersectEdges= -function(b,d,e){var q=0<=b.OutIdx,n=0<=d.OutIdx;f.use_xyz&&this.SetZ(e,b,d);if(!f.use_lines||0!==b.WindDelta&&0!==d.WindDelta){if(b.PolyTyp==d.PolyTyp)if(this.IsEvenOddFillType(b)){var k=b.WindCnt;b.WindCnt=d.WindCnt;d.WindCnt=k}else b.WindCnt=0===b.WindCnt+d.WindDelta?-b.WindCnt:b.WindCnt+d.WindDelta,d.WindCnt=0===d.WindCnt-b.WindDelta?-d.WindCnt:d.WindCnt-b.WindDelta;else this.IsEvenOddFillType(d)?b.WindCnt2=0===b.WindCnt2?1:0:b.WindCnt2+=d.WindDelta,this.IsEvenOddFillType(b)?d.WindCnt2=0===d.WindCnt2? -1:0:d.WindCnt2-=b.WindDelta;var v,C,p;b.PolyTyp==f.PolyType.ptSubject?(v=this.m_SubjFillType,p=this.m_ClipFillType):(v=this.m_ClipFillType,p=this.m_SubjFillType);d.PolyTyp==f.PolyType.ptSubject?(C=this.m_SubjFillType,k=this.m_ClipFillType):(C=this.m_ClipFillType,k=this.m_SubjFillType);switch(v){case f.PolyFillType.pftPositive:v=b.WindCnt;break;case f.PolyFillType.pftNegative:v=-b.WindCnt;break;default:v=Math.abs(b.WindCnt)}switch(C){case f.PolyFillType.pftPositive:C=d.WindCnt;break;case f.PolyFillType.pftNegative:C= --d.WindCnt;break;default:C=Math.abs(d.WindCnt)}if(q&&n)0!=v&&1!=v||0!=C&&1!=C||b.PolyTyp!=d.PolyTyp&&this.m_ClipType!=f.ClipType.ctXor?this.AddLocalMaxPoly(b,d,e):(this.AddOutPt(b,e),this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d));else if(q){if(0===C||1==C)this.AddOutPt(b,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(n){if(0===v||1==v)this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(!(0!=v&&1!=v||0!=C&&1!=C)){switch(p){case f.PolyFillType.pftPositive:q= -b.WindCnt2;break;case f.PolyFillType.pftNegative:q=-b.WindCnt2;break;default:q=Math.abs(b.WindCnt2)}switch(k){case f.PolyFillType.pftPositive:n=d.WindCnt2;break;case f.PolyFillType.pftNegative:n=-d.WindCnt2;break;default:n=Math.abs(d.WindCnt2)}if(b.PolyTyp!=d.PolyTyp)this.AddLocalMinPoly(b,d,e);else if(1==v&&1==C)switch(this.m_ClipType){case f.ClipType.ctIntersection:0=q&&0>=n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctDifference:(b.PolyTyp== -f.PolyType.ptClip&&0=q&&0>=n)&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctXor:this.AddLocalMinPoly(b,d,e)}else f.Clipper.SwapSides(b,d)}}else if(0!=b.WindDelta||0!=d.WindDelta)b.PolyTyp==d.PolyTyp&&b.WindDelta!=d.WindDelta&&this.m_ClipType==f.ClipType.ctUnion?0===b.WindDelta?n&&(this.AddOutPt(b,e),q&&(b.OutIdx=-1)):q&&(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):b.PolyTyp!=d.PolyTyp&&(0!==b.WindDelta||1!=Math.abs(d.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&& -0!==d.WindCnt2?0!==d.WindDelta||1!=Math.abs(b.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&0!==b.WindCnt2||(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):(this.AddOutPt(b,e),q&&(b.OutIdx=-1)))};f.Clipper.prototype.DeleteFromAEL=function(b){var d=b.PrevInAEL,e=b.NextInAEL;if(null!==d||null!==e||b==this.m_ActiveEdges)null!==d?d.NextInAEL=e:this.m_ActiveEdges=e,null!==e&&(e.PrevInAEL=d),b.NextInAEL=null,b.PrevInAEL=null};f.Clipper.prototype.DeleteFromSEL=function(b){var d=b.PrevInSEL,e=b.NextInSEL;if(null!== +f=d.BottomPt;return e.Pt.Y>f.Pt.Y?b:e.Pt.Yf.Pt.X?d:e.Next==e?d:f.Next==f?b:this.FirstIsBottomPt(e,f)?b:d};f.Clipper.prototype.Param1RightOfParam2=function(b,d){do if(b=b.FirstLeft,b==d)return!0;while(null!==b);return!1};f.Clipper.prototype.GetOutRec=function(b){for(b=this.m_PolyOuts[b];b!=this.m_PolyOuts[b.Idx];)b=this.m_PolyOuts[b.Idx];return b};f.Clipper.prototype.AppendPolygon=function(b,d){var e=this.m_PolyOuts[b.OutIdx],r=this.m_PolyOuts[d.OutIdx],n;n=this.Param1RightOfParam2(e, +r)?r:this.Param1RightOfParam2(r,e)?e:this.GetLowermostRec(e,r);var k=e.Pts,u=k.Prev,C=r.Pts,p=C.Prev;b.Side==f.EdgeSide.esLeft?(d.Side==f.EdgeSide.esLeft?(this.ReversePolyPtLinks(C),C.Next=k,k.Prev=C,u.Next=p,p.Prev=u,e.Pts=p):(p.Next=k,k.Prev=p,C.Prev=u,u.Next=C,e.Pts=C),k=f.EdgeSide.esLeft):(d.Side==f.EdgeSide.esRight?(this.ReversePolyPtLinks(C),u.Next=p,p.Prev=u,C.Next=k,k.Prev=C):(u.Next=C,C.Prev=u,k.Prev=p,p.Next=k),k=f.EdgeSide.esRight);e.BottomPt=null;n==r&&(r.FirstLeft!=e&&(e.FirstLeft=r.FirstLeft), +e.IsHole=r.IsHole);r.Pts=null;r.BottomPt=null;r.FirstLeft=e;n=b.OutIdx;u=d.OutIdx;b.OutIdx=-1;d.OutIdx=-1;for(C=this.m_ActiveEdges;null!==C;){if(C.OutIdx==u){C.OutIdx=n;C.Side=k;break}C=C.NextInAEL}r.Idx=e.Idx};f.Clipper.prototype.ReversePolyPtLinks=function(b){if(null!==b){var d,e;d=b;do e=d.Next,d.Next=d.Prev,d=d.Prev=e;while(d!=b)}};f.Clipper.SwapSides=function(b,d){var e=b.Side;b.Side=d.Side;d.Side=e};f.Clipper.SwapPolyIndexes=function(b,d){var e=b.OutIdx;b.OutIdx=d.OutIdx;d.OutIdx=e};f.Clipper.prototype.IntersectEdges= +function(b,d,e){var r=0<=b.OutIdx,n=0<=d.OutIdx;f.use_xyz&&this.SetZ(e,b,d);if(!f.use_lines||0!==b.WindDelta&&0!==d.WindDelta){if(b.PolyTyp==d.PolyTyp)if(this.IsEvenOddFillType(b)){var k=b.WindCnt;b.WindCnt=d.WindCnt;d.WindCnt=k}else b.WindCnt=0===b.WindCnt+d.WindDelta?-b.WindCnt:b.WindCnt+d.WindDelta,d.WindCnt=0===d.WindCnt-b.WindDelta?-d.WindCnt:d.WindCnt-b.WindDelta;else this.IsEvenOddFillType(d)?b.WindCnt2=0===b.WindCnt2?1:0:b.WindCnt2+=d.WindDelta,this.IsEvenOddFillType(b)?d.WindCnt2=0===d.WindCnt2? +1:0:d.WindCnt2-=b.WindDelta;var u,C,p;b.PolyTyp==f.PolyType.ptSubject?(u=this.m_SubjFillType,p=this.m_ClipFillType):(u=this.m_ClipFillType,p=this.m_SubjFillType);d.PolyTyp==f.PolyType.ptSubject?(C=this.m_SubjFillType,k=this.m_ClipFillType):(C=this.m_ClipFillType,k=this.m_SubjFillType);switch(u){case f.PolyFillType.pftPositive:u=b.WindCnt;break;case f.PolyFillType.pftNegative:u=-b.WindCnt;break;default:u=Math.abs(b.WindCnt)}switch(C){case f.PolyFillType.pftPositive:C=d.WindCnt;break;case f.PolyFillType.pftNegative:C= +-d.WindCnt;break;default:C=Math.abs(d.WindCnt)}if(r&&n)0!=u&&1!=u||0!=C&&1!=C||b.PolyTyp!=d.PolyTyp&&this.m_ClipType!=f.ClipType.ctXor?this.AddLocalMaxPoly(b,d,e):(this.AddOutPt(b,e),this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d));else if(r){if(0===C||1==C)this.AddOutPt(b,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(n){if(0===u||1==u)this.AddOutPt(d,e),f.Clipper.SwapSides(b,d),f.Clipper.SwapPolyIndexes(b,d)}else if(!(0!=u&&1!=u||0!=C&&1!=C)){switch(p){case f.PolyFillType.pftPositive:r= +b.WindCnt2;break;case f.PolyFillType.pftNegative:r=-b.WindCnt2;break;default:r=Math.abs(b.WindCnt2)}switch(k){case f.PolyFillType.pftPositive:n=d.WindCnt2;break;case f.PolyFillType.pftNegative:n=-d.WindCnt2;break;default:n=Math.abs(d.WindCnt2)}if(b.PolyTyp!=d.PolyTyp)this.AddLocalMinPoly(b,d,e);else if(1==u&&1==C)switch(this.m_ClipType){case f.ClipType.ctIntersection:0=r&&0>=n&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctDifference:(b.PolyTyp== +f.PolyType.ptClip&&0=r&&0>=n)&&this.AddLocalMinPoly(b,d,e);break;case f.ClipType.ctXor:this.AddLocalMinPoly(b,d,e)}else f.Clipper.SwapSides(b,d)}}else if(0!=b.WindDelta||0!=d.WindDelta)b.PolyTyp==d.PolyTyp&&b.WindDelta!=d.WindDelta&&this.m_ClipType==f.ClipType.ctUnion?0===b.WindDelta?n&&(this.AddOutPt(b,e),r&&(b.OutIdx=-1)):r&&(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):b.PolyTyp!=d.PolyTyp&&(0!==b.WindDelta||1!=Math.abs(d.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&& +0!==d.WindCnt2?0!==d.WindDelta||1!=Math.abs(b.WindCnt)||this.m_ClipType==f.ClipType.ctUnion&&0!==b.WindCnt2||(this.AddOutPt(d,e),n&&(d.OutIdx=-1)):(this.AddOutPt(b,e),r&&(b.OutIdx=-1)))};f.Clipper.prototype.DeleteFromAEL=function(b){var d=b.PrevInAEL,e=b.NextInAEL;if(null!==d||null!==e||b==this.m_ActiveEdges)null!==d?d.NextInAEL=e:this.m_ActiveEdges=e,null!==e&&(e.PrevInAEL=d),b.NextInAEL=null,b.PrevInAEL=null};f.Clipper.prototype.DeleteFromSEL=function(b){var d=b.PrevInSEL,e=b.NextInSEL;if(null!== d||null!==e||b==this.m_SortedEdges)null!==d?d.NextInSEL=e:this.m_SortedEdges=e,null!==e&&(e.PrevInSEL=d),b.NextInSEL=null,b.PrevInSEL=null};f.Clipper.prototype.UpdateEdgeIntoAEL=function(b){null===b.NextInLML&&f.Error("UpdateEdgeIntoAEL: invalid call");var d=b.PrevInAEL,e=b.NextInAEL;b.NextInLML.OutIdx=b.OutIdx;null!==d?d.NextInAEL=b.NextInLML:this.m_ActiveEdges=b.NextInLML;null!==e&&(e.PrevInAEL=b.NextInLML);b.NextInLML.Side=b.Side;b.NextInLML.WindDelta=b.WindDelta;b.NextInLML.WindCnt=b.WindCnt; b.NextInLML.WindCnt2=b.WindCnt2;b=b.NextInLML;b.Curr.X=b.Bot.X;b.Curr.Y=b.Bot.Y;f.use_xyz&&(b.Curr.Z=b.Bot.Z);b.PrevInAEL=d;b.NextInAEL=e;f.ClipperBase.IsHorizontal(b)||this.InsertScanbeam(b.Top.Y);return b};f.Clipper.prototype.ProcessHorizontals=function(b){for(var d=this.m_SortedEdges;null!==d;)this.DeleteFromSEL(d),this.ProcessHorizontal(d,b),d=this.m_SortedEdges};f.Clipper.prototype.GetHorzDirection=function(b,d){b.Bot.X=n){if(F==C&&p){if(0<=b.OutIdx){q=this.AddOutPt(b,b.Top);for(e=this.m_SortedEdges;null!==e;)0<=e.OutIdx&&this.HorzSegmentsOverlap(b.Bot.X,b.Top.X,e.Bot.X,e.Top.X)&&(n=this.AddOutPt(e,e.Bot),this.AddJoin(n,q,e.Top)),e=e.NextInSEL;this.AddGhostJoin(q,b.Bot);this.AddLocalMaxPoly(b,C,b.Top)}this.DeleteFromAEL(b);this.DeleteFromAEL(C);return}if(q==f.Direction.dLeftToRight){var E=new f.IntPoint(F.Curr.X,b.Curr.Y);this.IntersectEdges(b, -F,E)}else E=new f.IntPoint(F.Curr.X,b.Curr.Y),this.IntersectEdges(F,b,E);this.SwapPositionsInAEL(b,F)}else if(q==f.Direction.dLeftToRight&&F.Curr.X>=k||q==f.Direction.dRightToLeft&&F.Curr.X<=n)break;F=e}if(null!==b.NextInLML&&f.ClipperBase.IsHorizontal(b.NextInLML))b=this.UpdateEdgeIntoAEL(b),0<=b.OutIdx&&this.AddOutPt(b,b.Bot),e={Dir:q,Left:n,Right:k},this.GetHorzDirection(b,e),q=e.Dir,n=e.Left,k=e.Right;else break}null!==b.NextInLML?0<=b.OutIdx?(q=this.AddOutPt(b,b.Top),d&&this.AddGhostJoin(q,b.Bot), -b=this.UpdateEdgeIntoAEL(b),0!==b.WindDelta&&(C=b.PrevInAEL,e=b.NextInAEL,null!==C&&C.Curr.X==b.Bot.X&&C.Curr.Y==b.Bot.Y&&0!==C.WindDelta&&0<=C.OutIdx&&C.Curr.Y>C.Top.Y&&f.ClipperBase.SlopesEqual(b,C,this.m_UseFullRange)?(n=this.AddOutPt(C,b.Bot),this.AddJoin(q,n,b.Top)):null!==e&&e.Curr.X==b.Bot.X&&e.Curr.Y==b.Bot.Y&&0!==e.WindDelta&&0<=e.OutIdx&&e.Curr.Y>e.Top.Y&&f.ClipperBase.SlopesEqual(b,e,this.m_UseFullRange)&&(n=this.AddOutPt(e,b.Bot),this.AddJoin(q,n,b.Top)))):this.UpdateEdgeIntoAEL(b):(0<= +(d.Left=b.Top.X,d.Right=b.Bot.X,d.Dir=f.Direction.dRightToLeft)};f.Clipper.prototype.ProcessHorizontal=function(b,d){var e={Dir:null,Left:null,Right:null};this.GetHorzDirection(b,e);for(var r=e.Dir,n=e.Left,k=e.Right,u=b,C=null;null!==u.NextInLML&&f.ClipperBase.IsHorizontal(u.NextInLML);)u=u.NextInLML;for(null===u.NextInLML&&(C=this.GetMaximaPair(u));;){for(var p=b==u,E=this.GetNextInAEL(b,r);null!==E&&!(E.Curr.X==b.Top.X&&null!==b.NextInLML&&E.Dx=n){if(E==C&&p){if(0<=b.OutIdx){r=this.AddOutPt(b,b.Top);for(e=this.m_SortedEdges;null!==e;)0<=e.OutIdx&&this.HorzSegmentsOverlap(b.Bot.X,b.Top.X,e.Bot.X,e.Top.X)&&(n=this.AddOutPt(e,e.Bot),this.AddJoin(n,r,e.Top)),e=e.NextInSEL;this.AddGhostJoin(r,b.Bot);this.AddLocalMaxPoly(b,C,b.Top)}this.DeleteFromAEL(b);this.DeleteFromAEL(C);return}if(r==f.Direction.dLeftToRight){var F=new f.IntPoint(E.Curr.X,b.Curr.Y);this.IntersectEdges(b, +E,F)}else F=new f.IntPoint(E.Curr.X,b.Curr.Y),this.IntersectEdges(E,b,F);this.SwapPositionsInAEL(b,E)}else if(r==f.Direction.dLeftToRight&&E.Curr.X>=k||r==f.Direction.dRightToLeft&&E.Curr.X<=n)break;E=e}if(null!==b.NextInLML&&f.ClipperBase.IsHorizontal(b.NextInLML))b=this.UpdateEdgeIntoAEL(b),0<=b.OutIdx&&this.AddOutPt(b,b.Bot),e={Dir:r,Left:n,Right:k},this.GetHorzDirection(b,e),r=e.Dir,n=e.Left,k=e.Right;else break}null!==b.NextInLML?0<=b.OutIdx?(r=this.AddOutPt(b,b.Top),d&&this.AddGhostJoin(r,b.Bot), +b=this.UpdateEdgeIntoAEL(b),0!==b.WindDelta&&(C=b.PrevInAEL,e=b.NextInAEL,null!==C&&C.Curr.X==b.Bot.X&&C.Curr.Y==b.Bot.Y&&0!==C.WindDelta&&0<=C.OutIdx&&C.Curr.Y>C.Top.Y&&f.ClipperBase.SlopesEqual(b,C,this.m_UseFullRange)?(n=this.AddOutPt(C,b.Bot),this.AddJoin(r,n,b.Top)):null!==e&&e.Curr.X==b.Bot.X&&e.Curr.Y==b.Bot.Y&&0!==e.WindDelta&&0<=e.OutIdx&&e.Curr.Y>e.Top.Y&&f.ClipperBase.SlopesEqual(b,e,this.m_UseFullRange)&&(n=this.AddOutPt(e,b.Bot),this.AddJoin(r,n,b.Top)))):this.UpdateEdgeIntoAEL(b):(0<= b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b))};f.Clipper.prototype.GetNextInAEL=function(b,d){return d==f.Direction.dLeftToRight?b.NextInAEL:b.PrevInAEL};f.Clipper.prototype.IsMinima=function(b){return null!==b&&b.Prev.NextInLML!=b&&b.Next.NextInLML!=b};f.Clipper.prototype.IsMaxima=function(b,d){return null!==b&&b.Top.Y==d&&null===b.NextInLML};f.Clipper.prototype.IsIntermediate=function(b,d){return b.Top.Y==d&&null!==b.NextInLML};f.Clipper.prototype.GetMaximaPair=function(b){var d=null; f.IntPoint.op_Equality(b.Next.Top,b.Top)&&null===b.Next.NextInLML?d=b.Next:f.IntPoint.op_Equality(b.Prev.Top,b.Top)&&null===b.Prev.NextInLML&&(d=b.Prev);return null===d||-2!=d.OutIdx&&(d.NextInAEL!=d.PrevInAEL||f.ClipperBase.IsHorizontal(d))?d:null};f.Clipper.prototype.ProcessIntersections=function(b){if(null==this.m_ActiveEdges)return!0;try{this.BuildIntersectList(b);if(0==this.m_IntersectList.length)return!0;if(1==this.m_IntersectList.length||this.FixupIntersectionOrder())this.ProcessIntersectList(); -else return!1}catch(d){this.m_SortedEdges=null,this.m_IntersectList.length=0,f.Error("ProcessIntersections error")}this.m_SortedEdges=null;return!0};f.Clipper.prototype.BuildIntersectList=function(b){if(null!==this.m_ActiveEdges){var d=this.m_ActiveEdges;for(this.m_SortedEdges=d;null!==d;)d.PrevInSEL=d.PrevInAEL,d.NextInSEL=d.NextInAEL,d.Curr.X=f.Clipper.TopX(d,b),d=d.NextInAEL;for(var e=!0;e&&null!==this.m_SortedEdges;){e=!1;for(d=this.m_SortedEdges;null!==d.NextInSEL;){b=d.NextInSEL;var q=new f.IntPoint; -d.Curr.X>b.Curr.X?(this.IntersectPoint(d,b,q),e=new f.IntersectNode,e.Edge1=d,e.Edge2=b,e.Pt.X=q.X,e.Pt.Y=q.Y,f.use_xyz&&(e.Pt.Z=q.Z),this.m_IntersectList.push(e),this.SwapPositionsInSEL(d,b),e=!0):d=b}if(null!==d.PrevInSEL)d.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}};f.Clipper.prototype.EdgesAdjacent=function(b){return b.Edge1.NextInSEL==b.Edge2||b.Edge1.PrevInSEL==b.Edge2};f.Clipper.IntersectNodeSort=function(b,d){return d.Pt.Y-b.Pt.Y};f.Clipper.prototype.FixupIntersectionOrder= +else return!1}catch(d){this.m_SortedEdges=null,this.m_IntersectList.length=0,f.Error("ProcessIntersections error")}this.m_SortedEdges=null;return!0};f.Clipper.prototype.BuildIntersectList=function(b){if(null!==this.m_ActiveEdges){var d=this.m_ActiveEdges;for(this.m_SortedEdges=d;null!==d;)d.PrevInSEL=d.PrevInAEL,d.NextInSEL=d.NextInAEL,d.Curr.X=f.Clipper.TopX(d,b),d=d.NextInAEL;for(var e=!0;e&&null!==this.m_SortedEdges;){e=!1;for(d=this.m_SortedEdges;null!==d.NextInSEL;){b=d.NextInSEL;var r=new f.IntPoint; +d.Curr.X>b.Curr.X?(this.IntersectPoint(d,b,r),e=new f.IntersectNode,e.Edge1=d,e.Edge2=b,e.Pt.X=r.X,e.Pt.Y=r.Y,f.use_xyz&&(e.Pt.Z=r.Z),this.m_IntersectList.push(e),this.SwapPositionsInSEL(d,b),e=!0):d=b}if(null!==d.PrevInSEL)d.PrevInSEL.NextInSEL=null;else break}this.m_SortedEdges=null}};f.Clipper.prototype.EdgesAdjacent=function(b){return b.Edge1.NextInSEL==b.Edge2||b.Edge1.PrevInSEL==b.Edge2};f.Clipper.IntersectNodeSort=function(b,d){return d.Pt.Y-b.Pt.Y};f.Clipper.prototype.FixupIntersectionOrder= function(){this.m_IntersectList.sort(this.m_IntersectNodeComparer);this.CopyAELToSEL();for(var b=this.m_IntersectList.length,d=0;db?Math.ceil(b-.5):Math.round(b)};Jb=function(b){return 0>b?Math.ceil(b-.5):Math.floor(b+.5)};Qa=function(b){return 0>b?-Math.round(Math.abs(b)):Math.round(b)};ab=function(b){if(0>b)return b-=.5,-2147483648>b?Math.ceil(b):b|0;b+=.5;return 2147483647d.Top.Y)return e.Y=b.Top.Y,e.X=f.Clipper.TopX(d,b.Top.Y),e.Xb.Curr.Y&&(e.Y=b.Curr.Y,e.X=Math.abs(b.Dx)>Math.abs(d.Dx)?f.Clipper.TopX(d,e.Y):f.Clipper.TopX(b,e.Y))}};f.Clipper.prototype.ProcessEdgesAtTopOfScanbeam= -function(b){for(var d=this.m_ActiveEdges;null!==d;){var e=this.IsMaxima(d,b);e&&(e=this.GetMaximaPair(d),e=null===e||!f.ClipperBase.IsHorizontal(e));if(e){var q=d.PrevInAEL;this.DoMaxima(d);d=null===q?this.m_ActiveEdges:q.NextInAEL}else{this.IsIntermediate(d,b)&&f.ClipperBase.IsHorizontal(d.NextInLML)?(d=this.UpdateEdgeIntoAEL(d),0<=d.OutIdx&&this.AddOutPt(d,d.Bot),this.AddEdgeToSEL(d)):(d.Curr.X=f.Clipper.TopX(d,b),d.Curr.Y=b);if(this.StrictlySimple&&(q=d.PrevInAEL,0<=d.OutIdx&&0!==d.WindDelta&& -null!==q&&0<=q.OutIdx&&q.Curr.X==d.Curr.X&&0!==q.WindDelta)){var n=new f.IntPoint(d.Curr);f.use_xyz&&this.SetZ(n,q,d);e=this.AddOutPt(q,n);q=this.AddOutPt(d,n);this.AddJoin(e,q,n)}d=d.NextInAEL}}this.ProcessHorizontals(!0);for(d=this.m_ActiveEdges;null!==d;)this.IsIntermediate(d,b)&&(e=null,0<=d.OutIdx&&(e=this.AddOutPt(d,d.Top)),d=this.UpdateEdgeIntoAEL(d),q=d.PrevInAEL,n=d.NextInAEL,null!==q&&q.Curr.X==d.Bot.X&&q.Curr.Y==d.Bot.Y&&null!==e&&0<=q.OutIdx&&q.Curr.Y>q.Top.Y&&f.ClipperBase.SlopesEqual(d, -q,this.m_UseFullRange)&&0!==d.WindDelta&&0!==q.WindDelta?(q=this.AddOutPt(q,d.Bot),this.AddJoin(e,q,d.Top)):null!==n&&n.Curr.X==d.Bot.X&&n.Curr.Y==d.Bot.Y&&null!==e&&0<=n.OutIdx&&n.Curr.Y>n.Top.Y&&f.ClipperBase.SlopesEqual(d,n,this.m_UseFullRange)&&0!==d.WindDelta&&0!==n.WindDelta&&(q=this.AddOutPt(n,d.Bot),this.AddJoin(e,q,d.Top))),d=d.NextInAEL};f.Clipper.prototype.DoMaxima=function(b){var d=this.GetMaximaPair(b);if(null===d)0<=b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b);else{for(var e= +function(){for(var b=0,d=this.m_IntersectList.length;bb?Math.ceil(b-.5):Math.round(b)};Sb=function(b){return 0>b?Math.ceil(b-.5):Math.floor(b+.5)};Ta=function(b){return 0>b?-Math.round(Math.abs(b)):Math.round(b)};fb=function(b){if(0>b)return b-=.5,-2147483648>b?Math.ceil(b):b|0;b+=.5;return 2147483647d.Top.Y)return e.Y=b.Top.Y,e.X=f.Clipper.TopX(d,b.Top.Y),e.Xb.Curr.Y&&(e.Y=b.Curr.Y,e.X=Math.abs(b.Dx)>Math.abs(d.Dx)?f.Clipper.TopX(d,e.Y):f.Clipper.TopX(b,e.Y))}};f.Clipper.prototype.ProcessEdgesAtTopOfScanbeam= +function(b){for(var d=this.m_ActiveEdges;null!==d;){var e=this.IsMaxima(d,b);e&&(e=this.GetMaximaPair(d),e=null===e||!f.ClipperBase.IsHorizontal(e));if(e){var r=d.PrevInAEL;this.DoMaxima(d);d=null===r?this.m_ActiveEdges:r.NextInAEL}else{this.IsIntermediate(d,b)&&f.ClipperBase.IsHorizontal(d.NextInLML)?(d=this.UpdateEdgeIntoAEL(d),0<=d.OutIdx&&this.AddOutPt(d,d.Bot),this.AddEdgeToSEL(d)):(d.Curr.X=f.Clipper.TopX(d,b),d.Curr.Y=b);if(this.StrictlySimple&&(r=d.PrevInAEL,0<=d.OutIdx&&0!==d.WindDelta&& +null!==r&&0<=r.OutIdx&&r.Curr.X==d.Curr.X&&0!==r.WindDelta)){var n=new f.IntPoint(d.Curr);f.use_xyz&&this.SetZ(n,r,d);e=this.AddOutPt(r,n);r=this.AddOutPt(d,n);this.AddJoin(e,r,n)}d=d.NextInAEL}}this.ProcessHorizontals(!0);for(d=this.m_ActiveEdges;null!==d;)this.IsIntermediate(d,b)&&(e=null,0<=d.OutIdx&&(e=this.AddOutPt(d,d.Top)),d=this.UpdateEdgeIntoAEL(d),r=d.PrevInAEL,n=d.NextInAEL,null!==r&&r.Curr.X==d.Bot.X&&r.Curr.Y==d.Bot.Y&&null!==e&&0<=r.OutIdx&&r.Curr.Y>r.Top.Y&&f.ClipperBase.SlopesEqual(d, +r,this.m_UseFullRange)&&0!==d.WindDelta&&0!==r.WindDelta?(r=this.AddOutPt(r,d.Bot),this.AddJoin(e,r,d.Top)):null!==n&&n.Curr.X==d.Bot.X&&n.Curr.Y==d.Bot.Y&&null!==e&&0<=n.OutIdx&&n.Curr.Y>n.Top.Y&&f.ClipperBase.SlopesEqual(d,n,this.m_UseFullRange)&&0!==d.WindDelta&&0!==n.WindDelta&&(r=this.AddOutPt(n,d.Bot),this.AddJoin(e,r,d.Top))),d=d.NextInAEL};f.Clipper.prototype.DoMaxima=function(b){var d=this.GetMaximaPair(b);if(null===d)0<=b.OutIdx&&this.AddOutPt(b,b.Top),this.DeleteFromAEL(b);else{for(var e= b.NextInAEL;null!==e&&e!=d;)this.IntersectEdges(b,e,b.Top),this.SwapPositionsInAEL(b,e),e=b.NextInAEL;-1==b.OutIdx&&-1==d.OutIdx?(this.DeleteFromAEL(b),this.DeleteFromAEL(d)):0<=b.OutIdx&&0<=d.OutIdx?(0<=b.OutIdx&&this.AddLocalMaxPoly(b,d,b.Top),this.DeleteFromAEL(b),this.DeleteFromAEL(d)):f.use_lines&&0===b.WindDelta?(0<=b.OutIdx&&(this.AddOutPt(b,b.Top),b.OutIdx=-1),this.DeleteFromAEL(b),0<=d.OutIdx&&(this.AddOutPt(d,b.Top),d.OutIdx=-1),this.DeleteFromAEL(d)):f.Error("DoMaxima error")}};f.Clipper.ReversePaths= -function(b){for(var d=0,e=b.length;dn)){for(var k=Array(n),v=0;vn||!q.IsOpen&&3>n)){this.FixHoleLinkage(q);var k=new f.PolyNode;b.m_AllPolys.push(k);q.PolyNode=k;k.m_polygon.length=n;for(var q=q.Pts.Prev,v=0;vn)){for(var k=Array(n),u=0;un||!r.IsOpen&&3>n)){this.FixHoleLinkage(r);var k=new f.PolyNode;b.m_AllPolys.push(k);r.PolyNode=k;k.m_polygon.length=n;for(var r=r.Pts.Prev,u=0;ud.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;q=e.Pt.X>q.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;if(v==q)return!1;if(v==f.Direction.dLeftToRight){for(;b.Next.Pt.X<=n.X&&b.Next.Pt.X>=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k&&b.Pt.X!=n.X&&(b=b.Next);d=this.DupOutPt(b,!k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b, -!k))}else{for(;b.Next.Pt.X>=n.X&&b.Next.Pt.X<=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k||b.Pt.X==n.X||(b=b.Next);d=this.DupOutPt(b,k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,k))}if(q==f.Direction.dLeftToRight){for(;e.Next.Pt.X<=n.X&&e.Next.Pt.X>=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k&&e.Pt.X!=n.X&&(e=e.Next);q=this.DupOutPt(e,!k);f.IntPoint.op_Inequality(q.Pt,n)&&(e=q,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),q=this.DupOutPt(e,!k))}else{for(;e.Next.Pt.X>= -n.X&&e.Next.Pt.X<=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k||e.Pt.X==n.X||(e=e.Next);q=this.DupOutPt(e,k);f.IntPoint.op_Inequality(q.Pt,n)&&(e=q,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),q=this.DupOutPt(e,k))}v==f.Direction.dLeftToRight==k?(b.Prev=e,e.Next=b,d.Next=q,q.Prev=d):(b.Next=e,e.Prev=b,d.Prev=q,q.Next=d);return!0};f.Clipper.prototype.JoinPoints=function(b,d,e){var q=b.OutPt1,n;new f.OutPt;var k=b.OutPt2,v;new f.OutPt;if((v=b.OutPt1.Pt.Y==b.OffPt.Y)&&f.IntPoint.op_Equality(b.OffPt,b.OutPt1.Pt)&& -f.IntPoint.op_Equality(b.OffPt,b.OutPt2.Pt)){if(d!=e)return!1;for(n=b.OutPt1.Next;n!=q&&f.IntPoint.op_Equality(n.Pt,b.OffPt);)n=n.Next;n=n.Pt.Y>b.OffPt.Y;for(v=b.OutPt2.Next;v!=k&&f.IntPoint.op_Equality(v.Pt,b.OffPt);)v=v.Next;if(n==v.Pt.Y>b.OffPt.Y)return!1;n?(n=this.DupOutPt(q,!1),v=this.DupOutPt(k,!0),q.Prev=k,k.Next=q,n.Next=v,v.Prev=n):(n=this.DupOutPt(q,!0),v=this.DupOutPt(k,!1),q.Next=k,k.Prev=q,n.Prev=v,v.Next=n);b.OutPt1=q;b.OutPt2=n;return!0}if(v){for(n=q;q.Prev.Pt.Y==q.Pt.Y&&q.Prev!=n&& -q.Prev!=k;)q=q.Prev;for(;n.Next.Pt.Y==n.Pt.Y&&n.Next!=q&&n.Next!=k;)n=n.Next;if(n.Next==q||n.Next==k)return!1;for(v=k;k.Prev.Pt.Y==k.Pt.Y&&k.Prev!=v&&k.Prev!=n;)k=k.Prev;for(;v.Next.Pt.Y==v.Pt.Y&&v.Next!=k&&v.Next!=q;)v=v.Next;if(v.Next==k||v.Next==q)return!1;e={Left:null,Right:null};if(!this.GetOverlap(q.Pt.X,n.Pt.X,k.Pt.X,v.Pt.X,e))return!1;d=e.Left;var C=e.Right;e=new f.IntPoint;q.Pt.X>=d&&q.Pt.X<=C?(e.X=q.Pt.X,e.Y=q.Pt.Y,f.use_xyz&&(e.Z=q.Pt.Z),d=q.Pt.X>n.Pt.X):k.Pt.X>=d&&k.Pt.X<=C?(e.X=k.Pt.X, -e.Y=k.Pt.Y,f.use_xyz&&(e.Z=k.Pt.Z),d=k.Pt.X>v.Pt.X):n.Pt.X>=d&&n.Pt.X<=C?(e.X=n.Pt.X,e.Y=n.Pt.Y,f.use_xyz&&(e.Z=n.Pt.Z),d=n.Pt.X>q.Pt.X):(e.X=v.Pt.X,e.Y=v.Pt.Y,f.use_xyz&&(e.Z=v.Pt.Z),d=v.Pt.X>k.Pt.X);b.OutPt1=q;b.OutPt2=k;return this.JoinHorz(q,n,k,v,e,d)}for(n=q.Next;f.IntPoint.op_Equality(n.Pt,q.Pt)&&n!=q;)n=n.Next;if(C=n.Pt.Y>q.Pt.Y||!f.ClipperBase.SlopesEqual(q.Pt,n.Pt,b.OffPt,this.m_UseFullRange)){for(n=q.Prev;f.IntPoint.op_Equality(n.Pt,q.Pt)&&n!=q;)n=n.Prev;if(n.Pt.Y>q.Pt.Y||!f.ClipperBase.SlopesEqual(q.Pt, -n.Pt,b.OffPt,this.m_UseFullRange))return!1}for(v=k.Next;f.IntPoint.op_Equality(v.Pt,k.Pt)&&v!=k;)v=v.Next;var p=v.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,v.Pt,b.OffPt,this.m_UseFullRange);if(p){for(v=k.Prev;f.IntPoint.op_Equality(v.Pt,k.Pt)&&v!=k;)v=v.Prev;if(v.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,v.Pt,b.OffPt,this.m_UseFullRange))return!1}if(n==q||v==k||n==v||d==e&&C==p)return!1;C?(n=this.DupOutPt(q,!1),v=this.DupOutPt(k,!0),q.Prev=k,k.Next=q,n.Next=v,v.Prev=n):(n=this.DupOutPt(q,!0), -v=this.DupOutPt(k,!1),q.Next=k,k.Prev=q,n.Prev=v,v.Next=n);b.OutPt1=q;b.OutPt2=n;return!0};f.Clipper.GetBounds=function(b){for(var d=0,e=b.length;dq.right&&(q.right=b[d][k].X),b[d][k].Yq.bottom&&(q.bottom=b[d][k].Y);return q};f.Clipper.prototype.GetBounds2= -function(b){var d=b,e=new f.IntRect;e.left=b.Pt.X;e.right=b.Pt.X;e.top=b.Pt.Y;e.bottom=b.Pt.Y;for(b=b.Next;b!=d;)b.Pt.Xe.right&&(e.right=b.Pt.X),b.Pt.Ye.bottom&&(e.bottom=b.Pt.Y),b=b.Next;return e};f.Clipper.PointInPolygon=function(b,d){var e=0,f=d.length;if(3>f)return 0;for(var k=d[0],N=1;N<=f;++N){var v=N==f?d[0]:d[N];if(v.Y==b.Y&&(v.X==b.X||k.Y==b.Y&&v.X>b.X==k.X=b.X)if(v.X>b.X)e=1-e;else{var C= -(k.X-b.X)*(v.Y-b.Y)-(v.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0k.Y&&(e=1-e)}else if(v.X>b.X){C=(k.X-b.X)*(v.Y-b.Y)-(v.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0k.Y&&(e=1-e)}k=v}return e};f.Clipper.prototype.PointInPolygon=function(b,d){var e=0,f=d,k=b.X,N=b.Y,v=d.Pt.X,C=d.Pt.Y;do{d=d.Next;var p=d.Pt.X,F=d.Pt.Y;if(F==N&&(p==k||C==N&&p>k==v=k)if(p>k)e=1-e;else{v=(v-k)*(F-N)-(p-k)*(C-N);if(0==v)return-1;0C&&(e=1-e)}else if(p>k){v=(v-k)*(F-N)-(p-k)*(C-N);if(0== -v)return-1;0C&&(e=1-e)}v=p;C=F}while(f!=d);return e};f.Clipper.prototype.Poly2ContainsPoly1=function(b,d){var e=b;do{var f=this.PointInPolygon(e.Pt,d);if(0<=f)return 0d.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;r=e.Pt.X>r.Pt.X?f.Direction.dRightToLeft:f.Direction.dLeftToRight;if(u==r)return!1;if(u==f.Direction.dLeftToRight){for(;b.Next.Pt.X<=n.X&&b.Next.Pt.X>=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k&&b.Pt.X!=n.X&&(b=b.Next);d=this.DupOutPt(b,!k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b, +!k))}else{for(;b.Next.Pt.X>=n.X&&b.Next.Pt.X<=b.Pt.X&&b.Next.Pt.Y==n.Y;)b=b.Next;k||b.Pt.X==n.X||(b=b.Next);d=this.DupOutPt(b,k);f.IntPoint.op_Inequality(d.Pt,n)&&(b=d,b.Pt.X=n.X,b.Pt.Y=n.Y,f.use_xyz&&(b.Pt.Z=n.Z),d=this.DupOutPt(b,k))}if(r==f.Direction.dLeftToRight){for(;e.Next.Pt.X<=n.X&&e.Next.Pt.X>=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k&&e.Pt.X!=n.X&&(e=e.Next);r=this.DupOutPt(e,!k);f.IntPoint.op_Inequality(r.Pt,n)&&(e=r,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),r=this.DupOutPt(e,!k))}else{for(;e.Next.Pt.X>= +n.X&&e.Next.Pt.X<=e.Pt.X&&e.Next.Pt.Y==n.Y;)e=e.Next;k||e.Pt.X==n.X||(e=e.Next);r=this.DupOutPt(e,k);f.IntPoint.op_Inequality(r.Pt,n)&&(e=r,e.Pt.X=n.X,e.Pt.Y=n.Y,f.use_xyz&&(e.Pt.Z=n.Z),r=this.DupOutPt(e,k))}u==f.Direction.dLeftToRight==k?(b.Prev=e,e.Next=b,d.Next=r,r.Prev=d):(b.Next=e,e.Prev=b,d.Prev=r,r.Next=d);return!0};f.Clipper.prototype.JoinPoints=function(b,d,e){var r=b.OutPt1,n;new f.OutPt;var k=b.OutPt2,u;new f.OutPt;if((u=b.OutPt1.Pt.Y==b.OffPt.Y)&&f.IntPoint.op_Equality(b.OffPt,b.OutPt1.Pt)&& +f.IntPoint.op_Equality(b.OffPt,b.OutPt2.Pt)){if(d!=e)return!1;for(n=b.OutPt1.Next;n!=r&&f.IntPoint.op_Equality(n.Pt,b.OffPt);)n=n.Next;n=n.Pt.Y>b.OffPt.Y;for(u=b.OutPt2.Next;u!=k&&f.IntPoint.op_Equality(u.Pt,b.OffPt);)u=u.Next;if(n==u.Pt.Y>b.OffPt.Y)return!1;n?(n=this.DupOutPt(r,!1),u=this.DupOutPt(k,!0),r.Prev=k,k.Next=r,n.Next=u,u.Prev=n):(n=this.DupOutPt(r,!0),u=this.DupOutPt(k,!1),r.Next=k,k.Prev=r,n.Prev=u,u.Next=n);b.OutPt1=r;b.OutPt2=n;return!0}if(u){for(n=r;r.Prev.Pt.Y==r.Pt.Y&&r.Prev!=n&& +r.Prev!=k;)r=r.Prev;for(;n.Next.Pt.Y==n.Pt.Y&&n.Next!=r&&n.Next!=k;)n=n.Next;if(n.Next==r||n.Next==k)return!1;for(u=k;k.Prev.Pt.Y==k.Pt.Y&&k.Prev!=u&&k.Prev!=n;)k=k.Prev;for(;u.Next.Pt.Y==u.Pt.Y&&u.Next!=k&&u.Next!=r;)u=u.Next;if(u.Next==k||u.Next==r)return!1;e={Left:null,Right:null};if(!this.GetOverlap(r.Pt.X,n.Pt.X,k.Pt.X,u.Pt.X,e))return!1;d=e.Left;var C=e.Right;e=new f.IntPoint;r.Pt.X>=d&&r.Pt.X<=C?(e.X=r.Pt.X,e.Y=r.Pt.Y,f.use_xyz&&(e.Z=r.Pt.Z),d=r.Pt.X>n.Pt.X):k.Pt.X>=d&&k.Pt.X<=C?(e.X=k.Pt.X, +e.Y=k.Pt.Y,f.use_xyz&&(e.Z=k.Pt.Z),d=k.Pt.X>u.Pt.X):n.Pt.X>=d&&n.Pt.X<=C?(e.X=n.Pt.X,e.Y=n.Pt.Y,f.use_xyz&&(e.Z=n.Pt.Z),d=n.Pt.X>r.Pt.X):(e.X=u.Pt.X,e.Y=u.Pt.Y,f.use_xyz&&(e.Z=u.Pt.Z),d=u.Pt.X>k.Pt.X);b.OutPt1=r;b.OutPt2=k;return this.JoinHorz(r,n,k,u,e,d)}for(n=r.Next;f.IntPoint.op_Equality(n.Pt,r.Pt)&&n!=r;)n=n.Next;if(C=n.Pt.Y>r.Pt.Y||!f.ClipperBase.SlopesEqual(r.Pt,n.Pt,b.OffPt,this.m_UseFullRange)){for(n=r.Prev;f.IntPoint.op_Equality(n.Pt,r.Pt)&&n!=r;)n=n.Prev;if(n.Pt.Y>r.Pt.Y||!f.ClipperBase.SlopesEqual(r.Pt, +n.Pt,b.OffPt,this.m_UseFullRange))return!1}for(u=k.Next;f.IntPoint.op_Equality(u.Pt,k.Pt)&&u!=k;)u=u.Next;var p=u.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,u.Pt,b.OffPt,this.m_UseFullRange);if(p){for(u=k.Prev;f.IntPoint.op_Equality(u.Pt,k.Pt)&&u!=k;)u=u.Prev;if(u.Pt.Y>k.Pt.Y||!f.ClipperBase.SlopesEqual(k.Pt,u.Pt,b.OffPt,this.m_UseFullRange))return!1}if(n==r||u==k||n==u||d==e&&C==p)return!1;C?(n=this.DupOutPt(r,!1),u=this.DupOutPt(k,!0),r.Prev=k,k.Next=r,n.Next=u,u.Prev=n):(n=this.DupOutPt(r,!0), +u=this.DupOutPt(k,!1),r.Next=k,k.Prev=r,n.Prev=u,u.Next=n);b.OutPt1=r;b.OutPt2=n;return!0};f.Clipper.GetBounds=function(b){for(var d=0,e=b.length;dr.right&&(r.right=b[d][k].X),b[d][k].Yr.bottom&&(r.bottom=b[d][k].Y);return r};f.Clipper.prototype.GetBounds2= +function(b){var d=b,e=new f.IntRect;e.left=b.Pt.X;e.right=b.Pt.X;e.top=b.Pt.Y;e.bottom=b.Pt.Y;for(b=b.Next;b!=d;)b.Pt.Xe.right&&(e.right=b.Pt.X),b.Pt.Ye.bottom&&(e.bottom=b.Pt.Y),b=b.Next;return e};f.Clipper.PointInPolygon=function(b,d){var e=0,f=d.length;if(3>f)return 0;for(var k=d[0],I=1;I<=f;++I){var u=I==f?d[0]:d[I];if(u.Y==b.Y&&(u.X==b.X||k.Y==b.Y&&u.X>b.X==k.X=b.X)if(u.X>b.X)e=1-e;else{var C= +(k.X-b.X)*(u.Y-b.Y)-(u.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0k.Y&&(e=1-e)}else if(u.X>b.X){C=(k.X-b.X)*(u.Y-b.Y)-(u.X-b.X)*(k.Y-b.Y);if(0==C)return-1;0k.Y&&(e=1-e)}k=u}return e};f.Clipper.prototype.PointInPolygon=function(b,d){var e=0,f=d,k=b.X,I=b.Y,u=d.Pt.X,C=d.Pt.Y;do{d=d.Next;var p=d.Pt.X,E=d.Pt.Y;if(E==I&&(p==k||C==I&&p>k==u=k)if(p>k)e=1-e;else{u=(u-k)*(E-I)-(p-k)*(C-I);if(0==u)return-1;0C&&(e=1-e)}else if(p>k){u=(u-k)*(E-I)-(p-k)*(C-I);if(0== +u)return-1;0C&&(e=1-e)}u=p;C=E}while(f!=d);return e};f.Clipper.prototype.Poly2ContainsPoly1=function(b,d){var e=b;do{var f=this.PointInPolygon(e.Pt,d);if(0<=f)return 0d)return 0;for(var e=0,f=0,k=d-1;fMath.abs(b.Y-d.Y)?b.X>d.X==b.Xb.X==d.Xd.Y== b.Yb.Y==d.Ye&&(e=0);for(var p=Array(e),n=0;nk)){var n= -new f.PolyNode;n.m_jointype=d;n.m_endtype=e;if(e==f.EndType.etClosedLine||e==f.EndType.etClosedPolygon)for(;0n.m_polygon[d].Y||b[v].Y==n.m_polygon[d].Y&&b[v].Xp)&&(this.m_polyNodes.AddChild(n),e==f.EndType.etClosedPolygon))if(0>this.m_lowest.X)this.m_lowest= +new f.PolyNode;n.m_jointype=d;n.m_endtype=e;if(e==f.EndType.etClosedLine||e==f.EndType.etClosedPolygon)for(;0n.m_polygon[d].Y||b[u].Y==n.m_polygon[d].Y&&b[u].Xp)&&(this.m_polyNodes.AddChild(n),e==f.EndType.etClosedPolygon))if(0>this.m_lowest.X)this.m_lowest= new f.IntPoint(this.m_polyNodes.ChildCount()-1,d);else if(b=this.m_polyNodes.Childs()[this.m_lowest.X].m_polygon[this.m_lowest.Y],n.m_polygon[d].Y>b.Y||n.m_polygon[d].Y==b.Y&&n.m_polygon[d].X=this.ArcTolerance?f.ClipperOffset.def_arc_tolerance:this.ArcTolerance> Math.abs(b)*f.ClipperOffset.def_arc_tolerance?Math.abs(b)*f.ClipperOffset.def_arc_tolerance:this.ArcTolerance)/Math.abs(b));this.m_sin=Math.sin(f.ClipperOffset.two_pi/k);this.m_cos=Math.cos(f.ClipperOffset.two_pi/k);this.m_StepsPerRad=k/f.ClipperOffset.two_pi;0>b&&(this.m_sin=-this.m_sin);for(d=0;d=b&&(3>n||e.m_endtype!=f.EndType.etClosedPolygon))){this.m_destPoly= -[];if(1==n)if(e.m_jointype==f.JoinType.jtRound)for(var e=1,n=0,p=1;p<=k;p++){this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b)));var v=e,e=e*this.m_cos-this.m_sin*n,n=v*this.m_sin+n*this.m_cos}else for(n=e=-1,p=0;4>p;++p)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b))),0>e?e=1:0>n?n=1:e=-1;else{for(p=this.m_normals.length=0;pp;++p)this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[0].X+e*b),f.ClipperOffset.Round(this.m_srcPoly[0].Y+n*b))),0>e?e=1:0>n?n=1:e=-1;else{for(p=this.m_normals.length=0;p=this.m_miterLim?this.DoMiter(b,d,e):this.DoSquare(b,d);break;case f.JoinType.jtSquare:this.DoSquare(b,d);break;case f.JoinType.jtRound:this.DoRound(b,d)}return b};f.ClipperOffset.prototype.DoSquare=function(b,d){var e=Math.tan(Math.atan2(this.m_sinA,this.m_normals[d].X*this.m_normals[b].X+ this.m_normals[d].Y*this.m_normals[b].Y)/4);this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_delta*(this.m_normals[d].X-this.m_normals[d].Y*e)),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_delta*(this.m_normals[d].Y+this.m_normals[d].X*e))));this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+this.m_delta*(this.m_normals[b].X+this.m_normals[b].Y*e)),f.ClipperOffset.Round(this.m_srcPoly[b].Y+this.m_delta*(this.m_normals[b].Y-this.m_normals[b].X* e))))};f.ClipperOffset.prototype.DoMiter=function(b,d,e){e=this.m_delta/e;this.m_destPoly.push(new f.IntPoint(f.ClipperOffset.Round(this.m_srcPoly[b].X+(this.m_normals[d].X+this.m_normals[b].X)*e),f.ClipperOffset.Round(this.m_srcPoly[b].Y+(this.m_normals[d].Y+this.m_normals[b].Y)*e)))};f.ClipperOffset.prototype.DoRound=function(b,d){for(var e=Math.max(f.Cast_Int32(f.ClipperOffset.Round(this.m_StepsPerRad*Math.abs(Math.atan2(this.m_sinA,this.m_normals[d].X*this.m_normals[b].X+this.m_normals[d].Y*this.m_normals[b].Y)))), -1),k=this.m_normals[d].X,n=this.m_normals[d].Y,p,v=0;vd)return b;e||(b=[b]);for(var k=b.length,n,p,v,F,E,H,K,I=[],ea=0;ean)v=p,I.push(v);else{v=p;F=d*d;E=p[0];for(K=H=1;Kd)return f.JS.Clone(b);b[0]instanceof Array||(b=[b]);var e,k,n,p,v,F,E,H,K,I,ea,U,W,V,Y,Ea=b.length,ja=d*d,aa=[];for(e=0;ep;p++){v=[];F=n.length;n[F-1].X!=n[0].X||n[F-1].Y!=n[0].Y?(ea=1,n.push({X:n[0].X,Y:n[0].Y}),F=n.length):ea=0;I=[];for(k=0;kH)return 0;for(d&&(b[H]=b[0], -H++);--H;)p=b[H],F=p.X,p=p.Y,v=b[H-1],E=v.X,v=v.Y,k+=f((F-E)*(F-E)+(p-v)*(p-v));d&&b.pop();return k/e};f.JS.PerimeterOfPaths=function(b,d,e){e||(e=1);for(var k=0,n=0;nja&&(ja=0);++ja;return function(){--ja;0>ja&&console.error("Wait count mismatch: "+k);if(0===ja)for(var p=0,E=Ca.length;p=ja?p.startup():!1!==k.autostart&&Ca.push(p);return p}var ja=-1,Ca=[];"undefined"===typeof document||"undefined"===typeof window||"undefined"===typeof document.addEventListener||"undefined"!== -typeof window.cindyDontWait&&!0===window.cindyDontWait||document.addEventListener("DOMContentLoaded",p("DOMContentLoaded"));var pa=null,Da=null,aa={};E.getBaseDir=function(){if(null!==pa)return pa;for(var k=document.getElementsByTagName("script"),p=0;p tag for Cindy.js");return pa=Da=!1};E.addNewScript=function(k, -p){p||console.error.bind(console);var K=E.getBaseDir();if(!1===K)return!1;var U=document.createElement("script");U.src=K+k;var K=Da.nextSibling,W=Da.parentElement;K?W.insertBefore(U,K):W.appendChild(U);return U};E.loadScript=function(k,p,K,U){if(window[k])return K(),!0;U||(U=console.error.bind(console));var W=aa[k];if(!W){W=E.addNewScript(p,U);if(!1===W)return U("Can't load additional components."),!1;aa[k]=W}W.addEventListener("load",K);W.addEventListener("error",U);return null};E._autoLoadingPlugin= -{};E.autoLoadPlugin=function(k,p,K){if(E._pluginRegistry[k])return K(),!0;var U=E._autoLoadingPlugin[k];if(!U){p||(p=k+"-plugin.js");U=E._autoLoadingPlugin[k]=[];k=E.addNewScript(p);if(!1===k)return!1;k.addEventListener("error",console.error.bind(console))}U.push(K);return null};var k={ctype:"undefined"};E.waitFor=p;E._pluginRegistry={};E.instances=[];E.registerPlugin=function(k,p,K){if(1!==k)return console.error("Plugin API version "+k+" not supported"),!1;E._pluginRegistry[p]=K;(E._autoLoadingPlugin[p]|| -[]).forEach(function(k){k()})};var Oa=0;E.dumpState=function(k){k=E.instances[k||0].saveState();console.log(JSON.stringify(k))};E.debugState=function(k){E.instances.map(function(k){var p=k.config,p=JSON.parse(JSON.stringify(p)),F=k.saveState();console.log(JSON.stringify(F));for(var E in F)p[E]=F[E];k.shutdown();return p}).forEach(function(k){E(k)})};E.newInstance=function(p){function E(){ka.width=da=ka.clientWidth;ka.height=ca=ka.clientHeight;y.setTransform(1,0,0,1,0,0);z.setMat(25,0,0,25,250.5,250.5); -if(yb)for(var a=0;a=c.HAVE_METADATA?(r.width=c.videoWidth,r.height=c.videoHeight):(r.ready=!1,c.addEventListener("loadedmetadata",function(){r.width=c.videoWidth;r.height=c.videoHeight;r.ready=!0;r.whenReady=f;d.forEach(f);e()}),r.whenReady=d.push.bind(d));else if("canvas"===b)r.width=c.width,r.height=c.height;else return console.error("Not a valid image element",b,c),k;return{ctype:"image", -value:r}}function ja(a){function h(a,c){var h=document.createElement("button"),r=document.createElement("img");h.appendChild(r);l.appendChild(h);Ab(r,a);h.addEventListener("click",c);Sa[a]=function(a){a?h.classList.add("CindyJS-active"):h.classList.remove("CindyJS-active")}}function c(a){if(k){var c=e.getBoundingClientRect();sa(g*(a.clientX-c.left-e.clientLeft+.5)/c.width+b)}}var r=document.createElement("div");r.className="CindyJS-animcontrols";ka.parentNode.appendChild(r);var b=0,d=1,g=1;a.animation&& -a.animation.speedRange&&Fa(a.animation.speedRange[0])&&Fa(a.animation.speedRange[1])&&(b=a.animation.speedRange[0],d=a.animation.speedRange[1],g=d-b);var e=document.createElement("div");e.className="CindyJS-animspeed";r.appendChild(e);var f=document.createElement("div");e.appendChild(f);H(e,"mousedown",function(a){k=!0;c(a)});H(e,"mousemove",c);H(ka.parentNode,"mouseup",function(a){k=!1},!0);var l=document.createElement("div");l.className="CindyJS-animbuttons";r.appendChild(l);h("play",I);h("pause", -Ca);h("stop",Da);Sa.stop(!0);gc=function(a){a=(a-b)/g;a=Math.max(0,Math.min(1,a));a=.1*Math.round(1E3*a);f.style.width=a+"%"};var k=!1}function sa(a){Oc=a;gc&&gc(a)}function f(a){return a()}function pa(a,h){var c=null;p.plugins&&(c=p.plugins[a]);c||(c=wa._pluginRegistry[a]);c?t.use$1([w.wrap(a)],{}):(++Pc,wa.autoLoadPlugin(a,h,function(){t.use$1([w.wrap(a)],{});V()}))}function V(){0===--Pc&&(A(S.init),(p.animation||p).autoplay&&I(),oa.canvas&&Zb(oa.canvas,p))}function Y(){null!==Bb&&(ma.set(Bb.state), -Object.keys(Bb.speeds).forEach(function(a){var h=u.csnames[a];"undefined"!==typeof h.behavior&&(a=Bb.speeds[a],h.behavior.vx=a[0],h.behavior.vy=a[1],h.behavior.vz=a[2],h.behavior.fx=0,h.behavior.fy=0,h.behavior.fz=0)}),Nd())}function I(){if(!Ya){if(Ob){var a=db.backup;a.set(ma);for(var h={},c=0;c
';document.body.appendChild(c);h=document.getElementById("cmd");r=document.getElementById("log");h.onkeydown=function(c){13===c.keyCode&&""!==h.value&&(a["in"](h.value),c= -t.parse$1([w.wrap(h.value)],[]),c=A(c),console.log(ba(c)),"undefined"!==c.ctype&&ia.out(ba(c)),h.value="",r.scrollTop=r.scrollHeight)};this.append=function(a){r.appendChild(a)};this.clear=function(){r.innerHTML=""}}function cb(a){var h=a;"string"===typeof a&&(h=document.getElementById(a));this.append=function(a){h.appendChild(a)};this.clear=function(){h.innerHTML=""}}function qa(){this.append=function(a){};this.clear=function(){}}function H(a,h,c,r){void 0===r&&(r=!1);jb.push(function(){a.removeEventListener(h, -c,r)});a.addEventListener(h,c,r)}function Zb(a,h){function c(c){var h=a.getBoundingClientRect();c=z.to(c.clientX-h.left-a.clientLeft+.5,c.clientY-h.top-a.clientTop+.5);X.prevx=X.x;X.prevy=X.y;X.x=c[0];X.y=c[1];ta[0]=X.x;ta[1]=X.y;e()}function r(a){for(var c=a.changedTouches,h=!1,r=0;r -c[0]&&(c=[k.value.real,f]),m.value.realr[0]&&(r=[m.value.real,f])))}c[0]-b[0]>r[0]-d[0]?(b=b[1],c=c[1]):(b=d[1],c=r[1]);if(b!==c){t.draw$2([b,c],{dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha,overhang:h.overhang});break a}}t.draw$1([h.homog],{dashtype:h.dashtype,size:h.size,color:h.color,alpha:h.alpha})}for(a=0;a"+ba(a.value):"shape"===a.ctype?a.type:"error"===a.ctype?"Error: "+a.message:"variable"===a.ctype?ba(J.getvar(a.name)):"geo"===a.ctype?a.value.name: -"image"===a.ctype?"IMAGE":"_?_"}function bb(a,h){var c="undefined"===a[0].ctype,r="undefined"===a[1].ctype,b=A(a[1]);if(c||r)return k;"variable"===a[0].ctype?J.setvar(a[0].name,b):"infix"===a[0].ctype?"_"===a[0].oper?D.assigntake(a[0],b):console.error("Can't use infix expression as lvalue"):"field"===a[0].ctype?D.assigndot(a[0],b):"function"===a[0].ctype&&"genList"===a[0].oper?"list"===b.ctype?D.assignlist(a[0].args,b.value):console.error("Expected list in rhs of assignment"):console.error("Left hand side of assignment is not a recognized lvalue"); -return b}function pb(a,h){var c=A(a[0]),r=A(a[1]);if(c.ctype===r.ctype){if("number"===c.ctype)return w.bool(c.value.real===r.value.real&&c.value.imag===r.value.imag);if("string"===c.ctype||"boolean"===c.ctype)return w.bool(c.value===r.value);if("list"===c.ctype)return g.equals(c,r);if("geo"===c.ctype)return w.bool(c.value===r.value)}return{ctype:"boolean",value:!1}}function Gc(a,h){return w.not(pb(a,h))}function Yb(a,h){var c=B(a[0]),r=B(a[1]);return"number"===c.ctype&&"number"===r.ctype?{ctype:"boolean", -value:l._helper.isAlmostEqual(c,r)}:"string"===c.ctype&&"string"===r.ctype||"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value===r.value}:"list"===c.ctype&&"list"===r.ctype?g.almostequals(c,r):{ctype:"boolean",value:!1}}function Hc(a,h){var c=B(a[0]),r=B(a[1]);return"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value&&r.value}:k}function Ic(a,h){var c=B(a[0]),r=B(a[1]);return"boolean"===c.ctype&&"boolean"===r.ctype?{ctype:"boolean",value:c.value||r.value}: -k}function Jc(a,h){var c=a[0];"void"!==c.ctype&&(c=B(c));var r=B(a[1]),b=w.add(c,r);"Angle"===c.usage&&"Angle"===r.usage&&(b=w.withUsage(b,"Angle"));return b}function $b(a,h){var c=a[0];"void"!==c.ctype&&(c=B(c));var r=B(a[1]),b=w.sub(c,r);"Angle"===c.usage&&"Angle"===r.usage&&(b=w.withUsage(b,"Angle"));return b}function Kc(a,h){var c=B(a[0]),r=B(a[1]),b=w.mult(c,r);"Angle"!==c.usage||r.usage?"Angle"!==r.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Lc(a,h){var c= -B(a[0]),r=B(a[1]);"number"===r.ctype&&l._helper.isZero(r)&&ia.err("WARNING: Division by zero!");var b=w.div(c,r);"Angle"!==c.usage||r.usage?"Angle"!==r.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Mc(a,h){var c=B(a[0]),r=B(a[1]);return"number"===c.ctype&&"number"===r.ctype?l.pow(c,r):k}function Sc(a,h){var c=M(a[0]),r=M(a[1]);if(c!==k&&r!==k){var b=g.cross(c,r);"Point"===c.usage&&"Point"===r.usage&&(b=w.withUsage(b,"Line"));"Line"===c.usage&&"Line"===r.usage&& -(b=w.withUsage(b,"Point"));return b}return k}function nc(a){var h=a.length;if(0===h)return[];if(1===h)return[0];if(2===h)return a[0][0]+a[1][1]<=a[0][1]+a[1][0]?[0,1]:[1,0];if(4a[g][e]&&(f[g].cost=a[g][e]);for(;;){for(g=0;gk[g][e]&&(m=k[g][e]);for(g=0;gr&&(r=c.value.length+r+1);if(0h.left&&(e=h.left); -fh.top&&(l=h.top);k"===f.oper){var l=f.args[0];if("variable"!==l.ctype)throw ha("Modifier name must be an identifier",f.start);g[l.name]=f.args[1]}else r.push(f)}d.oper=d.name.toLowerCase()+"$"+ -d.args.length}else if("||"===g)if(1===b.length)c.push({ctype:"function",oper:"abs_infix",args:b,modifs:{}});else if(2===b.length)c.push({ctype:"function",oper:"dist_infix",args:b,modifs:{}});else throw ha("Don't support |\u2026| with "+b.length+" arguments",r.start);else{if("{}"===g)throw ha("{\u2026} reserved for future use",r.start);"[]"!==g&&1===b.length?c.push({ctype:"paren",args:b}):0===b.length?c.push({ctype:"list",value:[]}):c.push({ctype:"function",oper:"genList",args:b,modifs:{}})}break; -case "EOF":break a}for(c.length&1||c.push(null);3<=c.length;)Qb(c);return{expr:c[0],closedBy:r}}function Eb(a){this.usedFunctions={};this.usedVariables={}}function A(a){if(void 0===a)return k;if("infix"===a.ctype)return a.impl(a.args,{},a);if("variable"===a.ctype)return A(J.getvar(a.name));if("function"===a.ctype)return D.evaluate(a.oper,a.args,a.modifs);if("void"===a.ctype)return k;if("field"===a.ctype){var h=A(a.obj);return"geo"===h.ctype?ya.getField(h.value,a.key):"list"===h.ctype?g.getField(h, -a.key):k}return a}function B(a){a=A(a);if("geo"===a.ctype){var h=a.value;if("P"===h.kind)return ya.getField(h,"xy");if("V"===h.kind)return h.value}return a}function M(a){a=A(a);if("geo"===a.ctype){var h=a.value;if("P"===h.kind||"L"===h.kind)return ya.getField(h,"homog")}return g._helper.isNumberVecN(a,3)?a:g._helper.isNumberVecN(a,2)?(h=g.turnIntoCSList([a.value[0],a.value[1],l.real(1)]),a.usage&&(h=w.withUsage(h,a.usage)),h):k}function Ra(a){var h=new Eb;h.usedFunctions=Nc;h.infixmap=R;a=h.parse(a); -for(var c in h.usedVariables)J.create(c);return a}function dd(){this._path=[];this._defs=[""];this._imgcache=[];this._body=[];this._saveStack=[""];this._clipIndex=0;this._stroke=this._fill="#000";this._strokeOpacity=this._fillOpacity=null;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10;this.globalAlpha=1}function ed(){this._body=[];this._yPos=this._xPos=NaN;this._extGState={Af255:"<< /ca 1 >>",As255:"<< /CA 1 >>"};this._objects=[["%PDF-1.4\n"]]; -this._offset=this._objects[0][0].length;this._nextIndex=5;this._imgcache=[];this._xobjects={};this._pathUsed=-1;this._fillAlpha=this._strokeAlpha=this._globalAlpha=1;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10}function fd(a,h){var c=a.width,r=a.height,b=document.createElement("canvas");b.setAttribute("width",c);b.setAttribute("height",r);b.setAttribute("style","display:none;");var d=oa.canvas;d.parentNode.insertBefore(b,d.nextSibling);try{return b.getContext("2d").drawImage(a, -0,0,c,r),b.toDataURL(h||"image/png")}finally{b.parentNode.removeChild(b)}}function Wd(a){a=a.replace(RegExp("[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/]+","g"),"");var h=new Uint8Array(3*a.length>>2),c,r,b,d,g,e;for(r=c=0;c+3>4,h[r++]=d<<4|g>>2,h[r++]=g<<6|e;switch(a.length-c){case 0:break;case 2:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1));h[r++]=b<<2|d>>4;break;case 3:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+ -1));g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+2));h[r++]=b<<2|d>>4;h[r++]=d<<4|g>>2;break;default:throw Error("Malformed Base64 input: "+(a.length-c)+" chars left: "+a.substr(c));}if(r!==h.length)throw Error("Failed assertion: "+r+" should be "+h.length);return h}function Xd(a){function h(c){return(a[c]<<24|a[c+1]<<16|a[c+2]<<8|a[c+3])>>>0}if(57>a.length)throw Error("Too short to be a PNG file");if(2303741511!==h(0)||218765834!==h(4))throw Error("PNG signature missing"); -for(var c=[],r=8;ra.length)throw Error("Incomplete chunk at offset 0x"+r.toString(16));var b=h(r);if(2147483648<=b)throw Error("Chunk too long");var d=r+12+b;if(d>a.length)throw Error("Incomplete chunk at offset 0x"+r.toString(16));var g=a.subarray(r+4,r+8),g=String.fromCharCode.apply(String,g);c.push({len:b,type:g,data:a.subarray(r+8,r+8+b),crc:h(r+8+b)});r=d}return c}function Rb(a,h){var c;if(c=/^rgba\(([0-9]+), *([0-9]+), *([0-9]+), *([0-9]+)\)$/.exec(a))h(+c[1],+c[2],+c[3], -+c[4]);else if(c=/^rgb\(([0-9]+), *([0-9]+), *([0-9]+)\)$/.exec(a))h(+c[1],+c[2],+c[3],1);else throw Error("Can't handle color style "+a);}function Yd(a){var h=1;Object.keys(Xa).forEach(function(c){var r=Xa[c].value.img;if(void 0===r.cachedDataURL&&r.src)if("data:"===r.src.substr(0,5))r.cachedDataURL=r.src;else{++h;r.cachedDataURL=null;var b=new XMLHttpRequest;b.responseType="blob";b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200===b.status){var c=new FileReader;c.onloadend= -function(){r.cachedDataURL=c.result;console.log("Cached data for image "+r.src);0===--h&&a()};c.readAsDataURL(b.response)}else console.error("Failed to load "+r.src+": "+b.statusText),0===--h&&a()};b.open("GET",r.src,!0);b.send()}});0===--h&&a()}function lb(a,h,c){for(c||(c="0");a.length20/m&&(k=1E4)}else if("C"===d.kind)f=u.csnames[d.args[0]],k=0,"undefined"!==typeof d.radius&&(k=d.radius.value.real),e=l.div(f.homog.value[0], -f.homog.value[2]).value.real,f=l.div(f.homog.value[1],f.homog.value[2]).value.real,e-=a.x,f-=a.y,k=Math.sqrt(e*e+f*f)-k,f=e=0,0>k&&(k=-k),k+=30/m;else if("L"===d.kind||"S"===d.kind)e=d.homog,k=l,f=k.add(k.mult(e.value[0],k.conjugate(e.value[0])),k.mult(e.value[1],k.conjugate(e.value[1]))),f=g.scaldiv(k.sqrt(f),e),k=f.value[0].value.real*a.x+f.value[1].value.real*a.y+f.value[2].value.real,e=f.value[0].value.real*k,f=f.value[1].value.real*k,0>k&&(k=-k),k+=1;kMath.abs(a.offset.x)&&.5>Math.abs(a.offset.y)&&!a.mover.tmp}function jd(a){return rc(a)&&"P"===a.mover.kind}function kd(a){return rc(a)&&("L"===a.mover.kind||"S"===a.mover.kind)}function sc(a){fa={mover:a,offset:{x:0,y:0},prev:{x:X.x,y:X.y}}}function mb(){var a=Gb(X);jd(a)?ua[Ua]=a.mover: -(ua[Ua]={type:"Free",name:Ta(),labeled:!0,pos:[ta[0],ta[1],1]},Ha(ua[Ua]));Ua++}function ld(){var a=Gb(X);return kd(a)?(ua[Ua]=a.mover,Ua++,!0):!1}function md(){var a=Gb(X),h;(h=kd(a))||(h=rc(a)&&"C"===a.mover.kind);return h?(ua[Ua]=a.mover,Ua++,!0):!1}function tb(){var a=Gb(X);if(jd(a))for(Hb.args[1]=a.mover.name,a=0;ad*d):!1}function uc(a,h){a.isshowing=!0;if(a.args)for(var c=0;c1E12*h(za[c+1])&&(za[c+1]=0)}function Vb(){if(vb)Ja=!0;else throw wd;}function xd(a,h, -c,r,b){return w.add(r,w.mult(c,w.sub(b,r)))}function Qd(){L&&(L.currentMouseAndScripts=[]);wc=!0;if(fa){var a=fa.mover,h=g.realVector([X.x+fa.offset.x,X.y+fa.offset.y,1]);yd(a,h,"mouse");fa.prev.x=X.x;fa.prev.y=X.y}A(S.move);A(S.draw);Ja||ub();wc=!1;L&&(L.fullLog.push(g.turnIntoCSList([g.turnIntoCSList(L.currentMouseAndScripts)])),L.length>L.logLength&&L.splice(0,L.length-L.logLength),L.currentMouseAndScripts=null,L.postMouseHooks.forEach(function(a){a()}))}function Ia(a,h,c){yd(a,h,c);wc||Ja||ub()} -function yd(a,h,c){L&&L.currentMouseAndScripts&&(L.currentMover=[]);a===zd?(ma.set(za),Ja=!1):(zd=a,ub());Ma.set(ma);var r=1E4,b;b=Ub[a.name];if(!b){var d={},e=0;b=[];d[a.name]=a;for(var f=u.gslp,k=0;kp?(q=[h,a],n=p):q=[a,h];p=function(){};if(L&&L.currentStep){var t=[L.labelTracing2,w.wrap(L.currentElement.name),g.turnIntoCSList(q),g.turnIntoCSList([c,r]),g.realMatrix([[b,d],[e,f]]),w.wrap(n),w.wrap(l),w.wrap(m),k];L.currentStep.push(g.turnIntoCSList(t)); -p=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));t[t.length-1]=L[a]}}g._helper.isNaN(a)||g._helper.isNaN(h)?(p("Tracing failed due to NaNs."),Ja=!0):l>3*n&&m>3*n?p("Normal case, everything all right."):1E-5>m?1E-5>l?p("Staying inside singularity."):(p("Moved into singularity."),Ja=!0):1E-5>l?p("Moved out of singularity."):(vb?p("Reached refinement limit, giving up."):p("Need to refine."),Vb());return q}function xc(a,h,c,r){var b=Z(3),d=Z(3),e=Z(3),f=Z(3);a=he(a,h,c,r,b,d,e,f);T(a[0]);T(a[1]);T(a[2]); -T(a[3]);return g.turnIntoCSList(a)}function he(a,h,c,r,b,d,e,f){var l=function(){};b=[b,d,e,f];a=[a,h,c,r];if(fb)return a;d=0;r=Array(4);for(c=0;4>c;c++)for(r[c]=Array(4),f=0;4>f;f++)e=g.projectiveDistMinScal(b[c],a[f]),r[c][f]=e;e=nc(r);h=Array(4);for(c=0;4>c;++c)h[c]=a[e[c]],d+=r[c][e[c]];var m=1*d,n=Infinity,p=Infinity;for(c=0;4>c;c++){if(g._helper.isNaN(a[c]))return l("Tracing failed due to NaNs."),Ja=!0,h;for(f=c+1;4>f;f++)e=g.projectiveDistMinScal(b[c],b[f]),n>e&&(n=e),e=g.projectiveDistMinScal(h[c], -h[f]),p>e&&(p=e)}if(L&&L.currentStep){var q=[L.labelTracing4,w.wrap(L.currentElement.name),g.turnIntoCSList(h),g.turnIntoCSList(b),g.realMatrix(r),w.wrap(d),w.wrap(n),w.wrap(p),k];L.currentStep.push(g.turnIntoCSList(q));l=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));q[q.length-1]=L[a]}}n>m&&p>m||(1E-5>p?1E-5>n?l("Staying inside singularity."):(l("Moved into singularity."),Ja=!0):1E-5>n?l("Moved out of singularity."):(vb?l("Reached refinement limit, giving up."):l("Need to refine."),Vb()));return h} -function Bd(a){var h=a.length,c,r;if(fb){for(c=0;c1-n&&(f=1-n),n=g.sesquilinearproduct(a[c],a[r]).value,n=(n.real*n.real+n.imag*n.imag)/(e[c]*e[r]),l>1-n&&(l=1-n)}n=nc(m);r=Array(h);d=0;e=!1;for(c=0;c3*d&&l>3*d?a("Normal case, everything all right."):1E-5>l?1E-5>f?a("Staying inside singularity."):(a("Moved into singularity."),Ja=!0):1E-5>f?a("Moved out of singularity."):(vb?a("Reached refinement limit, giving up."):a("Need to refine."),Vb());return r}function gb(a){if(gb.hasOwnProperty(a.kind))gb[a.kind](a)}function Cd(a,h){return function(){a.incidences.push(h.name);h.incidences.push(a.name)}}function Dd(a,h){return{toString:function(){return"point "+ -a.name+" incident line "+h.name},apply:Cd(a,h),holds:function(){var c=g.scaldiv(g.abs(a.homog),a.homog),r=g.scaldiv(g.abs(h.homog),h.homog);return 1E-13>l.abs(g.scalproduct(c,r)).value.real}}}function Ed(a,h){return{toString:function(){return"point "+a.name+" incident conic "+h.name},apply:Cd(a,h),holds:function(){var c=w.mult(h.matrix,a.homog),c=w.mult(a.homog,c),c=l.abs(c);1E-13>c.value.real&&(a.incidences.push(h.name),h.incidences.push(a.name))}}}function pd(){if(0!==ib.length){for(var a=0;aa&&(r+=2*Math.PI);0===a&&0>h&&(r=Math.PI);r>Math.PI&&(r-=2*Math.PI);return l.snap({ctype:"number",value:{real:Math.log(c),imag:r}})};l.pow= -function(a,h){return l._helper.isZero(h)?l.one:l._helper.isZero(a)?l.zero:l._helper.isReal(h)?l.powRealExponent(a,h.value.real):l.exp(l.mult(l.log(a),h))};l.mod=function(a,h){var c=a.value.real,r=h.value.real,b=a.value.imag,d=h.value.imag,c=c-Math.floor(c/r)*r,b=b-Math.floor(b/d)*d;0===r&&(c=0);0===d&&(b=0);return l.snap({ctype:"number",value:{real:c,imag:b}})};l._helper.seed="NO";l._helper.seedrandom=function(a){a-=Math.floor(a);l._helper.seed=.8*a+.1};l._helper.rand=function(){if("NO"===l._helper.seed)return Math.random(); -var a=l._helper.seed,a=1E3*Math.sin(1E3*a),a=a-Math.floor(a);return l._helper.seed=a};l._helper.randnormal=function(){var a=l._helper.rand(),h=l._helper.rand();return Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*h)};l._helper.isEqual=function(a,h){return a.value.real===h.value.real&&a.value.imag===h.value.imag};l._helper.isLessThan=function(a,h){return a.value.real-r&&a-r};l._helper.isZero=function(a){return 0===a.value.real&&0===a.value.imag};l._helper.isAlmostZero=function(a){var h=a.value.real;a=a.value.imag;return h-l.eps&&a-l.eps};l._helper.isReal=function(a){return 0===a.value.imag};l._helper.isAlmostReal=function(a){a=a.value.imag;return a-l.epsbig};l._helper.isNaN=function(a){return isNaN(a.value.real)||isNaN(a.value.imag)};l._helper.isFinite=function(a){return isFinite(a.value.real)&&isFinite(a.value.imag)};l._helper.isAlmostImag=function(a){a=a.value.real;return a-l.epsbig};l._helper.z3a=l.complex(-.5,.5*Math.sqrt(3));l._helper.z3b=l.complex(-.5,-.5*Math.sqrt(3));l._helper.cub1={ctype:"list",value:[l.one,l.one,l.one]};l._helper.cub2={ctype:"list",value:[l._helper.z3a,l.one,l._helper.z3b]};l._helper.cub3={ctype:"list", -value:[l._helper.z3b,l.one,l._helper.z3a]};l.solveCubic=function(a,h,c,r){a=l._helper.solveCubicHelper(a,h,c,r);return[g.scalproduct(l._helper.cub1,a),g.scalproduct(l._helper.cub2,a),g.scalproduct(l._helper.cub3,a)]};l._helper.solveCubicHelper=function(a,h,c,r){var b=a.value.real;a=a.value.imag;var d=h.value.real;h=h.value.imag;var e=c.value.real,f=c.value.imag,k=r.value.real,m=r.value.imag,n=b*e-a*f;c=b*f+a*e;r=4*n-(d*d-h*h);var p=4*c-2*d*h,q=b*d-a*h,t=b*h+a*d,v=r*e-p*f-18*(q*k-t*m),p=r*f+p*e-18* -(q*m+t*k);r=27*(b*b-a*a);var u=54*a*b,w=r*k-u*m,x=r*m+u*k,z=d*d-h*h,y=2*d*h,A=z*d-y*h,B=z*h+y*d,C=w+4*A,u=x+4*B;r=27*(v*e-p*f+C*k-u*m);p=27*(v*f+p*e+C*m+u*k);C=Math.sqrt(Math.sqrt(r*r+p*p));u=Math.atan2(p,r);p=C*Math.sin(u/2);r=C*Math.cos(u/2);A=-2*A+9*(q*e-t*f)-w+(r*b-p*a);B=-2*B+9*(q*f+t*e)-x+(r*a+p*b);r=Math.exp(Math.log(Math.sqrt(A*A+B*B))/3);e=Math.atan2(B,A);u=r*Math.sin(e/3);p=r*Math.cos(e/3);r*=r;e*=2;n=2*z-6*n;c=2*y-6*c;y=-1.5874010519681996*(d*p-h*u);d=-1.5874010519681996*(d*u+h*p);h=1.2599210498948732* -r*Math.cos(e/3);e=1.2599210498948732*r*Math.sin(e/3);r=4.762203155904599*(p*b-u*a);p=4.762203155904599*(p*a+u*b);b=r*r+p*p;u=(-n*p+c*r)/b;n=(n*r+c*p)/b;c=u;u=(-y*p+d*r)/b;y=(y*r+d*p)/b;d=u;u=(-h*p+e*r)/b;h=(h*r+e*p)/b;e=u;return g.turnIntoCSList([l.complex(n,c),l.complex(y,d),l.complex(h,e)])};var g={_helper:{},turnIntoCSList:function(a){return{ctype:"list",value:a}}};g.EMPTY=g.turnIntoCSList([]);g.asList=function(a){return"list"===a.ctype?a:"number"===a.ctype||"boolean"===a.ctype||"geo"===a.ctype? -g.turnIntoCSList([a]):g.EMPTY};g.realVector=function(a){for(var h=[],c=0;c=c||b>=r)&&w.isEqual(a.value[b],h.value[b]);)b++;return b===c&&bb&&(c=r,b=d)}return c};g.normalizeMax=function(a){var h=l.inv(g.maxval(a));return l._helper.isFinite(h)?g.scalmult(h,a):a};g.normalizeZ=function(a){var h=l.inv(a.value[2]);return g.scalmult(h,a)};g.dehom=function(a){a=a.value.slice();var h=a.length-1,c=l.inv(a[h]);a.length=h;for(var r=0;rh&&(c=a.value[r],h=b.value.real)}return g.scaldiv(c,a)};g.recursive=function(a,h){for(var c=[],r=0;rg.abs(m).value.real&&0===p&&(m=g._helper.inverseIteration(a, -b.value[c])),f.value[c]=g._helper.isAlmostZeroVec(m)?m:g.scaldiv(g.abs(m),m),cl.abs(l.sub(b.value[c],b.value[c+1])).value.real)?p++:p=0);f=g.transpose(f)}return g.turnIntoCSList([b,f])};g._helper.isNormalMatrix=function(a){return 1E-10>g.abs(g.sub(a,g.transjugate(a))).value.real};g._helper.QRIteration=function(a,h){var c,b=a;c=l.real(b.value.length);var d=c.value.real,e=c.value.real;l.real(0);var f;g.idMatrix(c,c);var k=g.zeromatrix(c,c),m=g.idMatrix(c,c),n=h?h:2500,p,q,t,u=0,v=Array(e); -for(c=0;cl.abs2(b.value[b.value.length-1].value[b.value[0].value.length-2]).value.real&&1e;e++)b=g.scaldiv(g.abs(b),b),b=g.LUsolve(g.sub(a,g.scalmult(d,c)),JSON.parse(JSON.stringify(b)));return g.scaldiv(g.abs(b),b)};g._helper.toHessenberg=function(a){var h=JSON.parse(JSON.stringify(a)),c=h.value.length,b=l.real(c-1),d=l.real(c); -l.real(1);if(g._helper.isUpperTriangular(h))return[g.idMatrix(b,b),a];var e;a=g.idMatrix(d,d);for(var f,d=1;dc&&u++;break}e=l.sub(e,f);k.value=k.value.splice(0,k.value.length-1)}return{Q:m,R:n,P:g.turnIntoCSList(p),rank:l.real(u)}};g._helper.getHouseHolder= -function(a){var h=l.real(a.value.length);if(1E-16>g.abs2(a))return g.idMatrix(h,h);var c,b=l.real(1),d=g._helper.unitvector(l.real(a.value.length),b);c=g._helper.QRgetAlpha(a,0);c=g.sub(a,g.scalmult(c,d));c=g.scaldiv(g.abs(c),c);a=l.div(g.sesquilinearproduct(a,c),g.sesquilinearproduct(c,a));h=g.idMatrix(h,h);return h=g.sub(h,g.scalmult(l.add(b,a),g._helper.transposeMult(c,g.conjugate(c))))};g._helper.reOrderbyPivots=function(a,h){for(var c=a.value.length.length,b=g.transpose(a),c=Array(c),d=0;da.value[h].value.real?g.abs(a):l.neg(g.abs(a))}; -g.LUdecomp=function(a){a=JSON.parse(JSON.stringify(a));var h,c,b,d,g,e=0,f,k=a.value.length,m=k-1,n=Array(k);for(b=0;b=m&&console.log("CG did not converge");return e};g.det=function(a){if(1===a.value.length)return a.value[0].value[0];if(2===a.value.length)return g.det2(a.value[0],a.value[1]);if(3===a.value.length)return g.det3(a.value[0],a.value[1],a.value[2]);if(4===a.value.length)return g.det4m(a); -var h=a.value.length,c=l.real(1),b,d,e=JSON.parse(JSON.stringify(a)),f,k,m,n;for(a=0;al.abs(e.value[d].value[a]).value.real&&(d=b);d!==a&&(b=e.value[d],e.value[d]=e.value[a],e.value[a]=b,c=l.neg(c));f=e.value[a];for(b=a+1;b"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real>=l.eps}:k};R["=:="]=C("=:=");R[">="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>=b.value.real}:"string"===c.ctype&&"string"=== -b.ctype?{ctype:"boolean",value:c.value>=b.value}:k};R["<="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<=b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<=b.value}:k};R["~>="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real- -b.value.real>-l.eps}:k};R["~<="]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value>b.value}: -k};R["<"]=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&l._helper.isAlmostReal(c)&&l._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real"]=Gc;R["\u2208"]=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===b.ctype?g.contains(b,c):k};R["\u2209"]=function(a,h){var c=A(a[0]),b=A(a[1]);return"list"===b.ctype?w.not(g.contains(b,c)):k};R["&"]=Hc;R["%"]=Ic; -R["!="]=Gc;R["~!="]=function(a,h){return w.not(Yb(a,h))};R[".."]=function(a,h){var c=A(a[0]),b=A(a[1]);return"number"===c.ctype&&"number"===b.ctype?g.sequence(c,b):k};R["++"]=Tc;R["--"]=Vc;R["~~"]=Uc;R[":>"]=Wc;R["<:"]=Xc;R["="]=bb;R[":="]=function(a,h,c){h="undefined"===a[1].ctype;if("undefined"===a[0].ctype||h)return k;if("function"===a[0].ctype){h=a[0].oper;var b=a[0].args,d=a[1],g=1;if(Za.hasOwnProperty(h)){g=Za[h];if(g.definer===c)return k;g=g.generation+1}Za[h]={oper:h,body:d,arglist:b,definer:c, -generation:g}}"variable"===a[0].ctype&&J.setvar(a[0].name,a[1]);return k};R[":=_"]=function(a,h){if("void"!==a[1].ctype)return k;"function"===a[0].ctype&&delete Za[a[0].oper];return k};R["::="]=C("::=");R[";"]=function(a,h){var c="void"===a[0].ctype,b="void"===a[1].ctype;if(c&&b)return k;if(!c&&b)return A(a[0]);c||b||A(a[0]);return b?k:A(a[1])};var t={},D={evaluate:function(a,h,c){if(Za.hasOwnProperty(a)){a=Za[a];if(void 0===a)h=k;else{var b=[];for(c=0;c "+ba(h[a]))};J.vstack=[];J.pushVstack=function(a){this.vstack.push(a)};J.popVstack=function(){this.vstack.pop()};J.cleanVstack=function(){for(var a=this.vstack;0 "+ba(A(b));ia.err(b);return k};t.errc$1=function(a,h){var c;"variable"===a[0].ctype?(c=A(J.getvar(a[0].name)),console.log(a[0].name+" ===> "+ba(c))):(c=A(a[0]),console.log(" ===> "+ -ba(c)));return k};t.print$1=function(a,h){ia.out(ba(A(a[0])),!0);return k};t.println$1=function(a,h){ia.out(ba(A(a[0])));return k};t.assert$2=function(a,h){var c=A(a[0]);if("boolean"===c.ctype){if(!1===c.value)return t.println$1([a[1]],h)}else ia.err("Condition for assert is not boolean");return k};t.dump$1=function(a,h){console.log(JSON.stringify(a[0]));return k};t.repeat$2=function(a,h){return t.repeat$3([a[0],null,a[1]],h)};t.repeat$3=function(a,h){var c=B(a[0]),b="#";null!==a[1]&&"variable"=== -a[1].ctype&&(b=a[1].name);if("number"!==c.ctype)return k;var c=Math.round(c.value.real),d=1,g=1,e=c+1,f=!1,l=!1,m=!1,n;void 0!==h.start&&(n=A(h.start),"number"===n.ctype&&(f=!0,g=n.value.real));void 0!==h.step&&(n=A(h.step),"number"===n.ctype&&(m=!0,d=n.value.real));void 0!==h.stop&&(n=A(h.stop),"number"===n.ctype&&(l=!0,e=n.value.real));!f||l||m||(e=d*c+g);f||!l||m||(g=-d*(c-1)+e,e+=d);f||l||!m||(e=d*c+g);f&&l&&!m&&(d=(e-g)/(c-1),e+=d);f&&!l&&m&&(e=d*c+g);!f&&l&&m&&(g=-d*(c-1)+e,e+=d);f&&l&&m&&(e+= -d);(g<=e&&0=e&&0>d)&&f&&l&&m&&(c=Math.floor((e-g)/d));J.newvar(b);e=k;for(f=0;fd&&(d=b.value.length+d+1),0=b)return g.turnIntoCSList([]);if(l._helper.isZero(a.value[b]))return h=D.roots(g.turnIntoCSList(a.value.slice(0, -b))),g.append(h,l.infinity);if(1===b)h[0]=l.neg(l.div(a.value[0],a.value[1]));else if(2===b)h=D.quadratic_roots(a);else{for(var d=0;de.value.real)return console.log("grade cant be < 1"),k;e=l.add(e,l.real(1));return P.autodiff(b,c,d,e)};t.cos$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.cos(c):k};t.tan$1=function(a,h){var c= -B(a[0]);return"number"===c.ctype?l.tan(c):k};t.arccos$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arccos(c):k};t.arcsin$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arcsin(c):k};t.arctan$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.arctan(c):k};t.arctan2$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?l.arctan2(c,b):k};t.arctan2$1=function(a,h){var c=B(a[0]);if("list"===c.ctype&&2===c.value.length){if(c=c.value,"number"===c[0].ctype&& -"number"===c[1].ctype)return t.arctan2$2(c,h)}else if("number"===c.ctype)return l.arctan2(c);return k};t.log$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.log(c):k};D.recursiveGen=function(a){var h=l[a],c=g[a];t[a+"$1"]=function(a,b){var d=B(a[0]);return"number"===d.ctype?h(d):"list"===d.ctype?c(d):k}};D.recursiveGen("im");D.recursiveGen("re");D.recursiveGen("conjugate");D.recursiveGen("round");D.recursiveGen("ceil");D.recursiveGen("floor");D.recursiveGen("abs");t.abs_infix=t.abs$1;t.random$0= -function(a,h){return l.real(l._helper.rand())};t.random$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?l.complex(c.value.real*l._helper.rand(),c.value.imag*l._helper.rand()):k};t.seedrandom$1=function(a,h){var c=B(a[0]);"number"===c.ctype&&l._helper.seedrandom(c.value.real);return k};t.randomnormal$0=function(a,h){return l.real(l._helper.randnormal())};t.randominteger$1=function(a,h){var c=B(a[0]);if("number"===c.ctype){var b=c.value.real|0,c=c.value.imag|0,b=b*l._helper.rand()|0,c=c*l._helper.rand()| -0;return l.complex(b,c)}return k};t.randomint$1=t.randominteger$1;t.randombool$0=function(a,h){return.5f)return l.real(0);if(0===f)return l.real(1);if(1===f)return b;for(var p=d=1,q=1;q<=f;++q)var t=e-f+q|0,v=q|0,u=pc(t,v)|0,t=t/u|0,v=v/u|0,u=pc(d,v)|0,d=d/u|0,v=v/u|0,u=pc(t,p)|0,t=t/u|0,p=p/u|0,d=d*t|0,p=p*v|0;return l.real(d/p)}if("list"===b.ctype){e=b.value.length;if(0>f||f>e)return g.turnIntoCSList([]);if(0===f)return g.turnIntoCSList([g.turnIntoCSList([])]); -if(f===e)return g.turnIntoCSList([b]);n=[];m=Array(f);c(0,0);return g.turnIntoCSList(n)}}return k};t.zeromatrix$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?g.zeromatrix(c,b):k};t.zerovector$1=function(a,h){var c=B(a[0]);return"number"===c.ctype?g.zerovector(c):k};t.transpose$1=function(a,h){var c=B(a[0]);return"list"===c.ctype&&-1!==g._helper.colNumb(c)?g.transpose(c):k};t.row$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&& --1!==g._helper.colNumb(c)?g.row(c,b):k};t.column$2=function(a,h){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&-1!==g._helper.colNumb(c)?g.column(c,b):k};t.dict$0=function(a,h){var c=Ka.create(),b;for(b in h)h.hasOwnProperty(b)&&Ka.put(c,w.string(b),A(h[b]));return c};t.put$3=function(a,h){var c=A(a[0]),b=A(a[1]),d=A(a[2]);return"dict"===c.ctype?(c=Ka.clone(c),Ka.put(c,b,d),c):k};t.get$2=function(a,h){var c=A(a[0]),b=A(a[1]);return"dict"===c.ctype?Ka.get(c,b,k):k};t.red$1=function(a, -h){var c=A(a[0]);return"number"===c.ctype?g.realVector([Math.min(1,Math.max(0,c.value.real)),0,0]):k};t.green$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?g.realVector([0,Math.min(1,Math.max(0,c.value.real)),0]):k};t.blue$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?g.realVector([0,0,Math.min(1,Math.max(0,c.value.real))]):k};t.gray$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?(c=Math.min(1,Math.max(0,c.value.real)),g.realVector([c,c,c])):k};t.grey$1=t.gray$1;D.HSVtoRGB= -function(a,h,c){var b,d,e,f,k,l;a&&void 0===h&&void 0===c&&(h=a.s,c=a.v,a=a.h);f=Math.floor(6*a);k=6*a-f;a=c*(1-h);l=c*(1-k*h);h=c*(1-(1-k)*h);switch(f%6){case 0:b=c;d=h;e=a;break;case 1:b=l;d=c;e=a;break;case 2:b=a;d=c;e=h;break;case 3:b=a;d=l;e=c;break;case 4:b=h;d=a;e=c;break;case 5:b=c,d=a,e=l}return g.realVector([b,d,e])};t.hue$1=function(a,h){var c=A(a[0]);return"number"===c.ctype?(c=c.value.real,c-=Math.floor(c),D.HSVtoRGB(c,1,1)):k};D.shapeconvert=function(a){var h,c;if("circle"===a.type){h= -a.value.value[0];h=w.div(h,h.value[2]);var b=h.value[0].value.real,d=h.value[1].value.real;a=a.value.value[1].value.real;c=Array(125);var e=2*Math.PI/125;for(h=0;125>h;h++)c[h]={X:b+Math.cos(h*e)*a,Y:d+Math.sin(h*e)*a};return[c]}if("polygon"===a.type){b=[];for(h=0;h=c?c=String.fromCharCode(c):(c-=65536,c=String.fromCharCode((c>>10)+55296,(c&1023)+56320));return w.string(c)};t.international$1=function(a,h){return t.international$2([a[0],null],h)};t.international$2=function(a,h){var c=A(a[0]);if("string"!==c.ctype)return k;var b=(p.translations||{})[p.language||"en"]||{};if(!b.hasOwnProperty(c.value))return c;var d=b[c.value];if("string"===typeof d)return w.string(d);if(null===a[1])return c; -var e=A(a[1]),e="number"===e.ctype?e.value.real:0,b=(b._pluralFormFunction||Vd)(e);return bm&&(m=a.length)});for(var n=[],p=0;pe.length)for(p=e.length;p(c.x-b.x)*(c.x-b.x)+(c.y-b.y)*(c.y-b.y)||1E-12>p||1E-12>f)return k;0>g.crossratio3(d,a,e,g.cross(g.cross(d,e),g.linfty),g.ii).value.real?x.drawsegcore(c, -n):x.drawRaySegment(d,a)}return k};D.drawcircle=function(a,b,c){var d=B(a[0]);a=B(a[1]);var e=D.extractPoint(d);if(!e.ok||"number"!==a.ctype||!l._helper.isAlmostReal(a))return k;var d=z.drawingstate.matrix,g=e.x*d.a-e.y*d.b+d.tx,e=e.x*d.c-e.y*d.d-d.ty;x.handleModifs(b,x.conicModifs);x.preDrawCurve();y.lineJoin="miter";y.beginPath();y.arc(g,e,Math.abs(a.value.real)*d.sdet,0,2*Math.PI);y.closePath();"D"===c&&y.stroke();"F"===c&&(y.fillStyle=x.lineColor,y.fill());"C"===c&&y.clip();return k};t.drawconic$1= -function(a,b){var c;c=B(a[0]);if("list"!==c.ctype||3!==c.value.length&&6!==c.value.length)return console.error("could not parse conic"),k;if(6===c.value.length){for(var d=0;6>d;d++)if("number"!==c.value[d].ctype)return console.error("could not parse conic"),k;var e=l.real(.5),d=c.value[0],f=c.value[2],f=l.mult(f,e),m=c.value[1],n=c.value[3],n=l.mult(n,e),p=c.value[4],p=l.mult(p,e);c=c.value[5];c=g.turnIntoCSList([g.turnIntoCSList([d,f,n]),g.turnIntoCSList([f,m,p]),g.turnIntoCSList([n,p,c])])}else{for(d= -0;3>d;d++)for(f=0;3>f;f++)if("number"!==c.value[d].value[f].ctype)return console.error("could not parse conic"),k;g.equals(c,g.transpose(c)).value||(d=w.mult(c,l.real(.5)),c=w.mult(g.transpose(c),l.real(.5)),c=g.add(d,c))}c=g.normalizeMax(c);return D.drawconic(c,b)};D.drawconic=function(a,b){x.handleModifs(b,x.conicModifs);if(0!==x.lsize){x.preDrawCurve();for(var c=g.normalizeMax(a),d=c,e=0;2>e;e++)for(var f=0;2>f;f++)if(Math.abs(c.value[e].value[f].value.imag)>l.eps)return;e=g.turnIntoCSList([g.realVector([-1, --1,1]),g.realVector([1,0,0]),g.realVector([0,1,0])]);f=z.from(0,0,1);f[2]=1;var n=z.from(1,0,1);n[2]=1;var p=z.from(0,1,1);p[2]=1;var f=g.turnIntoCSList([g.realVector(f),g.realVector(n),g.realVector(p)]),f=g.transpose(f),e=w.mult(f,e),e=g.inverse(e),c=w.mult(g.transpose(e),c),c=w.mult(c,e),e=c.value[0].value[0].value.real,f=c.value[1].value[0].value.real,n=c.value[1].value[1].value.real,p=c.value[2].value[0].value.real,q=c.value[2].value[1].value.real,v=c.value[2].value[2].value.real,c=[[e,f,p],[f, -n,q],[p,q,v]],u=1E-14>Math.abs(e*n*v-e*q*q-f*f*v+2*f*p*q-n*p*p);if(u&&"Circle"===a.usage){var A=w.mult(g.adjoint3(d),g.linfty);l.abs(A.value[2]).value.real>l.eps&&(u=!1)}var A=da>ca?da:ca,B=-1.5*A,C=1.5*A,D=-1.5*A,E=1.5*A,F=1;u&&(F=0);if(F)var p=0,p=1E-14Math.abs(a)?"parabola":1E-14na||100>Math.abs(b-c)?.5:0>Q||Q>ca?10:3;d=-f*k*Q*Q-2*f*m*Q-f*a+r*r*Q*Q+2*r*l*Q+l*l;d=Math.sqrt(d); -h=1/f*(-r*Q-l+d);d=-1/f*(r*Q+l+d);var q,Ga;F?(q=[h,Q,1],Ga=[d,Q,1],q=w.mult(G,g.realVector(q)),Ga=w.mult(G,g.realVector(Ga)),h=q.value[0].value.real,d=Ga.value[0].value.real,q=q.value[1].value.real,Ga=Ga.value[1].value.real):Ga=q=Q;isNaN(h)||"ellipsoid"!==e?!isNaN(h)&&h>=B&&h<=C&&(J.push(h),K.push(q)):(J.push(h),K.push(q));isNaN(d)||"ellipsoid"!==e?!isNaN(d)&&d>=B&&d<=C&&(I.push(d),M.push(Ga)):(I.push(d),M.push(Ga))}}},f=function(a){var c,b,h;H(a);if(6!==a.length)console.error("Conic needs 6 Parameters"); -else{h=a[0];var d=a[1],e=a[2],f=a[3],g=a[4],r=a[5];c=-h*g+d*f;b=Math.sqrt(h*(-h*e*r+h*Math.pow(g,2)+Math.pow(d,2)*r-2*d*f*g+e*Math.pow(f,2)));e=h*e-Math.pow(d,2);1E-14D&&hD&&bb?h:b;S(a,D,c);N=J.concat(I.reverse());O=K.concat(M.reverse());R(N,O);P();S(a,b,E);R(J,K);if(L(J[0],K[1])||L(I[0],M[0]))y.beginPath(),y.moveTo(J[0],K[0]),y.lineTo(I[0],M[0]),y.stroke();R(I,M);P();S(a,c, -b);R(J,K);y.beginPath();y.moveTo(J[0],K[0]);y.lineTo(I[0],M[0]);y.stroke();y.beginPath();y.moveTo(J[J.length-1],K[K.length-1]);y.lineTo(I[I.length-1],M[M.length-1]);y.stroke();R(I,M);P()}};u?e():f(c)}};t.drawall$1=function(a,b){var c=A(a[0]);if("list"===c.ctype){x.handleModifs(b,x.pointAndLineModifs);for(var d=0;df&&(f=d[l].value.length);-1===f?(d=d.map(function(a){return[a]}),f=1):d=d.map(function(a){return g.asList(a).value});var m=100,n=null,p=!0,q=z.drawingstate.textcolor;x.handleModifs(b, -{size:!0,color:function(a){g._helper.isNumberVecN(a,3)&&(q=x.makeColor([a.value[0].value.real,a.value[1].value.real,a.value[2].value.real]))},alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0,width:function(a){"number"===a.ctype&&(m=a.value.real)},height:function(a){"number"===a.ctype&&(n=a.value.real)},border:function(a){"boolean"===a.ctype&&(p=a.value)}});var t=z.drawingstate.textsize;null===t&&(t=la.textsize);null!==x.size&&(t=x.size);null===n&&(n=1.6*t);y.font=x.bold+ -x.italics+Math.round(10*t)/10+"px "+x.family;l=z.drawingstate.matrix;var v=f*m,u=c*n,t=e.x*l.a-e.y*l.b+l.tx+x.xOffset,w=e.x*l.c-e.y*l.d-l.ty-x.yOffset-u;if(p){x.preDrawCurve();y.strokeStyle=x.lineColor;y.beginPath();for(l=1;lk)!f&&p&&(y.stroke(),p=!1);else if(n||q){var t=l.real((a.value.real+b.value.real)/2);J.setvar(B,t);var v=A(w),u=c(v);if(n&&q&&u){var Nb=h.value.real,q=v.value.real,u=g.value.real;if(n=1>Math.abs(Nb+u-2*q)/m){var x=l.real((a.value.real+t.value.real)/2);J.setvar(B,x);var x=A(w),fc=l.real((t.value.real+b.value.real)/2);J.setvar(B,fc);fc=A(w);Nb=Math.abs(Nb+ -q-2*x.value.real)/m;q=Math.abs(q+u-2*fc.value.real)/m;n=n&&1>Nb&&1>q}n?(d(a,t,h,v,k/2),d(t,b,v,g,k/2)):(e(a,t,h,v,k/2),e(t,b,v,g,k/2))}else e(a,t,h,v,k/2),e(t,b,v,g,k/2)}}var f=!1,m=.2/Kb,n=0,p=!1,q=-10,t=10,v=.1,u=1E3,w=a[0],B;if(null!==a[1]&&"variable"===a[1].ctype)B=a[1].name;else{var C=D.plotvars(w);B="#";-1!==C.indexOf("t")&&(B="t");-1!==C.indexOf("z")&&(B="z");-1!==C.indexOf("y")&&(B="y");-1!==C.indexOf("x")&&(B="x")}J.newvar(B);var E=z.drawingstate.matrix;x.handleModifs(b,{color:!0,alpha:!0, -size:!0,dashpattern:!0,dashtype:!0,dashing:!0,lineCap:!0,lineJoin:!0,miterLimit:!0,connect:function(a){"boolean"===a.ctype&&(f=a.value)},start:function(a){"number"===a.ctype&&(q=a.value.real)},stop:function(a){"number"===a.ctype&&(t=a.value.real)},steps:function(a){"number"===a.ctype&&(u=a.value.real)}});y.strokeStyle=x.lineColor;y.lineWidth=x.lsize;var F,G,H,I,p=!1,C=l.real(14.32);J.setvar(B,C);H=A(w);if("number"!==H.ctype){if(g.isNumberVector(H).value&&2===H.value.length){p=!1;v=(t-q)/u;for(C=q;C< -t;C+=v)J.setvar(B,l.real(C)),I=A(w),g.isNumberVector(I).value&&2===I.value.length&&(F=+I.value[0].value.real,G=+I.value[1].value.real,I=F*E.a-G*E.b+E.tx,F=F*E.c-G*E.d-E.ty,p?y.lineTo(I,F):(y.beginPath(),y.moveTo(I,F),p=!0));y.stroke();J.removevar(B)}return k}for(I=q;Iq&&e(F,C,G,H,v),F=C,G=H;J.removevar(B);p&&y.stroke();return k};t.plotX$1=function(a,b){var c=a[0],d=D.plotvars(c),e="#";-1!==d.indexOf("t")&&(e="t");-1!==d.indexOf("z")&&(e="z"); --1!==d.indexOf("y")&&(e="y");-1!==d.indexOf("x")&&(e="x");J.newvar(e);d=z.drawingstate.matrix;y.fillStyle=z.drawingstate.linecolor;y.lineWidth=1;y.lineCap=x.lineCap;y.lineJoin=x.lineJoin;y.miterLimit=x.miterLimit;for(var f=!1,g=-10;10>g;g+=.01){J.setvar(e,l.real(g));var m=A(c);if("number"===m.ctype){var n=+m.value.real,m=g*d.a-n*d.b+d.tx,n=g*d.c-n*d.d-d.ty;f?y.lineTo(m,n):(y.beginPath(),y.moveTo(m,n),f=!0)}}y.stroke();J.removevar(e);return k};D.plotvars=function(a){function b(a,c){var h={},d;for(d= -a.length-1;0<=d;--d)h[a[d]]=a[d];for(d=c.length-1;0<=d;--d)h[c[d]]=c[d];d=[];for(var e in h)h.hasOwnProperty(e)&&d.push(h[e]);return d}function c(a,c){for(var b=0;bf||!Number.isInteger(f)?(e.video.aspectRatio=f,e.video.advanced[0].aspectRatio={min:f,max:f}, -e.video.advanced[1].aspectRatio={ideal:f}):(e.video.height=f,e.video.advanced[0].height={min:f,max:f},e.video.advanced[1].height={ideal:f}))}d&&(e=[320,640,1024,1280,1920,2560],e=e.map(function(a){return{width:{min:a}}}),e={video:{width:16E3,height:9E3,advanced:e},audio:!1});var d=null,l=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia;l?d=function(a,c){navigator.mediaDevices.getUserMedia(e).then(a,c)}:(l=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia|| -navigator.msGetUserMedia)&&(d=function(a,c){l.call(navigator,e,a,c)});if(!d)return console.warn("getUserMedia call not supported"),k;var m=document.createElement("video");m.autoplay=!0;f=aa(m,!0);console.log("Opening stream.");d(function(a){a=window.URL.createObjectURL(a);m.src=a;m.addEventListener("loadeddata",I)},function(a){console.error("Could not get user video:",String(a),a)});return f};t.playvideo$1=function(a,b){var c=La(B(a[0]));c.live&&c.img.play&&c.img.play();return k};t.pausevideo$1=function(a, -b){var c=La(B(a[0]));c.live&&c.img.pause&&c.img.pause();return k};var Db;t.imagergba$3=function(a,b){var c=La(B(a[0])),d=B(a[1]),e=B(a[2]);if(!c||"number"!==d.ctype||"number"!==e.ctype||!c.ready)return k;d=Math.round(d.value.real);e=Math.round(e.value.real);if(!Fa(d)||!Fa(e))return k;c=rb(c,d,e,1,1);return g.realVector([255*c[0],255*c[1],255*c[2],c[3]])};t.imagergb$3=t.imagergba$3;t.imagergba$4=function(a,b){var c=La(B(a[2]));if(!c||!c.ready)return k;var d=c.width,e=c.height,f=M(a[0]),l=M(a[1]),m= -M(g.realVector([0,e,1])),d=M(g.realVector([d,e,1]));if(f===k||l===k||n===k)return k;var n=g.ii,e=g.jj,m=D.basismap(m,d,n,e),f=D.basismap(f,l,e,n),n=M(a[3]);var p=D.extractPoint(w.mult(m,w.mult(g.adjoint3(f),n)));if(p.ok){var l=c.width,m=c.height,n=!0,q=!1;void 0!==b.interpolate&&(f=A(b.interpolate),"boolean"===f.ctype&&(n=f.value));void 0!==b.repeat&&(f=A(b.repeat),"boolean"===f.ctype&&(q=f.value));n&&(p.x-=.5,p.y-=.5);q&&(p.x=(p.x%l+l)%l,p.y=(p.y%m+m)%m);d=Math.floor(p.x);e=Math.floor(p.y);if(Fa(d)&& -Fa(e)){f=[0,0,0,0];if(n){var n=p.x-d,p=p.y-e,t=rb(c,d,e,2,2);if(q){if(d===l-1||e===m-1)var q=rb(c,(d+1)%l,e,1,1),u=rb(c,d,(e+1)%m,1,1),c=rb(c,(d+1)%l,(e+1)%m,1,1),t=t.slice(0,4).concat(q,u,c)}else{if(-1===d||d===l-1)n=Math.round(n);if(-1===e||e===m-1)p=Math.round(p)}for(c=0;4>c;c++)f[c]=(1-p)*((1-n)*t[c]+n*t[c+4])+p*((1-n)*t[c+8]+n*t[c+12])}else f=rb(c,d,e,1,1);c=g.realVector(f)}else c=k}else c=k;return c};t.imagergb$4=function(a,b){var c=t.imagergba$4(a,b);return c===k?k:g.turnIntoCSList(c.value.slice(0, -3))};"use strict";var re=[{key:[":"],field:["."],deg:["\u00b0"],take:["_"]},{functionCall:!0},{rassoc:!0,pow:["^"],sqrt:["\u221a"]},{mul:["*","\u2062","\u22c5","\u00b7"],cross:["\u00d7"],div:["/","\u00f7","\u2215","\u2236"]},{add:["+"],sub:["-","\u2212"],neg:["!","\u00ac"]},{seq:[".."]},{eq:["==","\u225f"],ne:["!=","<>","\u2260"],lt:["<"],gt:[">"],le:["<=","\u2264","\u2266"],ge:[">=","\u2265","\u2267"],aeq:["~=","\u2248"],ane:["~!=","\u2249"],alt:["~<","\u2a89"],agt:["~>","\u2a8a"],ale:["~<=","\u2a85"], -age:["~>=","\u2a86"],"in":["\u2208"],nin:["\u2209"]},{and:["&","\u2227"],or:["%","\u2228"]},{rassoc:!0,prepend:["<:"]},{concat:["++","\u222a"],remove:["--","\u2216"],common:["~~","\u2229"],append:[":>"]},{rassoc:!0,assign:["="],define:[":="],undefine:[":=_"],bdefine:["::="]},{seq:[";"]},{modif:["->","\u2192"]},{rassoc:!0,list:[","]}],se=["+","-"],te=["!","\u221a"],ue=["\u00b0",":=_"],ve=[";",","],Cc=[],xa={},cd;(function(){var a=0;re.forEach(function(b){a+=2;var c=!!b.rassoc;b.functionCall&&(cd=a); -for(var d in b){var e=b[d];if("boolean"!==typeof e)for(var f={name:d,sym:e[0],symbols:e,rassoc:c,precedence:a,prefix:!1,postfix:!1,infix:!0,bare:!1},g=0;gd)return b;e||(b=[b]);for(var k=b.length,n,p,u,E,F,H,N,M=[],ia=0;ian)u=p,M.push(u);else{u=p;E=d*d;F=p[0];for(N=H=1;Nd)return f.JS.Clone(b);b[0]instanceof Array||(b=[b]);var e,k,n,p,u,E,F,H,N,M,ia,S,V,Y,ba,fa=b.length,ha=d*d,ea=[];for(e=0;ep;p++){u=[];E=n.length;n[E-1].X!=n[0].X||n[E-1].Y!=n[0].Y?(ia=1,n.push({X:n[0].X,Y:n[0].Y}),E=n.length):ia=0;M=[];for(k=0;kH)return 0;for(d&&(b[H]= +b[0],H++);--H;)p=b[H],E=p.X,p=p.Y,u=b[H-1],F=u.X,u=u.Y,k+=f((E-F)*(E-F)+(p-u)*(p-u));d&&b.pop();return k/e};f.JS.PerimeterOfPaths=function(b,d,e){e||(e=1);for(var k=0,n=0;nha&&(ha=0);++ha;return function(){--ha;0>ha&&console.error("Wait count mismatch: "+k);if(0===ha)for(var p=0,F=Ga.length;p=ha?p.startup():!1!==k.autostart&&Ga.push(p);return p}var ha=-1,Ga=[];"undefined"===typeof document||"undefined"===typeof window||"undefined"===typeof document.addEventListener||"undefined"!== +typeof window.cindyDontWait&&!0===window.cindyDontWait||document.addEventListener("DOMContentLoaded",p("DOMContentLoaded"));var pa=null,Ha=null,ea={};F.getBaseDir=function(){if(null!==pa)return pa;for(var k=document.getElementsByTagName("script"),p=0;p tag for Cindy.js");return pa=Ha=!1};F.addNewScript=function(k, +p){p||console.error.bind(console);var N=F.getBaseDir();if(!1===N)return!1;var V=document.createElement("script");V.src=N+k;var N=Ha.nextSibling,S=Ha.parentElement;N?S.insertBefore(V,N):S.appendChild(V);return V};F.loadScript=function(k,p,N,V){for(var S=String(k).split("."),fa=window;S.length&&"object"===typeof fa&&null!==fa;)fa=fa[S.shift()];if(fa&&!S.length)return N(),!0;V||(V=console.error.bind(console));S=ea[k];if(!S){S=F.addNewScript(p,V);if(!1===S)return V("Can't load additional components."), +!1;ea[k]=S}S.addEventListener("load",N);S.addEventListener("error",V);return null};F._autoLoadingPlugin={};F.autoLoadPlugin=function(k,p,N){if(F._pluginRegistry[k])return N(),!0;var V=F._autoLoadingPlugin[k];if(!V){p||(p=k+"-plugin.js");V=F._autoLoadingPlugin[k]=[];k=F.addNewScript(p);if(!1===k)return!1;k.addEventListener("error",console.error.bind(console))}V.push(N);return null};var k={ctype:"undefined"};F.waitFor=p;F._pluginRegistry={};F.instances=[];F.registerPlugin=function(k,p,N){if(1!==k)return console.error("Plugin API version "+ +k+" not supported"),!1;F._pluginRegistry[p]=N;(F._autoLoadingPlugin[p]||[]).forEach(function(k){k()})};var Qa=0;F.dumpState=function(k){k=F.instances[k||0].saveState();console.log(JSON.stringify(k))};F.debugState=function(k){F.instances.map(function(k){var p=k.config,p=JSON.parse(JSON.stringify(p)),E=k.saveState();console.log(JSON.stringify(E));for(var F in E)p[F]=E[F];k.shutdown();return p}).forEach(function(k){F(k)})};F.newInstance=function(p){function F(){na.width=ca=na.clientWidth;na.height=da= +na.clientHeight;A.setTransform(1,0,0,1,0,0);y.setMat(25,0,0,25,250.5,250.5);if(Db)for(var a=0;a=c.HAVE_METADATA?(q.width=c.videoWidth,q.height=c.videoHeight):(q.ready=!1,c.addEventListener("loadedmetadata",function(){q.width=c.videoWidth;q.height=c.videoHeight;q.ready=!0;q.whenReady= +f;d.forEach(f);e()}),q.whenReady=d.push.bind(d));else if("canvas"===b)q.width=c.width,q.height=c.height;else return console.error("Not a valid image element",b,c),k;return{ctype:"image",value:q}}function ea(a){function g(a,c){var g=document.createElement("button"),q=document.createElement("img");g.appendChild(q);m.appendChild(g);Gb(q,a);g.addEventListener("click",c);Va[a]=function(a){a?g.classList.add("CindyJS-active"):g.classList.remove("CindyJS-active")}}function c(a){if(k){var c=e.getBoundingClientRect(); +ha(h*(a.clientX-c.left-e.clientLeft+.5)/c.width+b)}}var q=document.createElement("div");q.className="CindyJS-animcontrols";na.parentNode.appendChild(q);var b=0,d=1,h=1;a.animation&&a.animation.speedRange&&Ia(a.animation.speedRange[0])&&Ia(a.animation.speedRange[1])&&(b=a.animation.speedRange[0],d=a.animation.speedRange[1],h=d-b);var e=document.createElement("div");e.className="CindyJS-animspeed";q.appendChild(e);var f=document.createElement("div");e.appendChild(f);H(e,"mousedown",function(a){k=!0; +c(a)});H(e,"mousemove",c);H(na.parentNode,"mouseup",function(a){k=!1},!0);var m=document.createElement("div");m.className="CindyJS-animbuttons";q.appendChild(m);g("play",M);g("pause",Ga);g("stop",Ha);Va.stop(!0);oc=function(a){a=(a-b)/h;a=Math.max(0,Math.min(1,a));a=.1*Math.round(1E3*a);f.style.width=a+"%"};var k=!1}function ha(a){Vc=a;oc&&oc(a)}function f(a){return a()}function pa(a,g,c){var q=null;p.plugins&&(q=p.plugins[a]);q||(q=va._pluginRegistry[a]);q?t.use$1([w.wrap(a)],{}):(++Wc,va.autoLoadPlugin(a, +g,function(){t.use$1([w.wrap(a)],{});Y(c)}))}function Y(a){0===--Wc&&(a?e():(z(R.init),(p.animation||p).autoplay&&M(),sa.canvas&&ic(sa.canvas,p)))}function ba(){null!==Hb&&(qa.set(Hb.state),Object.keys(Hb.speeds).forEach(function(a){var g=v.csnames[a];"undefined"!==typeof g.behavior&&(a=Hb.speeds[a],g.behavior.vx=a[0],g.behavior.vy=a[1],g.behavior.vz=a[2],g.behavior.fx=0,g.behavior.fy=0,g.behavior.fz=0)}),Vd())}function M(){if(!cb){if(Xb){var a=ib.backup;a.set(qa);for(var g={},c=0;c
';document.body.appendChild(c); +g=document.getElementById("cmd");q=document.getElementById("log");g.onkeydown=function(c){13===c.keyCode&&""!==g.value&&(a["in"](g.value),c=t.parse$1([w.wrap(g.value)],[]),c=z(c),console.log(Z(c)),"undefined"!==c.ctype&&wa.out(Z(c)),g.value="",q.scrollTop=q.scrollHeight)};this.append=function(a){q.appendChild(a)};this.clear=function(){q.innerHTML=""}}function gb(a){var g=a;"string"===typeof a&&(g=document.getElementById(a));this.append=function(a){g.appendChild(a)};this.clear=function(){g.innerHTML= +""}}function ua(){this.append=function(a){};this.clear=function(){}}function H(a,g,c,q){void 0===q&&(q=!1);jb.push(function(){a.removeEventListener(g,c,q)});a.addEventListener(g,c,q)}function ic(a,g){function c(c){var g=a.getBoundingClientRect();c=y.to(c.clientX-g.left-a.clientLeft+.5,c.clientY-g.top-a.clientTop+.5);aa.prevx=aa.x;aa.prevy=aa.y;aa.x=c[0];aa.y=c[1];ra[0]=aa.x;ra[1]=aa.y;e()}function q(a){for(var c=a.changedTouches,g=!1,q=0;qc[0]&&(c=[k.value.real,f]),Ra.value.realq[0]&&(q=[Ra.value.real,f])))}c[0]-b[0]>q[0]-d[0]?(b=b[1],c=c[1]):(b=d[1],c=q[1]);if(b!==c){t.draw$2([b,c],{dashtype:g.dashtype,size:g.size,color:g.color,alpha:g.alpha,overhang:g.overhang});break a}}t.draw$1([g.homog],{dashtype:g.dashtype,size:g.size,color:g.color,alpha:g.alpha})}for(a= +0;a"+Z(a.value):"shape"===a.ctype?a.type:"error"===a.ctype?"Error: "+a.message:"variable"=== +a.ctype?Z(J.getvar(a.name)):"geo"===a.ctype?a.value.name:"image"===a.ctype?"IMAGE":"_?_"}function ab(a,g){var c="undefined"===a[0].ctype,q="undefined"===a[1].ctype,b=z(a[1]);if(c||q)return k;"variable"===a[0].ctype?J.setvar(a[0].name,b):"infix"===a[0].ctype?"_"===a[0].oper?D.assigntake(a[0],b):ka("Can't use infix expression as lvalue"):"field"===a[0].ctype?D.assigndot(a[0],b):"userdata"===a[0].ctype?D.assigncolon(a[0],b):"function"===a[0].ctype&&"genList"===a[0].oper?"list"===b.ctype?D.assignlist(a[0].args, +b.value):ka("Expected list in rhs of assignment"):ka("Left hand side of assignment is not a recognized lvalue");return b}function vb(a,g){var c=z(a[0]),q=z(a[1]);if(c.ctype===q.ctype){if("number"===c.ctype)return w.bool(c.value.real===q.value.real&&c.value.imag===q.value.imag);if("string"===c.ctype||"boolean"===c.ctype)return w.bool(c.value===q.value);if("list"===c.ctype)return h.equals(c,q);if("geo"===c.ctype)return w.bool(c.value===q.value)}return{ctype:"boolean",value:!1}}function Oc(a,g){return w.not(vb(a, +g))}function hc(a,g){var c=B(a[0]),q=B(a[1]);return"number"===c.ctype&&"number"===q.ctype?{ctype:"boolean",value:m._helper.isAlmostEqual(c,q)}:"string"===c.ctype&&"string"===q.ctype||"boolean"===c.ctype&&"boolean"===q.ctype?{ctype:"boolean",value:c.value===q.value}:"list"===c.ctype&&"list"===q.ctype?h.almostequals(c,q):{ctype:"boolean",value:!1}}function Pc(a,g){var c=B(a[0]),q=B(a[1]);return"boolean"===c.ctype&&"boolean"===q.ctype?{ctype:"boolean",value:c.value&&q.value}:k}function Qc(a,g){var c= +B(a[0]),q=B(a[1]);return"boolean"===c.ctype&&"boolean"===q.ctype?{ctype:"boolean",value:c.value||q.value}:k}function Rc(a,g){var c=a[0];"void"!==c.ctype&&(c=B(c));var q=B(a[1]),b=w.add(c,q);"Angle"===c.usage&&"Angle"===q.usage&&(b=w.withUsage(b,"Angle"));return b}function jc(a,g){var c=a[0];"void"!==c.ctype&&(c=B(c));var q=B(a[1]),b=w.sub(c,q);"Angle"===c.usage&&"Angle"===q.usage&&(b=w.withUsage(b,"Angle"));return b}function Sc(a,g){var c=B(a[0]),q=B(a[1]),b=w.mult(c,q);"Angle"!==c.usage||q.usage? +"Angle"!==q.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Tc(a,g){var c=B(a[0]),q=B(a[1]);"number"===q.ctype&&m._helper.isZero(q)&&ka("WARNING: Division by zero!");var b=w.div(c,q);"Angle"!==c.usage||q.usage?"Angle"!==q.usage||c.usage||(b=w.withUsage(b,"Angle")):b=w.withUsage(b,"Angle");return b}function Uc(a,g){var c=B(a[0]),q=B(a[1]);return"number"===c.ctype&&"number"===q.ctype?m.pow(c,q):k}function $c(a,g){var c=K(a[0]),q=K(a[1]);if(c!==k&&q!==k){var b=h.cross(c, +q);"Point"===c.usage&&"Point"===q.usage&&(b=w.withUsage(b,"Line"));"Line"===c.usage&&"Line"===q.usage&&(b=w.withUsage(b,"Point"));return b}return k}function uc(a){var g=a.length;if(0===g)return[];if(1===g)return[0];if(2===g)return a[0][0]+a[1][1]<=a[0][1]+a[1][0]?[0,1]:[1,0];if(4a[h][e]&&(f[h].cost=a[h][e]);for(;;){for(h=0;hk[h][e]&&(l=k[h][e]);for(h=0;hq&&(q=c.value.length+q+1);if(0g.left&&(e=g.left);fg.top&&(m=g.top);k"===f.oper){var m=f.args[0];if("variable"!==m.ctype)throw la("Modifier name must be an identifier",f.start);h[m.name]=f.args[1]}else q.push(f)}d.oper=d.name.toLowerCase()+"$"+d.args.length}else if("||"===h)if(1===b.length)c.push({ctype:"function",oper:"abs_infix",args:b,modifs:{}});else if(2===b.length)c.push({ctype:"function",oper:"dist_infix",args:b,modifs:{}});else throw la("Don't support |\u2026| with "+ +b.length+" arguments",q.start);else{if("{}"===h)throw la("{\u2026} reserved for future use",q.start);"[]"!==h&&1===b.length?c.push({ctype:"paren",args:b}):0===b.length?c.push({ctype:"list",value:[]}):c.push({ctype:"function",oper:"genList",args:b,modifs:{}})}break;case "EOF":break a}for(c.length&1||c.push(null);3<=c.length;)$b(c);return{expr:c[0],closedBy:q}}function Lb(a){this.usedFunctions={};this.usedVariables={}}function z(a){if(void 0===a)return k;if("infix"===a.ctype)return a.impl(a.args,{}, +a);if("variable"===a.ctype)return z(J.getvar(a.name));if("function"===a.ctype)return Mb.push(a),a=D.evaluate(a.oper,a.args,a.modifs),Mb.pop(),a;if("void"===a.ctype)return k;if("field"===a.ctype){var g=z(a.obj);return"geo"===g.ctype?ta.getField(g.value,a.key):"list"===g.ctype?h.getField(g,a.key):k}return"userdata"===a.ctype?(g=z(a.obj),a=Z(z(a.key)),"_?_"===a&&(a=void 0),"geo"===g.ctype?ta.getuserData(g.value,a):"list"===g.ctype||"string"===g.ctype?ta.getuserData(g,a):k):a}function B(a){a=z(a);if("geo"=== +a.ctype){var g=a.value;if("P"===g.kind)return ta.getField(g,"xy");if("V"===g.kind)return g.value}return a}function K(a){a=z(a);if("geo"===a.ctype){var g=a.value;if("P"===g.kind||"L"===g.kind)return ta.getField(g,"homog")}return h._helper.isNumberVecN(a,3)?a:h._helper.isNumberVecN(a,2)?(g=h.turnIntoCSList([a.value[0],a.value[1],m.real(1)]),a.usage&&(g=w.withUsage(g,a.usage)),g):k}function Ua(a){var g=new Lb;g.usedFunctions=hb;g.infixmap=Q;a=g.parse(a);for(var c in g.usedVariables)J.create(c);return a} +function Td(a,g){return{ctype:"infix",args:[],impl:function(){Mb=[{oper:g}];var c=z(a);Mb=[];return c}}}function ka(a){wa.err(a+Mb.map(function(a){return"\n at "+a.oper}).join("\n"))}function ld(){this._path=[];this._defs=[""];this._imgcache=[];this._body=[];this._saveStack=[""];this._clipIndex=0;this._stroke=this._fill="#000";this._strokeOpacity=this._fillOpacity=null;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10;this.globalAlpha=1} +function md(){this._body=[];this._yPos=this._xPos=NaN;this._extGState={Af255:"<< /ca 1 >>",As255:"<< /CA 1 >>"};this._objects=[["%PDF-1.4\n"]];this._offset=this._objects[0][0].length;this._nextIndex=5;this._imgcache=[];this._xobjects={};this._pathUsed=-1;this._fillAlpha=this._strokeAlpha=this._globalAlpha=1;this.height=this.width=0;this.lineWidth=1;this.lineCap="butt";this.lineJoin="miter";this.miterLimit=10}function nd(a,g){var c=a.width,q=a.height,b=document.createElement("canvas");b.setAttribute("width", +c);b.setAttribute("height",q);b.setAttribute("style","display:none;");var d=sa.canvas;d.parentNode.insertBefore(b,d.nextSibling);try{return b.getContext("2d").drawImage(a,0,0,c,q),b.toDataURL(g||"image/png")}finally{b.parentNode.removeChild(b)}}function de(a){a=a.replace(RegExp("[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/]+","g"),"");var g=new Uint8Array(3*a.length>>2),c,q,b,d,h,e;for(q=c=0;c+3>4,g[q++]=d<<4|h>>2,g[q++]=h<<6|e;switch(a.length-c){case 0:break;case 2:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+ +1));g[q++]=b<<2|d>>4;break;case 3:b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c));d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+1));h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c+2));g[q++]=b<<2|d>>4;g[q++]=d<<4|h>>2;break;default:throw Error("Malformed Base64 input: "+(a.length-c)+" chars left: "+a.substr(c));}if(q!==g.length)throw Error("Failed assertion: "+q+" should be "+ +g.length);return g}function ee(a){function g(c){return(a[c]<<24|a[c+1]<<16|a[c+2]<<8|a[c+3])>>>0}if(57>a.length)throw Error("Too short to be a PNG file");if(2303741511!==g(0)||218765834!==g(4))throw Error("PNG signature missing");for(var c=[],q=8;qa.length)throw Error("Incomplete chunk at offset 0x"+q.toString(16));var b=g(q);if(2147483648<=b)throw Error("Chunk too long");var d=q+12+b;if(d>a.length)throw Error("Incomplete chunk at offset 0x"+q.toString(16));var h=a.subarray(q+ +4,q+8),h=String.fromCharCode.apply(String,h);c.push({len:b,type:h,data:a.subarray(q+8,q+8+b),crc:g(q+8+b)});q=d}return c}function ac(a,g){var c;if(c=/^rgba\(([0-9.]+), *([0-9.]+), *([0-9.]+), *([0-9.]+)\)$/.exec(a))g(+c[1],+c[2],+c[3],+c[4]);else if(c=/^rgb\(([0-9.]+), *([0-9.]+), *([0-9.]+)\)$/.exec(a))g(+c[1],+c[2],+c[3],1);else throw Error("Can't handle color style "+a);}function fe(a){var g=1;Object.keys(bb).forEach(function(c){var q=bb[c].value.img;if(void 0===q.cachedDataURL&&q.src)if("data:"=== +q.src.substr(0,5))q.cachedDataURL=q.src;else{++g;q.cachedDataURL=null;var b=new XMLHttpRequest;b.responseType="blob";b.onreadystatechange=function(){if(b.readyState===XMLHttpRequest.DONE)if(200===b.status){var c=new FileReader;c.onloadend=function(){q.cachedDataURL=c.result;console.log("Cached data for image "+q.src);0===--g&&a()};c.readAsDataURL(b.response)}else console.error("Failed to load "+q.src+": "+b.statusText),0===--g&&a()};b.open("GET",q.src,!0);b.send()}});0===--g&&a()}function rb(a,g, +c){for(c||(c="0");a.length20/l&&(k=1E4)}else if("C"===d.kind)f=v.csnames[d.args[0]],k=0,"undefined"!==typeof d.radius&&(k=d.radius.value.real),e=m.div(f.homog.value[0],f.homog.value[2]).value.real,f=m.div(f.homog.value[1],f.homog.value[2]).value.real,e-=a.x,f-=a.y,k=Math.sqrt(e*e+f*f)-k,f=e=0,0>k&&(k=-k),k+=30/l;else if("L"===d.kind||"S"===d.kind)e=d.homog,k=m,f=k.add(k.mult(e.value[0],k.conjugate(e.value[0])), +k.mult(e.value[1],k.conjugate(e.value[1]))),f=h.scaldiv(k.sqrt(f),e),k=f.value[0].value.real*a.x+f.value[1].value.real*a.y+f.value[2].value.real,e=f.value[0].value.real*k,f=f.value[1].value.real*k,0>k&&(k=-k),k+=1;kMath.abs(a.offset.x)&&.5>Math.abs(a.offset.y)&& +!a.mover.tmp}function rd(a){return yc(a)&&"P"===a.mover.kind}function sd(a){return yc(a)&&("L"===a.mover.kind||"S"===a.mover.kind)}function zc(a){ja={mover:a,offset:{x:0,y:0},prev:{x:aa.x,y:aa.y}}}function sb(){var a=Ob(aa);rd(a)?Aa[Ya]=a.mover:(Aa[Ya]={type:"Free",name:Xa(),labeled:!0,pos:[ra[0],ra[1],1]},Ka(Aa[Ya]));Ya++}function td(){var a=Ob(aa);return sd(a)?(Aa[Ya]=a.mover,Ya++,!0):!1}function ud(){var a=Ob(aa),g;(g=sd(a))||(g=yc(a)&&"C"===a.mover.kind);return g?(Aa[Ya]=a.mover,Ya++,!0):!1}function yb(){var a= +Ob(aa);if(rd(a))for(Pb.args[1]=a.mover.name,a=0;ad*d):!1}function Bc(a,g){a.isshowing=!0;if(a.args)for(var c=0;c1E12*g(Da[c+1])&&(Da[c+1]=0)}function ec(){if(Ab)Ma=!0;else throw Ed;}function Fd(a,g,c,q,b){return w.add(q,w.mult(c,w.sub(b,q)))}function Yd(){L&&(L.currentMouseAndScripts=[]);Dc=!0;if(ja){var a= +ja.mover,g=h.realVector([aa.x+ja.offset.x,aa.y+ja.offset.y,1]);Gd(a,g,"mouse");ja.prev.x=aa.x;ja.prev.y=aa.y}z(R.move);z(R.draw);Ma||zb();Dc=!1;L&&(L.fullLog.push(h.turnIntoCSList([h.turnIntoCSList(L.currentMouseAndScripts)])),L.length>L.logLength&&L.splice(0,L.length-L.logLength),L.currentMouseAndScripts=null,L.postMouseHooks.forEach(function(a){a()}))}function La(a,g,c){Gd(a,g,c);Dc||Ma||zb()}function Gd(a,g,c){L&&L.currentMouseAndScripts&&(L.currentMover=[]);a===Hd?(qa.set(Da),Ma=!1):(Hd=a,zb()); +Oa.set(qa);var q=1E4,b;b=dc[a.name];if(!b){var d={},e=0;b=[];d[a.name]=a;for(var f=v.gslp,k=0;kp?(r=[g,a],n=p):r=[a,g];p=function(){};if(L&&L.currentStep){var t=[L.labelTracing2,w.wrap(L.currentElement.name),h.turnIntoCSList(r),h.turnIntoCSList([c,q]),h.realMatrix([[b,d],[e,f]]),w.wrap(n),w.wrap(m),w.wrap(l),k];L.currentStep.push(h.turnIntoCSList(t));p=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));t[t.length-1]=L[a]}}h._helper.isNaN(a)||h._helper.isNaN(g)? +(p("Tracing failed due to NaNs."),Ma=!0):m>3*n&&l>3*n?p("Normal case, everything all right."):1E-5>l?1E-5>m?p("Staying inside singularity."):(p("Moved into singularity."),Ma=!0):1E-5>m?p("Moved out of singularity."):(Ab?p("Reached refinement limit, giving up."):p("Need to refine."),ec());return r}function Fc(a,g,c,q){var b=X(3),d=X(3),e=X(3),f=X(3);a=pe(a,g,c,q,b,d,e,f);T(a[0]);T(a[1]);T(a[2]);T(a[3]);return h.turnIntoCSList(a)}function pe(a,g,c,q,b,d,e,f){var m=function(){};b=[b,d,e,f];a=[a,g,c, +q];if(lb)return a;d=0;q=Array(4);for(c=0;4>c;c++)for(q[c]=Array(4),f=0;4>f;f++)e=h.projectiveDistMinScal(b[c],a[f]),q[c][f]=e;e=uc(q);g=Array(4);for(c=0;4>c;++c)g[c]=a[e[c]],d+=q[c][e[c]];var l=1*d,n=Infinity,p=Infinity;for(c=0;4>c;c++){if(h._helper.isNaN(a[c]))return m("Tracing failed due to NaNs."),Ma=!0,g;for(f=c+1;4>f;f++)e=h.projectiveDistMinScal(b[c],b[f]),n>e&&(n=e),e=h.projectiveDistMinScal(g[c],g[f]),p>e&&(p=e)}if(L&&L.currentStep){var r=[L.labelTracing4,w.wrap(L.currentElement.name),h.turnIntoCSList(g), +h.turnIntoCSList(b),h.realMatrix(q),w.wrap(d),w.wrap(n),w.wrap(p),k];L.currentStep.push(h.turnIntoCSList(r));m=function(a){L.hasOwnProperty(a)||(L[a]=w.wrap(a));r[r.length-1]=L[a]}}n>l&&p>l||(1E-5>p?1E-5>n?m("Staying inside singularity."):(m("Moved into singularity."),Ma=!0):1E-5>n?m("Moved out of singularity."):(Ab?m("Reached refinement limit, giving up."):m("Need to refine."),ec()));return g}function Id(a){var g=a.length,c,q;if(lb){for(c=0;c1-n&&(f=1-n),n=h.sesquilinearproduct(a[c],a[q]).value,n=(n.real*n.real+n.imag*n.imag)/ +(e[c]*e[q]),m>1-n&&(m=1-n)}n=uc(l);q=Array(g);d=0;e=!1;for(c=0;c3*d&&m>3*d?a("Normal case, everything all right."): +1E-5>m?1E-5>f?a("Staying inside singularity."):(a("Moved into singularity."),Ma=!0):1E-5>f?a("Moved out of singularity."):(Ab?a("Reached refinement limit, giving up."):a("Need to refine."),ec());return q}function Qb(a,g){var c=l._helper.flattenConicMatrix(a),q=l._helper.flattenConicMatrix(g),b=X(6),d=X(6),q=Ec(c,q,b,d);T(q[0]);T(q[1]);c=l._helper.buildConicMatrix(q[0].value);q=l._helper.buildConicMatrix(q[1].value);return h.turnIntoCSList([c,q])}function mb(a){if(mb.hasOwnProperty(a.kind))mb[a.kind](a)} +function Jd(a,g){return function(){a.incidences.push(g.name);g.incidences.push(a.name)}}function Kd(a,g){return{toString:function(){return"point "+a.name+" incident line "+g.name},apply:Jd(a,g),holds:function(){var c=h.scaldiv(h.abs(a.homog),a.homog),q=h.scaldiv(h.abs(g.homog),g.homog);return 1E-13>m.abs(h.scalproduct(c,q)).value.real}}}function Ld(a,g){return{toString:function(){return"point "+a.name+" incident conic "+g.name},apply:Jd(a,g),holds:function(){var c=w.mult(g.matrix,a.homog),c=w.mult(a.homog, +c),c=m.abs(c);1E-13>c.value.real&&(a.incidences.push(g.name),g.incidences.push(a.name))}}}function xd(){if(0!==ob.length){for(var a=0;aa&&(q+=2*Math.PI);0===a&&0>g&&(q=Math.PI);q>Math.PI&&(q-=2*Math.PI);return m.snap({ctype:"number",value:{real:Math.log(c),imag:q}})};m.pow=function(a,g){return m._helper.isZero(g)?m.one:m._helper.isZero(a)?m.zero:m._helper.isReal(g)?m.powRealExponent(a,g.value.real):m.exp(m.mult(m.log(a),g))};m.mod=function(a,g){var c=a.value.real,q=g.value.real,b=a.value.imag,d=g.value.imag,c=c-Math.floor(c/q)*q,b=b-Math.floor(b/d)*d;0===q&&(c=0);0===d&&(b=0);return m.snap({ctype:"number",value:{real:c, +imag:b}})};m._helper.seed="NO";m._helper.seedrandom=function(a){a-=Math.floor(a);m._helper.seed=.8*a+.1};m._helper.rand=function(){if("NO"===m._helper.seed)return Math.random();var a=m._helper.seed,a=1E3*Math.sin(1E3*a),a=a-Math.floor(a);return m._helper.seed=a};m._helper.randnormal=function(){var a=m._helper.rand(),g=m._helper.rand();return Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*g)};m._helper.isEqual=function(a,g){return a.value.real===g.value.real&&a.value.imag===g.value.imag};m._helper.isLessThan= +function(a,g){return a.value.real-q&&a-q};m._helper.isZero=function(a){return 0===a.value.real&&0===a.value.imag};m._helper.isAlmostZero=function(a){var g=a.value.real;a=a.value.imag; +return g-m.eps&&a-m.eps};m._helper.isReal=function(a){return 0===a.value.imag};m._helper.isAlmostReal=function(a){a=a.value.imag;return a-m.epsbig};m._helper.isNaN=function(a){return isNaN(a.value.real)||isNaN(a.value.imag)};m._helper.isFinite=function(a){return isFinite(a.value.real)&&isFinite(a.value.imag)};m._helper.isAlmostImag=function(a){a=a.value.real;return a-m.epsbig};m._helper.z3a=m.complex(-.5,.5*Math.sqrt(3));m._helper.z3b=m.complex(-.5,-.5* +Math.sqrt(3));m._helper.cub1={ctype:"list",value:[m.one,m.one,m.one]};m._helper.cub2={ctype:"list",value:[m._helper.z3a,m.one,m._helper.z3b]};m._helper.cub3={ctype:"list",value:[m._helper.z3b,m.one,m._helper.z3a]};m.solveCubic=function(a,g,c,q){a=m._helper.solveCubicHelper(a,g,c,q);return[h.scalproduct(m._helper.cub1,a),h.scalproduct(m._helper.cub2,a),h.scalproduct(m._helper.cub3,a)]};m._helper.solveCubicHelper=function(a,g,c,q){var b=a.value.real;a=a.value.imag;var d=g.value.real;g=g.value.imag; +var e=c.value.real,f=c.value.imag,k=q.value.real,l=q.value.imag,n=b*e-a*f;c=b*f+a*e;q=4*n-(d*d-g*g);var p=4*c-2*d*g,r=b*d-a*g,t=b*g+a*d,v=q*e-p*f-18*(r*k-t*l),p=q*f+p*e-18*(r*l+t*k);q=27*(b*b-a*a);var u=54*a*b,w=q*k-u*l,x=q*l+u*k,y=d*d-g*g,A=2*d*g,z=y*d-A*g,B=y*g+A*d,C=w+4*z,u=x+4*B;q=27*(v*e-p*f+C*k-u*l);p=27*(v*f+p*e+C*l+u*k);C=Math.sqrt(Math.sqrt(q*q+p*p));u=Math.atan2(p,q);p=C*Math.sin(u/2);q=C*Math.cos(u/2);z=-2*z+9*(r*e-t*f)-w+(q*b-p*a);B=-2*B+9*(r*f+t*e)-x+(q*a+p*b);q=Math.exp(Math.log(Math.sqrt(z* +z+B*B))/3);e=Math.atan2(B,z);u=q*Math.sin(e/3);p=q*Math.cos(e/3);q*=q;e*=2;n=2*y-6*n;c=2*A-6*c;A=-1.5874010519681996*(d*p-g*u);d=-1.5874010519681996*(d*u+g*p);g=1.2599210498948732*q*Math.cos(e/3);e=1.2599210498948732*q*Math.sin(e/3);q=4.762203155904599*(p*b-u*a);p=4.762203155904599*(p*a+u*b);b=q*q+p*p;u=(-n*p+c*q)/b;n=(n*q+c*p)/b;c=u;u=(-A*p+d*q)/b;A=(A*q+d*p)/b;d=u;u=(-g*p+e*q)/b;g=(g*q+e*p)/b;e=u;return h.turnIntoCSList([m.complex(n,c),m.complex(A,d),m.complex(g,e)])};var h={_helper:{},turnIntoCSList:function(a){return{ctype:"list", +value:a}}};h.EMPTY=h.turnIntoCSList([]);h.asList=function(a){return"list"===a.ctype?a:"number"===a.ctype||"boolean"===a.ctype||"geo"===a.ctype?h.turnIntoCSList([a]):h.EMPTY};h.realVector=function(a){for(var g=[],c=0;c=c||b>=q)&&w.isEqual(a.value[b],g.value[b]);)b++;return b===c&&bb&&(c=q,b=d)}return c};h.normalizeMax=function(a){var g=m.inv(h.maxval(a));return m._helper.isFinite(g)?h.scalmult(g,a):a};h.normalizeZ=function(a){var g=m.inv(a.value[2]);return h.scalmult(g,a)};h.dehom=function(a){a=a.value.slice();var g=a.length-1,c=m.inv(a[g]);a.length=g;for(var q=0;qg&&(c=a.value[q],g=b.value.real)}return h.scaldiv(c,a)};h.recursive=function(a,g){for(var c=[],q=0;qh.abs(l).value.real&&0===p&&(l=h._helper.inverseIteration(a,b.value[c])),f.value[c]=h._helper.isAlmostZeroVec(l)?l:h.scaldiv(h.abs(l),l),cm.abs(m.sub(b.value[c],b.value[c+1])).value.real)?p++:p=0);f=h.transpose(f)}return h.turnIntoCSList([b,f])};h._helper.isNormalMatrix=function(a){return 1E-10>h.abs(h.sub(a,h.transjugate(a))).value.real}; +h._helper.QRIteration=function(a,g){var c,b=a;c=m.real(b.value.length);var d=c.value.real,e=c.value.real;m.real(0);var f;h.idMatrix(c,c);var k=h.zeromatrix(c,c),l=h.idMatrix(c,c),n=g?g:2500,p,r,t,v=0,u=Array(e);for(c=0;cm.abs2(b.value[b.value.length-1].value[b.value[0].value.length-2]).value.real&&1e;e++)b=h.scaldiv(h.abs(b), +b),b=h.LUsolve(h.sub(a,h.scalmult(d,c)),JSON.parse(JSON.stringify(b)));return h.scaldiv(h.abs(b),b)};h._helper.toHessenberg=function(a){var g=JSON.parse(JSON.stringify(a)),c=g.value.length,b=m.real(c-1),d=m.real(c);m.real(1);if(h._helper.isUpperTriangular(g))return[h.idMatrix(b,b),a];var e;a=h.idMatrix(d,d);for(var f,d=1;dc&&v++;break}e=m.sub(e,f);k.value=k.value.splice(0,k.value.length-1)}return{Q:l,R:n,P:h.turnIntoCSList(p),rank:m.real(v)}};h._helper.getHouseHolder=function(a){var g=m.real(a.value.length);if(1E-16>h.abs2(a))return h.idMatrix(g,g);var c,b=m.real(1),d=h._helper.unitvector(m.real(a.value.length),b);c=h._helper.QRgetAlpha(a,0);c=h.sub(a,h.scalmult(c,d));c=h.scaldiv(h.abs(c),c);a=m.div(h.sesquilinearproduct(a,c),h.sesquilinearproduct(c, +a));g=h.idMatrix(g,g);return g=h.sub(g,h.scalmult(m.add(b,a),h._helper.transposeMult(c,h.conjugate(c))))};h._helper.reOrderbyPivots=function(a,g){for(var c=a.value.length.length,b=h.transpose(a),c=Array(c),d=0;da.value[g].value.real?h.abs(a):m.neg(h.abs(a))};h.LUdecomp=function(a){a=JSON.parse(JSON.stringify(a));var g,c,b,d,h,e=0,f,k=a.value.length,l=k-1,n=Array(k);for(b=0;b=l&&console.log("CG did not converge");return e};h.det= +function(a){if(1===a.value.length)return a.value[0].value[0];if(2===a.value.length)return h.det2(a.value[0],a.value[1]);if(3===a.value.length)return h.det3(a.value[0],a.value[1],a.value[2]);if(4===a.value.length)return h.det4m(a);var g=a.value.length,c=m.real(1),b,d,e=JSON.parse(JSON.stringify(a)),f,k,l,n;for(a=0;am.abs(e.value[d].value[a]).value.real&&(d=b);d!==a&&(b=e.value[d],e.value[d]=e.value[a],e.value[a]=b,c=m.neg(c));f= +e.value[a];for(b=a+1;b"]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real>=m.eps}:k};Q["=:="]=C("=:=");Q[">="]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&& +m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real>=b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value>=b.value}:k};Q["<="]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real<=b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value<=b.value}:k};Q["~>="]=function(a,g){var c=B(a[0]), +b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real>-m.eps}:k};Q["~<="]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real-b.value.real"]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)? +{ctype:"boolean",value:c.value.real>b.value.real}:"string"===c.ctype&&"string"===b.ctype?{ctype:"boolean",value:c.value>b.value}:k};Q["<"]=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype&&m._helper.isAlmostReal(c)&&m._helper.isAlmostReal(b)?{ctype:"boolean",value:c.value.real"]=Oc;Q["\u2208"]=function(a,g){var c=z(a[0]),b=z(a[1]);return"list"===b.ctype?h.contains(b, +c):k};Q["\u2209"]=function(a,g){var c=z(a[0]),b=z(a[1]);return"list"===b.ctype?w.not(h.contains(b,c)):k};Q["&"]=Pc;Q["%"]=Qc;Q["!="]=Oc;Q["~!="]=function(a,g){return w.not(hc(a,g))};Q[".."]=function(a,g){var c=z(a[0]),b=z(a[1]);return"number"===c.ctype&&"number"===b.ctype?h.sequence(c,b):k};Q["++"]=ad;Q["--"]=cd;Q["~~"]=bd;Q[":>"]=dd;Q["<:"]=ed;Q["="]=ab;Q[":="]=function(a,g,c){g="undefined"===a[1].ctype;if("undefined"===a[0].ctype||g)return k;if("function"===a[0].ctype){g=a[0].oper;var b=a[0].args, +d=a[1],h=1;if(db.hasOwnProperty(g)){h=db[g];if(h.definer===c)return k;h=h.generation+1}db[g]={oper:g,body:d,arglist:b,definer:c,generation:h}}"variable"===a[0].ctype&&J.setvar(a[0].name,a[1]);return k};Q[":=_"]=function(a,g){if("void"!==a[1].ctype)return k;"function"===a[0].ctype&&delete db[a[0].oper];return k};Q["::="]=C("::=");Q[";"]=function(a,g){var c="void"===a[0].ctype,b="void"===a[1].ctype;if(c&&b)return k;if(!c&&b)return z(a[0]);c||b||z(a[0]);return b?k:z(a[1])};var t={},D={evaluate:function(a, +g,c){if(db.hasOwnProperty(a)){a=db[a];if(void 0===a)g=k;else{var b=[];for(c=0;c "+Z(g[a]))};J.vstack=[];J.pushVstack=function(a){this.vstack.push(a)};J.popVstack=function(){this.vstack.pop()};J.cleanVstack=function(){for(var a=this.vstack;0 "+Z(z(b));ka(b);return k};t.errc$1=function(a,g){var c;"variable"===a[0].ctype?(c=z(J.getvar(a[0].name)),console.log(a[0].name+" ===> "+Z(c))):(c=z(a[0]),console.log(" ===> "+Z(c)));return k};t.print$1=function(a,g){wa.out(Z(z(a[0])), +!0);return k};t.println$1=function(a,g){wa.out(Z(z(a[0])));return k};t.assert$2=function(a,g){var c=z(a[0]);if("boolean"===c.ctype){if(!1===c.value)return t.println$1([a[1]],g)}else ka("Condition for assert is not boolean");return k};t.dump$1=function(a,g){console.log(JSON.stringify(a[0]));return k};t.repeat$2=function(a,g){return t.repeat$3([a[0],null,a[1]],g)};t.repeat$3=function(a,g){var c=B(a[0]),b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);if("number"!==c.ctype)return k;var c=Math.round(c.value.real), +d=1,h=1,e=c+1,f=!1,m=!1,l=!1,n;void 0!==g.start&&(n=z(g.start),"number"===n.ctype&&(f=!0,h=n.value.real));void 0!==g.step&&(n=z(g.step),"number"===n.ctype&&(l=!0,d=n.value.real));void 0!==g.stop&&(n=z(g.stop),"number"===n.ctype&&(m=!0,e=n.value.real));!f||m||l||(e=d*c+h);f||!m||l||(h=-d*(c-1)+e,e+=d);f||m||!l||(e=d*c+h);f&&m&&!l&&(d=(e-h)/(c-1),e+=d);f&&!m&&l&&(e=d*c+h);!f&&m&&l&&(h=-d*(c-1)+e,e+=d);f&&m&&l&&(e+=d);(h<=e&&0=e&&0>d)&&f&&m&&l&&(c=Math.floor((e-h)/d));J.newvar(b);e=k;for(f=0;f< +c;f++)J.setvar(b,{ctype:"number",value:{real:f*d+h,imag:0}}),e=z(a[2]);J.removevar(b);return e};t.while$2=function(a,g){for(var c=a[1],b=a[0],d=z(b),h=k;"list"!==d.ctype&&d.value;)h=z(c),d=z(b);return h};t.apply$2=function(a,g){return t.apply$3([a[0],null,a[1]],g)};t.apply$3=function(a,g){var c=B(a[0]);if("list"!==c.ctype)return k;var b="#";null!==a[1]&&"variable"===a[1].ctype&&(b=a[1].name);var c=c.value,d=[];J.newvar(b);for(var h=0;hd&&(d=b.value.length+d+1),0=b)return h.turnIntoCSList([]);if(m._helper.isZero(a.value[b]))return g=D.roots(h.turnIntoCSList(a.value.slice(0,b))),h.append(g,m.infinity);if(1===b)g[0]=m.neg(m.div(a.value[0],a.value[1]));else if(2===b)g=D.quadratic_roots(a);else{for(var d=0;dh.value.real)return ka("grade cant be < 1"),k;h=m.add(h,m.real(1));return P.autodiff(b,c,d,h)};t.cos$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.cos(c):k};t.tan$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.tan(c):k};t.arccos$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.arccos(c):k};t.arcsin$1=function(a,g){var c=B(a[0]);return"number"=== +c.ctype?m.arcsin(c):k};t.arctan$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.arctan(c):k};t.arctan2$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===c.ctype&&"number"===b.ctype?m.arctan2(c,b):k};t.arctan2$1=function(a,g){var c=B(a[0]);if("list"===c.ctype&&2===c.value.length){if(c=c.value,"number"===c[0].ctype&&"number"===c[1].ctype)return t.arctan2$2(c,g)}else if("number"===c.ctype)return m.arctan2(c);return k};t.log$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.log(c): +k};D.recursiveGen=function(a){var g=m[a],c=h[a];t[a+"$1"]=function(a,b){var d=B(a[0]);return"number"===d.ctype?g(d):"list"===d.ctype?c(d):k}};D.recursiveGen("im");D.recursiveGen("re");D.recursiveGen("conjugate");D.recursiveGen("round");D.recursiveGen("ceil");D.recursiveGen("floor");D.recursiveGen("abs");t.abs_infix=t.abs$1;t.random$0=function(a,g){return m.real(m._helper.rand())};t.random$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?m.complex(c.value.real*m._helper.rand(),c.value.imag*m._helper.rand()): +k};t.seedrandom$1=function(a,g){var c=B(a[0]);"number"===c.ctype&&m._helper.seedrandom(c.value.real);return k};t.randomnormal$0=function(a,g){return m.real(m._helper.randnormal())};t.randominteger$1=function(a,g){var c=B(a[0]);if("number"===c.ctype){var b=c.value.real|0,c=c.value.imag|0,b=b*m._helper.rand()|0,c=c*m._helper.rand()|0;return m.complex(b,c)}return k};t.randomint$1=t.randominteger$1;t.randombool$0=function(a,g){return.5f)return m.real(0);if(0=== +f)return m.real(1);if(1===f)return b;for(var p=d=1,r=1;r<=f;++r)var t=e-f+r|0,u=r|0,v=wc(t,u)|0,t=t/v|0,u=u/v|0,v=wc(d,u)|0,d=d/v|0,u=u/v|0,v=wc(t,p)|0,t=t/v|0,p=p/v|0,d=d*t|0,p=p*u|0;return m.real(d/p)}if("list"===b.ctype){e=b.value.length;if(0>f||f>e)return h.turnIntoCSList([]);if(0===f)return h.turnIntoCSList([h.turnIntoCSList([])]);if(f===e)return h.turnIntoCSList([b]);n=[];l=Array(f);c(0,0);return h.turnIntoCSList(n)}}return k};t.zeromatrix$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"=== +c.ctype&&"number"===b.ctype?h.zeromatrix(c,b):k};t.zerovector$1=function(a,g){var c=B(a[0]);return"number"===c.ctype?h.zerovector(c):k};t.transpose$1=function(a,g){var c=B(a[0]);return"list"===c.ctype&&-1!==h._helper.colNumb(c)?h.transpose(c):k};t.row$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&-1!==h._helper.colNumb(c)?h.row(c,b):k};t.column$2=function(a,g){var c=B(a[0]),b=B(a[1]);return"number"===b.ctype&&"list"===c.ctype&&-1!==h._helper.colNumb(c)?h.column(c, +b):k};t.dict$0=function(a,g){var c=Na.create(),b;for(b in g)g.hasOwnProperty(b)&&Na.put(c,w.string(b),z(g[b]));return c};t.put$3=function(a,g){var c=z(a[0]),b=z(a[1]),d=z(a[2]);return"dict"===c.ctype?(c=Na.clone(c),Na.put(c,b,d),c):k};t.get$2=function(a,g){var c=z(a[0]),b=z(a[1]);return"dict"===c.ctype?Na.get(c,b,k):k};t.red$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?h.realVector([Math.min(1,Math.max(0,c.value.real)),0,0]):k};t.green$1=function(a,g){var c=z(a[0]);return"number"===c.ctype? +h.realVector([0,Math.min(1,Math.max(0,c.value.real)),0]):k};t.blue$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?h.realVector([0,0,Math.min(1,Math.max(0,c.value.real))]):k};t.gray$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?(c=Math.min(1,Math.max(0,c.value.real)),h.realVector([c,c,c])):k};t.grey$1=t.gray$1;D.HSVtoRGB=function(a,g,c){var b,d,e,f,k,m;a&&void 0===g&&void 0===c&&(g=a.s,c=a.v,a=a.h);f=Math.floor(6*a);k=6*a-f;a=c*(1-g);m=c*(1-k*g);g=c*(1-(1-k)*g);switch(f%6){case 0:b= +c;d=g;e=a;break;case 1:b=m;d=c;e=a;break;case 2:b=a;d=c;e=g;break;case 3:b=a;d=m;e=c;break;case 4:b=g;d=a;e=c;break;case 5:b=c,d=a,e=m}return h.realVector([b,d,e])};t.hue$1=function(a,g){var c=z(a[0]);return"number"===c.ctype?(c=c.value.real,c-=Math.floor(c),D.HSVtoRGB(c,1,1)):k};D.shapeconvert=function(a){var g,c;if("circle"===a.type){g=a.value.value[0];g=w.div(g,g.value[2]);var b=g.value[0].value.real,d=g.value[1].value.real;a=a.value.value[1].value.real;c=Array(125);var h=2*Math.PI/125;for(g=0;125> +g;g++)c[g]={X:b+Math.cos(g*h)*a,Y:d+Math.sin(g*h)*a};return[c]}if("polygon"===a.type){b=[];for(g=0;g=c?c=String.fromCharCode(c):(c-=65536,c=String.fromCharCode((c>>10)+55296,(c&1023)+ +56320));return w.string(c)};t.international$1=function(a,g){return t.international$2([a[0],null],g)};t.international$2=function(a,g){var c=z(a[0]);if("string"!==c.ctype)return k;var b=(p.translations||{})[p.language||"en"]||{};if(!b.hasOwnProperty(c.value))return c;var d=b[c.value];if("string"===typeof d)return w.string(d);if(null===a[1])return c;var h=z(a[1]),h="number"===h.ctype?h.value.real:0,b=(b._pluralFormFunction||ce)(h);return bMath.min(a[0],a[1])},f=v.points.filter(function(a){return.5> +b(a.homog)}),k=v.lines.filter(function(a){var g;g=d(a.homog);g=h.normalizeMax(h.cross(a.homog,g));if((g=.5>b(g))&&"S"===a.kind){var e=a.homog,e=h.turnIntoCSList([e.value[0],e.value[1],m.zero]);a=h.crossratio3(a.farpoint,a.startpos,a.endpos,c,e).value.real;if(0>a||1a.value.real&&(b=m.neg(b));0>b.value.real&&(g=!1)}return g}),f=f.concat(k,n);return h.ofGeos(f)};t.incidences$1=t.allelements$1;t.createpoint$2=function(a,g){var c=z(a[0]),b=K(a[1]);return"string"!==c.ctype?(ka("Name must be a string"),k):"list"!==b.ctype&&h.isNumberVector(b)?(ka("Position must be a number vector"),k):Ka({name:c.value,type:"Free",labeled:!0,pos:b})};t.create$3=function(a,g){var c=z(a[0]),b=z(a[1]), +d=z(a[2]),e,f;if("string"===c.ctype)e=c.value;else{if("list"!==c.ctype)return ka("Names must be a string or a list of strings"),k;if(1!==c.value.length){e=w.string(c.value.map(function(a){return a.value}).join("__"));e=t.create$3([e,b,d],g);if(e!==k)for(b=w.string(e.kind.replace(/^(.*)s$/,"Select$1")),d=h.turnIntoCSList([w.string(e.name)]),f=0;fm&&(m=a.length)});for(var l=[],n=0;nd.length)for(n=d.length;n(c.x-g.x)*(c.x-g.x)+(c.y-g.y)*(c.y-g.y)||1E-12>n||1E-12>e)return k;0>h.crossratio3(b,a,d,h.cross(h.cross(b,d),h.linfty),h.ii).value.real?x.drawsegcore(c,f):x.drawRaySegment(b,a)}return k};D.drawcircle=function(a,g,c){var b=B(a[0]);a=B(a[1]);var d=D.extractPoint(b);if(!d.ok||"number"!==a.ctype||!m._helper.isAlmostReal(a))return k;var b=y.drawingstate.matrix, +e=d.x*b.a-d.y*b.b+b.tx,d=d.x*b.c-d.y*b.d-b.ty;x.handleModifs(g,x.conicModifs);x.preDrawCurve();A.lineJoin="miter";A.beginPath();A.arc(e,d,Math.abs(a.value.real)*b.sdet,0,2*Math.PI);A.closePath();"D"===c&&A.stroke();"F"===c&&(A.fillStyle=x.lineColor,A.fill());"C"===c&&A.clip();return k};t.drawconic$1=function(a,b){var c=B(a[0]);if("list"!==c.ctype||3!==c.value.length&&6!==c.value.length)return console.error("could not parse conic"),k;if(6===c.value.length){for(var d=0;6>d;d++)if("number"!==c.value[d].ctype)return console.error("could not parse conic"), +k;var e=m.real(.5),d=c.value[0],f=c.value[2],f=m.mult(f,e),l=c.value[1],n=c.value[3],n=m.mult(n,e),p=c.value[4],p=m.mult(p,e),c=c.value[5],c=h.turnIntoCSList([h.turnIntoCSList([d,f,n]),h.turnIntoCSList([f,l,p]),h.turnIntoCSList([n,p,c])])}else{if(!h.isNumberMatrix(c).value||3!==c.value.length||3!==c.value[0].value.length)return k;d=h.transpose(c);h.equals(c,d).value||(c=h.add(d,c))}return D.drawconic(c,b)};D.drawconic=function(a,b){function c(a,c){var b=(p*a+r*c+t)*a+(u*c+v)*c+w;return 0<=b?1:0>b? +-1:NaN}function d(a){K.next=a;a.prev=K;return K=a}function e(a,b,g,d){return{a:a,b1:b,b2:g,vertical:!0,index:d,sign:function(b){return c(a,b)},mkp:function(c){return{x:a,y:c}},sol:Jb(u,r*a+v,(p*a+t)*a+w),discr:function(){return Jb(E,-2*C,z)},tpt:function(a){return{x:a,y:-.5*(r*a+v)/u}}}}function f(a,b,g,d){return{a:a,b1:b,b2:g,vertical:!1,index:d,sign:function(b){return c(b,a)},mkp:function(c){return{x:c,y:a}},sol:Jb(p,r*a+t,(u*a+v)*a+w),discr:function(){return Jb(E,-2*F,D)},tpt:function(a){return{x:-.5* +(r*a+t)/p,y:a}}}}function m(a){var c=Math.min(a.b1,a.b2),b=Math.max(a.b1,a.b2),g=a.sign(c),e=a.sign(b);if(!isFinite(g*e))return!1;var h=a.sol,f;if(g!==e){if(null===h)return!1;f=.5*(h[0]+h[1]);f>c&&f=G)return!0;h=a.discr();if(null===h)return!0;a=a.tpt(h[a.index]);a.x>=H&&a.x<=J&&a.y>=L&&a.y<=M&&d(a);return!0}f=.5*(h[0]+h[1]);if(!(f>c&&fa.b2&&(h=[h[1],h[0]]);N.push(d(a.mkp(h[0])));N.push(d(a.mkp(h[1])))}return!0}function k(a,c,b,g,d){var e=c-g,h=b-a,q=a*g-c*b,f=C*e+F*h+E*q;if(1E-14>Math.abs(f))return A.lineTo(b,g);var m=(z*e+B*h+C*q)/f,e=(B*e+D*h+F*q)/f;if(!isFinite(m)||!isFinite(e)||.04>Math.abs(a*e+m*g+b*c-b*e-m*c-a*g))return A.lineTo(b,g);do if(!(10l*l+f*f)){var n=p*l*l+r*l*f+u*f*f,oa=2*p*l*q+r*(l*h+f*q)+2*u*f*h+t*l+v*f,W=(p*q+r*h+t)*q+(u*h+v)*h+w,xa=Jb(n, +oa,W);xa||(xa=[-.5*oa/n,-2*W/oa]);if(0q*q+h*h)){k(a,c,l,f,d+1);k(l,f,b,g,d+1);return}}}while(0);A.quadraticCurveTo(m,e,b,g)}x.handleModifs(b,x.conicModifs);if(0!==x.lsize){x.preDrawCurve();var l;l=h.normalizeMax(a);if(h._helper.isAlmostReal(l)){var n=y.toMat();l=h.mult(h.transpose(n),l);l=h.mult(l,n);l=h.normalizeMax(l);var p=l.value[0].value[0].value.real,r=2*l.value[0].value[1].value.real,t= +2*l.value[0].value[2].value.real,u=l.value[1].value[1].value.real,v=2*l.value[1].value[2].value.real,w=l.value[2].value[2].value.real,z=4*w*u-v*v,B=v*t-2*w*r,C=v*r-2*u*t,D=4*w*p-t*t,F=t*r-2*v*p,E=4*u*p-r*r,G=E;l=u*D+r*B+p*z-w*E;0>l&&(p=-p,r=-r,t=-t,u=-u,v=-v,w=-w,l=-l);l=x.lsize;var H=-l,L=-l,J=ca+l,M=da+l,N=[],K=l={};if(m(e(H,L,M,0))&&m(f(M,H,J,1))&&m(e(J,M,L,1))&&m(f(L,J,H,0))&&K!==l){K.next=l.next;l.next.prev=K;A.beginPath();var I,O;if(0===N.length){I=K;A.moveTo(I.x,I.y);do O=I.next,k(I.x,I.y, +O.x,O.y,0),I=O;while(I!==K);A.closePath()}n=1===c(H,L)?0:1;if(4===N.length){var P=0;for(l=0;2>l;++l){I=N[l];O=N[l+2];var Q=O.x-I.x;I=O.y-I.y;I=(p*Q+r*I)*Q+u*I*I;Math.abs(I)>Math.abs(P)&&(P=I)}if(isNaN(P))return;0<=P&&(n=1-n)}for(l=n;lf&&(f=d[m].value.length);-1===f?(d=d.map(function(a){return[a]}),f=1):d=d.map(function(a){return h.asList(a).value});var l=100,n=null,p=!0,r=y.drawingstate.textcolor;x.handleModifs(b,{size:!0,color:function(a){h._helper.isNumberVecN(a,3)&&(r=x.makeColor([a.value[0].value.real,a.value[1].value.real,a.value[2].value.real]))},alpha:!0,bold:!0,italics:!0,family:!0,align:!0,x_offset:!0,y_offset:!0,offset:!0,width:function(a){"number"=== +a.ctype&&(l=a.value.real)},height:function(a){"number"===a.ctype&&(n=a.value.real)},border:function(a){"boolean"===a.ctype&&(p=a.value)}});var t=y.drawingstate.textsize;null===t&&(t=ga.textsize);null!==x.size&&(t=x.size);null===n&&(n=1.6*t);A.font=x.bold+x.italics+Math.round(10*t)/10+"px "+x.family;m=y.drawingstate.matrix;var u=f*l,v=c*n,t=e.x*m.a-e.y*m.b+m.tx+x.xOffset,w=e.x*m.c-e.y*m.d-m.ty-x.yOffset-v;if(p){x.preDrawCurve();A.strokeStyle=x.lineColor;A.beginPath();for(m=1;mk)!f&&p&&(A.stroke(),p=!1);else if(n||r){var t=m.real((a.value.real+b.value.real)/2);J.setvar(B,t);var u=z(w), +v=c(u);if(n&&r&&v){var Wb=g.value.real,r=u.value.real,v=h.value.real;if(n=1>Math.abs(Wb+v-2*r)/l){var Wa=m.real((a.value.real+t.value.real)/2);J.setvar(B,Wa);var Wa=z(w),Ra=m.real((t.value.real+b.value.real)/2);J.setvar(B,Ra);Ra=z(w);Wb=Math.abs(Wb+r-2*Wa.value.real)/l;r=Math.abs(r+v-2*Ra.value.real)/l;n=n&&1>Wb&&1>r}n?(d(a,t,g,u,k/2),d(t,b,u,h,k/2)):(e(a,t,g,u,k/2),e(t,b,u,h,k/2))}else e(a,t,g,u,k/2),e(t,b,u,h,k/2)}}var f=!1,l=.2/Tb,n=0,p=!1,r=-10,t=10,u=.1,v=1E3,w=a[0],B;if(null!==a[1]&&"variable"=== +a[1].ctype)B=a[1].name;else{var C=D.plotvars(w);B="#";-1!==C.indexOf("t")&&(B="t");-1!==C.indexOf("z")&&(B="z");-1!==C.indexOf("y")&&(B="y");-1!==C.indexOf("x")&&(B="x")}J.newvar(B);var E=y.drawingstate.matrix;x.handleModifs(b,{color:!0,alpha:!0,size:!0,dashpattern:!0,dashtype:!0,dashing:!0,lineCap:!0,lineJoin:!0,miterLimit:!0,connect:function(a){"boolean"===a.ctype&&(f=a.value)},start:function(a){"number"===a.ctype&&(r=a.value.real)},stop:function(a){"number"===a.ctype&&(t=a.value.real)},steps:function(a){"number"=== +a.ctype&&(v=a.value.real)}});A.strokeStyle=x.lineColor;A.lineWidth=x.lsize;var F,G,H,I,p=!1,C=m.real(14.32);J.setvar(B,C);H=z(w);if("number"!==H.ctype){if(h.isNumberVector(H).value&&2===H.value.length){p=!1;u=(t-r)/v;for(C=r;Cr&&e(F,C,G,H,u),F=C,G=H;J.removevar(B);p&&A.stroke();return k};t.plotX$1=function(a,b){var c=a[0],d=D.plotvars(c),e="#";-1!==d.indexOf("t")&&(e="t");-1!==d.indexOf("z")&&(e="z");-1!==d.indexOf("y")&&(e="y");-1!==d.indexOf("x")&&(e="x");J.newvar(e);d=y.drawingstate.matrix;A.fillStyle=y.drawingstate.linecolor;A.lineWidth=1;A.lineCap=x.lineCap;A.lineJoin=x.lineJoin;A.miterLimit=x.miterLimit;for(var h=!1,f=-10;10>f;f+=.01){J.setvar(e,m.real(f));var l=z(c); +if("number"===l.ctype){var n=+l.value.real,l=f*d.a-n*d.b+d.tx,n=f*d.c-n*d.d-d.ty;h?A.lineTo(l,n):(A.beginPath(),A.moveTo(l,n),h=!0)}}A.stroke();J.removevar(e);return k};D.plotvars=function(a){function b(a,c){var g={},d;for(d=a.length-1;0<=d;--d)g[a[d]]=a[d];for(d=c.length-1;0<=d;--d)g[c[d]]=c[d];d=[];for(var e in g)g.hasOwnProperty(e)&&d.push(g[e]);return d}function c(a,c){for(var b=0;bf||!Number.isInteger(f)?(e.video.aspectRatio=f,e.video.advanced[0].aspectRatio={min:f,max:f},e.video.advanced[1].aspectRatio={ideal:f}):(e.video.height=f,e.video.advanced[0].height={min:f,max:f},e.video.advanced[1].height={ideal:f}))}d&&(e=[320,640,1024,1280,1920,2560],e=e.map(function(a){return{width:{min:a}}}),e={video:{width:16E3, +height:9E3,advanced:e},audio:!1});var d=null,m=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia;m?d=function(a,c){navigator.mediaDevices.getUserMedia(e).then(a,c)}:(m=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia)&&(d=function(a,c){m.call(navigator,e,a,c)});if(!d)return console.warn("getUserMedia call not supported"),k;var l=document.createElement("video");l.autoplay=!0;f=fa(l,!0);console.log("Opening stream.");d(function(a){l.srcObject= +a;l.setAttribute("autoplay","");l.setAttribute("muted","");l.setAttribute("playsinline","");l.play();l.addEventListener("loadeddata",M)},function(a){console.error("Could not get user video:",String(a),a)});return f};t.playvideo$1=function(a,b){var c=Ja(B(a[0]));c.live&&c.img.play&&c.img.play();return k};t.pausevideo$1=function(a,b){var c=Ja(B(a[0]));c.live&&c.img.pause&&c.img.pause();return k};var Kb;t.imagergba$3=function(a,b){var c=Ja(B(a[0])),d=B(a[1]),e=B(a[2]);if(!c||"number"!==d.ctype||"number"!== +e.ctype||!c.ready)return k;d=Math.round(d.value.real);e=Math.round(e.value.real);if(!Ia(d)||!Ia(e))return k;c=pb(c,d,e,1,1);return h.realVector([255*c[0],255*c[1],255*c[2],c[3]])};t.imagergb$3=t.imagergba$3;t.imagergba$4=function(a,b){var c=Ja(B(a[2]));if(!c||!c.ready)return k;var d=c.width,e=c.height,f=K(a[0]),m=K(a[1]),l=K(h.realVector([0,e,1])),d=K(h.realVector([d,e,1]));if(f===k||m===k||n===k)return k;var n=h.ii,e=h.jj,l=D.basismap(l,d,n,e),f=D.basismap(f,m,e,n),n=K(a[3]);var p=D.extractPoint(w.mult(l, +w.mult(h.adjoint3(f),n)));if(p.ok){var m=c.width,l=c.height,n=!0,r=!1;void 0!==b.interpolate&&(f=z(b.interpolate),"boolean"===f.ctype&&(n=f.value));void 0!==b.repeat&&(f=z(b.repeat),"boolean"===f.ctype&&(r=f.value));n&&(p.x-=.5,p.y-=.5);r&&(p.x=(p.x%m+m)%m,p.y=(p.y%l+l)%l);d=Math.floor(p.x);e=Math.floor(p.y);if(Ia(d)&&Ia(e)){f=[0,0,0,0];if(n){var n=p.x-d,p=p.y-e,t=pb(c,d,e,2,2);if(r){if(d===m-1||e===l-1)var r=pb(c,(d+1)%m,e,1,1),v=pb(c,d,(e+1)%l,1,1),c=pb(c,(d+1)%m,(e+1)%l,1,1),t=t.slice(0,4).concat(r, +v,c)}else{if(-1===d||d===m-1)n=Math.round(n);if(-1===e||e===l-1)p=Math.round(p)}for(c=0;4>c;c++)f[c]=(1-p)*((1-n)*t[c]+n*t[c+4])+p*((1-n)*t[c+8]+n*t[c+12])}else f=pb(c,d,e,1,1);c=h.realVector(f)}else c=k}else c=k;return c};t.imagergb$4=function(a,b){var c=t.imagergba$4(a,b);return c===k?k:h.turnIntoCSList(c.value.slice(0,3))};t.readpixels$1=function(a,b){for(var c=Ja(B(a[0])),c=pb(c,0,0,c.width,c.height),d=[],e=0;e+3","\u2260"],lt:["<"],gt:[">"],le:["<=","\u2264","\u2266"],ge:[">=","\u2265","\u2267"],aeq:["~=","\u2248"],ane:["~!=","\u2249"],alt:["~<", +"\u2a89"],agt:["~>","\u2a8a"],ale:["~<=","\u2a85"],age:["~>=","\u2a86"],"in":["\u2208"],nin:["\u2209"]},{and:["&","\u2227"],or:["%","\u2228"]},{rassoc:!0,prepend:["<:"]},{concat:["++","\u222a"],remove:["--","\u2216"],common:["~~","\u2229"],append:[":>"]},{rassoc:!0,assign:["="],define:[":="],undefine:[":=_"],bdefine:["::="]},{seq:[";"]},{modif:["->","\u2192"]},{rassoc:!0,list:[","]}],Ae=["+","-"],Be=["!","\u221a"],Ce=["\u00b0",":=_"],De=[";",","],Kc=[],Ca={},kd;(function(){var a=0;ze.forEach(function(b){a+= +2;var c=!!b.rassoc;b.functionCall&&(kd=a);for(var d in b){var e=b[d];if("boolean"!==typeof e)for(var h={name:d,sym:e[0],symbols:e,rassoc:c,precedence:a,prefix:!1,postfix:!1,infix:!0,bare:!1},f=0;f &%C( / . $$!L! %5%;( D#!*!* 4'&*$W + !#&]F %6&]% !#% !#!(# & ! !#% # %1!#$ !/#L!S( @?$\u00817-!*''#$!$%+ ',6!:= !&!#7 \u0090 ##& ! ##D ##B ##& ! ##9 K ##^Y2*V#'$\u009d#5 4&p((+, #2*2*2, 5OC!'!Uy.D !&_)0J<#$,E'4Q/1Pv!|8:&K<9%)E>@7 )@\u0080# #$%1gT\u008e#'#=#'#( ! ! ! 0#P & !$ &$##'',& &d!9!*,b!'!#. !$$(! ! ! # 1##&$'!G%\u00a58 8 \u0084(#$%6= !&!#Q+!*/1& & & & & & & &t!\u0097%E$&%'V( z #&D${:Aj2\u0099\u00a6q\u00a9E\u00a4UZ#\u008d$2)%-8*0#_J+#b#M#(S1 # /0O2[R'$! !6>)/A?+8?G)-):9*\ud803!`KJ9J\ud804#PriL3>@7M$!6F2#/! !C* 3V& ! # 9 .+8N(#%#- & % $$!;!6$\ud805eF-% !\u008987#=F-!k7x4\ud806\u0087RB!\u0095K\ud808!\u00a2\ud809e\u008a\ud80d!8\ud811!\u009c\ud81a!\u009b+0c<;F*#BH&:\ud81b\u00a0U,!l,\ud82c!%\ud82f!\"&,$++.\ud835!w m %#!#%## ) ! & S ##( & > # $ !$& \u0091#3 3 0 3 0 3 0 3 0 3 (\ud83a!\u008b\ud83b\u0098# A % !#! . # ! !(!'! ! ! % !#! ! ! ! ! % !## & # # ! . 5& $ 5\ud869!\u009f7\u008c\ud86d!\u00a1,g\ud86e!<#\u00a3\ud873!\u009e\ud87e!\u009a", -"\ud80c\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872"),ze=("#(?: [1-9])?|(?:'|"+Dc+")(?: (?:[0-9']|"+Dc+"))*").replace(/ /g,"[ \t]*"),$c=["([ \t\n]+)|(//.*)|(/\\*)","("+we+")","("+Cc.map(Zc).join("|")+")","("+"[](){}||".split("").map(Zc).join("|")+")","("+ye+")","("+xe+")","("+ze+")",'("[^"]*")|($)'].join("|"),Ae=new RegExp("[ \t]*".replace(/\*$/,"+"),"g"),Ec="ANY WS COMMENT START_COMMENT NUM OP BRA SUB SUP ID STR EOF".split(" ");(function(){var a=(new RegExp($c,"g")).exec("");if(a.hasOwnProperty(Ec.length))throw Error("RE has more groups than expected"); -if(!a.hasOwnProperty(Ec.length-1))throw Error("RE has fewer groups than expected");})();kb.prototype.advanceBy=function(a){this.advanceTo(this.pos+a)};kb.prototype.advanceTo=function(a){for(this.pos=a;this.bols[0]<=a;)this.bol=this.bols.shift(),this.line++};kb.prototype.curPos=function(){return{row:this.line,col:this.pos-this.bol,pos:this.pos}};kb.prototype.nextInternal=function(){var a=this.re.exec(this.input);if(a.index!==this.pos)throw ha("Invalid token",this.curPos(),this.input.substring(this.pos, -a.index));var b=this.curPos();this.advanceBy(a[0].length);var c=this.curPos(),d;for(d=1;null==a[d];++d);return{start:b,end:c,raw:a[0],text:a[0].replace(Ae,""),toktype:Ec[d]}};kb.prototype.next=function(){var a;do if(a=this.nextInternal(),"START_COMMENT"===a.toktype){var b=/\*\/|\/\*/g;b.lastIndex=a.start.pos+2;for(var c=1,d;0d&&(d=0),10b.value.real||b.value.real!==Math.floor(b.value.real))return P.root(a,b);for(var c=a,d=1;d=x.psize&&(x.psize=0);0>=x.lsize&&(x.lsize=0);x.overhang=1;x.dashing=!1;x.isArrow=!1;x.arrowSides="==>";x.arrowposition= -1;x.headlen=10;x.arrowShape=x.arrowShapes.line;x.alpha=z.drawingstate.alpha;x.fillalpha=0;x.bold="";x.italics="";x.family="sans-serif";x.align=0;x.xOffset=0;x.yOffset=0;x.lineCap="round";x.lineJoin="round";x.miterLimit=10;var c,d;for(c in a){var e=a[c];e&&((d=b[c])?(!0===d&&(d=x.modifHandlers[c]),d(A(e))):console.log("Modifier not supported: "+c))}null!==x.size?x.psize=x.lsize=x.size:(x.psize=z.drawingstate.pointsize,x.lsize=z.drawingstate.linesize);x.dashing&&x.dashing(x.lsize);null!==x.colorraw? -x.pointColor=x.lineColor=x.textColor=x.makeColor(x.colorraw):1===x.alpha?(x.pointColor=z.drawingstate.pointcolor,x.lineColor=z.drawingstate.linecolor,x.textColor=z.drawingstate.textcolor):(x.pointColor=x.makeColor(z.drawingstate.pointcolorraw),x.lineColor=x.makeColor(z.drawingstate.linecolorraw),x.textColor=x.makeColor(z.drawingstate.textcolorraw));x.black=1===x.alpha?"rgb(0,0,0)":"rgba(0,0,0,"+x.alpha+")";x.fillColor=x.fillcolorraw&&0x.size&&(x.size=0),1E3"!==a.value&&"<==>"!==a.value&&"<=="!==a.value?console.error("arrowsides is unknows"):(x.arrowSides=a.value,x.isArrow=!0)},arrowposition:function(a){"number"!==a.ctype?console.error("arrowposition is not of type number"):0>a.value.real?console.error("arrowposition has to be positive"):1a.value.real?console.error("arrowsize has to be positive"):x.headlen*=a.value.real},bold:function(a){"boolean"===a.ctype&&a.value&&(x.bold="bold ")},italics:function(a){"boolean"===a.ctype&&a.value&&(x.italics="italic ")},family:function(a){"string"===a.ctype&&(x.family=a.value)},align:function(a){"string"=== -a.ctype&&(a=a.value,"left"===a&&(x.align=0),"right"===a&&(x.align=1),"mid"===a&&(x.align=.5))},x_offset:function(a){"number"===a.ctype&&(x.xOffset=a.value.real)},y_offset:function(a){"number"===a.ctype&&(x.yOffset=a.value.real)},offset:function(a){"list"===a.ctype&&2===a.value.length&&"number"===a.value[0].ctype&&"number"===a.value[1].ctype&&(x.xOffset=a.value[0].value.real,x.yOffset=a.value[1].value.real)},lineCap:function(a){"string"!==a.ctype||"round"!==a.value&&"square"!==a.value&&"butt"!==a.value|| -(x.lineCap=a.value)},lineJoin:function(a){"string"!==a.ctype||"round"!==a.value&&"bevel"!==a.value&&"miter"!==a.value||(x.lineJoin=a.value)},fillrule:function(a){"string"!==a.ctype||"nonzero"!==a.value&&"evenodd"!==a.value||(x.fillrule=a.value)},miterLimit:function(a){"number"===a.ctype&&0l&&(f=a);1c&&(e=a);1d||d>da||0>n||n>ca||0>p||p>da||0>k||k>ca){k=x.clipSegment({x:d,y:n},{x:p,y:k});if(2!==k.length||.01>x.lsize)return;d=k[0].x;n=k[0].y;p=k[1].x;k=k[1].y}x.preDrawCurve();if(!x.isArrow||e===f&&g===l).01>x.lsize||(y.beginPath(),y.moveTo(d,n),y.lineTo(p,k), -y.stroke());else{var e=g-e,f=l-f,g=x.headlen/Math.sqrt(e*e+f*f),q=e*g,t=f*g,l=x.arrowposition,m=1-l,f=l*d+m*p,e=l*n+m*k,g=l*p+m*d,l=l*k+m*n,m=x.arrowSides;y.beginPath();x.arrowShape.close?("<==>"===m||"<=="===m?(1>x.arrowposition&&(y.moveTo(d,n),y.lineTo(f,e)),y.moveTo(f+q,e+t)):y.moveTo(d,n),"==>"===m||"<==>"===m?(y.lineTo(g-q,l-t),1>x.arrowposition&&(y.moveTo(g,l),y.lineTo(p,k))):y.lineTo(p,k)):(y.moveTo(d,n),y.lineTo(p,k));y.stroke();"==>"!==m&&"<==>"!==m||c(g,l,1,x.arrowShape.ratio);"<=="!==m&& -"<==>"!==m||c(f,e,-1,-x.arrowShape.ratio)}};x.drawpoint=function(a){var b=z.drawingstate.matrix,c=a.x*b.a-a.y*b.b+b.tx;a=a.x*b.c-a.y*b.d-b.ty;y.lineWidth=.3*x.psize;y.beginPath();y.arc(c,a,x.psize,0,2*Math.PI);y.fillStyle=x.pointColor;y.fill();y.beginPath();y.arc(c,a,1.15*x.psize,0,2*Math.PI);y.fillStyle=x.black;y.strokeStyle=x.black;y.stroke()};x.clipLineCore=function(a,b,c){var d=Math.SQRT1_2*x.lsize,e=0-d,f=da+d,g=0-d,d=ca+d,l=0>e*a+g*b+c,k=0>f*a+g*b+c,m=0>e*a+d*b+c,n=0>f*a+d*b+c,p=[];l!==k&&p.push({x:(-c- -b*g)/a,y:g});k!==n&&p.push({x:f,y:(-c-a*f)/b});m!==n&&p.push({x:(-c-b*d)/a,y:d});l!==m&&p.push({x:e,y:(-c-a*e)/b});return p};x.clipLine=function(a){a=g.normalizeMax(g.productVM(a,z.toMat()));return x.clipLineCore(a.value[0].value.real,a.value[1].value.real,a.value[2].value.real)};x.drawline=function(a){g._helper.isAlmostReal(a)&&(a=x.clipLine(a),2===a.length&&.01<=x.lsize&&(x.preDrawCurve(),y.beginPath(),y.moveTo(a[0].x,a[0].y),y.lineTo(a[1].x,a[1].y),y.stroke()))};x.drawRaySegment=function(a,b){var c= -D.extractPoint(a),d=D.extractPoint(b);if(c.ok&&d.ok){var e=c.x-d.x,f=c.y-d.y,g=25E3/z.drawingstate.matrix.sdet/Math.sqrt(e*e+f*f),e=e*g,f=f*g;x.drawsegcore(c,{x:c.x+e,y:c.y+f});x.drawsegcore(d,{x:d.x-e,y:d.y-f})}};x.dashTypes={solid:[],dashed:[10,10],tightdash:[10,4],dotted:[1,3],dashdot:[10,5,1,5],"dashvalue.solid":[],"dashvalue.dashed":[10,10],"dashvalue.tightdash":[10,4],"dashvalue.dotted":[1,3],"dashvalue.dashdot":[10,5,1,5],0:[],1:[10,10],2:[10,4],3:[1,3],4:[10,5,1,5]};x.setDash=function(a,b){var c= -Math.sqrt(b);a=a.slice();for(var d=0;d=2*Math.PI?this._pathcmd(this._path.length?"L":"M",g,l,"A",c,c,0,0,f?1:0,a-c*Math.cos(d),b-c*Math.sin(d),"A",c,c,0,0,f?1:0,g,l):this._pathcmd(this._path.length?"L":"M",g,l,"A",c,c,0,e>Math.PI?1:0,f?1:0,k,m)},rect:function(a,b,c,d){this._pathcmd("M",a,b,"h",c,"v",d,"h",-c,"z")},_cmd:function(a){1!==this.globalAlpha?(this._body.push(''),this._body.push(a),this._body.push("")):this._body.push(a)},_attrs:function(a){var b="",c;for(c in a)null!==a[c]&& -(b+=" "+c+'="'+a[c]+'"');return b},fill:function(){this._cmd("")},stroke:function(){this._cmd("")},clip:function(){++this._clipIndex;this._body.push('d&&(d=0),10b.value.real||b.value.real!==Math.floor(b.value.real))return P.root(a, +b);for(var c=a,d=1;d=x.psize&&(x.psize=0);0>=x.lsize&&(x.lsize=0);x.overhang=1;x.dashing=!1;x.isArrow=!1;x.arrowSides="==>";x.arrowposition=1;x.headlen=10;x.arrowShape=x.arrowShapes.line;x.alpha=y.drawingstate.alpha;x.fillalpha=0;x.bold="";x.italics="";x.family="sans-serif";x.align=0;x.xOffset=0;x.yOffset=0;x.lineCap="round";x.lineJoin="round";x.miterLimit=10;x.noborder=!1;var c,d;for(c in a){var e=a[c];e&&((d=b[c])?(!0===d&&(d=x.modifHandlers[c]), +d(z(e))):console.log("Modifier not supported: "+c))}null!==x.size?x.psize=x.lsize=x.size:(x.psize=y.drawingstate.pointsize,x.lsize=y.drawingstate.linesize);x.dashing&&x.dashing(x.lsize);null!==x.colorraw?x.pointColor=x.lineColor=x.textColor=x.makeColor(x.colorraw):1===x.alpha?(x.pointColor=y.drawingstate.pointcolor,x.lineColor=y.drawingstate.linecolor,x.textColor=y.drawingstate.textcolor):(x.pointColor=x.makeColor(y.drawingstate.pointcolorraw),x.lineColor=x.makeColor(y.drawingstate.linecolorraw), +x.textColor=x.makeColor(y.drawingstate.textcolorraw));x.black=1===x.alpha?"rgb(0,0,0)":"rgba(0,0,0,"+x.alpha+")";x.fillColor=x.fillcolorraw&&0x.size&&(x.size=0),1E3"!==a.value&&"<==>"!==a.value&&"<=="!==a.value?console.error("arrowsides is unknows"): +(x.arrowSides=a.value,x.isArrow=!0)},arrowposition:function(a){"number"!==a.ctype?console.error("arrowposition is not of type number"):0>a.value.real?console.error("arrowposition has to be positive"):1a.value.real?console.error("arrowsize has to be positive"):x.headlen*=a.value.real}, +bold:function(a){"boolean"===a.ctype&&a.value&&(x.bold="bold ")},italics:function(a){"boolean"===a.ctype&&a.value&&(x.italics="italic ")},family:function(a){"string"===a.ctype&&(x.family=a.value)},align:function(a){"string"===a.ctype&&(a=a.value,"left"===a&&(x.align=0),"right"===a&&(x.align=1),"mid"===a||"center"===a)&&(x.align=.5)},x_offset:function(a){"number"===a.ctype&&(x.xOffset=a.value.real)},y_offset:function(a){"number"===a.ctype&&(x.yOffset=a.value.real)},offset:function(a){"list"===a.ctype&& +2===a.value.length&&"number"===a.value[0].ctype&&"number"===a.value[1].ctype&&(x.xOffset=a.value[0].value.real,x.yOffset=a.value[1].value.real)},lineCap:function(a){"string"!==a.ctype||"round"!==a.value&&"square"!==a.value&&"butt"!==a.value||(x.lineCap=a.value)},lineJoin:function(a){"string"!==a.ctype||"round"!==a.value&&"bevel"!==a.value&&"miter"!==a.value||(x.lineJoin=a.value)},fillrule:function(a){"string"!==a.ctype||"nonzero"!==a.value&&"evenodd"!==a.value||(x.fillrule=a.value)},miterLimit:function(a){"number"=== +a.ctype&&0m&&(h=a);1c&&(e=a);1d||d>ca||0>n||n>da||0>p||p>ca||0>k||k>da){k=x.clipSegment({x:d,y:n},{x:p,y:k});if(2!==k.length||.01>x.lsize)return;d=k[0].x;n=k[0].y;p=k[1].x;k=k[1].y}x.preDrawCurve();if(!x.isArrow||e===h&&f===m).01>x.lsize||(A.beginPath(),A.moveTo(d,n),A.lineTo(p,k),A.stroke());else{var e=f-e,h=m-h,f=x.headlen/ +Math.sqrt(e*e+h*h),r=e*f,t=h*f,m=x.arrowposition,l=1-m,h=m*d+l*p,e=m*n+l*k,f=m*p+l*d,m=m*k+l*n,l=x.arrowSides;A.beginPath();x.arrowShape.close?("<==>"===l||"<=="===l?(1>x.arrowposition&&(A.moveTo(d,n),A.lineTo(h,e)),A.moveTo(h+r,e+t)):A.moveTo(d,n),"==>"===l||"<==>"===l?(A.lineTo(f-r,m-t),1>x.arrowposition&&(A.moveTo(f,m),A.lineTo(p,k))):A.lineTo(p,k)):(A.moveTo(d,n),A.lineTo(p,k));A.stroke();"==>"!==l&&"<==>"!==l||c(f,m,1,x.arrowShape.ratio);"<=="!==l&&"<==>"!==l||c(h,e,-1,-x.arrowShape.ratio)}}; +x.drawpoint=function(a){var b=y.drawingstate.matrix,c=a.x*b.a-a.y*b.b+b.tx;a=a.x*b.c-a.y*b.d-b.ty;A.lineWidth=.3*x.psize;A.beginPath();A.arc(c,a,x.psize,0,2*Math.PI);A.fillStyle=x.pointColor;A.fill();x.noborder||(A.beginPath(),A.arc(c,a,1.15*x.psize,0,2*Math.PI),A.fillStyle=x.black,A.strokeStyle=x.black,A.stroke())};x.clipLineCore=function(a,b,c){var d=Math.SQRT1_2*x.lsize,e=0-d,h=ca+d,f=0-d,d=da+d,m=0>e*a+f*b+c,k=0>h*a+f*b+c,l=0>e*a+d*b+c,n=0>h*a+d*b+c,p=[];m!==k&&p.push({x:(-c-b*f)/a,y:f});k!== +n&&p.push({x:h,y:(-c-a*h)/b});l!==n&&p.push({x:(-c-b*d)/a,y:d});m!==l&&p.push({x:e,y:(-c-a*e)/b});return p};x.clipLine=function(a){a=h.normalizeMax(h.productVM(a,y.toMat()));return x.clipLineCore(a.value[0].value.real,a.value[1].value.real,a.value[2].value.real)};x.drawline=function(a){h._helper.isAlmostReal(a)&&(a=x.clipLine(a),2===a.length&&.01<=x.lsize&&(x.preDrawCurve(),A.beginPath(),A.moveTo(a[0].x,a[0].y),A.lineTo(a[1].x,a[1].y),A.stroke()))};x.drawRaySegment=function(a,b){var c=D.extractPoint(a), +d=D.extractPoint(b);if(c.ok&&d.ok){var e=c.x-d.x,h=c.y-d.y,f=25E3/y.drawingstate.matrix.sdet/Math.sqrt(e*e+h*h),e=e*f,h=h*f;x.drawsegcore(c,{x:c.x+e,y:c.y+h});x.drawsegcore(d,{x:d.x-e,y:d.y-h})}};x.dashTypes={solid:[],dashed:[10,10],tightdash:[10,4],dotted:[1,3],dashdot:[10,5,1,5],"dashvalue.solid":[],"dashvalue.dashed":[10,10],"dashvalue.tightdash":[10,4],"dashvalue.dotted":[1,3],"dashvalue.dashdot":[10,5,1,5],0:[],1:[10,10],2:[10,4],3:[1,3],4:[10,5,1,5]};x.setDash=function(a,b){var c=Math.sqrt(b); +a=a.slice();for(var d=0;d=2*Math.PI?this._pathcmd(this._path.length?"L":"M",f,m,"A",c,c,0,0,h?1:0,a-c*Math.cos(d),b-c*Math.sin(d),"A",c,c,0,0,h?1:0,f,m):this._pathcmd(this._path.length?"L":"M",f,m,"A",c,c,0,e>Math.PI?1:0,h?1:0,k,l)},rect:function(a,b,c,d){this._pathcmd("M",a,b,"h",c,"v",d,"h",-c,"z")},_cmd:function(a){1!==this.globalAlpha?(this._body.push(''),this._body.push(a),this._body.push("")):this._body.push(a)},_attrs:function(a){var b="",c;for(c in a)null!==a[c]&&(b+=" "+ +c+'="'+a[c]+'"');return b},fill:function(){this._cmd("")},stroke:function(){this._cmd("")},clip:function(){++this._clipIndex;this._body.push('','');this._saveStack[this._saveStack.length-1]+=""},save:function(){this._saveStack.push("")},restore:function(){this._body.push(this._saveStack.pop());0===this._saveStack.length&&this._saveStack.push("")},_transform:function(a){this._body.push('');this._saveStack[this._saveStack.length-1]+=""},translate:function(a,b){this._transform("translate("+a+" "+b+")")}, -rotate:function(a){this._transform("rotate("+Math.PI/180*a+")")},scale:function(a,b){this._transform("scale("+a+" "+b+")")},transform:function(a,b,c,d,e,f){this._transform("matrix("+[a,b,c,d,e,f].join(" ")+")")},drawImage:function(a,b,c){if(3!==arguments.length)throw Error("SvgWriterContext only supports 3-argument version of drawImage");var d=this._imgcache.indexOf(a);if(-1===d){var d=this._imgcache.length,e;e=a.cachedDataURL?a.cachedDataURL:fd(a);this._defs.push('');this._imgcache.push(a)}this._cmd('')},toBlob:function(){for(;1\n'+this._defs.join("\n")+'\n\n\n'+ -this._body.join("\n")+"\n\n\n";return new Blob([a],{type:"image/svg+xml"})}};ed.prototype={_cmd:function(){this._body.push(Array.prototype.join.call(arguments," "))},_setAlpha:function(a,b,c){var d=Math.round(255*a*this._globalAlpha);b+=d;this._extGState[b]="<< /"+c+" "+d/255+" >>";this._cmd("/"+b,"gs");return a},set globalAlpha(a){this._globalAlpha=a;this._setAlpha(this._strokeAlpha,"As","CA");this._setAlpha(this._fillAlpha,"Af","ca")},set fillStyle(a){var b=this;Rb(a,function(a,d,e,f){b._cmd(a/ -255,d/255,e/255,"rg");b._setAlpha(b._fillAlpha=f,"Af","ca")})},set strokeStyle(a){var b=this;Rb(a,function(a,d,e,f){b._cmd(a/255,d/255,e/255,"RG");b._setAlpha(b._strokeAlpha=f,"As","CA")})},set lineWidth(a){this._cmd(a,"w")},set lineCap(a){this._cmd({butt:0,round:1,square:2}[a],"J")},set lineJoin(a){this._cmd({miter:0,round:1,bevel:2}[a],"j")},set miterLimit(a){this._cmd(a,"M")},clearRect:function(){},beginPath:function(){this._pathUsed=!1},closePath:function(){this._cmd("h")},moveTo:function(a,b){this._cmd(this._xPos= -a,this._yPos=-b,"m")},lineTo:function(a,b){this._cmd(this._xPos=a,this._yPos=-b,"l")},bezierCurveTo:function(a,b,c,d,e,f){this._cmd(a,-b,c,-d,this._xPos=e,this._yPos=-f,"c")},quadraticCurveTo:function(a,b,c,d){this.bezierCurveTo((2*a+this._xPos)/3,(2*b-this._yPos)/3,(c+2*a)/3,(d+2*b)/3,c,d)},_kappa:.5522847498307935,arc:function(a,b,c,d,e,f){if(0===d&&e===2*Math.PI)d=this._kappa*c,this.moveTo(a+c,b),this.bezierCurveTo(a+c,b+d,a+d,b+c,a,b+c),this.bezierCurveTo(a-d,b+c,a-c,b+d,a-c,b),this.bezierCurveTo(a- +this._body.join("\n")+"\n\n\n";return new Blob([a],{type:"image/svg+xml"})}};md.prototype={_cmd:function(){this._body.push(Array.prototype.join.call(arguments," "))},_setAlpha:function(a,b,c){var d=Math.round(255*a*this._globalAlpha);b+=d;this._extGState[b]="<< /"+c+" "+d/255+" >>";this._cmd("/"+b,"gs");return a},set globalAlpha(a){this._globalAlpha=a;this._setAlpha(this._strokeAlpha,"As","CA");this._setAlpha(this._fillAlpha,"Af","ca")},set fillStyle(a){var b=this;ac(a,function(a,d,e,h){b._cmd(a/ +255,d/255,e/255,"rg");b._setAlpha(b._fillAlpha=h,"Af","ca")})},set strokeStyle(a){var b=this;ac(a,function(a,d,e,h){b._cmd(a/255,d/255,e/255,"RG");b._setAlpha(b._strokeAlpha=h,"As","CA")})},set lineWidth(a){this._cmd(a,"w")},set lineCap(a){this._cmd({butt:0,round:1,square:2}[a],"J")},set lineJoin(a){this._cmd({miter:0,round:1,bevel:2}[a],"j")},set miterLimit(a){this._cmd(a,"M")},clearRect:function(){},beginPath:function(){this._pathUsed=!1},closePath:function(){this._cmd("h")},moveTo:function(a,b){this._cmd(this._xPos= +a,this._yPos=-b,"m")},lineTo:function(a,b){this._cmd(this._xPos=a,this._yPos=-b,"l")},bezierCurveTo:function(a,b,c,d,e,h){this._cmd(a,-b,c,-d,this._xPos=e,this._yPos=-h,"c")},quadraticCurveTo:function(a,b,c,d){this.bezierCurveTo((2*a+this._xPos)/3,(2*b-this._yPos)/3,(c+2*a)/3,(d+2*b)/3,c,d)},_kappa:.5522847498307935,arc:function(a,b,c,d,e,h){if(0===d&&e===2*Math.PI)d=this._kappa*c,this.moveTo(a+c,b),this.bezierCurveTo(a+c,b+d,a+d,b+c,a,b+c),this.bezierCurveTo(a-d,b+c,a-c,b+d,a-c,b),this.bezierCurveTo(a- c,b-d,a-d,b-c,a,b-c),this.bezierCurveTo(a+d,b-c,a+c,b-d,a+c,b);else throw Error("PdfWriterContext.arc only supports full circles");},rect:function(a,b,c,d){this._cmd(a,-b,c,-d,"re")},_usePath:function(a){if(this._pathUsed){var b=this._body[this._pathUsed],c={"S + f":"B","f + S":"B","W n + S":"W S","W n + f":"W f","S + W n":"W S","f + W n":"W f","B + W n":"W B","W S + f":"W B","W f + S":"W B"}[b+" + "+a];if(!c)throw Error("Don't know how to combine '"+b+"' and '"+a+"'");this._body.splice(this._pathUsed, -1);a=c}this._pathUsed=this._body.length;this._cmd(a)},fill:function(){this._usePath("f")},stroke:function(){this._usePath("S")},clip:function(){this._usePath("W n")},save:function(){this._cmd("q")},restore:function(){this._cmd("Q")},translate:function(a,b){this.transform(1,0,0,1,a,b)},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);this.transform(b,a,-a,b,0,0)},scale:function(a,b){this.transform(a,0,0,b,0,0)},transform:function(a,b,c,d,e,f){this._cmd(a,-b,-c,d,e,-f,"cm")},_png:function(a){if("data:image/png;base64,"!== -a.substr(0,22))return{error:"Not a base64-encoded PNG file"};a=Wd(a.substr(22));var b=Xd(a);console.log("PNG chunks:",b.map(function(a){return a.type}));if("IHDR"!==b[0].type)throw Error("Image does not start with an IHDR");var c=b[0].data;a=(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0;var d=(c[4]<<24|c[5]<<16|c[6]<<8|c[7])>>>0,e=c[8],f=c[9],g=0===(f&2),l=0!==(f&4),k=c[10],m=c[11],c=c[12];if(0!==k)throw Error("Unsupported PNG compression method: "+k);if(0!==m)throw Error("Unsupported PNG filter method: "+ -m);if(0!==c)return{error:"Interlaced image not supported"};if(0!==(f&1))return{error:"Indexed PNG image not supported"};m=null;f=g?1:3;k=b.filter(function(a){return"IDAT"===a.type}).map(function(a){return a.data});if(l){l=window.pako;m=new l.Inflate;for(b=0;b>>3;if(m.length!==d*(a*(f+1)*c+1))throw Error("Data length mismatch");for(var n=f*c,k=new Uint8Array(d*(a*n+1)),p=new Uint8Array(d*(a*c+1)),q=0,t=0,u=0,v=0;v< -d;++v){k[t++]=p[u++]=m[q++];for(var w=0;w>"},_obj:function(a,b){b||(b=this._nextIndex++);Array.isArray(a)||(a=[this._dict(a)]); +1);a=c}this._pathUsed=this._body.length;this._cmd(a)},fill:function(){this._usePath("f")},stroke:function(){this._usePath("S")},clip:function(){this._usePath("W n")},save:function(){this._cmd("q")},restore:function(){this._cmd("Q")},translate:function(a,b){this.transform(1,0,0,1,a,b)},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);this.transform(b,a,-a,b,0,0)},scale:function(a,b){this.transform(a,0,0,b,0,0)},transform:function(a,b,c,d,e,h){this._cmd(a,-b,-c,d,e,-h,"cm")},_png:function(a){if("data:image/png;base64,"!== +a.substr(0,22))return{error:"Not a base64-encoded PNG file"};a=de(a.substr(22));var b=ee(a);console.log("PNG chunks:",b.map(function(a){return a.type}));if("IHDR"!==b[0].type)throw Error("Image does not start with an IHDR");var c=b[0].data;a=(c[0]<<24|c[1]<<16|c[2]<<8|c[3])>>>0;var d=(c[4]<<24|c[5]<<16|c[6]<<8|c[7])>>>0,e=c[8],h=c[9],f=0===(h&2),m=0!==(h&4),k=c[10],l=c[11],c=c[12];if(0!==k)throw Error("Unsupported PNG compression method: "+k);if(0!==l)throw Error("Unsupported PNG filter method: "+ +l);if(0!==c)return{error:"Interlaced image not supported"};if(0!==(h&1))return{error:"Indexed PNG image not supported"};l=null;h=f?1:3;k=b.filter(function(a){return"IDAT"===a.type}).map(function(a){return a.data});if(m){m=window.pako;l=new m.Inflate;for(b=0;b>>3;if(l.length!==d*(a*(h+1)*c+1))throw Error("Data length mismatch");for(var n=h*c,k=new Uint8Array(d*(a*n+1)),p=new Uint8Array(d*(a*c+1)),r=0,t=0,v=0,u=0;u< +d;++u){k[t++]=p[v++]=l[r++];for(var w=0;w>"},_obj:function(a,b){b||(b=this._nextIndex++);Array.isArray(a)||(a=[this._dict(a)]); a.index=b;a.ref=b+" 0 R";a.offset=this._offset;var c=0;a.unshift(b+" 0 obj\n");a.push("\nendobj\n");for(var d=0;d("number"===typeof f.narrow?f.narrow:20)/p)continue}else if("C"===f.kind)m=u.csnames[f.args[0]],n=f.radius,k=l.div(m.homog.value[0],m.homog.value[2]).value.real, -m=l.div(m.homog.value[1],m.homog.value[2]).value.real,k-=a.x,m-=a.y,n=Math.sqrt(k*k+m*m)-n.value.real,m=k=0,0>n&&(n=-n),n+=30/p;else if("L"===f.kind)k=f.homog,n=l,m=n.add(n.mult(k.value[0],n.conjugate(k.value[0])),n.mult(k.value[1],n.conjugate(k.value[1]))),m=g.scaldiv(n.sqrt(m),k),n=m.value[0].value.real*a.x+m.value[1].value.real*a.y+m.value[2].value.real,k=-m.value[0].value.real*n,m=-m.value[1].value.real*n,0>n&&(n=-n),n+=25/p;else if("Text"===f.kind){if(!f.homog||f.dock||!f._bbox)continue;m=z.from(a.x, -a.y,1);k=Math.max(0,m[0]-f._bbox.right,f._bbox.left-m[0]);m=Math.max(0,m[1]-f._bbox.bottom,f._bbox.top-m[1]);n=Math.sqrt(k*k+m*m);if(20Math.abs(d-a)&&.2>Math.abs(e-c)&&(b=g.realVector([d,e,1]))}return g.normalizeMax(b)};m.Free.getParamFromState=function(a){return Z(3)};m.Free.putParamToState=function(a,b){T(b)};m.Free.updatePosition=function(a){var b=Z(3);T(b);a.homog=w.withUsage(b, -"Point")};m.Free.stateSize=6;m._helper.projectPointToLine=function(a,b){var c=g.turnIntoCSList([b.value[0],b.value[1],l.zero]),c=g.cross(c,a);return g.normalizeMax(g.cross(c,b))};m.PointOnLine={};m.PointOnLine.kind="P";m.PointOnLine.signature=["L"];m.PointOnLine.isMovable=!0;m.PointOnLine.initialize=function(a){var b=m._helper.initializePoint(a);a=u.csnames[a.args[0]].homog;var b=m._helper.projectPointToLine(b,a),b=g.normalizeMax(b),c=g.cross(g.linfty,b);g.normalizeMax(c);T(b);T(a);fb=!1};m.PointOnLine.updatePosition= -function(a,b){var c,d=u.csnames[a.args[0]].homog;c=Z(3);Z(3);if(!b){va=a.stateIdx;var e=ma;ma=za;var f=Z(3),l=Z(3);ma=e;e=g.cross(l,d);g._helper.isAlmostZero(e)&&(e=g.cross(g.linfty,d));f=m._helper.CircleMP(e,f);f=m._helper.IntersectLC(d,f);e=m._helper.pointReflection(e,c);c=Ad(f[0],f[1],c,e)[0]}c=g.normalizeMax(c);T(c);T(d);a.homog=w.withUsage(c,"Point")};m.PointOnLine.getParamForInput=function(a,b,c){return b=m._helper.projectPointToLine(b,u.csnames[a.args[0]].homog)};m.PointOnLine.getParamFromState= -function(a){return Z(3)};m.PointOnLine.putParamToState=function(a,b){return T(b)};m.PointOnLine.stateSize=12;m.PointOnCircle={};m.PointOnCircle.kind="P";m.PointOnCircle.signature=["C"];m.PointOnCircle.isMovable=!0;m.PointOnCircle.initialize=function(a){var b=u.csnames[a.args[0]];a=g.normalizeZ(m._helper.initializePoint(a));var c=g.normalizeZ(m._helper.CenterOfCircle(b.matrix)),d=g.sub(a,c),d=g.turnIntoCSList([d.value[1],l.neg(d.value[0]),l.zero]),c=g.cross(a,c),b=m._helper.IntersectLC(c,b.matrix), -c=g.projectiveDistMinScal(a,b[0]);g.projectiveDistMinScal(a,b[1])l.sub(l.mult(a.value[0],c.value[1]),l.mult(a.value[1],c.value[0])).value.real&& -(b=g.neg(b));return g.turnIntoCSList([b.value[1],l.neg(b.value[0]),l.zero])};m.PointOnCircle.parameterPath=function(a,b,c,d,e){d=g.normalizeAbs(d);e=g.normalizeAbs(e);var f=g.scalproduct(d,e);if(0<=f.value.real)return xd(a,b,c,d,e);a=g.turnIntoCSList([l.sub(d.value[1],e.value[1]),l.sub(e.value[0],d.value[0]),l.zero]);f=g.scalproduct(d,a);0>f.value.real&&(a=g.neg(a));0>b?(b=2*b+1,c=b*b,f=.25/(1+c),c=l.complex(2*b*f+.25,(1-c)*f)):(b=2*b-1,c=b*b,f=.25/(1+c),c=l.complex(2*b*f+.75,(1-c)*f));var k=l.sub(l.real(1), -c);b=l.mult(c,c);f=l.mult(k,k);c=l.mult(c,k);d=g.scalmult(f,d);d=g.add(d,g.scalmult(c,a));return d=g.add(d,g.scalmult(b,e))};m.PointOnCircle.updatePosition=function(a){var b=Z(3);T(b);var c=u.csnames[a.args[0]],b=g.productMV(c.matrix,b),c=m._helper.IntersectLC(b,c.matrix),c=Na(c[0],c[1]),b=g.normalizeMax(c.value[0]);a.homog=w.withUsage(b,"Point");a.antipodalPoint=c.value[1]};m.PointOnCircle.stateSize=6+Na.stateSize;m.OtherPointOnCircle={};m.OtherPointOnCircle.kind="P";m.OtherPointOnCircle.signature= -["P"];m.OtherPointOnCircle.signatureConstraints=function(a){return"PointOnCircle"===u.csnames[a.args[0]].type};m.OtherPointOnCircle.updatePosition=function(a){var b=u.csnames[a.args[0]].antipodalPoint,b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")};m.PointOnSegment={};m.PointOnSegment.kind="P";m.PointOnSegment.signature=["S"];m.PointOnSegment.isMovable=!0;m.PointOnSegment.initialize=function(a){var b=m._helper.initializePoint(a);a=m.PointOnSegment.getParamForInput(a,b);Va(a)};m.PointOnSegment.getParamForInput= -function(a,b){var c=u.csnames[a.args[0]],d=c.homog,d=g.turnIntoCSList([d.value[0],d.value[1],l.zero]),e=g.sub(c.startpos,c.endpos),c=g.crossratio3(e,c.startpos,c.endpos,b,d);0>c.value.real&&(c=l.complex(0,c.value.imag));1d.value.real&&(c=-1>d.value.real?g.realVector([1,0]):g.realVector([0,1]));return c};m.PointOnArc.getParamFromState=function(a){return Z(2)}; -m.PointOnArc.putParamToState=function(a,b){T(b)};m.PointOnArc.updatePosition=function(a){var b=u.csnames[a.args[0]],c=b.startPoint,d=b.viaPoint,e=b.endPoint,f=g.ii,k=g.cross(c,f),d=g.cross(d,f),n=g.cross(e,f),n=g.turnIntoCSList([k,n]),k=g.transpose(n),n=g.conjugate(n),k=g.productMM(n,k),d=g.productMV(n,d),k=g.productMV(g.adjoint2(k),d),d=k.value[0],k=k.value[1],n=Z(2);T(n);c=g.normalizeMax(g.add(g.scalmult(l.mult(d,n.value[0]),c),g.scalmult(l.mult(k,n.value[1]),e)));b=m._helper.conicOtherIntersection(b.matrix, -f,c);a.homog=w.withUsage(b,"Point")};m.PointOnArc.stateSize=4;m._helper.CenterOfCircle=function(a){return g.turnIntoCSList([a.value[2].value[0],a.value[2].value[1],l.neg(a.value[0].value[0])])};m._helper.CenterOfConic=function(a){a=g.adjoint3(a);return{ctype:"list",value:[a.value[2].value[0],a.value[2].value[1],a.value[2].value[2]]}};m.CenterOfConic={};m.CenterOfConic.kind="P";m.CenterOfConic.signature=["C"];m.CenterOfConic.updatePosition=function(a){var b=m._helper.CenterOfConic(u.csnames[a.args[0]].matrix); -a.homog=b;a.homog=g.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};m._helper.CircleMP=function(a,b){var c=a.value[0],d=a.value[1],e=l.neg(a.value[2]),f=l.zero,c=g.turnIntoCSList([g.turnIntoCSList([e,f,c]),g.turnIntoCSList([f,e,d]),g.turnIntoCSList([c,d,f])]),e=w.mult(w.mult(b,c),b),d=w.mult(w.mult(b,g.fund),b),e=w.mult(e,g.fund),c=w.mult(d,c);return g.sub(e,c)};m.CircleMP={};m.CircleMP.kind="C";m.CircleMP.signature=["P","P"];m.CircleMP.updatePosition=function(a){a.matrix=m._helper.CircleMP(u.csnames[a.args[0]].homog, -u.csnames[a.args[1]].homog);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Circle")};m.CircleMr={};m.CircleMr.kind="C";m.CircleMr.signature=["P"];m.CircleMr.isMovable=!0;m.CircleMr.initialize=function(a){Va(l.real(a.radius))};m.CircleMr.getParamForInput=function(a,b,c){if("radius"===c)return b;a=u.csnames[a.args[0]].homog;a=g.normalizeZ(a);b=g.normalizeZ(b);b=g.sub(a,b);return b=g.abs(b)};m.CircleMr.getParamFromState=function(a){return wb()};m.CircleMr.putParamToState=function(a, -b){Va(b)};m.CircleMr.updatePosition=function(a){var b=wb();Va(b);var c=u.csnames[a.args[0]].homog,d=l.mult(c.value[2],b),d=l.mult(d,d);if(!l._helper.isFinite(d)&&!l._helper.isNaN(d))return g.fund;c=m._helper.ScaledCircleMrr(c,d);a.matrix=w.withUsage(c,"Circle");a.radius=b};m.CircleMr.stateSize=2;m.CircleMr.set_radius=function(a,b){"number"===b.ctype&&Ia(a,b,"radius")};m._helper.ScaledCircleMrr=function(a,b){var c=a.value[0],d=a.value[1],e=l.neg(a.value[2]),e=g.scalmult(e,g.turnIntoCSList([c,d,e])).value, -c=g.turnIntoCSList([c,d]),c=l.sub(g.scalproduct(c,c),b),e=m._helper.buildConicMatrix([e[2],l.zero,e[2],e[0],e[1],c]);return g.normalizeMax(e)};m.Compass={};m.Compass.kind="C";m.Compass.signature=["P","P","P"];m.Compass.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=b.value[2],f=c.value[2],k=d.value[2],b=g.scalmult(l.mult(f,k),b),c=g.scalmult(l.mult(e,k),c),d=g.scalmult(l.mult(e,f),d),b=g.sub(c,b),d=m._helper.ScaledCircleMrr(d, -g.scalproduct(b,b));a.matrix=w.withUsage(d,"Circle")};m._helper.getConicType=function(a){if(1E-16>l.abs(g.det(a)).value.real)return"degenerate";var b=l.mult(a.value[0].value[0],a.value[1].value[1]),b=l.sub(b,l.pow(a.value[0].value[1],l.real(2))),b=b.value.real;return 1E-16>Math.abs(b)?"parabola":1E-16c;++c)for(var d=0;d<=c;++d)Va(b.value[c].value[d])};m.FreeConic.updatePosition=function(a){var b=Z(6);T(b);a.matrix=m._helper.buildConicMatrix(b.value);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.FreeConic.set_matrix=function(a,b){g._helper.isNumberMatrixMN(b,3,3)&&Ia(a,g.add(b,g.transpose(b)),"matrix")};m.FreeConic.stateSize=12;m._helper.buildConicMatrix=function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5];return g.turnIntoCSList([g.turnIntoCSList([a[0], -b,d]),g.turnIntoCSList([b,c,e]),g.turnIntoCSList([d,e,f])])};m._helper.splitDegenConic=function(a){var b=g.adjoint3(a),c=0,d,e,f=l.abs2(b.value[0].value[0]).value.real;for(d=1;3>d;d++)e=l.abs2(b.value[d].value[d]).value.real,e>f&&(c=d,f=e);d=l.sqrt(l.mult(l.real(-1),b.value[c].value[c]));if(1E-16>l.abs2(d).value.real)return a=g.turnIntoCSList([l.zero,l.zero,l.zero]),[a,a];c=l.real(c+1);e=g.column(b,c);e=g.scaldiv(d,e);d=e.value[0];f=e.value[1];e=e.value[2];d=g.turnIntoCSList([g.turnIntoCSList([l.real(0), -e,l.mult(l.real(-1),f)]),g.turnIntoCSList([l.mult(l.real(-1),e),l.real(0),d]),g.turnIntoCSList([f,l.mult(l.real(-1),d),l.real(0)])]);a=g.add(a,d);var k=0;for(d=f=b=0;3>d;d++)for(c=0;3>c;c++)e=l.abs2(a.value[d].value[c]).value.real,e>f&&(k=d,b=c,f=e);d=a.value[k];a=g.transpose(a);a=a.value[b];d=g.normalizeMax(d);a=g.normalizeMax(a);d=w.withUsage(d,"Line");a=w.withUsage(a,"Line");return[d,a]};m._helper.inputConic=function(a){var b="xx xy yy xz yz zz".split(" ").map(function(b){var d=l._helper.input(a[b]); -b[0]!==b[1]&&(d=l.realmult(.5,d));return d});return m._helper.buildConicMatrix(b)};m.SelectConic={};m.SelectConic.kind="C";m.SelectConic.signature=["Cs"];m.SelectConic.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=m._helper.inputConic(a.pos);a=u.csnames[a.args[0]].results;for(var c=g.conicDist(b,a[0]),d=0,e=1;eq;++q){var u=(q&2)-1,v=d(l.real(((q&1)<<1)-1),n),w=d(l.real(u),p),x=f(e,v,k,w),y=f(b,w,a, -v),u=f(a,e,b,k),z=l.add(l.add(f(b,k,a,e),f(k,w,e,v)),f(w,b,v,a)),v=d(x,x),w=d(y,y),A=d(z,z),B=d(x,y),x=d(x,z),y=d(y,z),B=l.sub(B,d(l.real(.5),d(u,u))),u=g.turnIntoCSList([g.turnIntoCSList([v,B,x]),g.turnIntoCSList([B,w,y]),g.turnIntoCSList([x,y,A])]),u=g.productMM(m,g.productMM(u,c)),u=g.turnIntoCSList([u.value[0].value[0],u.value[0].value[1],u.value[0].value[2],u.value[1].value[1],u.value[1].value[2],u.value[2].value[2]]);t[q]=u}return t};m.ConicBy3p2l={};m.ConicBy3p2l.kind="Cs";m.ConicBy3p2l.signature= -["P","P","P","L","L"];m.ConicBy3p2l.updatePosition=function(a){for(var b=m._helper.ConicBy3p2l(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=Bd(b),c=Array(4),d=0;4>d;++d){var e=b[d].value;c[d]=g.turnIntoCSList([g.turnIntoCSList([e[0],e[1],e[2]]),g.turnIntoCSList([e[1],e[3],e[4]]),g.turnIntoCSList([e[2],e[4],e[5]])])}a.results=c};m.ConicBy3p2l.stateSize=48;m.ConicBy2p3l={};m.ConicBy2p3l.kind="Cs";m.ConicBy2p3l.signature= -["P","P","L","L","L"];m.ConicBy2p3l.updatePosition=function(a){for(var b=m._helper.ConicBy3p2l(u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog),b=Bd(b),c=Array(4),d=0;4>d;++d){var e=b[d].value,e=g.turnIntoCSList([g.turnIntoCSList([e[0],e[1],e[2]]),g.turnIntoCSList([e[1],e[3],e[4]]),g.turnIntoCSList([e[2],e[4],e[5]])]);c[d]=g.normalizeMax(g.adjoint3(e))}a.results=c};m.ConicBy2p3l.stateSize=48;m.ConicBy1p4l={};m.ConicBy1p4l.kind= -"Cs";m.ConicBy1p4l.signature=["P","L","L","L","L"];m.ConicBy1p4l.updatePosition=function(a){var b=m._helper.ConicBy4p1l(a,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog,u.csnames[a.args[0]].homog),c=b[0],b=b[1],c=g.adjoint3(c),b=g.adjoint3(b),b=[c,b];a.results=b};m.ConicBy1p4l.stateSize=Na.stateSize;m.ConicParabolaPL={};m.ConicParabolaPL.kind="C";m.ConicParabolaPL.signature=["P","L"];m.ConicParabolaPL.updatePosition=function(a){var b=u.csnames[a.args[0]].homog.value, -c=u.csnames[a.args[1]].homog.value,d=l.mult,e=l.neg,f=l.add,k=l.sub,n=b[0],p=b[1],q=b[2],t=c[0],b=c[1],c=c[2],v=d(q,q),x=d(t,t),y=d(b,b),z=d(q,c),A=e(q),q=f(x,y),y=d(v,y),x=d(v,x),e=d(e(v),d(t,b)),t=d(A,f(d(n,q),d(z,t))),b=d(A,f(d(p,q),d(z,b))),d=k(d(f(d(n,n),d(p,p)),q),d(v,d(c,c))),d=m._helper.buildConicMatrix([y,e,x,t,b,d]),d=g.normalizeMax(d);a.matrix=w.withUsage(d,"Conic")};m.ConicBy2Foci1P={};m.ConicBy2Foci1P.kind="Cs";m.ConicBy2Foci1P.signature=["P","P","P"];m.ConicBy2Foci1P.updatePosition= -function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=g.ii,f=g.jj,k=g.normalizeMax(g.cross(b,d)),n=g.normalizeMax(g.cross(c,d)),p=g.normalizeMax(g.cross(d,e)),d=g.normalizeMax(g.cross(d,f)),n=m._helper.coHarmonic(p,d,k,n),k=g.normalizeMax(n[0]),n=g.normalizeMax(n[1]),e=g.turnIntoCSList([e]),p=g.turnIntoCSList([f]),d=g.turnIntoCSList([b]),q=g.turnIntoCSList([c]),f=m._helper.conicFromTwoDegenerates(e,p,d,q,k),f=g.normalizeMax(f),e=m._helper.conicFromTwoDegenerates(e, -p,d,q,n),e=g.normalizeMax(e),f=g.normalizeMax(g.adjoint3(f)),e=g.normalizeMax(g.adjoint3(e));"ellipsoid"!==m._helper.getConicType(f)&&(k=f,f=e,e=k);g.almostequals(b,c).value&&(b=l.real(3),e=g.zeromatrix(b,b));a.results=[f,e]};m.ConicBy2Pol1P={};m.ConicBy2Pol1P.kind="C";m.ConicBy2Pol1P.signature=["P","L","P","L","P"];m.ConicBy2Pol1P.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=u.csnames[a.args[3]].homog,f=u.csnames[a.args[4]].homog, -k=g.scalproduct,m=g.scalmult,n=g.sub,p=g.productMM,q=l.realmult,t=g.transpose,v=g.turnIntoCSList,x=n(m(k(c,b),f),m(q(2,k(c,f)),b)),y=n(m(k(e,d),f),m(q(2,k(e,f)),d)),z=v([g.cross(b,f)]),f=v([g.cross(d,f)]),y=p(t(z),v([g.cross(b,y)])),v=p(t(f),v([g.cross(d,x)])),p=p(t(z),f),b=k(b,e),c=k(d,c),d=g.add(m(c,y),m(b,v)),d=n(d,m(q(2,l.mult(b,c)),p)),d=g.add(d,t(d)),d=g.normalizeMax(d),d=w.withUsage(d,"Conic");a.matrix=d};m.ConicBy2Pol1L={};m.ConicBy2Pol1L.kind="C";m.ConicBy2Pol1L.signature=["P","L","P","L", -"L"];m.ConicBy2Pol1L.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=u.csnames[a.args[3]].homog,f=u.csnames[a.args[4]].homog,k=g.scalproduct,m=g.scalmult,n=g.productMM,p=l.mult,q=g.transpose,t=g.turnIntoCSList,v=k(c,b),x=k(c,d),y=k(e,b),z=k(e,d),A=k(f,b),k=k(f,d),B=t([g.sub(m(p(y,k),c),m(p(x,A),e))]),b=g.add(n(q(t([m(p(y,x),f)])),t([g.sub(g.add(m(l.sub(p(v,k),p(x,A)),e),m(l.sub(p(z,A),p(y,k)),c)),m(g.det3(c,e,f),g.cross(b,d)))])), -n(q(B),B)),b=g.add(b,q(b)),b=g.normalizeMax(b),b=w.withUsage(b,"Conic");a.matrix=b};m._helper.conic1Pol3Inc=function(a,b,c,d,e){var f=g.scalproduct,k=g.scalmult,m=g.productMM,n=g.cross,p=l.realmult,q=l.mult,t=g.transpose,u=g.turnIntoCSList,v=g.det3,w=v(a,c,d),x=u([n(c,e)]),y=u([n(a,e)]),z=u([n(c,d)]),A=f(b,a),B=f(b,c);b=f(b,e);n=u([n(d,g.sub(k(A,e),k(p(2,b),a)))]);x=k(w,m(t(x),n));a=p(2,l.add(q(v(a,d,e),B),q(w,b)));a=l.sub(q(v(c,d,e),A),a);x=g.add(x,k(a,m(t(y),z)));x=g.add(x,t(x));return x=g.normalizeMax(x)}; -m.ConicBy1Pol3P={};m.ConicBy1Pol3P.kind="C";m.ConicBy1Pol3P.signature=["P","L","P","P","P"];m.ConicBy1Pol3P.updatePosition=function(a){var b=m._helper.conic1Pol3Inc(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=w.withUsage(b,"Conic");a.matrix=b};m.ConicBy1Pol3L={};m.ConicBy1Pol3L.kind="C";m.ConicBy1Pol3L.signature=["P","L","L","L","L"];m.ConicBy1Pol3L.updatePosition=function(a){var b=m._helper.conic1Pol3Inc(u.csnames[a.args[1]].homog, -u.csnames[a.args[0]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=g.normalizeMax(g.adjoint3(b)),b=w.withUsage(b,"Conic");a.matrix=b};m._helper.coHarmonic=function(a,b,c,d){var e=g.realVector([100*Math.random(),100*Math.random(),1]),f=g.det3(e,c,a),k=g.det3(e,c,b);c=g.det3(e,d,a);d=g.det3(e,d,b);d=l.sqrt(l.mult(d,k));f=l.sqrt(l.mult(c,f));a=w.mult(a,d);f=w.mult(b,f);b=g.add(a,f);a=g.sub(a,f);return[b,a]};m.ConicInSquare={};m.ConicInSquare.kind="C";m.ConicInSquare.signature= -["P","P","P","P"];m.ConicInSquare.updatePosition=function(a){var b=D.basismap(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog),c=l.one,c=m._helper.buildConicMatrix([c,c,c,l.real(-3),c,c]),b=g.adjoint3(b),b=g.productMM(g.productMM(g.transpose(b),c),b),b=g.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};m.ConicBy5lines={};m.ConicBy5lines.kind="C";m.ConicBy5lines.signature=["L","L","L","L","L"];m.ConicBy5lines.updatePosition=function(a){var b= -m._helper.ConicBy5(a,u.csnames[a.args[0]].homog,u.csnames[a.args[1]].homog,u.csnames[a.args[2]].homog,u.csnames[a.args[3]].homog,u.csnames[a.args[4]].homog),b=g.adjoint3(b);a.matrix=b;a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.ConicFromPrincipalDirections={};m.ConicFromPrincipalDirections.kind="C";m.ConicFromPrincipalDirections.signature=["P","P","P"];m.ConicFromPrincipalDirections.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog, -d=u.csnames[a.args[2]].homog,e=m._helper.pointReflection(b,c),f=g.cross(c,b),b=g.turnIntoCSList([f.value[0],f.value[1],l.zero]),f=g.turnIntoCSList([f]),c=g.turnIntoCSList([g.cross(c,b)]),e=g.turnIntoCSList([g.cross(e,b)]);a.matrix=m._helper.conicFromTwoDegenerates(f,f,c,e,d);a.matrix=g.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};m.CircleBy3={};m.CircleBy3.kind="C";m.CircleBy3.signature=["P","P","P"];m.CircleBy3.updatePosition=function(a){var b=m._helper.ConicBy5(a,u.csnames[a.args[0]].homog, -u.csnames[a.args[1]].homog,g.ii,g.jj,u.csnames[a.args[2]].homog);a.matrix=g.normalizeMax(b);a.matrix=w.withUsage(a.matrix,"Circle")};m.ArcBy3={};m.ArcBy3.kind="C";m.ArcBy3.signature=["P","P","P"];m.ArcBy3.updatePosition=function(a){m.CircleBy3.updatePosition(a);a.startPoint=u.csnames[a.args[0]].homog;a.viaPoint=u.csnames[a.args[1]].homog;a.endPoint=u.csnames[a.args[2]].homog};m.ArcBy3.initialize=function(a){a.startPoint=u.csnames[a.args[0]].homog;a.viaPoint=u.csnames[a.args[1]].homog;a.endPoint=u.csnames[a.args[2]].homog; -a.isArc=!0};m.PolarOfPoint={};m.PolarOfPoint.kind="L";m.PolarOfPoint.signature=["P","C"];m.PolarOfPoint.updatePosition=function(a){var b=w.mult(u.csnames[a.args[1]].matrix,u.csnames[a.args[0]].homog),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Line")};m.PolarOfLine={};m.PolarOfLine.kind="P";m.PolarOfLine.signature=["L","C"];m.PolarOfLine.updatePosition=function(a){var b=u.csnames[a.args[0]],c=g.adjoint3(u.csnames[a.args[1]].matrix),b=w.mult(c,b.homog),b=g.normalizeMax(b);a.homog=w.withUsage(b,"Point")}; -m.AngleBisector={};m.AngleBisector.kind="Ls";m.AngleBisector.signature=["L","L","P"];m.AngleBisector.updatePosition=function(a){var b=u.csnames[a.args[0]].homog,c=u.csnames[a.args[1]].homog,d=u.csnames[a.args[2]].homog,e=g.add,f=g.sub,k=g.abs,l=g.cross,m=g.scalmult,n=g.normalizeMax,p=g._helper.isAlmostZero,q=g.linfty,t=m(k(l(l(q,c),q)),b),b=m(k(l(l(q,b),q)),c),f=f(t,b),e=e(t,b);p(f)&&(f=l(l(l(q,e),q),d));p(e)&&(e=l(l(l(q,f),q),d));a.results=Na(n(f),n(e))};m.AngleBisector.stateSize=Na.stateSize;m._helper.IntersectLC= -function(a,b){var c=l,d=g.crossOperator(a),e=g.transpose(d),e=w.mult(e,w.mult(b,d)),f=g.maxIndex(a,l.abs2),k,m,n,p;0===f?(f=e.value[1].value[1],k=e.value[1].value[2],m=e.value[2].value[1],n=e.value[2].value[2],p=a.value[0]):1===f?(f=e.value[0].value[0],k=e.value[0].value[2],m=e.value[2].value[0],n=e.value[2].value[2],p=a.value[1]):(f=e.value[0].value[0],k=e.value[0].value[1],m=e.value[1].value[0],n=e.value[1].value[1],p=a.value[2]);c=c.div(c.sqrt(c.sub(c.mult(k,m),c.mult(f,n))),p);c=g.add(e,g.scalmult(c, -d));f=g.maxIndex(c,g.abs2);d=c.value[f];d=g.normalizeMax(d);d=w.withUsage(d,"Point");c=g.transpose(c);f=g.maxIndex(c,g.abs2);c=c.value[f];c=g.normalizeMax(c);c=w.withUsage(c,"Point");return[d,c]};m.IntersectLC={};m.IntersectLC.kind="Ps";m.IntersectLC.signature=["L","C"];m.IntersectLC.updatePosition=function(a){var b=m._helper.IntersectLC(u.csnames[a.args[0]].homog,u.csnames[a.args[1]].matrix);a.results=Na(b[0],b[1])};m.IntersectLC.stateSize=Na.stateSize;m.OtherIntersectionCL={};m.OtherIntersectionCL.kind= -"P";m.OtherIntersectionCL.signature=["C","L","P"];m.OtherIntersectionCL.updatePosition=function(a){var b=u.csnames[a.args[2]].homog,c=m._helper.IntersectLC(u.csnames[a.args[1]].homog,u.csnames[a.args[0]].matrix),d=c[0],c=c[1],e=g.projectiveDistMinScal(d,b),b=g.projectiveDistMinScal(c,b);a.homog=en?(p=a,c=b):(q=l.solveCubic(p,q,c,f),c=l.abs2(l.sub(q[0],q[1])).value.real,f=l.abs2(l.sub(q[0],q[2])).value.real,k=l.abs2(l.sub(q[1],q[2])).value.real,c>f?(p= -q[1],q=c>k?q[0]:q[2]):(p=q[2],q=f>k?q[0]:q[1]),p=g.add(g.scalmult(p,a),b),c=g.add(g.scalmult(q,a),b));q=m._helper.splitDegenConic(p);p=q[0];q=q[1];c=m._helper.splitDegenConic(c);k=c[0];f=c[1];c=g.cross(p,k);k=g.cross(q,k);p=g.cross(p,f);q=g.cross(q,f);c=g.normalizeMax(c);k=g.normalizeMax(k);p=g.normalizeMax(p);q=g.normalizeMax(q);c=w.withUsage(c,"Point");k=w.withUsage(k,"Point");p=w.withUsage(p,"Point");q=w.withUsage(q,"Point");return[c,k,p,q]};m.IntersectConicConic={};m.IntersectConicConic.kind= -"Ps";m.IntersectConicConic.signature=["C","C"];m.IntersectConicConic.updatePosition=function(a){var b=m._helper.IntersectConicConic(u.csnames[a.args[0]].matrix,u.csnames[a.args[1]].matrix),b=xc(b[0],b[1],b[2],b[3]);a.results=b};m.IntersectConicConic.stateSize=xc.stateSize;m.SelectP={};m.SelectP.kind="P";m.SelectP.signature=["Ps"];m.SelectP.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=u.csnames[a.args[0]].results.value;a=m._helper.initializePoint(a);for(var c=g.projectiveDistMinScal(a, -b[0]),d=0,e=1;ea&&c>.999*a;)b=ra.oneRKStep(b),c+=b,b=Math.min(2*b,a-c),b=Math.max(b,1E-16),ra.restorePosition(),ra.doCollisions(),ra.calculateForces(),ra.moveToFinalPos();return!0};ra.restorePosition=function(){Ba.forEach(function(a){O[a.type].restorePos(a,9)})};ra.doCollisions=function(){Ba.forEach(function(a){O[a.type].doCollisions(a)})};ra.calculateForces=function(){Ba.forEach(function(a){O[a.type].calculateForces(a)})};ra.moveToFinalPos=function(){Ba.forEach(function(a){O[a.type].move(a)})};ra.oneRKStep= -function(a){for(var b=function(a){Ba.forEach(function(b){O[b.type].initRK(b,a);O[b.type].storePosition(b)})},c=function(a){Ba.forEach(function(b){O[b.type].setToTimestep(b,Ib[a])})},d=function(a){Ba.forEach(function(b){O[b.type].proceedMotion(b,Ib[a],a,Jd[a])})},e=function(){Ba.forEach(function(a){O[a.type].resetForces(a)})},f=function(a){Ba.forEach(function(b){O[b.type].calculateDelta(b,a)})},g=function(b){var c=0;Ba.forEach(function(a){O[a.type].proceedMotion(a,Ib[6],7,Kd);O[a.type].savePos(a,8); -O[a.type].proceedMotion(a,Ib[6],7,Ld);O[a.type].savePos(a,9);c+=O[a.type].sqDist(a,8,9)});return c=Math.sqrt(c)/a},k=function(a){Ba.forEach(function(a){O[a.type].recallPosition(a)})},l=!1;!l;){b(a);for(var m=0;7>m;m++)c(m),d(m),e(),ra.calculateForces(),f(m);g(a)>O.env.errorbound&&a>O.env.lowestdeltat?(a/=O.env.slowdownfactor,k()):l=!0}return a};var O={Mass:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=1);"undefined"===typeof a.charge&&(a.charge=0); -"undefined"===typeof a.friction&&(a.friction=0);a.lnfrict=0;"undefined"===typeof a.limitspeed&&(a.limitspeed=!1);"undefined"===typeof a.fixed&&(a.fixed=!1);"undefined"===typeof a.radius&&(a.radius=1);a.internalmove=!1;a.fx=0;a.fy=0;a.fz=0;a.vx=a.vx||0;a.vy=a.vy||0;a.vz=a.vz||0;a.mtype=0;a.env=O.env;a.deltat=0;a.mx=0;a.my=0;a.mz=0;a.mvx=0;a.mvy=0;a.mvz=0;a.dx=[0,0,0,0,0,0,0,0,0,0];a.dy=[0,0,0,0,0,0,0,0,0,0];a.dz=[0,0,0,0,0,0,0,0,0,0];a.dvx=[0,0,0,0,0,0,0,0,0,0];a.dvy=[0,0,0,0,0,0,0,0,0,0];a.dvz=[0, -0,0,0,0,0,0,0,0,0];a.midx=0;a.midy=0;a.midz=0;a.lx=0;a.ly=0;a.lz=0},resetForces:function(a){a.fx=0;a.fy=0;a.fz=0},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog);a.x=c.x;a.y=c.y;a.z=0;a.xo=a.x;a.yo=a.y;a.zo=a.z;a.vxo=a.vx;a.vyo=a.vy;a.vzo=a.vz;a.deltat=b;a.fx=0;a.fy=0;a.fz=0},setVelocity:function(a,b,c,d){d||(d=0);a.vx=b;a.vy=c;a.vz=d},move:function(a){a.pos=[a.x,a.y,1];a.internalmove=!0;fa&&X.down&&a.el===fa.mover||Ia(a.el,g.realVector(a.pos),"homog"); -a.el.sx=a.x;a.el.sy=a.y;a.internalmove=!1},proceedMotion:function(a,b,c,d){if(!a.fixed)for(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz,b=0;bO.det(d,b,e,c,w,x)*O.det(d,b,e,c,y.value.real,y.value.imag)&&0>O.det(d,b,w,x,y.value.real,y.value.imag)*O.det(e,c,w,x,y.value.real,y.value.imag)&&(v=t.behavior.mvx+a.deltat*(-y.value.real+ -t.behavior.xo),w=t.behavior.mvy+a.deltat*(-y.value.imag+t.behavior.yo),u=p*v+n*w,v=n*v-p*w,t.behavior.x=y.value.real,t.behavior.y=y.value.imag,t.behavior.vx=p*u*(1-a.xdamp),t.behavior.vy=n*u*(1-a.xdamp),t.behavior.vx+=-n*v*(1-a.ydamp),t.behavior.vy+=p*v*(1-a.ydamp))}a.x1o=d;a.y1o=b;a.x2o=e;a.y2o=c}},Environment:{init:function(a){"undefined"===typeof a.gravity&&(a.gravity=0);"undefined"===typeof a.friction&&(a.friction=0);"undefined"===typeof a.springstrength&&(a.springstrength=1);"undefined"!==typeof a.accuracy&& -(Mb=a.accuracy);"undefined"!==typeof a.deltat&&sa(a.deltat/.6);"undefined"===typeof a.charges&&(a.charges=!1);"undefined"===typeof a.balls&&(a.balls=!1);"undefined"===typeof a.newton&&(a.newton=!1);"undefined"===typeof a.ballInteractionBoosting&&(a.ballInteractionBoosting=1);O.env=a;a.errorbound=.001;a.lowestdeltat=1E-7;a.slowdownfactor=2},reset:function(a){},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){}, -proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e,f,g,k,l,m,n;if(a.newton)for(b=0;bm?0:(n-m)*(n-m)),l=(e-l)/(n*n*n)*(n>m?0:(n-m)*(n-m))):1===a.ballInteractionBoosting?(k=(d-k)/(n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n)*(n>m?0:(n-m)*(n-m))):(k=(d-k)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m))),c.behavior.fx+=k,c.behavior.fy+=l,g.behavior.fx-=k,g.behavior.fy-=l);for(b=0;b("number"===typeof f.narrow?f.narrow:20)/p)continue}else if("C"===f.kind){l=h.normalizeZ(v.csnames[f.args[0]].homog);k=f.radius;if(!h._helper.isAlmostReal(l)|| +!m._helper.isAlmostReal(k))continue;n=l.value[0].value.real;var r=l.value[1].value.real;l=a.x-n;var t=a.y-r,u=Math.sqrt(l*l+t*t);if(0===u)continue;r+=t/u*k.value.real;k=n+l/u*k.value.real-a.x;l=r-a.y;n=Math.sqrt(k*k+l*l);n+=30/p;if(f.narrow&&n>(("number"===typeof f.narrow?f.narrow:20)+30)/p)continue}else if("L"===f.kind)k=f.homog,n=m,l=n.add(n.mult(k.value[0],n.conjugate(k.value[0])),n.mult(k.value[1],n.conjugate(k.value[1]))),l=h.scaldiv(n.sqrt(l),k),n=l.value[0].value.real*a.x+l.value[1].value.real* +a.y+l.value[2].value.real,k=-l.value[0].value.real*n,l=-l.value[1].value.real*n,0>n&&(n=-n),n+=25/p;else if("Text"===f.kind){if(!f.homog||f.dock||!f._bbox)continue;l=y.from(a.x,a.y,1);k=Math.max(0,l[0]-f._bbox.right,f._bbox.left-l[0]);l=Math.max(0,l[1]-f._bbox.bottom,f._bbox.top-l[1]);n=Math.sqrt(k*k+l*l);if(20Math.abs(d-a)&&.2>Math.abs(e-c)&&(b=h.realVector([d,e,1]))}return h.normalizeMax(b)}; +l.Free.getParamFromState=function(a){return X(3)};l.Free.putParamToState=function(a,b){T(b)};l.Free.updatePosition=function(a){var b=X(3);T(b);a.homog=w.withUsage(b,"Point")};l.Free.stateSize=6;l._helper.projectPointToLine=function(a,b){var c=h.turnIntoCSList([b.value[0],b.value[1],m.zero]),c=h.cross(c,a);return h.normalizeMax(h.cross(c,b))};l.PointOnLine={};l.PointOnLine.kind="P";l.PointOnLine.signature=["L"];l.PointOnLine.isMovable=!0;l.PointOnLine.initialize=function(a){var b=l._helper.initializePoint(a); +a=v.csnames[a.args[0]].homog;var b=l._helper.projectPointToLine(b,a),b=h.normalizeMax(b),c=h.cross(h.linfty,b);h.normalizeMax(c);T(b);T(a);lb=!1};l.PointOnLine.updatePosition=function(a,b){var c,d=v.csnames[a.args[0]].homog;c=X(3);X(3);if(!b){Ba=a.stateIdx;var e=qa;qa=Da;var f=X(3),m=X(3);qa=e;e=h.cross(m,d);h._helper.isAlmostZero(e)&&(e=h.cross(h.linfty,d));f=l._helper.CircleMP(e,f);f=l._helper.IntersectLC(d,f);e=l._helper.pointReflection(e,c);c=Ec(f[0],f[1],c,e)[0]}c=h.normalizeMax(c);T(c);T(d); +a.homog=w.withUsage(c,"Point")};l.PointOnLine.getParamForInput=function(a,b,c){a=v.csnames[a.args[0]].homog;b=l._helper.projectPointToLine(b,a);"mouse"===c&&Eb&&0!==za&&(b=l._helper.snapPointToLine(b,a));return b};l.PointOnLine.getParamFromState=function(a){return X(3)};l.PointOnLine.putParamToState=function(a,b){return T(b)};l.PointOnLine.stateSize=12;l.PointOnCircle={};l.PointOnCircle.kind="P";l.PointOnCircle.signature=["C"];l.PointOnCircle.isMovable=!0;l.PointOnCircle.initialize=function(a){var b= +v.csnames[a.args[0]];a=h.normalizeZ(l._helper.initializePoint(a));var c=h.normalizeZ(l._helper.CenterOfCircle(b.matrix)),d=h.sub(a,c),d=h.turnIntoCSList([d.value[1],m.neg(d.value[0]),m.zero]),c=h.cross(a,c),b=l._helper.IntersectLC(c,b.matrix),c=h.projectiveDistMinScal(a,b[0]);h.projectiveDistMinScal(a,b[1])m.sub(m.mult(a.value[0],c.value[1]),m.mult(a.value[1],c.value[0])).value.real&&(b=h.neg(b));return h.turnIntoCSList([b.value[1],m.neg(b.value[0]),m.zero])};l.PointOnCircle.parameterPath=function(a,b,c,d,e){d=h.normalizeAbs(d);e=h.normalizeAbs(e);var f=h.scalproduct(d,e);if(0<=f.value.real)return Fd(a,b,c,d,e);a=h.turnIntoCSList([m.sub(d.value[1], +e.value[1]),m.sub(e.value[0],d.value[0]),m.zero]);f=h.scalproduct(d,a);0>f.value.real&&(a=h.neg(a));0>b?(b=2*b+1,c=b*b,f=.25/(1+c),c=m.complex(2*b*f+.25,(1-c)*f)):(b=2*b-1,c=b*b,f=.25/(1+c),c=m.complex(2*b*f+.75,(1-c)*f));var k=m.sub(m.real(1),c);b=m.mult(c,c);f=m.mult(k,k);c=m.mult(c,k);d=h.scalmult(f,d);d=h.add(d,h.scalmult(c,a));return d=h.add(d,h.scalmult(b,e))};l.PointOnCircle.updatePosition=function(a){var b=X(3);T(b);var c=v.csnames[a.args[0]],b=h.productMV(c.matrix,b),c=l._helper.IntersectLC(b, +c.matrix),c=Pa(c[0],c[1]),b=h.normalizeMax(c.value[0]);a.homog=w.withUsage(b,"Point");a.antipodalPoint=c.value[1]};l.PointOnCircle.stateSize=6+Pa.stateSize;l.OtherPointOnCircle={};l.OtherPointOnCircle.kind="P";l.OtherPointOnCircle.signature=["P"];l.OtherPointOnCircle.signatureConstraints=function(a){return"PointOnCircle"===v.csnames[a.args[0]].type};l.OtherPointOnCircle.updatePosition=function(a){var b=v.csnames[a.args[0]].antipodalPoint,b=h.normalizeMax(b);a.homog=w.withUsage(b,"Point")};l.PointOnSegment= +{};l.PointOnSegment.kind="P";l.PointOnSegment.signature=["S"];l.PointOnSegment.isMovable=!0;l.PointOnSegment.initialize=function(a){var b=l._helper.initializePoint(a);a=l.PointOnSegment.getParamForInput(a,b);Za(a)};l.PointOnSegment.getParamForInput=function(a,b,c){a=v.csnames[a.args[0]];var d=a.homog;"mouse"===c&&Eb&&0!==za&&(b=l._helper.snapPointToLine(b,d));c=h.turnIntoCSList([d.value[0],d.value[1],m.zero]);d=h.sub(a.startpos,a.endpos);b=h.crossratio3(d,a.startpos,a.endpos,b,c);0>b.value.real&& +(b=m.complex(0,b.value.imag));1d.value.real&&(c=-1>d.value.real?h.realVector([1,0]):h.realVector([0,1]));return c};l.PointOnArc.getParamFromState=function(a){return X(2)};l.PointOnArc.putParamToState=function(a,b){T(b)};l.PointOnArc.updatePosition=function(a){var b=v.csnames[a.args[0]],c=b.startPoint,d=b.viaPoint,e=b.endPoint,f=h.ii,k=h.cross(c,f),d= +h.cross(d,f),n=h.cross(e,f),n=h.turnIntoCSList([k,n]),k=h.transpose(n),n=h.conjugate(n),k=h.productMM(n,k),d=h.productMV(n,d),k=h.productMV(h.adjoint2(k),d),d=k.value[0],k=k.value[1],n=X(2);T(n);c=h.normalizeMax(h.add(h.scalmult(m.mult(d,n.value[0]),c),h.scalmult(m.mult(k,n.value[1]),e)));b=l._helper.conicOtherIntersection(b.matrix,f,c);a.homog=w.withUsage(b,"Point")};l.PointOnArc.stateSize=4;l._helper.CenterOfCircle=function(a){return h.turnIntoCSList([a.value[2].value[0],a.value[2].value[1],m.neg(a.value[0].value[0])])}; +l._helper.CenterOfConic=function(a){a=h.adjoint3(a);return{ctype:"list",value:[a.value[2].value[0],a.value[2].value[1],a.value[2].value[2]]}};l.CenterOfConic={};l.CenterOfConic.kind="P";l.CenterOfConic.signature=["C"];l.CenterOfConic.updatePosition=function(a){var b=l._helper.CenterOfConic(v.csnames[a.args[0]].matrix);a.homog=b;a.homog=h.normalizeMax(a.homog);a.homog=w.withUsage(a.homog,"Point")};l._helper.CircleMP=function(a,b){var c=a.value[0],d=a.value[1],e=m.neg(a.value[2]),f=m.zero,c=h.turnIntoCSList([h.turnIntoCSList([e, +f,c]),h.turnIntoCSList([f,e,d]),h.turnIntoCSList([c,d,f])]),e=w.mult(w.mult(b,c),b),d=w.mult(w.mult(b,h.fund),b),e=w.mult(e,h.fund),c=w.mult(d,c);return h.sub(e,c)};l.CircleMP={};l.CircleMP.kind="C";l.CircleMP.signature=["P","P"];l.CircleMP.updatePosition=function(a){a.matrix=l._helper.CircleMP(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog);a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Circle")};l.CircleMr={};l.CircleMr.kind="C";l.CircleMr.signature=["P"];l.CircleMr.isMovable= +!0;l.CircleMr.initialize=function(a){Za(m.real(a.radius))};l.CircleMr.getParamForInput=function(a,b,c){if("radius"===c)return b;a=v.csnames[a.args[0]].homog;a=h.normalizeZ(a);b=h.normalizeZ(b);b=h.sub(a,b);return b=h.abs(b)};l.CircleMr.getParamFromState=function(a){return Bb()};l.CircleMr.putParamToState=function(a,b){Za(b)};l.CircleMr.updatePosition=function(a){var b=Bb();Za(b);var c=v.csnames[a.args[0]].homog,d=m.mult(c.value[2],b),d=m.mult(d,d);if(!m._helper.isFinite(d)&&!m._helper.isNaN(d))return h.fund; +c=l._helper.ScaledCircleMrr(c,d);a.matrix=w.withUsage(c,"Circle");a.radius=b};l.CircleMr.stateSize=2;l.CircleMr.set_radius=function(a,b){"number"===b.ctype&&La(a,b,"radius")};l._helper.ScaledCircleMrr=function(a,b){var c=a.value[0],d=a.value[1],e=m.neg(a.value[2]),e=h.scalmult(e,h.turnIntoCSList([c,d,e])).value,c=h.turnIntoCSList([c,d]),c=m.sub(h.scalproduct(c,c),b),e=l._helper.buildConicMatrix([e[2],m.zero,e[2],e[0],e[1],c]);return h.normalizeMax(e)};l.Compass={};l.Compass.kind="C";l.Compass.signature= +["P","P","P"];l.Compass.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=b.value[2],f=c.value[2],k=d.value[2],b=h.scalmult(m.mult(f,k),b),c=h.scalmult(m.mult(e,k),c),d=h.scalmult(m.mult(e,f),d),b=h.sub(c,b),d=l._helper.ScaledCircleMrr(d,h.scalproduct(b,b));a.matrix=w.withUsage(d,"Circle")};l._helper.getConicType=function(a){if(1E-16>m.abs(h.det(a)).value.real)return"degenerate";var b=m.mult(a.value[0].value[0],a.value[1].value[1]), +b=m.sub(b,m.pow(a.value[0].value[1],m.real(2))),b=b.value.real;return 1E-16>Math.abs(b)?"parabola":1E-16c;++c)for(var d=0;d<=c;++d)Za(b.value[c].value[d])};l.FreeConic.updatePosition=function(a){var b=X(6);T(b);a.matrix= +l._helper.buildConicMatrix(b.value);a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};l.FreeConic.set_matrix=function(a,b){h._helper.isNumberMatrixMN(b,3,3)&&La(a,h.add(b,h.transpose(b)),"matrix")};l.FreeConic.stateSize=12;l._helper.buildConicMatrix=function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5];return h.turnIntoCSList([h.turnIntoCSList([a[0],b,d]),h.turnIntoCSList([b,c,e]),h.turnIntoCSList([d,e,f])])};l._helper.flattenConicMatrix=function(a){return h.turnIntoCSList([a.value[0].value[0], +a.value[0].value[1],a.value[1].value[1],a.value[0].value[2],a.value[1].value[2],a.value[2].value[2]])};l._helper.splitDegenConic=function(a){var b=h.adjoint3(a),c=0,d,e,f=m.abs2(b.value[0].value[0]).value.real;for(d=1;3>d;d++)e=m.abs2(b.value[d].value[d]).value.real,e>f&&(c=d,f=e);d=m.sqrt(m.mult(m.real(-1),b.value[c].value[c]));if(1E-16>m.abs2(d).value.real)return a=h.turnIntoCSList([m.zero,m.zero,m.zero]),[a,a];c=m.real(c+1);e=h.column(b,c);e=h.scaldiv(d,e);d=e.value[0];f=e.value[1];e=e.value[2]; +d=h.turnIntoCSList([h.turnIntoCSList([m.real(0),e,m.mult(m.real(-1),f)]),h.turnIntoCSList([m.mult(m.real(-1),e),m.real(0),d]),h.turnIntoCSList([f,m.mult(m.real(-1),d),m.real(0)])]);a=h.add(a,d);var k=0;for(d=f=b=0;3>d;d++)for(c=0;3>c;c++)e=m.abs2(a.value[d].value[c]).value.real,e>f&&(k=d,b=c,f=e);d=a.value[k];a=h.transpose(a);a=a.value[b];d=h.normalizeMax(d);a=h.normalizeMax(a);d=w.withUsage(d,"Line");a=w.withUsage(a,"Line");return[d,a]};l._helper.inputConic=function(a){var b="xx xy yy xz yz zz".split(" ").map(function(b){var d= +m._helper.input(a[b]);b[0]!==b[1]&&(d=m.realmult(.5,d));return d});return l._helper.buildConicMatrix(b)};l.SelectConic={};l.SelectConic.kind="C";l.SelectConic.signature=["Cs"];l.SelectConic.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=l._helper.inputConic(a.pos);a=v.csnames[a.args[0]].results;for(var c=h.conicDist(b,a[0]),d=0,e=1;er;++r){var v=(r&2)-1,u=d(m.real(((r&1)<<1)-1),n), +w=d(m.real(v),p),x=f(e,u,k,w),y=f(b,w,a,u),v=f(a,e,b,k),z=m.add(m.add(f(b,k,a,e),f(k,w,e,u)),f(w,b,u,a)),u=d(x,x),w=d(y,y),A=d(z,z),B=d(x,y),x=d(x,z),y=d(y,z),B=m.sub(B,d(m.real(.5),d(v,v))),v=h.turnIntoCSList([h.turnIntoCSList([u,B,x]),h.turnIntoCSList([B,w,y]),h.turnIntoCSList([x,y,A])]),v=h.productMM(l,h.productMM(v,c)),v=h.turnIntoCSList([v.value[0].value[0],v.value[0].value[1],v.value[0].value[2],v.value[1].value[1],v.value[1].value[2],v.value[2].value[2]]);t[r]=v}return t};l.ConicBy3p2l={}; +l.ConicBy3p2l.kind="Cs";l.ConicBy3p2l.signature=["P","P","P","L","L"];l.ConicBy3p2l.updatePosition=function(a){for(var b=l._helper.ConicBy3p2l(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog),b=Id(b),c=Array(4),d=0;4>d;++d){var e=b[d].value;c[d]=h.turnIntoCSList([h.turnIntoCSList([e[0],e[1],e[2]]),h.turnIntoCSList([e[1],e[3],e[4]]),h.turnIntoCSList([e[2],e[4],e[5]])])}a.results=c};l.ConicBy3p2l.stateSize=48;l.ConicBy2p3l= +{};l.ConicBy2p3l.kind="Cs";l.ConicBy2p3l.signature=["P","P","L","L","L"];l.ConicBy2p3l.updatePosition=function(a){for(var b=l._helper.ConicBy3p2l(v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog,v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog),b=Id(b),c=Array(4),d=0;4>d;++d){var e=b[d].value,e=h.turnIntoCSList([h.turnIntoCSList([e[0],e[1],e[2]]),h.turnIntoCSList([e[1],e[3],e[4]]),h.turnIntoCSList([e[2],e[4],e[5]])]);c[d]=h.normalizeMax(h.adjoint3(e))}a.results= +c};l.ConicBy2p3l.stateSize=48;l.ConicBy1p4l={};l.ConicBy1p4l.kind="Cs";l.ConicBy1p4l.signature=["P","L","L","L","L"];l.ConicBy1p4l.updatePosition=function(a){var b=l._helper.ConicBy4p1l(a,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog,v.csnames[a.args[0]].homog),c=b[0],b=b[1],c=h.adjoint3(c),b=h.adjoint3(b),b=[c,b];a.results=b};l.ConicBy1p4l.stateSize=Pa.stateSize;l.ConicParabolaPL={};l.ConicParabolaPL.kind="C";l.ConicParabolaPL.signature= +["P","L"];l.ConicParabolaPL.updatePosition=function(a){var b=v.csnames[a.args[0]].homog.value,c=v.csnames[a.args[1]].homog.value,d=m.mult,e=m.neg,f=m.add,k=m.sub,n=b[0],p=b[1],r=b[2],t=c[0],b=c[1],c=c[2],u=d(r,r),x=d(t,t),y=d(b,b),z=d(r,c),A=e(r),r=f(x,y),y=d(u,y),x=d(u,x),e=d(e(u),d(t,b)),t=d(A,f(d(n,r),d(z,t))),b=d(A,f(d(p,r),d(z,b))),d=k(d(f(d(n,n),d(p,p)),r),d(u,d(c,c))),d=l._helper.buildConicMatrix([y,e,x,t,b,d]),d=h.normalizeMax(d);a.matrix=w.withUsage(d,"Conic")};l.ConicBy2Foci1P={};l.ConicBy2Foci1P.kind= +"Cs";l.ConicBy2Foci1P.signature=["P","P","P"];l.ConicBy2Foci1P.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=h.ii,f=h.jj,k=h.normalizeMax(h.cross(b,d)),n=h.normalizeMax(h.cross(c,d)),p=h.normalizeMax(h.cross(d,e)),d=h.normalizeMax(h.cross(d,f)),n=l._helper.coHarmonic(p,d,k,n),k=h.normalizeMax(n[0]),n=h.normalizeMax(n[1]),e=h.turnIntoCSList([e]),p=h.turnIntoCSList([f]),d=h.turnIntoCSList([b]),r=h.turnIntoCSList([c]),f=l._helper.conicFromTwoDegenerates(e, +p,d,r,k),f=h.normalizeMax(f),e=l._helper.conicFromTwoDegenerates(e,p,d,r,n),e=h.normalizeMax(e),f=h.normalizeMax(h.adjoint3(f)),e=h.normalizeMax(h.adjoint3(e));"ellipsoid"!==l._helper.getConicType(f)&&(k=f,f=e,e=k);h.almostequals(b,c).value&&(b=m.real(3),e=h.zeromatrix(b,b));a.results=[f,e]};l.ConicBy2Pol1P={};l.ConicBy2Pol1P.kind="C";l.ConicBy2Pol1P.signature=["P","L","P","L","P"];l.ConicBy2Pol1P.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog, +e=v.csnames[a.args[3]].homog,f=v.csnames[a.args[4]].homog,k=h.scalproduct,l=h.scalmult,n=h.sub,p=h.productMM,r=m.realmult,t=h.transpose,u=h.turnIntoCSList,x=n(l(k(c,b),f),l(r(2,k(c,f)),b)),y=n(l(k(e,d),f),l(r(2,k(e,f)),d)),z=u([h.cross(b,f)]),f=u([h.cross(d,f)]),y=p(t(z),u([h.cross(b,y)])),u=p(t(f),u([h.cross(d,x)])),p=p(t(z),f),b=k(b,e),c=k(d,c),d=h.add(l(c,y),l(b,u)),d=n(d,l(r(2,m.mult(b,c)),p)),d=h.add(d,t(d)),d=h.normalizeMax(d),d=w.withUsage(d,"Conic");a.matrix=d};l.ConicBy2Pol1L={};l.ConicBy2Pol1L.kind= +"C";l.ConicBy2Pol1L.signature=["P","L","P","L","L"];l.ConicBy2Pol1L.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=v.csnames[a.args[3]].homog,f=v.csnames[a.args[4]].homog,k=h.scalproduct,l=h.scalmult,n=h.productMM,p=m.mult,r=h.transpose,t=h.turnIntoCSList,u=k(c,b),x=k(c,d),y=k(e,b),z=k(e,d),A=k(f,b),k=k(f,d),B=t([h.sub(l(p(y,k),c),l(p(x,A),e))]),b=h.add(n(r(t([l(p(y,x),f)])),t([h.sub(h.add(l(m.sub(p(u,k),p(x,A)),e),l(m.sub(p(z, +A),p(y,k)),c)),l(h.det3(c,e,f),h.cross(b,d)))])),n(r(B),B)),b=h.add(b,r(b)),b=h.normalizeMax(b),b=w.withUsage(b,"Conic");a.matrix=b};l._helper.conic1Pol3Inc=function(a,b,c,d,e){var f=h.scalproduct,k=h.scalmult,l=h.productMM,n=h.cross,p=m.realmult,r=m.mult,t=h.transpose,v=h.turnIntoCSList,u=h.det3,w=u(a,c,d),x=v([n(c,e)]),y=v([n(a,e)]),z=v([n(c,d)]),A=f(b,a),B=f(b,c);b=f(b,e);n=v([n(d,h.sub(k(A,e),k(p(2,b),a)))]);x=k(w,l(t(x),n));a=p(2,m.add(r(u(a,d,e),B),r(w,b)));a=m.sub(r(u(c,d,e),A),a);x=h.add(x, +k(a,l(t(y),z)));x=h.add(x,t(x));return x=h.normalizeMax(x)};l.ConicBy1Pol3P={};l.ConicBy1Pol3P.kind="C";l.ConicBy1Pol3P.signature=["P","L","P","P","P"];l.ConicBy1Pol3P.updatePosition=function(a){var b=l._helper.conic1Pol3Inc(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog),b=w.withUsage(b,"Conic");a.matrix=b};l.ConicBy1Pol3L={};l.ConicBy1Pol3L.kind="C";l.ConicBy1Pol3L.signature=["P","L","L","L","L"];l.ConicBy1Pol3L.updatePosition= +function(a){var b=l._helper.conic1Pol3Inc(v.csnames[a.args[1]].homog,v.csnames[a.args[0]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog),b=h.normalizeMax(h.adjoint3(b)),b=w.withUsage(b,"Conic");a.matrix=b};l.ConicBy1Pol2P1L={};l.ConicBy1Pol2P1L.kind="Cs";l.ConicBy1Pol2P1L.signature=["P","L","P","P","L"];l.ConicBy1Pol2P1L.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=v.csnames[a.args[3]].homog, +f=v.csnames[a.args[4]].homog,k=m.add,l=h.turnIntoCSList,n=h.cross,p=h.productMM,r=m.mult,t=m.realmult,u=h.scalmult,w=h.scalproduct,x=m.sub,y=h.transpose,z=w(c,b),A=w(c,d),B=w(c,e),c=w(f,b),C=w(f,d),w=w(f,e),f=l([n(b,d)]),b=l([n(b,e)]),d=l([n(d,e)]),e=m.sqrt(r(r(C,w),r(x(r(z,C),t(2,r(c,A))),x(r(z,w),t(2,r(c,B)))))),l=p(y(f),b),e=u(e,h.add(l,y(l))),k=u(x(r(z,r(C,w)),k(r(c,r(A,w)),r(c,r(C,B)))),l),t=h.add(h.sub(u(B,f),u(A,b)),u(t(.5,z),d)),k=h.add(k,u(r(c,c),p(y(d),t))),k=h.add(k,y(k)),p=h.normalizeMax(h.add(e, +k)),r=h.normalizeMax(h.sub(e,k));a.results=Qb(p,r).value};l.ConicBy1Pol2P1L.stateSize=Qb.stateSize;l.ConicBy1Pol1P2L={};l.ConicBy1Pol1P2L.kind="Cs";l.ConicBy1Pol1P2L.signature=["P","L","P","L","L"];l.ConicBy1Pol1P2L.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=v.csnames[a.args[3]].homog,f=v.csnames[a.args[4]].homog,k=m.add,l=h.turnIntoCSList,n=h.cross,p=h.productMM,r=m.mult,t=m.realmult,u=h.scalmult,w=h.scalproduct,x=m.sub, +y=h.transpose,z=w(c,b),A=w(c,d),B=w(e,b),C=w(e,d),D=w(f,b),E=w(f,d),F=r(z,z),G=r(z,A),w=r(A,A),H=r(B,B),I=r(B,C),L=r(C,C),N=r(D,D),J=r(D,E),M=r(E,E),K=r(r(F,L),M),K=x(K,t(2,r(r(G,I),M))),K=x(K,t(2,r(r(G,L),J))),K=k(K,t(.5,r(r(w,H),M))),K=k(K,t(3,r(r(w,I),J))),K=k(K,t(.5,r(r(w,L),N))),J=r(r(z,C),E),J=x(J,r(r(A,B),E)),J=x(J,r(r(A,C),D)),J=r(J,r(w,D)),M=x(r(z,C),t(2,r(A,B))),M=r(M,r(w,r(C,D))),K=p(y(l([c])),l([h.add(h.add(u(K,c),u(J,e)),u(M,f))])),J=l([e]),K=h.add(K,u(t(.5,r(r(w,w),N)),p(y(J),J))),K= +h.add(K,u(w,p(y(l([f])),l([h.add(u(x(x(t(2,r(G,I)),r(F,L)),t(.5,r(w,H))),f),u(r(h.det3(c,e,f),x(r(z,C),r(A,B))),n(b,d)))])))),K=h.add(K,y(K)),b=m.sqrt(r(r(C,E),r(x(r(z,C),t(2,r(A,B))),x(r(z,E),t(2,r(A,D)))))),c=p(y(l([c])),l([h.sub(u(x(r(A,k(r(B,E),r(C,D))),r(z,r(C,E))),c),u(w,h.add(u(D,e),u(B,f))))])),c=h.add(c,u(r(z,w),p(y(l([e])),l([f])))),c=u(b,c),c=h.add(c,y(c)),e=h.normalizeMax(h.add(K,c)),f=h.normalizeMax(h.sub(K,c));a.results=Qb(e,f).value};l.ConicBy1Pol1P2L.stateSize=Qb.stateSize;l._helper.coHarmonic= +function(a,b,c,d){var e=h.realVector([100*Math.random(),100*Math.random(),1]),f=h.det3(e,c,a),k=h.det3(e,c,b);c=h.det3(e,d,a);d=h.det3(e,d,b);d=m.sqrt(m.mult(d,k));f=m.sqrt(m.mult(c,f));a=w.mult(a,d);f=w.mult(b,f);b=h.add(a,f);a=h.sub(a,f);return[b,a]};l.ConicInSquare={};l.ConicInSquare.kind="C";l.ConicInSquare.signature=["P","P","P","P"];l.ConicInSquare.updatePosition=function(a){var b=D.basismap(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog), +c=m.one,c=l._helper.buildConicMatrix([c,c,c,m.real(-3),c,c]),b=h.adjoint3(b),b=h.productMM(h.productMM(h.transpose(b),c),b),b=h.normalizeMax(b);a.matrix=w.withUsage(b,"Conic")};l.ConicBy5lines={};l.ConicBy5lines.kind="C";l.ConicBy5lines.signature=["L","L","L","L","L"];l.ConicBy5lines.updatePosition=function(a){var b=l._helper.ConicBy5(a,v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,v.csnames[a.args[2]].homog,v.csnames[a.args[3]].homog,v.csnames[a.args[4]].homog),b=h.adjoint3(b);a.matrix=b; +a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};l.ConicFromPrincipalDirections={};l.ConicFromPrincipalDirections.kind="C";l.ConicFromPrincipalDirections.signature=["P","P","P"];l.ConicFromPrincipalDirections.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog,d=v.csnames[a.args[2]].homog,e=l._helper.pointReflection(b,c),f=h.cross(c,b),b=h.turnIntoCSList([f.value[0],f.value[1],m.zero]),f=h.turnIntoCSList([f]),c=h.turnIntoCSList([h.cross(c, +b)]),e=h.turnIntoCSList([h.cross(e,b)]);a.matrix=l._helper.conicFromTwoDegenerates(f,f,c,e,d);a.matrix=h.normalizeMax(a.matrix);a.matrix=w.withUsage(a.matrix,"Conic")};l.CircleBy3={};l.CircleBy3.kind="C";l.CircleBy3.signature=["P","P","P"];l.CircleBy3.updatePosition=function(a){var b=l._helper.ConicBy5(a,v.csnames[a.args[0]].homog,v.csnames[a.args[1]].homog,h.ii,h.jj,v.csnames[a.args[2]].homog);a.matrix=h.normalizeMax(b);a.matrix=w.withUsage(a.matrix,"Circle")};l.ArcBy3={};l.ArcBy3.kind="C";l.ArcBy3.signature= +["P","P","P"];l.ArcBy3.updatePosition=function(a){l.CircleBy3.updatePosition(a);a.startPoint=v.csnames[a.args[0]].homog;a.viaPoint=v.csnames[a.args[1]].homog;a.endPoint=v.csnames[a.args[2]].homog};l.ArcBy3.initialize=function(a){a.startPoint=v.csnames[a.args[0]].homog;a.viaPoint=v.csnames[a.args[1]].homog;a.endPoint=v.csnames[a.args[2]].homog;a.isArc=!0};l.PolarOfPoint={};l.PolarOfPoint.kind="L";l.PolarOfPoint.signature=["P","C"];l.PolarOfPoint.updatePosition=function(a){var b=w.mult(v.csnames[a.args[1]].matrix, +v.csnames[a.args[0]].homog),b=h.normalizeMax(b);a.homog=w.withUsage(b,"Line")};l.PolarOfLine={};l.PolarOfLine.kind="P";l.PolarOfLine.signature=["L","C"];l.PolarOfLine.updatePosition=function(a){var b=v.csnames[a.args[0]],c=h.adjoint3(v.csnames[a.args[1]].matrix),b=w.mult(c,b.homog),b=h.normalizeMax(b);a.homog=w.withUsage(b,"Point")};l.AngleBisector={};l.AngleBisector.kind="Ls";l.AngleBisector.signature=["L","L","P"];l.AngleBisector.updatePosition=function(a){var b=v.csnames[a.args[0]].homog,c=v.csnames[a.args[1]].homog, +d=v.csnames[a.args[2]].homog,e=h.add,f=h.sub,k=h.abs,l=h.cross,m=h.scalmult,n=h.normalizeMax,p=h._helper.isAlmostZero,r=h.linfty,t=m(k(l(l(r,c),r)),b),b=m(k(l(l(r,b),r)),c),f=f(t,b),e=e(t,b);p(f)&&(f=l(l(l(r,e),r),d));p(e)&&(e=l(l(l(r,f),r),d));a.results=Pa(n(f),n(e))};l.AngleBisector.stateSize=Pa.stateSize;l._helper.IntersectLC=function(a,b){var c=m,d=h.crossOperator(a),e=h.transpose(d),e=w.mult(e,w.mult(b,d)),f=h.maxIndex(a,m.abs2),k,l,n,p;0===f?(f=e.value[1].value[1],k=e.value[1].value[2],l=e.value[2].value[1], +n=e.value[2].value[2],p=a.value[0]):1===f?(f=e.value[0].value[0],k=e.value[0].value[2],l=e.value[2].value[0],n=e.value[2].value[2],p=a.value[1]):(f=e.value[0].value[0],k=e.value[0].value[1],l=e.value[1].value[0],n=e.value[1].value[1],p=a.value[2]);c=c.div(c.sqrt(c.sub(c.mult(k,l),c.mult(f,n))),p);c=h.add(e,h.scalmult(c,d));f=h.maxIndex(c,h.abs2);d=c.value[f];d=h.normalizeMax(d);d=w.withUsage(d,"Point");c=h.transpose(c);f=h.maxIndex(c,h.abs2);c=c.value[f];c=h.normalizeMax(c);c=w.withUsage(c,"Point"); +return[d,c]};l.IntersectLC={};l.IntersectLC.kind="Ps";l.IntersectLC.signature=["L","C"];l.IntersectLC.updatePosition=function(a){var b=l._helper.IntersectLC(v.csnames[a.args[0]].homog,v.csnames[a.args[1]].matrix);a.results=Pa(b[0],b[1])};l.IntersectLC.stateSize=Pa.stateSize;l.OtherIntersectionCL={};l.OtherIntersectionCL.kind="P";l.OtherIntersectionCL.signature=["C","L","P"];l.OtherIntersectionCL.updatePosition=function(a){var b=v.csnames[a.args[2]].homog,c=l._helper.IntersectLC(v.csnames[a.args[1]].homog, +v.csnames[a.args[0]].matrix),d=c[0],c=c[1],e=h.projectiveDistMinScal(d,b),b=h.projectiveDistMinScal(c,b);a.homog=en?(p=a,c=b):(r=m.solveCubic(p,r,c,f),c=m.abs2(m.sub(r[0],r[1])).value.real,f=m.abs2(m.sub(r[0],r[2])).value.real,k=m.abs2(m.sub(r[1],r[2])).value.real,c>f?(p=r[1],r=c>k?r[0]:r[2]):(p=r[2],r=f>k?r[0]:r[1]),p=h.add(h.scalmult(p,a),b),c=h.add(h.scalmult(r,a),b));r=l._helper.splitDegenConic(p);p=r[0];r=r[1];c=l._helper.splitDegenConic(c);k=c[0];f=c[1];c= +h.cross(p,k);k=h.cross(r,k);p=h.cross(p,f);r=h.cross(r,f);c=h.normalizeMax(c);k=h.normalizeMax(k);p=h.normalizeMax(p);r=h.normalizeMax(r);c=w.withUsage(c,"Point");k=w.withUsage(k,"Point");p=w.withUsage(p,"Point");r=w.withUsage(r,"Point");return[c,k,p,r]};l.IntersectConicConic={};l.IntersectConicConic.kind="Ps";l.IntersectConicConic.signature=["C","C"];l.IntersectConicConic.updatePosition=function(a){var b=l._helper.IntersectConicConic(v.csnames[a.args[0]].matrix,v.csnames[a.args[1]].matrix),b=Fc(b[0], +b[1],b[2],b[3]);a.results=b};l.IntersectConicConic.stateSize=Fc.stateSize;l.SelectP={};l.SelectP.kind="P";l.SelectP.signature=["Ps"];l.SelectP.initialize=function(a){if(void 0!==a.index)return a.index-1;var b=v.csnames[a.args[0]].results.value;a=l._helper.initializePoint(a);for(var c=h.projectiveDistMinScal(a,b[0]),d=0,e=1;ea.isEuclidean,ar:b[0].value[0],ai:b[1].value[0],br:b[0].value[2],bi:b[1].value[2],cr:m.zero,ci:m.zero,dr:b[2].value[2],di:m.zero}};l.TrComposeMtMt={};l.TrComposeMtMt.kind="Mt";l.TrComposeMtMt.signature=["Mt","Mt"];l.TrComposeMtMt.updatePosition= +function(a){l._helper.composeMtMt(a,v.csnames[a.args[0]].moebius,v.csnames[a.args[1]].moebius)};l.TrComposeTrMt={};l.TrComposeTrMt.kind="Mt";l.TrComposeTrMt.signature=["Tr","Mt"];l.TrComposeTrMt.signatureConstraints=function(a){return!!v.csnames[a.args[0]].isEuclidean};l.TrComposeTrMt.updatePosition=function(a){l._helper.composeMtMt(a,l._helper.euc2moeb(v.csnames[a.args[0]]),v.csnames[a.args[1]].moebius)};l.TrComposeMtTr={};l.TrComposeMtTr.kind="Mt";l.TrComposeMtTr.signature=["Mt","Tr"];l.TrComposeMtTr.signatureConstraints= +function(a){return!!v.csnames[a.args[1]].isEuclidean};l.TrComposeMtTr.updatePosition=function(a){l._helper.composeMtMt(a,v.csnames[a.args[0]].moebius,l._helper.euc2moeb(v.csnames[a.args[1]]))};l._helper.pointReflection=function(a,b){return h.normalizeMax(h.sub(h.scalmult(m.realmult(2,b.value[2]),a),h.scalmult(a.value[2],b)))};l._helper.conicOtherIntersection=function(a,b,c){var d=h.productMV(a,c);a=h.scalproduct(c,d);d=h.scalproduct(b,d);d=m.realmult(-2,d);b=h.scalmult(a,b);c=h.scalmult(d,c);c=h.add(b, +c);return c=h.normalizeMax(c)};l.Dist={};l.Dist.kind="V";l.Dist.signature=["P","P"];l.Dist.updatePosition=function(a){var b=v.csnames[a.args[1]].homog;a.value=h.abs(h.sub(h.normalizeZ(v.csnames[a.args[0]].homog),h.normalizeZ(b)))};l.Angle={};l.Angle.kind="V";l.Angle.signature=["L","L","P"];l.Angle.initialize=function(a){void 0===a.angle&&(a.angle=.5*Math.PI);Za(m._helper.input(a.angle))};l.Angle.updatePosition=function(a){var b=v.csnames[a.args[1]].homog,c=v.csnames[a.args[2]].homog,d=h.cross(v.csnames[a.args[0]].homog, +h.linfty),b=h.cross(b,h.linfty),c=h.crossratio3(d,b,h.ii,h.jj,c),c=m.mult(m.complex(0,.5),m.log(c)),d=(Bb().value.real-c.value.real)/Math.PI,b=Math.round(d);!lb&&.01a;++a)l.IFS["set_prob"+a]=l.IFS.probSetter.bind(null,a)})();l._helper.snapPointToLine=function(a,b){if(m._helper.isAlmostZero(a.value[2]))return a;var c=l._helper.projectPointToLine(a,b),c=h.normalizeZ(c),d=c.value[0].value.real,c=c.value[1].value.real,e=Math.round(d/za)*za,f=Math.round(c/za)*za,k=h.realVector([e,f,1]);.2>Math.abs(e-d)&&.2>Math.abs(f-c)&&m._helper.isAlmostZero(h.scalproduct(b, +k))&&(a=l._helper.projectPointToLine(k,b));return a};var Ac={CircleByRadius:"CircleMr",IntersectionCircleCircle:"IntersectCirCir",IntersectionConicConic:"IntersectConicConic",FreePoint:"Free",Orthogonal:"Perp",Parallel:"Para",Pole:"PolarOfLine",Polar:"PolarOfPoint",Arc:"ArcBy3",EuclideanMid:"Mid",AngularBisector:"AngleBisector",TransformConic:"TransformC",TransformSegment:"TransformS",TrMoebiusSegment:"TrMoebiusS",ReflectCC:"TrMoebiusC",ReflectCL:"TrMoebiusL",ReflectCP:"TrMoebiusP",ReflectCArc:"TrMoebiusArc", +ReflectCS:"TrMoebiusS",TrMoebiusCircle:"TrMoebiusC"},zd={CircleMFixedr:function(a){a.pinned=!0;a.type="CircleMr";return[a]},CircleByFixedRadius:function(a){a.pinned=!0;a.type="CircleMr";return[a]},IntersectionConicLine:function(a){a.args=[a.args[1],a.args[0]];a.type="IntersectLC";return[a]},angleBisector:function(a){var b={name:a.name+"_Intersection",type:"Meet",args:a.args,visible:!1};a.type="AngleBisector";a.args=[a.args[0],a.args[1],b.name];return[b,a]},Transform:function(a){var b=v.csnames[a.args[1]], +b={Tr:"Transform",Mt:"TrMoebius"}[v.csnames[a.args[0]].kind]+(b.isArc?"Arc":b.kind);if(l.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");return[]},TrReflection:function(a){var b="TrReflection"+v.csnames[a.args[0]].kind;if(l.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet");return[]},TrCompose:function(a){var b="TrCompose"+a.args.map(function(a){return v.csnames[a].kind}).join("");if(l.hasOwnProperty(b))return a.type=b,[a];console.log(b+" not implemented yet"); +return[]}},te="align alpha angle args arrow arrowposition arrowshape arrowsides arrowsize clip color dashtype drawtrace fillalpha fillcolor filled labeled labelpos name overhang pinned printname radius size text text_fontfamily textbold textitalics textsize tracedim tracelength traceskip tracing type visible".split(" ");sa.saveState=function(){return{geometry:ue()}};var ya={},Qd,Rb,Rd,Sd;Qd=[[],[.2],[.075,.225],[44/45,-56/15,32/9],[19372/6561,-25360/2187,64448/6561,-212/729],[9017/3168,-355/33,46732/ +5247,49/176,-5103/18656],[35/384,0,500/1113,125/192,-2187/6784,11/84]];Rb=[0,.2,.3,.8,8/9,1,1];Rd=[35/384,0,500/1113,125/192,-2187/6784,11/84,0];Sd=[5179/57600,0,7571/16695,.6140625,-92097/339200,187/2100,.025];var Fa,ma=[],Hc=[],qc=!1;ya.tick=function(a){a/=Vb;for(var b=0;ba&&c>.999*a;)b=ya.oneRKStep(b),c+=b,b=Math.min(2*b,a-c),b=Math.max(b,1E-16),ya.restorePosition(),ya.doCollisions(),ya.calculateForces(), +ya.moveToFinalPos();return!0};ya.restorePosition=function(){Fa.forEach(function(a){O[a.type].restorePos(a,9)})};ya.doCollisions=function(){Fa.forEach(function(a){O[a.type].doCollisions(a)})};ya.calculateForces=function(){Fa.forEach(function(a){O[a.type].calculateForces(a)})};ya.moveToFinalPos=function(){Fa.forEach(function(a){O[a.type].move(a)})};ya.oneRKStep=function(a){for(var b=function(a){Fa.forEach(function(b){O[b.type].initRK(b,a);O[b.type].storePosition(b)})},c=function(a){Fa.forEach(function(b){O[b.type].setToTimestep(b, +Rb[a])})},d=function(a){Fa.forEach(function(b){O[b.type].proceedMotion(b,Rb[a],a,Qd[a])})},e=function(){Fa.forEach(function(a){O[a.type].resetForces(a)})},f=function(a){Fa.forEach(function(b){O[b.type].calculateDelta(b,a)})},h=function(b){var c=0;Fa.forEach(function(a){O[a.type].proceedMotion(a,Rb[6],7,Rd);O[a.type].savePos(a,8);O[a.type].proceedMotion(a,Rb[6],7,Sd);O[a.type].savePos(a,9);c+=O[a.type].sqDist(a,8,9)});return c=Math.sqrt(c)/a},k=function(a){Fa.forEach(function(a){O[a.type].recallPosition(a)})}, +l=!1;!l;){b(a);for(var m=0;7>m;m++)c(m),d(m),e(),ya.calculateForces(),f(m);h(a)>O.env.errorbound&&a>O.env.lowestdeltat?(a/=O.env.slowdownfactor,k()):l=!0}return a};var O={Mass:{reset:function(a,b){a.vel=[0,0,0];a.pos=[0,0,0,0];a.el=b;"undefined"===typeof a.mass&&(a.mass=1);"undefined"===typeof a.charge&&(a.charge=0);"undefined"===typeof a.friction&&(a.friction=0);a.lnfrict=0;"undefined"===typeof a.limitspeed&&(a.limitspeed=!1);"undefined"===typeof a.fixed&&(a.fixed=!1);"undefined"===typeof a.radius&& +(a.radius=1);a.internalmove=!1;a.fx=0;a.fy=0;a.fz=0;a.vx=a.vx||0;a.vy=a.vy||0;a.vz=a.vz||0;a.mtype=0;a.env=O.env;a.deltat=0;a.mx=0;a.my=0;a.mz=0;a.mvx=0;a.mvy=0;a.mvz=0;a.dx=[0,0,0,0,0,0,0,0,0,0];a.dy=[0,0,0,0,0,0,0,0,0,0];a.dz=[0,0,0,0,0,0,0,0,0,0];a.dvx=[0,0,0,0,0,0,0,0,0,0];a.dvy=[0,0,0,0,0,0,0,0,0,0];a.dvz=[0,0,0,0,0,0,0,0,0,0];a.midx=0;a.midy=0;a.midz=0;a.lx=0;a.ly=0;a.lz=0},resetForces:function(a){a.fx=0;a.fy=0;a.fz=0},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){var c=D.extractPoint(a.el.homog); +a.x=c.x;a.y=c.y;a.z=0;a.xo=a.x;a.yo=a.y;a.zo=a.z;a.vxo=a.vx;a.vyo=a.vy;a.vzo=a.vz;a.deltat=b;a.fx=0;a.fy=0;a.fz=0},setVelocity:function(a,b,c,d){d||(d=0);a.vx=b;a.vy=c;a.vz=d},move:function(a){a.pos=[a.x,a.y,1];a.internalmove=!0;ja&&aa.down&&a.el===ja.mover||La(a.el,h.realVector(a.pos),"homog");a.el.sx=a.x;a.el.sy=a.y;a.internalmove=!1},proceedMotion:function(a,b,c,d){if(!a.fixed)for(a.x=a.mx,a.y=a.my,a.z=a.mz,a.vx=a.mvx,a.vy=a.mvy,a.vz=a.mvz,b=0;bO.det(d,b,e,c,w,x)*O.det(d,b,e,c,y.value.real,y.value.imag)&&0>O.det(d,b,w,x,y.value.real,y.value.imag)*O.det(e,c,w,x,y.value.real,y.value.imag)&&(v=t.behavior.mvx+a.deltat*(-y.value.real+t.behavior.xo),w=t.behavior.mvy+a.deltat*(-y.value.imag+t.behavior.yo),u=p*v+n*w,v=n*v-p*w,t.behavior.x=y.value.real,t.behavior.y=y.value.imag,t.behavior.vx=p*u*(1-a.xdamp),t.behavior.vy=n*u*(1-a.xdamp),t.behavior.vx+= +-n*v*(1-a.ydamp),t.behavior.vy+=p*v*(1-a.ydamp))}a.x1o=d;a.y1o=b;a.x2o=e;a.y2o=c}},Environment:{init:function(a){"undefined"===typeof a.gravity&&(a.gravity=0);"undefined"===typeof a.friction&&(a.friction=0);"undefined"===typeof a.springstrength&&(a.springstrength=1);"undefined"!==typeof a.accuracy&&(Vb=a.accuracy);"undefined"!==typeof a.deltat&&ha(a.deltat/.6);"undefined"===typeof a.charges&&(a.charges=!1);"undefined"===typeof a.balls&&(a.balls=!1);"undefined"===typeof a.newton&&(a.newton=!1);"undefined"=== +typeof a.ballInteractionBoosting&&(a.ballInteractionBoosting=1);O.env=a;a.errorbound=.001;a.lowestdeltat=1E-7;a.slowdownfactor=2},reset:function(a){},resetForces:function(a){},getBlock:!1,setToTimestep:function(a,b,c){},initRK:function(a,b){},setVelocity:function(a,b,c,d){},move:function(a){},proceedMotion:function(a,b,c,d){},calculateForces:function(a){var b,c,d,e,f,h,k,l,m,n;if(a.newton)for(b=0;bm?0:(n-m)*(n-m)),l=(e-l)/(n*n*n)*(n>m?0:(n-m)*(n-m))):1===a.ballInteractionBoosting?(k=(d-k)/(n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n* +n*n)*(n>m?0:(n-m)*(n-m))):(k=(d-k)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m)),l=(e-l)/(n*n*n*n*n)*(n>m?0:(n-m)*(n-m))),c.behavior.fx+=k,c.behavior.fy+=l,h.behavior.fx-=k,h.behavior.fy-=l);for(b=0;b0); + out=[]; + forall(1..(length(tmp1)),nn, + tmp=tmp1_nn; + txt=tmp.text; + tmp=select(1..(length(txtL)),txtL_#==txt); + if(length(tmp)>0, + jj=tmp_1; + clr=clrL_jj; + tmp=tmp1_nn; + tmp.fillcolor=clr; + , + tmp=tmp1_nn; + clr=tmp.fillcolor; + ); + out=append(out,[tmp.name,clr,tmp.text]); + ); //181209to + out; +); +Setwindow():=Setwindow("Msg=yes"); +Setwindow(str):=( + regional(tmp,tmp1,tmp2,msg); + msg="y"; + tmp=indexof(str,"="); // 16.02.10 + tmp1=Toupper(substring(str,tmp,tmp+1)); + if(tmp1=="N",msg="n"); + if((ispoint(SW) & ispoint(NE)), + tmp1=Lcrd(SW); + tmp2=Lcrd(NE); + XMIN=tmp1_1; XMAX=tmp2_1; + YMIN=tmp1_2; YMAX=tmp2_2; + , + Putpoint("SW",Pcrd([XMIN,YMIN])); + Putpoint("NE", Pcrd([XMAX,YMAX])); + ); + if(msg=="y", + println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])"); + ); + layer(KETPICLAYER); + autoclearlayer(KETPICLAYER,true); + drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]), + Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]); +); +Setwindow(xrange,yrange):=( + XMIN=xrange_1; + XMAX=xrange_2; + YMIN=yrange_1; + YMAX=yrange_2; + Putpoint("SW",[XMIN,YMIN]);//181016 + Putpoint("NE",[XMAX,YMAX]);//181016 +); +Textformat(value,dig):=( + regional(vv,tmp,tmp1); + if(islist(value), + tmp1="["; + forall(value, + tmp1=tmp1+Textformat(#,dig)+","; + ); + if(length(tmp1)>1, //18.01.29from + tmp1=substring(tmp1,0,length(tmp1)-1); + ); + tmp1=tmp1+"]"; //18.01.29until + , + if(ispoint(value) % isstring(value), + if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02 + , + tmp1=format(value,dig); + ); + ); + tmp1; +); +MeasureDepth(list):=( + regional(tmp,tmp1,Depth,Flg); + Flg=0; + Depth=0; + if(length(list)>0, //180501 + if(ispoint(list), + Depth=0; + Flg=1; + , + tmp1=select(1..(length(list)),length(list_#)>0);//17.05.21from + tmp=list_(tmp1_1);//17.05.21until + ); + repeat(4, + if(Flg==0, + if(islist(tmp), + tmp=tmp_1; + Depth=Depth+1; + , + if(ispoint(tmp),Depth=Depth+1); + Flg=1; + ); + ); + ); + );//180501 + Depth; +); +Drwxy():=Drwxy(0,[]); //190103from +Drwxy(Arg):=( + if(islist(Arg),Drwxy(0,Arg); Drwxy(Arg,[])); +); +Drwxy(add):=Drwxy(add,[]); +Drwxy(add,optionsorg):=( //190103to + regional(options,color,eqL,strL,org,xrng,yrng,ax,st,nn,size, + linesty,colorax,colorla,tmp,tmp1,tmp2); + options=optionsorg; + tmp=Divoptions(options); + color=tmp_(length(tmp)-2); + eqL=tmp_5; + org=GENTEN; + xrng=[XMIN,XMAX]; //190103 + yrng=[YMIN,YMAX]; //190103 + ax=AXSTYLE; + linesty=ax_8; + if(isstring(ax_9),colorax=ax_9,colorax=text(ax_9)); + if(length(colorax)>0, + colorax="Color="+colorax; + ); + if(isstring(ax_10),colorla=ax_10,colorla=text(ax_10)); + if(length(colorla)>0, //181217from + colorla="Color="+colorla; + , + if(length(colorax)>0, + colorla=colorax; + ); + ); //181217to + forall(eqL, + tmp=Strsplit(#,"="); + tmp1=Toupper(substring(tmp_1,0,1)); + if(tmp1=="O", //190103from + org=parse(tmp_2); + options=remove(options,[#]); + ); //190103to + if(tmp1=="X", + xrng=parse(tmp_2); + options=remove(options,[#]); + ); + if(tmp1=="Y", + yrng=parse(tmp_2); + options=remove(options,[#]); + ); + if(tmp1=="A", + tmp2=tokenize(tmp_2,","); + st=1; nn=1; + if(isreal(tmp2_1), + st=2; + nn=tmp2_1; + ); + forall(st..(length(tmp2)), + tmp=tmp2_#; + if(length(tmp)>0,ax_nn=tmp); + nn=nn+1; + ); + options=remove(options,[#]); + ); + ); + options=append(options,linesty); //181216 + if(substring(ax_1,0,1)=="a", + strL=select(options,isstring(#)); //181216 + tmp=select(strL,contains(["dr","da","do","id"],substring(#,0,2))); + if(length(tmp)==0,options=append(options,YasenStyle)); + tmp=substring(ax_1,1,length(ax_1)); //181216[2lines] + if(length(tmp)>0,size=parse(tmp),size=YaSize); + tmp1=concat(options,[size,YaAngle,YaPosition,YaCut,colorax]);//181216 + tmp=[[xrng_1,org_2],[xrng_2,org_2]]; + Arrowdata("axx"+text(AXCOUNT),tmp,tmp1); + tmp=[[org_1,yrng_1],[org_1,yrng_2]]; + Arrowdata("axy"+text(AXCOUNT),tmp,tmp1); + , + tmp=[[xrng_1,org_2],[xrng_2,org_2]]; + tmp1=append(options,colorax);//181216 + Listplot("axx"+text(AXCOUNT),tmp,tmp1); + tmp=[[org_1,yrng_1],[org_1,yrng_2]]; + Listplot("axy"+text(AXCOUNT),tmp,tmp1); + ); + AXCOUNT=AXCOUNT+1; + Expr([[xrng_2,org_2],ax_3,ax_2],[colorla]);//181216[3lines] + Expr([[org_1,yrng_2],ax_5,ax_4],[colorla]); + Letter([org,ax_7,ax_6],[colorla]); + if(add==0, //190103 + Addax(0); + ); +); +Dashlinedata(dataorg,sen,gap,ptn):=( + regional(data,eps,dtall,len,lenlist,ii,lenall,kari, + naga,tobi,nsen,seglist,segunit,hajime,owari,jj, + flg,tt,ptL,out,tmp,tmp1,tmp2); + eps=10.0^(-6); + if(isstring(dataorg),data=parse(dataorg),data=dataorg); + dtall=length(data); + out=[]; + len=0; lenlist=[0]; + forall(2..dtall,ii, + len=len+|data_ii-data_(ii-1)|; + lenlist=append(lenlist,len); + ); + lenall=lenlist_dtall; + if(lenall>0, + kari=(sen+gap)*0.1;naga=sen*0.1;tobi=gap*0.1; + if(|data_1-data_dtall|0,hajime=flg-1); + flg=0; + forall(hajime..dtall,jj, + if(flg==0, + if(len+naga0,owari=flg-1); + tt=len-lenlist_hajime; + tt=tt/(lenlist_(hajime+1)-lenlist_hajime); + tmp=data_hajime+tt*(data_(hajime+1)-data_hajime); + ptL=[tmp]; + forall((hajime+1)..owari,jj, + ptL=append(ptL,data_jj); + ); + tt=(len+naga-lenlist_owari); + tt=tt/(lenlist_(owari+1)-lenlist_owari); + tmp=data_owari+tt*(data_(owari+1)-data_owari); + ptL=append(ptL,tmp); + out=append(out,ptL); + ); + ); + out; +); +Windispg():=( + if(ADDAXES=="1", //181215from + Drwxy(); + ADDAXES="0"; + ); //181215to + Windispg(GCLIST); //190125 +); +Windispg(gcLorg):=( //190125 + regional(gcL,Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,tmp4,opcindy); + gcL=gcLorg; //190125from + if(length(gcL)>0, + if(!islist(gcL_1),gcL=[gcL]); + ); //190125to + gsave(); + layer(KETPIClayer); + forall(gcL,Nj, + if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17 + if(islist(Dt) & length(Dt)>0, // 12.19,12.22 + tmp=MeasureDepth(Dt); + if(tmp==1,Dt=[Dt]); + opcindy=Nj_3; + tmp=Nj_2; //190119from + if(!islist(tmp),tmp=[tmp,""]); //190123 + if(tmp_1<0,tmp1=0,tmp1=tmp_1); //190119from + if(tmp1<10, + forall(Dt,Nk, + if(length(Nk)>1, + tmp3=""; + if(indexof(opcindy,"color")==0, //190122from + tmp3=tmp3+",linecolor->"+KCOLOR; + ); + tmp3=tmp3+opcindy; + if(tmp1==0, //190126from + if((length(tmp_2)>0)&(indexof(opcindy,"size")==0), + tmp3=tmp3+",size->"+tmp_2; + ); //190124to + tmp="connect("+Textformat(Nk,5)+tmp3+");";//190125 + parse(tmp); + , + if(tmp1==1, + tmp4=Dashlinedata(Nk,2.5,2.5,0); + forall(tmp4, + tmp="connect("+Textformat(#,5)+tmp3+");"; + parse(tmp); + ); + , + tmp3=",dashtype->"+text(tmp1)+tmp3; + forall(1..(length(Nk)-1), + tmp="draw("+Textformat([Nk_#,Nk_(#+1)],5)+tmp3+");"; + parse(tmp); + ); + ); + ); + , + tmp="draw("+text(Nk_1)+opcindy+");"; // 14.12.31 + parse(tmp); + ); //190126to + ); + ); + ); + ); + grestore(); + layer(0); +); diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt new file mode 100644 index 00000000000..400c3a7d726 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ignoredfun.txt @@ -0,0 +1,39 @@ +Changesetting +Changework +Cindyname +Com0th +Com1st +Com2nd +Com2ndpre +Copyketcindyjs +Dashline +Definecolor +Dottedline +Drwline +Example +Fontsize +Help +Helplist +Invdashline +Inwindow +Ketjsoption +Mkketcindyjs +Presentation +Putbezierdata +Putpoint +Readcsvsla +RSform +RSslash +Setketcindyjs +Setslidebody +Setslidehyper +Texcom + +Ketinit +Windispg +Fillstore +Setwindow +Drwxy +MeasureDepth +Dashlinedata +Textformat diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex-plugin.js b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex-plugin.js new file mode 100644 index 00000000000..5870742d18f --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex-plugin.js @@ -0,0 +1,296 @@ +(function() { + "use strict"; + + var log = console.log.bind(console); + var fonts = {}; + var waitingInstances = []; + var repaintTimeout = null; + + // Load required components: WebFontLoader and katex + + var WebFontLoader = null; + var katex = null; + + CindyJS.loadScript("WebFont", "webfont.js", fontLoaderReady); + CindyJS.loadScript("katex", "katex/katex.min.js", katexReady); + + function fontLoaderReady() { + log("WebFontLoader is now available."); + WebFontLoader = window.WebFont; + loadFonts(["KaTeX_Math:i4", "KaTeX_Main:n4"]); // pre-load common fonts + someScriptLoaded(); + } + + function katexReady() { + log("KaTeX is now available."); + katex = window.katex; + someScriptLoaded(); + } + + function someScriptLoaded() { + if (allScriptsLoaded()) + triggerRepaints(); + } + + function allScriptsLoaded() { + return katex && WebFontLoader; + } + + // Load common and used fonts + + function loadFonts(fontsToLoad) { + log("Loading ", fontsToLoad); + fontsToLoad.forEach(function(fvd) { + fonts[fvd] = "loading"; + }); + WebFontLoader.load({ + custom: { + families: fontsToLoad, + testStrings: { + "KaTeX_Size1": "()[]", + "KaTeX_Size2": "()[]", + "KaTeX_Size3": "()[]", + "KaTeX_Size4": "()[]" + }, + urls: [CindyJS.getBaseDir() + "katex/katex.min.css"] + }, + fontactive: fontActive + }); + } + + function fontActive(font, variant) { + var fvd = font + ":" + variant; + log("Loaded " + fvd); + fonts[fvd] = true; // done loading + if (repaintTimeout === null) + repaintTimeout = setTimeout(triggerRepaints, 0); + } + + // Handle repainting + + function triggerRepaints() { + repaintTimeout = null; + var instances = waitingInstances; + waitingInstances = []; + for (var i = 0; i < instances.length; ++i) + instances[i].evokeCS(""); // trigger repaint + } + + function haveToWait(i) { + if (!waitingInstances.some(function(j) { + return i === j; + })) { + waitingInstances.push(i); + } + } + + // Plugin API + + CindyJS.registerPlugin(1, "katex", plugin); + + function plugin(api) { + var storage = {instance: api.instance, cache: {}, misses:0}; + api.setTextRenderer( + katexRenderer.bind(storage), + katexHtml.bind(storage)); + } + + // Text box, with same api as a prepared KaTeX box but using current font + + function textBox(ctx, text) { + this.width = ctx.measureText(text).width; + this.renderAt = function(x, y) { + ctx.fillText(text, x, y); + }; + } + + textBox.prototype.height = 0; + + textBox.prototype.depth = 0; + + // Custom macros defined specifically for Cinderella / CindyJS + + var macros = { + "\\mbox": "\\text", + "\\lamda": "\\lambda", + "\\my": "\\mu", + "\\ny": "\\nu", + "\\ypsilon": "\\upsilon", + "\\Alpha": "\\mathrm{A}", + "\\Beta": "\\mathrm{B}", + "\\Epsilon": "\\mathrm{E}", + "\\Zeta": "\\mathrm{Z}", + "\\Eta": "\\mathrm{H}", + "\\Iota": "\\mathrm{I}", + "\\Kappa": "\\mathrm{K}", + "\\Lamda": "\\Lambda", + "\\Mu": "\\mathrm{M}", + "\\My": "\\Mu", + "\\Nu": "\\mathrm{N}", + "\\Ny": "\\Nu", + "\\Omicron": "\\mathrm{O}", + "\\Rho": "\\mathrm{P}", + "\\Tau": "\\mathrm{T}", + "\\Ypsilon": "\\Upsilon", + "\\Chi": "\\mathrm{X}", + "\\dots": "\\ldots", + "\\C": "\\mathbb{C}", + "\\H": "\\mathbb{H}", + "\\N": "\\mathbb{N}", + "\\P": "\\mathbb{P}", + "\\Q": "\\mathbb{Q}", + "\\R": "\\mathbb{R}", + "\\Z": "\\mathbb{Z}", + "\\slash": "/", + "\\operatorname": "\\text", // till KaTeX #145 gets resolved + "\\arccot": "\\operatorname{arccot}", + "\\arcsec": "\\operatorname{arcsec}", + "\\arccsc": "\\operatorname{arccsc}", + }; + + // Report whether we are ready + + var firstMessage = true; + + function katexRenderer(ctx, text, x, y, align, fontSize, lineHeight) { + var key = fontSize + "," + lineHeight + ":" + text; + var fontsMissing = false; + var fontsToLoad = {}; + var parts, rows, row, n, i, j; + if (this.cache.hasOwnProperty(key)) { + rows = this.cache[key]; + } else { + var opts = { + fontSize: fontSize, + macros: macros + }; + parts = text.split("$"); + row = []; + rows = [row]; + n = parts.length; + if (n > 1 && !allScriptsLoaded()) { + if (firstMessage) { + log("KaTeX is not ready yet."); + firstMessage = false; + } + haveToWait(this.instance); + return; + } + for (i = 0; i < n; ++i) { + var part = parts[i]; + var box; + if ((i & 1) === 0) { // plain text not TeX + if (part.indexOf("\n") === -1) { + row.push(new textBox(ctx, part)); + } else { + var rows2 = part.split("\n"); + row.push(new textBox(ctx, rows2[0])); + for (j = 1; j < rows2.length; ++j) { + row = [new textBox(ctx, rows2[j])]; + rows.push(row); + } + } + } else { + try { + var tex = parts[i].replace(/°/g, "\\degree"); + box = katex.canvasBox(tex, ctx, opts); + row.push(box); + for (var font in box.fontsUsed) { + var fontState = fonts[font]; + if (fontState !== true) { + fontsMissing = true; + if (fontState === undefined) + fontsToLoad[font] = true; + } + } + } catch(e) { + console.error(e); + row.push(new textBox(ctx, "$" + parts[i] + "$")); + } + } + } + if (++this.misses === 1024) { + this.misses = 0; + this.cache = {}; + } + if (!fontsMissing) { + this.cache[key] = rows; + } + } + if (fontsMissing) { + fontsToLoad = Object.keys(fontsToLoad); + if (fontsToLoad.length !== 0) { + loadFonts(fontsToLoad); + } + haveToWait(this.instance); + } else { + var left = Infinity; + var right = -Infinity; + var top = y - 0.7 * 1.2 * fontSize; + var bottom = -Infinity; + for (i = 0; i < rows.length; ++i) { + var total = 0; + var pos = x; + row = rows[i]; + n = row.length; + for (j = 0; j < n; ++j) + total += row[j].width; + var pos = x - align * total; + for (j = 0; j < n; ++j) { + row[j].renderAt(pos, y); + if (left > pos) left = pos; + if (top > y - row[j].height) top = y - row[j].height; + if (bottom < y + row[j].depth) bottom = y + row[j].depth; + pos += row[j].width; + if (right < pos) right = pos; + } + y += lineHeight; + // TODO: take vertical dimensions of formulas into account + } + bottom = Math.max(bottom, y - lineHeight + 0.3 * 1.2 * fontSize); + return { + left: left, + right: right, + top: top, + bottom: bottom + }; + } + }; + + function katexHtml(element, text) { + var opts = { + macros: macros + }; + var parts = text.split("$"); + var n = parts.length; + if (n > 1 && !allScriptsLoaded()) { + if (firstMessage) { + log("KaTeX is not ready yet."); + firstMessage = false; + } + haveToWait(this.instance); + return false; + } + while (element.firstChild) + element.removeChild(element.firstChild); + for (var i = 0; i < n; ++i) { + var text = parts[i]; + if ((i & 1) === 0) { + if (text.indexOf("\n") !== -1) { + var rows = text.split("\n"); + element.appendChild(document.createTextNode(rows[0])); + for (var j = 1; j < rows.length; ++j) { + element.appendChild(document.createElement("br")); + element.appendChild(document.createTextNode(rows[j])); + } + } else { + element.appendChild(document.createTextNode(text)); + } + } else { + var span = document.createElement("span"); + katex.render(text, span, opts); + element.appendChild(span); + } + } + } +})(); diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttf b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttf new file mode 100644 index 00000000000..da5797ffcce Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.ttf differ diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff new file mode 100644 index 00000000000..37db672e821 Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff differ diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff2 b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff2 new file mode 100644 index 00000000000..48820424893 Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Main-Regular.woff2 differ diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttf b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttf new file mode 100644 index 00000000000..06f39d3a299 Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.ttf differ diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff new file mode 100644 index 00000000000..cf3b4b79e5b Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff differ diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2 b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2 new file mode 100644 index 00000000000..5f8c4bfa455 Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/fonts/KaTeX_Math-Italic.woff2 differ diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.css b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.css new file mode 100644 index 00000000000..d6fb8374d91 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.eot);src:url(fonts/KaTeX_AMS-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_AMS-Regular.woff2) format('woff2'),url(fonts/KaTeX_AMS-Regular.woff) format('woff'),url(fonts/KaTeX_AMS-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.eot);src:url(fonts/KaTeX_Caligraphic-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'),url(fonts/KaTeX_Caligraphic-Bold.woff) format('woff'),url(fonts/KaTeX_Caligraphic-Bold.ttf) format('truetype');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.eot);src:url(fonts/KaTeX_Caligraphic-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'),url(fonts/KaTeX_Caligraphic-Regular.woff) format('woff'),url(fonts/KaTeX_Caligraphic-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.eot);src:url(fonts/KaTeX_Fraktur-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'),url(fonts/KaTeX_Fraktur-Bold.woff) format('woff'),url(fonts/KaTeX_Fraktur-Bold.ttf) format('truetype');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.eot);src:url(fonts/KaTeX_Fraktur-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'),url(fonts/KaTeX_Fraktur-Regular.woff) format('woff'),url(fonts/KaTeX_Fraktur-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.eot);src:url(fonts/KaTeX_Main-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Bold.woff2) format('woff2'),url(fonts/KaTeX_Main-Bold.woff) format('woff'),url(fonts/KaTeX_Main-Bold.ttf) format('truetype');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.eot);src:url(fonts/KaTeX_Main-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Italic.woff2) format('woff2'),url(fonts/KaTeX_Main-Italic.woff) format('woff'),url(fonts/KaTeX_Main-Italic.ttf) format('truetype');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.eot);src:url(fonts/KaTeX_Main-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Regular.woff2) format('woff2'),url(fonts/KaTeX_Main-Regular.woff) format('woff'),url(fonts/KaTeX_Main-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.eot);src:url(fonts/KaTeX_Math-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Math-Italic.woff2) format('woff2'),url(fonts/KaTeX_Math-Italic.woff) format('woff'),url(fonts/KaTeX_Math-Italic.ttf) format('truetype');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Regular.eot);src:url(fonts/KaTeX_SansSerif-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'),url(fonts/KaTeX_SansSerif-Regular.woff) format('woff'),url(fonts/KaTeX_SansSerif-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.eot);src:url(fonts/KaTeX_Script-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Script-Regular.woff2) format('woff2'),url(fonts/KaTeX_Script-Regular.woff) format('woff'),url(fonts/KaTeX_Script-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.eot);src:url(fonts/KaTeX_Size1-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size1-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size1-Regular.woff) format('woff'),url(fonts/KaTeX_Size1-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.eot);src:url(fonts/KaTeX_Size2-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size2-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size2-Regular.woff) format('woff'),url(fonts/KaTeX_Size2-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.eot);src:url(fonts/KaTeX_Size3-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size3-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size3-Regular.woff) format('woff'),url(fonts/KaTeX_Size3-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.eot);src:url(fonts/KaTeX_Size4-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size4-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size4-Regular.woff) format('woff'),url(fonts/KaTeX_Size4-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.eot);src:url(fonts/KaTeX_Typewriter-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'),url(fonts/KaTeX_Typewriter-Regular.woff) format('woff'),url(fonts/KaTeX_Typewriter-Regular.ttf) format('truetype');font-weight:400;font-style:normal}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block;text-align:initial}.katex{font:400 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;white-space:nowrap;text-indent:0}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathrm{font-style:normal}.katex .textit{font-style:italic}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .mord+.mop{margin-left:.16667em}.katex .mord+.mbin{margin-left:.22222em}.katex .mord+.mrel{margin-left:.27778em}.katex .mop+.mop,.katex .mop+.mord,.katex .mord+.minner{margin-left:.16667em}.katex .mop+.mrel{margin-left:.27778em}.katex .mop+.minner{margin-left:.16667em}.katex .mbin+.minner,.katex .mbin+.mop,.katex .mbin+.mopen,.katex .mbin+.mord{margin-left:.22222em}.katex .mrel+.minner,.katex .mrel+.mop,.katex .mrel+.mopen,.katex .mrel+.mord{margin-left:.27778em}.katex .mclose+.mop{margin-left:.16667em}.katex .mclose+.mbin{margin-left:.22222em}.katex .mclose+.mrel{margin-left:.27778em}.katex .mclose+.minner,.katex .minner+.mop,.katex .minner+.mord,.katex .mpunct+.mclose,.katex .mpunct+.minner,.katex .mpunct+.mop,.katex .mpunct+.mopen,.katex .mpunct+.mord,.katex .mpunct+.mpunct,.katex .mpunct+.mrel{margin-left:.16667em}.katex .minner+.mbin{margin-left:.22222em}.katex .minner+.mrel{margin-left:.27778em}.katex .minner+.minner,.katex .minner+.mopen,.katex .minner+.mpunct{margin-left:.16667em}.katex .mbin.mtight,.katex .mclose.mtight,.katex .minner.mtight,.katex .mop.mtight,.katex .mopen.mtight,.katex .mord.mtight,.katex .mpunct.mtight,.katex .mrel.mtight{margin-left:0}.katex .mclose+.mop.mtight,.katex .minner+.mop.mtight,.katex .mop+.mop.mtight,.katex .mop+.mord.mtight,.katex .mord+.mop.mtight{margin-left:.16667em}.katex .reset-textstyle.textstyle{font-size:1em}.katex .reset-textstyle.scriptstyle{font-size:.7em}.katex .reset-textstyle.scriptscriptstyle{font-size:.5em}.katex .reset-scriptstyle.textstyle{font-size:1.42857em}.katex .reset-scriptstyle.scriptstyle{font-size:1em}.katex .reset-scriptstyle.scriptscriptstyle{font-size:.71429em}.katex .reset-scriptscriptstyle.textstyle{font-size:2em}.katex .reset-scriptscriptstyle.scriptstyle{font-size:1.4em}.katex .reset-scriptscriptstyle.scriptscriptstyle{font-size:1em}.katex .style-wrap{position:relative}.katex .vlist{display:inline-block}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist .baseline-fix{display:inline-table;table-layout:fixed}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{width:100%}.katex .mfrac .frac-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .mfrac .frac-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.negativemediumspace{margin-left:-.22222em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.sixmuspace{width:.333333em}.katex .mspace.eightmuspace{width:.444444em}.katex .mspace.enspace{width:.5em}.katex .mspace.twelvemuspace{width:.666667em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .llap,.katex .rlap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner{left:0}.katex .katex-logo .a{font-size:.75em;margin-left:-.32em;position:relative;top:-.2em}.katex .katex-logo .t{margin-left:-.23em}.katex .katex-logo .e{margin-left:-.1667em;position:relative;top:.2155em}.katex .katex-logo .x{margin-left:-.125em}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .overline .overline-line,.katex .underline .underline-line{width:100%}.katex .overline .overline-line:before,.katex .underline .underline-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .overline .overline-line:after,.katex .underline .underline-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.sqrt-sign{position:relative}.katex .sqrt .sqrt-line{width:100%}.katex .sqrt .sqrt-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .sqrt .sqrt-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:2em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:3.46em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:4.14em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.98em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.47142857em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.95714286em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.55714286em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.875em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.125em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.25em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.5em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.8em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.1625em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.5875em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:3.1125em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.77777778em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.88888889em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.6em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.92222222em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.3em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.76666667em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.7em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.8em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.9em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.2em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.44em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.73em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:2.07em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.49em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.58333333em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.66666667em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.75em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.83333333em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44166667em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.725em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.075em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.48611111em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.55555556em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.625em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.69444444em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.20138889em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.4375em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72916667em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.28901734em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.40462428em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.46242775em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.52023121em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.57803468em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69364162em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83236994em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.19653179em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.43930636em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.24154589em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.33816425em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.38647343em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.43478261em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.48309179em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.57971014em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69565217em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83574879em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20289855em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.20080321em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2811245em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.32128514em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.36144578em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.40160643em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48192771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57831325em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69477912em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8313253em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist>span,.katex .op-limits>.vlist>span{text-align:center}.katex .accent .accent-body>span{width:0}.katex .accent .accent-body.accent-vec>span{position:relative;left:.326em}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.025em;border-right:.05em solid #000}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist{text-align:center}.katex .mtable .col-align-l>.vlist{text-align:left}.katex .mtable .col-align-r>.vlist{text-align:right} \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.js b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.js new file mode 100644 index 00000000000..b66e0aca87a --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/katex/katex.min.js @@ -0,0 +1,5 @@ +(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.katex=e()}})(function(){var e,t,r;return function a(e,t,r){function i(n,l){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!l&&o)return o(n,!0);if(s)return s(n,!0);var u=new Error("Cannot find module '"+n+"'");throw u.code="MODULE_NOT_FOUND",u}var h=t[n]={exports:{}};e[n][0].call(h.exports,function(t){var r=e[n][1][t];return i(r?r:t)},h,h.exports,a,e,t,r)}return t[n].exports}var s=typeof require=="function"&&require;for(var n=0;n15){o="\u2026"+n.slice(i-15,i)}else{o=n.slice(0,i)}var u;if(s+15v){return this.parseFunction(i)}else{throw new h("Got function '"+i.result+"' with no arguments "+"as "+e,t)}}else{return i.result}};c.prototype.handleUnsupportedCmd=function(){var e=this.nextToken.text;var t=[];for(var r=0;ri){p=this.parseFunction(c)}else{throw new h("Got function '"+c.result+"' as "+"argument to '"+e+"'",o)}}else{p=c.result}n.push(p);s.push(this.pos)}n.push(s);return n};c.prototype.parseGroupOfType=function(e,t){var r=this.mode;if(e==="original"){e=r}if(e==="color"){return this.parseColorGroup(t)}if(e==="size"){return this.parseSizeGroup(t)}this.switchMode(e);if(e==="text"){while(this.nextToken.text===" "){this.consume()}}var a=this.parseGroup(t);this.switchMode(r);return a};c.prototype.parseStringGroup=function(e,t){if(t&&this.nextToken.text!=="["){return null}var r=this.mode;this.mode="text";this.expect(t?"[":"{");var a="";var i=this.nextToken;var s=i;while(this.nextToken.text!==(t?"]":"}")){if(this.nextToken.text==="EOF"){throw new h("Unexpected end of input in "+e,i.range(this.nextToken,a))}s=this.nextToken;a+=s.text;this.consume()}this.mode=r;this.expect(t?"]":"}");return i.range(s,a)};c.prototype.parseRegexGroup=function(e,t){var r=this.mode;this.mode="text";var a=this.nextToken;var i=a;var s="";while(this.nextToken.text!=="EOF"&&e.test(s+this.nextToken.text)){i=this.nextToken;s+=i.text;this.consume()}if(s===""){throw new h("Invalid "+t+": '"+a.text+"'",a)}this.mode=r;return a.range(i,s)};c.prototype.parseColorGroup=function(e){var t=this.parseStringGroup("color",e);if(!t){return null}var r=/^(#[a-z0-9]+|[a-z]+)$/i.exec(t.text);if(!r){throw new h("Invalid color: '"+t.text+"'",t)}return new m(new p("color",r[0],this.mode),false)};c.prototype.parseSizeGroup=function(e){var t;if(!e&&this.nextToken.text!=="{"){t=this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2}$/,"size")}else{t=this.parseStringGroup("size",e)}if(!t){return null}var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);if(!r){throw new h("Invalid size: '"+t.text+"'",t)}var a={number:+(r[1]+r[2]),unit:r[3]};if(a.unit!=="em"&&a.unit!=="ex"&&a.unit!=="mu"){throw new h("Invalid unit: '"+a.unit+"'",t)}return new m(new p("color",a,this.mode),false)};c.prototype.parseGroup=function(e){var t=this.nextToken;if(this.nextToken.text===(e?"[":"{")){this.consume();var r=this.parseExpression(false,e?"]":null);var a=this.nextToken;this.expect(e?"]":"}");if(this.mode==="text"){this.formLigatures(r)}return new m(new p("ordgroup",r,this.mode,t,a),false)}else{return e?null:this.parseSymbol()}};c.prototype.formLigatures=function(e){var t;var r=e.length-1;for(t=0;t0?t-1:0]}l.prototype.sup=function(){return y[b[this.id]]};l.prototype.sub=function(){return y[w[this.id]]};l.prototype.fracNum=function(){return y[x[this.id]]};l.prototype.fracDen=function(){return y[k[this.id]]};l.prototype.cramp=function(){return y[z[this.id]]};l.prototype.cls=function(){return d[this.size]+(this.cramped?" cramped":" uncramped")};l.prototype.reset=function(){return g[this.size]};l.prototype.isTight=function(){return this.size>=2};var o=0;var u=1;var h=2;var c=3;var p=4;var m=5;var f=6;var v=7;var d=["displaystyle textstyle","textstyle","scriptstyle","scriptscriptstyle"];var g=["reset-textstyle","reset-textstyle","reset-scriptstyle","reset-scriptscriptstyle"];var y=[new l(o,0,1,false),new l(u,0,1,true),new l(h,1,1,false),new l(c,1,1,true),new l(p,2,.7,false),new l(m,2,.7,true),new l(f,3,.5,false),new l(v,3,.5,true)];var b=[p,m,p,m,f,v,f,v];var w=[m,m,m,m,v,v,v,v];var x=[h,c,p,m,f,v,f,v];var k=[c,c,m,m,v,v,v,v];var z=[u,u,c,c,m,m,v,v];t.exports={DISPLAY:y[o],TEXT:y[h],SCRIPT:y[p],SCRIPTSCRIPT:y[f]}},{"./fontMetrics.js":18}],10:[function(e,t,r){var a=e("./domTree");var i=e("./fontMetrics");var s=e("./symbols");var n=e("./utils");var l=["\\Gamma","\\Delta","\\Theta","\\Lambda","\\Xi","\\Pi","\\Sigma","\\Upsilon","\\Phi","\\Psi","\\Omega"];var o=["\u0131","\u0237","\xa3"];var u=function(e,t,r,n,l){if(s[r][e]&&s[r][e].replace){e=s[r][e].replace}var o=i.getCharacterMetrics(e,t);var u;if(o){var h=o.italic;if(r==="text"){h=0}u=new a.symbolNode(e,o.height,o.depth,h,o.skew,l)}else{typeof console!=="undefined"&&console.warn("No character metrics for '"+e+"' in style '"+t+"'");u=new a.symbolNode(e,0,0,0,0,l)}if(n){if(n.style.isTight()){u.classes.push("mtight")}if(n.getColor()){u.style.color=n.getColor()}}return u};var h=function(e,t,r,a){if(e==="\\"||s[t][e].font==="main"){return u(e,"Main-Regular",t,r,a)}else{return u(e,"AMS-Regular",t,r,a.concat(["amsrm"]))}};var c=function(e,t,r,a,i){if(i==="mathord"){return p(e,t,r,a)}else if(i==="textord"){return u(e,"Main-Regular",t,r,a.concat(["mathrm"]))}else{throw new Error("unexpected type: "+i+" in mathDefault")}};var p=function(e,t,r,a){if(/[0-9]/.test(e.charAt(0))||n.contains(o,e)||n.contains(l,e)){return u(e,"Main-Italic",t,r,a.concat(["mainit"]))}else{return u(e,"Math-Italic",t,r,a.concat(["mathit"]))}};var m=function(e,t,r){var a=e.mode;var l=e.value;if(s[a][l]&&s[a][l].replace){l=s[a][l].replace}var h=["mord"];var m=t.font;if(m){if(m==="mathit"||n.contains(o,l)){return p(l,a,t,h)}else{var f=k[m].fontName;if(i.getCharacterMetrics(l,f)){return u(l,f,a,t,h.concat([m]))}else{return c(l,a,t,h,r)}}}else{return c(l,a,t,h,r)}};var f=function(e){var t=0;var r=0;var a=0;if(e.children){for(var i=0;it){t=e.children[i].height}if(e.children[i].depth>r){r=e.children[i].depth}if(e.children[i].maxFontSize>a){a=e.children[i].maxFontSize}}}e.height=t;e.depth=r;e.maxFontSize=a};var v=function(e,t,r){var i=new a.span(e,t,r);f(i);return i};var d=function(e,t){e.children=t.concat(e.children);f(e)};var g=function(e){var t=new a.documentFragment(e);f(t);return t};var y=function(e,t){var r=v([],[new a.symbolNode("\u200b")]);r.style.fontSize=t/e.style.sizeMultiplier+"em";var i=v(["fontsize-ensurer","reset-"+e.size,"size5"],[r]);return i};var b=function(e,t,r,i){var s;var n;var l;if(t==="individualShift"){var o=e;e=[o[0]];s=-o[0].shift-o[0].elem.depth;n=s;for(l=1;l0){f+=T;v-=T}}S=s.makeVList([{type:"elem",elem:n,shift:v},{type:"elem",elem:a,shift:-f}],"individualShift",null,t);if(r instanceof l.symbolNode){S.children[0].style.marginLeft=-r.italic+"em"}S.children[0].style.marginRight=k;S.children[1].style.marginRight=k}var A=d(r)||"mord";return h([A],[r,h(["msupsub"],[S])],t)};x.genfrac=function(e,t){var r=t.style;if(e.value.size==="display"){r=i.DISPLAY}else if(e.value.size==="text"){r=i.TEXT}var a=r.fracNum();var l=r.fracDen();var u;u=t.withStyle(a);var c=z(e.value.numer,u);var p=h([r.reset(),a.cls()],[c],u);u=t.withStyle(l);var m=z(e.value.denom,u);var f=h([r.reset(),l.cls()],[m],u);var v;if(e.value.hasBarLine){v=o.metrics.defaultRuleThickness/t.style.sizeMultiplier}else{v=0}var d;var g;var y;if(r.size===i.DISPLAY.size){d=r.metrics.num1;if(v>0){g=3*v}else{g=7*o.metrics.defaultRuleThickness}y=r.metrics.denom1}else{if(v>0){d=r.metrics.num2;g=v}else{d=r.metrics.num3;g=3*o.metrics.defaultRuleThickness}y=r.metrics.denom2}var b;if(v===0){var x=d-c.depth-(m.height-y);if(x0){N+=b;if(M=l){continue}var L;if(i>0||e.value.hskipBeforeAndAfter){L=u.deflt(D.pregap,f);if(L!==0){E=h(["arraycolsep"],[]);E.style.width=L+"em";R.push(E)}}var _=[];for(r=0;ra.height+a.depth+p){p=(p+d-a.height-a.depth)/2}var g=-(a.height+p+l)+v.height;v.style.top=g+"em";v.height-=g;v.depth+=g;var y;if(a.height===0&&a.depth===0){y=h()}else{y=s.makeVList([{type:"elem",elem:a},{type:"kern",size:p},{type:"elem",elem:u},{type:"kern",size:l}],"firstBaseline",null,t)}if(!e.value.index){return h(["mord","sqrt"],[v,y],t)}else{var b=t.withStyle(i.SCRIPTSCRIPT);var w=z(e.value.index,b);var x=h([r.reset(),i.SCRIPTSCRIPT.cls()],[w],b);var k=Math.max(v.height,y.height);var S=Math.max(v.depth,y.depth);var M=.6*(k-S);var T=s.makeVList([{type:"elem",elem:x}],"shift",-M,t);var A=h(["root"],[T]);return h(["mord","sqrt"],[A,v,y],t)}};x.sizing=function(e,t){var r=v(e.value.value,t.withSize(e.value.size),false);var a=t.style;var i=s.sizingMultiplier[e.value.size];i=i*a.sizeMultiplier;for(var n=0;n0){var t=r[e];if(!t){continue}if(t.substr(4)==="size"){l=+t.substr(4);break}}}return l}var f=false;var v="";var d=null;var g=0;var y=null;var b=null;n=r.length;while(n--){var w=r[n];switch(w){case"delimsizing":if(m()!==null){this.state=this.state.withFace("KaTeX_Size"+l,"n4")}break;case"delim-size1":case"small-op":this.state=this.state.withFace("KaTeX_Size1","n4");break;case"large-op":this.state=this.state.withFace("KaTeX_Size2","n4");break;case"delim-size4":this.state=this.state.withFace("KaTeX_Size4","n4");break;case"fontsize-ensurer":case"sizing":if(m()!==null){this.state=this.state.withSize(l)}break;case"frac-line":case"sqrt-line":case"overline-line":this.horizontalLines.push({y:this.state.ypos,height:Math.max(1,.04*this.state.em),color:this.state.color});break;case"mfrac":case"accent":case"op-limits":case"col-align-c":this.state=this.state.withHAlign(a.center);break;case"root":d=5/18;g=-10/18;break;case"accent-vec":d+=.326;break;case"accent-body":y=this.x;break;case"mathit":this.state=this.state.withFace("KaTeX_Math","i4");break;case"mathbf":this.state=this.state.withFace("KaTeX_Main","n7");break;case"amsrm":this.state=this.state.withFace("KaTeX_AMS","n4");break;case"mathbb":this.state=this.state.withFace("KaTeX_AMS","n4");break;case"mathcal":this.state=this.state.withFace("KaTeX_Caligraphic","n4");break;case"mathfrak":this.state=this.state.withFace("KaTeX_Fraktur","n4");break;case"mathtt":this.state=this.state.withFace("KaTeX_Typewriter","n4");break;case"mathscr":this.state=this.state.withFace("KaTeX_Script","n4");break;case"mathsf":this.state=this.state.withFace("KaTeX_SansSerif","n4");break;case"mainit":this.state=this.state.withFace("KaTeX_Main","i4");break;case"mathrm":break;case"mord":case"mop":case"mbin":case"mrel":case"mopen":case"mclose":case"minner":case"mpunct":v=w;break;case"msupsub":case"col-align-l":this.state=this.state.withHAlign(a.left);break;case"col-align-r":this.state=this.state.withHAlign(a.right);break;case"scriptscriptstyle":this.state=this.state.withStyle(.5);break;case"scriptstyle":this.state=this.state.withStyle(.7);break;case"textstyle":this.state=this.state.withStyle(1);break;case"size1":case"size2":case"size3":case"size4":case"size5":case"size6":case"size7":case"size8":case"size9":case"size10":l=+w.substr(4);break;case"negativethinspace":g+=-o;break;case"thinspace":g+=o;break;case"mediumspace":g+=u;break;case"thickspace":g+=h;break;case"enspace":g+=.5;break;case"quad":g+=1;break;case"qquad":g+=2;break;case"k":break;case"a":this.state=this.state.withStyle(.75).withYShift(-.2);d=-.32;break;case"t":d=-.23;break;case"e":this.state=this.state.withYShift(.2155);d=-.1667;break;case"x":d=-.125;break;case"vlist":f=true;break;case"llap":case"rlap":b=w;break;case"arraycolsep":case"base":case"baseline-fix":case"bottom":case"cramped":case"delimsizinginner":case"displaystyle":case"katex-logo":case"katex-html":case"mspace":case"mtable":case"mult":case"op-symbol":case"overline":case"reset-scriptscriptstyle":case"reset-scriptstyle":case"reset-size1":case"reset-size2":case"reset-size3":case"reset-size4":case"reset-size5":case"reset-size6":case"reset-size7":case"reset-size8":case"reset-size9":case"reset-size10":case"reset-textstyle":case"sqrt":case"sqrt-sign":case"strut":case"style-wrap":case"text":case"uncramped":break;default:}}for(i in e.style){if(e.style.hasOwnProperty(i)){s=e.style[i];switch(i){case"top":if(s.substr(s.length-2)!=="em"){throw new Error("em is the only supported unit.")}s=+s.substr(0,s.length-2);this.state=this.state.withYShift(s);break;case"fontSize":if(s==="0em"){return}break;case"marginLeft":if(s.substr(s.length-2)!=="em"){throw new Error("em is the only supported unit.")}d=+s.substr(0,s.length-2);break;case"marginRight":case"width":if(s.substr(s.length-2)!=="em"){throw new Error("em is the only supported unit.")}g=+s.substr(0,s.length-2);break;case"color":this.state=this.state.withColor(s);break;case"height":case"verticalAlign":break;default:}}}for(i in e.attributes){if(e.attributes.hasOwnProperty(i)){s=e.attributes[i];switch(i){case"aria-hidden":break;default:}}}var x=this.prevClass+"_"+v;if(d===null){d=p[x];if(d===undefined&&this.state.styleFactor===1){d=c[x]}}if(d){this.x+=d*this.state.em}if(f){this.halign(e.children,this.state.halign)}else if(b){this.lap(b,e.children)}else if(e.children){e.children.forEach(this.prepare.bind(this))}else{this.ctxt.font=this.state.font;var k=e.value;var z=this.ctxt.measureText(k);var S=z.width;if(e.italic){g+=e.italic}if(k!==""&&k!=="\u200b"){var M={x:this.x,y:this.state.ypos,font:this.state.font,color:this.state.color,text:k};this.outList.push(M);this.fontsUsed[this.state.fvd]=this.state.font}this.x+=S}this.x+=g*this.state.em;if(y!==null){this.x=y}this.state=t;this.prevClass=v};l.prototype.halign=function(e,t){var r;var a;var i=this.horizontalLines;this.horizontalLines=[];var s=this.outList;var n=this.x;var l=s.length;var o=0;for(r=0;r","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"];var w=[0,1.2,1.8,2.4,3];var x=function(e,t,r,i,s){if(e==="<"||e==="\\lt"){e="\\langle"}else if(e===">"||e==="\\gt"){e="\\rangle"}if(o.contains(g,e)||o.contains(b,e)){return f(e,t,false,r,i,s)}else if(o.contains(y,e)){return d(e,w[t],false,r,i,s)}else{throw new a("Illegal delimiter: '"+e+"'")}};var k=[{type:"small",style:i.SCRIPTSCRIPT},{type:"small",style:i.SCRIPT},{type:"small",style:i.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}];var z=[{type:"small",style:i.SCRIPTSCRIPT},{type:"small",style:i.SCRIPT},{type:"small",style:i.TEXT},{type:"stack"}];var S=[{type:"small",style:i.SCRIPTSCRIPT},{type:"small",style:i.SCRIPT},{type:"small",style:i.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}];var M=function(e){if(e.type==="small"){return"Main-Regular"}else if(e.type==="large"){return"Size"+e.size+"-Regular"}else if(e.type==="stack"){return"Size4-Regular"}};var T=function(e,t,r,a){var i=Math.min(2,3-a.style.size);for(var s=i;st){return r[s]}}return r[r.length-1]};var A=function(e,t,r,a,i,s){if(e==="<"||e==="\\lt"){e="\\langle"}else if(e===">"||e==="\\gt"){e="\\rangle"}var n;if(o.contains(b,e)){n=k}else if(o.contains(g,e)){n=S}else{n=z}var l=T(e,t,n,a);if(l.type==="small"){return m(e,l.style,r,a,i,s)}else if(l.type==="large"){return f(e,l.size,r,a,i,s)}else if(l.type==="stack"){return d(e,t,r,a,i,s)}};var N=function(e,t,r,a,i,s){var l=a.style.metrics.axisHeight*a.style.sizeMultiplier;var o=901;var u=5/n.metrics.ptPerEm;var h=Math.max(t-l,r+l);var c=Math.max(h/500*o,2*h-u);return A(e,c,true,a,i,s)};t.exports={sizedDelim:x,customSizedDelim:A,leftRightDelim:N}},{"./ParseError":6,"./Style":9,"./buildCommon":10,"./fontMetrics":18,"./symbols":24,"./utils":26}],16:[function(e,t,r){var a=e("./unicodeRegexes");var i=e("./utils");var s=function(e){e=e.slice();for(var t=e.length-1;t>=0;t--){if(!e[t]){e.splice(t,1)}}return e.join(" ")};function n(e,t,r){this.classes=e||[];this.children=t||[];this.height=0;this.depth=0;this.maxFontSize=0;this.style={};this.attributes={};if(r){if(r.style.isTight()){this.classes.push("mtight")}if(r.getColor()){this.style.color=r.getColor()}}}n.prototype.setAttribute=function(e,t){this.attributes[e]=t};n.prototype.tryCombine=function(e){return false};n.prototype.toNode=function(){var e=document.createElement("span");e.className=s(this.classes);for(var t in this.style){if(Object.prototype.hasOwnProperty.call(this.style,t)){e.style[t]=this.style[t]}}for(var r in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,r)){e.setAttribute(r,this.attributes[r])}}for(var a=0;a";return e};function l(e){this.children=e||[];this.height=0;this.depth=0;this.maxFontSize=0}l.prototype.toNode=function(){var e=document.createDocumentFragment();for(var t=0;t0||s(this.classes)!==s(e.classes)||this.skew!==e.skew||this.maxFontSize!==e.maxFontSize){return false; +}for(var t in this.style){if(this.style.hasOwnProperty(t)&&this.style[t]!==e.style[t]){return false}}for(t in e.style){if(e.style.hasOwnProperty(t)&&this.style[t]!==e.style[t]){return false}}this.value+=e.value;this.height=Math.max(this.height,e.height);this.depth=Math.max(this.depth,e.depth);this.italic=e.italic;return true};u.prototype.toNode=function(){var e=document.createTextNode(this.value);var t=null;if(this.italic>0){t=document.createElement("span");t.style.marginRight=this.italic+"em"}if(this.classes.length>0){t=t||document.createElement("span");t.className=s(this.classes)}for(var r in this.style){if(this.style.hasOwnProperty(r)){t=t||document.createElement("span");t.style[r]=this.style[r]}}if(t){t.appendChild(e);return t}else{return e}};u.prototype.toMarkup=function(){var e=false;var t="0){r+="margin-right:"+this.italic+"em;"}for(var a in this.style){if(this.style.hasOwnProperty(a)){r+=i.hyphenate(a)+":"+this.style[a]+";"}}if(r){e=true;t+=' style="'+i.escape(r)+'"'}var n=i.escape(this.value);if(e){t+=">";t+=n;t+="";return t}else{return n}};t.exports={span:n,documentFragment:l,symbolNode:u}},{"./unicodeRegexes":25,"./utils":26}],17:[function(e,t,r){var a=e("./parseData");var i=e("./ParseError");var s=e("./Style");var n=a.ParseNode;function l(e,t){var r=[];var a=[r];var s=[];while(true){var l=e.parseExpression(false,null);r.push(new n("ordgroup",l,e.mode));var o=e.nextToken.text;if(o==="&"){e.consume()}else if(o==="\\end"){break}else if(o==="\\\\"||o==="\\cr"){var u=e.parseFunction();s.push(u.value.size);r=[];a.push(r)}else{throw new i("Expected & or \\\\ or \\end",e.nextToken)}}t.body=a;t.rowGaps=s;return new n(t.type,t,e.mode)}function o(e,r,a){if(typeof e==="string"){e=[e]}if(typeof r==="number"){r={numArgs:r}}var i={numArgs:r.numArgs||0,argTypes:r.argTypes,greediness:1,allowedInText:!!r.allowedInText,numOptionalArgs:r.numOptionalArgs||0,handler:a};for(var s=0;s0){o=2}t.value.cols[i]={type:"align",align:s,pregap:o,postgap:0}}return t})},{"./ParseError":6,"./Style":9,"./parseData":22}],18:[function(e,t,r){var a=e("./Style");var i=e("./unicodeRegexes").cjkRegex;var s={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25]};var n=0;var l=0;var o=0;var u=0;var h=.431;var c=1;var p=0;var m=.04;var f=.111;var v=.166;var d=.2;var g=.6;var y=.1;var b=10;var w=2/b;var x={defaultRuleThickness:m,bigOpSpacing1:f,bigOpSpacing2:v,bigOpSpacing3:d,bigOpSpacing4:g,bigOpSpacing5:y,ptPerEm:b,doubleRuleSep:w};var k=e("./fontMetricsData");var z={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xc6":"A","\xc7":"C","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xd0":"D","\xd1":"N","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xdd":"Y","\xde":"o","\xdf":"B","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xe6":"a","\xe7":"c","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xf0":"d","\xf1":"n","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xfd":"y","\xfe":"o","\xff":"y","\u0410":"A","\u0411":"B","\u0412":"B","\u0413":"F","\u0414":"A","\u0415":"E","\u0416":"K","\u0417":"3","\u0418":"N","\u0419":"N","\u041a":"K","\u041b":"N","\u041c":"M","\u041d":"H","\u041e":"O","\u041f":"N","\u0420":"P","\u0421":"C","\u0422":"T","\u0423":"y","\u0424":"O","\u0425":"X","\u0426":"U","\u0427":"h","\u0428":"W","\u0429":"W","\u042a":"B","\u042b":"X","\u042c":"B","\u042d":"3","\u042e":"X","\u042f":"R","\u0430":"a","\u0431":"b","\u0432":"a","\u0433":"r","\u0434":"y","\u0435":"e","\u0436":"m","\u0437":"e","\u0438":"n","\u0439":"n","\u043a":"n","\u043b":"n","\u043c":"m","\u043d":"n","\u043e":"o","\u043f":"n","\u0440":"p","\u0441":"c","\u0442":"o","\u0443":"y","\u0444":"b","\u0445":"x","\u0446":"n","\u0447":"n","\u0448":"w","\u0449":"w","\u044a":"a","\u044b":"m","\u044c":"a","\u044d":"e","\u044e":"m","\u044f":"r"};var S=function(e,t){var r=e.charCodeAt(0);if(e[0]in z){r=z[e[0]].charCodeAt(0)}else if(i.test(e[0])){r="M".charCodeAt(0)}var a=k[t][r];if(a){return{depth:a[0],height:a[1],italic:a[2],skew:a[3],width:a[4]}}};t.exports={metrics:x,sigmas:s,getCharacterMetrics:S}},{"./Style":9,"./fontMetricsData":19,"./unicodeRegexes":25}],19:[function(e,t,r){t.exports={"AMS-Regular":{65:[0,.68889,0,0],66:[0,.68889,0,0],67:[0,.68889,0,0],68:[0,.68889,0,0],69:[0,.68889,0,0],70:[0,.68889,0,0],71:[0,.68889,0,0],72:[0,.68889,0,0],73:[0,.68889,0,0],74:[.16667,.68889,0,0],75:[0,.68889,0,0],76:[0,.68889,0,0],77:[0,.68889,0,0],78:[0,.68889,0,0],79:[.16667,.68889,0,0],80:[0,.68889,0,0],81:[.16667,.68889,0,0],82:[0,.68889,0,0],83:[0,.68889,0,0],84:[0,.68889,0,0],85:[0,.68889,0,0],86:[0,.68889,0,0],87:[0,.68889,0,0],88:[0,.68889,0,0],89:[0,.68889,0,0],90:[0,.68889,0,0],107:[0,.68889,0,0],165:[0,.675,.025,0],174:[.15559,.69224,0,0],240:[0,.68889,0,0],295:[0,.68889,0,0],710:[0,.825,0,0],732:[0,.9,0,0],770:[0,.825,0,0],771:[0,.9,0,0],989:[.08167,.58167,0,0],1008:[0,.43056,.04028,0],8245:[0,.54986,0,0],8463:[0,.68889,0,0],8487:[0,.68889,0,0],8498:[0,.68889,0,0],8502:[0,.68889,0,0],8503:[0,.68889,0,0],8504:[0,.68889,0,0],8513:[0,.68889,0,0],8592:[-.03598,.46402,0,0],8594:[-.03598,.46402,0,0],8602:[-.13313,.36687,0,0],8603:[-.13313,.36687,0,0],8606:[.01354,.52239,0,0],8608:[.01354,.52239,0,0],8610:[.01354,.52239,0,0],8611:[.01354,.52239,0,0],8619:[0,.54986,0,0],8620:[0,.54986,0,0],8621:[-.13313,.37788,0,0],8622:[-.13313,.36687,0,0],8624:[0,.69224,0,0],8625:[0,.69224,0,0],8630:[0,.43056,0,0],8631:[0,.43056,0,0],8634:[.08198,.58198,0,0],8635:[.08198,.58198,0,0],8638:[.19444,.69224,0,0],8639:[.19444,.69224,0,0],8642:[.19444,.69224,0,0],8643:[.19444,.69224,0,0],8644:[.1808,.675,0,0],8646:[.1808,.675,0,0],8647:[.1808,.675,0,0],8648:[.19444,.69224,0,0],8649:[.1808,.675,0,0],8650:[.19444,.69224,0,0],8651:[.01354,.52239,0,0],8652:[.01354,.52239,0,0],8653:[-.13313,.36687,0,0],8654:[-.13313,.36687,0,0],8655:[-.13313,.36687,0,0],8666:[.13667,.63667,0,0],8667:[.13667,.63667,0,0],8669:[-.13313,.37788,0,0],8672:[-.064,.437,0,0],8674:[-.064,.437,0,0],8705:[0,.825,0,0],8708:[0,.68889,0,0],8709:[.08167,.58167,0,0],8717:[0,.43056,0,0],8722:[-.03598,.46402,0,0],8724:[.08198,.69224,0,0],8726:[.08167,.58167,0,0],8733:[0,.69224,0,0],8736:[0,.69224,0,0],8737:[0,.69224,0,0],8738:[.03517,.52239,0,0],8739:[.08167,.58167,0,0],8740:[.25142,.74111,0,0],8741:[.08167,.58167,0,0],8742:[.25142,.74111,0,0],8756:[0,.69224,0,0],8757:[0,.69224,0,0],8764:[-.13313,.36687,0,0],8765:[-.13313,.37788,0,0],8769:[-.13313,.36687,0,0],8770:[-.03625,.46375,0,0],8774:[.30274,.79383,0,0],8776:[-.01688,.48312,0,0],8778:[.08167,.58167,0,0],8782:[.06062,.54986,0,0],8783:[.06062,.54986,0,0],8785:[.08198,.58198,0,0],8786:[.08198,.58198,0,0],8787:[.08198,.58198,0,0],8790:[0,.69224,0,0],8791:[.22958,.72958,0,0],8796:[.08198,.91667,0,0],8806:[.25583,.75583,0,0],8807:[.25583,.75583,0,0],8808:[.25142,.75726,0,0],8809:[.25142,.75726,0,0],8812:[.25583,.75583,0,0],8814:[.20576,.70576,0,0],8815:[.20576,.70576,0,0],8816:[.30274,.79383,0,0],8817:[.30274,.79383,0,0],8818:[.22958,.72958,0,0],8819:[.22958,.72958,0,0],8822:[.1808,.675,0,0],8823:[.1808,.675,0,0],8828:[.13667,.63667,0,0],8829:[.13667,.63667,0,0],8830:[.22958,.72958,0,0],8831:[.22958,.72958,0,0],8832:[.20576,.70576,0,0],8833:[.20576,.70576,0,0],8840:[.30274,.79383,0,0],8841:[.30274,.79383,0,0],8842:[.13597,.63597,0,0],8843:[.13597,.63597,0,0],8847:[.03517,.54986,0,0],8848:[.03517,.54986,0,0],8858:[.08198,.58198,0,0],8859:[.08198,.58198,0,0],8861:[.08198,.58198,0,0],8862:[0,.675,0,0],8863:[0,.675,0,0],8864:[0,.675,0,0],8865:[0,.675,0,0],8872:[0,.69224,0,0],8873:[0,.69224,0,0],8874:[0,.69224,0,0],8876:[0,.68889,0,0],8877:[0,.68889,0,0],8878:[0,.68889,0,0],8879:[0,.68889,0,0],8882:[.03517,.54986,0,0],8883:[.03517,.54986,0,0],8884:[.13667,.63667,0,0],8885:[.13667,.63667,0,0],8888:[0,.54986,0,0],8890:[.19444,.43056,0,0],8891:[.19444,.69224,0,0],8892:[.19444,.69224,0,0],8901:[0,.54986,0,0],8903:[.08167,.58167,0,0],8905:[.08167,.58167,0,0],8906:[.08167,.58167,0,0],8907:[0,.69224,0,0],8908:[0,.69224,0,0],8909:[-.03598,.46402,0,0],8910:[0,.54986,0,0],8911:[0,.54986,0,0],8912:[.03517,.54986,0,0],8913:[.03517,.54986,0,0],8914:[0,.54986,0,0],8915:[0,.54986,0,0],8916:[0,.69224,0,0],8918:[.0391,.5391,0,0],8919:[.0391,.5391,0,0],8920:[.03517,.54986,0,0],8921:[.03517,.54986,0,0],8922:[.38569,.88569,0,0],8923:[.38569,.88569,0,0],8926:[.13667,.63667,0,0],8927:[.13667,.63667,0,0],8928:[.30274,.79383,0,0],8929:[.30274,.79383,0,0],8934:[.23222,.74111,0,0],8935:[.23222,.74111,0,0],8936:[.23222,.74111,0,0],8937:[.23222,.74111,0,0],8938:[.20576,.70576,0,0],8939:[.20576,.70576,0,0],8940:[.30274,.79383,0,0],8941:[.30274,.79383,0,0],8994:[.19444,.69224,0,0],8995:[.19444,.69224,0,0],9416:[.15559,.69224,0,0],9484:[0,.69224,0,0],9488:[0,.69224,0,0],9492:[0,.37788,0,0],9496:[0,.37788,0,0],9585:[.19444,.68889,0,0],9586:[.19444,.74111,0,0],9632:[0,.675,0,0],9633:[0,.675,0,0],9650:[0,.54986,0,0],9651:[0,.54986,0,0],9654:[.03517,.54986,0,0],9660:[0,.54986,0,0],9661:[0,.54986,0,0],9664:[.03517,.54986,0,0],9674:[.11111,.69224,0,0],9733:[.19444,.69224,0,0],10003:[0,.69224,0,0],10016:[0,.69224,0,0],10731:[.11111,.69224,0,0],10846:[.19444,.75583,0,0],10877:[.13667,.63667,0,0],10878:[.13667,.63667,0,0],10885:[.25583,.75583,0,0],10886:[.25583,.75583,0,0],10887:[.13597,.63597,0,0],10888:[.13597,.63597,0,0],10889:[.26167,.75726,0,0],10890:[.26167,.75726,0,0],10891:[.48256,.98256,0,0],10892:[.48256,.98256,0,0],10901:[.13667,.63667,0,0],10902:[.13667,.63667,0,0],10933:[.25142,.75726,0,0],10934:[.25142,.75726,0,0],10935:[.26167,.75726,0,0],10936:[.26167,.75726,0,0],10937:[.26167,.75726,0,0],10938:[.26167,.75726,0,0],10949:[.25583,.75583,0,0],10950:[.25583,.75583,0,0],10955:[.28481,.79383,0,0],10956:[.28481,.79383,0,0],57350:[.08167,.58167,0,0],57351:[.08167,.58167,0,0],57352:[.08167,.58167,0,0],57353:[0,.43056,.04028,0],57356:[.25142,.75726,0,0],57357:[.25142,.75726,0,0],57358:[.41951,.91951,0,0],57359:[.30274,.79383,0,0],57360:[.30274,.79383,0,0],57361:[.41951,.91951,0,0],57366:[.25142,.75726,0,0],57367:[.25142,.75726,0,0],57368:[.25142,.75726,0,0],57369:[.25142,.75726,0,0],57370:[.13597,.63597,0,0],57371:[.13597,.63597,0,0]},"Caligraphic-Regular":{48:[0,.43056,0,0],49:[0,.43056,0,0],50:[0,.43056,0,0],51:[.19444,.43056,0,0],52:[.19444,.43056,0,0],53:[.19444,.43056,0,0],54:[0,.64444,0,0],55:[.19444,.43056,0,0],56:[0,.64444,0,0],57:[.19444,.43056,0,0],65:[0,.68333,0,.19445],66:[0,.68333,.03041,.13889],67:[0,.68333,.05834,.13889],68:[0,.68333,.02778,.08334],69:[0,.68333,.08944,.11111],70:[0,.68333,.09931,.11111],71:[.09722,.68333,.0593,.11111],72:[0,.68333,.00965,.11111],73:[0,.68333,.07382,0],74:[.09722,.68333,.18472,.16667],75:[0,.68333,.01445,.05556],76:[0,.68333,0,.13889],77:[0,.68333,0,.13889],78:[0,.68333,.14736,.08334],79:[0,.68333,.02778,.11111],80:[0,.68333,.08222,.08334],81:[.09722,.68333,0,.11111],82:[0,.68333,0,.08334],83:[0,.68333,.075,.13889],84:[0,.68333,.25417,0],85:[0,.68333,.09931,.08334],86:[0,.68333,.08222,0],87:[0,.68333,.08222,.08334],88:[0,.68333,.14643,.13889],89:[.09722,.68333,.08222,.08334],90:[0,.68333,.07944,.13889]},"Fraktur-Regular":{33:[0,.69141,0,0],34:[0,.69141,0,0],38:[0,.69141,0,0],39:[0,.69141,0,0],40:[.24982,.74947,0,0],41:[.24982,.74947,0,0],42:[0,.62119,0,0],43:[.08319,.58283,0,0],44:[0,.10803,0,0],45:[.08319,.58283,0,0],46:[0,.10803,0,0],47:[.24982,.74947,0,0],48:[0,.47534,0,0],49:[0,.47534,0,0],50:[0,.47534,0,0],51:[.18906,.47534,0,0],52:[.18906,.47534,0,0],53:[.18906,.47534,0,0],54:[0,.69141,0,0],55:[.18906,.47534,0,0],56:[0,.69141,0,0],57:[.18906,.47534,0,0],58:[0,.47534,0,0],59:[.12604,.47534,0,0],61:[-.13099,.36866,0,0],63:[0,.69141,0,0],65:[0,.69141,0,0],66:[0,.69141,0,0],67:[0,.69141,0,0],68:[0,.69141,0,0],69:[0,.69141,0,0],70:[.12604,.69141,0,0],71:[0,.69141,0,0],72:[.06302,.69141,0,0],73:[0,.69141,0,0],74:[.12604,.69141,0,0],75:[0,.69141,0,0],76:[0,.69141,0,0],77:[0,.69141,0,0],78:[0,.69141,0,0],79:[0,.69141,0,0],80:[.18906,.69141,0,0],81:[.03781,.69141,0,0],82:[0,.69141,0,0],83:[0,.69141,0,0],84:[0,.69141,0,0],85:[0,.69141,0,0],86:[0,.69141,0,0],87:[0,.69141,0,0],88:[0,.69141,0,0],89:[.18906,.69141,0,0],90:[.12604,.69141,0,0],91:[.24982,.74947,0,0],93:[.24982,.74947,0,0],94:[0,.69141,0,0],97:[0,.47534,0,0],98:[0,.69141,0,0],99:[0,.47534,0,0],100:[0,.62119,0,0],101:[0,.47534,0,0],102:[.18906,.69141,0,0],103:[.18906,.47534,0,0],104:[.18906,.69141,0,0],105:[0,.69141,0,0],106:[0,.69141,0,0],107:[0,.69141,0,0],108:[0,.69141,0,0],109:[0,.47534,0,0],110:[0,.47534,0,0],111:[0,.47534,0,0],112:[.18906,.52396,0,0],113:[.18906,.47534,0,0],114:[0,.47534,0,0],115:[0,.47534,0,0],116:[0,.62119,0,0],117:[0,.47534,0,0],118:[0,.52396,0,0],119:[0,.52396,0,0],120:[.18906,.47534,0,0],121:[.18906,.47534,0,0],122:[.18906,.47534,0,0],8216:[0,.69141,0,0],8217:[0,.69141,0,0],58112:[0,.62119,0,0],58113:[0,.62119,0,0],58114:[.18906,.69141,0,0],58115:[.18906,.69141,0,0],58116:[.18906,.47534,0,0],58117:[0,.69141,0,0],58118:[0,.62119,0,0],58119:[0,.47534,0,0]},"Main-Bold":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.13333,.63333,0,0],44:[.19444,.15556,0,0],45:[0,.44444,0,0],46:[0,.15556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.44444,0,0],59:[.19444,.44444,0,0],60:[.08556,.58556,0,0],61:[-.10889,.39111,0,0],62:[.08556,.58556,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,0,0],67:[0,.68611,0,0],68:[0,.68611,0,0],69:[0,.68611,0,0],70:[0,.68611,0,0],71:[0,.68611,0,0],72:[0,.68611,0,0],73:[0,.68611,0,0],74:[0,.68611,0,0],75:[0,.68611,0,0],76:[0,.68611,0,0],77:[0,.68611,0,0],78:[0,.68611,0,0],79:[0,.68611,0,0],80:[0,.68611,0,0],81:[.19444,.68611,0,0],82:[0,.68611,0,0],83:[0,.68611,0,0],84:[0,.68611,0,0],85:[0,.68611,0,0],86:[0,.68611,.01597,0],87:[0,.68611,.01597,0],88:[0,.68611,0,0],89:[0,.68611,.02875,0],90:[0,.68611,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.13444,.03194,0],96:[0,.69444,0,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.10903,0],103:[.19444,.44444,.01597,0],104:[0,.69444,0,0],105:[0,.69444,0,0],106:[.19444,.69444,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,0,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.01597,0],119:[0,.44444,.01597,0],120:[0,.44444,0,0],121:[.19444,.44444,.01597,0],122:[0,.44444,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.34444,0,0],168:[0,.69444,0,0],172:[0,.44444,0,0],175:[0,.59611,0,0],176:[0,.69444,0,0],177:[.13333,.63333,0,0],180:[0,.69444,0,0],215:[.13333,.63333,0,0],247:[.13333,.63333,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],710:[0,.69444,0,0],711:[0,.63194,0,0],713:[0,.59611,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.69444,0,0],730:[0,.69444,0,0],732:[0,.69444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.69444,0,0],772:[0,.59611,0,0],774:[0,.69444,0,0],775:[0,.69444,0,0],776:[0,.69444,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],824:[.19444,.69444,0,0],915:[0,.68611,0,0],916:[0,.68611,0,0],920:[0,.68611,0,0],923:[0,.68611,0,0],926:[0,.68611,0,0],928:[0,.68611,0,0],931:[0,.68611,0,0],933:[0,.68611,0,0],934:[0,.68611,0,0],936:[0,.68611,0,0],937:[0,.68611,0,0],8211:[0,.44444,.03194,0],8212:[0,.44444,.03194,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8242:[0,.55556,0,0],8407:[0,.72444,.15486,0],8463:[0,.69444,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,0],8472:[.19444,.44444,0,0],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.10889,.39111,0,0],8593:[.19444,.69444,0,0],8594:[-.10889,.39111,0,0],8595:[.19444,.69444,0,0],8596:[-.10889,.39111,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8636:[-.10889,.39111,0,0],8637:[-.10889,.39111,0,0],8640:[-.10889,.39111,0,0],8641:[-.10889,.39111,0,0],8656:[-.10889,.39111,0,0],8657:[.19444,.69444,0,0],8658:[-.10889,.39111,0,0],8659:[.19444,.69444,0,0],8660:[-.10889,.39111,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.06389,0],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68611,0,0],8712:[.08556,.58556,0,0],8715:[.08556,.58556,0,0],8722:[.13333,.63333,0,0],8723:[.13333,.63333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.02778,.47222,0,0],8728:[-.02639,.47361,0,0],8729:[-.02639,.47361,0,0],8730:[.18,.82,0,0],8733:[0,.44444,0,0],8734:[0,.44444,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.12778,0],8764:[-.10889,.39111,0,0],8768:[.19444,.69444,0,0],8771:[.00222,.50222,0,0],8776:[.02444,.52444,0,0],8781:[.00222,.50222,0,0],8801:[.00222,.50222,0,0],8804:[.19667,.69667,0,0],8805:[.19667,.69667,0,0],8810:[.08556,.58556,0,0],8811:[.08556,.58556,0,0],8826:[.08556,.58556,0,0],8827:[.08556,.58556,0,0],8834:[.08556,.58556,0,0],8835:[.08556,.58556,0,0],8838:[.19667,.69667,0,0],8839:[.19667,.69667,0,0],8846:[0,.55556,0,0],8849:[.19667,.69667,0,0],8850:[.19667,.69667,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.13333,.63333,0,0],8854:[.13333,.63333,0,0],8855:[.13333,.63333,0,0],8856:[.13333,.63333,0,0],8857:[.13333,.63333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8900:[-.02639,.47361,0,0],8901:[-.02639,.47361,0,0],8902:[-.02778,.47222,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.13889,.36111,0,0],8995:[-.13889,.36111,0,0],9651:[.19444,.69444,0,0],9657:[-.02778,.47222,0,0],9661:[.19444,.69444,0,0],9667:[-.02778,.47222,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10815:[0,.68611,0,0],10927:[.19667,.69667,0,0],10928:[.19667,.69667,0,0]},"Main-Italic":{33:[0,.69444,.12417,0],34:[0,.69444,.06961,0],35:[.19444,.69444,.06616,0],37:[.05556,.75,.13639,0],38:[0,.69444,.09694,0],39:[0,.69444,.12417,0],40:[.25,.75,.16194,0],41:[.25,.75,.03694,0],42:[0,.75,.14917,0],43:[.05667,.56167,.03694,0],44:[.19444,.10556,0,0],45:[0,.43056,.02826,0],46:[0,.10556,0,0],47:[.25,.75,.16194,0],48:[0,.64444,.13556,0],49:[0,.64444,.13556,0],50:[0,.64444,.13556,0],51:[0,.64444,.13556,0],52:[.19444,.64444,.13556,0],53:[0,.64444,.13556,0],54:[0,.64444,.13556,0],55:[.19444,.64444,.13556,0],56:[0,.64444,.13556,0],57:[0,.64444,.13556,0],58:[0,.43056,.0582,0],59:[.19444,.43056,.0582,0],61:[-.13313,.36687,.06616,0],63:[0,.69444,.1225,0],64:[0,.69444,.09597,0],65:[0,.68333,0,0],66:[0,.68333,.10257,0],67:[0,.68333,.14528,0],68:[0,.68333,.09403,0],69:[0,.68333,.12028,0],70:[0,.68333,.13305,0],71:[0,.68333,.08722,0],72:[0,.68333,.16389,0],73:[0,.68333,.15806,0],74:[0,.68333,.14028,0],75:[0,.68333,.14528,0],76:[0,.68333,0,0],77:[0,.68333,.16389,0],78:[0,.68333,.16389,0],79:[0,.68333,.09403,0],80:[0,.68333,.10257,0],81:[.19444,.68333,.09403,0],82:[0,.68333,.03868,0],83:[0,.68333,.11972,0],84:[0,.68333,.13305,0],85:[0,.68333,.16389,0],86:[0,.68333,.18361,0],87:[0,.68333,.18361,0],88:[0,.68333,.15806,0],89:[0,.68333,.19383,0],90:[0,.68333,.14528,0],91:[.25,.75,.1875,0],93:[.25,.75,.10528,0],94:[0,.69444,.06646,0],95:[.31,.12056,.09208,0],97:[0,.43056,.07671,0],98:[0,.69444,.06312,0],99:[0,.43056,.05653,0],100:[0,.69444,.10333,0],101:[0,.43056,.07514,0],102:[.19444,.69444,.21194,0],103:[.19444,.43056,.08847,0],104:[0,.69444,.07671,0],105:[0,.65536,.1019,0],106:[.19444,.65536,.14467,0],107:[0,.69444,.10764,0],108:[0,.69444,.10333,0],109:[0,.43056,.07671,0],110:[0,.43056,.07671,0],111:[0,.43056,.06312,0],112:[.19444,.43056,.06312,0],113:[.19444,.43056,.08847,0],114:[0,.43056,.10764,0],115:[0,.43056,.08208,0],116:[0,.61508,.09486,0],117:[0,.43056,.07671,0],118:[0,.43056,.10764,0],119:[0,.43056,.10764,0],120:[0,.43056,.12042,0],121:[.19444,.43056,.08847,0],122:[0,.43056,.12292,0],126:[.35,.31786,.11585,0],163:[0,.69444,0,0],305:[0,.43056,0,.02778],567:[.19444,.43056,0,.08334],768:[0,.69444,0,0],769:[0,.69444,.09694,0],770:[0,.69444,.06646,0],771:[0,.66786,.11585,0],772:[0,.56167,.10333,0],774:[0,.69444,.10806,0],775:[0,.66786,.11752,0],776:[0,.66786,.10474,0],778:[0,.69444,0,0],779:[0,.69444,.1225,0],780:[0,.62847,.08295,0],915:[0,.68333,.13305,0],916:[0,.68333,0,0],920:[0,.68333,.09403,0],923:[0,.68333,0,0],926:[0,.68333,.15294,0],928:[0,.68333,.16389,0],931:[0,.68333,.12028,0],933:[0,.68333,.11111,0],934:[0,.68333,.05986,0],936:[0,.68333,.11111,0],937:[0,.68333,.10257,0],8211:[0,.43056,.09208,0],8212:[0,.43056,.09208,0],8216:[0,.69444,.12417,0],8217:[0,.69444,.12417,0],8220:[0,.69444,.1685,0],8221:[0,.69444,.06961,0],8463:[0,.68889,0,0]},"Main-Regular":{32:[0,0,0,0],33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.19444,.10556,0,0],45:[0,.43056,0,0],46:[0,.10556,0,0],47:[.25,.75,0,0],48:[0,.64444,0,0],49:[0,.64444,0,0],50:[0,.64444,0,0],51:[0,.64444,0,0],52:[0,.64444,0,0],53:[0,.64444,0,0],54:[0,.64444,0,0],55:[0,.64444,0,0],56:[0,.64444,0,0],57:[0,.64444,0,0],58:[0,.43056,0,0],59:[.19444,.43056,0,0],60:[.0391,.5391,0,0],61:[-.13313,.36687,0,0],62:[.0391,.5391,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.68333,0,0],66:[0,.68333,0,0],67:[0,.68333,0,0],68:[0,.68333,0,0],69:[0,.68333,0,0],70:[0,.68333,0,0],71:[0,.68333,0,0],72:[0,.68333,0,0],73:[0,.68333,0,0],74:[0,.68333,0,0],75:[0,.68333,0,0],76:[0,.68333,0,0],77:[0,.68333,0,0],78:[0,.68333,0,0],79:[0,.68333,0,0],80:[0,.68333,0,0],81:[.19444,.68333,0,0],82:[0,.68333,0,0],83:[0,.68333,0,0],84:[0,.68333,0,0],85:[0,.68333,0,0],86:[0,.68333,.01389,0],87:[0,.68333,.01389,0],88:[0,.68333,0,0],89:[0,.68333,.025,0],90:[0,.68333,0,0],91:[.25,.75,0,0],92:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.31,.12056,.02778,0],96:[0,.69444,0,0],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,0],100:[0,.69444,0,0],101:[0,.43056,0,0],102:[0,.69444,.07778,0],103:[.19444,.43056,.01389,0],104:[0,.69444,0,0],105:[0,.66786,0,0],106:[.19444,.66786,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.19444,.43056,0,0],113:[.19444,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.61508,0,0],117:[0,.43056,0,0],118:[0,.43056,.01389,0],119:[0,.43056,.01389,0],120:[0,.43056,0,0],121:[.19444,.43056,.01389,0],122:[0,.43056,0,0],123:[.25,.75,0,0],124:[.25,.75,0,0],125:[.25,.75,0,0],126:[.35,.31786,0,0],160:[0,0,0,0],168:[0,.66786,0,0],172:[0,.43056,0,0],175:[0,.56778,0,0],176:[0,.69444,0,0],177:[.08333,.58333,0,0],180:[0,.69444,0,0],215:[.08333,.58333,0,0],247:[.08333,.58333,0,0],305:[0,.43056,0,0],567:[.19444,.43056,0,0],710:[0,.69444,0,0],711:[0,.62847,0,0],713:[0,.56778,0,0],714:[0,.69444,0,0],715:[0,.69444,0,0],728:[0,.69444,0,0],729:[0,.66786,0,0],730:[0,.69444,0,0],732:[0,.66786,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.66786,0,0],772:[0,.56778,0,0],774:[0,.69444,0,0],775:[0,.66786,0,0],776:[0,.66786,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.62847,0,0],824:[.19444,.69444,0,0],915:[0,.68333,0,0],916:[0,.68333,0,0],920:[0,.68333,0,0],923:[0,.68333,0,0],926:[0,.68333,0,0],928:[0,.68333,0,0],931:[0,.68333,0,0],933:[0,.68333,0,0],934:[0,.68333,0,0],936:[0,.68333,0,0],937:[0,.68333,0,0],8211:[0,.43056,.02778,0],8212:[0,.43056,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0],8224:[.19444,.69444,0,0],8225:[.19444,.69444,0,0],8230:[0,.12,0,0],8242:[0,.55556,0,0],8407:[0,.71444,.15382,0],8463:[0,.68889,0,0],8465:[0,.69444,0,0],8467:[0,.69444,0,.11111],8472:[.19444,.43056,0,.11111],8476:[0,.69444,0,0],8501:[0,.69444,0,0],8592:[-.13313,.36687,0,0],8593:[.19444,.69444,0,0],8594:[-.13313,.36687,0,0],8595:[.19444,.69444,0,0],8596:[-.13313,.36687,0,0],8597:[.25,.75,0,0],8598:[.19444,.69444,0,0],8599:[.19444,.69444,0,0],8600:[.19444,.69444,0,0],8601:[.19444,.69444,0,0],8614:[.011,.511,0,0],8617:[.011,.511,0,0],8618:[.011,.511,0,0],8636:[-.13313,.36687,0,0],8637:[-.13313,.36687,0,0],8640:[-.13313,.36687,0,0],8641:[-.13313,.36687,0,0],8652:[.011,.671,0,0],8656:[-.13313,.36687,0,0],8657:[.19444,.69444,0,0],8658:[-.13313,.36687,0,0],8659:[.19444,.69444,0,0],8660:[-.13313,.36687,0,0],8661:[.25,.75,0,0],8704:[0,.69444,0,0],8706:[0,.69444,.05556,.08334],8707:[0,.69444,0,0],8709:[.05556,.75,0,0],8711:[0,.68333,0,0],8712:[.0391,.5391,0,0],8715:[.0391,.5391,0,0],8722:[.08333,.58333,0,0],8723:[.08333,.58333,0,0],8725:[.25,.75,0,0],8726:[.25,.75,0,0],8727:[-.03472,.46528,0,0],8728:[-.05555,.44445,0,0],8729:[-.05555,.44445,0,0],8730:[.2,.8,0,0],8733:[0,.43056,0,0],8734:[0,.43056,0,0],8736:[0,.69224,0,0],8739:[.25,.75,0,0],8741:[.25,.75,0,0],8743:[0,.55556,0,0],8744:[0,.55556,0,0],8745:[0,.55556,0,0],8746:[0,.55556,0,0],8747:[.19444,.69444,.11111,0],8764:[-.13313,.36687,0,0],8768:[.19444,.69444,0,0],8771:[-.03625,.46375,0,0],8773:[-.022,.589,0,0],8776:[-.01688,.48312,0,0],8781:[-.03625,.46375,0,0],8784:[-.133,.67,0,0],8800:[.215,.716,0,0],8801:[-.03625,.46375,0,0],8804:[.13597,.63597,0,0],8805:[.13597,.63597,0,0],8810:[.0391,.5391,0,0],8811:[.0391,.5391,0,0],8826:[.0391,.5391,0,0],8827:[.0391,.5391,0,0],8834:[.0391,.5391,0,0],8835:[.0391,.5391,0,0],8838:[.13597,.63597,0,0],8839:[.13597,.63597,0,0],8846:[0,.55556,0,0],8849:[.13597,.63597,0,0],8850:[.13597,.63597,0,0],8851:[0,.55556,0,0],8852:[0,.55556,0,0],8853:[.08333,.58333,0,0],8854:[.08333,.58333,0,0],8855:[.08333,.58333,0,0],8856:[.08333,.58333,0,0],8857:[.08333,.58333,0,0],8866:[0,.69444,0,0],8867:[0,.69444,0,0],8868:[0,.69444,0,0],8869:[0,.69444,0,0],8872:[.249,.75,0,0],8900:[-.05555,.44445,0,0],8901:[-.05555,.44445,0,0],8902:[-.03472,.46528,0,0],8904:[.005,.505,0,0],8942:[.03,.9,0,0],8943:[-.19,.31,0,0],8945:[-.1,.82,0,0],8968:[.25,.75,0,0],8969:[.25,.75,0,0],8970:[.25,.75,0,0],8971:[.25,.75,0,0],8994:[-.14236,.35764,0,0],8995:[-.14236,.35764,0,0],9136:[.244,.744,0,0],9137:[.244,.744,0,0],9651:[.19444,.69444,0,0],9657:[-.03472,.46528,0,0],9661:[.19444,.69444,0,0],9667:[-.03472,.46528,0,0],9711:[.19444,.69444,0,0],9824:[.12963,.69444,0,0],9825:[.12963,.69444,0,0],9826:[.12963,.69444,0,0],9827:[.12963,.69444,0,0],9837:[0,.75,0,0],9838:[.19444,.69444,0,0],9839:[.19444,.69444,0,0],10216:[.25,.75,0,0],10217:[.25,.75,0,0],10222:[.244,.744,0,0],10223:[.244,.744,0,0],10229:[.011,.511,0,0],10230:[.011,.511,0,0],10231:[.011,.511,0,0],10232:[.024,.525,0,0],10233:[.024,.525,0,0],10234:[.024,.525,0,0],10236:[.011,.511,0,0],10815:[0,.68333,0,0],10927:[.13597,.63597,0,0],10928:[.13597,.63597,0,0]},"Math-BoldItalic":{47:[.19444,.69444,0,0],65:[0,.68611,0,0],66:[0,.68611,.04835,0],67:[0,.68611,.06979,0],68:[0,.68611,.03194,0],69:[0,.68611,.05451,0],70:[0,.68611,.15972,0],71:[0,.68611,0,0],72:[0,.68611,.08229,0],73:[0,.68611,.07778,0],74:[0,.68611,.10069,0],75:[0,.68611,.06979,0],76:[0,.68611,0,0],77:[0,.68611,.11424,0],78:[0,.68611,.11424,0],79:[0,.68611,.03194,0],80:[0,.68611,.15972,0],81:[.19444,.68611,0,0],82:[0,.68611,.00421,0],83:[0,.68611,.05382,0],84:[0,.68611,.15972,0],85:[0,.68611,.11424,0],86:[0,.68611,.25555,0],87:[0,.68611,.15972,0],88:[0,.68611,.07778,0],89:[0,.68611,.25555,0],90:[0,.68611,.06979,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[.19444,.69444,.11042,0],103:[.19444,.44444,.03704,0],104:[0,.69444,0,0],105:[0,.69326,0,0],106:[.19444,.69326,.0622,0],107:[0,.69444,.01852,0],108:[0,.69444,.0088,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,.03704,0],114:[0,.44444,.03194,0],115:[0,.44444,0,0],116:[0,.63492,0,0],117:[0,.44444,0,0],118:[0,.44444,.03704,0],119:[0,.44444,.02778,0],120:[0,.44444,0,0],121:[.19444,.44444,.03704,0],122:[0,.44444,.04213,0],915:[0,.68611,.15972,0],916:[0,.68611,0,0],920:[0,.68611,.03194,0],923:[0,.68611,0,0],926:[0,.68611,.07458,0],928:[0,.68611,.08229,0],931:[0,.68611,.05451,0],933:[0,.68611,.15972,0],934:[0,.68611,0,0],936:[0,.68611,.11653,0],937:[0,.68611,.04835,0],945:[0,.44444,0,0],946:[.19444,.69444,.03403,0],947:[.19444,.44444,.06389,0],948:[0,.69444,.03819,0],949:[0,.44444,0,0],950:[.19444,.69444,.06215,0],951:[.19444,.44444,.03704,0],952:[0,.69444,.03194,0],953:[0,.44444,0,0],954:[0,.44444,0,0],955:[0,.69444,0,0],956:[.19444,.44444,0,0],957:[0,.44444,.06898,0],958:[.19444,.69444,.03021,0],959:[0,.44444,0,0],960:[0,.44444,.03704,0],961:[.19444,.44444,0,0],962:[.09722,.44444,.07917,0],963:[0,.44444,.03704,0],964:[0,.44444,.13472,0],965:[0,.44444,.03704,0],966:[.19444,.44444,0,0],967:[.19444,.44444,0,0],968:[.19444,.69444,.03704,0],969:[0,.44444,.03704,0],977:[0,.69444,0,0],981:[.19444,.69444,0,0],982:[0,.44444,.03194,0],1009:[.19444,.44444,0,0],1013:[0,.44444,0,0]},"Math-Italic":{47:[.19444,.69444,0,0],65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556], +102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},"Math-Regular":{65:[0,.68333,0,.13889],66:[0,.68333,.05017,.08334],67:[0,.68333,.07153,.08334],68:[0,.68333,.02778,.05556],69:[0,.68333,.05764,.08334],70:[0,.68333,.13889,.08334],71:[0,.68333,0,.08334],72:[0,.68333,.08125,.05556],73:[0,.68333,.07847,.11111],74:[0,.68333,.09618,.16667],75:[0,.68333,.07153,.05556],76:[0,.68333,0,.02778],77:[0,.68333,.10903,.08334],78:[0,.68333,.10903,.08334],79:[0,.68333,.02778,.08334],80:[0,.68333,.13889,.08334],81:[.19444,.68333,0,.08334],82:[0,.68333,.00773,.08334],83:[0,.68333,.05764,.08334],84:[0,.68333,.13889,.08334],85:[0,.68333,.10903,.02778],86:[0,.68333,.22222,0],87:[0,.68333,.13889,0],88:[0,.68333,.07847,.08334],89:[0,.68333,.22222,0],90:[0,.68333,.07153,.08334],97:[0,.43056,0,0],98:[0,.69444,0,0],99:[0,.43056,0,.05556],100:[0,.69444,0,.16667],101:[0,.43056,0,.05556],102:[.19444,.69444,.10764,.16667],103:[.19444,.43056,.03588,.02778],104:[0,.69444,0,0],105:[0,.65952,0,0],106:[.19444,.65952,.05724,0],107:[0,.69444,.03148,0],108:[0,.69444,.01968,.08334],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,.05556],112:[.19444,.43056,0,.08334],113:[.19444,.43056,.03588,.08334],114:[0,.43056,.02778,.05556],115:[0,.43056,0,.05556],116:[0,.61508,0,.08334],117:[0,.43056,0,.02778],118:[0,.43056,.03588,.02778],119:[0,.43056,.02691,.08334],120:[0,.43056,0,.02778],121:[.19444,.43056,.03588,.05556],122:[0,.43056,.04398,.05556],915:[0,.68333,.13889,.08334],916:[0,.68333,0,.16667],920:[0,.68333,.02778,.08334],923:[0,.68333,0,.16667],926:[0,.68333,.07569,.08334],928:[0,.68333,.08125,.05556],931:[0,.68333,.05764,.08334],933:[0,.68333,.13889,.05556],934:[0,.68333,0,.08334],936:[0,.68333,.11,.05556],937:[0,.68333,.05017,.08334],945:[0,.43056,.0037,.02778],946:[.19444,.69444,.05278,.08334],947:[.19444,.43056,.05556,0],948:[0,.69444,.03785,.05556],949:[0,.43056,0,.08334],950:[.19444,.69444,.07378,.08334],951:[.19444,.43056,.03588,.05556],952:[0,.69444,.02778,.08334],953:[0,.43056,0,.05556],954:[0,.43056,0,0],955:[0,.69444,0,0],956:[.19444,.43056,0,.02778],957:[0,.43056,.06366,.02778],958:[.19444,.69444,.04601,.11111],959:[0,.43056,0,.05556],960:[0,.43056,.03588,0],961:[.19444,.43056,0,.08334],962:[.09722,.43056,.07986,.08334],963:[0,.43056,.03588,0],964:[0,.43056,.1132,.02778],965:[0,.43056,.03588,.02778],966:[.19444,.43056,0,.08334],967:[.19444,.43056,0,.05556],968:[.19444,.69444,.03588,.11111],969:[0,.43056,.03588,0],977:[0,.69444,0,.08334],981:[.19444,.69444,0,.08334],982:[0,.43056,.02778,0],1009:[.19444,.43056,0,.08334],1013:[0,.43056,0,.05556]},"SansSerif-Regular":{33:[0,.69444,0,0],34:[0,.69444,0,0],35:[.19444,.69444,0,0],36:[.05556,.75,0,0],37:[.05556,.75,0,0],38:[0,.69444,0,0],39:[0,.69444,0,0],40:[.25,.75,0,0],41:[.25,.75,0,0],42:[0,.75,0,0],43:[.08333,.58333,0,0],44:[.125,.08333,0,0],45:[0,.44444,0,0],46:[0,.08333,0,0],47:[.25,.75,0,0],48:[0,.65556,0,0],49:[0,.65556,0,0],50:[0,.65556,0,0],51:[0,.65556,0,0],52:[0,.65556,0,0],53:[0,.65556,0,0],54:[0,.65556,0,0],55:[0,.65556,0,0],56:[0,.65556,0,0],57:[0,.65556,0,0],58:[0,.44444,0,0],59:[.125,.44444,0,0],61:[-.13,.37,0,0],63:[0,.69444,0,0],64:[0,.69444,0,0],65:[0,.69444,0,0],66:[0,.69444,0,0],67:[0,.69444,0,0],68:[0,.69444,0,0],69:[0,.69444,0,0],70:[0,.69444,0,0],71:[0,.69444,0,0],72:[0,.69444,0,0],73:[0,.69444,0,0],74:[0,.69444,0,0],75:[0,.69444,0,0],76:[0,.69444,0,0],77:[0,.69444,0,0],78:[0,.69444,0,0],79:[0,.69444,0,0],80:[0,.69444,0,0],81:[.125,.69444,0,0],82:[0,.69444,0,0],83:[0,.69444,0,0],84:[0,.69444,0,0],85:[0,.69444,0,0],86:[0,.69444,.01389,0],87:[0,.69444,.01389,0],88:[0,.69444,0,0],89:[0,.69444,.025,0],90:[0,.69444,0,0],91:[.25,.75,0,0],93:[.25,.75,0,0],94:[0,.69444,0,0],95:[.35,.09444,.02778,0],97:[0,.44444,0,0],98:[0,.69444,0,0],99:[0,.44444,0,0],100:[0,.69444,0,0],101:[0,.44444,0,0],102:[0,.69444,.06944,0],103:[.19444,.44444,.01389,0],104:[0,.69444,0,0],105:[0,.67937,0,0],106:[.19444,.67937,0,0],107:[0,.69444,0,0],108:[0,.69444,0,0],109:[0,.44444,0,0],110:[0,.44444,0,0],111:[0,.44444,0,0],112:[.19444,.44444,0,0],113:[.19444,.44444,0,0],114:[0,.44444,.01389,0],115:[0,.44444,0,0],116:[0,.57143,0,0],117:[0,.44444,0,0],118:[0,.44444,.01389,0],119:[0,.44444,.01389,0],120:[0,.44444,0,0],121:[.19444,.44444,.01389,0],122:[0,.44444,0,0],126:[.35,.32659,0,0],305:[0,.44444,0,0],567:[.19444,.44444,0,0],768:[0,.69444,0,0],769:[0,.69444,0,0],770:[0,.69444,0,0],771:[0,.67659,0,0],772:[0,.60889,0,0],774:[0,.69444,0,0],775:[0,.67937,0,0],776:[0,.67937,0,0],778:[0,.69444,0,0],779:[0,.69444,0,0],780:[0,.63194,0,0],915:[0,.69444,0,0],916:[0,.69444,0,0],920:[0,.69444,0,0],923:[0,.69444,0,0],926:[0,.69444,0,0],928:[0,.69444,0,0],931:[0,.69444,0,0],933:[0,.69444,0,0],934:[0,.69444,0,0],936:[0,.69444,0,0],937:[0,.69444,0,0],8211:[0,.44444,.02778,0],8212:[0,.44444,.02778,0],8216:[0,.69444,0,0],8217:[0,.69444,0,0],8220:[0,.69444,0,0],8221:[0,.69444,0,0]},"Script-Regular":{65:[0,.7,.22925,0],66:[0,.7,.04087,0],67:[0,.7,.1689,0],68:[0,.7,.09371,0],69:[0,.7,.18583,0],70:[0,.7,.13634,0],71:[0,.7,.17322,0],72:[0,.7,.29694,0],73:[0,.7,.19189,0],74:[.27778,.7,.19189,0],75:[0,.7,.31259,0],76:[0,.7,.19189,0],77:[0,.7,.15981,0],78:[0,.7,.3525,0],79:[0,.7,.08078,0],80:[0,.7,.08078,0],81:[0,.7,.03305,0],82:[0,.7,.06259,0],83:[0,.7,.19189,0],84:[0,.7,.29087,0],85:[0,.7,.25815,0],86:[0,.7,.27523,0],87:[0,.7,.27523,0],88:[0,.7,.26006,0],89:[0,.7,.2939,0],90:[0,.7,.24037,0]},"Size1-Regular":{40:[.35001,.85,0,0],41:[.35001,.85,0,0],47:[.35001,.85,0,0],91:[.35001,.85,0,0],92:[.35001,.85,0,0],93:[.35001,.85,0,0],123:[.35001,.85,0,0],125:[.35001,.85,0,0],710:[0,.72222,0,0],732:[0,.72222,0,0],770:[0,.72222,0,0],771:[0,.72222,0,0],8214:[-99e-5,.601,0,0],8593:[1e-5,.6,0,0],8595:[1e-5,.6,0,0],8657:[1e-5,.6,0,0],8659:[1e-5,.6,0,0],8719:[.25001,.75,0,0],8720:[.25001,.75,0,0],8721:[.25001,.75,0,0],8730:[.35001,.85,0,0],8739:[-.00599,.606,0,0],8741:[-.00599,.606,0,0],8747:[.30612,.805,.19445,0],8748:[.306,.805,.19445,0],8749:[.306,.805,.19445,0],8750:[.30612,.805,.19445,0],8896:[.25001,.75,0,0],8897:[.25001,.75,0,0],8898:[.25001,.75,0,0],8899:[.25001,.75,0,0],8968:[.35001,.85,0,0],8969:[.35001,.85,0,0],8970:[.35001,.85,0,0],8971:[.35001,.85,0,0],9168:[-99e-5,.601,0,0],10216:[.35001,.85,0,0],10217:[.35001,.85,0,0],10752:[.25001,.75,0,0],10753:[.25001,.75,0,0],10754:[.25001,.75,0,0],10756:[.25001,.75,0,0],10758:[.25001,.75,0,0]},"Size2-Regular":{40:[.65002,1.15,0,0],41:[.65002,1.15,0,0],47:[.65002,1.15,0,0],91:[.65002,1.15,0,0],92:[.65002,1.15,0,0],93:[.65002,1.15,0,0],123:[.65002,1.15,0,0],125:[.65002,1.15,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8719:[.55001,1.05,0,0],8720:[.55001,1.05,0,0],8721:[.55001,1.05,0,0],8730:[.65002,1.15,0,0],8747:[.86225,1.36,.44445,0],8748:[.862,1.36,.44445,0],8749:[.862,1.36,.44445,0],8750:[.86225,1.36,.44445,0],8896:[.55001,1.05,0,0],8897:[.55001,1.05,0,0],8898:[.55001,1.05,0,0],8899:[.55001,1.05,0,0],8968:[.65002,1.15,0,0],8969:[.65002,1.15,0,0],8970:[.65002,1.15,0,0],8971:[.65002,1.15,0,0],10216:[.65002,1.15,0,0],10217:[.65002,1.15,0,0],10752:[.55001,1.05,0,0],10753:[.55001,1.05,0,0],10754:[.55001,1.05,0,0],10756:[.55001,1.05,0,0],10758:[.55001,1.05,0,0]},"Size3-Regular":{40:[.95003,1.45,0,0],41:[.95003,1.45,0,0],47:[.95003,1.45,0,0],91:[.95003,1.45,0,0],92:[.95003,1.45,0,0],93:[.95003,1.45,0,0],123:[.95003,1.45,0,0],125:[.95003,1.45,0,0],710:[0,.75,0,0],732:[0,.75,0,0],770:[0,.75,0,0],771:[0,.75,0,0],8730:[.95003,1.45,0,0],8968:[.95003,1.45,0,0],8969:[.95003,1.45,0,0],8970:[.95003,1.45,0,0],8971:[.95003,1.45,0,0],10216:[.95003,1.45,0,0],10217:[.95003,1.45,0,0]},"Size4-Regular":{40:[1.25003,1.75,0,0],41:[1.25003,1.75,0,0],47:[1.25003,1.75,0,0],91:[1.25003,1.75,0,0],92:[1.25003,1.75,0,0],93:[1.25003,1.75,0,0],123:[1.25003,1.75,0,0],125:[1.25003,1.75,0,0],710:[0,.825,0,0],732:[0,.825,0,0],770:[0,.825,0,0],771:[0,.825,0,0],8730:[1.25003,1.75,0,0],8968:[1.25003,1.75,0,0],8969:[1.25003,1.75,0,0],8970:[1.25003,1.75,0,0],8971:[1.25003,1.75,0,0],9115:[.64502,1.155,0,0],9116:[1e-5,.6,0,0],9117:[.64502,1.155,0,0],9118:[.64502,1.155,0,0],9119:[1e-5,.6,0,0],9120:[.64502,1.155,0,0],9121:[.64502,1.155,0,0],9122:[-99e-5,.601,0,0],9123:[.64502,1.155,0,0],9124:[.64502,1.155,0,0],9125:[-99e-5,.601,0,0],9126:[.64502,1.155,0,0],9127:[1e-5,.9,0,0],9128:[.65002,1.15,0,0],9129:[.90001,0,0,0],9130:[0,.3,0,0],9131:[1e-5,.9,0,0],9132:[.65002,1.15,0,0],9133:[.90001,0,0,0],9143:[.88502,.915,0,0],10216:[1.25003,1.75,0,0],10217:[1.25003,1.75,0,0],57344:[-.00499,.605,0,0],57345:[-.00499,.605,0,0],57680:[0,.12,0,0],57681:[0,.12,0,0],57682:[0,.12,0,0],57683:[0,.12,0,0]},"Typewriter-Regular":{33:[0,.61111,0,0],34:[0,.61111,0,0],35:[0,.61111,0,0],36:[.08333,.69444,0,0],37:[.08333,.69444,0,0],38:[0,.61111,0,0],39:[0,.61111,0,0],40:[.08333,.69444,0,0],41:[.08333,.69444,0,0],42:[0,.52083,0,0],43:[-.08056,.53055,0,0],44:[.13889,.125,0,0],45:[-.08056,.53055,0,0],46:[0,.125,0,0],47:[.08333,.69444,0,0],48:[0,.61111,0,0],49:[0,.61111,0,0],50:[0,.61111,0,0],51:[0,.61111,0,0],52:[0,.61111,0,0],53:[0,.61111,0,0],54:[0,.61111,0,0],55:[0,.61111,0,0],56:[0,.61111,0,0],57:[0,.61111,0,0],58:[0,.43056,0,0],59:[.13889,.43056,0,0],60:[-.05556,.55556,0,0],61:[-.19549,.41562,0,0],62:[-.05556,.55556,0,0],63:[0,.61111,0,0],64:[0,.61111,0,0],65:[0,.61111,0,0],66:[0,.61111,0,0],67:[0,.61111,0,0],68:[0,.61111,0,0],69:[0,.61111,0,0],70:[0,.61111,0,0],71:[0,.61111,0,0],72:[0,.61111,0,0],73:[0,.61111,0,0],74:[0,.61111,0,0],75:[0,.61111,0,0],76:[0,.61111,0,0],77:[0,.61111,0,0],78:[0,.61111,0,0],79:[0,.61111,0,0],80:[0,.61111,0,0],81:[.13889,.61111,0,0],82:[0,.61111,0,0],83:[0,.61111,0,0],84:[0,.61111,0,0],85:[0,.61111,0,0],86:[0,.61111,0,0],87:[0,.61111,0,0],88:[0,.61111,0,0],89:[0,.61111,0,0],90:[0,.61111,0,0],91:[.08333,.69444,0,0],92:[.08333,.69444,0,0],93:[.08333,.69444,0,0],94:[0,.61111,0,0],95:[.09514,0,0,0],96:[0,.61111,0,0],97:[0,.43056,0,0],98:[0,.61111,0,0],99:[0,.43056,0,0],100:[0,.61111,0,0],101:[0,.43056,0,0],102:[0,.61111,0,0],103:[.22222,.43056,0,0],104:[0,.61111,0,0],105:[0,.61111,0,0],106:[.22222,.61111,0,0],107:[0,.61111,0,0],108:[0,.61111,0,0],109:[0,.43056,0,0],110:[0,.43056,0,0],111:[0,.43056,0,0],112:[.22222,.43056,0,0],113:[.22222,.43056,0,0],114:[0,.43056,0,0],115:[0,.43056,0,0],116:[0,.55358,0,0],117:[0,.43056,0,0],118:[0,.43056,0,0],119:[0,.43056,0,0],120:[0,.43056,0,0],121:[.22222,.43056,0,0],122:[0,.43056,0,0],123:[.08333,.69444,0,0],124:[.08333,.69444,0,0],125:[.08333,.69444,0,0],126:[0,.61111,0,0],127:[0,.61111,0,0],305:[0,.43056,0,0],567:[.22222,.43056,0,0],768:[0,.61111,0,0],769:[0,.61111,0,0],770:[0,.61111,0,0],771:[0,.61111,0,0],772:[0,.56555,0,0],774:[0,.61111,0,0],776:[0,.61111,0,0],778:[0,.61111,0,0],780:[0,.56597,0,0],915:[0,.61111,0,0],916:[0,.61111,0,0],920:[0,.61111,0,0],923:[0,.61111,0,0],926:[0,.61111,0,0],928:[0,.61111,0,0],931:[0,.61111,0,0],933:[0,.61111,0,0],934:[0,.61111,0,0],936:[0,.61111,0,0],937:[0,.61111,0,0],2018:[0,.61111,0,0],2019:[0,.61111,0,0],8242:[0,.61111,0,0]}}},{}],20:[function(e,t,r){var a=e("./utils");var i=e("./ParseError");var s=e("./parseData");var n=s.ParseNode;function l(e,r,a){if(typeof e==="string"){e=[e]}if(typeof r==="number"){r={numArgs:r}}var i={numArgs:r.numArgs,argTypes:r.argTypes,greediness:r.greediness===undefined?1:r.greediness,allowedInText:!!r.allowedInText,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,handler:a};for(var s=0;s","\\langle","\\rangle","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\\lmoustache","\\rmoustache","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];var p={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak"};l(["\\blue","\\orange","\\pink","\\red","\\green","\\gray","\\purple","\\blueA","\\blueB","\\blueC","\\blueD","\\blueE","\\tealA","\\tealB","\\tealC","\\tealD","\\tealE","\\greenA","\\greenB","\\greenC","\\greenD","\\greenE","\\goldA","\\goldB","\\goldC","\\goldD","\\goldE","\\redA","\\redB","\\redC","\\redD","\\redE","\\maroonA","\\maroonB","\\maroonC","\\maroonD","\\maroonE","\\purpleA","\\purpleB","\\purpleC","\\purpleD","\\purpleE","\\mintA","\\mintB","\\mintC","\\grayA","\\grayB","\\grayC","\\grayD","\\grayE","\\grayF","\\grayG","\\grayH","\\grayI","\\kaBlue","\\kaGreen"],{numArgs:1,allowedInText:true,greediness:3},function(e,t){var r=t[0];return{type:"color",color:"katex-"+e.funcName.slice(1),value:o(r)}});l(["\\arcsin","\\arccos","\\arctan","\\arg","\\cos","\\cosh","\\cot","\\coth","\\csc","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\tan","\\tanh"],{numArgs:0},function(e){return{type:"op",limits:false,symbol:false,body:e.funcName}});l(["\\det","\\gcd","\\inf","\\lim","\\liminf","\\limsup","\\max","\\min","\\Pr","\\sup"],{numArgs:0},function(e){return{type:"op",limits:true,symbol:false,body:e.funcName}});l(["\\int","\\iint","\\iiint","\\oint"],{numArgs:0},function(e){return{type:"op",limits:false,symbol:true,body:e.funcName}});l(["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint"],{numArgs:0},function(e){return{type:"op",limits:true,symbol:true,body:e.funcName}});l("\\mathop",{numArgs:1},function(e,t){var r=t[0];return{type:"op",limits:false,symbol:false,value:o(r)}});l(["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac"],{numArgs:2,greediness:2},function(e,t){var r=t[0];var a=t[1];var i;var s=null;var n=null;var l="auto";switch(e.funcName){case"\\dfrac":case"\\frac":case"\\tfrac":i=true;break;case"\\\\atopfrac":i=false;break;case"\\dbinom":case"\\binom":case"\\tbinom":i=false;s="(";n=")";break;default:throw new Error("Unrecognized genfrac command")}switch(e.funcName){case"\\dfrac":case"\\dbinom":l="display";break;case"\\tfrac":case"\\tbinom":l="text";break}return{type:"genfrac",numer:r,denom:a,hasBarLine:i,leftDelim:s,rightDelim:n,size:l}});l(["\\llap","\\rlap"],{numArgs:1,allowedInText:true},function(e,t){var r=t[0];return{type:e.funcName.slice(1),body:r}});var m=function(e,t){if(a.contains(c,e.value)){return e}else{throw new i("Invalid delimiter: '"+e.value+"' after '"+t.funcName+"'",e)}};l(["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],{numArgs:1},function(e,t){var r=m(t[0],e);return{type:"delimsizing",size:h[e.funcName].size,mclass:h[e.funcName].mclass,value:r.value}});l(["\\left","\\right"],{numArgs:1},function(e,t){var r=m(t[0],e);return{type:"leftright",value:r.value}});l("\\middle",{numArgs:1},function(e,t){var r=m(t[0],e);if(!e.parser.leftrightDepth){throw new i("\\middle without preceding \\left",r)}return{type:"middle",value:r.value}});l(["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],0,null);l(["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],0,null);l(["\\mathrm","\\mathit","\\mathbf","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],{numArgs:1,greediness:2},function(e,t){var r=t[0];var a=e.funcName;if(a in p){a=p[a]}return{type:"font",font:a.slice(1),body:r}});l(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot"],{numArgs:1},function(e,t){var r=t[0];return{type:"accent",accent:e.funcName,base:r}});l(["\\over","\\choose","\\atop"],{numArgs:0,infix:true},function(e){var t;switch(e.funcName){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",replaceWith:t,token:e.token}});l(["\\\\","\\cr"],{numArgs:0,numOptionalArgs:1,argTypes:["size"]},function(e,t){var r=t[0];return{type:"cr",size:r}});l(["\\begin","\\end"],{numArgs:1,argTypes:["text"]},function(e,t){var r=t[0];if(r.type!=="ordgroup"){throw new i("Invalid environment name",r)}var a="";for(var s=0;s";return e};function s(e){this.text=e}s.prototype.toNode=function(){return document.createTextNode(this.text)};s.prototype.toMarkup=function(){return a.escape(this.text)};t.exports={MathNode:i,TextNode:s}},{"./utils":26}],22:[function(e,t,r){function a(e,t,r,a,i){this.type=e;this.value=t;this.mode=r;if(a&&(!i||i.lexer===a.lexer)){this.lexer=a.lexer;this.start=a.start;this.end=(i||a).end}}t.exports={ParseNode:a}},{}],23:[function(e,t,r){var a=e("./Parser");var i=function(e,t){if(!(typeof e==="string"||e instanceof String)){throw new TypeError("KaTeX can only parse string typed expression")}var r=new a(e,t);return r.parse()};t.exports=i},{"./Parser":7}],24:[function(e,t,r){t.exports={math:{},text:{}};function a(e,r,a,i,s){t.exports[e][s]={font:r,group:a,replace:i}}var i="math";var s="text";var n="main";var l="ams";var o="accent";var u="bin";var h="close";var c="inner";var p="mathord";var m="op";var f="open";var v="punct";var d="rel";var g="spacing";var y="textord";a(i,n,d,"\u2261","\\equiv");a(i,n,d,"\u227a","\\prec");a(i,n,d,"\u227b","\\succ");a(i,n,d,"\u223c","\\sim");a(i,n,d,"\u22a5","\\perp");a(i,n,d,"\u2aaf","\\preceq");a(i,n,d,"\u2ab0","\\succeq");a(i,n,d,"\u2243","\\simeq");a(i,n,d,"\u2223","\\mid");a(i,n,d,"\u226a","\\ll");a(i,n,d,"\u226b","\\gg");a(i,n,d,"\u224d","\\asymp");a(i,n,d,"\u2225","\\parallel");a(i,n,d,"\u22c8","\\bowtie");a(i,n,d,"\u2323","\\smile");a(i,n,d,"\u2291","\\sqsubseteq");a(i,n,d,"\u2292","\\sqsupseteq");a(i,n,d,"\u2250","\\doteq");a(i,n,d,"\u2322","\\frown");a(i,n,d,"\u220b","\\ni");a(i,n,d,"\u221d","\\propto");a(i,n,d,"\u22a2","\\vdash");a(i,n,d,"\u22a3","\\dashv");a(i,n,d,"\u220b","\\owns");a(i,n,v,".","\\ldotp");a(i,n,v,"\u22c5","\\cdotp");a(i,n,y,"#","\\#");a(s,n,y,"#","\\#");a(i,n,y,"&","\\&");a(s,n,y,"&","\\&");a(i,n,y,"\u2135","\\aleph");a(i,n,y,"\u2200","\\forall");a(i,n,y,"\u210f","\\hbar");a(i,n,y,"\u2203","\\exists");a(i,n,y,"\u2207","\\nabla");a(i,n,y,"\u266d","\\flat");a(i,n,y,"\u2113","\\ell");a(i,n,y,"\u266e","\\natural");a(i,n,y,"\u2663","\\clubsuit");a(i,n,y,"\u2118","\\wp");a(i,n,y,"\u266f","\\sharp");a(i,n,y,"\u2662","\\diamondsuit");a(i,n,y,"\u211c","\\Re");a(i,n,y,"\u2661","\\heartsuit");a(i,n,y,"\u2111","\\Im");a(i,n,y,"\u2660","\\spadesuit");a(i,n,y,"\u2020","\\dag");a(i,n,y,"\u2021","\\ddag");a(i,n,h,"\u23b1","\\rmoustache");a(i,n,f,"\u23b0","\\lmoustache");a(i,n,h,"\u27ef","\\rgroup");a(i,n,f,"\u27ee","\\lgroup");a(i,n,u,"\u2213","\\mp");a(i,n,u,"\u2296","\\ominus");a(i,n,u,"\u228e","\\uplus");a(i,n,u,"\u2293","\\sqcap");a(i,n,u,"\u2217","\\ast");a(i,n,u,"\u2294","\\sqcup");a(i,n,u,"\u25ef","\\bigcirc");a(i,n,u,"\u2219","\\bullet");a(i,n,u,"\u2021","\\ddagger");a(i,n,u,"\u2240","\\wr");a(i,n,u,"\u2a3f","\\amalg");a(i,n,d,"\u27f5","\\longleftarrow");a(i,n,d,"\u21d0","\\Leftarrow");a(i,n,d,"\u27f8","\\Longleftarrow");a(i,n,d,"\u27f6","\\longrightarrow");a(i,n,d,"\u21d2","\\Rightarrow");a(i,n,d,"\u27f9","\\Longrightarrow");a(i,n,d,"\u2194","\\leftrightarrow");a(i,n,d,"\u27f7","\\longleftrightarrow");a(i,n,d,"\u21d4","\\Leftrightarrow");a(i,n,d,"\u27fa","\\Longleftrightarrow");a(i,n,d,"\u21a6","\\mapsto");a(i,n,d,"\u27fc","\\longmapsto");a(i,n,d,"\u2197","\\nearrow");a(i,n,d,"\u21a9","\\hookleftarrow");a(i,n,d,"\u21aa","\\hookrightarrow");a(i,n,d,"\u2198","\\searrow");a(i,n,d,"\u21bc","\\leftharpoonup");a(i,n,d,"\u21c0","\\rightharpoonup");a(i,n,d,"\u2199","\\swarrow");a(i,n,d,"\u21bd","\\leftharpoondown");a(i,n,d,"\u21c1","\\rightharpoondown");a(i,n,d,"\u2196","\\nwarrow");a(i,n,d,"\u21cc","\\rightleftharpoons");a(i,l,d,"\u226e","\\nless");a(i,l,d,"\ue010","\\nleqslant");a(i,l,d,"\ue011","\\nleqq");a(i,l,d,"\u2a87","\\lneq");a(i,l,d,"\u2268","\\lneqq");a(i,l,d,"\ue00c","\\lvertneqq");a(i,l,d,"\u22e6","\\lnsim");a(i,l,d,"\u2a89","\\lnapprox");a(i,l,d,"\u2280","\\nprec");a(i,l,d,"\u22e0","\\npreceq");a(i,l,d,"\u22e8","\\precnsim");a(i,l,d,"\u2ab9","\\precnapprox");a(i,l,d,"\u2241","\\nsim");a(i,l,d,"\ue006","\\nshortmid");a(i,l,d,"\u2224","\\nmid");a(i,l,d,"\u22ac","\\nvdash");a(i,l,d,"\u22ad","\\nvDash");a(i,l,d,"\u22ea","\\ntriangleleft");a(i,l,d,"\u22ec","\\ntrianglelefteq");a(i,l,d,"\u228a","\\subsetneq");a(i,l,d,"\ue01a","\\varsubsetneq");a(i,l,d,"\u2acb","\\subsetneqq");a(i,l,d,"\ue017","\\varsubsetneqq");a(i,l,d,"\u226f","\\ngtr");a(i,l,d,"\ue00f","\\ngeqslant");a(i,l,d,"\ue00e","\\ngeqq");a(i,l,d,"\u2a88","\\gneq");a(i,l,d,"\u2269","\\gneqq");a(i,l,d,"\ue00d","\\gvertneqq");a(i,l,d,"\u22e7","\\gnsim");a(i,l,d,"\u2a8a","\\gnapprox");a(i,l,d,"\u2281","\\nsucc");a(i,l,d,"\u22e1","\\nsucceq");a(i,l,d,"\u22e9","\\succnsim");a(i,l,d,"\u2aba","\\succnapprox");a(i,l,d,"\u2246","\\ncong");a(i,l,d,"\ue007","\\nshortparallel");a(i,l,d,"\u2226","\\nparallel");a(i,l,d,"\u22af","\\nVDash");a(i,l,d,"\u22eb","\\ntriangleright");a(i,l,d,"\u22ed","\\ntrianglerighteq");a(i,l,d,"\ue018","\\nsupseteqq");a(i,l,d,"\u228b","\\supsetneq");a(i,l,d,"\ue01b","\\varsupsetneq");a(i,l,d,"\u2acc","\\supsetneqq");a(i,l,d,"\ue019","\\varsupsetneqq");a(i,l,d,"\u22ae","\\nVdash");a(i,l,d,"\u2ab5","\\precneqq");a(i,l,d,"\u2ab6","\\succneqq");a(i,l,d,"\ue016","\\nsubseteqq");a(i,l,u,"\u22b4","\\unlhd");a(i,l,u,"\u22b5","\\unrhd");a(i,l,d,"\u219a","\\nleftarrow");a(i,l,d,"\u219b","\\nrightarrow");a(i,l,d,"\u21cd","\\nLeftarrow");a(i,l,d,"\u21cf","\\nRightarrow");a(i,l,d,"\u21ae","\\nleftrightarrow");a(i,l,d,"\u21ce","\\nLeftrightarrow");a(i,l,d,"\u25b3","\\vartriangle");a(i,l,y,"\u210f","\\hslash");a(i,l,y,"\u25bd","\\triangledown");a(i,l,y,"\u25ca","\\lozenge");a(i,l,y,"\u24c8","\\circledS");a(i,l,y,"\xae","\\circledR");a(i,l,y,"\u2221","\\measuredangle");a(i,l,y,"\u2204","\\nexists");a(i,l,y,"\u2127","\\mho");a(i,l,y,"\u2132","\\Finv");a(i,l,y,"\u2141","\\Game");a(i,l,y,"k","\\Bbbk");a(i,l,y,"\u2035","\\backprime");a(i,l,y,"\u25b2","\\blacktriangle");a(i,l,y,"\u25bc","\\blacktriangledown");a(i,l,y,"\u25a0","\\blacksquare");a(i,l,y,"\u29eb","\\blacklozenge");a(i,l,y,"\u2605","\\bigstar");a(i,l,y,"\u2222","\\sphericalangle");a(i,l,y,"\u2201","\\complement");a(i,l,y,"\xf0","\\eth");a(i,l,y,"\u2571","\\diagup");a(i,l,y,"\u2572","\\diagdown");a(i,l,y,"\u25a1","\\square");a(i,l,y,"\u25a1","\\Box");a(i,l,y,"\u25ca","\\Diamond");a(i,l,y,"\xa5","\\yen");a(i,l,y,"\u2713","\\checkmark");a(i,l,y,"\u2136","\\beth");a(i,l,y,"\u2138","\\daleth");a(i,l,y,"\u2137","\\gimel");a(i,l,y,"\u03dd","\\digamma");a(i,l,y,"\u03f0","\\varkappa");a(i,l,f,"\u250c","\\ulcorner");a(i,l,h,"\u2510","\\urcorner");a(i,l,f,"\u2514","\\llcorner");a(i,l,h,"\u2518","\\lrcorner");a(i,l,d,"\u2266","\\leqq");a(i,l,d,"\u2a7d","\\leqslant");a(i,l,d,"\u2a95","\\eqslantless");a(i,l,d,"\u2272","\\lesssim");a(i,l,d,"\u2a85","\\lessapprox");a(i,l,d,"\u224a","\\approxeq");a(i,l,u,"\u22d6","\\lessdot");a(i,l,d,"\u22d8","\\lll");a(i,l,d,"\u2276","\\lessgtr");a(i,l,d,"\u22da","\\lesseqgtr");a(i,l,d,"\u2a8b","\\lesseqqgtr");a(i,l,d,"\u2251","\\doteqdot");a(i,l,d,"\u2253","\\risingdotseq");a(i,l,d,"\u2252","\\fallingdotseq");a(i,l,d,"\u223d","\\backsim");a(i,l,d,"\u22cd","\\backsimeq");a(i,l,d,"\u2ac5","\\subseteqq");a(i,l,d,"\u22d0","\\Subset");a(i,l,d,"\u228f","\\sqsubset");a(i,l,d,"\u227c","\\preccurlyeq");a(i,l,d,"\u22de","\\curlyeqprec");a(i,l,d,"\u227e","\\precsim");a(i,l,d,"\u2ab7","\\precapprox");a(i,l,d,"\u22b2","\\vartriangleleft");a(i,l,d,"\u22b4","\\trianglelefteq");a(i,l,d,"\u22a8","\\vDash");a(i,l,d,"\u22aa","\\Vvdash");a(i,l,d,"\u2323","\\smallsmile");a(i,l,d,"\u2322","\\smallfrown");a(i,l,d,"\u224f","\\bumpeq");a(i,l,d,"\u224e","\\Bumpeq");a(i,l,d,"\u2267","\\geqq");a(i,l,d,"\u2a7e","\\geqslant");a(i,l,d,"\u2a96","\\eqslantgtr");a(i,l,d,"\u2273","\\gtrsim");a(i,l,d,"\u2a86","\\gtrapprox");a(i,l,u,"\u22d7","\\gtrdot");a(i,l,d,"\u22d9","\\ggg");a(i,l,d,"\u2277","\\gtrless");a(i,l,d,"\u22db","\\gtreqless");a(i,l,d,"\u2a8c","\\gtreqqless");a(i,l,d,"\u2256","\\eqcirc");a(i,l,d,"\u2257","\\circeq");a(i,l,d,"\u225c","\\triangleq");a(i,l,d,"\u223c","\\thicksim");a(i,l,d,"\u2248","\\thickapprox");a(i,l,d,"\u2ac6","\\supseteqq");a(i,l,d,"\u22d1","\\Supset");a(i,l,d,"\u2290","\\sqsupset");a(i,l,d,"\u227d","\\succcurlyeq");a(i,l,d,"\u22df","\\curlyeqsucc");a(i,l,d,"\u227f","\\succsim");a(i,l,d,"\u2ab8","\\succapprox");a(i,l,d,"\u22b3","\\vartriangleright");a(i,l,d,"\u22b5","\\trianglerighteq");a(i,l,d,"\u22a9","\\Vdash");a(i,l,d,"\u2223","\\shortmid");a(i,l,d,"\u2225","\\shortparallel");a(i,l,d,"\u226c","\\between");a(i,l,d,"\u22d4","\\pitchfork");a(i,l,d,"\u221d","\\varpropto");a(i,l,d,"\u25c0","\\blacktriangleleft");a(i,l,d,"\u2234","\\therefore");a(i,l,d,"\u220d","\\backepsilon");a(i,l,d,"\u25b6","\\blacktriangleright");a(i,l,d,"\u2235","\\because");a(i,l,d,"\u22d8","\\llless");a(i,l,d,"\u22d9","\\gggtr");a(i,l,u,"\u22b2","\\lhd");a(i,l,u,"\u22b3","\\rhd");a(i,l,d,"\u2242","\\eqsim");a(i,n,d,"\u22c8","\\Join");a(i,l,d,"\u2251","\\Doteq");a(i,l,u,"\u2214","\\dotplus");a(i,l,u,"\u2216","\\smallsetminus");a(i,l,u,"\u22d2","\\Cap");a(i,l,u,"\u22d3","\\Cup");a(i,l,u,"\u2a5e","\\doublebarwedge");a(i,l,u,"\u229f","\\boxminus");a(i,l,u,"\u229e","\\boxplus");a(i,l,u,"\u22c7","\\divideontimes");a(i,l,u,"\u22c9","\\ltimes");a(i,l,u,"\u22ca","\\rtimes");a(i,l,u,"\u22cb","\\leftthreetimes");a(i,l,u,"\u22cc","\\rightthreetimes");a(i,l,u,"\u22cf","\\curlywedge");a(i,l,u,"\u22ce","\\curlyvee");a(i,l,u,"\u229d","\\circleddash");a(i,l,u,"\u229b","\\circledast");a(i,l,u,"\u22c5","\\centerdot");a(i,l,u,"\u22ba","\\intercal");a(i,l,u,"\u22d2","\\doublecap");a(i,l,u,"\u22d3","\\doublecup");a(i,l,u,"\u22a0","\\boxtimes");a(i,l,d,"\u21e2","\\dashrightarrow");a(i,l,d,"\u21e0","\\dashleftarrow");a(i,l,d,"\u21c7","\\leftleftarrows");a(i,l,d,"\u21c6","\\leftrightarrows");a(i,l,d,"\u21da","\\Lleftarrow");a(i,l,d,"\u219e","\\twoheadleftarrow");a(i,l,d,"\u21a2","\\leftarrowtail");a(i,l,d,"\u21ab","\\looparrowleft");a(i,l,d,"\u21cb","\\leftrightharpoons");a(i,l,d,"\u21b6","\\curvearrowleft");a(i,l,d,"\u21ba","\\circlearrowleft");a(i,l,d,"\u21b0","\\Lsh");a(i,l,d,"\u21c8","\\upuparrows");a(i,l,d,"\u21bf","\\upharpoonleft");a(i,l,d,"\u21c3","\\downharpoonleft");a(i,l,d,"\u22b8","\\multimap");a(i,l,d,"\u21ad","\\leftrightsquigarrow");a(i,l,d,"\u21c9","\\rightrightarrows");a(i,l,d,"\u21c4","\\rightleftarrows");a(i,l,d,"\u21a0","\\twoheadrightarrow");a(i,l,d,"\u21a3","\\rightarrowtail");a(i,l,d,"\u21ac","\\looparrowright");a(i,l,d,"\u21b7","\\curvearrowright");a(i,l,d,"\u21bb","\\circlearrowright");a(i,l,d,"\u21b1","\\Rsh");a(i,l,d,"\u21ca","\\downdownarrows");a(i,l,d,"\u21be","\\upharpoonright");a(i,l,d,"\u21c2","\\downharpoonright");a(i,l,d,"\u21dd","\\rightsquigarrow");a(i,l,d,"\u21dd","\\leadsto");a(i,l,d,"\u21db","\\Rrightarrow");a(i,l,d,"\u21be","\\restriction");a(i,n,y,"\u2018","`");a(i,n,y,"$","\\$");a(s,n,y,"$","\\$");a(i,n,y,"%","\\%");a(s,n,y,"%","\\%");a(i,n,y,"_","\\_");a(s,n,y,"_","\\_"); +a(i,n,y,"\u2220","\\angle");a(i,n,y,"\u221e","\\infty");a(i,n,y,"\u2032","\\prime");a(i,n,y,"\u25b3","\\triangle");a(i,n,y,"\u0393","\\Gamma");a(i,n,y,"\u0394","\\Delta");a(i,n,y,"\u0398","\\Theta");a(i,n,y,"\u039b","\\Lambda");a(i,n,y,"\u039e","\\Xi");a(i,n,y,"\u03a0","\\Pi");a(i,n,y,"\u03a3","\\Sigma");a(i,n,y,"\u03a5","\\Upsilon");a(i,n,y,"\u03a6","\\Phi");a(i,n,y,"\u03a8","\\Psi");a(i,n,y,"\u03a9","\\Omega");a(i,n,y,"\xac","\\neg");a(i,n,y,"\xac","\\lnot");a(i,n,y,"\u22a4","\\top");a(i,n,y,"\u22a5","\\bot");a(i,n,y,"\u2205","\\emptyset");a(i,l,y,"\u2205","\\varnothing");a(i,n,p,"\u03b1","\\alpha");a(i,n,p,"\u03b2","\\beta");a(i,n,p,"\u03b3","\\gamma");a(i,n,p,"\u03b4","\\delta");a(i,n,p,"\u03f5","\\epsilon");a(i,n,p,"\u03b6","\\zeta");a(i,n,p,"\u03b7","\\eta");a(i,n,p,"\u03b8","\\theta");a(i,n,p,"\u03b9","\\iota");a(i,n,p,"\u03ba","\\kappa");a(i,n,p,"\u03bb","\\lambda");a(i,n,p,"\u03bc","\\mu");a(i,n,p,"\u03bd","\\nu");a(i,n,p,"\u03be","\\xi");a(i,n,p,"o","\\omicron");a(i,n,p,"\u03c0","\\pi");a(i,n,p,"\u03c1","\\rho");a(i,n,p,"\u03c3","\\sigma");a(i,n,p,"\u03c4","\\tau");a(i,n,p,"\u03c5","\\upsilon");a(i,n,p,"\u03d5","\\phi");a(i,n,p,"\u03c7","\\chi");a(i,n,p,"\u03c8","\\psi");a(i,n,p,"\u03c9","\\omega");a(i,n,p,"\u03b5","\\varepsilon");a(i,n,p,"\u03d1","\\vartheta");a(i,n,p,"\u03d6","\\varpi");a(i,n,p,"\u03f1","\\varrho");a(i,n,p,"\u03c2","\\varsigma");a(i,n,p,"\u03c6","\\varphi");a(i,n,u,"\u2217","*");a(i,n,u,"+","+");a(i,n,u,"\u2212","-");a(i,n,u,"\u22c5","\\cdot");a(i,n,u,"\u2218","\\circ");a(i,n,u,"\xf7","\\div");a(i,n,u,"\xb1","\\pm");a(i,n,u,"\xd7","\\times");a(i,n,u,"\u2229","\\cap");a(i,n,u,"\u222a","\\cup");a(i,n,u,"\u2216","\\setminus");a(i,n,u,"\u2227","\\land");a(i,n,u,"\u2228","\\lor");a(i,n,u,"\u2227","\\wedge");a(i,n,u,"\u2228","\\vee");a(i,n,y,"\u221a","\\surd");a(i,n,f,"(","(");a(i,n,f,"[","[");a(i,n,f,"\u27e8","\\langle");a(i,n,f,"\u2223","\\lvert");a(i,n,f,"\u2225","\\lVert");a(i,n,h,")",")");a(i,n,h,"]","]");a(i,n,h,"?","?");a(i,n,h,"!","!");a(i,n,h,"\u27e9","\\rangle");a(i,n,h,"\u2223","\\rvert");a(i,n,h,"\u2225","\\rVert");a(i,n,d,"=","=");a(i,n,d,"<","<");a(i,n,d,">",">");a(i,n,d,":",":");a(i,n,d,"\u2248","\\approx");a(i,n,d,"\u2245","\\cong");a(i,n,d,"\u2265","\\ge");a(i,n,d,"\u2265","\\geq");a(i,n,d,"\u2190","\\gets");a(i,n,d,">","\\gt");a(i,n,d,"\u2208","\\in");a(i,n,d,"\u2209","\\notin");a(i,n,d,"\u2282","\\subset");a(i,n,d,"\u2283","\\supset");a(i,n,d,"\u2286","\\subseteq");a(i,n,d,"\u2287","\\supseteq");a(i,l,d,"\u2288","\\nsubseteq");a(i,l,d,"\u2289","\\nsupseteq");a(i,n,d,"\u22a8","\\models");a(i,n,d,"\u2190","\\leftarrow");a(i,n,d,"\u2264","\\le");a(i,n,d,"\u2264","\\leq");a(i,n,d,"<","\\lt");a(i,n,d,"\u2260","\\ne");a(i,n,d,"\u2260","\\neq");a(i,n,d,"\u2192","\\rightarrow");a(i,n,d,"\u2192","\\to");a(i,l,d,"\u2271","\\ngeq");a(i,l,d,"\u2270","\\nleq");a(i,n,g,null,"\\!");a(i,n,g,"\xa0","\\ ");a(i,n,g,"\xa0","~");a(i,n,g,null,"\\,");a(i,n,g,null,"\\:");a(i,n,g,null,"\\;");a(i,n,g,null,"\\enspace");a(i,n,g,null,"\\qquad");a(i,n,g,null,"\\quad");a(i,n,g,"\xa0","\\space");a(i,n,v,",",",");a(i,n,v,";",";");a(i,n,v,":","\\colon");a(i,l,u,"\u22bc","\\barwedge");a(i,l,u,"\u22bb","\\veebar");a(i,n,u,"\u2299","\\odot");a(i,n,u,"\u2295","\\oplus");a(i,n,u,"\u2297","\\otimes");a(i,n,y,"\u2202","\\partial");a(i,n,u,"\u2298","\\oslash");a(i,l,u,"\u229a","\\circledcirc");a(i,l,u,"\u22a1","\\boxdot");a(i,n,u,"\u25b3","\\bigtriangleup");a(i,n,u,"\u25bd","\\bigtriangledown");a(i,n,u,"\u2020","\\dagger");a(i,n,u,"\u22c4","\\diamond");a(i,n,u,"\u22c6","\\star");a(i,n,u,"\u25c3","\\triangleleft");a(i,n,u,"\u25b9","\\triangleright");a(i,n,f,"{","\\{");a(s,n,y,"{","\\{");a(i,n,h,"}","\\}");a(s,n,y,"}","\\}");a(i,n,f,"{","\\lbrace");a(i,n,h,"}","\\rbrace");a(i,n,f,"[","\\lbrack");a(i,n,h,"]","\\rbrack");a(i,n,f,"\u230a","\\lfloor");a(i,n,h,"\u230b","\\rfloor");a(i,n,f,"\u2308","\\lceil");a(i,n,h,"\u2309","\\rceil");a(i,n,y,"\\","\\backslash");a(i,n,y,"\u2223","|");a(i,n,y,"\u2223","\\vert");a(i,n,y,"\u2225","\\|");a(i,n,y,"\u2225","\\Vert");a(i,n,d,"\u2191","\\uparrow");a(i,n,d,"\u21d1","\\Uparrow");a(i,n,d,"\u2193","\\downarrow");a(i,n,d,"\u21d3","\\Downarrow");a(i,n,d,"\u2195","\\updownarrow");a(i,n,d,"\u21d5","\\Updownarrow");a(i,i,m,"\u2210","\\coprod");a(i,i,m,"\u22c1","\\bigvee");a(i,i,m,"\u22c0","\\bigwedge");a(i,i,m,"\u2a04","\\biguplus");a(i,i,m,"\u22c2","\\bigcap");a(i,i,m,"\u22c3","\\bigcup");a(i,i,m,"\u222b","\\int");a(i,i,m,"\u222b","\\intop");a(i,i,m,"\u222c","\\iint");a(i,i,m,"\u222d","\\iiint");a(i,i,m,"\u220f","\\prod");a(i,i,m,"\u2211","\\sum");a(i,i,m,"\u2a02","\\bigotimes");a(i,i,m,"\u2a01","\\bigoplus");a(i,i,m,"\u2a00","\\bigodot");a(i,i,m,"\u222e","\\oint");a(i,i,m,"\u2a06","\\bigsqcup");a(i,i,m,"\u222b","\\smallint");a(s,n,c,"\u2026","\\textellipsis");a(i,n,c,"\u2026","\\mathellipsis");a(s,n,c,"\u2026","\\ldots");a(i,n,c,"\u2026","\\ldots");a(i,n,c,"\u22ef","\\cdots");a(i,n,c,"\u22f1","\\ddots");a(i,n,y,"\u22ee","\\vdots");a(i,n,o,"\xb4","\\acute");a(i,n,o,"`","\\grave");a(i,n,o,"\xa8","\\ddot");a(i,n,o,"~","\\tilde");a(i,n,o,"\xaf","\\bar");a(i,n,o,"\u02d8","\\breve");a(i,n,o,"\u02c7","\\check");a(i,n,o,"^","\\hat");a(i,n,o,"\u20d7","\\vec");a(i,n,o,"\u02d9","\\dot");a(i,n,p,"\u0131","\\imath");a(i,n,p,"\u0237","\\jmath");a(s,n,y,"\u2013","--");a(s,n,y,"\u2014","---");a(s,n,y,"\u2018","`");a(s,n,y,"\u2019","'");a(s,n,y,"\u201c","``");a(s,n,y,"\u201d","''");a(i,n,y,"\xb0","\\degree");a(s,n,y,"\xb0","\\degree");a(i,n,p,"\xa3","\\pounds");a(i,l,y,"\u2720","\\maltese");a(s,l,y,"\u2720","\\maltese");a(s,n,g,"\xa0","\\ ");a(s,n,g,"\xa0"," ");a(s,n,g,"\xa0","~");var b;var w;var x='0123456789/@."';for(b=0;b":">","<":"<",'"':""","'":"'"};var h=/[&><"']/g;function c(e){return u[e]}function p(e){return(""+e).replace(h,c)}var m;if(typeof document!=="undefined"){var f=document.createElement("span");if("textContent"in f){m=function(e,t){e.textContent=t}}else{m=function(e,t){e.innerText=t}}}function v(e){m(e,"")}t.exports={contains:s,deflt:n,escape:p,hyphenate:o,indexOf:i,setTextContent:m,clearNode:v}},{}]},{},[1])(1)}); diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ketcindylib.txt b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ketcindylib.txt deleted file mode 100644 index 72469da831a..00000000000 --- a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/ketcindylib.txt +++ /dev/null @@ -1,6419 +0,0 @@ -// 17.08.26 Slider -// 16.11.27 -Ketinit():=Ketinit(1); -Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]); -Ketinit(sy,rangex,rangey):=( - regional(pt,tmp,tmp1,tmp2); - PenThickInit=8; - ULEN="1cm"; - KETPICLAYER=20; - MilliIn=1/2.54*1000; - PenThick=round(MilliIn*0.02); - PenThickInit=PenThick; - TenSizeInit=0.02; - TenSize=TenSizeInit; - YaSize=1; YaAngle=18; YaPosition=1; - YaThick=1; YaStyle='tf'; - KETPICCOUNT=1; - KCOLOR=[0,0,0]; - GLIST=[]; - GCLIST=[]; -// GDATALIST=[]; - GOUTLIST=[]; - POUTLIST=[]; - VLIST=[]; - FUNLIST=[]; - LETTERlist=[]; - COM0thlist=[]; - COM1stlist=[]; - COM2ndlist=[]; - SCIWRLIST=[]; - SCIRELIST=[]; - ADDAXES="1"; - LFmark=unicode("000a"); - Dq=unicode("0022"); - WaitUnit=10; - CONTINUED=0; - OutComList=[]; - OutFileLIst=[]; // 15.10.22 - FigPdfList=[]; // 16.04.08 - ADDPACK=[]; // 16.05.16 - ErrFlag=0; - setdirectory(Dirwork); - if(isstring(Fhead), // 15.04.06 - Fnametex=Fhead+".tex"; - Fnamesci=Fhead+".sce"; - Fnamescibody=Fhead+"body.sce"; - Fnameout=Fhead+".txt"; - ); - if(!isstring(Mackc),// 16.06.07 - Mackc="sh"; - ); - ArrowlineNumber=1; // 15.01.05 - ArrowheadNumber=1; - BezierNumber=1; //15.01.03 - SCALEX=1; - SCALEY=sy; -// Setscaling(sy); - XMIN=rangex_1/SCALEX; - XMAX=rangex_2/SCALEX; - YMIN=rangey_1/SCALEY; - YMAX=rangey_2/SCALEY; - Setwindow("Msg=n"); // 16.05.31 -); - -DqDq(str):=unicode("0022")+str+unicode("0022"); - -Tab2list(dtstr):=Tab2list(dtstr,[]); -Tab2list(dtstr,options):=( -//help:Tab2list(datastr); -//help:Tab2list(options=[0]); - regional(dtall,dt,rep,out,crm,lfm,htm,first,tmp,tmp1,tmp2); - crm=unicode("000d"); - lfm=unicode("000a"); - htm=unicode("0009"); - rep=0; - if(length(options)>0,rep=options_1); - first=lfm; // 16.09.05from - if(indexof(dtstr,crm)>0, - first=crm; - if(indexof(dtstr,crm+lfm)>0, - first=first+lfm; - ); // 16.09.05upto - ); - tmp1=Indexall(dtstr,first); - tmp1=prepend(0,tmp1); - tmp1=append(tmp1,length(dtstr)); - dtall=[]; - forall(1..(length(tmp1)-1), - tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1); - if(length(tmp)>0, - dtall=append(dtall,tmp); - ); - ); - out=[]; - forall(dtall,dt, - tmp1=tokenize(dt,unicode("0009")); - tmp2=[]; - forall(tmp1, - if(isstring(#),tmp=parse(#),tmp=#); - if(!isreal(tmp), - if(length(#)>0,tmp=#,tmp=rep); - ); - tmp2=append(tmp2,tmp); - ); - out=append(out,tmp2); - ); - out; -); - -Columnlist(dt,list):=( // 16.09.04 -//help:Columnlist(dt,1..3); - apply(dt,#_list); -); - -Dispmat(dt):=( // 16.09.16 -//help:Dispmat(dt); - regional(htm,crm,lfm,row,tmp,tmp1,tmp2); - htm=unicode("0009"); - crm=unicode("000d"); - lfm=unicode("000a"); - tmp2=""; - forall(dt,row, - tmp1=""; - forall(row, - if(isstring(#), - tmp1=tmp1+#+htm; - , - tmp1=tmp1+text(#)+htm; - ); - ); - tmp1=substring(tmp1,0,length(tmp1)-1); - tmp1=tmp1+lfm; - tmp2=tmp2+tmp1; - ); - print(tmp2); - println(); -); - -norm(v1):=( // 16.09.01 -//help:norm([2,1,3]); - regional(out,tmp,tmp1,tmp2); - out=0; - forall(1..length(v1), - out=out+(v1_#)^2; - ); - out=sqrt(out); - out; -); -norm(v1,v2):=( - norm(v2-v1); -); - -// 16.03.28 -Removespace(str):=( -//help:Removespace(" a b c "); - regional(tmp,flg,out); - tmp=length(str)+1; - flg=0; - forall(1..length(str), - if(flg==0, - if((str_#)!=" ", - tmp=#; - flg=1; - ); - ); - ); - out=substring(str,tmp-1,length(str)); - flg=0; - tmp=0; - forall(reverse(1..length(out)), - if(flg==0, - if((out_#)!=" ", - tmp=#; - flg=1; - ); - ); - ); - out=substring(out,0,tmp); -); - -Indexall(str,key):=( - regional(rest,out,flg,tmp,tmp1,); - out=[]; - rest=str; - flg=0; - forall(1..length(str), - if(flg==0, - tmp=indexof(rest,key); - if(tmp>0, - tmp1=tmp+length(str)-length(rest); - out=append(out,tmp1); - rest=substring(rest,tmp,length(rest)); - , - flg=1; - ); - ); - ); - out; -); - -Changestyle(nameL,style):=( -//help:Changestyle(["sgAB"],["da"]); - regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp); - tmp=Divoptions(style); - Ltypeorg=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - if(islist(nameL),nmL=nameL,nmL=[nameL]); - forall(nmL,name, - Ltype=Ltypeorg; - GCLIST=select(GCLIST,#_1!=name); - COM2ndlist=select(COM2ndlist,indexof(#,"("+name)==0); // 15.05.23 - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - ); -); - -Op(n,object):=( // 16.05.25 -//help:Op(4,[1,2,3,4]); -//help:Op(3,"abcd"); - regional(out); - if(islist(object), - out=object_n; - , - if(isstring(object), - out=substring(object,n-1,n); - ); - ); - out; -); - -Toupper(str):=( - regional(alphabet,out,tmp,tmp1); - alphabet="abcdefghijklmnopqrstuvwxyz"; - out=""; - forall(1..length(str), - tmp=substring(str,#-1,#); - tmp1=indexof(alphabet,tmp); - if(tmp1>0, - out=out+unicode(text(tmp1+64),base->10); - , - out=out+tmp; - ); - ); - out; -); - -Textformat(value,dig):=( -//help:Textformat(2/3,4); -//help:Textformat([gr1,gr2],5); - regional(vv,tmp,tmp1); - if(islist(value), - tmp1="["; - forall(value, - tmp1=tmp1+Textformat(#,dig)+","; - ); - tmp1=substring(tmp1,0,length(tmp1)-1)+"]"; - , - if(ispoint(value) % isstring(value), -// vv=Lcrd(value); -// tmp1=Textformat(vv,dig); -// tmp1=text(value); // 15.04.07 - if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02 - , - tmp1=format(value,dig); - ); - ); - tmp1; -); - -Sprintf(value,dig):=( -//help:Sprintf(5.1,4); - regional(vv,tmp,tmp1); - if(!islist(value), - vv=Textformat(value,dig); - if(indexof(vv,".")==0,vv=vv+"."); - vv=vv+"0000000000000000"; - tmp=indexof(vv,".")+dig; - vv=substring(vv,0,tmp); - , - vv=apply(value,Sprintf(#,dig)); - ); - vv; -); - -Assign(funstr,vrL):=( - regional(nn,out,tmp,tmp1); - nn=length(vrL)/2; - out=funstr; - forall(1..nn, - out=Assign(out,vrL_(2*#-1),vrL_(2*#)); - ); - out; -); - -Assign(funstr,varname,rep):=( -//help:Assign("x^2+a*x","a",1.3); -//help:Assign("a*x^2+b*x",["a",1,"b",2]); - regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg); - if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,5)+")"); // 15.02.09, 07.06 - tmp=[46]; // 12.20 - tmp=concat(tmp,48..57); - tmp=concat(tmp,65..90); - tmp=concat(tmp,97..122); - Notvar=apply(tmp,unicode(text(#),base->10)); - tmp2=""; - forall(1..100, - ii=indexof(funstr,varname); - if(ii>0, - Flg=0; - if(ii>1, - tmp=substring(funstr,ii-2,ii-1); - if(contains(Notvar,tmp), - tmp2=tmp2+substring(funstr,0,ii); - funstr=substring(funstr,ii,length(funstr)); - Flg=1; - ); - ); - if(Flg==0, - jj=ii-1+length(varname); - if(jj0, - if(indexof(#,"tex")>0,Noflg=1); - if(indexof(#,"disp")>0,Noflg=2); - if(indexof(#,"data")>0,Noflg=3); - flg=1; - ); - ); - if(flg==0, - if(indexof(#,"->")>0, - opcindy=opcindy+","+#; - flg=1; - ); - ); - if(flg==0, - if(indexof(#,"out")+indexof(#,"Out")>0, - if(indexof(#,"-")==0, - Outflg=1; - , - Outflg=2; - ); - flg=1; - ); - ); - if(flg==0, - if(indexof(#,"in")+indexof(#,"In")>0, - if(indexof(#,"-")==0, - Inflg=1; - , - Inflg=2; - ); - flg=1; - ); - ); - if(flg==0, - tmp=substring(#,0,2); - tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr"); - tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da"); - tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id"); - tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do"); - tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp"); - if(tmp1>0, - Ltype=#; - flg=1; - ); - if(flg==0, - strL=append(strL,#); - opstr=opstr+","+Dq+#+Dq; - ); - ); - ); - if(indexof(opcindy,"color->")==0,// 16.10.07from - opcindy=opcindy+",color->[0,0,0]"; - ); - [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy]; -); - -Dotprod(vec1,vec2):=( -//help:Dotprod(vec1,vec2); - regional(v1,v2,tmp); - if(ispoint(vec1),v1=vec1.xy,v1=vec1); - if(ispoint(vec2),v2=vec2.xy,v2=vec2); - v1*v2; -); - -Crossprod(a,b):=( -//help:Crossprod(vec1,vec2); - regional(tmp1,tmp2,tmp3,Out); - if(length(a)==3, - tmp1=a_2*b_3-a_3*b_2; - tmp2=a_3*b_1-a_1*b_3; - tmp3=a_1*b_2-a_2*b_1; - Out=[tmp1,tmp2,tmp3]; - , - Out=a_1*b_2-a_2*b_1; - ); - Out; -); - -Ptstart(Fig):=( -//help:Ptstart("gr1"); - regional(tmp); - if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21 - tmp_1; -); - -Ptend(Fig):=( -//help:Ptend("gr1"); - regional(tmp); - if(isstring(Fig),tmp=parse(Fig),tmp=Fig); - tmp_(length(tmp)); // 15.04.12 -); - -Numptcrv(Fig):=( -//help:Numptcrv("gr1"); - regional(tmp); - if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23 - length(tmp); -); - -Ptcrv(Num,Fig):=( -//help:Ptcrv(10,"gr1"); - regional(tmp); - if(isstring(Fig),tmp=parse(Fig),tmp=Fig); - tmp_Num; -); - -Invert(Fig):=( -//help:Invert("gr1"); - regional(tmp); - if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27 - reverse(tmp); -); -Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27 -Invert(nm,Fig,options):=( -//help:Invert("1","gr1"); - regional(name,tmp); - name="-inv"+nm; - tmp=Invert(Fig); - Listplot(name,tmp,options); -);// upto 16.01.27 - -Paramoncrv(pP,Gdata):=( - regional(Tmp,PtL); -// Eps=10^(-8); - if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata); - Tmp=Nearestpt(pP,PtL); - Tmp_2; -); - -ParamonCurve(pP,nN,plist):=( -//help:ParamonCurve(A,10,"gr1"); - regional(PtL,Out,Pa,Pb,vV,vW,sS); - if(isstring(plist),PtL=parse(plist),PtL=plist); - PtL=apply(PtL,LLcrd(#));//16.10.16 - if(nN==length(PtL), - Out=nN; - , - Pa=PtL_nN; - Pb=PtL_(nN+1); - vV=Pb-Pa; - vW=pP-Pa; - sS=vV*vW/|vV|^2; - sS=min([max([sS,0]),1]); - Out=nN+sS; - ); - Out; -); - -Pointoncrv(tT,PtL):=PointonCurve(tT,PtL); -PointonCurve(tT,Gdata):=( -//help:PointonCurve(20.5,"gr1"); - regional(Out,Eps,nN,sS,Pa,Pb,PtL); - if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata); - if(length(PtL)==1,PtL=PtL_1); - Eps=10^(-4); - nN=floor(tT+Eps); - sS=max([tT-nN,0]); - if(nN==length(PtL), - Out=PtL_nN; - , - Pa=PtL_nN; - Pb=PtL_(nN+1); - Out=(1-sS)*Pa+sS*Pb; - ); - Out; -); - -Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]); -Koutenseg(pA,pB,pC,pD,options):=( - regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2, - em1,eM1,em2,eM2,rT,Tmp1,Tmp2); - Eps0=10^(-4); - pV=pB-pA; - Sv2=|pV|; - pP=pC-pA; pQ=pD-pA; - Eps=10^(-3); - Eps2=0.2; - Tmp1=0; - forall(options, - if(Tmp1==0, - Eps=#; - Tmp1=1; - , - Eps2=#; - ); - ); - Flg=0; - if(Sv2<10^(-3), - Out=["inf","inf"]; - Flg=1; - ); - if(Flg==0, - Eps=min([Eps2,Eps/Sv2]); - p1=pP*pV/Sv2^2; - p2=[pP_2,-pP_1]*pV/Sv2^2; - q1=pQ*pV/Sv2^2; - q2=[pQ_2,-pQ_1]*pV/Sv2^2; - em1=-Eps; eM1=1+Eps; - em2=-Eps; eM2=Eps; - if(max([p1,q1])eM1, - Out=["inf","inf"]; - Flg=1; - ); - if(max([p2,q2])eM2, - Out=["inf","inf"]; - Flg=1; - ); - ); - if(Flg==0 & p2*q2<0, - rT=p1-(q1-p1)/(q2-p2)*p2; - if(rT>em1 & rT-Eps0 & rT<1+Eps0, - Tmp1=pA+rT*pV; - Tmp2=min([max([rT,0]),1]); - Out=[Tmp1,Tmp2,0]; - , - Tmp1=pA+rT*pV; - Tmp2=min([max([rT,0]),1]); - Out=[Tmp1,Tmp2,1]; - ); - Flg=1; - ); - if(Flg==0 & (p1eM1 % p2eM2), - if(q1eM1 % q2eM2, - Out=["inf","inf"]; - Flg=1; - ); - if(Flg==0, - rT=min([max([p1,0]),1]); - Tmp1=pA+rT*pV; - Out=[Tmp1,rT,1]; - Flg=1; - ); - ); - ); - if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0), - rT= p1; - Tmp1=pA+rT*pV; - Out= [Tmp1, rT, 0]; - Flg=1; - ); - if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0), - rT= q1; - Tmp1=pA+rT*pV; - Out=[Tmp1,rT,0]; - Flg=1; - ); - if(Flg==0 & (p1eM1 % p2eM2), - if(q1eM1 % q2eM2, - Out=["inf","inf"]; - Flg=1; - ); - if(Flg==0, - rT=min([max([q1,0]),1]); - Tmp1=pA+rT*pV; - Out=[Tmp1,rT,1]; - Flg=1; - ); - ); - if(Flg==0 & (q1eM1% q2eM2), - rT=min([max([p1,0]),1]); - Tmp1=pA+rT*pV; - Out=[Tmp1,rT,1]; - Flg=1; - ); - if(Flg==0, - if(abs(p2)0, - Eps=realL_1; - if(Tmp1>1, - Eps2=realL_2; - ); - ); - Flg=0; - if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1); - if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2); - if(MeasureDepth(Data1)==2,Data1=Data1_1); - if(MeasureDepth(Data2)==2,Data2=Data2_1); - Data1=apply(Data1,LLcrd(#)); - Data2=apply(Data2,LLcrd(#)); - if(length(Data1)==length(Data2), - Tmp1=Reverse(Data2); - Eps0=10^(-6); - Tmp2=0; - forall(1..length(Data1), - Tmp2=Tmp2+abs(Data1_#-Data2_#); - ); - Tmp3=0; - forall(1..length(Data1), - Tmp3=Tmp3+abs(Data1_#-Tmp1_#); - ); - if(Tmp20, - Tmp=KL1_1; - pP=Tmp_1; - rT=Tmp_2; - Ni=Tmp_3; - Nj=Tmp_4; - Tmp=[pP,Ni+rT,Nj]; - Out=[Tmp]; - ); - forall(2..length(KL1),Ni, - Tmp=KL1_Ni; - pP=Tmp_1; - Tmp2=0; - Flg=0; - forall(1..length(Out),Nj, - if(Flg==0, - Tmp=Out_Nj; - if(|pP-Tmp_1|Eps, - rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp; - if(rT<-Eps, - pP=[a1,a2]; - , - if(rT>1+Eps, - pP=[b1,b2]; - , - pP=[a1+rT*v1,a2+rT*v2]; - ); - ); - sS=|pP-pA|; - if(sSrange_1 & #_1range_1 & #_10) & (list_1_1>list_(length(list))_1), - list=reverse(list); -// pmflg=pmflg*(-1); - ); - list=apply(list,LLcrd(#)); - list=concat([va1],list); - list=concat(list,[va2]); - Sm=0; - forall(1..(length(list)-1), - p1=list_#; - p2=list_(#+1); - if(#==1 % #==length(list)-1, - tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2; - Sm=Sm+tmp1; - , - p0=list_(#-1); - p3=list_(#+2); - tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2); - cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp; - pQ=p1+cc*(p2-p0); - pR=p2+cc*(p1-p3); - p01=p1_1; p02=p1_2; - p31=p2_1; p32=p2_2; - p11=pQ_1; p12=pQ_2; - p21=pR_1; p22=pR_2; - tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11- - 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11- - 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01- - 6*p32*p21+10*p32*p31; - tmp1=tmp1/20; - Sm=Sm+tmp1; - ); - ); - if(pmflg==-1, - Sm=-Sm; - ); - Sm; -); - -Findarea(pdstr):=( -//help:Findarea("sgABCA"); - regional(pd,p1,p2,s,tmp); - if(isstring(pdstr),pd=parse(pdstr),pd=pdstr); - s=0; - forall(1..(length(pd)-1), - p1=Lcrd(pd_#); - p2=Lcrd(pd_(#+1)); - tmp=(p1_2+p2_2)*(p2_1-p1_1)/2; - s=s+tmp; - ); - if(s<0,s=-s); - s; -); - -Findarea(pdstr):=( // 15.11.27 -//help:Findarea("cr1"); - regional(pd,p0,p1,p2,p3,s,tmp); - if(isstring(pdstr),pd=parse(pdstr),pd=pdstr); - s=0; - forall(1..(length(pd)-1), - p1=pd_#; - p2=pd_(#+1); - if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1)); - if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2)); - tmp=IntegrateO(p0,p1,p2,p3); - s=s+tmp; - ); - if(s<0,s=-s); - s; -); - -Findlength(pdstr):=( -//help:Findlength("gr1"); - regional(pd,p1,p2,s,tmp); - if(isstring(pdstr),pd=parse(pdstr),pd=pdstr); - s=0; - forall(1..(length(pd)-1), - p1=Lcrd(pd_#); - p2=Lcrd(pd_(#+1)); - tmp=|p2-p1|; - s=s+tmp; - ); - s; -); - -Inversefun(fnstr,rngstr,value):=( - regional(tmp,varstr,range,x1,x2,x3,va1,va2); - tmp=indexof(rngstr,"="); - varstr=substring(rngstr,0,tmp-1); - range=parse(substring(rngstr,tmp,length(rngstr))); - x1=range_1; x2=range_2; - repeat(15, - x3=(x1+x2)/2; - va1=parse(replace(fnstr,varstr,textformat(x1,5))); - va2=parse(replace(fnstr,varstr,textformat(x3,5))); - if((va1>value & va2>value) % (va13,type="cmyk",type="rgb"); - tmp=text(data); - tmp=substring(tmp,1,length(tmp)-1); - tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}"; - Texcom(tmp); -); - -Setcolor(Par):=( -//help:Setcolor([1,0,0,1]); -//help:Setcolor([1,1,0]); - if(islist(Par), - if(length(Par)==3, - Setcolorrgb(Par); // 2015.04.28 -// KCOLOR=Par; - ); - if(length(Par)==4, - Setcolor(Par,[]); - ); - , - Setcolor(Par,[]); - ); -); - -Setcolor(colorname,options):=( -//help:Setcolor("greenyellow",0.3); - regional(tmp); - if(isstring(colorname), - tmp="Setcolor("+Dq+colorname+Dq; - if(length(options)>0, - tmp=tmp+","+text(options_1); - ); - Com2nd(tmp+")"); - ); - if(islist(colorname), - tmp=text(colorname); - tmp=substring(tmp,1,length(tmp)-1); - tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")"; - Com2nd(tmp); - ); -); - -Setcolorrgb(colorlist):=( -// help:Setcolorrgb([0.5,0.3,0.4]); - regional(tmp); - tmp=text(colorlist); - tmp=substring(tmp,1,length(tmp)-1); - tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")"; - Com2nd(tmp); -); - -ColorRgb2Cmyk(clr):=( -// help:ColorRgb([0.2,0.5,0.1]); - regional(clrnew,tmp,black); - tmp=apply(clr,1-#); - black=min(tmp); - tmp=apply(clr,(1-#-black)/(1-black)); - clrnew=append(tmp,black); - clrnew; -); - -ColorCmyk2Rgb(clr):=( -// help:ColorRgb([0.2,0.5,0.1,0.2]); - regional(clrnew,tmp,black); - black=clr_4; - tmp=apply(clr,1-min(1,#*(1-black)+black)); - clrnew=tmp_(1..3); - clrnew; -); - -Colorrgbhsv(rgb):=( - regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB); - varR = rgb_1; - varG = rgb_2; - varB = rgb_3; - varMin = min( [varR, varG, varB] ); - varMax = max( [varR, varG, varB] ); - delMax = varMax - varMin ; - vv = varMax; - if ( delMax == 0 , - hh = 0 ; - ss = 0 ; - , - ss = delMax / varMax; - delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax; - delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax; - delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax; - if( varR == varMax , - hh = delB - delG; - , - if ( varG == varMax, - hh = ( 1 / 3 ) + delR - delB; - , - if ( varB == varMax , - hh = ( 2 / 3 ) + delG - delR; - ); - ); - ); - if ( hh < 0 ,hh = hh+1); - if ( hh > 1 ,hh = hh-1); - ); - [hh*360,ss,vv]; -); - -Colorhsvrgb(sL):=( - regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL); - tmp=[sL_1/60,sL_2,sL_3]; - hi=mod(floor(tmp_1),6); - ff=tmp_1-floor(tmp_1); - tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)]; - tmp2=append(tmp2,tmp_3); - if(hi==0,dL=tmp2_[4,3,1]); - if(hi==1,dL=tmp2_[2,4,1]); - if(hi==2,dL=tmp2_[1,4,3]); - if(hi==3,dL=tmp2_[1,2,4]); - if(hi==4,dL=tmp2_[3,1,4]); - if(hi==5,dL=tmp2_[4,1,2]); - dL; -); - -Colorrgbhsl(rgb):=( - regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll); - rr = rgb_1 ; - gg = rgb_2 ; - bb = rgb_3 ; - mn = min([rr, gg, bb]); - mx = max([rr, gg, bb]); - delta = mx - mn; - ll = (mx + mn) / 2; - if (delta == 0, - hh=0; - ss=0; - , - if (ll < 0.5, - ss = delta/ (mx + mn); - , - ss = delta / (2 - mx - mn); - ); - deltaR = (((mx - rr) / 6) + (delta / 2)) / delta; - deltaG = (((mx - gg) / 6) + (delta / 2)) / delta; - deltaB = (((mx - bb) / 6) + (delta / 2)) / delta; - if (rr == mx, - hh = deltaB - deltaG; - , - if (gg == mx, - hh = (1 / 3) + deltaR - deltaB; - , - if (bb == mx, - hh = (2 / 3) + deltaG - deltaR; - ); - ); - ); - if ( hh < 0, hh = hh+1); - if ( hh > 1, hh = hh-1); - ); - [hh*360,ss,ll]; -); - -Colorhslrgb(hsl):=( - regional(hh,ss,ll,rr,gg,bb,var1,var2); - hh=hsl_1/360; - ss=hsl_2; - ll=hsl_3; - if ( ss == 0.0, - rr = ll ; - gg = ll ; - bb = ll ; - , - if ( ll < 0.5 , - var2 = ll * ( 1.0 + ss ); - , - var2 = ( ll + ss ) - ( ss * ll ); - ); - var1 = 2.0 * ll - var2; - rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) ); - gg = hue2rgb( var1, var2, hh ); - bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) ); - ); - [rr,gg,bb]; -); - -hue2rgb(vv1,vv2,vh):=( - regional(out); - if ( vh < 0.0 ,vh =vh+1); - if ( vh > 1.0 ,vh =vh-1); - if ( 6.0*vh < 1.0 , - out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ; - , - if( 2.0*vh < 1.0 , - out = vv2; - , - if ( 3.0*vh < 2.0 , - out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ; - , - out= vv1 ; - ); - ); - ); - out; -); - -Colorrgbhwb(sL):=( - regional(dl1,dl2,dl3); - dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1; - dl2 = min(sL); - dl3 = 1 - max(sL); - dL= [dl1, dl2 , dl3 ]; -); - -Colorhwbrgb(sLorg):=( - regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg); - sL=sLorg; - sL=[sL_1/360,sL_2,sL_3]; - ratio = sL_2 + sL_3; - // sL_2 + sL_3 cant be > 1 - if (ratio > 1., - sL_2 =sL_2 / ratio; - sL_3 = sL_3 / ratio; - ); - ii = floor(6 * sL_1); - vv = 1 - sL_3; - ff = 6 * sL_1 - ii; - if(mod(ii,2)==1,ff = 1 - ff); - nn = sL_2 + ff * (vv - sL_2); // linear interpolation - tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn], - [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]]; - flg=0; - forall(0..6, - if(flg==0 & ii == # , - dL=tmp_(#+1); - flg=1; - ); - ); - dL; -); - -Colorhslhsv(sL):=( - regional(dl1,dl2,dl3,dL); - dl1=sL_1; - if(sL_3 == 0, - // no need to do calc on black - // also avoids divide by 0 error - dL= [0, 0, 0]; - , - sL_3 = sL_3 * 2; - if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3)); - dl3 = (sL_3 + sL_2) / 2; - dl2 = (2 * sL_2) / (sL_3 + sL_2); - dL = [dl1, dl2, dl3]; - ); - dL; -); - -Colorcode(src,dest,sL):=( -//help:Colorcode("rgb","cmyk",[1,0.5,0]); - regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg); - regional(dl1,dl2,dl3); - if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL)); - if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL)); - if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL)); - if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL)); - if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL)); - if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL)); - if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL)); - if(src=="hsv" & dest=="hsl", - dl1 = sL_1; - dl3 = (2 - sL_2) * sL_3; - dl2 = sL_2 * sL_3; - if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3)); - dl3 =d l3/ 2; - dL = [dl1, dl2 , dl3 ]; - ); - - if(src=="rgb" & dest=="cmyk", - tmp=apply(sL,1-#); - black=min(tmp); - tmp=apply(sL,(1-#-black)/(1-black)); - dL=append(tmp,black); - ); - if(src=="cmyk" & dest=="rgb", - black=sL_4; - tmp=apply(sL,1-min(1,#*(1-black)+black)); - dL=tmp_(1..3); - ); - if(src=="hsv" & dest=="cmyk", - tmp=Colorcode("hsv","rgb",sL); - dL=Colorcode("rgb","cmyk",tmp); - ); - if(src=="cmyk" & dest=="hsv", - tmp=Colorcode("cmyk","rgb",sL); - dL=Colorcode("rgb","hsv",tmp); - ); - - if(src=="hsv" & dest=="hwb", - tmp = Colorcode("hsv","rgb",sL); - dL = Colorcode("rgb","hwb",tmp); - ); - if(src=="hwb" & dest=="hsv", - tmp = Colorcode("hwb","rgb",sL); - dL = Colorcode("rgb","hsv",tmp); - ); - if(src=="hsl" & dest=="hwb", - tmp = Colorcode("hsl","rgb",sL); - dL = Colorcode("rgb","hwb",tmp); - ); - if(src=="hwb" & dest=="hsl", - tmp = Colorcode("hwb","rgb",sL); - dL = Colorcode("rgb","hsl",tmp); - ); - if(src=="hsl" & dest=="cmyk", - tmp = Colorcode("hsl","rgb",sL); - dL = Colorcode("rgb","cmyk",tmp); - ); - if(src=="hwb" & dest=="cmyk", - tmp = Colorcode("hwb","rgb",sL); - dL = Colorcode("rgb","cmyk",tmp); - ); - if(src=="cmyk" & dest=="hsl", - tmp = Colorcode("cmyk","rgb",sL); - dL = Colorcode("rgb","hsl",tmp); - ); - if(src=="cmyk" & dest=="hwb", - tmp = Colorcode("cmyk","rgb",sL); - dL = Colorcode("rgb","hwb",tmp); - ); - if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL)); - if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL)); - - if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL)); - if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL)); - - if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL)); - if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL)); - - if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL)); - if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL)); - - dL; -); - -Addcolor(cmdorg,list):=( -//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]); - regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4); - cmd=replace(cmdorg,"'",Dq); - if(length(list)==3, - rgb=list; - cmyk=Colorcode("rgb","cmyk",list); - , - cmyk=list; - rgb=Colorcode("cmyk","rgb",list); - ); - tmp1="color->"+text(rgb); - tmp2="Setcolor("+text(cmyk)+");"; - tmp3=substring(cmd,0,length(cmd)-2); - tmp=substring(tmp3,length(tmp3)-1,length(tmp3)); - if(tmp!="[", - tmp3=tmp3+","; - ); - tmp3=tmp3+Dq+tmp1+Dq+"])"; - parse(tmp2); - parse(tmp3); - Setcolor("black"); -); - -Colorinfile(filename,clrf,clrt):=( - regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body); - if(length(clrf_1)==3, - head="[rgb]{"; - , - head="[cmyk]{"; - ); - tmp=apply(clrf,text(#)); - cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}"); - if(length(clrt_1)==3, - head="[rgb]{"; - , - head="[cmyk]{"; - ); - tmp=apply(clrt,text(#)); - chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}"); - tmp1=load(filename); - tmp=tokenize(tmp1,"{\unitlength"); - head=tokenize(tmp_1,"%%%"); - head=head_(2..length(head)); - head=apply(head,"%%%"+#); - tmp2=tmp_2; - forall(1..5, - tmp2=replace(tmp2,cstrL_#,chstrL_#); - ); - body=tokenize(tmp2,"%"); - body_1="{\unitlength"+body_1; - body=apply(body,#+"%"); - body=body_(1..(length(body)-1)); - tmp=replace(filename,".tex","new.tex"); - SCEOUT=openfile(tmp); - forall(head, - println(SCEOUT,#); - ); - forall(1..length(body), - tmp=body_#; - if(#0, - Dop=","+substring(str,tmp1,length(str)); - ); - noflg=parse(substring(str,0,1)); - if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29 - tmp1=substring(str,1,3); - if(tmp1=="dr" % tmp1=="Dr", - Ltype=0; - if(noflg==0 & subflg==0, // 16.02.29 - Drwline(name+Dop); - ); - ); - if(tmp1=="da" % tmp1=="Da", - Ltype=1; - if(noflg==0 & subflg==0, // 16.02.29 - Dashline(name+Dop); - ); - ); - if(tmp1=="id" % tmp1=="Id", - Ltype=2; // 15.11.09 - if(noflg==0 & subflg==0, // 16.02.29 - Invdashline(name+Dop); - ); - ); - if(tmp1=="do" % tmp1=="Do", - Ltype=3; - if(noflg==0 & subflg==0, // 16.02.29 - Dottedline(name+Dop); - ); - ); - if(tmp1=="dp" % tmp1=="Dp", - Ltype=0; - tmp1=parse(name); - tmp2=""; - forall(tmp1, - tmp2=tmp2+textformat(#_1,5)+","; - ); - tmp2=substring(tmp2,0,length(tmp2)-1); - if(noflg==0, - Drwpt(tmp2+Dop); - ); - ); - if(tmp1=="no" % tmp1=="No", - Ltype=10; - ); - Ltype; -); - -Chunderscore(str):=( - regional(flg,tmp,tmp1,tmp2,tmp3); - if(indexof(str,"]")>0, - tmp1=replace(str,"]",",]"); - , - tmp1=str+","; - ); - flg=0; - tmp2=[]; - tmp3=0; - forall(1..length(tmp1), - if(flg==0, - tmp=substring(tmp1,tmp3,length(tmp1)); - tmp=indexof(tmp,"_"); - if(tmp==0, - flg=1; - , - tmp3=tmp3+tmp; - tmp=substring(tmp1,tmp3,length(tmp1)); - tmp=indexof(tmp,",")-1; - tmp=substring(tmp1,tmp3,tmp3+tmp); - tmp2=append(tmp2,tmp); - ); - ); - ); - forall(tmp2, - tmp1=replace(tmp1,"_"+#,"("+#+")"); - ); - if(indexof(str,"]")>0, - tmp1=replace(tmp1,",]",")"); - tmp1=replace(tmp1,"[","list("); - , - tmp1=substring(tmp1,0,length(tmp1)-1); - ); - tmp1; -); - -//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]); -AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]); -// if(isstring(Arg2), -// AddGraph(Arg1,Arg2,[]); -// , -// if(MeasureDepth(Arg2)>0, -// Addgraph(Arg1,Arg2,[]); -// , -// Addgraph("-"+Arg1,Arg1,Arg2); -// ); -// ); -//); -AddGraph(nm,pltdata,options):=( -//help:AddGraph("1","imp1"); // 16.04.04 -//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]); - regional(name,Ltype,Noflg,opcindy,pdata,fname,flg, - tmp,tmp1,tmp2,tmp3); - if(substring(nm,0,1)=="-", - name=substring(nm,1,length(nm)); - , - name="ad"+nm; - ); - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_9; - if(isstring(pltdata), - pdata=parse(pltdata) - , - if(!islist(pltdata),pdata=[pltdata],pdata=pltdata); - pdata=apply(pdata,parse(#)); - ); // 15.01.22 - pdata=Flattenlist(pdata); - tmp1=[]; - forall(pdata,tmp2, - tmp=apply(tmp2,Pcrd(#)); - tmp1=append(tmp1,tmp); - ); - if(length(tmp1)==1,tmp1=tmp1_1); - pdata=tmp1; - if(Noflg<3, - println("generate addgraph "+name); - tmp=name+"="+textformat(pdata,5); - parse(tmp); - if(isstring(pltdata), // 16.04.04 from - if(indexof(pltdata,"]")>0, - tmp1="list(Listplot("+substring(pltdata,1,length(pltdata)); - tmp1=replace(tmp1,"]",",]"); - , - tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]"; - ); - flg=0; - tmp2=[]; - tmp3=0; - forall(1..length(tmp1), - if(flg==0, - tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_"); - if(tmp==0, - flg=1; - , - tmp3=tmp3+tmp; - tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1; - tmp=substring(tmp1,tmp3,tmp3+tmp); - tmp2=append(tmp2,tmp); - ); - ); - ); - forall(tmp2, - tmp1=replace(tmp1,"_"+#,"("+#+")"); - ); - tmp1=replace(tmp1,",]",")"); - tmp1=replace(tmp1,",","),Listplot("); - if(indexof(pltdata,"[")>0, - tmp1=tmp1+")"; - ); - GLIST=append(GLIST,name+"="+tmp1); - , - if(MeasureDepth(pdata)==1, - tmp1=name+"=Listplot("+textformat(pdata,5)+")"; - , - tmp1="list("; - forall(1..length(pdata), - tmp=name+"p"+textformat(#,5)+"="; - if(length(pdata_#)>1, // 15.01.22 - tmp=tmp+"Listplot("+textformat(pdata_#,5)+")"; - , - tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")"; - ); - GLIST=append(GLIST,tmp); - tmp1=tmp1+name+"p"+textformat(#,5)+","; - ); - tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")"; - ); - GLIST=append(GLIST,tmp1); - ); - ); // 16.04.04 upto - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); -); - -Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]); -Joincrvs(nm,plotstrL,options):=( -//help:Joincrvs("1",["sgAB","sgDCB"]); - regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN, - opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg); - name="join"+nm; - plotlist=[]; - forall(plotstrL,str, - if(isstring(str), - tmp=parse(str); - tmp=apply(tmp,LLcrd(#)); - , - tmp=str; - ); - plotlist=append(plotlist,tmp); - ); - Eps=10^(-4); - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - tmp1=tmp_6; - if(length(tmp1)>0,Eps=tmp1_1); - QdL=[]; - forall(plotlist,Qd, - if(ispoint(Qd_1) % !islist(Qd_1_1), - QdL=concat(QdL,[Qd]); - , - forall(Qd, - QdL=concat(QdL,[#]); - ); - ); - ); - Flg=0; - if(length(QdL)==0, - PtL=[]; - Flg=1; - ); - if(Flg==0, - PtL=QdL_1; - forall(2..length(QdL),Ni, - Qd=QdL_Ni; - if(Numptcrv(Qd)>1, - pP=Ptend(PtL); - pS=Ptstart(PtL); - pQ=Ptstart(Qd); - pR=Ptend(Qd); - rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]); - if(rMN==|pP-pR|, - Qd=reverse(Qd); - , - if(rMN==|pS-pQ|, - PtL=reverse(PtL); - , - if(rMN==|pS-pR|, - PtL=reverse(PtL); - Qd=reverse(Qd); - ); - ); - ); - ); - if(rMN>Eps, - PtL=concat(PtL,Qd); - , - PtL=concat(PtL,Qd_(2..length(Qd))); - ); - ); - ); - if(Noflg<3, - println("generate joincurve "+name); - tmp1=apply(PtL,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - tmp1=""; - forall(plotstrL, - tmp1=tmp1+#+","; - ); - tmp1=substring(tmp1,0,length(tmp1)-1); - GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")"); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - PtL; -); - -Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]); -Partcrv(nm,pA,pB,PkLstr,options):=( -//help:Partcrv("1",A,B,"sgABC"); -//help:Partcrv("1",1.3,2.5,"sgABC"); - regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP, - opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg); - name="part"+nm; - if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr); - DepthFlg=0; - if(MeasureDepth(PkL)==2, - PkL=PkL_1; - DepthFlg=1; - ); - PkL=apply(PkL,LLcrd(#)); - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - Eps=10^(-3); - Flg=0; - if(isreal(pA), - if(pA>pB+Eps, - Npt=Numptcrv(PkL); - Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]); - Out2=Partcrv("",1,pB,PkLstr,["nodata"]); - tmp=Ptstart(PkL)-Ptend(PkL); - if(|tmp|nE+Eps, - pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1); - PPL=concat(PPL,[pP]); - ); - Ans=PPL; - Flg=1; - ); - ); - if(Flg==0, - tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL); - Ta=tmp_2; - tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12 - Tb=tmp_2; - Ans=Partcrv("",Ta,Tb,PkL,["nodata"] ); - Ans=apply(Ans,Pcrd(#)); - ); - if(Noflg<3, - println("generate partcrv "+name); - tmp1=apply(Ans,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); -// GLIST=append(GLIST, // 16.04.03 - if(DepthFlg==0, - tmp=PkLstr; - , - tmp=PkLstr+"(1)"; - ); - tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5) - +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03 - GLIST=append(GLIST,tmp1); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - Ans; -); - -Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]); -Opcrvs(num,Fig,options):=( - //help:Subgraph(2,"grfs"); - regional(name,tmp,tmp1); - name="-"+Fig+text(num); - tmp=Fig+"_"+text(num); - tmp1=parse(tmp); - Listplot(name,tmp1,options); -); - - -Pointdata(nm,list):=Pointdata(nm,list,[]); -Pointdata(nm,list,options):=( -//help:Pointdata("1",[2,4],["Size=5"]); -//help:Pointdata("2",[[2,3],[4,1]]); - regional(name,nameL,ptlist,opstr,opcindy, - eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg); - name="pt"+nm; - nameL=name+"L"; - println("generate pointdata "+name); - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - opstr=tmp_(length(tmp)-1); - size=""; - eqL=tmp_5; - if(length(eqL)>0, - forall(eqL, - tmp=substring(#,0,1); - if(tmp=="s" % tmp=="S", - tmp=indexof(#,"="); - size=substring(#,tmp,length(#)); - ); - ); - ); - tmp=MeasureDepth(list); - if(tmp>0, // 2015.02.21 - if(tmp==1,ptlist=list,ptlist=list_1); - tmp=apply(ptlist,[textformat(Pcrd(#),5)]); - tmp1=text(tmp); - tmp2=substring(tmp1,1,length(tmp1)-1); - tmp3=tmp1; - , - ptlist=list; - tmp1=textformat(Pcrd(ptlist),5); - tmp2=tmp1; - tmp3="["+tmp1+"]"; - ); - tmp=name+"="+tmp1; - parse(tmp); - tmp=nameL+"="+tmp3; - parse(tmp); - if(Noflg<3, - GLIST=append(GLIST,name+"=Pointdata("+tmp2+")"); - ); - if(Noflg<2, - tmp=[nameL,0,opcindy]; - GCLIST=append(GCLIST,tmp); - if(Noflg==0, - if(length(size)>0, - Com2nd("Setpt("+size+")"); - ); - thick=PenThick/PenThickInit; // 16.04.09 from - if(length(size)>0,tmp1=parse(size),tmp1=1); - tmp1=max(tmp1,1)/8; - Setpen(tmp1); // 16.04.09 upto - Com2nd("Drwpt(list("+name+")"+opstr+")"); - Setpen(thick); // 16.04.09 - if(length(size)>0, - Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")"); - ); - ); - ); - ptlist; -); - -Listplot(nm,list,options):=( -//help:Listplot([A,B]); -// help:Listplot(["A","B"]); -//help:Listplot("1",[[2,1],[3,3]]); -//help:Listplot(options2=["Msg=yes"]); - regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg); - if(substring(nm,0,1)=="-", // 16.01.27 from - name=substring(nm,1,length(nm)); - , - name="sg"+nm; - ); // upto - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - eqL=tmp_5; - opcindy=tmp_(length(tmp)); - Msg=1; // 15.09.17 - forall(eqL, - tmp=substring(#,0,1); - if(Toupper(tmp)=="M", - tmp=indexof(#,"="); - tmp1=substring(#,tmp,tmp+1); // 16.06.28 - if(Toupper(tmp1)=="N", // 16.06.28 - Msg=0; - ); - ); - ); - if(Noflg<3, - if(Msg==1, - println("generate Listplot "+name); - ); - if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24 - ptlist=apply(tmp,Pcrd(#)); - tmp=name+"="+textformat(ptlist,5); - parse(tmp); - GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23 - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - tmp1=apply(list,Lcrd(#)); - tmp1; -); -Listplot(Arg1,Arg2):=( - regional(name,list,options,str); - if(isstring(Arg1), - name=Arg1; - list=Arg2; - Listplot(name,list,[]); - , - list=Arg1; - options=Arg2; - name=""; - forall(list, // 16.10.07from - name=name+#.name; - );// 16.10.07upto - Listplot(name,list,options); - ); -); -Listplot(list):=Listplot(list,[]); - -Lineplot(nm,list,options):=( -//help:Lineplot([A,B]); -//help:Lineplot("1",[[2,1],[3,3]]); - regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi, - Vec,pA,pB,Ltype,Noflg); - name="ln"+nm; - Mag=100; - Semi=""; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - opstr=tmp_(length(tmp)-1); - tmp1=tmp_6; - if(length(tmp1)>0,Mag=tmp1_1); - tmp1=tmp_7; - if(length(tmp1)>0,Semi=tmp1_1); - pA=Lcrd(list_1); pB=Lcrd(list_2); - Vec= Mag/dist(pA,pB)*(pB-pA); - if(length(Semi)==0, - Out=[pA-Vec,pA+Vec]; - , - if(Semi=="+", - Out=[pA,pA+Vec]; - , - Out=[pA-Vec,pA]; - ); - ); - if(Noflg<3, - println("generate Lineplot "+name); - tmp1=apply(Out,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")"); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - Out; -); -Lineplot(Arg1,Arg2):=( - regional(name,list,options,str); - if(isstring(Arg1), - name=Arg1; - list=Arg2; - Lineplot(name,list,[]); - , - list=Arg1; - options=Arg2; - name=""; - forall(list, // 16.10.07from - name=name+#.name; - );// 16.10.07upto - Lineplot(name,list,options); - ); -); -Lineplot(list):=Lineplot(list,[]); - -Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]); -Plotdata(name1,func,variable,options):=( -//help:Plotdata("1","sin(x)","x",["Num=100"]); -//help:Plotdata("2","x^2","x=[-1,1]"); -//help:Plotdata("3","Fout(x)","x",["out"]); - regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx, - PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa, - Ltype,Noflg,Inflg,Outflg,opstr,opcindy); - name="gr"+name1; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - Inflg=tmp_3; - Outflg=tmp_4; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - eqL=tmp_5; - Num=50; - Ec=[]; - Exfun=""; - Dc=1000; - forall(eqL, - tmp=indexof(#,"="); - tmp1=substring(#,tmp,length(#)); - opstr=opstr+",'"+#+"'"; - if(substring(#,0,1)=="N", - Num=parse(tmp1); - ); - if(substring(#,0,1)=="E", - if(substring(tmp1,0,1)=="[", - Ec=parse(tmp1); - , - Exfun=tmp1; - ); - ); - if(substring(#,0,1)=="D", - Dc=parse(tmp1); - ); - ); - if(Inflg==0 & Outflg==0, - Eps=10^(-3); - tmp=replace(func,LFmark,""); - tmp=tokenize(variable,"="); - Vname=tmp_1; - if(length(tmp)>1, - tmp=tmp_2; - tmp=parse(tmp); - x1=tmp_1; - x2=tmp_2; - , - x1=XMIN; - x2=XMAX; - ); - // dx=(x2-x2)/Num; - Ec=append(sort(Ec),10000); - Fun=Assign(func,Vname, "xx"); - Exfun=Assign(Exfun,Vname, "xx"); - PdL=[]; - Ke=1; - forall(0..Num, - xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1) - if(length(Exfun)>0, - tmp=parse(Exfun); - if(abs(tmp)0, - PdL=concat(PdL,["inf"]); - ); - ); - , - Pa=[]; - if(xx-Ec_Ke<-Eps, - Pa=[xx,parse(Fun)]; - ); - if(abs(xx-Ec_Ke)<=Eps, - if(length(PdL)>0, - if(PdL_(length(PdL))_1!="inf", - Pa=["inf"]; - ); - ); - ); - if(xx-Ec_Ke>Eps, - Pa=[xx,parse(Fun)]; - Ke=Ke+1; - ); - if(length(Pa)>0, - if(Pa_1=="inf", - PdL=concat(PdL,[Pa]); - , - if(length(PdL)==0, - PdL=[Pa]; - , - tmp=PdL_(length(PdL)); - if(tmp_1=="inf", - PdL=concat(PdL,[Pa]); - , - if(dist(tmp,Pa)tmp, - tmp1=concat(tmp1,[PdL_(tmp..(#-1))]) - ); - tmp=#+1; - ); - if(tmp0 15.05.15 - if(Noflg<3, - if(Outflg==1, - println("Output Plotdata "+name); - tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")"; - GLIST=append(GLIST,tmp); - SCIWRLIST=append(SCIWRLIST,name); - if(Inflg==0,Inflg=1); // 15.05.17 - ); - if(Inflg==1, - println("Input Plotdata "+name); - if(length(SCIRELIST)==0, - ReadOutData(Fnameout); - ); - tmp=parse(name); - if(islist(tmp), - Extractdata(name,["nodisp"]); // 12.19 - ); - tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")"; - Com1st(tmp); - SCIRELIST=append(SCIRELIST,name); - ); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - if(Inflg==1, - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - ); - ); -); - -Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]); -Paramplot(name1,funstr,variable,options):=( -//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]"); - regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num, - Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke, - Ltype,Noflg,Inflg,Outflg,opstr,opcindy); - name="gp"+name1; - Eps=10^(-4); - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - Inflg=tmp_3; - Outflg=tmp_4; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - eqL=tmp_5; - Num=50; - Ec=[]; - Exfun=""; - Dc=1000; - forall(eqL, - tmp=indexof(#,"="); - tmp1=substring(#,tmp,length(#)); - opstr=opstr+",'"+#+"'"; - if(substring(#,0,1)=="N", - Num=parse(tmp1); - ); - if(substring(#,0,1)=="E", - if(substring(tmp1,0,1)=="[", - Ec=parse(tmp1); - , - Exfun=tmp1; - ); - ); - if(substring(#,0,1)=="D", - Dc=parse(tmp1); - ); - ); - if(Inflg==0 & Outflg==0, - tmp=indexof(variable,"="); - vname=substring(variable,0,tmp-1); - str=substring(variable,tmp,length(variable)); - Rng=parse(str); - t1=Rng_1; t2=Rng_2; - dt=(t2-t1)/Num;// differs from Scilab ( / Num-1) - func=Assign(funstr,vname,"tt"); - Out=[]; - Ec=append(sort(Ec),10000); - ke=1; - forall(0..Num, - pt=[]; - tt=Rng_1+#*dt; - if(tt-Ec_ke<-Eps, - pa=parse(func); - ); - if(abs(tt-Ec_ke)<=Eps, - if(length(Out)>0, - if(Out_(length(Out))_1!="inf", - pa=["inf"]; - ); - ); - ); - if(tt-Ec_ke>Eps, - pa=parse(func); - ke=ke+1; - ); - if(length(pa)>0, - if(pa_1=="inf", - Out=append(Out,pa); - , - if(length(Out)==0, - Out=[pa]; - , - tmp=Out_(length(Out)); - if(tmp_1=="inf", - Out=append(Out,pa); - , - if(|tmp-pa|tmp, - tmp1=concat(tmp1,[Out_(tmp..(#-1))]) - ); - tmp=#+1; - ); - if(tmp0 15.05.15 - if(Noflg<3, - if(Outflg==1, - println("Output Paramplot "+name); - tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")"; - GLIST=append(GLIST,tmp); - SCIWRLIST=append(SCIWRLIST,name); - if(Inflg==0,Inflg=1); // 15.05.17 - ); - if(Inflg==1, - println("Input Paramplotdata "+name); - if(length(SCIRELIST)==0, - ReadOutData(Fnameout); - ); - tmp=parse(name); - if(islist(tmp), - Extractdata(name,["nodisp"]); // 12.19 - ); - tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")"; - Com1st(tmp); - SCIRELIST=append(SCIRELIST,name); - ); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - if(Inflg==1, - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - ); - ); -); - -Circledata(cenrad):=Circledata(cenrad,[]); -Circledata(para1,para2):=( -//help:Circledata([A,B],["Rng=[0,pi/2]"]); -//help:Circledata([A,B,C]); - regional(name,cenrad,options,str,n); - if(isstring(para1), - name=para1; - cenrad=para2; - options=[]; - , - cenrad=para1; - options=para2; - name="";// 16.10.07from - forall(cenrad, - name=name+#.name; - );// 16.10.07upto - ); - Circledata(name,cenrad,options); -); -Circledata(nm,cenrad,options):=( - regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy, - tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps); - name="cr"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - eqL=tmp_5; - Num=50; - Rg=[0,2*pi]; - forall(eqL, - tmp=indexof(#,"="); - tmp1=substring(#,tmp,length(#)); - opstr=opstr+",'"+#+"'"; - if(substring(#,0,1)=="N", - Num=parse(tmp1); - ); - if(substring(#,0,1)=="R", - Rg=parse(tmp1); - ); - ); - if(length(cenrad)==2, - Ctr=Lcrd(cenrad_1); - Ptcir=Lcrd(cenrad_2); - ra=dist(Ctr,Ptcir); - , - Eps=10^(-1); - pA=Lcrd(cenrad_1); - pB=Lcrd(cenrad_2); - pC=Lcrd(cenrad_3); - tmp=pB-pA; - tmp1=(tmp_2,-tmp_1); - tmp=pC-pB; - tmp2=(tmp_2,-tmp_1); - d1=det([tmp1,tmp2]); - d2=det([pC-pA,tmp2]); - if(abs(d1)10*Eps, - println("points are in a line"); - ra=0; - , - Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1; - ra=|pA-Ctr|; - tmp=name+"center="+Ctr; - parse(tmp); - Defvar(name+"center",Ctr); - ); - ); - if(ra>0, - Out=[]; - forall(0..Num, - Th=Rg_1+#*(Rg_2-Rg_1)/Num; - Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]); - ); - , - Out=Lineplot("1",[pA,pB],["nodata"]); - ); - if(Noflg<3, - println("generate Circledata "+name); - tmp1=apply(Out,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - if(length(cenrad)==2, - tmp=name+"=Circledata("+cenrad+opstr+")"; - , - if(ra>0, - tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")"; - , - tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")"; - ); - ); - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - Out; -); - -Framedata():=( - regional(pA,pB); - pA=LLcrd((SW+NE)/2); // 15.09.17 - pB=LLcrd(NE); - Framedata("win",[pA,pB]); -); -Framedata(list):=Framedata(list,[]); -Framedata(Arg1,Arg2):=( - regional(name,list,options,str); - if(isstring(Arg1), - name=Arg1; - list=Arg2; - Framedata(name,list,[]); - , - list=Arg1; - options=Arg2; - name="";// 16.10.07from - forall(list, - name=name+#.name; - );// 16.10.07upto - Framedata(name,list,options); - ); -); - -Framedata(nm,list,options):=( -//help:Framedata(); -//help:Framedata([A,B]); -//help:Framedata("1",[A,B]); -//help:Framedata("1",[C,dx,dy]); - regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy, - opcindy,Ltype,Noflg,cent,dx,dy); - name="fr"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - if(length(list)==2, // 15.05.12 - pA=Lcrd(list_1); pB=Lcrd(list_2); - dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2); - , - pA=Lcrd(list_1); - dx=list_2; dy=list_3; - ); - x1=pA_1-dx; x2=pA_1+dx; - y1=pA_2-dy; y2=pA_2+dy; - Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]]; - if(Noflg<3, - println("generate Framedata "+name); - tmp1=apply(Out,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")"); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - Out; -); -Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]); -Framedata(nm,cent,dx,dy,options):=( - regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg); - name="fr"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - x1=cent.x-dx; x2=cent.x+dx; - y1=cent.y-dy; y2=cent.y+dy; - Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]]; - if(Noflg<3, - println("generate Framedata "+name); - tmp1=apply(Out,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")"); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - Out; -); - -Framedata2(nm,list):=Framedata2(nm,list,[]); -Framedata2(nm,list,options):=( -//help:Framedata2("1",[A,B]); - regional(tmp,tmp1,pC,pB); - pC=(Lcrd(list_1)+Lcrd(list_2))/2; - pB=Lcrd(list_2); - Framedata(nm,[pC,pB],options); -); - -Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]); -Ovaldata(nm,Pdata,options):=( -//help:Ovaldata("1",[A,B]); -//help:Ovaldata(optios=[size]); - regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph, - opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg); - name="ov"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - opstr=tmp_(length(tmp)-1); - Rc=0.2; - tmp1=tmp_6; - if(length(tmp1)>0,Rc=tmp1_1*Rc); -// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15 - Ctr=Lcrd(Pdata_1); - if(ispoint(Pdata_2) % islist(Pdata_2), - tmp1=Lcrd(Pdata_2); - Dx=abs(tmp1_1-Ctr_1); - Dy=abs(tmp1_2-Ctr_2); - , - Dx=Pdata_2; - Dy=Pdata_3; - ); - Point=Ctr+[Dx-Rc,Dy-Rc]; - tmp1=Circledata("1",[Point,Point+[Rc,0]], - ["Rng=[0,pi/2]","Num=10","nodata"]); - tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]], - ["nodata"]); - tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]], - ["nodata"]); - Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]); - tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]); - Graph=Joincrvs("1",[Graph,tmp1],["nodata"]); - tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]], - ["nodata"]); - Graph=Joincrvs("2",[Graph,tmp2],["nodata"]); - if(Noflg<3, - println("generate Ovaldata "+name); - tmp1=apply(Graph,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - GLIST=append(GLIST, - name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30 - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - tmp1=apply(Graph,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5); - GLIST=append(GLIST, - name+"=Ovaldata("+tmp+opstr+")"); - ); - Graph; -); - -Segmark(nm,ptlist):=Segmark(nm,ptlist,[]); -Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options); -Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]); -Drawsegmark(nm,ptlist,options):=( -//help:Segmark("1",[A,B]); -//help:Segmark(options=["Type=1","Width=1","Size=1"]); - regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL, - tmp,tmp1,tmp2); - name="mrk"+nm; - pA=ptlist_1; - pB=ptlist_2; - size=0.15; - wid=0.05; - tp=1; - tmp1=Divoptions(options); - eqL=tmp1_5; - forall(eqL, - tmp=indexof(#,"="); - tmp1=substring(#,tmp,length(#)); - tmp1=parse(tmp1); - tmp=substring(#,0,1); - if(tmp=="S" % tmp=="s", - size=size*tmp1; - ); - if(tmp=="W" % tmp=="w", - wid=wid*tmp1; - ); - if(tmp=="T" % tmp=="t", - tp=tmp1; - ); - ); - mid=(pA+pB)/2; - dir=(pB-pA)/|pB-pA|; - nor=[-dir_2,dir_1]; -// nor=nor/|nor|; - if(tp==1, - tmp1=mid+size*nor; - tmp2=mid-size*nor; - Listplot(name,[tmp1,tmp2]); - ); - if(tp==2, - tmp1=mid+wid*dir+size*nor; - tmp2=mid+wid*dir-size*nor; - Listplot(name+"r",[tmp1,tmp2]); - tmp1=mid-wid*dir+size*nor; - tmp2=mid-wid*dir-size*nor; - Listplot(name+"l",[tmp1,tmp2]); - ); - if(tp==3, - tmp1=mid; - tmp2=mid+size*dir; - Circledata(name,[tmp1,tmp2]); - ); - if(tp==4, - tmp=mid+size*2/sqrt(3)*nor; - tmp1=mid+size*dir-size/sqrt(3)*nor; - tmp2=mid-size*dir-size/sqrt(3)*nor; - Listplot(name,[tmp,tmp1,tmp2,tmp]); - ); -); - -Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]); -Parabolaplot(nm,ptlist,Arg):=( - regional(rng,options); - if(isstring(Arg), - rng=Arg; - options=[]; - , - rng="[-5,5]"; - options=Arg; - ); - Parabolaplot(nm,ptlist,rng,options); -); -Parabolaplot(nm,ptlist,rng,options):=( -//help:Parabolaplot("1",[A,B,C]): -//help:Parabolaplot("1",[A,B,C],"[-5,5]"); - regional(pA,pB,pC,angle,tmp,tmp1,tmp2); - tmp1=Lcrd(ptlist_1); - tmp2=Lcrd(ptlist_3); - pB=Lcrd(ptlist_2); - tmp=(tmp2-pB)/|tmp2-pB|; - if(tmp_2>=0, - angle=arccos(tmp_1); - , - if(tmp_1>=0, - angle=arcsin(tmp_2); - , - angle=-arccos(tmp_1); - ); - ); - pA=Rotatepoint(tmp1,-angle,pB); - pC=Rotatepoint(tmp2,-angle,pB); - tmp1=1/(2*(pA_2-pB_2)); - tmp2=1/2*(pA_2+pB_2); - tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2"; - tmp=tmp+"+("+format(tmp2,5)+")"; - tmp1=parse(rng); - tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2]; - tmp2="x="+textformat(tmp1,5); - Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp")); - Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB)); -); - -Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]); -Ellipseplot(nm,ptlist,Arg):=( - regional(rng,options); - if(isstring(Arg), - rng=Arg; - options=[]; - , - rng="[0,2*pi]"; - options=Arg; - ); - Ellipseplot(nm,ptlist,rng,options); -); -Ellipseplot(nm,ptlist,rng,options):=( -//help:Ellipseplot("1",[A,B,3]); -//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]); - regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2); - pA=Lcrd(ptlist_1); - tmp1=Lcrd(ptlist_2); - if(ispoint(ptlist_3), - tmp2=Lcrd(ptlist_3); - d=|tmp2-pA|+|tmp2-tmp1|; - , - d=ptlist_3; - ); - tmp=(tmp1-pA)/|tmp1-pA|; - if(tmp_2>=0, - angle=arccos(tmp_1); - , - if(tmp_1>=0, - angle=arcsin(tmp_2); - , - angle=-arccos(tmp_1); - ); - ); - pB=Rotatepoint(tmp1,-angle,pA); - f=|pB_1-pA_1|/2; - a=d/2; - b=sqrt(d^2/4-f^2); - pM=(pA+pB)/2; - tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]"; - tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]"; - Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp")); - Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA)); -); - -Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]); -Hyperbolaplot(nm,ptlist,Arg):=( - regional(rng,options); - if(isstring(Arg), - rng=Arg; - options=[]; - , - rng="[-5/2,5/2]"; - options=Arg; - ); - Hyperbolaplot(nm,ptlist,rng,options); -); -Hyperbolaplot(nm,ptlist,rng,optionsorg):=( -//help:Hyperbolaplot("1",[A,B,C],["Num=200"]): -//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]); - regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2); - tmp=Divoptions(optionsorg); - eqL=tmp_5; - options=optionsorg; - opasy=[]; - forall(eqL, - if(Toupper(substring(#,0,1))=="A", - tmp=indexof(#,"="); - opasy=[substring(#,tmp,length(#))]; - options=remove(options,[#]); - ); - ); - pA=Lcrd(ptlist_1); - tmp1=Lcrd(ptlist_2); - if(ispoint(ptlist_3), - tmp2=Lcrd(ptlist_3); - d=abs(|tmp2-pA|-|tmp2-tmp1|); - , - d=ptlist_3; - ); - tmp=(tmp1-pA)/|tmp1-pA|; - if(tmp_2>=0, - angle=arccos(tmp_1); - , - if(tmp_1>=0, - angle=arcsin(tmp_2); - , - angle=-arccos(tmp_1); - ); - ); - pB=Rotatepoint(tmp1,-angle,pA); - f=|pB_1-pA_1|/2; - a=d/2; - b=sqrt(f^2-d^2/4); - pM=(pA+pB)/2; - tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,"; - tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]"; - Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp")); - tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,"; - tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]"; - Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp")); - tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"]; - Rotatedata(nm+"hyp",tmp,angle,append(options,pA)); - if(length(opasy)>0, - Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]); - Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]); - tmp=["ln"+nm+"asy1","ln"+nm+"asy2"]; - Rotatedata(nm+"asy",tmp,angle,append(opasy,pA)); - ); -); - -Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]); -Polygonplot(nm,ptlist,number,options):=( -//help:Polygonplot("1",[A,B],12); - regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2); - pA=Lcrd(ptlist_1); - pB=Lcrd(ptlist_2); - rr=|pB-pA|; - tmp=(pB-pA)/rr; - if(tmp_2>=0, - angle=arccos(tmp_1); - , - if(tmp_1>=0, - angle=arcsin(tmp_2); - , - angle=-arccos(tmp_1); - ); - ); - ptL=[]; - forall(0..number, - tmp=angle+#*2*pi/number; - tmp1=pA+rr*[cos(tmp),sin(tmp)]; - if(#>0 & #0, - Putpoint(nm,tmp_ptno); - , - err("No intersect point"); - ); -); - -Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]); -Arrowheaddata(point,direction,options):=( -//help:Arrowheaddata(A,B); - regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB, - pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy); - Eps=10^(-3); - pP=point; - Ookisa=0.2*YaSize; - Hiraki=YaAngle; - Futosa=0; - Str=YaStyle; - tmp=Divoptions(options); - tmp1=tmp_6; - if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1); - if(length(tmp1)>1, - tmp=tmp1_2; - if(tmp<5, - Hiraki=Hiraki*tmp; - , - Hiraki=tmp; - ); - ); - Flg=0; - Hiraki=Hiraki*pi/180; - if(isstring(direction),Houkou=parse(direction),Houkou=direction); - if(MeasureDepth(Houkou)==2,Houkou=Houkou_1); - if(islist(Houkou_1), -// pP=Lcrd(pP); -// pP=Doscaling(pP); -// Houkou=Dosscaling(Houkou); - pP=Pcrd(pP); - scy=SCALEY; - SCALEY=1; - tmp=Nearestpt(pP,Houkou); - pA=tmp_1; - rF=floor(tmp_2); - if(rF==1, - if(|Ptend(Houkou)-Ptstart(Houkou)|0, - Houkou=pP-tmp_1_1; - Flg=1; - ); - pA=pB; - ); - ); - SCALEY=scy; - if(Flg==0, - println("Arrowhead may be too large (no intersect)"); - Flg=2; - ); - if(Flg==1, - Houkou=Unscaling(Houkou); - pP=Unscaling(pP); - ); - ); - if(Flg<2, -// pP=Doscaling(pP); -// Houkou=Doscaling(Houkou); - pP=Pcrd(pP); - if(!ispoint(point), - Houkou=Pcrd(Houkou); - ); -// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou)); - Ev=-1/|Houkou|*Houkou; - Ev=Lcrd(Ev); - Nv=[-Ev_2, Ev_1]; - if(indexof(Str,"c")>0, - pP=pP-0.5*Ookisa*cos(Hiraki)*Ev; - ); - if(indexof(Str,"b")>0, - pP=pP-Ookisa*cos(Hiraki)*Ev; - ); - pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv; - pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv; - list=[pA,pP,pB]; - list=apply(list,LLcrd(#)); -// Out=Unscaling(Out); - list; - ); -); - -Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]); -Arrowhead(point,Houkou,options):=( -//help:Arrowhead(B,B-A,[1.5,30]); -//help:Arrowhead(A,"gr1"); - // global ArrowheadNumber - regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list); - name="arh"+text(ArrowheadNumber); - ArrowheadNumber=ArrowheadNumber+1; - ptstr=textformat(point,5); - if(isstring(Houkou), // 15.01.11 - tmp=parse(Houkou); - if(MeasureDepth(tmp)<2, - hostr=Houkou; - , - hostr=Houkou+"(1)"; - ); - , - if(ispoint(point), - hostr=textformat(LLcrd(Houkou),5); - , - hostr=textformat(Houkou,5); - ); - ); - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - reL=tmp_6; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - list=Arrowheaddata(point,Houkou,options); - if(Noflg<3, -// println("generate Arrowhead "+name); - tmp1=apply(list,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); -// GLIST=append(GLIST,name+"=Listplot("+list+")"); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(1)+Ltype,name); - , -// if(Noflg==1,Ltype=0); - Ltype=0; - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - if(Noflg==0, - if(length(reL)<3, // 16.04.09 from - forall(1..(2-length(reL)), - opstr=opstr+",1"; - ); - tmp=PenThick/PenThickInit; - opstr=opstr+","+text(tmp); - ); // 16.04.09 upto - Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")"); - ); -); - -Arrowdata(ptlist):=Arrowdata(ptlist,[]); -Arrowdata(Arg1,Arg2):=( - regional(tmp,nm,ptlist,flg,pA,pB,options); - flg=0; - if(isstring(Arg1), - nm=Arg1; - ptlist=Arg2; - Arrowdata(nm,ptlist,[]); - flg=1; - ); - if(flg==0, - tmp=MeasureDepth(Arg1); - if(tmp==0, - pA=Arg1; - pB=Arg2; - Arrowdata(pA,pB,[]); - , - ptlist=Arg1; - options=Arg2; - nm=text(ArrowlineNumber); - ArrowlineNumber=ArrowlineNumber+1; - Arrowdata(nm,ptlist,options); - ); - ); -); -Arrowdata(Arg1,Arg2,options):=( -//help:Arrowdata([A,B],[2,10]); - regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size, - flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos); - Retflg=0; - Noflg=0; - Ltype=0; - if(!isstring(Arg1), - pA=Arg1; - pB=Arg2; - Arrowdata(pA,pB,options,"old"); - Retflg=1; - ptlist=[pA,pB]; - ); - if(Retflg==0, - nm=Arg1; - ptlist=Arg2; - name="ar"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - realL=tmp_6; - strL=tmp_7; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - size=1; // 15.06.11 - if(length(realL)>0, - size=realL_1; - ); - tmp2=select(strL,indexof(#,"l")>0); // 16.04.09 - if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09 - segpos=1; - tmp1=tmp_5; - if(length(tmp1)>2, - segpos=tmp1_3; - ); - if(Noflg<3, -// println("generate Arrowdata "+name); - tmp1=apply(ptlist,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - tmp1=Pcrd(ptlist_1);//16.10.20 - tmp2=Pcrd(ptlist_2);//16.10.20 - if(lineflg==0, // 16.04.09 from - tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11 - , - tmp=tmp2; - ); // 16.04.09 upto - tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20 - GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")"); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - tmp=textformat(ptlist,5); - tmp=substring(tmp,1,length(tmp)-1); - tmp1=indexof(tmp,"],["); - if(tmp1>0, - pA=substring(tmp,0,tmp1); - pB=substring(tmp,tmp1+1,length(tmp)); - , - tmp1=indexof(tmp,","); - pA=substring(tmp,0,tmp1-1); - pB=substring(tmp,tmp1,length(tmp)); - ); - tmp1="Lcrd("+pA+")+" - +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))"; - tmp1=parse(tmp1); - tmp2="Lcrd("+pB+")-Lcrd("+pA+")"; - tmp2=parse(tmp2); - Arrowhead(tmp1,tmp2,options); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - ); - ptlist; -); -Arrowdata(pA,pB,options,str):=( - regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy); - Astr=textformat(pA,5); - Bstr=textformat(pB,5); - name="ar"+pA.name+pB.name; - println("generate Arrow "+name); - opstr=""; - opcindy=""; - forall(options, - if(isstring(#), - if(indexof(#,"->")>0, - opcindy=opcindy+","+#; - , - tmp="'"+#+"'"; - ); - , - tmp=text(#); - ); - opstr=opstr+","+tmp; - ); - ptA=Lcrd(pA); - ptB=Lcrd(pB); - Arrowheaddata(ptB,ptB-ptA,options); - tmp="connect("+textformat([ptA,ptB],5) - +",linecolor->"+text(KCOLOR)+opcindy+");"; - parse(tmp); // 14.11.17 - Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04 -); - -Anglemark(plist):=Anglemark(plist,[]); -Anglemark(Arg1,Arg2):=( // 2015.04.28 from - regional(nm,plist,options,tmp); - if(isstring(Arg1), - nm=Arg1; - plist=Arg2; - Anglemark(nm,plist,[]); - , - plist=Arg1; - options=Arg2; - tmp=textformat(plist,5); - tmp=replace(tmp,",",""); - nm=substring(tmp,1,length(tmp)-1); - Anglemark(nm,plist,options); - ); -); // upto -Anglemark(nm,plist,options):=( -//help:Anglemark([A,B,C],["E=\theta",2]); -//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]); -//help:Anglemark(options=["E/L=(sep,)letter",size]); - regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos, - Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg); - name="ag"+nm; - ra=0.5; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - eqL=tmp_5; - realL=tmp_6; - Bname=""; - Brat=1.5; - Num=20; - if(length(realL)>0, - ra=realL_1*ra; - opstr=opstr+","+text(realL_1); - ); - forall(eqL, - if(substring(#,0,1)=="L",Bname="Letter("); - if(substring(#,0,1)=="E",Bname="Expr("); - Bpos="md"+name; - Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29 - tmp=substring(#,indexof(#,"="),length(#)); - tmp1=indexof(tmp,","); - Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")"; - if(tmp1>0, - Brat=parse(substring(tmp,0,tmp1-1)); - ); - ); - pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3); - Ctr=Lcrd(pA); - sab=pB-pA; - sac=pC-pA; - Rg=[arctan2(sab)+0,arctan2(sac)+0]; - if(Rg_20, - Th=(Rg_1+Rg_2)/2; - tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)]; - tmp="Defvar("+Dq+Bpos+"="; - tmp=tmp+textformat(tmp1,5)+Dq+");"; - parse(tmp); - parse(Bname); - ); - if(Noflg<3, - println("generate anglemark "+name); - tmp1=apply(Out,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - tmp=textformat(plist,5); - tmp1=substring(tmp,1,length(tmp)-1); - tmp=name+"=Anglemark("+tmp1+opstr+")"; - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - Out; -); - -Paramark(plist):=Paramark(plist,[]); -Paramark(plist,options):=( -//help:Paramark([A,B,C],["E=\theta"]); - regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos, - Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy); - tmp=textformat(plist,5); - tmp=replace(tmp,",",""); - tmp=substring(tmp,1,length(tmp)-1); - name="pm"+tmp; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - eqL=tmp_5; - realL=tmp_6; - ra=0.5; - Bname=""; - Brat=1.2; - if(length(realL)>0, - tmp=realL_1; - ra=tmp*ra; - opstr=opstr+","+text(tmp); - ); - forall(eqL, - if(substring(#,0,1)=="L",Bname="Letter("); - if(substring(#,0,1)=="E",Bname="Expr("); - Bpos="md"+name; - Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq; - tmp=substring(#,indexof(#,"="),length(#)); - tmp1=indexof(tmp,","); - Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")"; - if(tmp1>0, - Brat=parse(substring(tmp,0,tmp1-1)); - ); - ); - pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3); - Ctr=Lcrd(pA); - Out=[]; - Out=append(Out,pA+ra*(pB-pA)/|pB-pA|); - Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|); - Out=append(Out,pA+ra*(pC-pA)/|pC-pA|); - if(length(Bname)>0, - tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|; - tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");"; - parse(tmp); - parse(Bname); - ); - if(Noflg<3, - println("generate paramark "+name); - tmp1=apply(Out,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1); - tmp=name+"=Paramark("+tmp1+opstr+")"; - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - Out; -); - -MakeBowdata(pA,pB,Hgt):=( - regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA); - angle=arctan2(pB-pA)+0; - pB2=Rotatepoint(pB,-angle,pA); - tmp=Lcrd(pA); - pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt]; - dMA=|tmp-pB2|/2; - ra=(dMA^2+Hgt^2)/(2*Hgt); - pC2=[pH2_1,pB2_2+(ra-Hgt)]; - pC=Rotatepoint(pC2,angle,pA); - Th1=arctan2(pA-pC2)+angle; - Th2=arctan2(pB2-pC2)+angle; - [pC,ra,Th1,Th2]; -); - -Bowdata(nm,plist,options):=( -//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]); -//help:Bowdata([A,B],["Expr=t0n3,a"]); -//help:Bowdata([A,B],["Exprrot=t0n2r,a"]); - regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL, - Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC, - Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev); - name="bw"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - eqL=tmp_5; - realL=tmp_6; - pA=Lcrd(plist_1); pB=Lcrd(plist_2); - Hgt=1/2*|pB-pA|*0.2; - Cut=0; - Num=24; - Bname=""; - Tmov=0;//16.11.01from - Nmov=0; - Bmov=""; - rev=0;//16.11.01upto - if(length(realL)>0, - Hgt=realL_1*Hgt; // 15.04.12 - if(length(realL)>1,Cut=realL_2); - ); - forall(eqL, - tmp=substring(#,0,1); - if(tmp=="L" % tmp=="l", - if(indexof(#,"rot")>0, - Bname="Letterrot("; - , - Bname="Letter("; - ); - ); - if(tmp=="E" % tmp=="e", - if(indexof(#,"rot")>0, - Bname="Exprrot("; - , - Bname="Expr("; - ); - ); - tmp=indexof(#,"="); - Bops=substring(#,tmp,length(#)); // 16.11.01 - ); - Ydata=MakeBowdata(pA,pB,Hgt); - pC=Ydata_1; - ra=Ydata_2; - Th=(Ydata_3+Ydata_4)*0.5; - BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)]; - Bpos="md"+name; // 16.10.31from(moved) - tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");"; - parse(tmp);// 16.10.31upto(moved) - if(length(Bname)>0, //16.11.01from - tmp=indexof(Bops,","); - if(tmp>0, - tmp1=substring(Bops,0,tmp-1); - if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0, - Bmov=tmp1; - Bops=substring(Bops,tmp,length(Bops)); - ); - ); - if(length(Bmov)>0, - tmp=indexof(Bmov,"t"); - if(tmp>0, - tmp1=indexof(Bmov,"n"); - Tmov=parse(substring(Bmov,tmp,tmp1-1)); - tmp=indexof(Bmov,"r"); - if(tmp>0, - Nmov=parse(substring(Bmov,tmp1,tmp-1)); - rev=1; - , - Nmov=parse(substring(Bmov,tmp1,length(Bmov))); - ); - ); - ); - Bname=Bname+Bpos;//16.11.01 - if(abs(Tmov)+abs(Nmov)>0, - tmp=Pcrd(pA)-Pcrd(pB); - tmp1=1/norm(tmp)*tmp; - tmp2=[-tmp1_2,tmp1_1]; - tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2); - tmp=LLcrd(tmp); - Bname=Bname+"+"+text(tmp); - ); - Bname=Bname+","; - if(indexof(Bname,"rot")>0, - if(rev==1,tmp=pB-pA,tmp=pA-pB); - Bname=Bname+textformat(tmp,5)+","; - , - Bname=Bname+Dq+"c"+Dq+","; - ); - Bname=Bname+Dq+Bops+Dq+")"; - parse(Bname); - );//16.11.01upto - if(Cut==0, - Th1=Ydata_3; - Th2=Ydata_4; - Out=[]; - forall(0..Num, - tmp=Th1+#*(Th2-Th1)/Num; - Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]); - ); - , - Th1=Ydata_3; - Th2=Th-Cut/(2*ra); - tmp1=[]; - forall(0..Num/2, - tmp=Th1+#*(Th2-Th1)/(Num/2); - tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]); - ); - Th1=Th+Cut/(2*ra); - Th2=Ydata_4; - tmp2=[]; - forall(0..Num/2, - tmp=Th1+#*(Th2-Th1)/(Num/2); - tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]); - ); - Out=[tmp1,tmp2]; - ); - if(Noflg<3, - println("generate bowdata "+name+" and "+Bpos);//16.10.31 - if(MeasureDepth(Out)==1,Out=[Out]); - tmp1=[]; - forall(Out,tmp2, - tmp=apply(tmp2,Pcrd(#)); - tmp1=append(tmp1,tmp); - ); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1); - tmp=name+"=Bowdata("+tmp1+opstr+")"; - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); -); - -Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]); -Deqplot(nm,deq,rng,Arg1,Arg2):=( - regional(initt,initf,options); - if(isreal(Arg1) & length(Arg1)==1, - initt=Arg1; - initf=Arg2; - options=[]; - , - initf=Lcrd(Arg1); - initt=initf_1; - options=Arg2; - ); - Deqplot(nm,deq,rng,initt,initf,options); -); -Deqplot(nm,deq,rng,initt,initf,options):=( - regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2, - tmp,tmp1,tmp2,tmp3,tmp4); - tmp=tokenize(deq,"="); - tmp1=tmp_1; - tmp2=tmp_2; - tmp3=tokenize(tmp1,"`"); - if(length(tmp3)==2, - if(indexof(tmp1,"[")>0, - Deqplot(nm,deq,rng,initt,initf,options,[2,3]); - , - if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]"); - tmp=tokenize(rng2,"="); - deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]"; - rng2="t="+tmp_2; - if(isreal(initf) & length(initf)==1, - initf2=[initt,initf]; - initt2=initt; - , - initf2=Lcrd(initf)); - initt2=initf2_1; - Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]); - ); - , - name="de"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - eqL=tmp_5; - opcindy=tmp_9; - opstr=""; - forall(eqL, - if(Toupper(substring(#,0,1))=="N", - tmp=indexof(#,"="); - tmp1="N="+substring(#,tmp,length(#)); - opstr=opstr+",'"+tmp1+"'"; - ); - ); - if(Noflg<1, - if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]"); - var2="d"+tmp3_1; - deq2="["+tmp3_1+","+var2+"]`=["; - tmp=replace(tmp2,tmp3_1+"`",var2); - deq2=deq2+var2+","+tmp+"]"; - Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]); - parse(tmp); - tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',"; - tmp=tmp+initt+","+initf+opstr+")"; - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - parse("de"+nm); - ); - ); -); -Deqplot(nm,deq,rng,initt,initf,options,Sel):=( -//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]); -//help:Deqplot("1","y``=-y","x",0, [1,0]); -//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]); - regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num, - outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg, - kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2); - name="de"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - Inflg=tmp_3; - Outflg=tmp_4; - eqL=tmp_5; - strL=tmp_7; -// opstr=tmp_(length(tmp)-1); - opstr=""; - opcindy=tmp_(length(tmp)); - outstr=""; - forall(strL, - tmp=Toupper(substring(#,0,1)); - if(tmp=="S", - outstr="Sci"; - ); - ); - Num=50; - forall(eqL, - tmp=indexof(#,"="); - tmp2=substring(#,0,1); - tmp2=Toupper(tmp2); - tmp1=substring(#,tmp,length(#)); - opstr=opstr+",'"+tmp2+"="+tmp1+"'"; - if(Toupper(substring(#,0,1))=="N", - Num=parse(tmp1); - ); - ); - if(outstr=="Sci", - if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1); - ); - if(Noflg<3, - if(outstr=="Sci", - if(Outflg==1, - println("Output Deqplot "+name); - SCIWRLIST=append(SCIWRLIST,name); - ); - if(Inflg==1, - println("Input Deqplot "+name); - if(length(SCIRELIST)==0, - ReadOutData(Fnameout); - ); - tmp=parse(name); - if(islist(tmp), - Extractdata(name,["nodisp"]); // 12.19 - ); - SCIRELIST=append(SCIRELIST,name); - ); - , - Eps=10^(-3); - Inf=10^3; - tmp=tokenize(deq,"="); - tmp1=tmp_1; - func=tmp_2; - tmp=indexof(tmp1,","); - xf=substring(tmp1,1,tmp-1); - yf=substring(tmp1,tmp,length(tmp1)); - tmp=indexof(yf,"]"); - yf=substring(yf,0,tmp-1); - tmp=tokenize(rng,"="); - Vname=tmp_1; - tmp=parse(tmp_2); - t1=tmp_1; - t2=tmp_2; - tmp="funP("+Vname+","+xf+","+yf+"):="+func+";"; - parse(tmp); - tmp=tokenize(func,","); - tmp1="-("+substring(tmp_1,1,length(tmp_1))+")"; - tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")"; - tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];"; - parse(tmp); - dt=(t2-t1)/Num; - tt=initt; - tmp=Lcrd(initf); - x0=tmp_1; - y0=tmp_2; - pdL=[[tt,x0,y0]]; - flg=0; - forall(1..floor((t2-initt)/dt), - if(flg==0, - kl1=dt*funP(tt,x0,y0); - kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2); - kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2); - kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14 - tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6; - x0=tmp1_1; - y0=tmp1_2; - tt=initt+#*dt; - pdL=append(pdL,[tt,x0,y0]); - if(|tmp1|>Inf,flg=1); - ); - ); - tt=initt; - tmp=Lcrd(initf); - x0=tmp_1; - y0=tmp_2; - flg=0; - forall(1..floor((initt-t1)/dt), - if(flg==0, - kl1=dt*funN(tt,x0,y0); - kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2); - kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2); - kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2); - tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6; - x0=tmp1_1; - y0=tmp1_2; - tt=initt-#*dt; - pdL=prepend([tt,x0,y0],pdL); - if(|tmp1|>Inf,flg=1); - ); - ); - println("Generate Deqplot "+name); - pdL=apply(pdL,#_Sel); - tmp1=apply(pdL,Pcrd(#)); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - ); - if(Noflg<1, - tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',"; - tmp=tmp+initt+","+initf+opstr+")"; - GLIST=append(GLIST,tmp); - ); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - if(outstr=="Sci", - if(Inflg==1, - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - , - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - pdL; - ); - ); -); - -Enclosing(nm,plist):=EnclosingS(nm,plist); -Enclosing(nm,plist,options):=EnclosingS(nm,plist,options); -EnclosingS(nm,plist):=EnclosingS(nm,plist,[]); -EnclosingS(nm,plist,options):=( -//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]); - regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt, - t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy); - name="en"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - eqL=tmp_5; - realL=tmp_6; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - Eps=10^(-3); - EEps=0.1; - Start=[]; - Flg=0; - forall(realL, - if(isList(#) % ispoint(#), - Start=Lcrd(#); // 15.09.12 - , - Flg=Flg+1; - if(Flg==1,Eps=#); - if(Flg==2,EEps=#); - ); - ); -// tmp1=concat([Eps,EEps],eqL); // 15.04.06 - Fdata=plist_1; - Gdata=plist_(length(plist)); - KL=IntersectcrvsPp(Fdata,Gdata); - if(length(KL)==1, - pt=KL_1_1; - t1=KL_1_2; - ); - if(length(KL)==0, - if(Numptcrv(Fdata)>Numptcrv(Gdata), - tmp=Nearestpt(Fdata,Gdata); - pt=tmp_1; - t1=tmp_2; - , - tmp=Nearestpt(Gdata,Fdata); - pt=tmp_3; - t1=tmp_4; - ); - ); - if(length(KL)>1, - if(Start==[], - err("No Start Point"); - , - pt=KL_1_1; - t1=KL_1_2; - tmp=|pt-Start|; - forall(2..length(KL),ii, // 15.04.20 - tmp1=KL_ii_1; - tmp2=|tmp1-Start|; // 15.04.20 - if(tmp21, pt=qt); - if(nn==length(plist), - qt=Start; - , - Flg=0; - Gdata=plist_(nn+1); -// tmp1=concat([Eps,EEps],eqL); // 15.04.06 - KL=IntersectcrvsPp(Gdata,Fdata); - if(length(KL)==1, - tmp=KL_1; - qt=KL_1_1; - t3=KL_1_2; - Flg=10; - ); - if(length(KL)==0,Flg=1); - if(length(KL)>1, - tmp1=KL_1_1; - tmp2=KL_2_1; - tmp=|tmp1-tmp2|; - if(tmpNumptcrv(Gdata), - tmp=Nearestpt(Fdata,Gdata); - qt=tmp_1; - t3=tmp_4; - Flg=10; - , - tmp=Nearestpt(Gdata,Fdata); - qt=tmp_3; - t3=tmp_2; - Flg=10; - ); - ); - if(Flg<10, - t2=10^6; //%inf; - forall(1..length(KL),ii, - tmp1=KL_ii_1; - tmp=KL_ii_3; - tmp2=ParamonCurve(tmp1,tmp,Fdata); - tmp3=KL_ii_2; - if(tmp2>t1+Eps & tmp21, - tmp1=tmp1+#+","; - , - tmp1=tmp1+Dq+#+Dq+","; - ); - , - tmp1=tmp1+"Listplot("+textformat(#,5)+"),"; - ); // upto 16.01.24 - ); - Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")"; - Com2nd(Str); -); - - -//help:start(); - -Rotatepoint(point,Theta,ctr):=( -//help:Rotatepoint(A,2*pi/3,B); - regional(X1,X2,Y1,Y2,Cx,Cy,tmp); - tmp=Lcrd(point); - X1=tmp_1; Y1=tmp_2; - tmp=Lcrd(ctr); - Cx=tmp_1; Cy=tmp_2; - X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta); - Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta); - [X2,Y2]; -); - -Translatepoint(point,mov):=( -//help:Translatepoint(A,[2,3]); - regional(X1,X2,Y1,Y2,Cx,Cy,tmp); - tmp=Lcrd(point); - X1=tmp_1; Y1=tmp_2; - tmp=Lcrd(mov); - Cx=tmp_1; Cy=tmp_2; - X2=X1+Cx; - Y2=Y1+Cy; - [X2,Y2]; -); - -Scalepoint(point,ratio,center):=( -//help:Scalepoint(A,[3,2],[0,0]); - regional(X1,X2,Y1,Y2,Cx,Cy,tmp); - tmp=Lcrd(point); - X1=tmp_1; Y1=tmp_2; - tmp=Lcrd(center); - Cx=tmp_1; Cy=tmp_2; - X2=Cx+ratio_1*(X1-Cx); - Y2=Cy+ratio_2*(Y1-Cy); - [X2,Y2]; -); - -Reflectpoint(point,symL):=( -//help:Reflectpoint(A,B); -//help:Reflectpoint(A,[[2,3]]); -//help:Reflectpoint(A,[C,E]);\\ - regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp); - tmp=Lcrd(point); - X1=tmp_1; Y1=tmp_2; - Pt1=Lcrd(symL_1); - if(length(symL)==1, - Pt2=Pt1; - , - Pt2=Lcrd(symL_2); - ); - Us=Pt2_1-Pt1_1; - Vs=Pt2_2-Pt1_2; - if(Pt1==Pt2, - X2=2*Pt1_1-X1; - Y2=2*Pt1_2-Y1; - , - X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1 - -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2); - Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1 - +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2); - ); - [X2,Y2]; -); - -Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]); -Rotatedata(nm,plist,angle,options):=( -//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]); - regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL, - opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name); - name="rt"+nm; - Pt=[0,0]; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - tmp1=tmp_6; - if(length(tmp1)>0,Pt=Lcrd(tmp1_1)); - pdata=plist; - if(isstring(pdata),pdata=[pdata]); - if(!isstring(pdata_1) & MeasureDepth(pdata)==1, - pdata=[pdata]; - ); - if(isstring(angle),Theta=parse(angle),Theta=angle); - Cx=Pt_1; Cy=Pt_2; - PdL=[]; - forall(pdata,Njj, - if(isstring(Njj),Kj=parse(Njj),Kj=Njj); - if(MeasureDepth(Kj)==1,Kj=[Kj]); - tmp2=[]; - forall(Kj,Nj, - tmp1=[]; - forall(Nj, - tmp=LLcrd(#); - X1=tmp_1; - Y1=tmp_2; - X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta); - Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta); - tmp1=concat(tmp1,[[X2,Y2]]); - ); - tmp2=concat(tmp2,[tmp1]); - ); - PdL=concat(PdL,tmp2); - ); - if(Noflg<3, - println("generate Rotatedata "+name); - tmp1=[]; - forall(PdL,tmp2, - tmp=apply(tmp2,Pcrd(#)); - tmp1=append(tmp1,tmp); - ); - if(length(tmp1)==1,tmp1=tmp1_1); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); -// tmp1=textformat(plist,5); - tmp1=text(plist); // 15.10.15 - tmp1=replace(tmp1,"[","list("); - tmp1=replace(tmp1,"]",")"); - tmp=name+"=Rotatedata("+tmp1+"," - +textformat(angle,5)+","+textformat(Pt,5)+")"; - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - PdL; -); - -translatedata(nm,plist,mov):=translatedata(nm,plist,mov,[]); -translatedata(nm,plist,mov,options):=( -//help:translatedata("1",["gr1"],[1,2]); - regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj, - opcindy,X2,Y2,Ltype,Noflg,name); - name="tr"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - pdata=plist; - if(isstring(pdata),pdata=[pdata]); - if(!isstring(pdata_1) & MeasureDepth(pdata)==1, - pdata=[pdata]; - ); - tmp=Lcrd(mov); - Cx=tmp_1; Cy=tmp_2; - PdL=[]; - forall(pdata,Njj, - if(isstring(Njj),Kj=parse(Njj),Kj=Njj); - if(MeasureDepth(Kj)==1,Kj=[Kj]); - tmp2=[]; - forall(Kj,Nj, - tmp1=[]; - forall(Nj, - tmp=LLcrd(#); - X2=tmp_1+Cx; - Y2=tmp_2+Cy; - tmp1=concat(tmp1,[[X2,Y2]]); - ); - tmp2=concat(tmp2,[tmp1]); - ); - PdL=concat(PdL,tmp2); - ); - if(Noflg<3, - println("generate translatedata "+name); - tmp1=[]; - forall(PdL,tmp2, - tmp=apply(tmp2,Pcrd(#)); - tmp1=append(tmp1,tmp); - ); - if(length(tmp1)==1,tmp1=tmp1_1); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); -// tmp1=textformat(plist,5); - tmp1=text(plist); // 15.10.15 - tmp1=replace(tmp1,"[","list("); - tmp1=replace(tmp1,"]",")"); - tmp=name+"=translatedata("+tmp1+","+textformat(mov,5)+")"; - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - PdL; -); - -Scaledata(nm,plist,ratioV):=( - regional(tmp); - tmp=Lcrd(ratioV); - Scaledata(nm,plist,tmp_1,tmp_2,[]); -); -Scaledata(nm,plist,Arg1,Arg2):=( -//help:Scaledata("1","crAB",3,2,[[0,0]]); - regional(tmp,options); - if(islist(Arg2), - tmp=Lcrd(Arg1); - options=Arg2; - Scaledata(nm,plist,tmp_1,tmp_2,options); - , - Scaledata(nm,plist,Arg1,Arg2,[]); - ); -); -Scaledata(nm,plist,rx,ry,options):=( - regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL, - opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name); - name="sc"+nm; - Pt=[0,0]; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - tmp1=tmp_6; - if(length(tmp1)>0, - Pt=Lcrd(tmp1_1); - ); - pdata=plist; - if(isstring(pdata),pdata=[pdata]); - if(!isstring(pdata_1) & MeasureDepth(pdata)==1, - pdata=[pdata]; - ); - Cx=Pt_1; Cy=Pt_2; - PdL=[]; - forall(pdata,Njj, - if(isstring(Njj),Kj=parse(Njj),Kj=Njj); - if(MeasureDepth(Kj)==1,Kj=[Kj]); - tmp2=[]; - forall(Kj,Nj, - tmp1=[]; - forall(Nj, - tmp=LLcrd(#); - X2=Cx+rx*(tmp_1-Cx); - Y2=Cy+ry*(tmp_2-Cy); - tmp1=concat(tmp1,[[X2,Y2]]); - ); - tmp2=concat(tmp2,[tmp1]); - ); - PdL=concat(PdL,tmp2); - ); - if(Noflg<3, - println("generate Scaledata "+name); - tmp1=[]; - forall(PdL,tmp2, - tmp=apply(tmp2,Pcrd(#)); - tmp1=append(tmp1,tmp); - ); - if(length(tmp1)==1,tmp1=tmp1_1); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); - tmp1=text(plist); // 15.10.15 - tmp1=replace(tmp1,"[","list("); - tmp1=replace(tmp1,"]",")"); - tmp=name+"=Scaledata("+tmp1+"," - +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")"; - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - PdL; -); - -Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]); -Reflectdata(nm,plist,symL,options):=( -//help:Reflectdata("1","crAB",[C]); - regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL, - opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name); - name="re"+nm; - Pt=[0,0]; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opcindy=tmp_(length(tmp)); - pdata=plist; - if(isstring(pdata),pdata=[pdata]); - if(!isstring(pdata_1) & MeasureDepth(pdata)==1, - pdata=[pdata]; - ); - Pt1=Lcrd(symL_1); - if(length(symL)==1, - Pt2=Pt1; - , - Pt2=Lcrd(symL_2); - ); - Us=Pt2_1-Pt1_1; - Vs=Pt2_2-Pt1_2; - PdL=[]; - forall(pdata,Njj, - if(isstring(Njj),Kj=parse(Njj),Kj=Njj); - if(MeasureDepth(Kj)==1,Kj=[Kj]); - tmp2=[]; - forall(Kj,Nj, - tmp1=[]; - forall(Nj, - tmp=LLcrd(#); - X1=tmp_1; - Y1=tmp_2; - if(Pt1==Pt2, - X2=2*Pt1_1-X1; - Y2=2*Pt1_2-Y1; - , - X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1 - -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2); - Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1 - +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2); - ); - tmp1=concat(tmp1,[[X2,Y2]]); - ); - tmp2=concat(tmp2,[tmp1]); - ); - PdL=concat(PdL,tmp2); - ); - if(Noflg<3, - println("generate Reflectdata "+name); - tmp1=[]; - forall(PdL,tmp2, - tmp=apply(tmp2,Pcrd(#)); - tmp1=append(tmp1,tmp); - ); - if(length(tmp1)==1,tmp1=tmp1_1); - tmp=name+"="+textformat(tmp1,5); - parse(tmp); -// tmp1=textformat(plist,5); - tmp1=text(plist); // 15.10.15 - tmp1=replace(tmp1,"[","list("); - tmp1=replace(tmp1,"]",")"); - tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")"; - GLIST=append(GLIST,tmp); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - PdL; -); - -Mksegments():=Mksegments([]); -Mksegments(options):=( -//help:Mksegments(); - regional(segstr,p,q,r,tmp1,tmp2,tmp3); - forall(allsegments(),seg, - str=text(inspect(seg,"definition")); - tmp1=indexof(str,"("); - tmp2=indexof(str,";"); - tmp3=indexof(str,")"); - p=substring(str,tmp1,tmp2-1); - q=substring(str,tmp2,tmp3-1); - Listplot([parse(p),parse(q)]); - ); -); - -Mkcircles():=Mkcircles([]); -Mkcircles(options):=( -//help:Mkcircles(): - regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4); - forall(allcircles(),cir, - str=text(inspect(cir,"definition")); - tmp1=indexof(str,"("); - tmp2=indexof(str,";"); - tmp3=indexof(str,")"); - tmp4=indexof(str,";",tmp2+1); - if(tmp4==0, - p=substring(str,tmp1,tmp2-1); - q=substring(str,tmp2,tmp3-1); - Circledata([parse(p),parse(q)]); - , - p=substring(str,tmp1,tmp2-1); - q=substring(str,tmp2,tmp4-1); - r=substring(str,tmp4,tmp3-1); - Circledata([parse(p),parse(q),parse(r)]); - ); - ); -); - -Makesciarg(arglist):=( - regional(str,tmpstr); - str=""; - forall(arglist, - if(isstring(#), - tmpstr=Dq+#+Dq; - , - tmpstr=textformat(#,5); - ); - str=str+tmpstr+","; - ); - str=substring(str,0,length(str)-1); - str; -); - -Setax(arglist):=( -//help:Setax(["l","x","e","y","n","O","sw"]); -//help:Setax([7,"nw"]); - regional(tmp); - tmp=Makesciarg(arglist); - Com1st("Setax("+tmp+")"); -); - -Htickmark(arglist):=( -//help:Htickmark([1,"1",2,"sw","2"]); - regional(tmp); - tmp=""; - tmp=Makesciarg(arglist); - Com2nd("Htickmark("+tmp+")"); -); - -Vtickmark(arglist):=( -//help:Vtickmark([1,"1",2,"sw","2"]); - regional(tmp); - tmp=Makesciarg(arglist); - Com2nd("Vtickmark("+tmp+")"); -); - -Drwxy():=( -//help:Drwxy(); - Com2nd("Drwxy()"); - Addax(0); // 16.01.21 -); - -Drwpt(pstr):=Drawpoint(pstr); -Drwpt(ptlist,nn):=( // 16.03.05 from -//help:Drwpt(A); -//help:Drwpt("[1,1],0"); -//help:Drwpt(A,0); -//help:Drwpt([1,2],0); - Drawpoint(ptlist,nn); -); -Drawpoint(pstr):=( - if(isstring(pstr), - println("Drwpt : "+pstr); - Com2nd("Drwpt("+pstr+")"); - , - Drawpoint(pstr,1); - ); -); -Drawpoint(ptlistorg,nn):=( - regional(ptlist,thick,tmp,tmp1); - println("Drwpt : "+text(ptlistorg)); - if(islist(ptlistorg), - if(MeasureDepth(ptlistorg)==1, - ptlist=ptlistorg - , - ptlist=[ptlistorg] - ); - , - ptlist=[ptlistorg] - ); - thick=PenThick/PenThickInit;// 16.04.09 from - tmp1=max(TenSize/TenSizeInit,1)/8; - Setpen(tmp1); // 16.04.09 upto - forall(ptlist, - tmp=textformat(#,5)+","+text(nn); - Com2nd("Drwpt("+tmp+")"); // 16.04.09 - ); - Setpen(thick); // 16.04.09 -);// 16.03.05 upto - -Addax(param):=( -//help:Addax(0); - ADDAXES=text(param); -); - -Expr(Pt,Dr,St):=Expr([Pt,Dr,St]); -Expr(list):=Expr(list,[]); -Expr(listorg,options):=( //16.10.09 -//help:Expr([A,"e","f(x)=x^2"]); - regional(list,str,tmp,tmp1,tmp2); - list=listorg; - forall(1..round(length(list)/3), - str=list_(3*#); - if(!isstring(str),str=format(str,5)); - str="$"+str+"$"; - list_(3*#)=str; - ); - Letter(list,options); -); - -Letter(Pt,Dr,St):=Letter([Pt,Dr,St]); -Letter(list):=Letter(list,[]); -Letter(list,options):=( -//help:Letter([C,"c","Graph of f(x)"]); - regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy, - opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2); - tmp=Divoptions(options); - Noflg=tmp_2; - opL=select(options,indexof(#,"->")>0); //16.10.09from - tmp=select(opL,indexof(#,"color")); - size=12; - clr=[0,0,0]; - bld=false; - ita=false; - aln="left"; - forall(opL, - tmp=indexof(#,"->"); - tmp1=removespace(substring(#,0,tmp-1)); - tmp2=substring(#,tmp+1,length(#)); - if(tmp1=="size",sz=parse(tmp2)); - if(tmp1=="color",clr=parse(tmp2)); - if(tmp1=="bold",bld=parse(tmp2)); - if(tmp1=="ita",ita=parse(tmp2)); - );//16.10.09upto - Off=-4; - Dmv=8; - Nj=1; - while(Nj+2<=length(list), -// Pos=textformat(list_Nj,5); - Pos=list_Nj; - Dir=list_(Nj+1); - tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from - if(tmp>0, - tmp=indexof(Dir,"w")+indexof(Dir,"e"); - if(tmp==0, - Dir="c"+Dir;//16.10.08 - ); - );//16.10.19upto - Str=list_(Nj+2); - if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09 - tmp=replace(Str,".xy",""); - tmp=replace(tmp,".x","(1)"); - Str=replace(tmp,".y","(2)"); - if(indexof(Str,"`")>0, -// tmp=Dq+",Assign('"+Str+"','`',Prime()))"; - tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22 - , - tmp=Dq+","+Dq+Str+Dq+")"; - ); - if(Noflg==0, - Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10 - ); - if(Noflg<2, - Xmv=0;//16.10.13 - Ymv=-4; - if(indexof(Dir,"n")>0, - Ymv=Dmv/2; - ); - if(indexof(Dir,"s")>0, - Ymv=-Dmv*3/2;//16.10.13 - ); - if(indexof(Dir,"e")>0, - Xmv=Dmv/2; - Off=0; - aln="left"; - ); - if(indexof(Dir,"w")>0, - Xmv=-Dmv/2; - Off=0; // 16.09.30from - aln="right"; - ); - if(indexof(Dir,"c")>0, - Xmv=0;//16.10.13 - Off=0; - if(Ymv==0,Ymv=-4);//16.10.08 - aln="mid"; // 16.09.30upto - ); - drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv], - size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09 - ); - Nj=Nj+3; - ); -); - -Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str); -Letterrot(pt,dir,movstr,str):=( -//help:Letterrot(C,B-A,"AB"): -//help:Letterrot(C,B-A,0,5,"AB"): -//help:Letterrot(C,B-A,"t0n5","AB"): - regional(tmov,nmov,tmp,tmp1,tmp2); - tmp1=indexof(movstr,"t"); - tmp2=indexof(movstr,"n"); - if(tmp1>0, - if(tmp2>0,tmp=tmp2-1,tmp=length(movstr)); - tmov=parse(substring(movstr,tmp1,tmp)); - , - tmov=0; - ); - if(tmp2>0, - nmov=parse(substring(movstr,tmp2,length(movstr))); - , - nmov=0; - ); - Letterrot(pt,dir,tmov,nmov,str); -); -Letterrot(pt,dir,tmov,nmov,str):=( - Letter([pt,"c",str],["notex"]); - Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')"); -); - -Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str); -Exprrot(pt,dir,movstr,str):=( -//help:Exprrot(C,B-A,"d"): -//help:Exprrot(C,B-A,0,5,"d"): -//help:Exprrot(C,B-A,"t0n5","d"): - regional(tmov,nmov,tmp,tmp1,tmp2); - tmp1=indexof(movstr,"t"); - tmp2=indexof(movstr,"n"); - if(tmp1>0, - if(tmp2>0,tmp=tmp2-1,tmp=length(movstr)); - tmov=parse(substring(movstr,tmp1,tmp)); - , - tmov=0; - ); - if(tmp2>0, - nmov=parse(substring(movstr,tmp2,length(movstr))); - , - nmov=0; - ); - Exprrot(pt,dir,tmov,nmov,str); -); -Exprrot(pt,dir,tmov,nmov,str):=( - Expr([pt,"c",str],["notex"]); - Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')"); -); - -Slider(ptstr,p1,p2):=( //17.04.11 -//help:Slider("A-C-B",[-3,0],[3,0]); - regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1); - tmp=indexall(ptstr,"-"); - pA=substring(ptstr,0,tmp_1-1); - pC=substring(ptstr,tmp_1,tmp_2-1); - pB=substring(ptstr,tmp_2,length(ptstr)); - seg=pA+pB; - Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - sname=""; - forall(1..(length(seg)), - tmp=substring(seg,#-1,#); - tmp1=indexof(Alpha,tmp); - if(tmp1>0, - sname=sname+unicode(text(tmp1+96),base->10); - , - sname=sname+tmp; - ); - ); - Putpoint(pA,p1); - Putpoint(pB,p2); - Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]); -// create([sname],"Segment",[parse(pA),parse(pB)]); -// tmp2=Listplot("",[p1,p2],["nodata"]); - Putonseg(pC,parse("sg"+pA+pB)); -// create([pC],"PointOn",[parse(sname),0.5]); -); - -Putpoint(name,Pt):=Putpoint(name,Pt,Pt); -Putpoint(name,Ptinit,Pt):=( -//help:Putpoint("A",[1,2],[1,A.y]); - regional(ptstr); - ptstr=apply(allpoints(),#.name); - if(!contains(ptstr,name), - createpoint(name,Pcrd([Ptinit_1,Ptinit_2])); - , - ptstr=name+".xy="+textformat(Pcrd(Pt),5); - parse(ptstr); - ); -); - -Bezierpt(t,ptlist,ctrlist):=( - regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9); - p0=ptlist_1; - p3=ptlist_2; - p1=ctrlist_1; - if(length(ctrlist)==1, - p2=p3; - flg3=0; - , - p2=ctrlist_2; - flg3=1; - ); - if(length(p0)<3, // 15.02.08 - p0=Lcrd(p0); - p3=Lcrd(p3); - p1=Lcrd(p1); - p2=Lcrd(p2); - ); - p4=(1-t)*p0+t*p1; - p5=(1-t)*p1+t*p2; - p6=(1-t)*p2+t*p3; - p7=(1-t)*p4+t*p5; - p8=(1-t)*p5+t*p6; - p9=(1-t)*p7+t*p8; - if(flg3==0,p7,p9); -); - -Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]); -Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options); -Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]); -Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options); -BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]); -BezierCurve(nm,ptlistorg,ctrlistorg,options):=( -//help:Bezier("1",[A,D],[B,C]); -//help:Bezier(options=["Num=10"]); - regional(name,Ltype,Noflg,opstr,opcindy,Num, - ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list); - name="bz"+nm; - tmp=Divoptions(options); - Ltype=tmp_1; - Noflg=tmp_2; - opstr=tmp_(length(tmp)-1); - opcindy=tmp_(length(tmp)); - Num=10; - tmp1=tmp_5; - forall(tmp1, // 14.12.31 - if(substring(#,0,1)=="N", - tmp2=indexof(#,"="); - Num=parse(substring(#,tmp2,length(#))); - opstr=opstr+","+Dq+#+Dq; - ); - ); - ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16 - ctrlist=[]; // 14.12.31 - if(length(ctrlistorg)==length(ptlist)-1, - forall(ctrlistorg,tmp1, - if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1); - tmp=apply(tmp,Lcrd(#)); // 16.08.16 - ctrlist=append(ctrlist,tmp); - ); - , - forall(1..(length(ptlist)-1),ii, - tmp=ctrlistorg_((2*ii-1)..(2*ii)); - tmp=apply(tmp,Lcrd(#)); // 16.08.16 - ctrlist=append(ctrlist,tmp); - ); - ); - if(!islist(Num), - Num=apply(ctrlist,Num); - ); - list=[]; - forall(1..(length(ptlist)-1),ii, - tmp1=ptlist_(ii..(ii+1)); - tmp2=ctrlist_ii; - if(ii==1,st=0,st=1); - forall(st..Num_ii, - tmp=Bezierpt(#/Num_ii,tmp1,tmp2); - list=append(list,tmp); - ); - ); - if(Noflg<3, - println("generate Bezier "+name); - out=apply(list,Pcrd(#)); - tmp=name+"="+textformat(out,5); - parse(tmp); - tmp1=textformat(ptlist,5); - tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")"; - tmp2=textformat(ctrlist,5); - tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")"; - GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")"); - ); - if(Noflg<2, - if(isstring(Ltype), - Ltype=GetLinestyle(text(Noflg)+Ltype,name); - , - if(Noflg==1,Ltype=0); - ); - GCLIST=append(GCLIST,[name,Ltype,opcindy]); - ); - list; -); - -Readcsvsla(fname):=Readplotdigdata(fname,[]); -Readcsvsla(fname,options):=Readplotdigdata(fname,options); -Readplotdigdata(fname):=Readplotdigdata(fname,[]); -Readplotdigdata(fname,options):=( - regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3); - tmp=Divoptions(options); - tmp1=tmp_6; - sc=1;//10; - mv=[0,0];//[5,5]; - forall(tmp1, - if(!islist(#),sc=#,mv=#); - ); - if(indexof(fname,".")>0, - tmp=load(fname); - , - tmp=load(fname+".txt"); - ); - cmdall=tokenize(tmp,"//"); - dataL=[]; - forall(2..length(cmdall),ii, - tmp1=parse("["+cmdall_ii+"]"); - dataL=append(dataL,tmp1); - ); - if(length(dataL_(length(dataL)))<2, - dataL=dataL_(1..(length(dataL)-1)); - ); - nd=length(dataL_1)/2; - npt=length(dataL); - ptdata=[]; - forall(1..nd,ii, - tmp3=[]; - forall(1..npt, - tmp1=dataL_#_(2*ii-1); - tmp2=dataL_#_(2*ii); - if(isreal(tmp1), - tmp3=append(tmp3,[tmp1,tmp2]); - ); - ); - ptdata=append(ptdata,tmp3); - ); - tmp1=[]; - forall(ptdata, - tmp=#/sc; - tmp=translatedata("1",[tmp],-mv,["nodata"]); - tmp1=append(tmp1,tmp); - ); - ptdata=tmp1; - ptdata; -); - -Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]); -Putbezierdata(name,ptL,options):=( - regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs); - tmp=Divoptions(options); - psize=3; - Deg=3; - tmp1=tmp_5; - forall(tmp1, - if(substring(#,0,1)=="D", - tmp=indexof(#,"="); - Deg=parse(substring(#,tmp,length(#))); - ); - if(substring(#,0,1)=="S", - tmp=indexof(#,"="); - psize=parse(substring(#,tmp,length(#))); - ); - ); - pts=[]; - ctrs=[]; - forall(1..length(ptL), - p2=ptL_#; // 16.08.16 - if(ispoint(p2), - tmp1=text(p2); - , - tmp1=name+text(#); - Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16 - ); - inspect(parse(tmp1),"ptsize",psize); - pts=append(pts,parse(tmp1)); - inspect(parse(tmp1),"color",4); - if(#>1, - p1=Lcrd(ptL_(#-1)); // 16.08.16 - p2=Lcrd(ptL_#); // 16.08.16 - if(Deg==3, - tmp=(2*p1+p2)/3; - tmp1=name+"p"+text(#-1); - Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16 - inspect(parse(tmp1),"labeled",false); //15.01.22 - Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22 - inspect(parse(tmp1),"ptsize",psize); - inspect(parse(tmp1),"color",3); - tmp=(p1+2*p2)/3; - tmp2=name+"q"+text(#-1); - Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16 - inspect(parse(tmp2),"labeled",false); //15.01.22 - Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22 - inspect(parse(tmp2),"ptsize",psize); - inspect(parse(tmp2),"color",3); - ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]); - , - tmp=(p1+p2)/2; - tmp1=name+"p"+text(#-1); - Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16 - inspect(parse(tmp1),"labeled",false); //15.01.22 - Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22 - inspect(parse(tmp1),"ptsize",psize); - inspect(parse(tmp1),"color",3); - ctrs=append(ctrs,[parse(tmp1)]); - ); - ); - ); - [pts,ctrs,name]; -); - -Bezierstart(n):=( // 2016.02.26 - BezierNumber=n; -); - -Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]); -Mkbezierptcrv(ptdata,options):=( - //help:Mkbezierptcrv([A,B,C,D]); - //help:Mkbezierptcrv([[A,B],[C,D]]); - //help:Mkbezierptcrv(options=["Num=10"]); - // global BezierNumber - regional(ptlist,Out,tmp,tmp1,tmp2); - if(isstring(ptdata), - ptlist=Readcsvsla(ptdata,options); - , - ptlist=ptdata; - ); - if(MeasureDepth(ptlist)==1,ptlist=[ptlist]); - Out=[]; - forall(1..length(ptlist), - tmp=floor((BezierNumber-1)/26);// 15.02.23 - if(tmp==0,tmp="",tmp=text(tmp)); - tmp2=mod(BezierNumber,26); - if(tmp2==0,tmp2=26); - tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11 - tmp2=Putbezierdata(tmp1,ptlist_#,options); - Bezier(tmp2,options); - BezierNumber=BezierNumber+1; - Out=append(Out,tmp2_(1..2)); - ); - Out; -); - -Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]); -Mkbeziercrv(nm,ptctrL,options):=( - //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]); - regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2); - if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL); - forall(1..length(ptctrLL), - name=nm+text(#); - ptlist=ptctrLL_#_1; - ctrlist=ptctrLL_#_2; - Bezier(name,ptlist,ctrlist,options); - ); -); - -Writebezier():=Writebezier(Fhead,"all"); -Writebezier(head):=Writebezier(head,"all"); -Writebezier(head,seL):=( -//help:Writebezier(file); -//help:Writebezier(file,"acd"); - regional(bz,dt,name,tmp,tmp1,tmp2); - bz=select(GLIST,indexof(#,"=Bezier")>0); - tmp1=[]; // 16.04.22from - if(seL!="all", - forall(1..length(seL), - tmp=substring(seL,#-1,#); - tmp=select(bz,indexof(#,"bz"+tmp)>0); - tmp1=concat(tmp1,tmp); - ); - bz=tmp1;// 16.04.22upto - ); - dt=[head+"n",[[length(bz),0]]]; - forall(1..length(bz), - tmp=indexof(bz_#,"="); - name=substring(bz_#,0,tmp-1); - tmp=indexof(bz_#,","+Dq); - if(tmp>0, - tmp1=substring(bz_#,0,tmp-1)+")"; - , - tmp1=bz_#; - ); - tmp1=replace(tmp1,"Bezier(","["); - tmp1=replace(tmp1,"list(","["); - tmp1=replace(tmp1,")","]"); - tmp1=replace(tmp1,",",".xy,"); - tmp1=replace(tmp1,"]",".xy]"); - tmp1=replace(tmp1,".xy,[",",["); - tmp1=replace(tmp1,"].xy","]"); - tmp1=replace(tmp1,name,head+text(#)); - parse(tmp1); - tmp=parse(head+text(#)+"_1"); - dt=concat(dt,[head+text(#)+"k",tmp]); - tmp=parse(head+text(#)+"_2"); - dt=concat(dt,[head+text(#)+"c",tmp]); - ); - WriteOutData(head+".txt",dt); - dt; -); - -Readbezier(file):=Readbezier(file,[]); -Readbezier(file,optionorg):=( -//help:Readbezier("xsr"); -//help:Readbezier(options=["Num=10","nogeo"]); - regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3); - options=optionorg; - tmp=Divoptions(options); - stL=tmp_7; - geo=0; - forall(stL, - tmp=Toupper(substring(#,0,1)); - if(tmp=="G",geo=1); - options=remove(options,[#]); - ); - ReadOutData(file); - tmp=file+"n_1_1"; - nn=parse(tmp); - out=[]; - forall(1..nn,nc, - tmp=file+text(nc); - tmp1=parse(tmp+"k"); - tmp2=parse(tmp+"c"); - if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from - if(geo==1, - alpha="abcdefghijklmnopqrstuvwxyz"; - forall(1..length(tmp1), - tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#); - Putpoint(tmp,tmp1_#,parse(tmp+".xy")); - inspect(parse(tmp),"labeled",false); - inspect(parse(tmp),"ptsize",3); - tmp1_#=parse(tmp+".xy"); - ); - forall(1..length(tmp2), - tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1"; - Putpoint(tmp,tmp2_#_1,parse(tmp+".xy")); - inspect(parse(tmp),"labeled",false); - inspect(parse(tmp),"color",4); - inspect(parse(tmp),"ptsize",3); - tmp2_#_1=parse(tmp+".xy"); - tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2"; - Putpoint(tmp,tmp2_#_2,parse(tmp+".xy")); - inspect(parse(tmp),"labeled",false); - inspect(parse(tmp),"color",4); - inspect(parse(tmp),"ptsize",3); - tmp2_#_2=parse(tmp+".xy"); - ); - BezierNumber=BezierNumber+1; - ); - Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto - out=append(out,"bz"+tmp); - ); - out; -); - -Ospline(nm,ptlist):=Ospline(nm,ptlist,[]); -Ospline(nm,ptlist,options):=( -//help:Ospline("1",ptlist,[options]); - regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg, - p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32); - name="o"+nm; - if(isstring(ptlist),list=parse(ptlist),list=ptlist); - if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0); -// list=apply(list,LLcrd(#)); - ctrL=[]; - forall(1..(length(list)-1), - flg=0; - p1=Lcrd(list_#); // 16.08.16 - p2=Lcrd(list_(#+1)); // 16.08.16 - if(#==1 % #==length(list)-1, - flg=1; - if(closed==0, - pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16 - pR=(2*p1+p2)/3; // 16.08.16 - ctrL=append(ctrL,[pQ,pR]); - flg=2; - , - if(#==1, - p0=Lcrd(list_(length(list)-1)); // 16.08.16 - p3=Lcrd(list_(#+2)); // 16.08.16 - , - p0=Lcrd(list_(#-1)); // 16.08.16 - p3=Lcrd(list_2); // 16.08.16 - ); - ); - ); - if(flg<=1, - if(flg==0, - p0=Lcrd(list_(#-1)); // 16.08.16 - p3=Lcrd(list_(#+2)); // 16.08.16 - ); - tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2); - cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp; - pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16 - pR=p2+cc*(p1-p3); // 16.08.16 - ctrL=append(ctrL,[pQ,pR]); - ); - ); -// list=apply(list,LLcrd(#)); // 16.08.16 -// ctrL=apply(ctrL,LLcrd(#)); - if(closed==0, // 15.09.21 - p1=ctrL_2_1; - p2=Lcrd(list_2); // 16.08.16 - pQ=p2+(p2-p1); - ctrL_1=[pQ]; - tmp=length(ctrL); - tmp1=ctrL_(tmp-1); - p1=ctrL_(tmp-1)_2; - p2=Lcrd(list_(tmp)); // 16.08.16 - pQ=p2+(p2-p1); - ctrL_tmp=[pQ]; - ); - Bezier("o"+nm,list,ctrL,options); -); - -CRspline(nm,ptL):=CRspline(nm,ptL,[]); -CRspline(nm,ptL,options):=( - // Catmull-Rom spline -//help:CRspline("1",[A,B,C,A]); - regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg); - name="crsp"+nm; - if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL); - ptlist=tmp_1; - if(length(tmp)==1, - cflg=1; - , - cflg=0; - ctrpts=tmp_2; - ); - c=1/6; - tmp=Divoptions(options); - eqL=tmp_5; - opcindy=tmp_(length(tmp)); // 15.03.05 - forall(eqL, - if(substring(#,0,1)=="R", - tmp2=indexof(#,"="); - c=parse(substring(#,tmp2,length(#))); - ); - ); - ptlist=apply(ptlist,Lcrd(#)); // 16.08.16 - ctrlist=[]; - forall(1..(length(ptlist)-1), - if(#==1, - if(cflg==0, - tmp1=ctrpts_1; - , - v=ptlist_2-ptlist_(length(ptlist)-1); - tmp1=ptlist_#+c*v; - ); - , - v=ptlist_(#+1)-ptlist_(#-1); - tmp1=ptlist_#+c*v; - ); - if(#==length(ptlist)-1, - if(cflg==0, - tmp2=ctrpts_2; - , - v=ptlist_2-ptlist_#; - tmp2=ptlist_(#+1)-c*v; - ); - , - v=ptlist_(#+2)-ptlist_#; - tmp2=ptlist_(#+1)-c*v; - ); - tmp=select(options,indexof(text(#),"->")>0); - tmp=append(tmp,"notex"); //15.03.05 - Pointdata(name+text(#),[tmp1,tmp2],tmp); - ctrlist=append(ctrlist,[tmp1,tmp2]); - ); - Bezier(nm,ptlist,ctrlist,options); -); - -Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]); -//help:Beziersmooth("1",[A,B,C,A]); -Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options); -Bzspline(nm,ptL):=Bzspline(nm,ptL,[]); -Bzspline(nm,ptLorg,options):=( - // smooth bezier - regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr, - tmp,tmp1,tmp2,cflg,ctrlist); - name="bzsp"+nm; - Eps=10^(-3); - ptL=apply(ptLorg,Lcrd(#)); // 16.08.16 - if(|ptL_1-ptL_(length(ptL))|1 % cflg==1, - tmp1="c"+text(#); - inspect(parse(tmp1),"alpha",0.3); - ); - tmp1="C"+text(#)+"p"; - tmp2="C"+text(#)+"q"; - inspect(parse(tmp1),"ptsize",3); - inspect(parse(tmp1),"color",3); - inspect(parse(tmp2),"ptsize",3); - inspect(parse(tmp2),"color",3); - tmp=[parse(tmp1),parse(tmp2)]; - ctrlist=append(ctrlist,tmp); - ); - Bezier(nm,ptL,ctrlist,options); - [ptL,ctrlist]; -); - -Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]); -Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options); -Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]); -Bzsspline(nm,ptLorg,options):=( - // smooth bezier with symmetric control points - regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr, - tmp,tmp1,tmp2,cflg,ctrlist); - name="bzssp"+nm; - Eps=10^(-3); - ptL=apply(ptLorg,Lcrd(#)); // 16.08.16 - if(|ptL_1-ptL_(length(ptL))|Eps, - pcl=list; - pcl_1=2*list_1-list_2; - pcl_k=2*list_k-list_(k-1); - , - pcl=concat(list,[list_2]); - ); - ctrl=apply(2..(length(pcl)-1),[pcl_#]); - ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2); - [ptl,ctrl]; -); - -Bspline(nm,ctrL):=Bspline(nm,ctrL,[]); -Bspline(nm,ctrL,options):=( -//help:Bspline("",[A,B,C]); - regional(list,tmp); - list=Listbspline2bz(ctrL); - tmp=BezierCurve("b"+nm,list_1,list_2,options); - tmp; -); - -MeetCurve(Crv,Xorg,Yorg):=( - regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate); - if(isstring(Crv),Cv=parse(Crv),Cv=Crv); - if(MeasureDepth(Cv)==2,Cv=Cv_1); - Cv=apply(Cv,LLcrd(#)); // 14.12.18 - while(length(Cv)==1, - Cv=Cv_1; - ); - Cv=apply(Cv,Lcrd(#)); - tmp1=min(apply(Cv,#_1)); - tmp2=max(apply(Cv,#_1)); - if(isstring(Xorg),X0=parse(Xorg),X0=Xorg); - if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg); - if(X0tmp2, - X0=tmp2; - ); - ); - tmp1=select( - 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1); - tmp2=select( - 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1); - tmp2=remove(tmp2,common(tmp2,tmp1)); - Ban=concat(tmp1,tmp2); - Tate=select(Ban, - abs(Cv_#_1-Cv_(#+1)_1)<= - 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2) - ); - Ban=remove(Ban,Tate); - Ylist=[]; - forall(Ban, - tmp=Cv_#; - x1=tmp_1; y1=tmp_2; - tmp=Cv_(#+1); - x2=tmp_1; y2=tmp_2; - tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1); - Ylist=append(Ylist,tmp); - ); - forall(Tate, - tmp=Cv_#; - x1=tmp_1; y1=tmp_2; - tmp=Cv_(#+1); - x2=tmp_1; y2=tmp_2; - tmp1=min([y1,y2]); - tmp2=max([y1,y2]); - if(Y0tmp2, - tmp=tmp2; - , - tmp=Y0; - ); - ); - Ylist=append(Ylist,tmp); - ); - tmp=sort(Ylist,abs(#_1-Y0)); - [X0,tmp_1]; -); - -PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]); -PutonLine(name,p1org,p2org,options):=( -//help:PutonLine("C","sgAB"); -//help:PutonLine("C",pA,pB); - regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2); - par=0.5; - tmp=Divoptions(options); - if(length(tmp_6)>0, - par=tmp_6_1; - ); - p1=Lcrd(p1org);//16.10.11from - p2=Lcrd(p2org); - dx=p2_1-p1_1; - dy=p2_2-p1_2; - tmp1=(1-par)*p1+par*p2; - if(abs(dx)>abs(dy), - tmp=name+".x"; - tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto - Putpoint(name,tmp1,parse(tmp2)); - , - if(abs(dy)>0, - tmp=name+".y"; - tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]"; - Putpoint(name,tmp1,parse(tmp2)); - , - tmp2=p1;//16.10.11 - Putpoint(name,tmp1,tmp2); - ); - ); -); - -PutonSeg(name,sgstr):=( - regional(seg,p1,p2); - if(isstring(sgstr),seg=parse(sgstr),seg=sgstr); - PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2)); -); -PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]); -PutonSeg(name,p1org,p2org,options):=( -//help:PutonSeg("C","sgAB"); -//help:PutonSeg("C",pA,pB); - regional(par,dx,dy,p,tmp,tmp1,tmp2); - par=0.5; - tmp=Divoptions(options); - if(length(tmp_6)>0, - par=tmp_6_1; - ); - p1=Lcrd(p1org);//16.10.11from - p2=Lcrd(p2org); - PutonLine(name,p1,p2,[par]); - dx=p2_1-p1_1; - dy=p2_2-p1_2; - p=parse(name+".xy"); - p=LLcrd(p); - if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0, - if(|p-p1|<|p-p2|, - parse(name+".xy=Pcrd(p1)"); - , - parse(name+".xy=Pcrd(p2)"); - ); - ); - if(abs(dx)0, - if(|p-p1|<|p-p2|, - parse(name+".xy=Pcrd(p1)"); - , - parse(name+".xy=Pcrd(p2)");//16.10.11upto - ); - ); -); - -PutonCurve(pn,crv):=PutonCurve(pn,crv,[]); -PutonCurve(pn,crv,options):=( -//help:PutonCurve("A","gr1"); - regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg); - if(!islist(options),optionL=[options],optionL=options); - leftlim=XMIN; - rightlim=XMAX; - Flg=0; - Msg="y"; - forall(optionL, - if(isstring(#), // 16.02.10 from - tmp=indexof(#,"="); - tmp1=Toupper(substring(#,tmp,tmp+1)); - if(tmp1=="N", Msg="n"); // 16.02.10 upto - , - if(Flg==0, - leftlim=#; - Flg=Flg+1; - , - rightlim=#; - ); - ); - ); - Pmt=MeetCurve(crv,leftlim,0); - pstr=apply(allpoints(),textformat(#,5)); // 15.04.07 - if(!contains(pstr,pn), - createpoint(pn,Pcrd(Pmt)); - , - tmp1=parse(pn+".x"); - if(tmp1< leftlim % tmp1>rightlim, - if(tmp1< leftlim,tmp= leftlim, tmp=rightlim); - Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y"); - , - Pmt=MeetCurve(crv,pn+".x",pn+".y"); - ); - ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";"; - parse(ptstr); - ); - if(Msg=="y", - println("Put "+pn+" on Curve "+text(crv)); - ); -); - -CrossPoint(name,Crv1,Crv2,range):=( - regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2); - Mx1=range_1; Mx2=range_2; - repeat(15, - Mx3=(Mx1+Mx2)/2; - Crs1=MeetCurve(Crv1,Mx1,0); - Crs2=MeetCurve(Crv2,Mx1,0); - Crs3=MeetCurve(Crv1,Mx3,0); - Crs4=MeetCurve(Crv2,Mx3,0); - df1=Crs1_2-Crs2_2; - df2=Crs3_2-Crs4_2; - if((df1>0 & df2>0) % (df1<0 & df2<0), - Mx1=Mx3; - , - Mx2=Mx3; - ); - ); - Putpoint(name,Crs1); -); - -Setscaling(sc):=( -//help:Setscaling(3); - SCALEX=1; - SCALEY=sc; - Com0th("Setscaling("+sc+")"); - Setwindow("Msg=no"); -); - -Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]); -Tabledatalight(nm,xLst,yLst,rmvL,options):=( -//help:Tabledatalight("",xLst,yLst,rmvL,[2]); - regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb, - tmp,tmp1,tmp2,tmp3,Eps); -// name="tb"+nm; - name="tb"; - println("Tabledatalight "+name+" generated"); - tmp=sum(yLst); - upleft=[0,tmp]; - tick=1; - tmp=Divoptions(options); - flg=0; - forall(tmp_6, - if(flg==0, - tick=#; - flg=flg+1; - , - upleft=tmp_6_1; - ); - ); - ul=upleft/10; - m=length(xLst); - n=length(yLst); - xsize=sum(xLst); - ysize=sum(yLst); - clist=[ul]; - rlist=[ul]; - forall(1..m, - tmp1=clist_(#)_1+xLst_#/10; - clist=append(clist,[tmp1,clist_1_2]); - ); - forall(1..n, - tmp1=rlist_(#)_2-yLst_#/10; - rlist=append(rlist,[0,tmp1]); - ); - Tb=[clist,rlist]; - tmp=name+"="+Tb; - parse(tmp); - forall(0..m, - tmp1="c"+text(#)+"r0"; - tmp2="c"+text(#)+"r"+text(n); - Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options); - if(mod(#,tick)==0 % #==m, - tmp=clist_(#+1); - drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#)); - ); - ); - forall(0..n, - tmp1="c0r"+text(#); - tmp2="c"+text(m)+"r"+text(#); - Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options); - if(mod(#,tick)==0 % #==n, - tmp=rlist_(#+1); - drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#)); - ); - ); - Tsegrmv(rmvL,options); - Addax(0); - Eps=10^(-3); - tmp1=clist_(length(clist)); - tmp2=rlist_1; - tmp3=rlist_(length(rlist)); - Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]); - Tb; -); - -Tabledata(nm,n,m,xsize,ysize,rmvL):= - Tabledata(nm,n,m,xsize,ysize,rmvL,[]); -Tabledata(nm,n,m,xsize,ysize,rmvL,options):=( - regional(Tb,name,tmp,xLst,yLst); - name="tb"+nm; - xLst=apply(1..n,xsize/n); - yLst=apply(1..m,ysize/m); - Tabledata(nm,xLst,yLst,rmvL,options) -); -Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]); -Tabledata(nm,xLst,yLst,rmvL,options):=( -//help:Tabledata("",xLst,yLst,rmvL,[2]); - regional(name,upleft,ul,flg,tick,n,m,xsize,ysize,rlist,clist,Tb, - tmp,tmp1,tmp2,tmp3,Eps); -// name="tb"+nm; - name="tb"; - println("Tabledata "+name+" generated"); - tmp=sum(yLst); - upleft=[0,tmp]; - tick=1; - tmp=Divoptions(options); - flg=0; - forall(tmp_6, - if(flg==0, - tick=#; - flg=flg+1; - , - upleft=tmp_6_1; - ); - ); - ul=upleft/10; - m=length(xLst); - n=length(yLst); - xsize=sum(xLst); - ysize=sum(yLst); - clist=[ul]; - rlist=[ul]; - forall(1..m, - tmp1=clist_(#)_1+xLst_#/10; - clist=append(clist,[tmp1,clist_1_2]); - ); - forall(1..n, - tmp1=rlist_(#)_2-yLst_#/10; - rlist=append(rlist,[0,tmp1]); - ); - Tb=[clist,rlist]; - tmp=name+"="+Tb; - parse(tmp); - forall(0..m, - tmp="C"+text(#); - tmp1="c"+text(#)+"r0"; - if(#==0, - Putpoint(tmp,Tgrid(tmp1)); - , - Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]); - clist_(#+1)=parse(tmp+".xy"); - ); - inspect(parse(tmp),"ptsize",3); - inspect(parse(tmp),"labeled",false); - if(mod(#,tick)==0 % #==m, - tmp=clist_(#+1); - drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#)); - ); - ); - forall(0..n, - tmp="R"+text(#); - tmp1="c0r"+text(#); - if(#==0, - Putpoint(tmp,Tgrid(tmp1)); - , - Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]); - rlist_(#+1)=parse(tmp+".xy"); - ); - Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]); - inspect(parse(tmp),"ptsize",3); - inspect(parse(tmp),"labeled",false); - if(mod(#,tick)==0 % #==n, - tmp=rlist_(#+1); - drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#)); - ); - ); - Tb=[clist,rlist]; - tmp=name+"="+Tb; - parse(tmp); - forall(0..m, - tmp1="c"+text(#)+"r0"; - tmp2="c"+text(#)+"r"+text(n); - Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options); - if(#=n1 & m2<=n2, - gc=#; - flg=1; - ); - ); - ); - if(flg==1, - Changestyle([gc_1],["nodisp"]); - tail=""; - if(indexof(hd,"r")>0, - tail=hd; hd=""; - ); - if(n10, - posdir_2=posdir_2-dy; - posstr=replace(posstr,"b","n"); - ); - if(indexof(dir,"t")>0, - posdir_2=posdir_2+dy; - posstr=replace(posstr,"t","s"); - ); - if(indexof(dir,"l")>0, - posdir_1=posdir_1-dx; - posstr=replace(posstr,"l","e"); - ); - if(indexof(dir,"r")>0, - posdir_1=posdir_1+dx; - posstr=replace(posstr,"r","w"); - ); - Letter(posdir,posstr,text(lttr)); -); - -Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex); -Putcellexpr(Tbdata,pos1,pos2,dir,ex):=( -//help:Putcellexpr("c0r0","c2r1","lt","abc"); -//help:Putcellexpr(2,3,"c","\sin x"); - Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$"); -); - -Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL); -Putrow(Tbdata,nrow,dir,lttrL):=( -//help:Putrow(1,"c",["x","y","z"]); - regional(tmp,tmp1,mcol); - mcol=length(lttrL); - forall(1..mcol, - Putcell(Tbdata,#,nrow,dir,lttrL_#); - ); -); - -Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL); -Putrowexpr(Tbdata,nrow,dir,exL):=( -//help:Putrowexpr(2,"r",["x","y","z"]); - regional(lttrL); - lttrL=apply(exL,"$"+#+"$"); - Putrow(Tbdata,nrow,dir,lttrL); -); - -PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL); -PutcoL(Tbdata,mcol,dir,lttrL):=( -//help:PutcoL(1,"c",["x","y","z"]); - regional(tmp,tmp1,nrow); - nrow=length(lttrL); - forall(1..nrow, - Putcell(Tbdata,mcol,#,dir,lttrL_#); - ); -); -PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL); -PutcoLexpr(Tbdata,mcol,dir,exL):=( -//help:PutcoLexpr(2,"r",["x","y","z"]); - regional(lttrL); - lttrL=apply(exL,"$"+#+"$"); - PutcoL(Tbdata,mcol,dir,lttrL); -); - -Setwindow():=Setwindow("Msg=yes"); -Setwindow(str):=( - regional(tmp,tmp1,tmp2,msg); - msg="y"; - tmp=indexof(str,"="); // 16.02.10 - tmp1=Toupper(substring(str,tmp,tmp+1)); - if(tmp1=="N",msg="n"); - if((ispoint(SW) & ispoint(NE)), - tmp1=Lcrd(SW); - tmp2=Lcrd(NE); - XMIN=tmp1_1; XMAX=tmp2_1; - YMIN=tmp1_2; YMAX=tmp2_2; - , -// XMIN=-5; XMAX=5; -// YMIN=Lcrdy(-5); YMAX=Lcrdy(5); - createpoint("SW",Pcrd([XMIN,YMIN])); - createpoint("NE", Pcrd([XMAX,YMAX])); - ); - if(msg=="y", - println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])"); - ); - layer(KETPICLAYER); - autoclearlayer(KETPICLAYER,true); - drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]), - Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]); -); -Setwindow(xrange,yrange):=( -//help:Setwindow([2,3],[-1,1]); - XMIN=xrange_1; - XMAX=xrange_2; - YMIN=yrange_1; - YMAX=yrange_2; -// Setwindow(); -); - -Sciform(list):=( - regional(plotlist,comp,pos,out,out2,nn,strL,flg, - tmp,tmp1,tmp2,tmp3,Nj); - plotlist=Flatten([list]); - out=replace(plotlist_1,".xy",""); - out=replace(out,".x","(1)"); - out=replace(out,".y","(2)"); - if(length(plotlist)==1, - comp=[]; - forall(1..length(out), - comp=append(comp,substring(out,#-1,#)); - ); - out=""; - pos=0; - forall(comp, - if(#!="'", - out=out+#; - , - if(pos==0, - tmp=indexof(out,"Assign("); - if(substring(out,length(out)-7,length(out))=="Assign(", - out=out+"'"; - pos=1; - , - out=out+"Assign('"; - pos=2; - ); - , - if(pos==2, - out=out+"')"; - , - out=out+"'"; - ); - pos=0; - ); - ); - ); - , - forall(2..length(plotlist), - comp=plotlist_#; - if(isstring(comp), - pos=indexof(comp,"Assign("); - if(pos>0, - comp=substring(comp,6,length(comp)); - ); - out=out+"Assign("; - comp=replace(comp,".xy",""); - comp=replace(comp,".x","(1)"); - comp=replace(comp,".y","(2)"); - out=out+"'"+comp+"'"; - out=out+"),"; - ); - if(islist(comp), - forall(comp, - out=out+"'"+#+"',"; - ); - ); - ); - if(length(plotlist)>1, - out=substring(out,0,length(out)-1); - out=out+");"; - ); - ); - pos=[]; - forall(1..length(out), - tmp=indexof(substring(out,#-1,length(out)),"Assign"); - if(tmp>0, - tmp1=#-1+tmp; - if(length(pos)==0, - pos=[tmp1]; - , - if(pos_(length(pos))0, - strL=[]; - Nj=0; - forall(pos, - tmp=substring(out,Nj,#-1); - strL=append(strL,tmp); - Nj=#-1; - ); - strL=append(strL,substring(out,Nj,length(out))); - out=""; - forall(strL, - if(indexof(#,"Assign")==0, - out=out+#; - , - tmp=indexof(#,"('"); - tmp1=indexof(#,"')"); - tmp2=substring(#,tmp+1,tmp1-2); - tmp3=substring(#,tmp1-2,length(#)); - if(indexof(tmp2,"=")==0, - out=out+#; - , - tmp=substring(tmp2,0,indexof(tmp2,"=")); - out=out+"'"+tmp+"'+"+"Assign('"; - tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2)); - out=out+tmp+tmp3; - ); - ); - ); - ); - out2=""; // patched 16.01.21 from - nn=length(out); - flg=0; - forall(1..nn, - if(flg==0, - tmp=indexof(out,"='+Assign('"); - if(tmp==0, - out2=out2+out; - flg=1; - , - out2=out2+substring(out,0,tmp); - out=substring(out,tmp+10,length(out)); - tmp=indexof(out,"'"); // 16.04.19 from - tmp1=substring(out,0,tmp-1); - tmp2="1234567890"; - tmp=apply(1..length(tmp1), - indexof(tmp2,substring(tmp1,#-1,#))); - tmp=min(tmp); - if(tmp==0, // 16.04.19 upto - out2=out2+"'+Assign('"; - , - tmp=indexof(out,"'"); - out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto - ); - ); - ); - ); - out2=replace(out2,"Dist=","D="); - out2=replace(out2,"Dis=","D="); - out2; -); - - -Rform(list):=( - regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj); - out=list; - out=replace(out,"[[[","list([["); - out=replace(out,"[","c("); - out=replace(out,"]",")"); - out=replace(out,".xy",""); - out=replace(out,".x","[1]"); - out=replace(out,".y","[2]"); - out; -); - -Defvar(varstr):=( - regional(name,value,tmp,tmp1); - parse(varstr); - tmp=indexof(varstr,"="); - name=substring(varstr,0,tmp-1); - value=substring(varstr,tmp,length(varstr)); - value=parse(value); - tmp1=select(1..length(VLIST),VLIST_#_1==name+"="); - if(length(tmp1)>0, - tmp=tmp1_1; - VLIST_tmp=[name+"=",value]; - , - VLIST=prepend([name+"=",value],VLIST); - ); -); - -Defvar(name,value):=( -//help:Defvar("a",0.3); - regional(tmp,tmp1); - if(islist(value), - tmp1="["; - forall(value, - tmp1=tmp1+format(#,5)+","; - ); - tmp1=substring(tmp1,0,length(tmp1)-1)+"]"; - , - tmp1=format(value,5); - ); - tmp=name+"="+tmp1; // 15.02.06 - parse(tmp); - VLIST=select(VLIST,#_1!=name+"="); // 15.02.08 - VLIST=prepend([name+"=",value],VLIST); -); - -Iftosci(strorg):=( // 16.06.10 - regional(str,ifL,ppL,cpL,kk,sL, - tmp,tmp1,tmp2,tmp3,tmp4); - str=replace(strorg,LFmark,""); - ifL=Indexall(str,"if("); - ppL=Bracket(str,"()"); - cpL=Indexall(str,","); - tmp1=Bracket(str,"[]"); - forall(1..(length(tmp1)/2),kk, - cpL=select(cpL,#tmp1_(2*kk)_1); - ); - forall(1..length(ifL),kk, - tmp=select(ppL,#_1>ifL_kk); - tmp1=tmp_1; - tmp2=select(tmp,#_2==-tmp1_2); - tmp2=tmp2_1; - tmp3=select(cpL,#>tmp1_1 & #1, - sL_(tmp3_2)=";else,"; - ); - ); - tmp=sum(sL); -); - -Fortosci(strorg):=( - regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4, - Out,repL,Pflg,Iflg,Cflg); - str=strorg; - repL=[]; - tmp1=Indexall(str,"forall"); - tmp2=Indexall(str,","); - forall(1..length(tmp1),jj, - tmp=select(tmp2,#>tmp1_jj); - var=substring(str,tmp_1,tmp_2-1); - tmp3=substring(str,tmp1_jj-1,tmp_2-1); - tmp=indexof(tmp3,"("); - tmp4=substring(tmp3,tmp,length(tmp3)); - tmp=indexof(tmp4,","); - tmp4=substring(tmp4,0,tmp-1); - tmp4="for "+var+"="+tmp4; - tmp4=replace(tmp4,"..",":"); - repL=concat(repL,[tmp3,tmp4]); - ); - forall(1..length(repL)/2, - str=replace(str,repL_(2*#-1),repL_(2*#)); - ); - tmp=Bracket(str); - tmp=select(tmp,#_2==0); - tmp=tmp_1_1; - tmp1=substring(str,tmp-1,length(str)); - tmp1=replace(tmp1,")",";end"); - str=substring(str,0,tmp-1)+tmp1; - str=replace(str,";;",";"); - str; -); - -Deffun(name,bodylist):=( -//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18 - regional(funstr,tmp,tmp1,str,Pos); - funstr=name+":=("; - forall(bodylist, - funstr=funstr+#+";"; - ); - funstr=funstr+");"; - parse(funstr); - tmp=bodylist_(length(bodylist)); - str="function "+tmp+"="+name+","; - forall(1..(length(bodylist)-1), - tmp1=bodylist_#; - tmp1=replace(tmp1,LFmark,"");// 16.05.26 - tmp1=replace(tmp1," ","");// 16.05.26 - Pos=indexof(tmp1,"regional")+indexof(tmp1,"local"); - if(Pos==0, - tmp=replace(tmp1,".xy",""); - tmp=replace(tmp,".x","(1)"); - tmp=replace(tmp,".y","(2)"); - if(indexof(tmp,"if(")>0, - tmp=iftosci(tmp); - ); - if(indexof(tmp,"forall(")>0, // 16.05.26from - tmp=Fortosci(tmp); - ); // 16.05.26upto - str=str+tmp+","; - ); - ); - str=str+"endfunction;"; - FUNLIST=append(FUNLIST,str); -); - -Windispg():=( - regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,tmp3,opcindy); - gsave(); - layer(KETPIClayer); - forall(GCLIST,Nj, - if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17 - if(islist(Dt) & length(Dt)>0, // 12.19,12.22 - tmp=MeasureDepth(Dt); - if(tmp==1,Dt=[Dt]); - opcindy=Nj_3; - if(Nj_2<0,tmp1=0,tmp1=Nj_2); - if(tmp1<10, - forall(Dt,Nk, -// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#)); -// tmp2=apply(tmp2,Pcrd(#)); - tmp2=Nk; // 14.12.04 - if(length(Nk)>1, - forall(2..length(Nk), - tmp3=textformat(Nk_[#-1,#],5); - tmp3=substring(tmp3,1,length(tmp3)-1); - if(tmp1==1,opcindy=opcindy+",dashpattern->[2,2]"); - tmp="draw("+tmp3+ - ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")"; - parse(tmp); - ); - , - if(length(Nk)==1, - tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31 - parse(tmp); - ); - ); - ); - ); - ); - ); -// if(ADDAXES=="1", // 16.10.08from -// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]); -// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]); -// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]); -// Letter([[0,0],"sw","O"]); -// ); // 16.10.08upto - grestore(); - layer(0); -); diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy new file mode 100644 index 00000000000..87eb72d583d Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/makefunlist.cdy differ diff --git a/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/webfont.js b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/webfont.js new file mode 100644 index 00000000000..e1e978523c6 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/ketcindyjs/webfont.js @@ -0,0 +1,45 @@ +/* + * Copyright 2015 Small Batch, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +/* Web Font Loader v1.5.18 - (c) Adobe Systems, Google. License: Apache 2.0 */ +;(function(window,document,undefined){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2a.c||this.c===a.c&&this.g>a.g||this.c===a.c&&this.g===a.g&&this.D>a.D?1:this.cd.c||536==d.c&&11>d.g))} +function E(a,b,c){return(a=a.match(b))&&a[c]?a[c]:""};function G(a){this.ma=a||"-"}G.prototype.e=function(a){for(var b=[],c=0;c=a.X?a.k.ga&&R(a,b,c)&&(null===a.ca||a.ca.hasOwnProperty(a.m.getName()))?S(a,a.$):S(a,a.ka):ja(a):S(a,a.$)}function ja(a){setTimeout(k(function(){Q(this)},a),50)}function S(a,b){a.t.remove();a.u.remove();a.H.remove();b(a.m)};function T(a,b,c,d){this.d=b;this.A=c;this.S=0;this.ea=this.ba=!1;this.X=d;this.k=a.k}function ka(a,b,c,d,e){c=c||{};if(0===b.length&&e)J(a.A);else for(a.S+=b.length,e&&(a.ba=e),e=0;e - - - - - s1602diffeq2.cdy - - - - - - - - - - -
- - \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindy.html b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindy.html deleted file mode 100644 index d60f372b9c9..00000000000 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindy.html +++ /dev/null @@ -1,6639 +0,0 @@ - - - - - - s1602diffeq2.cdy - - - - - - - - - - -
- - diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindyon.html b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindyon.html deleted file mode 100644 index cf5b564e040..00000000000 --- a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1602diffeq2ketcindyon.html +++ /dev/null @@ -1,6640 +0,0 @@ - - - - - - s1602diffeq2.cdy - - - - - - - - - - -
- - diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy index 2c300fa3051..2915180a450 100644 Binary files a/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy and b/Master/texmf-dist/doc/support/ketcindy/samples/s16ketcindyJS/s1603gamow.cdy differ diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeE.txt new file mode 100644 index 00000000000..22ef302445e --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeE.txt @@ -0,0 +1,6 @@ +How to use Spacekc 20190101 Akira Iritani + +Spacekc is a plugin to KeTCindy for 3D rendering/drawing. + +See the following website for examples : + https://sites.google.com/site/ketcindy/home/cindy3d2 diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeJ.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeJ.txt new file mode 100644 index 00000000000..3185f6e1f9a --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/ReadmeJ.txt @@ -0,0 +1,6 @@ +Spacekcの使い方    20190101 入谷昭 + +Spacekc は、KeTCindyの3Dモードをベースに,面の色塗りなど,KeTCindyにはないコマンドを追加したものです。 + +作成例は以下のサイトを見て下さい。 + https://sites.google.com/site/ketcindy/home/cindy3d2 diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy index 51e78c8040b..4854986e5cc 100644 Binary files a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy and b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.cdy differ diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.pdf b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.pdf new file mode 100644 index 00000000000..7631f266404 Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/Spacekc.pdf differ diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/SpacekcReference.pdf b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/SpacekcReference.pdf new file mode 100644 index 00000000000..9fd170aaea8 Binary files /dev/null and b/Master/texmf-dist/doc/support/ketcindy/samples/s17spacekc/SpacekcReference.pdf differ diff --git a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex index 85a7d653ab2..9b74fd050df 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallE.tex @@ -57,15 +57,13 @@ installing of KeTCindy \item Install KeTCdindy \begin{enumerate}[(1)] \item Download ketcindy from CTAN(\url{https://ctan.org}).\\ - \hspace*{10mm}Search ketcindy > Pack­age ketcindy > download + \hspace*{10mm}Search ketcindy $>$ Pack­age ketcindy $>$ download \begin{itemize} - \item[Rem)]The latest version can be download from Repository:\\ - \hspace*{5mm}\url{https://github.com/ket­pic/ketcindy}\\ - \hspace*{10mm}Clone or download > Download ZIP - \item[Rem)]Download ketcindy-master as follows\\ - \hspace*{10mm}Clone or download > Download ZIP + \item[Rem)]The latest version can be downloaded from Repository:\\ + \hspace*{5mm}\url{https://github.com/ketpic/ketcindy}\\ + \hspace*{10mm}Clone or download $>$ Download ZIP \end{itemize} - \item Install KeTCindy according to Readme in forMac/forWindow/forLinux. + \item Install KeTCindy according to Readme in forMac/forWindows/forLinux. \end{enumerate} \end{enumerate} diff --git a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex index b077cd507cb..040eda3d567 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/howtoinstall/HowToInstallJ.tex @@ -53,15 +53,15 @@ KETCindyのインストール \item KeTCindyのインストール \begin{enumerate}[(1)] \item ketcindyをCTAN(\url{https://ctan.org})からダウンロードする.\\ - \hspace*{10mm}ketcindyで検索 > Pack­age ketcindy > download + \hspace*{10mm}ketcindyで検索 $>$ Package ketcindy $>$ download \begin{itemize} \item[注)]最新版は,Repositoryのサイト\\ - \hspace*{10mm}\url{https://github.com/ket­pic/ketcindy}\\ + \hspace*{10mm}\url{https://github.com/ketpic/ketcindy}\\ から以下のようにダウンロードできる.\\ - \hspace*{10mm}Clone or download > Download ZIP + \hspace*{10mm}Clone or download $>$ Download ZIP \item[注)]この場合は,ketcindy-masterになる. \end{itemize} - \item forMac/forWindow/forLinuxにあるReadmeに従って,インストールする. + \item forMac/forWindows/forLinuxにあるReadmeに従って,インストールする. \end{enumerate} \end{enumerate} diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdf b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdf index 2e5d37e25d8..875cfc72245 100644 Binary files a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdf and b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/Intersectcurvsf.pdf differ diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustume.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustume.tex new file mode 100644 index 00000000000..83d47a9539e --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustume.tex @@ -0,0 +1,71 @@ +%%% /Users/hannya/Desktop/fig/frustume.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(4.67,3.66)(-2.24,-1.05)% +\special{pn 8}% +% +\special{pa 548 -13}\special{pa 544 -20}% +\special{fp}% +\special{pa 544 -20}\special{pa 542 -24}\special{pa 542 -24}% +\special{fp}% +\special{pa 542 -24}\special{pa 537 -34}\special{pa 531 -45}\special{pa 526 -56}% +\special{pa 520 -66}\special{pa 515 -77}\special{pa 509 -87}\special{pa 504 -98}% +\special{pa 499 -109}\special{pa 493 -119}\special{pa 488 -130}\special{pa 482 -141}% +\special{pa 477 -151}\special{pa 471 -162}\special{pa 466 -173}\special{pa 460 -183}% +\special{pa 455 -194}\special{pa 449 -204}\special{pa 444 -215}\special{pa 438 -226}% +\special{pa 433 -236}\special{pa 427 -247}\special{pa 422 -258}\special{pa 416 -268}% +\special{pa 411 -279}\special{pa 405 -290}\special{pa 400 -300}\special{pa 394 -311}% +\special{pa 389 -321}\special{pa 383 -332}\special{pa 378 -343}\special{pa 373 -353}% +\special{pa 367 -364}\special{pa 362 -375}\special{pa 356 -385}\special{pa 351 -396}% +\special{pa 345 -407}\special{pa 340 -417}\special{pa 334 -428}\special{pa 329 -438}% +\special{pa 323 -449}\special{pa 318 -460}\special{pa 312 -470}\special{pa 307 -481}% +\special{pa 301 -492}\special{pa 296 -502}\special{pa 290 -513}\special{pa 285 -524}% +\special{pa 279 -534}\special{pa 274 -545}% +\special{fp}% +\special{pa -548 -13}\special{pa -542 -24}\special{pa -542 -24}% +\special{fp}% +\special{pa -542 -24}\special{pa -537 -34}\special{pa -531 -45}\special{pa -526 -56}% +\special{pa -520 -66}\special{pa -515 -77}\special{pa -509 -87}\special{pa -504 -98}% +\special{pa -499 -109}\special{pa -493 -119}\special{pa -488 -130}\special{pa -482 -141}% +\special{pa -477 -151}\special{pa -471 -162}\special{pa -466 -173}\special{pa -460 -183}% +\special{pa -455 -194}\special{pa -449 -204}\special{pa -444 -215}\special{pa -438 -226}% +\special{pa -433 -236}\special{pa -427 -247}\special{pa -422 -258}\special{pa -416 -268}% +\special{pa -411 -279}\special{pa -405 -290}\special{pa -400 -300}\special{pa -394 -311}% +\special{pa -389 -321}\special{pa -383 -332}\special{pa -378 -343}\special{pa -373 -353}% +\special{pa -367 -364}\special{pa -362 -375}\special{pa -356 -385}\special{pa -351 -396}% +\special{pa -345 -407}\special{pa -340 -417}\special{pa -334 -428}\special{pa -329 -438}% +\special{pa -323 -449}\special{pa -318 -460}\special{pa -312 -470}\special{pa -307 -481}% +\special{pa -301 -492}\special{pa -296 -502}\special{pa -290 -513}\special{pa -285 -524}% +\special{pa -279 -534}\special{pa -274 -545}% +\special{fp}% +\special{pa -432 74}\special{pa -386 85}\special{pa -333 94}\special{pa -275 103}% +\special{pa -213 109}\special{pa -148 114}\special{pa -80 117}\special{pa -11 118}% +\special{pa 58 118}\special{pa 126 115}\special{pa 192 111}\special{pa 256 105}% +\special{pa 315 97}\special{pa 369 88}\special{pa 417 77}\special{pa 459 65}% +\special{pa 494 53}\special{pa 521 39}\special{pa 539 25}\special{pa 549 10}% +\special{pa 551 -5}\special{pa 547 -13}% +\special{fp}% +\special{pa 547 -13}\special{pa 543 -20}\special{pa 541 -22}% +\special{fp}% +\special{pa -547 -13}\special{pa -549 -10}\special{pa -551 5}\special{pa -543 20}% +\special{pa -528 34}\special{pa -503 48}\special{pa -471 61}\special{pa -432 74}% +\special{fp}% +\special{pn 8}% +\special{pa 544 -20}\special{pa 537 -25}\special{fp}\special{pa 513 -43}\special{pa 506 -47}\special{fp}% +\special{pa 478 -59}\special{pa 470 -62}\special{fp}\special{pa 441 -71}\special{pa 433 -73}\special{fp}% +\special{pa 403 -80}\special{pa 395 -82}\special{fp}\special{pa 365 -88}\special{pa 357 -90}\special{fp}% +\special{pa 327 -95}\special{pa 319 -96}\special{fp}\special{pa 289 -101}\special{pa 281 -102}\special{fp}% +\special{pa 250 -105}\special{pa 242 -106}\special{fp}\special{pa 211 -109}\special{pa 203 -110}\special{fp}% +\special{pa 173 -112}\special{pa 165 -113}\special{fp}\special{pa 134 -115}\special{pa 126 -115}\special{fp}% +\special{pa 95 -116}\special{pa 87 -117}\special{fp}\special{pa 56 -118}\special{pa 48 -118}\special{fp}% +\special{pa 18 -118}\special{pa 10 -118}\special{fp}\special{pa -21 -118}\special{pa -29 -118}\special{fp}% +\special{pa -60 -118}\special{pa -68 -117}\special{fp}\special{pa -99 -116}\special{pa -107 -116}\special{fp}% +\special{pa -137 -114}\special{pa -145 -114}\special{fp}\special{pa -176 -112}\special{pa -184 -111}\special{fp}% +\special{pa -215 -109}\special{pa -223 -108}\special{fp}\special{pa -254 -105}\special{pa -261 -104}\special{fp}% +\special{pa -292 -100}\special{pa -300 -99}\special{fp}\special{pa -330 -94}\special{pa -338 -93}\special{fp}% +\special{pa -369 -88}\special{pa -376 -86}\special{fp}\special{pa -407 -80}\special{pa -414 -78}\special{fp}% +\special{pa -444 -70}\special{pa -452 -67}\special{fp}\special{pa -481 -58}\special{pa -488 -55}\special{fp}% +\special{pa -516 -42}\special{pa -523 -37}\special{fp}\special{pa -544 -16}\special{pa -550 -10}\special{fp}% +\special{pn 8}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumew.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumew.tex new file mode 100644 index 00000000000..d4fc2f96b1b --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumew.tex @@ -0,0 +1,89 @@ +%%% /Users/hannya/Desktop/fig/frustumew.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(4.67,3.66)(-2.24,-1.05)% +\special{pn 8}% +% +\special{pa 548 -13}\special{pa 544 -20}% +\special{fp}% +\special{pa 544 -20}\special{pa 542 -24}\special{pa 542 -24}% +\special{fp}% +\special{pa 542 -24}\special{pa 537 -34}\special{pa 531 -45}\special{pa 526 -56}% +\special{pa 520 -66}\special{pa 515 -77}\special{pa 509 -87}\special{pa 504 -98}% +\special{pa 499 -109}\special{pa 493 -119}\special{pa 488 -130}\special{pa 482 -141}% +\special{pa 477 -151}\special{pa 471 -162}\special{pa 466 -173}\special{pa 460 -183}% +\special{pa 455 -194}\special{pa 449 -204}\special{pa 444 -215}\special{pa 438 -226}% +\special{pa 433 -236}\special{pa 427 -247}\special{pa 422 -258}\special{pa 416 -268}% +\special{pa 411 -279}\special{pa 405 -290}\special{pa 400 -300}\special{pa 394 -311}% +\special{pa 389 -321}\special{pa 383 -332}\special{pa 378 -343}\special{pa 373 -353}% +\special{pa 367 -364}\special{pa 362 -375}\special{pa 356 -385}\special{pa 351 -396}% +\special{pa 345 -407}\special{pa 340 -417}\special{pa 334 -428}\special{pa 329 -438}% +\special{pa 323 -449}\special{pa 318 -460}\special{pa 312 -470}\special{pa 307 -481}% +\special{pa 301 -492}\special{pa 296 -502}\special{pa 290 -513}\special{pa 285 -524}% +\special{pa 279 -534}\special{pa 274 -545}% +\special{fp}% +\special{pa -548 -13}\special{pa -542 -24}\special{pa -542 -24}% +\special{fp}% +\special{pa -542 -24}\special{pa -537 -34}\special{pa -531 -45}\special{pa -526 -56}% +\special{pa -520 -66}\special{pa -515 -77}\special{pa -509 -87}\special{pa -504 -98}% +\special{pa -499 -109}\special{pa -493 -119}\special{pa -488 -130}\special{pa -482 -141}% +\special{pa -477 -151}\special{pa -471 -162}\special{pa -466 -173}\special{pa -460 -183}% +\special{pa -455 -194}\special{pa -449 -204}\special{pa -444 -215}\special{pa -438 -226}% +\special{pa -433 -236}\special{pa -427 -247}\special{pa -422 -258}\special{pa -416 -268}% +\special{pa -411 -279}\special{pa -405 -290}\special{pa -400 -300}\special{pa -394 -311}% +\special{pa -389 -321}\special{pa -383 -332}\special{pa -378 -343}\special{pa -373 -353}% +\special{pa -367 -364}\special{pa -362 -375}\special{pa -356 -385}\special{pa -351 -396}% +\special{pa -345 -407}\special{pa -340 -417}\special{pa -334 -428}\special{pa -329 -438}% +\special{pa -323 -449}\special{pa -318 -460}\special{pa -312 -470}\special{pa -307 -481}% +\special{pa -301 -492}\special{pa -296 -502}\special{pa -290 -513}\special{pa -285 -524}% +\special{pa -279 -534}\special{pa -274 -545}% +\special{fp}% +\special{pa -432 74}\special{pa -386 85}\special{pa -333 94}\special{pa -275 103}% +\special{pa -213 109}\special{pa -148 114}\special{pa -80 117}\special{pa -11 118}% +\special{pa 58 118}\special{pa 126 115}\special{pa 192 111}\special{pa 256 105}% +\special{pa 315 97}\special{pa 369 88}\special{pa 417 77}\special{pa 459 65}% +\special{pa 494 53}\special{pa 521 39}\special{pa 539 25}\special{pa 549 10}% +\special{pa 551 -5}\special{pa 547 -13}% +\special{fp}% +\special{pa 547 -13}\special{pa 543 -20}\special{pa 541 -22}% +\special{fp}% +\special{pa -547 -13}\special{pa -549 -10}\special{pa -551 5}\special{pa -543 20}% +\special{pa -528 34}\special{pa -503 48}\special{pa -471 61}\special{pa -432 74}% +\special{fp}% +\special{pa -216 -502}\special{pa -193 -496}\special{pa -167 -491}\special{pa -138 -487}% +\special{pa -107 -484}\special{pa -74 -481}\special{pa -40 -480}\special{pa -6 -479}% +\special{pa 29 -479}\special{pa 63 -481}\special{pa 96 -483}\special{pa 128 -486}% +\special{pa 157 -490}\special{pa 184 -494}\special{pa 209 -500}\special{pa 230 -506}% +\special{pa 247 -512}\special{pa 260 -519}\special{pa 270 -526}\special{pa 275 -533}% +\special{pa 275 -541}\special{pa 274 -544}% +\special{fp}% +\special{pa 274 -544}\special{pa 272 -548}\special{pa 264 -555}\special{pa 252 -562}% +\special{pa 236 -569}\special{pa 216 -575}\special{pa 193 -581}\special{pa 167 -585}% +\special{pa 138 -590}\special{pa 107 -593}\special{pa 74 -595}\special{pa 40 -597}% +\special{pa 6 -597}\special{pa -29 -597}\special{pa -63 -596}\special{pa -96 -594}% +\special{pa -128 -591}\special{pa -157 -587}\special{pa -184 -582}\special{pa -209 -577}% +\special{pa -230 -571}\special{pa -247 -565}\special{pa -260 -558}\special{pa -270 -551}% +\special{pa -274 -545}% +\special{fp}% +\special{pa -274 -545}\special{pa -275 -543}\special{pa -275 -536}\special{pa -272 -528}% +\special{pa -264 -521}\special{pa -252 -514}\special{pa -236 -508}\special{pa -216 -502}% +\special{fp}% +\special{pn 8}% +\special{pa 544 -20}\special{pa 537 -25}\special{fp}\special{pa 513 -43}\special{pa 506 -47}\special{fp}% +\special{pa 478 -59}\special{pa 470 -62}\special{fp}\special{pa 441 -71}\special{pa 433 -73}\special{fp}% +\special{pa 403 -80}\special{pa 395 -82}\special{fp}\special{pa 365 -88}\special{pa 357 -90}\special{fp}% +\special{pa 327 -95}\special{pa 319 -96}\special{fp}\special{pa 289 -101}\special{pa 281 -102}\special{fp}% +\special{pa 250 -105}\special{pa 242 -106}\special{fp}\special{pa 211 -109}\special{pa 203 -110}\special{fp}% +\special{pa 173 -112}\special{pa 165 -113}\special{fp}\special{pa 134 -115}\special{pa 126 -115}\special{fp}% +\special{pa 95 -116}\special{pa 87 -117}\special{fp}\special{pa 56 -118}\special{pa 48 -118}\special{fp}% +\special{pa 18 -118}\special{pa 10 -118}\special{fp}\special{pa -21 -118}\special{pa -29 -118}\special{fp}% +\special{pa -60 -118}\special{pa -68 -117}\special{fp}\special{pa -99 -116}\special{pa -107 -116}\special{fp}% +\special{pa -137 -114}\special{pa -145 -114}\special{fp}\special{pa -176 -112}\special{pa -184 -111}\special{fp}% +\special{pa -215 -109}\special{pa -223 -108}\special{fp}\special{pa -254 -105}\special{pa -261 -104}\special{fp}% +\special{pa -292 -100}\special{pa -300 -99}\special{fp}\special{pa -330 -94}\special{pa -338 -93}\special{fp}% +\special{pa -369 -88}\special{pa -376 -86}\special{fp}\special{pa -407 -80}\special{pa -414 -78}\special{fp}% +\special{pa -444 -70}\special{pa -452 -67}\special{fp}\special{pa -481 -58}\special{pa -488 -55}\special{fp}% +\special{pa -516 -42}\special{pa -523 -37}\special{fp}\special{pa -544 -16}\special{pa -550 -10}\special{fp}% +\special{pn 8}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumewn.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumewn.tex new file mode 100644 index 00000000000..12ccd057bbb --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumewn.tex @@ -0,0 +1,105 @@ +%%% /Users/hannya/Desktop/fig/frustumewn.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(4.67,3.66)(-2.24,-1.05)% +\special{pn 8}% +% +\special{pa 548 -13}\special{pa 544 -20}% +\special{fp}% +\special{pa 544 -20}\special{pa 542 -24}\special{pa 542 -24}% +\special{fp}% +\special{pa 542 -24}\special{pa 537 -34}\special{pa 531 -45}\special{pa 526 -56}% +\special{pa 520 -66}\special{pa 515 -77}\special{pa 509 -87}\special{pa 504 -98}% +\special{pa 499 -109}\special{pa 493 -119}\special{pa 488 -130}\special{pa 482 -141}% +\special{pa 477 -151}\special{pa 471 -162}\special{pa 466 -173}\special{pa 460 -183}% +\special{pa 455 -194}\special{pa 449 -204}\special{pa 444 -215}\special{pa 438 -226}% +\special{pa 433 -236}\special{pa 427 -247}\special{pa 422 -258}\special{pa 416 -268}% +\special{pa 411 -279}\special{pa 405 -290}\special{pa 400 -300}\special{pa 394 -311}% +\special{pa 389 -321}\special{pa 383 -332}\special{pa 378 -343}\special{pa 373 -353}% +\special{pa 367 -364}\special{pa 362 -375}\special{pa 356 -385}\special{pa 351 -396}% +\special{pa 345 -407}\special{pa 340 -417}\special{pa 334 -428}\special{pa 329 -438}% +\special{pa 323 -449}\special{pa 318 -460}\special{pa 312 -470}\special{pa 307 -481}% +\special{pa 301 -492}\special{pa 296 -502}\special{pa 290 -513}\special{pa 285 -524}% +\special{pa 279 -534}\special{pa 274 -545}% +\special{fp}% +\special{pa -548 -13}\special{pa -542 -24}\special{pa -542 -24}% +\special{fp}% +\special{pa -542 -24}\special{pa -537 -34}\special{pa -531 -45}\special{pa -526 -56}% +\special{pa -520 -66}\special{pa -515 -77}\special{pa -509 -87}\special{pa -504 -98}% +\special{pa -499 -109}\special{pa -493 -119}\special{pa -488 -130}\special{pa -482 -141}% +\special{pa -477 -151}\special{pa -471 -162}\special{pa -466 -173}\special{pa -460 -183}% +\special{pa -455 -194}\special{pa -449 -204}\special{pa -444 -215}\special{pa -438 -226}% +\special{pa -433 -236}\special{pa -427 -247}\special{pa -422 -258}\special{pa -416 -268}% +\special{pa -411 -279}\special{pa -405 -290}\special{pa -400 -300}\special{pa -394 -311}% +\special{pa -389 -321}\special{pa -383 -332}\special{pa -378 -343}\special{pa -373 -353}% +\special{pa -367 -364}\special{pa -362 -375}\special{pa -356 -385}\special{pa -351 -396}% +\special{pa -345 -407}\special{pa -340 -417}\special{pa -334 -428}\special{pa -329 -438}% +\special{pa -323 -449}\special{pa -318 -460}\special{pa -312 -470}\special{pa -307 -481}% +\special{pa -301 -492}\special{pa -296 -502}\special{pa -290 -513}\special{pa -285 -524}% +\special{pa -279 -534}\special{pa -274 -545}% +\special{fp}% +\special{pa -432 74}\special{pa -386 85}\special{pa -333 94}\special{pa -275 103}% +\special{pa -213 109}\special{pa -148 114}\special{pa -80 117}\special{pa -11 118}% +\special{pa 58 118}\special{pa 126 115}\special{pa 192 111}\special{pa 256 105}% +\special{pa 315 97}\special{pa 369 88}\special{pa 417 77}\special{pa 459 65}% +\special{pa 494 53}\special{pa 521 39}\special{pa 539 25}\special{pa 549 10}% +\special{pa 551 -5}\special{pa 547 -13}% +\special{fp}% +\special{pa 547 -13}\special{pa 543 -20}\special{pa 541 -22}% +\special{fp}% +\special{pa -547 -13}\special{pa -549 -10}\special{pa -551 5}\special{pa -543 20}% +\special{pa -528 34}\special{pa -503 48}\special{pa -471 61}\special{pa -432 74}% +\special{fp}% +\special{pa -216 -502}\special{pa -220 -490}\special{pa -225 -479}\special{pa -229 -467}% +\special{pa -233 -456}\special{pa -238 -444}\special{pa -242 -433}\special{pa -246 -421}% +\special{pa -250 -410}\special{pa -255 -398}\special{pa -259 -387}\special{pa -263 -375}% +\special{pa -268 -364}\special{pa -272 -352}\special{pa -276 -341}\special{pa -281 -329}% +\special{pa -285 -318}\special{pa -289 -306}\special{pa -294 -294}\special{pa -298 -283}% +\special{pa -302 -271}\special{pa -307 -260}\special{pa -311 -248}\special{pa -315 -237}% +\special{pa -320 -225}\special{pa -324 -214}\special{pa -328 -202}\special{pa -333 -191}% +\special{pa -337 -179}\special{pa -341 -168}\special{pa -345 -156}\special{pa -350 -145}% +\special{pa -354 -133}\special{pa -358 -122}\special{pa -363 -110}\special{pa -367 -99}% +\special{pa -371 -87}% +\special{fp}% +\special{pa -371 -87}\special{pa -371 -87}\special{pa -376 -76}\special{pa -380 -64}% +\special{pa -384 -53}\special{pa -389 -41}\special{pa -393 -30}\special{pa -397 -18}% +\special{pa -402 -7}\special{pa -406 5}\special{pa -410 16}\special{pa -415 28}% +\special{pa -419 39}\special{pa -423 51}\special{pa -428 62}\special{pa -432 74}% +\special{fp}% +\special{pa -216 -502}\special{pa -193 -496}\special{pa -167 -491}\special{pa -138 -487}% +\special{pa -107 -484}\special{pa -74 -481}\special{pa -40 -480}\special{pa -6 -479}% +\special{pa 29 -479}\special{pa 63 -481}\special{pa 96 -483}\special{pa 128 -486}% +\special{pa 157 -490}\special{pa 184 -494}\special{pa 209 -500}\special{pa 230 -506}% +\special{pa 247 -512}\special{pa 260 -519}\special{pa 270 -526}\special{pa 275 -533}% +\special{pa 275 -541}\special{pa 274 -544}% +\special{fp}% +\special{pa 274 -544}\special{pa 272 -548}\special{pa 264 -555}\special{pa 252 -562}% +\special{pa 236 -569}\special{pa 216 -575}\special{pa 193 -581}\special{pa 167 -585}% +\special{pa 138 -590}\special{pa 107 -593}\special{pa 74 -595}\special{pa 40 -597}% +\special{pa 6 -597}\special{pa -29 -597}\special{pa -63 -596}\special{pa -96 -594}% +\special{pa -128 -591}\special{pa -157 -587}\special{pa -184 -582}\special{pa -209 -577}% +\special{pa -230 -571}\special{pa -247 -565}\special{pa -260 -558}\special{pa -270 -551}% +\special{pa -274 -545}% +\special{fp}% +\special{pa -274 -545}\special{pa -275 -543}\special{pa -275 -536}\special{pa -272 -528}% +\special{pa -264 -521}\special{pa -252 -514}\special{pa -236 -508}\special{pa -216 -502}% +\special{fp}% +\special{pn 8}% +\special{pa 544 -20}\special{pa 537 -25}\special{fp}\special{pa 513 -43}\special{pa 506 -47}\special{fp}% +\special{pa 478 -59}\special{pa 470 -62}\special{fp}\special{pa 441 -71}\special{pa 433 -73}\special{fp}% +\special{pa 403 -80}\special{pa 395 -82}\special{fp}\special{pa 365 -88}\special{pa 357 -90}\special{fp}% +\special{pa 327 -95}\special{pa 319 -96}\special{fp}\special{pa 289 -101}\special{pa 281 -102}\special{fp}% +\special{pa 250 -105}\special{pa 242 -106}\special{fp}\special{pa 211 -109}\special{pa 203 -110}\special{fp}% +\special{pa 173 -112}\special{pa 165 -113}\special{fp}\special{pa 134 -115}\special{pa 126 -115}\special{fp}% +\special{pa 95 -116}\special{pa 87 -117}\special{fp}\special{pa 56 -118}\special{pa 48 -118}\special{fp}% +\special{pa 18 -118}\special{pa 10 -118}\special{fp}\special{pa -21 -118}\special{pa -29 -118}\special{fp}% +\special{pa -60 -118}\special{pa -68 -117}\special{fp}\special{pa -99 -116}\special{pa -107 -116}\special{fp}% +\special{pa -137 -114}\special{pa -145 -114}\special{fp}\special{pa -176 -112}\special{pa -184 -111}\special{fp}% +\special{pa -215 -109}\special{pa -223 -108}\special{fp}\special{pa -254 -105}\special{pa -261 -104}\special{fp}% +\special{pa -292 -100}\special{pa -300 -99}\special{fp}\special{pa -330 -94}\special{pa -338 -93}\special{fp}% +\special{pa -369 -88}\special{pa -376 -86}\special{fp}\special{pa -407 -80}\special{pa -414 -78}\special{fp}% +\special{pa -444 -70}\special{pa -452 -67}\special{fp}\special{pa -481 -58}\special{pa -488 -55}\special{fp}% +\special{pa -516 -42}\special{pa -523 -37}\special{fp}\special{pa -544 -16}\special{pa -550 -10}\special{fp}% +\special{pn 8}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumw.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumw.tex new file mode 100644 index 00000000000..d481b7a48c1 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/frustumw.tex @@ -0,0 +1,55 @@ +%%% /Users/hannya/Desktop/fig/frustumw.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(4.67,3.66)(-2.24,-1.05)% +\special{pn 8}% +% +\special{pa 548 -13}\special{pa 542 -24}\special{pa 537 -34}\special{pa 531 -45}% +\special{pa 526 -56}\special{pa 520 -66}\special{pa 515 -77}\special{pa 509 -87}% +\special{pa 504 -98}\special{pa 499 -109}\special{pa 493 -119}\special{pa 488 -130}% +\special{pa 482 -141}\special{pa 477 -151}\special{pa 471 -162}\special{pa 466 -173}% +\special{pa 460 -183}\special{pa 455 -194}\special{pa 449 -204}\special{pa 444 -215}% +\special{pa 438 -226}\special{pa 433 -236}\special{pa 427 -247}\special{pa 422 -258}% +\special{pa 416 -268}\special{pa 411 -279}\special{pa 405 -290}\special{pa 400 -300}% +\special{pa 394 -311}\special{pa 389 -321}\special{pa 383 -332}\special{pa 378 -343}% +\special{pa 373 -353}\special{pa 367 -364}\special{pa 362 -375}\special{pa 356 -385}% +\special{pa 351 -396}\special{pa 345 -407}\special{pa 340 -417}\special{pa 334 -428}% +\special{pa 329 -438}\special{pa 323 -449}\special{pa 318 -460}\special{pa 312 -470}% +\special{pa 307 -481}\special{pa 301 -492}\special{pa 296 -502}\special{pa 290 -513}% +\special{pa 285 -524}\special{pa 279 -534}\special{pa 274 -545}% +\special{fp}% +\special{pa -548 -13}\special{pa -542 -24}\special{pa -537 -34}\special{pa -531 -45}% +\special{pa -526 -56}\special{pa -520 -66}\special{pa -515 -77}\special{pa -509 -87}% +\special{pa -504 -98}\special{pa -499 -109}\special{pa -493 -119}\special{pa -488 -130}% +\special{pa -482 -141}\special{pa -477 -151}\special{pa -471 -162}\special{pa -466 -173}% +\special{pa -460 -183}\special{pa -455 -194}\special{pa -449 -204}\special{pa -444 -215}% +\special{pa -438 -226}\special{pa -433 -236}\special{pa -427 -247}\special{pa -422 -258}% +\special{pa -416 -268}\special{pa -411 -279}\special{pa -405 -290}\special{pa -400 -300}% +\special{pa -394 -311}\special{pa -389 -321}\special{pa -383 -332}\special{pa -378 -343}% +\special{pa -373 -353}\special{pa -367 -364}\special{pa -362 -375}\special{pa -356 -385}% +\special{pa -351 -396}\special{pa -345 -407}\special{pa -340 -417}\special{pa -334 -428}% +\special{pa -329 -438}\special{pa -323 -449}\special{pa -318 -460}\special{pa -312 -470}% +\special{pa -307 -481}\special{pa -301 -492}\special{pa -296 -502}\special{pa -290 -513}% +\special{pa -285 -524}\special{pa -279 -534}\special{pa -274 -545}% +\special{fp}% +\special{pa -216 -502}\special{pa -193 -496}\special{pa -167 -491}\special{pa -138 -487}% +\special{pa -107 -484}\special{pa -74 -481}\special{pa -40 -480}\special{pa -6 -479}% +\special{pa 29 -479}\special{pa 63 -481}\special{pa 96 -483}\special{pa 128 -486}% +\special{pa 157 -490}\special{pa 184 -494}\special{pa 209 -500}\special{pa 230 -506}% +\special{pa 247 -512}\special{pa 260 -519}\special{pa 270 -526}\special{pa 275 -533}% +\special{pa 275 -541}\special{pa 274 -544}% +\special{fp}% +\special{pa 274 -544}\special{pa 272 -548}\special{pa 264 -555}\special{pa 252 -562}% +\special{pa 236 -569}\special{pa 216 -575}\special{pa 193 -581}\special{pa 167 -585}% +\special{pa 138 -590}\special{pa 107 -593}\special{pa 74 -595}\special{pa 40 -597}% +\special{pa 6 -597}\special{pa -29 -597}\special{pa -63 -596}\special{pa -96 -594}% +\special{pa -128 -591}\special{pa -157 -587}\special{pa -184 -582}\special{pa -209 -577}% +\special{pa -230 -571}\special{pa -247 -565}\special{pa -260 -558}\special{pa -270 -551}% +\special{pa -274 -545}% +\special{fp}% +\special{pa -274 -545}\special{pa -275 -543}\special{pa -275 -536}\special{pa -272 -528}% +\special{pa -264 -521}\special{pa -252 -514}\special{pa -236 -508}\special{pa -216 -502}% +\special{fp}% +\special{pn 8}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3d.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3d.tex new file mode 100644 index 00000000000..7158782845d --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/letter3d.tex @@ -0,0 +1,70 @@ +%%% /Users/hannya/Desktop/fig/frustumewn.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(5.37,4.83)(-3.01,-1.14)% +\special{pn 8}% +% +\special{pa 0 -879}\special{pa -618 -33}% +\special{fp}% +\special{pa -618 -33}\special{pa 176 131}% +\special{fp}% +\special{pa 0 -879}\special{pa 176 131}% +\special{fp}% +\special{pn 8}% +\special{pa -622 -33}\special{pa -614 -33}\special{fp}\special{pa -582 -35}\special{pa -574 -36}\special{fp}% +\special{pa -543 -38}\special{pa -535 -38}\special{fp}\special{pa -504 -40}\special{pa -496 -41}\special{fp}% +\special{pa -465 -42}\special{pa -457 -43}\special{fp}\special{pa -425 -45}\special{pa -417 -45}\special{fp}% +\special{pa -386 -47}\special{pa -378 -48}\special{fp}\special{pa -347 -50}\special{pa -339 -50}\special{fp}% +\special{pa -308 -52}\special{pa -300 -53}\special{fp}\special{pa -268 -55}\special{pa -260 -55}\special{fp}% +\special{pa -229 -57}\special{pa -221 -57}\special{fp}\special{pa -190 -59}\special{pa -182 -60}\special{fp}% +\special{pa -151 -62}\special{pa -143 -62}\special{fp}\special{pa -111 -64}\special{pa -103 -65}\special{fp}% +\special{pa -72 -67}\special{pa -64 -67}\special{fp}\special{pa -33 -69}\special{pa -25 -70}\special{fp}% +\special{pa 6 -71}\special{pa 14 -72}\special{fp}\special{pa 46 -74}\special{pa 54 -74}\special{fp}% +\special{pa 85 -76}\special{pa 93 -77}\special{fp}\special{pa 124 -79}\special{pa 132 -79}\special{fp}% +\special{pa 163 -81}\special{pa 171 -82}\special{fp}\special{pa 203 -84}\special{pa 211 -84}\special{fp}% +\special{pa 242 -86}\special{pa 250 -87}\special{fp}\special{pa 281 -88}\special{pa 289 -89}\special{fp}% +\special{pa 320 -91}\special{pa 328 -91}\special{fp}\special{pa 360 -93}\special{pa 367 -94}\special{fp}% +\special{pa 399 -96}\special{pa 407 -96}\special{fp}\special{pa 438 -98}\special{pa 446 -99}\special{fp}% +\special{pn 8}% +\special{pa 0 -879}\special{pa 442 -98}% +\special{fp}% +\special{pa 176 131}\special{pa 442 -98}% +\special{fp}% +\special{pa -0 -879}\special{pa -221 49}% +\special{fp}% +\special{pn 8}% +\special{pa -225 50}\special{pa -217 48}\special{fp}\special{pa -186 42}\special{pa -178 40}\special{fp}% +\special{pa -147 33}\special{pa -139 31}\special{fp}\special{pa -108 24}\special{pa -100 22}\special{fp}% +\special{pa -69 16}\special{pa -61 14}\special{fp}\special{pa -30 7}\special{pa -22 5}\special{fp}% +\special{pa 9 -2}\special{pa 17 -4}\special{fp}\special{pa 48 -11}\special{pa 56 -12}\special{fp}% +\special{pa 87 -19}\special{pa 95 -21}\special{fp}\special{pa 126 -28}\special{pa 134 -30}\special{fp}% +\special{pa 165 -37}\special{pa 173 -38}\special{fp}\special{pa 204 -45}\special{pa 212 -47}\special{fp}% +\special{pa 243 -54}\special{pa 251 -56}\special{fp}\special{pa 282 -63}\special{pa 290 -64}\special{fp}% +\special{pa 321 -71}\special{pa 329 -73}\special{fp}\special{pa 360 -80}\special{pa 368 -82}\special{fp}% +\special{pa 399 -89}\special{pa 407 -90}\special{fp}\special{pa 438 -97}\special{pa 446 -99}\special{fp}% +\special{pn 8}% +\settowidth{\Width}{A}\setlength{\Width}{0\Width}% +\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}% +\put(0.0714286,3.2614286){\hspace*{\Width}\raisebox{\Height}{A}}% +% +\settowidth{\Width}{B}\setlength{\Width}{-1\Width}% +\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(-2.3114286,0.1200000){\hspace*{\Width}\raisebox{\Height}{B}}% +% +\settowidth{\Width}{C}\setlength{\Width}{0\Width}% +\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-\Height}% +\put(0.7114286,-0.5514286){\hspace*{\Width}\raisebox{\Height}{C}}% +% +\settowidth{\Width}{D}\setlength{\Width}{0\Width}% +\settoheight{\Height}{D}\settodepth{\Depth}{D}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(1.6714286,0.3600000){\hspace*{\Width}\raisebox{\Height}{D}}% +% +{% +\color[rgb]{0,0,1}% +\settowidth{\Width}{M}\setlength{\Width}{-1\Width}% +\settoheight{\Height}{M}\settodepth{\Depth}{M}\setlength{\Height}{-\Height}% +\put(-0.8714286,-0.2514286){\hspace*{\Width}\raisebox{\Height}{M}}% +% +}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex index 3ca36611758..14964c23bd7 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/mkpttable.tex @@ -1,26 +1,24 @@ -%%% /Users/Hannya/Desktop/KeTCindy/リファレンス/fig/mkpttable.tex +%%% /Users/hannya/Desktop/Ketcindy/リファレンス旧/fig/mkpttable.tex %%% Generator=点作図関数比較.cdy {\unitlength=10mm% \begin{picture}% -(11.25,20.1)(0,1.5)% +(11.25,19.3)(0,1.5)% \special{pn 8}% % \small% -\special{pa 0 -8504}\special{pa 0 -591}% +\special{pa 0 -8189}\special{pa 0 -591}% \special{fp}% -\special{pa 1280 -8504}\special{pa 1280 -591}% +\special{pa 1280 -8189}\special{pa 1280 -591}% \special{fp}% -\special{pa 2067 -8504}\special{pa 2067 -591}% +\special{pa 2067 -8189}\special{pa 2067 -591}% \special{fp}% -\special{pa 2854 -8504}\special{pa 2854 -591}% +\special{pa 2854 -8189}\special{pa 2854 -591}% \special{fp}% -\special{pa 3642 -8504}\special{pa 3642 -591}% +\special{pa 3642 -8189}\special{pa 3642 -591}% \special{fp}% -\special{pa 4429 -8504}\special{pa 4429 -591}% +\special{pa 4429 -8189}\special{pa 4429 -591}% \special{fp}% -\special{pa 0 -8504}\special{pa 4429 -8504}% -\special{fp}% -\special{pa 0 -8268}\special{pa 4429 -8268}% +\special{pa 0 -8189}\special{pa 4429 -8189}% \special{fp}% \special{pa 0 -7972}\special{pa 4429 -7972}% \special{fp}% @@ -76,43 +74,23 @@ \special{fp}% \settowidth{\Width}{関数}\setlength{\Width}{-0.5\Width}% \settoheight{\Height}{関数}\settodepth{\Depth}{関数}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(1.6200000,21.3000000){\hspace*{\Width}\raisebox{\Height}{関数}}% +\put(1.6200000,20.5200000){\hspace*{\Width}\raisebox{\Height}{関数}}% % \settowidth{\Width}{戻り値を使う}\setlength{\Width}{-0.5\Width}% \settoheight{\Height}{戻り値を使う}\settodepth{\Depth}{戻り値を使う}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(4.2500000,21.3000000){\hspace*{\Width}\raisebox{\Height}{戻り値を使う}}% +\put(4.2500000,20.5200000){\hspace*{\Width}\raisebox{\Height}{戻り値を使う}}% % \settowidth{\Width}{描画する}\setlength{\Width}{-0.5\Width}% \settoheight{\Height}{描画する}\settodepth{\Depth}{描画する}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(6.2500000,21.3000000){\hspace*{\Width}\raisebox{\Height}{描画する}}% +\put(6.2500000,20.5200000){\hspace*{\Width}\raisebox{\Height}{描画する}}% % \settowidth{\Width}{幾何点を作る}\setlength{\Width}{-0.5\Width}% \settoheight{\Height}{幾何点を作る}\settodepth{\Depth}{幾何点を作る}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(8.2500000,21.3000000){\hspace*{\Width}\raisebox{\Height}{幾何点を作る}}% +\put(8.2500000,20.5200000){\hspace*{\Width}\raisebox{\Height}{幾何点を作る}}% % \settowidth{\Width}{TeXに出力}\setlength{\Width}{-0.5\Width}% \settoheight{\Height}{TeXに出力}\settodepth{\Depth}{TeXに出力}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(10.2500000,21.3000000){\hspace*{\Width}\raisebox{\Height}{TeXに出力}}% -% -\settowidth{\Width}{Drawpoint}\setlength{\Width}{-0.5\Width}% -\settoheight{\Height}{Drawpoint}\settodepth{\Depth}{Drawpoint}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(1.6200000,20.6200000){\hspace*{\Width}\raisebox{\Height}{Drawpoint}}% -% -\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}% -\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(4.2500000,20.6200000){\hspace*{\Width}\raisebox{\Height}{-}}% -% -\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}% -\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(6.2500000,20.6200000){\hspace*{\Width}\raisebox{\Height}{-}}% -% -\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}% -\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(8.2500000,20.6200000){\hspace*{\Width}\raisebox{\Height}{-}}% -% -\settowidth{\Width}{$\bigcirc$}\setlength{\Width}{-0.5\Width}% -\settoheight{\Height}{$\bigcirc$}\settodepth{\Depth}{$\bigcirc$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(10.2500000,20.6200000){\hspace*{\Width}\raisebox{\Height}{$\bigcirc$}}% +\put(10.2500000,20.5200000){\hspace*{\Width}\raisebox{\Height}{TeXに出力}}% % \settowidth{\Width}{Pointdata}\setlength{\Width}{-0.5\Width}% \settoheight{\Height}{Pointdata}\settodepth{\Depth}{Pointdata}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% @@ -314,9 +292,9 @@ \settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% \put(10.2500000,13.1200000){\hspace*{\Width}\raisebox{\Height}{-}}% % -\settowidth{\Width}{Drawpoint3d}\setlength{\Width}{-0.5\Width}% -\settoheight{\Height}{Drawpoint3d}\settodepth{\Depth}{Drawpoint3d}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(1.6200000,12.3800000){\hspace*{\Width}\raisebox{\Height}{Drawpoint3d}}% +\settowidth{\Width}{Pointdata3d}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{Pointdata3d}\settodepth{\Depth}{Pointdata3d}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(1.6200000,12.3800000){\hspace*{\Width}\raisebox{\Height}{Pointdata3d}}% % \settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}% \settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% @@ -330,9 +308,9 @@ \settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% \put(8.2500000,12.3800000){\hspace*{\Width}\raisebox{\Height}{-}}% % -\settowidth{\Width}{-}\setlength{\Width}{-0.5\Width}% -\settoheight{\Height}{-}\settodepth{\Depth}{-}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% -\put(10.2500000,12.3800000){\hspace*{\Width}\raisebox{\Height}{-}}% +\settowidth{\Width}{$\bigcirc$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$\bigcirc$}\settodepth{\Depth}{$\bigcirc$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(10.2500000,12.3800000){\hspace*{\Width}\raisebox{\Height}{$\bigcirc$}}% % \settowidth{\Width}{Putpoint3d}\setlength{\Width}{-0.5\Width}% \settoheight{\Height}{Putpoint3d}\settodepth{\Depth}{Putpoint3d}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/phparadata04.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/phparadata04.tex new file mode 100644 index 00000000000..f3116896341 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/phparadata04.tex @@ -0,0 +1,34 @@ +%%% /Users/hannya/Desktop/fig/template3D.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(8.08,7.82)(-4.08,-2.57)% +\special{pn 8}% +% +\special{pa -598 -86}\special{pa 111 246}% +\special{fp}% +\special{pa 111 246}\special{pa 488 -161}% +\special{fp}% +\special{pa -598 -86}\special{pa 0 -878}% +\special{fp}% +\special{pa 0 -878}\special{pa 488 -161}% +\special{fp}% +\special{pa 111 246}\special{pa 0 -878}% +\special{fp}% +\special{pn 8}% +\special{pa 492 -161}\special{pa 484 -160}\special{fp}\special{pa 453 -158}\special{pa 445 -158}\special{fp}% +\special{pa 414 -156}\special{pa 406 -155}\special{fp}\special{pa 375 -153}\special{pa 367 -152}\special{fp}% +\special{pa 336 -150}\special{pa 328 -150}\special{fp}\special{pa 298 -148}\special{pa 290 -147}\special{fp}% +\special{pa 259 -145}\special{pa 251 -144}\special{fp}\special{pa 220 -142}\special{pa 212 -142}\special{fp}% +\special{pa 181 -140}\special{pa 173 -139}\special{fp}\special{pa 143 -137}\special{pa 135 -136}\special{fp}% +\special{pa 104 -134}\special{pa 96 -134}\special{fp}\special{pa 65 -131}\special{pa 57 -131}\special{fp}% +\special{pa 26 -129}\special{pa 18 -128}\special{fp}\special{pa -12 -126}\special{pa -20 -126}\special{fp}% +\special{pa -51 -123}\special{pa -59 -123}\special{fp}\special{pa -90 -121}\special{pa -98 -120}\special{fp}% +\special{pa -129 -118}\special{pa -137 -117}\special{fp}\special{pa -168 -115}\special{pa -176 -115}\special{fp}% +\special{pa -206 -113}\special{pa -214 -112}\special{fp}\special{pa -245 -110}\special{pa -253 -109}\special{fp}% +\special{pa -284 -107}\special{pa -292 -107}\special{fp}\special{pa -323 -105}\special{pa -331 -104}\special{fp}% +\special{pa -361 -102}\special{pa -369 -101}\special{fp}\special{pa -400 -99}\special{pa -408 -99}\special{fp}% +\special{pa -439 -97}\special{pa -447 -96}\special{fp}\special{pa -478 -94}\special{pa -486 -93}\special{fp}% +\special{pa -517 -91}\special{pa -525 -91}\special{fp}\special{pa -555 -88}\special{pa -563 -88}\special{fp}% +\special{pa -594 -86}\special{pa -602 -85}\special{fp}\special{pn 8}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdf b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdf index a8f3ab73092..2effbefce72 100644 Binary files a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdf and b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setorigin.pdf differ diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfbdpara05.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfbdpara05.tex new file mode 100644 index 00000000000..1de3e3649c7 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfbdpara05.tex @@ -0,0 +1,170 @@ +%%% /Users/hannya/Desktop/fig/sfbdpara05.tex +%%% Generator=template3D.cdy +{\unitlength=8mm% +\begin{picture}% +(10.34,6.13)(-3.36,-1.77)% +\special{pn 8}% +% +\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(-3.3600000,-0.8900000){\hspace*{\Width}\raisebox{\Height}{$x$}}% +% +\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(3.3300000,-1.3900000){\hspace*{\Width}\raisebox{\Height}{$y$}}% +% +\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(0.0000000,4.0100000){\hspace*{\Width}\raisebox{\Height}{$z$}}% +% +\special{pa 1234 -325}\special{pa -987 260}% +\special{fp}% +\special{pa -979 -410}\special{pa 979 410}% +\special{fp}% +\special{pa 0 557}\special{pa 0 -1188}% +\special{fp}% +\special{pa 620 -37}\special{pa 614 -48}\special{pa 613 -49}% +\special{fp}% +\special{pa 613 -49}\special{pa 608 -60}\special{pa 607 -60}% +\special{fp}% +\special{pa 607 -60}\special{pa 601 -71}\special{pa 595 -83}\special{pa 589 -94}% +\special{pa 583 -106}\special{pa 577 -117}\special{pa 570 -129}\special{pa 564 -141}% +\special{pa 558 -152}\special{pa 552 -164}\special{pa 546 -175}\special{pa 539 -187}% +\special{pa 533 -198}\special{pa 527 -210}\special{pa 521 -221}\special{pa 515 -233}% +\special{pa 508 -244}\special{pa 502 -256}\special{pa 496 -267}\special{pa 490 -279}% +\special{pa 484 -290}\special{pa 477 -302}\special{pa 471 -313}\special{pa 465 -325}% +\special{pa 459 -336}\special{pa 453 -348}\special{pa 446 -359}\special{pa 440 -371}% +\special{pa 434 -382}\special{pa 428 -394}\special{pa 422 -405}\special{pa 415 -417}% +\special{pa 409 -428}\special{pa 403 -440}\special{pa 397 -451}\special{pa 391 -463}% +\special{pa 384 -474}\special{pa 378 -486}\special{pa 372 -497}\special{pa 366 -509}% +\special{pa 360 -520}\special{pa 353 -532}\special{pa 347 -543}\special{pa 341 -555}% +\special{pa 335 -567}\special{pa 329 -578}\special{pa 322 -590}\special{pa 316 -601}% +\special{fp}% +\special{pa 316 -601}\special{pa 316 -601}\special{pa 310 -612}% +\special{fp}% +\special{pa -620 -37}\special{pa -614 -48}\special{pa -614 -49}% +\special{fp}% +\special{pa -614 -49}\special{pa -608 -60}\special{pa -601 -71}\special{pa -595 -83}% +\special{pa -589 -94}\special{pa -583 -106}\special{pa -577 -118}\special{pa -570 -129}% +\special{pa -564 -141}\special{pa -558 -152}\special{pa -552 -164}\special{pa -546 -175}% +\special{pa -539 -187}\special{pa -533 -198}\special{pa -527 -210}\special{pa -521 -221}% +\special{pa -515 -233}\special{pa -508 -244}\special{pa -502 -256}\special{pa -496 -267}% +\special{pa -490 -279}\special{pa -484 -290}\special{pa -477 -302}\special{pa -471 -313}% +\special{pa -465 -325}\special{pa -459 -336}\special{pa -453 -348}\special{pa -446 -359}% +\special{pa -440 -371}\special{pa -434 -382}\special{pa -428 -394}\special{pa -422 -405}% +\special{pa -415 -417}\special{pa -409 -428}\special{pa -403 -440}\special{pa -397 -451}% +\special{pa -391 -463}\special{pa -384 -474}\special{pa -378 -486}\special{pa -372 -497}% +\special{pa -366 -509}\special{pa -360 -520}\special{pa -353 -532}\special{pa -347 -544}% +\special{pa -341 -555}\special{pa -335 -567}\special{pa -329 -578}\special{pa -322 -590}% +\special{pa -316 -601}% +\special{fp}% +\special{pa -316 -601}\special{pa -310 -612}% +\special{fp}% +\special{pa -494 130}\special{pa -441 150}\special{pa -381 167}\special{pa -315 181}% +\special{pa -244 193}\special{pa -169 202}\special{pa -92 207}\special{pa -13 209}% +\special{pa 66 208}\special{pa 144 204}\special{pa 220 196}\special{pa 292 185}% +\special{pa 360 172}\special{pa 422 155}\special{pa 477 137}\special{pa 525 116}% +\special{pa 564 93}\special{pa 595 69}\special{pa 616 43}\special{pa 628 17}% +\special{pa 629 -9}\special{pa 621 -35}\special{pa 619 -37}% +\special{fp}% +\special{pa -619 -37}\special{pa -628 -17}\special{pa -629 9}\special{pa -621 35}% +\special{pa -603 61}\special{pa -575 85}\special{pa -539 108}\special{pa -494 130}% +\special{fp}% +\special{pa -247 -529}\special{pa -220 -519}\special{pa -190 -511}\special{pa -157 -504}% +\special{pa -122 -498}\special{pa -85 -493}\special{pa -46 -491}\special{pa -6 -490}% +\special{pa 33 -490}\special{pa 72 -492}\special{pa 110 -496}\special{pa 146 -501}% +\special{pa 180 -508}\special{pa 211 -516}\special{pa 238 -526}\special{pa 262 -536}% +\special{pa 282 -548}\special{pa 297 -560}\special{pa 308 -572}\special{pa 314 -585}% +\special{pa 315 -599}\special{pa 314 -600}% +\special{fp}% +\special{pa 314 -600}\special{pa 311 -612}\special{pa 310 -612}% +\special{fp}% +\special{pa 310 -612}\special{pa 301 -624}\special{pa 288 -637}\special{pa 269 -648}% +\special{pa 247 -659}\special{pa 220 -669}\special{pa 190 -678}\special{pa 157 -685}% +\special{pa 122 -691}\special{pa 85 -695}\special{pa 46 -698}\special{pa 6 -699}% +\special{pa -33 -698}\special{pa -72 -696}\special{pa -110 -692}\special{pa -146 -687}% +\special{pa -180 -680}\special{pa -211 -672}\special{pa -238 -662}\special{pa -262 -652}% +\special{pa -282 -641}\special{pa -297 -629}\special{pa -308 -616}\special{pa -310 -612}% +\special{fp}% +\special{pa -310 -612}\special{pa -314 -603}\special{pa -314 -600}% +\special{fp}% +\special{pa -314 -600}\special{pa -315 -590}\special{pa -311 -577}\special{pa -301 -564}% +\special{pa -288 -552}\special{pa -269 -540}\special{pa -247 -529}% +\special{fp}% +\special{pa 1948 14}\special{pa 1935 -9}\special{pa 1923 -32}\special{pa 1910 -55}% +\special{pa 1898 -78}\special{pa 1886 -101}\special{pa 1873 -124}\special{pa 1861 -147}% +\special{pa 1848 -170}\special{pa 1836 -193}\special{pa 1824 -216}\special{pa 1811 -239}% +\special{pa 1799 -262}\special{pa 1786 -285}\special{pa 1774 -308}\special{pa 1762 -331}% +\special{pa 1749 -354}\special{pa 1737 -377}\special{pa 1724 -401}\special{pa 1712 -424}% +\special{pa 1699 -447}\special{pa 1687 -470}\special{pa 1675 -493}\special{pa 1662 -516}% +\special{pa 1650 -539}\special{pa 1637 -562}\special{pa 1625 -585}\special{pa 1613 -608}% +\special{pa 1600 -631}\special{pa 1588 -654}\special{pa 1575 -677}\special{pa 1563 -700}% +\special{pa 1551 -723}\special{pa 1538 -746}\special{pa 1526 -769}\special{pa 1513 -792}% +\special{pa 1501 -815}\special{pa 1489 -838}\special{pa 1476 -861}\special{pa 1464 -884}% +\special{pa 1451 -907}\special{pa 1439 -930}\special{pa 1427 -953}\special{pa 1414 -976}% +\special{pa 1402 -999}\special{pa 1389 -1022}\special{pa 1377 -1045}\special{pa 1365 -1068}% +\special{pa 1352 -1091}\special{pa 1340 -1114}\special{pa 1327 -1137}% +\special{fp}% +\special{pa 707 14}\special{pa 720 -9}\special{pa 732 -32}\special{pa 745 -55}% +\special{pa 757 -78}\special{pa 769 -101}\special{pa 782 -124}\special{pa 794 -147}% +\special{pa 807 -170}\special{pa 819 -193}\special{pa 831 -216}\special{pa 844 -239}% +\special{pa 856 -262}\special{pa 869 -285}\special{pa 881 -308}\special{pa 893 -331}% +\special{pa 906 -354}\special{pa 918 -377}\special{pa 931 -401}\special{pa 943 -424}% +\special{pa 955 -447}\special{pa 968 -470}\special{pa 980 -493}\special{pa 993 -516}% +\special{pa 1005 -539}\special{pa 1017 -562}\special{pa 1030 -585}\special{pa 1042 -608}% +\special{pa 1055 -631}\special{pa 1067 -654}\special{pa 1079 -677}\special{pa 1092 -700}% +\special{pa 1104 -723}\special{pa 1117 -746}\special{pa 1129 -769}\special{pa 1141 -792}% +\special{pa 1154 -815}\special{pa 1166 -838}\special{pa 1179 -861}\special{pa 1191 -884}% +\special{pa 1203 -907}\special{pa 1216 -930}\special{pa 1228 -953}\special{pa 1241 -976}% +\special{pa 1253 -999}\special{pa 1265 -1022}\special{pa 1278 -1045}\special{pa 1290 -1068}% +\special{pa 1303 -1091}\special{pa 1315 -1114}\special{pa 1327 -1137}% +\special{fp}% +\special{pa 834 181}\special{pa 887 200}\special{pa 947 218}\special{pa 1013 232}% +\special{pa 1084 244}\special{pa 1158 252}\special{pa 1236 258}\special{pa 1314 260}% +\special{pa 1394 259}\special{pa 1472 255}\special{pa 1547 247}\special{pa 1619 236}% +\special{pa 1687 223}\special{pa 1749 206}\special{pa 1804 188}\special{pa 1852 167}% +\special{pa 1892 144}\special{pa 1922 120}\special{pa 1944 94}\special{pa 1955 68}% +\special{pa 1957 42}\special{pa 1949 16}\special{pa 1946 12}% +\special{fp}% +\special{pa 708 14}\special{pa 700 33}\special{pa 698 60}\special{pa 706 86}% +\special{pa 724 111}\special{pa 752 136}\special{pa 789 159}\special{pa 834 181}% +\special{fp}% +\special{pn 8}% +\special{pa 622 -34}\special{pa 617 -40}\special{fp}\special{pa 598 -65}\special{pa 592 -70}\special{fp}% +\special{pa 568 -90}\special{pa 562 -94}\special{fp}\special{pa 535 -110}\special{pa 528 -114}\special{fp}% +\special{pa 500 -127}\special{pa 493 -130}\special{fp}\special{pa 464 -141}\special{pa 456 -144}\special{fp}% +\special{pa 427 -153}\special{pa 419 -156}\special{fp}\special{pa 389 -164}\special{pa 382 -166}\special{fp}% +\special{pa 352 -173}\special{pa 344 -175}\special{fp}\special{pa 314 -181}\special{pa 306 -183}\special{fp}% +\special{pa 275 -188}\special{pa 267 -189}\special{fp}\special{pa 237 -194}\special{pa 229 -195}\special{fp}% +\special{pa 198 -198}\special{pa 190 -199}\special{fp}\special{pa 159 -202}\special{pa 151 -203}\special{fp}% +\special{pa 120 -205}\special{pa 112 -206}\special{fp}\special{pa 82 -207}\special{pa 74 -208}\special{fp}% +\special{pa 43 -208}\special{pa 35 -209}\special{fp}\special{pa 4 -209}\special{pa -4 -209}\special{fp}% +\special{pa -35 -209}\special{pa -43 -208}\special{fp}\special{pa -74 -208}\special{pa -82 -207}\special{fp}% +\special{pa -113 -206}\special{pa -121 -205}\special{fp}\special{pa -152 -203}\special{pa -160 -202}\special{fp}% +\special{pa -191 -199}\special{pa -199 -198}\special{fp}\special{pa -229 -195}\special{pa -237 -194}\special{fp}% +\special{pa -268 -189}\special{pa -276 -188}\special{fp}\special{pa -306 -183}\special{pa -314 -181}\special{fp}% +\special{pa -344 -175}\special{pa -352 -173}\special{fp}\special{pa -382 -166}\special{pa -390 -164}\special{fp}% +\special{pa -420 -156}\special{pa -428 -154}\special{fp}\special{pa -457 -144}\special{pa -464 -141}\special{fp}% +\special{pa -493 -130}\special{pa -500 -126}\special{fp}\special{pa -528 -113}\special{pa -536 -110}\special{fp}% +\special{pa -562 -94}\special{pa -569 -90}\special{fp}\special{pa -593 -70}\special{pa -599 -65}\special{fp}% +\special{pa -617 -40}\special{pa -622 -33}\special{fp}\special{pn 8}% +\special{pn 8}% +\special{pa 1949 15}\special{pa 1943 9}\special{fp}\special{pa 1924 -15}\special{pa 1919 -20}\special{fp}% +\special{pa 1894 -39}\special{pa 1888 -44}\special{fp}\special{pa 1861 -60}\special{pa 1854 -63}\special{fp}% +\special{pa 1826 -77}\special{pa 1819 -80}\special{fp}\special{pa 1790 -91}\special{pa 1782 -93}\special{fp}% +\special{pa 1753 -103}\special{pa 1746 -105}\special{fp}\special{pa 1716 -114}\special{pa 1708 -116}\special{fp}% +\special{pa 1678 -123}\special{pa 1670 -124}\special{fp}\special{pa 1640 -131}\special{pa 1632 -132}\special{fp}% +\special{pa 1602 -137}\special{pa 1594 -138}\special{fp}\special{pa 1563 -143}\special{pa 1555 -144}\special{fp}% +\special{pa 1524 -148}\special{pa 1517 -148}\special{fp}\special{pa 1486 -151}\special{pa 1478 -152}\special{fp}% +\special{pa 1447 -154}\special{pa 1439 -155}\special{fp}\special{pa 1408 -156}\special{pa 1400 -157}\special{fp}% +\special{pa 1369 -158}\special{pa 1361 -158}\special{fp}\special{pa 1330 -158}\special{pa 1322 -158}\special{fp}% +\special{pa 1292 -158}\special{pa 1284 -158}\special{fp}\special{pa 1253 -157}\special{pa 1245 -156}\special{fp}% +\special{pa 1214 -155}\special{pa 1206 -154}\special{fp}\special{pa 1175 -152}\special{pa 1167 -151}\special{fp}% +\special{pa 1136 -148}\special{pa 1128 -147}\special{fp}\special{pa 1098 -144}\special{pa 1090 -143}\special{fp}% +\special{pa 1059 -138}\special{pa 1051 -137}\special{fp}\special{pa 1021 -132}\special{pa 1013 -130}\special{fp}% +\special{pa 983 -124}\special{pa 975 -122}\special{fp}\special{pa 945 -115}\special{pa 937 -113}\special{fp}% +\special{pa 907 -105}\special{pa 900 -103}\special{fp}\special{pa 870 -93}\special{pa 863 -90}\special{fp}% +\special{pa 834 -79}\special{pa 827 -76}\special{fp}\special{pa 799 -63}\special{pa 792 -59}\special{fp}% +\special{pa 765 -43}\special{pa 758 -39}\special{fp}\special{pa 734 -20}\special{pa 729 -14}\special{fp}% +\special{pa 711 11}\special{pa 706 17}\special{fp}\special{pn 8}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfcut.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfcut.tex new file mode 100644 index 00000000000..f5ec71d0da1 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/sfcut.tex @@ -0,0 +1,85 @@ +%%% /Users/hannya/Desktop/fig/template3D.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(8.08,7.82)(-4.08,-2.57)% +\special{pn 8}% +% +\special{pa -270 -327}\special{pa -255 -302}\special{pa -249 -293}\special{pa -230 -269}% +\special{pa -222 -259}\special{pa -202 -238}\special{pa -190 -225}\special{pa -170 -207}% +\special{pa -152 -192}\special{pa -133 -178}\special{pa -108 -160}\special{pa -92 -150}% +\special{pa -61 -131}\special{pa -45 -123}\special{pa -9 -105}\special{pa 9 -98}% +\special{pa 46 -84}\special{pa 74 -75}\special{pa 102 -68}\special{pa 158 -58}% +\special{pa 158 -58}\special{pa 212 -55}\special{pa 262 -59}\special{pa 307 -70}% +\special{pa 346 -88}\special{pa 376 -111}\special{pa 377 -111}\special{pa 399 -140}% +\special{pa 406 -157}\special{pa 412 -173}\special{pa 416 -198}\special{pa 417 -209}% +\special{pa 416 -236}\special{pa 414 -247}\special{pa 408 -272}\special{pa 403 -286}% +\special{pa 394 -307}\special{pa 386 -324}\special{pa 376 -341}\special{pa 363 -361}% +\special{pa 353 -374}\special{pa 336 -396}\special{pa 327 -406}\special{pa 304 -429}% +\special{pa 296 -437}\special{pa 270 -459}\special{pa 261 -467}\special{pa 234 -487}% +\special{pa 221 -495}\special{pa 196 -511}\special{pa 176 -523}\special{pa 158 -533}% +\special{pa 125 -549}\special{pa 119 -551}\special{pa 81 -567}\special{pa 64 -572}% +\special{pa 43 -579}\special{pa 6 -588}\special{pa -12 -592}\special{pa -30 -595}% +\special{pa -64 -599}\special{pa -97 -600}\special{pa -128 -598}\special{pa -157 -594}% +\special{pa -185 -587}\special{pa -209 -578}\special{pa -232 -567}\special{pa -252 -553}% +\special{pa -269 -536}\special{pa -276 -527}\special{pa -283 -518}\special{pa -293 -496}% +\special{pa -298 -483}\special{pa -300 -473}\special{pa -303 -448}\special{pa -303 -444}% +\special{pa -302 -420}\special{pa -300 -406}\special{pa -296 -391}\special{pa -290 -370}% +\special{pa -286 -360}\special{pa -274 -335}\special{pa -270 -327}% +\special{fp}% +\special{pa 544 -28}\special{pa 533 -48}\special{pa 522 -69}\special{pa 511 -89}% +\special{pa 500 -109}\special{pa 489 -130}\special{pa 479 -150}\special{pa 468 -171}% +\special{pa 457 -191}\special{pa 446 -211}\special{pa 435 -232}\special{pa 424 -252}% +\special{pa 413 -273}\special{pa 402 -293}\special{pa 392 -313}\special{pa 381 -334}% +\special{pa 370 -354}\special{pa 359 -375}\special{pa 348 -395}\special{pa 337 -416}% +\special{pa 326 -436}\special{pa 315 -456}\special{pa 305 -477}\special{pa 294 -497}% +\special{pa 283 -518}\special{pa 272 -538}\special{pa 261 -558}\special{pa 250 -579}% +\special{pa 239 -599}\special{pa 228 -620}\special{pa 218 -640}\special{pa 207 -661}% +\special{pa 196 -681}\special{pa 185 -701}\special{pa 174 -722}\special{pa 163 -742}% +\special{pa 152 -763}\special{pa 141 -783}\special{pa 131 -803}\special{pa 120 -824}% +\special{pa 109 -844}\special{pa 98 -865}\special{pa 87 -885}\special{pa 76 -905}% +\special{pa 65 -926}\special{pa 54 -946}\special{pa 44 -967}\special{pa 33 -987}% +\special{pa 22 -1008}\special{pa 11 -1028}\special{pa 0 -1048}% +\special{fp}% +\special{pa -544 -28}\special{pa -533 -48}\special{pa -522 -69}\special{pa -511 -89}% +\special{pa -500 -109}\special{pa -489 -130}\special{pa -479 -150}\special{pa -468 -171}% +\special{pa -457 -191}\special{pa -446 -211}\special{pa -435 -232}\special{pa -424 -252}% +\special{pa -413 -273}\special{pa -402 -293}\special{pa -392 -314}\special{pa -381 -334}% +\special{pa -370 -354}\special{pa -359 -375}\special{pa -348 -395}\special{pa -337 -416}% +\special{pa -326 -436}\special{pa -315 -456}\special{pa -305 -477}\special{pa -294 -497}% +\special{pa -283 -518}\special{pa -272 -538}\special{pa -261 -558}\special{pa -250 -579}% +\special{pa -239 -599}\special{pa -228 -620}\special{pa -218 -640}\special{pa -207 -661}% +\special{pa -196 -681}\special{pa -185 -701}\special{pa -174 -722}\special{pa -163 -742}% +\special{pa -152 -763}\special{pa -141 -783}\special{pa -131 -803}\special{pa -120 -824}% +\special{pa -109 -844}\special{pa -98 -865}\special{pa -87 -885}\special{pa -76 -905}% +\special{pa -65 -926}\special{pa -54 -946}\special{pa -44 -967}\special{pa -33 -987}% +\special{pa -22 -1008}\special{pa -11 -1028}\special{pa 0 -1048}% +\special{fp}% +\special{pa -432 106}\special{pa -386 122}\special{pa -333 136}\special{pa -275 148}% +\special{pa -213 157}\special{pa -148 164}\special{pa -80 169}\special{pa -11 170}% +\special{pa 58 169}\special{pa 126 166}\special{pa 192 160}\special{pa 256 151}% +\special{pa 315 140}\special{pa 369 127}\special{pa 417 111}\special{pa 459 94}% +\special{pa 494 76}\special{pa 521 56}\special{pa 539 35}\special{pa 549 14}% +\special{pa 551 -7}\special{pa 544 -28}% +\special{fp}% +\special{pa -543 -28}\special{pa -549 -14}\special{pa -551 7}\special{pa -543 28}% +\special{pa -528 49}\special{pa -503 69}\special{pa -471 88}\special{pa -432 106}% +\special{fp}% +\special{pn 8}% +\special{pa 546 -25}\special{pa 541 -31}\special{fp}\special{pa 521 -55}\special{pa 515 -60}\special{fp}% +\special{pa 488 -78}\special{pa 481 -82}\special{fp}\special{pa 453 -96}\special{pa 446 -100}\special{fp}% +\special{pa 416 -111}\special{pa 409 -114}\special{fp}\special{pa 378 -124}\special{pa 371 -126}\special{fp}% +\special{pa 340 -134}\special{pa 332 -136}\special{fp}\special{pa 301 -142}\special{pa 293 -144}\special{fp}% +\special{pa 262 -150}\special{pa 254 -151}\special{fp}\special{pa 222 -156}\special{pa 214 -157}\special{fp}% +\special{pa 183 -160}\special{pa 175 -161}\special{fp}\special{pa 143 -164}\special{pa 135 -165}\special{fp}% +\special{pa 104 -167}\special{pa 96 -168}\special{fp}\special{pa 64 -169}\special{pa 56 -169}\special{fp}% +\special{pa 24 -170}\special{pa 16 -170}\special{fp}\special{pa -16 -170}\special{pa -24 -170}\special{fp}% +\special{pa -56 -169}\special{pa -64 -169}\special{fp}\special{pa -95 -167}\special{pa -103 -167}\special{fp}% +\special{pa -135 -165}\special{pa -143 -164}\special{fp}\special{pa -175 -161}\special{pa -183 -160}\special{fp}% +\special{pa -214 -157}\special{pa -222 -156}\special{fp}\special{pa -254 -151}\special{pa -262 -150}\special{fp}% +\special{pa -293 -144}\special{pa -301 -142}\special{fp}\special{pa -332 -136}\special{pa -340 -134}\special{fp}% +\special{pa -371 -126}\special{pa -378 -124}\special{fp}\special{pa -409 -114}\special{pa -416 -112}\special{fp}% +\special{pa -446 -100}\special{pa -453 -97}\special{fp}\special{pa -481 -82}\special{pa -488 -78}\special{fp}% +\special{pa -515 -61}\special{pa -521 -55}\special{fp}\special{pa -540 -31}\special{pa -545 -25}\special{fp}% +\special{pn 8}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodel.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodel.tex new file mode 100644 index 00000000000..63247a15295 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/surfacemodel.tex @@ -0,0 +1,2204 @@ +%%% /Users/hannya/Desktop/fig/template3D.tex +%%% Generator=template3D.cdy +{\unitlength=7mm% +\begin{picture}% +(10.5,5.74)(-2.52,-1.59)% +\special{pn 8}% +% +\special{pa 2104 -65}\special{pa 2092 -102}\special{pa 2081 -139}\special{pa 2070 -176}% +\special{pa 2059 -211}\special{pa 2048 -246}\special{pa 2037 -280}\special{pa 2025 -313}% +\special{pa 2014 -346}\special{pa 2003 -377}\special{pa 1992 -408}\special{pa 1981 -438}% +\special{pa 1974 -455}\special{pa 1969 -468}\special{pa 1958 -496}\special{pa 1947 -524}% +\special{pa 1936 -551}\special{pa 1924 -578}\special{pa 1913 -603}\special{pa 1902 -628}% +\special{pa 1890 -652}\special{pa 1879 -676}\special{pa 1868 -698}\special{pa 1856 -720}% +\special{pa 1845 -741}\special{pa 1834 -761}\special{pa 1822 -781}\special{pa 1810 -799}% +\special{pa 1803 -812}\special{pa 1799 -817}\special{pa 1787 -834}\special{pa 1776 -851}% +\special{pa 1764 -867}\special{pa 1752 -881}\special{pa 1740 -896}\special{pa 1728 -909}% +\special{pa 1716 -922}\special{pa 1703 -933}\special{pa 1690 -944}\special{pa 1683 -950}% +\special{pa 1677 -955}\special{pa 1664 -964}\special{pa 1654 -970}\special{pa 1650 -973}% +\special{pa 1634 -981}\special{pa 1617 -988}\special{pa 1602 -993}\special{pa 1596 -995}% +\special{pa 1590 -996}\special{pa 1578 -998}\special{pa 1568 -999}\special{pa 1558 -999}% +\special{pa 1548 -999}\special{pa 1538 -998}\special{pa 1527 -996}\special{pa 1520 -995}% +\special{pa 1515 -993}\special{pa 1500 -989}\special{pa 1483 -982}\special{pa 1467 -973}% +\special{pa 1462 -970}\special{pa 1453 -964}\special{pa 1439 -955}\special{pa 1433 -950}% +\special{pa 1426 -944}\special{pa 1413 -933}\special{pa 1401 -922}\special{pa 1389 -909}% +\special{pa 1376 -896}\special{pa 1364 -881}\special{pa 1353 -867}\special{pa 1341 -851}% +\special{pa 1329 -834}\special{pa 1317 -817}\special{pa 1313 -811}\special{pa 1306 -799}% +\special{pa 1294 -781}\special{pa 1283 -761}\special{pa 1271 -741}\special{pa 1260 -720}% +\special{pa 1249 -698}\special{pa 1237 -676}\special{pa 1226 -652}\special{pa 1215 -628}% +\special{pa 1203 -603}\special{pa 1192 -578}\special{pa 1181 -551}\special{pa 1169 -524}% +\special{pa 1158 -496}\special{pa 1147 -468}\special{pa 1140 -451}\special{pa 1136 -438}% +\special{pa 1124 -408}\special{pa 1113 -377}\special{pa 1102 -346}\special{pa 1091 -313}% +\special{pa 1080 -280}\special{pa 1069 -246}\special{pa 1057 -211}\special{pa 1046 -176}% +\special{pa 1035 -139}\special{pa 1024 -102}\special{pa 1013 -66}% +\special{fp}% +\special{pa 1181 176}\special{pa 1234 198}\special{pa 1293 217}\special{pa 1355 232}% +\special{pa 1421 242}\special{pa 1489 249}\special{pa 1558 251}\special{pa 1627 249}% +\special{pa 1695 242}\special{pa 1761 231}\special{pa 1824 217}\special{pa 1882 198}% +\special{pa 1936 176}\special{pa 1983 151}\special{pa 2024 123}\special{pa 2057 92}% +\special{pa 2082 60}\special{pa 2100 27}\special{pa 2108 -8}\special{pa 2108 -42}% +\special{pa 2102 -68}% +\special{fp}% +\special{pa 1014 -66}\special{pa 1008 -42}\special{pa 1008 -7}\special{pa 1017 27}% +\special{pa 1034 60}\special{pa 1060 93}\special{pa 1093 123}\special{pa 1134 151}% +\special{pa 1181 176}% +\special{fp}% +\special{pn 8}% +\special{pa 2103 -64}\special{pa 2100 -71}\special{fp}\special{pa 2088 -100}\special{pa 2084 -107}\special{fp}% +\special{pa 2065 -132}\special{pa 2060 -138}\special{fp}\special{pa 2038 -159}\special{pa 2032 -165}\special{fp}% +\special{pa 2008 -183}\special{pa 2001 -188}\special{fp}\special{pa 1975 -205}\special{pa 1968 -209}\special{fp}% +\special{pa 1941 -223}\special{pa 1933 -227}\special{fp}\special{pa 1905 -238}\special{pa 1897 -241}\special{fp}% +\special{pa 1868 -252}\special{pa 1861 -255}\special{fp}\special{pa 1831 -264}\special{pa 1823 -266}\special{fp}% +\special{pa 1793 -273}\special{pa 1785 -275}\special{fp}\special{pa 1755 -282}\special{pa 1747 -283}\special{fp}% +\special{pa 1717 -288}\special{pa 1709 -289}\special{fp}\special{pa 1678 -293}\special{pa 1670 -294}\special{fp}% +\special{pa 1639 -297}\special{pa 1631 -298}\special{fp}\special{pa 1600 -299}\special{pa 1592 -299}\special{fp}% +\special{pa 1561 -300}\special{pa 1553 -300}\special{fp}\special{pa 1522 -299}\special{pa 1514 -299}\special{fp}% +\special{pa 1483 -298}\special{pa 1475 -297}\special{fp}\special{pa 1444 -294}\special{pa 1436 -293}\special{fp}% +\special{pa 1406 -289}\special{pa 1398 -288}\special{fp}\special{pa 1367 -283}\special{pa 1359 -282}\special{fp}% +\special{pa 1329 -275}\special{pa 1321 -273}\special{fp}\special{pa 1291 -266}\special{pa 1283 -263}\special{fp}% +\special{pa 1254 -254}\special{pa 1246 -251}\special{fp}\special{pa 1217 -241}\special{pa 1210 -238}\special{fp}% +\special{pa 1181 -226}\special{pa 1174 -222}\special{fp}\special{pa 1147 -208}\special{pa 1140 -204}\special{fp}% +\special{pa 1114 -187}\special{pa 1107 -182}\special{fp}\special{pa 1083 -163}\special{pa 1077 -158}\special{fp}% +\special{pa 1055 -136}\special{pa 1050 -130}\special{fp}\special{pa 1032 -105}\special{pa 1028 -98}\special{fp}% +\special{pa 1016 -70}\special{pa 1013 -62}\special{fp}\special{pn 8}% +\special{pa 0 -955}\special{pa -2 -954}\special{pa -4 -953}\special{pa -6 -951}% +\special{pa -8 -950}\special{pa -9 -949}\special{pa -11 -948}\special{pa -13 -946}% +\special{pa -15 -945}\special{pa -17 -944}\special{pa -19 -942}\special{pa -21 -941}% +\special{pa -23 -939}\special{pa -25 -938}\special{pa -26 -936}\special{pa -28 -934}% +\special{pa -30 -932}\special{pa -32 -931}\special{pa -34 -929}\special{pa -36 -927}% +\special{pa -38 -925}\special{pa -40 -923}\special{pa -41 -921}\special{pa -43 -919}% +\special{pa -45 -917}\special{pa -47 -915}\special{pa -49 -912}\special{pa -51 -910}% +\special{pa -53 -908}\special{pa -55 -905}\special{pa -57 -903}\special{pa -58 -901}% +\special{pa -60 -898}\special{pa -62 -896}\special{pa -64 -893}\special{pa -66 -890}% +\special{pa -68 -888}\special{pa -70 -885}\special{pa -72 -882}\special{pa -74 -879}% +\special{pa -75 -876}\special{pa -77 -873}\special{pa -79 -870}\special{pa -81 -867}% +\special{pa -83 -864}\special{pa -85 -861}\special{pa -87 -858}\special{pa -89 -855}% +\special{pa -91 -851}\special{pa -92 -848}\special{pa -94 -845}\special{pa -96 -841}% +\special{pa -98 -838}\special{pa -100 -834}\special{pa -102 -831}\special{pa -104 -827}% +\special{pa -106 -824}\special{pa -107 -820}\special{pa -109 -816}\special{pa -111 -812}% +\special{pa -113 -808}\special{pa -115 -805}\special{pa -117 -801}\special{pa -119 -797}% +\special{pa -121 -793}\special{pa -123 -789}\special{pa -124 -784}\special{pa -126 -780}% +\special{pa -128 -776}\special{pa -130 -772}\special{pa -132 -767}\special{pa -134 -763}% +\special{pa -136 -759}\special{pa -138 -754}\special{pa -140 -750}\special{pa -141 -745}% +\special{pa -143 -740}\special{pa -145 -736}\special{pa -147 -731}\special{pa -149 -726}% +\special{pa -151 -722}\special{pa -153 -717}\special{pa -155 -712}\special{pa -157 -707}% +\special{pa -158 -702}\special{pa -160 -697}\special{pa -162 -692}\special{pa -164 -687}% +\special{pa -166 -681}\special{pa -168 -676}\special{pa -170 -671}\special{pa -172 -666}% +\special{pa -173 -660}\special{pa -175 -655}\special{pa -177 -649}\special{pa -179 -644}% +\special{pa -181 -638}\special{pa -183 -633}\special{pa -185 -627}\special{pa -187 -621}% +\special{pa -189 -616}\special{pa -190 -610}\special{pa -192 -604}\special{pa -194 -598}% +\special{pa -196 -592}\special{pa -198 -586}\special{pa -200 -580}\special{pa -202 -574}% +\special{pa -204 -568}\special{pa -206 -562}\special{pa -207 -555}\special{pa -209 -549}% +\special{pa -211 -543}\special{pa -213 -536}\special{pa -215 -530}\special{pa -217 -523}% +\special{pa -219 -517}\special{pa -221 -510}\special{pa -223 -504}\special{pa -224 -497}% +\special{pa -226 -490}\special{pa -228 -484}\special{pa -230 -477}\special{pa -232 -470}% +\special{pa -234 -463}\special{pa -236 -456}\special{pa -238 -449}\special{pa -239 -442}% +\special{pa -241 -435}\special{pa -243 -428}\special{pa -245 -421}\special{pa -247 -413}% +\special{pa -249 -406}\special{pa -251 -399}\special{pa -253 -391}\special{pa -255 -384}% +\special{pa -256 -377}\special{pa -258 -369}\special{pa -260 -361}\special{pa -262 -354}% +\special{pa -264 -346}\special{pa -266 -338}\special{pa -268 -331}\special{pa -270 -323}% +\special{pa -272 -315}\special{pa -273 -307}\special{pa -275 -299}\special{pa -277 -291}% +\special{pa -279 -283}\special{pa -281 -275}\special{pa -283 -267}\special{pa -285 -259}% +\special{pa -287 -251}\special{pa -289 -242}\special{pa -290 -234}\special{pa -292 -226}% +\special{pa -294 -217}\special{pa -296 -209}\special{pa -298 -200}\special{pa -300 -192}% +\special{pa -302 -183}\special{pa -304 -174}\special{pa -306 -166}\special{pa -307 -157}% +\special{pa -309 -148}\special{pa -311 -139}\special{pa -313 -130}\special{pa -315 -121}% +\special{pa -317 -112}\special{pa -319 -103}\special{pa -321 -94}\special{pa -322 -85}% +\special{pa -324 -76}\special{pa -326 -67}\special{pa -328 -57}\special{pa -330 -48}% +\special{pa -332 -39}\special{pa -334 -29}\special{pa -336 -20}\special{pa -338 -10}% +\special{pa -339 -1}\special{pa -341 9}\special{pa -343 19}\special{pa -345 28}% +\special{pa -347 38}\special{pa -349 48}\special{pa -351 58}\special{pa -353 68}% +\special{pa -355 78}\special{pa -356 88}\special{pa -358 98}\special{pa -360 108}% +\special{pa -362 118}\special{pa -364 128}\special{pa -366 139}\special{pa -368 149}% +\special{pa -370 159}\special{pa -372 170}\special{pa -373 180}\special{pa -375 190}% +\special{pa -377 201}% +\special{fp}% +\special{pa 0 -955}\special{pa -1 -953}\special{pa -2 -952}\special{pa -4 -951}% +\special{pa -5 -949}\special{pa -6 -948}\special{pa -7 -946}\special{pa -8 -945}% +\special{pa -9 -943}\special{pa -11 -942}\special{pa -12 -940}\special{pa -13 -938}% +\special{pa -14 -936}\special{pa -15 -934}\special{pa -16 -933}\special{pa -18 -931}% +\special{pa -19 -929}\special{pa -20 -927}\special{pa -21 -924}\special{pa -22 -922}% +\special{pa -23 -920}\special{pa -25 -918}\special{pa -26 -916}\special{pa -27 -913}% +\special{pa -28 -911}\special{pa -29 -909}\special{pa -30 -906}\special{pa -32 -904}% +\special{pa -33 -901}\special{pa -34 -898}\special{pa -35 -896}\special{pa -36 -893}% +\special{pa -38 -890}\special{pa -39 -888}\special{pa -40 -885}\special{pa -41 -882}% +\special{pa -42 -879}\special{pa -43 -876}\special{pa -45 -873}\special{pa -46 -870}% +\special{pa -47 -867}\special{pa -48 -863}\special{pa -49 -860}\special{pa -50 -857}% +\special{pa -52 -854}\special{pa -53 -850}\special{pa -54 -847}\special{pa -55 -843}% +\special{pa -56 -840}\special{pa -57 -836}\special{pa -59 -833}\special{pa -60 -829}% +\special{pa -61 -825}\special{pa -62 -822}\special{pa -63 -818}\special{pa -64 -814}% +\special{pa -66 -810}\special{pa -67 -806}\special{pa -68 -802}\special{pa -69 -798}% +\special{pa -70 -794}\special{pa -72 -790}\special{pa -73 -786}\special{pa -74 -781}% +\special{pa -75 -777}\special{pa -76 -773}\special{pa -77 -768}\special{pa -79 -764}% +\special{pa -80 -760}\special{pa -81 -755}\special{pa -82 -750}\special{pa -83 -746}% +\special{pa -84 -741}\special{pa -86 -736}\special{pa -87 -732}\special{pa -88 -727}% +\special{pa -89 -722}\special{pa -90 -717}\special{pa -91 -712}\special{pa -93 -707}% +\special{pa -94 -702}\special{pa -95 -697}\special{pa -96 -692}\special{pa -97 -687}% +\special{pa -98 -682}\special{pa -100 -676}\special{pa -101 -671}\special{pa -102 -666}% +\special{pa -103 -660}\special{pa -104 -655}\special{pa -106 -649}\special{pa -107 -644}% +\special{pa -108 -638}\special{pa -109 -632}\special{pa -110 -627}\special{pa -111 -621}% +\special{pa -113 -615}\special{pa -114 -609}\special{pa -115 -603}\special{pa -116 -597}% +\special{pa -117 -591}\special{pa -118 -585}\special{pa -120 -579}\special{pa -121 -573}% +\special{pa -122 -567}\special{pa -123 -561}\special{pa -124 -554}\special{pa -125 -548}% +\special{pa -127 -542}\special{pa -128 -535}\special{pa -129 -529}\special{pa -130 -522}% +\special{pa -131 -516}\special{pa -132 -509}\special{pa -134 -502}\special{pa -135 -496}% +\special{pa -136 -489}\special{pa -137 -482}\special{pa -138 -475}\special{pa -140 -468}% +\special{pa -141 -461}\special{pa -142 -454}\special{pa -143 -447}\special{pa -144 -440}% +\special{pa -145 -433}\special{pa -147 -426}\special{pa -148 -419}\special{pa -149 -411}% +\special{pa -150 -404}\special{pa -151 -397}\special{pa -152 -389}\special{pa -154 -382}% +\special{pa -155 -374}\special{pa -156 -367}\special{pa -157 -359}\special{pa -158 -351}% +\special{pa -159 -344}\special{pa -161 -336}\special{pa -162 -328}\special{pa -163 -320}% +\special{pa -164 -312}\special{pa -165 -304}\special{pa -166 -296}\special{pa -168 -288}% +\special{pa -169 -280}\special{pa -170 -272}\special{pa -171 -264}\special{pa -172 -256}% +\special{pa -174 -247}\special{pa -175 -239}\special{pa -176 -231}\special{pa -177 -222}% +\special{pa -178 -214}\special{pa -179 -205}\special{pa -181 -197}\special{pa -182 -188}% +\special{pa -183 -179}\special{pa -184 -171}\special{pa -185 -162}\special{pa -186 -153}% +\special{pa -188 -144}\special{pa -189 -135}\special{pa -190 -126}\special{pa -191 -117}% +\special{pa -192 -108}\special{pa -193 -99}\special{pa -195 -90}\special{pa -196 -81}% +\special{pa -197 -72}\special{pa -198 -62}\special{pa -199 -53}\special{pa -200 -44}% +\special{pa -202 -34}\special{pa -203 -25}\special{pa -204 -15}\special{pa -205 -6}% +\special{pa -206 4}\special{pa -208 14}\special{pa -209 23}\special{pa -210 33}% +\special{pa -211 43}\special{pa -212 53}\special{pa -213 63}\special{pa -215 73}% +\special{pa -216 83}\special{pa -217 93}\special{pa -218 103}\special{pa -219 113}% +\special{pa -220 123}\special{pa -222 134}\special{pa -223 144}\special{pa -224 154}% +\special{pa -225 165}\special{pa -226 175}\special{pa -227 186}\special{pa -229 196}% +\special{pa -230 207}\special{pa -231 217}\special{pa -232 228}\special{pa -233 239}% +\special{pa -235 249}% +\special{fp}% +\special{pa 0 -955}\special{pa -0 -953}\special{pa -1 -952}\special{pa -1 -950}% +\special{pa -1 -949}\special{pa -2 -947}\special{pa -2 -946}\special{pa -2 -944}% +\special{pa -3 -942}\special{pa -3 -940}\special{pa -3 -939}\special{pa -4 -937}% +\special{pa -4 -935}\special{pa -4 -933}\special{pa -5 -931}\special{pa -5 -929}% +\special{pa -6 -927}\special{pa -6 -925}\special{pa -6 -922}\special{pa -7 -920}% +\special{pa -7 -918}\special{pa -7 -915}\special{pa -8 -913}\special{pa -8 -911}% +\special{pa -8 -908}\special{pa -9 -906}\special{pa -9 -903}\special{pa -9 -900}% +\special{pa -10 -898}\special{pa -10 -895}\special{pa -10 -892}\special{pa -11 -889}% +\special{pa -11 -886}\special{pa -11 -884}\special{pa -12 -881}\special{pa -12 -878}% +\special{pa -12 -875}\special{pa -13 -871}\special{pa -13 -868}\special{pa -13 -865}% +\special{pa -14 -862}\special{pa -14 -859}\special{pa -14 -855}\special{pa -15 -852}% +\special{pa -15 -848}\special{pa -15 -845}\special{pa -16 -841}\special{pa -16 -838}% +\special{pa -17 -834}\special{pa -17 -830}\special{pa -17 -827}\special{pa -18 -823}% +\special{pa -18 -819}\special{pa -18 -815}\special{pa -19 -811}\special{pa -19 -807}% +\special{pa -19 -803}\special{pa -20 -799}\special{pa -20 -795}\special{pa -20 -791}% +\special{pa -21 -787}\special{pa -21 -782}\special{pa -21 -778}\special{pa -22 -774}% +\special{pa -22 -769}\special{pa -22 -765}\special{pa -23 -760}\special{pa -23 -756}% +\special{pa -23 -751}\special{pa -24 -747}\special{pa -24 -742}\special{pa -24 -737}% +\special{pa -25 -733}\special{pa -25 -728}\special{pa -25 -723}\special{pa -26 -718}% +\special{pa -26 -713}\special{pa -27 -708}\special{pa -27 -703}\special{pa -27 -698}% +\special{pa -28 -693}\special{pa -28 -687}\special{pa -28 -682}\special{pa -29 -677}% +\special{pa -29 -671}\special{pa -29 -666}\special{pa -30 -661}\special{pa -30 -655}% +\special{pa -30 -650}\special{pa -31 -644}\special{pa -31 -638}\special{pa -31 -633}% +\special{pa -32 -627}\special{pa -32 -621}\special{pa -32 -615}\special{pa -33 -609}% +\special{pa -33 -603}\special{pa -33 -597}\special{pa -34 -591}\special{pa -34 -585}% +\special{pa -34 -579}\special{pa -35 -573}\special{pa -35 -567}\special{pa -35 -561}% +\special{pa -36 -554}\special{pa -36 -548}\special{pa -37 -542}\special{pa -37 -535}% +\special{pa -37 -529}\special{pa -38 -522}\special{pa -38 -515}\special{pa -38 -509}% +\special{pa -39 -502}\special{pa -39 -495}\special{pa -39 -489}\special{pa -40 -482}% +\special{pa -40 -475}\special{pa -40 -468}\special{pa -41 -461}\special{pa -41 -454}% +\special{pa -41 -447}\special{pa -42 -440}\special{pa -42 -433}\special{pa -42 -425}% +\special{pa -43 -418}\special{pa -43 -411}\special{pa -43 -404}\special{pa -44 -396}% +\special{pa -44 -389}\special{pa -44 -381}\special{pa -45 -374}\special{pa -45 -366}% +\special{pa -45 -358}\special{pa -46 -351}\special{pa -46 -343}\special{pa -46 -335}% +\special{pa -47 -327}\special{pa -47 -319}\special{pa -48 -311}\special{pa -48 -304}% +\special{pa -48 -295}\special{pa -49 -287}\special{pa -49 -279}\special{pa -49 -271}% +\special{pa -50 -263}\special{pa -50 -255}\special{pa -50 -246}\special{pa -51 -238}% +\special{pa -51 -230}\special{pa -51 -221}\special{pa -52 -213}\special{pa -52 -204}% +\special{pa -52 -195}\special{pa -53 -187}\special{pa -53 -178}\special{pa -53 -169}% +\special{pa -54 -161}\special{pa -54 -152}\special{pa -54 -143}\special{pa -55 -134}% +\special{pa -55 -125}\special{pa -55 -116}\special{pa -56 -107}\special{pa -56 -98}% +\special{pa -56 -89}\special{pa -57 -79}\special{pa -57 -70}\special{pa -58 -61}% +\special{pa -58 -51}\special{pa -58 -42}\special{pa -59 -33}\special{pa -59 -23}% +\special{pa -59 -13}\special{pa -60 -4}\special{pa -60 6}\special{pa -60 15}% +\special{pa -61 25}\special{pa -61 35}\special{pa -61 45}\special{pa -62 55}% +\special{pa -62 65}\special{pa -62 75}\special{pa -63 85}\special{pa -63 95}% +\special{pa -63 105}\special{pa -64 115}\special{pa -64 125}\special{pa -64 136}% +\special{pa -65 146}\special{pa -65 156}\special{pa -65 167}\special{pa -66 177}% +\special{pa -66 188}\special{pa -66 198}\special{pa -67 209}\special{pa -67 219}% +\special{pa -68 230}\special{pa -68 241}\special{pa -68 252}\special{pa -69 263}% +\special{pa -69 273}% +\special{fp}% +\special{pa 0 -955}\special{pa 1 -953}\special{pa 1 -952}\special{pa 2 -950}% +\special{pa 2 -949}\special{pa 3 -947}\special{pa 3 -946}\special{pa 4 -944}% +\special{pa 4 -942}\special{pa 5 -941}\special{pa 5 -939}\special{pa 6 -937}% +\special{pa 6 -935}\special{pa 7 -933}\special{pa 7 -931}\special{pa 8 -929}% +\special{pa 8 -927}\special{pa 9 -925}\special{pa 9 -923}\special{pa 10 -920}% +\special{pa 10 -918}\special{pa 11 -916}\special{pa 11 -913}\special{pa 12 -911}% +\special{pa 12 -908}\special{pa 13 -906}\special{pa 13 -903}\special{pa 14 -901}% +\special{pa 14 -898}\special{pa 15 -895}\special{pa 16 -893}\special{pa 16 -890}% +\special{pa 17 -887}\special{pa 17 -884}\special{pa 18 -881}\special{pa 18 -878}% +\special{pa 19 -875}\special{pa 19 -872}\special{pa 20 -869}\special{pa 20 -866}% +\special{pa 21 -862}\special{pa 21 -859}\special{pa 22 -856}\special{pa 22 -852}% +\special{pa 23 -849}\special{pa 23 -845}\special{pa 24 -842}\special{pa 24 -838}% +\special{pa 25 -835}\special{pa 25 -831}\special{pa 26 -827}\special{pa 26 -824}% +\special{pa 27 -820}\special{pa 27 -816}\special{pa 28 -812}\special{pa 28 -808}% +\special{pa 29 -804}\special{pa 29 -800}\special{pa 30 -796}\special{pa 31 -792}% +\special{pa 31 -788}\special{pa 32 -783}\special{pa 32 -779}\special{pa 33 -775}% +\special{pa 33 -770}\special{pa 34 -766}\special{pa 34 -761}\special{pa 35 -757}% +\special{pa 35 -752}\special{pa 36 -748}\special{pa 36 -743}\special{pa 37 -738}% +\special{pa 37 -733}\special{pa 38 -729}\special{pa 38 -724}\special{pa 39 -719}% +\special{pa 39 -714}\special{pa 40 -709}\special{pa 40 -704}\special{pa 41 -699}% +\special{pa 41 -694}\special{pa 42 -688}\special{pa 42 -683}\special{pa 43 -678}% +\special{pa 43 -673}\special{pa 44 -667}\special{pa 44 -662}\special{pa 45 -656}% +\special{pa 46 -651}\special{pa 46 -645}\special{pa 47 -640}\special{pa 47 -634}% +\special{pa 48 -628}\special{pa 48 -622}\special{pa 49 -617}\special{pa 49 -611}% +\special{pa 50 -605}\special{pa 50 -599}\special{pa 51 -593}\special{pa 51 -587}% +\special{pa 52 -581}\special{pa 52 -575}\special{pa 53 -568}\special{pa 53 -562}% +\special{pa 54 -556}\special{pa 54 -549}\special{pa 55 -543}\special{pa 55 -537}% +\special{pa 56 -530}\special{pa 56 -524}\special{pa 57 -517}\special{pa 57 -510}% +\special{pa 58 -504}\special{pa 58 -497}\special{pa 59 -490}\special{pa 60 -483}% +\special{pa 60 -477}\special{pa 61 -470}\special{pa 61 -463}\special{pa 62 -456}% +\special{pa 62 -449}\special{pa 63 -441}\special{pa 63 -434}\special{pa 64 -427}% +\special{pa 64 -420}\special{pa 65 -413}\special{pa 65 -405}\special{pa 66 -398}% +\special{pa 66 -390}\special{pa 67 -383}\special{pa 67 -375}\special{pa 68 -368}% +\special{pa 68 -360}\special{pa 69 -352}\special{pa 69 -345}\special{pa 70 -337}% +\special{pa 70 -329}\special{pa 71 -321}\special{pa 71 -313}\special{pa 72 -305}% +\special{pa 72 -297}\special{pa 73 -289}\special{pa 73 -281}\special{pa 74 -273}% +\special{pa 75 -265}\special{pa 75 -257}\special{pa 76 -248}\special{pa 76 -240}% +\special{pa 77 -232}\special{pa 77 -223}\special{pa 78 -215}\special{pa 78 -206}% +\special{pa 79 -198}\special{pa 79 -189}\special{pa 80 -180}\special{pa 80 -171}% +\special{pa 81 -163}\special{pa 81 -154}\special{pa 82 -145}\special{pa 82 -136}% +\special{pa 83 -127}\special{pa 83 -118}\special{pa 84 -109}\special{pa 84 -100}% +\special{pa 85 -91}\special{pa 85 -82}\special{pa 86 -72}\special{pa 86 -63}% +\special{pa 87 -54}\special{pa 87 -44}\special{pa 88 -35}\special{pa 88 -25}% +\special{pa 89 -16}\special{pa 90 -6}\special{pa 90 3}\special{pa 91 13}% +\special{pa 91 23}\special{pa 92 33}\special{pa 92 42}\special{pa 93 52}% +\special{pa 93 62}\special{pa 94 72}\special{pa 94 82}\special{pa 95 92}% +\special{pa 95 102}\special{pa 96 113}\special{pa 96 123}\special{pa 97 133}% +\special{pa 97 143}\special{pa 98 154}\special{pa 98 164}\special{pa 99 175}% +\special{pa 99 185}\special{pa 100 196}\special{pa 100 206}\special{pa 101 217}% +\special{pa 101 227}\special{pa 102 238}\special{pa 102 249}\special{pa 103 260}% +\special{pa 103 271}% +\special{fp}% +\special{pa 0 -955}\special{pa 1 -953}\special{pa 3 -952}\special{pa 4 -951}% +\special{pa 5 -949}\special{pa 7 -948}\special{pa 8 -947}\special{pa 9 -945}% +\special{pa 11 -943}\special{pa 12 -942}\special{pa 13 -940}\special{pa 15 -939}% +\special{pa 16 -937}\special{pa 17 -935}\special{pa 19 -933}\special{pa 20 -931}% +\special{pa 21 -929}\special{pa 23 -927}\special{pa 24 -925}\special{pa 25 -923}% +\special{pa 27 -921}\special{pa 28 -919}\special{pa 29 -917}\special{pa 31 -914}% +\special{pa 32 -912}\special{pa 33 -910}\special{pa 35 -907}\special{pa 36 -905}% +\special{pa 37 -902}\special{pa 39 -900}\special{pa 40 -897}\special{pa 41 -894}% +\special{pa 43 -892}\special{pa 44 -889}\special{pa 45 -886}\special{pa 46 -883}% +\special{pa 48 -880}\special{pa 49 -877}\special{pa 50 -874}\special{pa 52 -871}% +\special{pa 53 -868}\special{pa 54 -865}\special{pa 56 -862}\special{pa 57 -859}% +\special{pa 58 -855}\special{pa 60 -852}\special{pa 61 -849}\special{pa 62 -845}% +\special{pa 64 -842}\special{pa 65 -838}\special{pa 66 -835}\special{pa 68 -831}% +\special{pa 69 -827}\special{pa 70 -824}\special{pa 72 -820}\special{pa 73 -816}% +\special{pa 74 -812}\special{pa 76 -808}\special{pa 77 -804}\special{pa 78 -800}% +\special{pa 80 -796}\special{pa 81 -792}\special{pa 82 -788}\special{pa 84 -784}% +\special{pa 85 -780}\special{pa 86 -775}\special{pa 88 -771}\special{pa 89 -767}% +\special{pa 90 -762}\special{pa 92 -758}\special{pa 93 -753}\special{pa 94 -749}% +\special{pa 96 -744}\special{pa 97 -739}\special{pa 98 -735}\special{pa 100 -730}% +\special{pa 101 -725}\special{pa 102 -720}\special{pa 104 -715}\special{pa 105 -710}% +\special{pa 106 -705}\special{pa 108 -700}\special{pa 109 -695}\special{pa 110 -690}% +\special{pa 112 -685}\special{pa 113 -680}\special{pa 114 -674}\special{pa 116 -669}% +\special{pa 117 -664}\special{pa 118 -658}\special{pa 120 -653}\special{pa 121 -647}% +\special{pa 122 -642}\special{pa 124 -636}\special{pa 125 -630}\special{pa 126 -625}% +\special{pa 128 -619}\special{pa 129 -613}\special{pa 130 -607}\special{pa 132 -601}% +\special{pa 133 -595}\special{pa 134 -589}\special{pa 136 -583}\special{pa 137 -577}% +\special{pa 138 -571}\special{pa 139 -565}\special{pa 141 -559}\special{pa 142 -552}% +\special{pa 143 -546}\special{pa 145 -540}\special{pa 146 -533}\special{pa 147 -527}% +\special{pa 149 -520}\special{pa 150 -513}\special{pa 151 -507}\special{pa 153 -500}% +\special{pa 154 -493}\special{pa 155 -487}\special{pa 157 -480}\special{pa 158 -473}% +\special{pa 159 -466}\special{pa 161 -459}\special{pa 162 -452}\special{pa 163 -445}% +\special{pa 165 -438}\special{pa 166 -431}\special{pa 167 -424}\special{pa 169 -416}% +\special{pa 170 -409}\special{pa 171 -402}\special{pa 173 -394}\special{pa 174 -387}% +\special{pa 175 -379}\special{pa 177 -372}\special{pa 178 -364}\special{pa 179 -357}% +\special{pa 181 -349}\special{pa 182 -341}\special{pa 183 -334}\special{pa 185 -326}% +\special{pa 186 -318}\special{pa 187 -310}\special{pa 189 -302}\special{pa 190 -294}% +\special{pa 191 -286}\special{pa 193 -278}\special{pa 194 -270}\special{pa 195 -261}% +\special{pa 197 -253}\special{pa 198 -245}\special{pa 199 -237}\special{pa 201 -228}% +\special{pa 202 -220}\special{pa 203 -211}\special{pa 205 -203}\special{pa 206 -194}% +\special{pa 207 -186}\special{pa 209 -177}\special{pa 210 -168}\special{pa 211 -159}% +\special{pa 213 -151}\special{pa 214 -142}\special{pa 215 -133}\special{pa 217 -124}% +\special{pa 218 -115}\special{pa 219 -106}\special{pa 221 -97}\special{pa 222 -87}% +\special{pa 223 -78}\special{pa 225 -69}\special{pa 226 -60}\special{pa 227 -50}% +\special{pa 229 -41}\special{pa 230 -32}\special{pa 231 -22}\special{pa 232 -12}% +\special{pa 234 -3}\special{pa 235 7}\special{pa 236 16}\special{pa 238 26}% +\special{pa 239 36}\special{pa 240 46}\special{pa 242 56}\special{pa 243 66}% +\special{pa 244 75}\special{pa 246 86}\special{pa 247 96}\special{pa 248 106}% +\special{pa 250 116}\special{pa 251 126}\special{pa 252 136}\special{pa 254 147}% +\special{pa 255 157}\special{pa 256 167}\special{pa 258 178}\special{pa 259 188}% +\special{pa 260 199}\special{pa 262 209}\special{pa 263 220}\special{pa 264 231}% +\special{pa 266 241}% +\special{fp}% +\special{pa 0 -955}\special{pa 2 -954}\special{pa 4 -953}\special{pa 6 -952}% +\special{pa 8 -951}\special{pa 10 -949}\special{pa 12 -948}\special{pa 14 -947}% +\special{pa 16 -946}\special{pa 18 -944}\special{pa 20 -943}\special{pa 22 -941}% +\special{pa 24 -940}\special{pa 26 -938}\special{pa 28 -937}\special{pa 30 -935}% +\special{pa 32 -933}\special{pa 34 -932}\special{pa 36 -930}\special{pa 38 -928}% +\special{pa 40 -926}\special{pa 42 -924}\special{pa 44 -922}\special{pa 46 -920}% +\special{pa 48 -918}\special{pa 50 -916}\special{pa 52 -914}\special{pa 54 -912}% +\special{pa 56 -910}\special{pa 58 -907}\special{pa 60 -905}\special{pa 62 -903}% +\special{pa 64 -900}\special{pa 66 -898}\special{pa 68 -895}\special{pa 70 -892}% +\special{pa 72 -890}\special{pa 74 -887}\special{pa 76 -884}\special{pa 78 -882}% +\special{pa 80 -879}\special{pa 82 -876}\special{pa 84 -873}\special{pa 86 -870}% +\special{pa 88 -867}\special{pa 90 -864}\special{pa 92 -861}\special{pa 94 -858}% +\special{pa 96 -854}\special{pa 98 -851}\special{pa 100 -848}\special{pa 102 -845}% +\special{pa 105 -841}\special{pa 107 -838}\special{pa 109 -834}\special{pa 111 -831}% +\special{pa 113 -827}\special{pa 115 -823}\special{pa 117 -820}\special{pa 119 -816}% +\special{pa 121 -812}\special{pa 123 -808}\special{pa 125 -804}\special{pa 127 -801}% +\special{pa 129 -797}\special{pa 131 -793}\special{pa 133 -788}\special{pa 135 -784}% +\special{pa 137 -780}\special{pa 139 -776}\special{pa 141 -772}\special{pa 143 -767}% +\special{pa 145 -763}\special{pa 147 -759}\special{pa 149 -754}\special{pa 151 -750}% +\special{pa 153 -745}\special{pa 155 -741}\special{pa 157 -736}\special{pa 159 -731}% +\special{pa 161 -726}\special{pa 163 -722}\special{pa 165 -717}\special{pa 167 -712}% +\special{pa 169 -707}\special{pa 171 -702}\special{pa 173 -697}\special{pa 175 -692}% +\special{pa 177 -687}\special{pa 179 -682}\special{pa 181 -676}\special{pa 183 -671}% +\special{pa 185 -666}\special{pa 187 -661}\special{pa 189 -655}\special{pa 191 -650}% +\special{pa 193 -644}\special{pa 195 -639}\special{pa 197 -633}\special{pa 199 -627}% +\special{pa 201 -622}\special{pa 203 -616}\special{pa 205 -610}\special{pa 207 -604}% +\special{pa 209 -598}\special{pa 211 -593}\special{pa 213 -587}\special{pa 215 -581}% +\special{pa 217 -574}\special{pa 219 -568}\special{pa 221 -562}\special{pa 223 -556}% +\special{pa 225 -550}\special{pa 227 -543}\special{pa 229 -537}\special{pa 231 -531}% +\special{pa 233 -524}\special{pa 235 -518}\special{pa 237 -511}\special{pa 239 -504}% +\special{pa 241 -498}\special{pa 243 -491}\special{pa 245 -484}\special{pa 247 -478}% +\special{pa 249 -471}\special{pa 251 -464}\special{pa 253 -457}\special{pa 255 -450}% +\special{pa 257 -443}\special{pa 259 -436}\special{pa 261 -429}\special{pa 263 -422}% +\special{pa 265 -414}\special{pa 267 -407}\special{pa 269 -400}\special{pa 271 -392}% +\special{pa 273 -385}\special{pa 275 -378}\special{pa 277 -370}\special{pa 279 -362}% +\special{pa 281 -355}\special{pa 283 -347}\special{pa 285 -340}\special{pa 287 -332}% +\special{pa 289 -324}\special{pa 291 -316}\special{pa 293 -308}\special{pa 295 -300}% +\special{pa 297 -292}\special{pa 299 -284}\special{pa 301 -276}\special{pa 303 -268}% +\special{pa 305 -260}\special{pa 307 -252}\special{pa 309 -243}\special{pa 311 -235}% +\special{pa 314 -227}\special{pa 316 -218}\special{pa 318 -210}\special{pa 320 -201}% +\special{pa 322 -193}\special{pa 324 -184}\special{pa 326 -176}\special{pa 328 -167}% +\special{pa 330 -158}\special{pa 332 -149}\special{pa 334 -140}\special{pa 336 -132}% +\special{pa 338 -123}\special{pa 340 -114}\special{pa 342 -105}\special{pa 344 -96}% +\special{pa 346 -86}\special{pa 348 -77}\special{pa 350 -68}\special{pa 352 -59}% +\special{pa 354 -49}\special{pa 356 -40}\special{pa 358 -31}\special{pa 360 -21}% +\special{pa 362 -12}\special{pa 364 -2}\special{pa 366 8}\special{pa 368 17}% +\special{pa 370 27}\special{pa 372 37}\special{pa 374 46}\special{pa 376 56}% +\special{pa 378 66}\special{pa 380 76}\special{pa 382 86}\special{pa 384 96}% +\special{pa 386 106}\special{pa 388 116}\special{pa 390 127}\special{pa 392 137}% +\special{pa 394 147}\special{pa 396 157}\special{pa 398 168}\special{pa 400 178}% +\special{pa 402 189}% +\special{fp}% +\special{pa 0 -955}\special{pa 2 -954}\special{pa 5 -953}\special{pa 7 -953}% +\special{pa 10 -952}\special{pa 12 -951}\special{pa 15 -950}\special{pa 17 -949}% +\special{pa 20 -948}\special{pa 22 -947}\special{pa 25 -946}\special{pa 27 -945}% +\special{pa 30 -944}\special{pa 32 -943}\special{pa 35 -942}\special{pa 37 -941}% +\special{pa 40 -939}\special{pa 42 -938}\special{pa 45 -936}\special{pa 47 -935}% +\special{pa 50 -933}\special{pa 52 -932}\special{pa 55 -930}\special{pa 57 -929}% +\special{pa 60 -927}\special{pa 62 -925}\special{pa 65 -923}\special{pa 67 -921}% +\special{pa 70 -920}\special{pa 72 -918}\special{pa 75 -916}\special{pa 77 -914}% +\special{pa 80 -911}\special{pa 82 -909}\special{pa 85 -907}\special{pa 87 -905}% +\special{pa 90 -903}\special{pa 92 -900}\special{pa 95 -898}\special{pa 97 -896}% +\special{pa 100 -893}\special{pa 102 -891}\special{pa 105 -888}\special{pa 107 -885}% +\special{pa 110 -883}\special{pa 112 -880}\special{pa 115 -877}\special{pa 117 -874}% +\special{pa 120 -872}\special{pa 122 -869}\special{pa 125 -866}\special{pa 127 -863}% +\special{pa 130 -860}\special{pa 132 -857}\special{pa 135 -853}\special{pa 137 -850}% +\special{pa 140 -847}\special{pa 142 -844}\special{pa 145 -840}\special{pa 147 -837}% +\special{pa 150 -834}\special{pa 152 -830}\special{pa 155 -827}\special{pa 157 -823}% +\special{pa 160 -819}\special{pa 162 -816}\special{pa 165 -812}\special{pa 167 -808}% +\special{pa 170 -804}\special{pa 172 -801}\special{pa 175 -797}\special{pa 177 -793}% +\special{pa 180 -789}\special{pa 182 -785}\special{pa 185 -781}\special{pa 187 -776}% +\special{pa 190 -772}\special{pa 192 -768}\special{pa 195 -764}\special{pa 197 -759}% +\special{pa 200 -755}\special{pa 202 -751}\special{pa 205 -746}\special{pa 207 -742}% +\special{pa 210 -737}\special{pa 212 -732}\special{pa 214 -728}\special{pa 217 -723}% +\special{pa 219 -718}\special{pa 222 -713}\special{pa 224 -709}\special{pa 227 -704}% +\special{pa 229 -699}\special{pa 232 -694}\special{pa 234 -689}\special{pa 237 -684}% +\special{pa 239 -678}\special{pa 242 -673}\special{pa 244 -668}\special{pa 247 -663}% +\special{pa 249 -657}\special{pa 252 -652}\special{pa 254 -647}\special{pa 257 -641}% +\special{pa 259 -636}\special{pa 262 -630}\special{pa 264 -624}\special{pa 267 -619}% +\special{pa 269 -613}\special{pa 272 -607}\special{pa 274 -601}\special{pa 277 -596}% +\special{pa 279 -590}\special{pa 282 -584}\special{pa 284 -578}\special{pa 287 -572}% +\special{pa 289 -566}\special{pa 292 -559}\special{pa 294 -553}\special{pa 297 -547}% +\special{pa 299 -541}\special{pa 302 -534}\special{pa 304 -528}\special{pa 307 -521}% +\special{pa 309 -515}\special{pa 312 -508}\special{pa 314 -502}\special{pa 317 -495}% +\special{pa 319 -489}\special{pa 322 -482}\special{pa 324 -475}\special{pa 327 -468}% +\special{pa 329 -461}\special{pa 332 -455}\special{pa 334 -448}\special{pa 337 -441}% +\special{pa 339 -434}\special{pa 342 -426}\special{pa 344 -419}\special{pa 347 -412}% +\special{pa 349 -405}\special{pa 352 -398}\special{pa 354 -390}\special{pa 357 -383}% +\special{pa 359 -375}\special{pa 362 -368}\special{pa 364 -360}\special{pa 367 -353}% +\special{pa 369 -345}\special{pa 372 -337}\special{pa 374 -330}\special{pa 377 -322}% +\special{pa 379 -314}\special{pa 382 -306}\special{pa 384 -298}\special{pa 387 -290}% +\special{pa 389 -282}\special{pa 392 -274}\special{pa 394 -266}\special{pa 397 -258}% +\special{pa 399 -250}\special{pa 402 -242}\special{pa 404 -233}\special{pa 407 -225}% +\special{pa 409 -217}\special{pa 412 -208}\special{pa 414 -200}\special{pa 417 -191}% +\special{pa 419 -183}\special{pa 421 -174}\special{pa 424 -165}\special{pa 426 -157}% +\special{pa 429 -148}\special{pa 431 -139}\special{pa 434 -130}\special{pa 436 -121}% +\special{pa 439 -112}\special{pa 441 -103}\special{pa 444 -94}\special{pa 446 -85}% +\special{pa 449 -76}\special{pa 451 -67}\special{pa 454 -57}\special{pa 456 -48}% +\special{pa 459 -39}\special{pa 461 -29}\special{pa 464 -20}\special{pa 466 -10}% +\special{pa 469 -1}\special{pa 471 9}\special{pa 474 18}\special{pa 476 28}% +\special{pa 479 38}\special{pa 481 47}\special{pa 484 57}\special{pa 486 67}% +\special{pa 489 77}\special{pa 491 87}\special{pa 494 97}\special{pa 496 107}% +\special{pa 499 117}% +\special{fp}% +\special{pa 0 -955}\special{pa 3 -954}\special{pa 5 -954}\special{pa 8 -954}% +\special{pa 11 -954}\special{pa 14 -953}\special{pa 16 -953}\special{pa 19 -952}% +\special{pa 22 -952}\special{pa 25 -951}\special{pa 27 -951}\special{pa 30 -950}% +\special{pa 33 -949}\special{pa 36 -948}\special{pa 38 -948}\special{pa 41 -947}% +\special{pa 44 -946}\special{pa 46 -945}\special{pa 49 -944}\special{pa 52 -943}% +\special{pa 55 -942}\special{pa 57 -941}\special{pa 60 -939}\special{pa 63 -938}% +\special{pa 66 -937}\special{pa 68 -935}\special{pa 71 -934}\special{pa 74 -933}% +\special{pa 77 -931}\special{pa 79 -930}\special{pa 82 -928}\special{pa 85 -926}% +\special{pa 87 -925}\special{pa 90 -923}\special{pa 93 -921}\special{pa 96 -919}% +\special{pa 98 -918}\special{pa 101 -916}\special{pa 104 -914}\special{pa 107 -912}% +\special{pa 109 -910}\special{pa 112 -907}\special{pa 115 -905}\special{pa 118 -903}% +\special{pa 120 -901}\special{pa 123 -899}\special{pa 126 -896}\special{pa 129 -894}% +\special{pa 131 -891}\special{pa 134 -889}\special{pa 137 -886}\special{pa 139 -884}% +\special{pa 142 -881}\special{pa 145 -879}\special{pa 148 -876}\special{pa 150 -873}% +\special{pa 153 -870}\special{pa 156 -867}\special{pa 159 -864}\special{pa 161 -861}% +\special{pa 164 -858}\special{pa 167 -855}\special{pa 170 -852}\special{pa 172 -849}% +\special{pa 175 -846}\special{pa 178 -843}\special{pa 180 -839}\special{pa 183 -836}% +\special{pa 186 -833}\special{pa 189 -829}\special{pa 191 -826}\special{pa 194 -822}% +\special{pa 197 -819}\special{pa 200 -815}\special{pa 202 -811}\special{pa 205 -808}% +\special{pa 208 -804}\special{pa 211 -800}\special{pa 213 -796}\special{pa 216 -792}% +\special{pa 219 -788}\special{pa 221 -784}\special{pa 224 -780}\special{pa 227 -776}% +\special{pa 230 -772}\special{pa 232 -768}\special{pa 235 -763}\special{pa 238 -759}% +\special{pa 241 -755}\special{pa 243 -750}\special{pa 246 -746}\special{pa 249 -741}% +\special{pa 252 -737}\special{pa 254 -732}\special{pa 257 -728}\special{pa 260 -723}% +\special{pa 262 -718}\special{pa 265 -713}\special{pa 268 -709}\special{pa 271 -704}% +\special{pa 273 -699}\special{pa 276 -694}\special{pa 279 -689}\special{pa 282 -684}% +\special{pa 284 -679}\special{pa 287 -673}\special{pa 290 -668}\special{pa 293 -663}% +\special{pa 295 -658}\special{pa 298 -652}\special{pa 301 -647}\special{pa 304 -641}% +\special{pa 306 -636}\special{pa 309 -630}\special{pa 312 -625}\special{pa 314 -619}% +\special{pa 317 -614}\special{pa 320 -608}\special{pa 323 -602}\special{pa 325 -596}% +\special{pa 328 -590}\special{pa 331 -584}\special{pa 334 -578}\special{pa 336 -572}% +\special{pa 339 -566}\special{pa 342 -560}\special{pa 345 -554}\special{pa 347 -548}% +\special{pa 350 -542}\special{pa 353 -535}\special{pa 355 -529}\special{pa 358 -523}% +\special{pa 361 -516}\special{pa 364 -510}\special{pa 366 -503}\special{pa 369 -496}% +\special{pa 372 -490}\special{pa 375 -483}\special{pa 377 -476}\special{pa 380 -470}% +\special{pa 383 -463}\special{pa 386 -456}\special{pa 388 -449}\special{pa 391 -442}% +\special{pa 394 -435}\special{pa 396 -428}\special{pa 399 -421}\special{pa 402 -414}% +\special{pa 405 -406}\special{pa 407 -399}\special{pa 410 -392}\special{pa 413 -384}% +\special{pa 416 -377}\special{pa 418 -370}\special{pa 421 -362}\special{pa 424 -355}% +\special{pa 427 -347}\special{pa 429 -339}\special{pa 432 -332}\special{pa 435 -324}% +\special{pa 437 -316}\special{pa 440 -308}\special{pa 443 -300}\special{pa 446 -292}% +\special{pa 448 -285}\special{pa 451 -276}\special{pa 454 -268}\special{pa 457 -260}% +\special{pa 459 -252}\special{pa 462 -244}\special{pa 465 -236}\special{pa 468 -227}% +\special{pa 470 -219}\special{pa 473 -211}\special{pa 476 -202}\special{pa 479 -194}% +\special{pa 481 -185}\special{pa 484 -176}\special{pa 487 -168}\special{pa 489 -159}% +\special{pa 492 -150}\special{pa 495 -142}\special{pa 498 -133}\special{pa 500 -124}% +\special{pa 503 -115}\special{pa 506 -106}\special{pa 509 -97}\special{pa 511 -88}% +\special{pa 514 -79}\special{pa 517 -70}\special{pa 520 -60}\special{pa 522 -51}% +\special{pa 525 -42}\special{pa 528 -32}\special{pa 530 -23}\special{pa 533 -14}% +\special{pa 536 -4}\special{pa 539 6}\special{pa 541 15}\special{pa 544 25}% +\special{pa 547 34}% +\special{fp}% +\special{pa 0 -955}\special{pa 3 -955}\special{pa 5 -955}\special{pa 8 -955}% +\special{pa 11 -955}\special{pa 14 -955}\special{pa 16 -955}\special{pa 19 -955}% +\special{pa 22 -955}\special{pa 24 -955}\special{pa 27 -955}\special{pa 30 -955}% +\special{pa 32 -954}\special{pa 35 -954}\special{pa 38 -954}\special{pa 41 -953}% +\special{pa 43 -953}\special{pa 46 -952}\special{pa 49 -952}\special{pa 51 -951}% +\special{pa 54 -950}\special{pa 57 -950}\special{pa 60 -949}\special{pa 62 -948}% +\special{pa 65 -947}\special{pa 68 -946}\special{pa 70 -945}\special{pa 73 -944}% +\special{pa 76 -943}\special{pa 79 -942}\special{pa 81 -941}\special{pa 84 -940}% +\special{pa 87 -939}\special{pa 89 -937}\special{pa 92 -936}\special{pa 95 -934}% +\special{pa 97 -933}\special{pa 100 -932}\special{pa 103 -930}\special{pa 106 -928}% +\special{pa 108 -927}\special{pa 111 -925}\special{pa 114 -923}\special{pa 116 -922}% +\special{pa 119 -920}\special{pa 122 -918}\special{pa 125 -916}\special{pa 127 -914}% +\special{pa 130 -912}\special{pa 133 -910}\special{pa 135 -908}\special{pa 138 -906}% +\special{pa 141 -904}\special{pa 143 -901}\special{pa 146 -899}\special{pa 149 -897}% +\special{pa 152 -894}\special{pa 154 -892}\special{pa 157 -889}\special{pa 160 -887}% +\special{pa 162 -884}\special{pa 165 -882}\special{pa 168 -879}\special{pa 171 -876}% +\special{pa 173 -873}\special{pa 176 -871}\special{pa 179 -868}\special{pa 181 -865}% +\special{pa 184 -862}\special{pa 187 -859}\special{pa 189 -856}\special{pa 192 -853}% +\special{pa 195 -850}\special{pa 198 -846}\special{pa 200 -843}\special{pa 203 -840}% +\special{pa 206 -836}\special{pa 208 -833}\special{pa 211 -830}\special{pa 214 -826}% +\special{pa 217 -823}\special{pa 219 -819}\special{pa 222 -815}\special{pa 225 -812}% +\special{pa 227 -808}\special{pa 230 -804}\special{pa 233 -800}\special{pa 236 -797}% +\special{pa 238 -793}\special{pa 241 -789}\special{pa 244 -785}\special{pa 246 -781}% +\special{pa 249 -776}\special{pa 252 -772}\special{pa 254 -768}\special{pa 257 -764}% +\special{pa 260 -760}\special{pa 263 -755}\special{pa 265 -751}\special{pa 268 -746}% +\special{pa 271 -742}\special{pa 273 -737}\special{pa 276 -733}\special{pa 279 -728}% +\special{pa 282 -723}\special{pa 284 -719}\special{pa 287 -714}\special{pa 290 -709}% +\special{pa 292 -704}\special{pa 295 -699}\special{pa 298 -694}\special{pa 300 -689}% +\special{pa 303 -684}\special{pa 306 -679}\special{pa 309 -674}\special{pa 311 -669}% +\special{pa 314 -664}\special{pa 317 -658}\special{pa 319 -653}\special{pa 322 -647}% +\special{pa 325 -642}\special{pa 328 -637}\special{pa 330 -631}\special{pa 333 -625}% +\special{pa 336 -620}\special{pa 338 -614}\special{pa 341 -608}\special{pa 344 -603}% +\special{pa 346 -597}\special{pa 349 -591}\special{pa 352 -585}\special{pa 355 -579}% +\special{pa 357 -573}\special{pa 360 -567}\special{pa 363 -561}\special{pa 365 -555}% +\special{pa 368 -548}\special{pa 371 -542}\special{pa 374 -536}\special{pa 376 -530}% +\special{pa 379 -523}\special{pa 382 -517}\special{pa 384 -510}\special{pa 387 -504}% +\special{pa 390 -497}\special{pa 393 -490}\special{pa 395 -484}\special{pa 398 -477}% +\special{pa 401 -470}\special{pa 403 -463}\special{pa 406 -456}\special{pa 409 -450}% +\special{pa 411 -443}\special{pa 414 -436}\special{pa 417 -428}\special{pa 420 -421}% +\special{pa 422 -414}\special{pa 425 -407}\special{pa 428 -400}\special{pa 430 -392}% +\special{pa 433 -385}\special{pa 436 -378}\special{pa 439 -370}\special{pa 441 -363}% +\special{pa 444 -355}\special{pa 447 -348}\special{pa 449 -340}\special{pa 452 -332}% +\special{pa 455 -325}\special{pa 457 -317}\special{pa 460 -309}\special{pa 463 -301}% +\special{pa 466 -293}\special{pa 468 -285}\special{pa 471 -277}\special{pa 474 -269}% +\special{pa 476 -261}\special{pa 479 -253}\special{pa 482 -245}\special{pa 485 -236}% +\special{pa 487 -228}\special{pa 490 -220}\special{pa 493 -211}\special{pa 495 -203}% +\special{pa 498 -194}\special{pa 501 -186}\special{pa 503 -177}\special{pa 506 -168}% +\special{pa 509 -160}\special{pa 512 -151}\special{pa 514 -142}\special{pa 517 -133}% +\special{pa 520 -125}\special{pa 522 -116}\special{pa 525 -107}\special{pa 528 -98}% +\special{pa 531 -89}\special{pa 533 -79}\special{pa 536 -70}\special{pa 539 -61}% +\special{pa 541 -52}% +\special{fp}% +\special{pa 0 -955}\special{pa 2 -955}\special{pa 5 -956}\special{pa 7 -956}% +\special{pa 10 -957}\special{pa 12 -957}\special{pa 14 -958}\special{pa 17 -958}% +\special{pa 19 -958}\special{pa 22 -959}\special{pa 24 -959}\special{pa 27 -959}% +\special{pa 29 -959}\special{pa 31 -959}\special{pa 34 -959}\special{pa 36 -959}% +\special{pa 39 -959}\special{pa 41 -959}\special{pa 43 -959}\special{pa 46 -959}% +\special{pa 48 -958}\special{pa 51 -958}\special{pa 53 -958}\special{pa 56 -957}% +\special{pa 58 -957}\special{pa 60 -956}\special{pa 63 -956}\special{pa 65 -955}% +\special{pa 68 -955}\special{pa 70 -954}\special{pa 72 -953}\special{pa 75 -952}% +\special{pa 77 -951}\special{pa 80 -951}\special{pa 82 -950}\special{pa 85 -949}% +\special{pa 87 -948}\special{pa 89 -947}\special{pa 92 -945}\special{pa 94 -944}% +\special{pa 97 -943}\special{pa 99 -942}\special{pa 101 -940}\special{pa 104 -939}% +\special{pa 106 -938}\special{pa 109 -936}\special{pa 111 -935}\special{pa 113 -933}% +\special{pa 116 -932}\special{pa 118 -930}\special{pa 121 -928}\special{pa 123 -926}% +\special{pa 126 -925}\special{pa 128 -923}\special{pa 130 -921}\special{pa 133 -919}% +\special{pa 135 -917}\special{pa 138 -915}\special{pa 140 -913}\special{pa 142 -911}% +\special{pa 145 -909}\special{pa 147 -906}\special{pa 150 -904}\special{pa 152 -902}% +\special{pa 155 -899}\special{pa 157 -897}\special{pa 159 -895}\special{pa 162 -892}% +\special{pa 164 -889}\special{pa 167 -887}\special{pa 169 -884}\special{pa 171 -882}% +\special{pa 174 -879}\special{pa 176 -876}\special{pa 179 -873}\special{pa 181 -870}% +\special{pa 184 -867}\special{pa 186 -864}\special{pa 188 -861}\special{pa 191 -858}% +\special{pa 193 -855}\special{pa 196 -852}\special{pa 198 -849}\special{pa 200 -845}% +\special{pa 203 -842}\special{pa 205 -839}\special{pa 208 -835}\special{pa 210 -832}% +\special{pa 212 -828}\special{pa 215 -825}\special{pa 217 -821}\special{pa 220 -817}% +\special{pa 222 -814}\special{pa 225 -810}\special{pa 227 -806}\special{pa 229 -802}% +\special{pa 232 -798}\special{pa 234 -795}\special{pa 237 -791}\special{pa 239 -787}% +\special{pa 241 -782}\special{pa 244 -778}\special{pa 246 -774}\special{pa 249 -770}% +\special{pa 251 -766}\special{pa 254 -761}\special{pa 256 -757}\special{pa 258 -752}% +\special{pa 261 -748}\special{pa 263 -744}\special{pa 266 -739}\special{pa 268 -734}% +\special{pa 270 -730}\special{pa 273 -725}\special{pa 275 -720}\special{pa 278 -715}% +\special{pa 280 -711}\special{pa 283 -706}\special{pa 285 -701}\special{pa 287 -696}% +\special{pa 290 -691}\special{pa 292 -686}\special{pa 295 -680}\special{pa 297 -675}% +\special{pa 299 -670}\special{pa 302 -665}\special{pa 304 -659}\special{pa 307 -654}% +\special{pa 309 -649}\special{pa 311 -643}\special{pa 314 -638}\special{pa 316 -632}% +\special{pa 319 -627}\special{pa 321 -621}\special{pa 324 -615}\special{pa 326 -609}% +\special{pa 328 -604}\special{pa 331 -598}\special{pa 333 -592}\special{pa 336 -586}% +\special{pa 338 -580}\special{pa 340 -574}\special{pa 343 -568}\special{pa 345 -562}% +\special{pa 348 -555}\special{pa 350 -549}\special{pa 353 -543}\special{pa 355 -537}% +\special{pa 357 -530}\special{pa 360 -524}\special{pa 362 -517}\special{pa 365 -511}% +\special{pa 367 -504}\special{pa 369 -498}\special{pa 372 -491}\special{pa 374 -484}% +\special{pa 377 -477}\special{pa 379 -471}\special{pa 381 -464}\special{pa 384 -457}% +\special{pa 386 -450}\special{pa 389 -443}\special{pa 391 -436}\special{pa 394 -429}% +\special{pa 396 -422}\special{pa 398 -415}\special{pa 401 -407}\special{pa 403 -400}% +\special{pa 406 -393}\special{pa 408 -385}\special{pa 410 -378}\special{pa 413 -370}% +\special{pa 415 -363}\special{pa 418 -355}\special{pa 420 -348}\special{pa 423 -340}% +\special{pa 425 -332}\special{pa 427 -325}\special{pa 430 -317}\special{pa 432 -309}% +\special{pa 435 -301}\special{pa 437 -293}\special{pa 439 -285}\special{pa 442 -277}% +\special{pa 444 -269}\special{pa 447 -261}\special{pa 449 -253}\special{pa 452 -244}% +\special{pa 454 -236}\special{pa 456 -228}\special{pa 459 -219}\special{pa 461 -211}% +\special{pa 464 -202}\special{pa 466 -194}\special{pa 468 -185}\special{pa 471 -177}% +\special{pa 473 -168}\special{pa 476 -159}\special{pa 478 -151}\special{pa 480 -142}% +\special{pa 483 -133}% +\special{fp}% +\special{pa 0 -955}\special{pa 2 -956}\special{pa 4 -957}\special{pa 6 -957}% +\special{pa 8 -958}\special{pa 9 -959}\special{pa 11 -960}\special{pa 13 -961}% +\special{pa 15 -961}\special{pa 17 -962}\special{pa 19 -962}\special{pa 21 -963}% +\special{pa 23 -963}\special{pa 25 -964}\special{pa 26 -964}\special{pa 28 -964}% +\special{pa 30 -965}\special{pa 32 -965}\special{pa 34 -965}\special{pa 36 -965}% +\special{pa 38 -965}\special{pa 40 -965}\special{pa 41 -965}\special{pa 43 -965}% +\special{pa 45 -965}\special{pa 47 -965}\special{pa 49 -965}\special{pa 51 -964}% +\special{pa 53 -964}\special{pa 55 -964}\special{pa 57 -963}\special{pa 58 -963}% +\special{pa 60 -962}\special{pa 62 -962}\special{pa 64 -961}\special{pa 66 -961}% +\special{pa 68 -960}\special{pa 70 -959}\special{pa 72 -958}\special{pa 74 -958}% +\special{pa 75 -957}\special{pa 77 -956}\special{pa 79 -955}\special{pa 81 -954}% +\special{pa 83 -953}\special{pa 85 -952}\special{pa 87 -950}\special{pa 89 -949}% +\special{pa 91 -948}\special{pa 92 -947}\special{pa 94 -945}\special{pa 96 -944}% +\special{pa 98 -942}\special{pa 100 -941}\special{pa 102 -939}\special{pa 104 -938}% +\special{pa 106 -936}\special{pa 107 -934}\special{pa 109 -933}\special{pa 111 -931}% +\special{pa 113 -929}\special{pa 115 -927}\special{pa 117 -925}\special{pa 119 -923}% +\special{pa 121 -921}\special{pa 123 -919}\special{pa 124 -917}\special{pa 126 -915}% +\special{pa 128 -913}\special{pa 130 -910}\special{pa 132 -908}\special{pa 134 -906}% +\special{pa 136 -903}\special{pa 138 -901}\special{pa 140 -898}\special{pa 141 -896}% +\special{pa 143 -893}\special{pa 145 -891}\special{pa 147 -888}\special{pa 149 -885}% +\special{pa 151 -882}\special{pa 153 -879}\special{pa 155 -877}\special{pa 157 -874}% +\special{pa 158 -871}\special{pa 160 -868}\special{pa 162 -865}\special{pa 164 -861}% +\special{pa 166 -858}\special{pa 168 -855}\special{pa 170 -852}\special{pa 172 -848}% +\special{pa 173 -845}\special{pa 175 -842}\special{pa 177 -838}\special{pa 179 -835}% +\special{pa 181 -831}\special{pa 183 -828}\special{pa 185 -824}\special{pa 187 -820}% +\special{pa 189 -816}\special{pa 190 -813}\special{pa 192 -809}\special{pa 194 -805}% +\special{pa 196 -801}\special{pa 198 -797}\special{pa 200 -793}\special{pa 202 -789}% +\special{pa 204 -785}\special{pa 206 -781}\special{pa 207 -776}\special{pa 209 -772}% +\special{pa 211 -768}\special{pa 213 -763}\special{pa 215 -759}\special{pa 217 -755}% +\special{pa 219 -750}\special{pa 221 -746}\special{pa 223 -741}\special{pa 224 -736}% +\special{pa 226 -732}\special{pa 228 -727}\special{pa 230 -722}\special{pa 232 -717}% +\special{pa 234 -712}\special{pa 236 -707}\special{pa 238 -702}\special{pa 239 -697}% +\special{pa 241 -692}\special{pa 243 -687}\special{pa 245 -682}\special{pa 247 -677}% +\special{pa 249 -671}\special{pa 251 -666}\special{pa 253 -661}\special{pa 255 -655}% +\special{pa 256 -650}\special{pa 258 -644}\special{pa 260 -639}\special{pa 262 -633}% +\special{pa 264 -628}\special{pa 266 -622}\special{pa 268 -616}\special{pa 270 -610}% +\special{pa 272 -604}\special{pa 273 -599}\special{pa 275 -593}\special{pa 277 -587}% +\special{pa 279 -581}\special{pa 281 -575}\special{pa 283 -568}\special{pa 285 -562}% +\special{pa 287 -556}\special{pa 289 -550}\special{pa 290 -543}\special{pa 292 -537}% +\special{pa 294 -531}\special{pa 296 -524}\special{pa 298 -518}\special{pa 300 -511}% +\special{pa 302 -504}\special{pa 304 -498}\special{pa 306 -491}\special{pa 307 -484}% +\special{pa 309 -478}\special{pa 311 -471}\special{pa 313 -464}\special{pa 315 -457}% +\special{pa 317 -450}\special{pa 319 -443}\special{pa 321 -436}\special{pa 322 -429}% +\special{pa 324 -421}\special{pa 326 -414}\special{pa 328 -407}\special{pa 330 -400}% +\special{pa 332 -392}\special{pa 334 -385}\special{pa 336 -377}\special{pa 338 -370}% +\special{pa 339 -362}\special{pa 341 -355}\special{pa 343 -347}\special{pa 345 -339}% +\special{pa 347 -332}\special{pa 349 -324}\special{pa 351 -316}\special{pa 353 -308}% +\special{pa 355 -300}\special{pa 356 -292}\special{pa 358 -284}\special{pa 360 -276}% +\special{pa 362 -268}\special{pa 364 -260}\special{pa 366 -251}\special{pa 368 -243}% +\special{pa 370 -235}\special{pa 372 -226}\special{pa 373 -218}\special{pa 375 -209}% +\special{pa 377 -201}% +\special{fp}% +\special{pa 0 -955}\special{pa 1 -956}\special{pa 2 -957}\special{pa 4 -958}% +\special{pa 5 -959}\special{pa 6 -960}\special{pa 7 -961}\special{pa 8 -962}% +\special{pa 9 -963}\special{pa 11 -964}\special{pa 12 -965}\special{pa 13 -966}% +\special{pa 14 -966}\special{pa 15 -967}\special{pa 16 -967}\special{pa 18 -968}% +\special{pa 19 -969}\special{pa 20 -969}\special{pa 21 -969}\special{pa 22 -970}% +\special{pa 23 -970}\special{pa 25 -970}\special{pa 26 -971}\special{pa 27 -971}% +\special{pa 28 -971}\special{pa 29 -971}\special{pa 30 -971}\special{pa 32 -971}% +\special{pa 33 -971}\special{pa 34 -971}\special{pa 35 -971}\special{pa 36 -970}% +\special{pa 38 -970}\special{pa 39 -970}\special{pa 40 -969}\special{pa 41 -969}% +\special{pa 42 -969}\special{pa 43 -968}\special{pa 45 -968}\special{pa 46 -967}% +\special{pa 47 -966}\special{pa 48 -966}\special{pa 49 -965}\special{pa 50 -964}% +\special{pa 52 -963}\special{pa 53 -962}\special{pa 54 -962}\special{pa 55 -961}% +\special{pa 56 -960}\special{pa 57 -958}\special{pa 59 -957}\special{pa 60 -956}% +\special{pa 61 -955}\special{pa 62 -954}\special{pa 63 -952}\special{pa 64 -951}% +\special{pa 66 -950}\special{pa 67 -948}\special{pa 68 -947}\special{pa 69 -945}% +\special{pa 70 -944}\special{pa 72 -942}\special{pa 73 -940}\special{pa 74 -939}% +\special{pa 75 -937}\special{pa 76 -935}\special{pa 77 -933}\special{pa 79 -931}% +\special{pa 80 -929}\special{pa 81 -927}\special{pa 82 -925}\special{pa 83 -923}% +\special{pa 84 -921}\special{pa 86 -919}\special{pa 87 -916}\special{pa 88 -914}% +\special{pa 89 -912}\special{pa 90 -909}\special{pa 91 -907}\special{pa 93 -904}% +\special{pa 94 -902}\special{pa 95 -899}\special{pa 96 -896}\special{pa 97 -894}% +\special{pa 98 -891}\special{pa 100 -888}\special{pa 101 -885}\special{pa 102 -883}% +\special{pa 103 -880}\special{pa 104 -877}\special{pa 106 -874}\special{pa 107 -871}% +\special{pa 108 -867}\special{pa 109 -864}\special{pa 110 -861}\special{pa 111 -858}% +\special{pa 113 -854}\special{pa 114 -851}\special{pa 115 -848}\special{pa 116 -844}% +\special{pa 117 -841}\special{pa 118 -837}\special{pa 120 -834}\special{pa 121 -830}% +\special{pa 122 -826}\special{pa 123 -822}\special{pa 124 -819}\special{pa 125 -815}% +\special{pa 127 -811}\special{pa 128 -807}\special{pa 129 -803}\special{pa 130 -799}% +\special{pa 131 -795}\special{pa 132 -791}\special{pa 134 -787}\special{pa 135 -782}% +\special{pa 136 -778}\special{pa 137 -774}\special{pa 138 -770}\special{pa 140 -765}% +\special{pa 141 -761}\special{pa 142 -756}\special{pa 143 -752}\special{pa 144 -747}% +\special{pa 145 -742}\special{pa 147 -738}\special{pa 148 -733}\special{pa 149 -728}% +\special{pa 150 -723}\special{pa 151 -718}\special{pa 152 -713}\special{pa 154 -708}% +\special{pa 155 -703}\special{pa 156 -698}\special{pa 157 -693}\special{pa 158 -688}% +\special{pa 159 -683}\special{pa 161 -678}\special{pa 162 -672}\special{pa 163 -667}% +\special{pa 164 -661}\special{pa 165 -656}\special{pa 166 -650}\special{pa 168 -645}% +\special{pa 169 -639}\special{pa 170 -634}\special{pa 171 -628}\special{pa 172 -622}% +\special{pa 174 -616}\special{pa 175 -611}\special{pa 176 -605}\special{pa 177 -599}% +\special{pa 178 -593}\special{pa 179 -587}\special{pa 181 -581}\special{pa 182 -575}% +\special{pa 183 -568}\special{pa 184 -562}\special{pa 185 -556}\special{pa 186 -550}% +\special{pa 188 -543}\special{pa 189 -537}\special{pa 190 -530}\special{pa 191 -524}% +\special{pa 192 -517}\special{pa 193 -511}\special{pa 195 -504}\special{pa 196 -497}% +\special{pa 197 -491}\special{pa 198 -484}\special{pa 199 -477}\special{pa 200 -470}% +\special{pa 202 -463}\special{pa 203 -456}\special{pa 204 -449}\special{pa 205 -442}% +\special{pa 206 -435}\special{pa 208 -428}\special{pa 209 -420}\special{pa 210 -413}% +\special{pa 211 -406}\special{pa 212 -398}\special{pa 213 -391}\special{pa 215 -384}% +\special{pa 216 -376}\special{pa 217 -369}\special{pa 218 -361}\special{pa 219 -353}% +\special{pa 220 -346}\special{pa 222 -338}\special{pa 223 -330}\special{pa 224 -322}% +\special{pa 225 -314}\special{pa 226 -306}\special{pa 227 -298}\special{pa 229 -290}% +\special{pa 230 -282}\special{pa 231 -274}\special{pa 232 -266}\special{pa 233 -258}% +\special{pa 235 -249}% +\special{fp}% +\special{pa 0 -955}\special{pa 0 -956}\special{pa 1 -957}\special{pa 1 -959}% +\special{pa 1 -960}\special{pa 2 -961}\special{pa 2 -962}\special{pa 2 -963}% +\special{pa 3 -964}\special{pa 3 -965}\special{pa 3 -966}\special{pa 4 -967}% +\special{pa 4 -968}\special{pa 4 -968}\special{pa 5 -969}\special{pa 5 -970}% +\special{pa 6 -970}\special{pa 6 -971}\special{pa 6 -972}\special{pa 7 -972}% +\special{pa 7 -972}\special{pa 7 -973}\special{pa 8 -973}\special{pa 8 -973}% +\special{pa 8 -974}\special{pa 9 -974}\special{pa 9 -974}\special{pa 9 -974}% +\special{pa 10 -974}\special{pa 10 -974}\special{pa 10 -974}\special{pa 11 -974}% +\special{pa 11 -974}\special{pa 11 -974}\special{pa 12 -974}\special{pa 12 -973}% +\special{pa 12 -973}\special{pa 13 -973}\special{pa 13 -972}\special{pa 13 -972}% +\special{pa 14 -971}\special{pa 14 -971}\special{pa 14 -970}\special{pa 15 -969}% +\special{pa 15 -969}\special{pa 15 -968}\special{pa 16 -967}\special{pa 16 -966}% +\special{pa 17 -965}\special{pa 17 -964}\special{pa 17 -963}\special{pa 18 -962}% +\special{pa 18 -961}\special{pa 18 -960}\special{pa 19 -959}\special{pa 19 -958}% +\special{pa 19 -956}\special{pa 20 -955}\special{pa 20 -954}\special{pa 20 -952}% +\special{pa 21 -951}\special{pa 21 -949}\special{pa 21 -948}\special{pa 22 -946}% +\special{pa 22 -944}\special{pa 22 -943}\special{pa 23 -941}\special{pa 23 -939}% +\special{pa 23 -937}\special{pa 24 -935}\special{pa 24 -933}\special{pa 24 -931}% +\special{pa 25 -929}\special{pa 25 -927}\special{pa 25 -925}\special{pa 26 -923}% +\special{pa 26 -921}\special{pa 27 -918}\special{pa 27 -916}\special{pa 27 -914}% +\special{pa 28 -911}\special{pa 28 -909}\special{pa 28 -906}\special{pa 29 -904}% +\special{pa 29 -901}\special{pa 29 -898}\special{pa 30 -896}\special{pa 30 -893}% +\special{pa 30 -890}\special{pa 31 -887}\special{pa 31 -884}\special{pa 31 -881}% +\special{pa 32 -878}\special{pa 32 -875}\special{pa 32 -872}\special{pa 33 -869}% +\special{pa 33 -866}\special{pa 33 -863}\special{pa 34 -859}\special{pa 34 -856}% +\special{pa 34 -853}\special{pa 35 -849}\special{pa 35 -846}\special{pa 35 -842}% +\special{pa 36 -839}\special{pa 36 -835}\special{pa 37 -831}\special{pa 37 -828}% +\special{pa 37 -824}\special{pa 38 -820}\special{pa 38 -816}\special{pa 38 -812}% +\special{pa 39 -808}\special{pa 39 -804}\special{pa 39 -800}\special{pa 40 -796}% +\special{pa 40 -792}\special{pa 40 -788}\special{pa 41 -784}\special{pa 41 -779}% +\special{pa 41 -775}\special{pa 42 -771}\special{pa 42 -766}\special{pa 42 -762}% +\special{pa 43 -757}\special{pa 43 -753}\special{pa 43 -748}\special{pa 44 -743}% +\special{pa 44 -739}\special{pa 44 -734}\special{pa 45 -729}\special{pa 45 -724}% +\special{pa 45 -719}\special{pa 46 -714}\special{pa 46 -709}\special{pa 46 -704}% +\special{pa 47 -699}\special{pa 47 -694}\special{pa 48 -689}\special{pa 48 -684}% +\special{pa 48 -678}\special{pa 49 -673}\special{pa 49 -668}\special{pa 49 -662}% +\special{pa 50 -657}\special{pa 50 -651}\special{pa 50 -646}\special{pa 51 -640}% +\special{pa 51 -634}\special{pa 51 -629}\special{pa 52 -623}\special{pa 52 -617}% +\special{pa 52 -611}\special{pa 53 -605}\special{pa 53 -599}\special{pa 53 -593}% +\special{pa 54 -587}\special{pa 54 -581}\special{pa 54 -575}\special{pa 55 -569}% +\special{pa 55 -562}\special{pa 55 -556}\special{pa 56 -550}\special{pa 56 -543}% +\special{pa 56 -537}\special{pa 57 -530}\special{pa 57 -524}\special{pa 58 -517}% +\special{pa 58 -511}\special{pa 58 -504}\special{pa 59 -497}\special{pa 59 -491}% +\special{pa 59 -484}\special{pa 60 -477}\special{pa 60 -470}\special{pa 60 -463}% +\special{pa 61 -456}\special{pa 61 -449}\special{pa 61 -442}\special{pa 62 -435}% +\special{pa 62 -427}\special{pa 62 -420}\special{pa 63 -413}\special{pa 63 -406}% +\special{pa 63 -398}\special{pa 64 -391}\special{pa 64 -383}\special{pa 64 -376}% +\special{pa 65 -368}\special{pa 65 -361}\special{pa 65 -353}\special{pa 66 -345}% +\special{pa 66 -337}\special{pa 66 -330}\special{pa 67 -322}\special{pa 67 -314}% +\special{pa 68 -306}\special{pa 68 -298}\special{pa 68 -290}\special{pa 69 -282}% +\special{pa 69 -273}% +\special{fp}% +\special{pa 0 -955}\special{pa -1 -956}\special{pa -1 -957}\special{pa -2 -959}% +\special{pa -2 -960}\special{pa -3 -961}\special{pa -3 -962}\special{pa -4 -963}% +\special{pa -4 -964}\special{pa -5 -965}\special{pa -5 -966}\special{pa -6 -967}% +\special{pa -6 -967}\special{pa -7 -968}\special{pa -7 -969}\special{pa -8 -970}% +\special{pa -8 -970}\special{pa -9 -971}\special{pa -9 -971}\special{pa -10 -972}% +\special{pa -10 -972}\special{pa -11 -973}\special{pa -11 -973}\special{pa -12 -973}% +\special{pa -12 -973}\special{pa -13 -974}\special{pa -13 -974}\special{pa -14 -974}% +\special{pa -14 -974}\special{pa -15 -974}\special{pa -16 -974}\special{pa -16 -974}% +\special{pa -17 -974}\special{pa -17 -973}\special{pa -18 -973}\special{pa -18 -973}% +\special{pa -19 -972}\special{pa -19 -972}\special{pa -20 -972}\special{pa -20 -971}% +\special{pa -21 -971}\special{pa -21 -970}\special{pa -22 -969}\special{pa -22 -969}% +\special{pa -23 -968}\special{pa -23 -967}\special{pa -24 -966}\special{pa -24 -966}% +\special{pa -25 -965}\special{pa -25 -964}\special{pa -26 -963}\special{pa -26 -962}% +\special{pa -27 -961}\special{pa -27 -959}\special{pa -28 -958}\special{pa -28 -957}% +\special{pa -29 -956}\special{pa -29 -954}\special{pa -30 -953}\special{pa -31 -951}% +\special{pa -31 -950}\special{pa -32 -948}\special{pa -32 -947}\special{pa -33 -945}% +\special{pa -33 -944}\special{pa -34 -942}\special{pa -34 -940}\special{pa -35 -938}% +\special{pa -35 -936}\special{pa -36 -934}\special{pa -36 -932}\special{pa -37 -930}% +\special{pa -37 -928}\special{pa -38 -926}\special{pa -38 -924}\special{pa -39 -922}% +\special{pa -39 -920}\special{pa -40 -917}\special{pa -40 -915}\special{pa -41 -913}% +\special{pa -41 -910}\special{pa -42 -908}\special{pa -42 -905}\special{pa -43 -903}% +\special{pa -43 -900}\special{pa -44 -897}\special{pa -44 -895}\special{pa -45 -892}% +\special{pa -46 -889}\special{pa -46 -886}\special{pa -47 -883}\special{pa -47 -880}% +\special{pa -48 -877}\special{pa -48 -874}\special{pa -49 -871}\special{pa -49 -868}% +\special{pa -50 -865}\special{pa -50 -861}\special{pa -51 -858}\special{pa -51 -855}% +\special{pa -52 -851}\special{pa -52 -848}\special{pa -53 -844}\special{pa -53 -841}% +\special{pa -54 -837}\special{pa -54 -834}\special{pa -55 -830}\special{pa -55 -826}% +\special{pa -56 -822}\special{pa -56 -819}\special{pa -57 -815}\special{pa -57 -811}% +\special{pa -58 -807}\special{pa -58 -803}\special{pa -59 -799}\special{pa -59 -795}% +\special{pa -60 -791}\special{pa -61 -786}\special{pa -61 -782}\special{pa -62 -778}% +\special{pa -62 -773}\special{pa -63 -769}\special{pa -63 -765}\special{pa -64 -760}% +\special{pa -64 -756}\special{pa -65 -751}\special{pa -65 -746}\special{pa -66 -742}% +\special{pa -66 -737}\special{pa -67 -732}\special{pa -67 -727}\special{pa -68 -722}% +\special{pa -68 -717}\special{pa -69 -713}\special{pa -69 -707}\special{pa -70 -702}% +\special{pa -70 -697}\special{pa -71 -692}\special{pa -71 -687}\special{pa -72 -682}% +\special{pa -72 -676}\special{pa -73 -671}\special{pa -73 -666}\special{pa -74 -660}% +\special{pa -75 -655}\special{pa -75 -649}\special{pa -76 -644}\special{pa -76 -638}% +\special{pa -77 -632}\special{pa -77 -626}\special{pa -78 -621}\special{pa -78 -615}% +\special{pa -79 -609}\special{pa -79 -603}\special{pa -80 -597}\special{pa -80 -591}% +\special{pa -81 -585}\special{pa -81 -579}\special{pa -82 -573}\special{pa -82 -566}% +\special{pa -83 -560}\special{pa -83 -554}\special{pa -84 -548}\special{pa -84 -541}% +\special{pa -85 -535}\special{pa -85 -528}\special{pa -86 -522}\special{pa -86 -515}% +\special{pa -87 -508}\special{pa -87 -502}\special{pa -88 -495}\special{pa -88 -488}% +\special{pa -89 -481}\special{pa -90 -475}\special{pa -90 -468}\special{pa -91 -461}% +\special{pa -91 -454}\special{pa -92 -447}\special{pa -92 -439}\special{pa -93 -432}% +\special{pa -93 -425}\special{pa -94 -418}\special{pa -94 -410}\special{pa -95 -403}% +\special{pa -95 -396}\special{pa -96 -388}\special{pa -96 -381}\special{pa -97 -373}% +\special{pa -97 -366}\special{pa -98 -358}\special{pa -98 -350}\special{pa -99 -342}% +\special{pa -99 -335}\special{pa -100 -327}\special{pa -100 -319}\special{pa -101 -311}% +\special{pa -101 -303}\special{pa -102 -295}\special{pa -102 -287}\special{pa -103 -279}% +\special{pa -103 -271}% +\special{fp}% +\special{pa 0 -955}\special{pa -1 -956}\special{pa -3 -957}\special{pa -4 -958}% +\special{pa -5 -959}\special{pa -7 -960}\special{pa -8 -961}\special{pa -9 -962}% +\special{pa -11 -963}\special{pa -12 -964}\special{pa -13 -964}\special{pa -15 -965}% +\special{pa -16 -966}\special{pa -17 -966}\special{pa -19 -967}\special{pa -20 -967}% +\special{pa -21 -968}\special{pa -23 -968}\special{pa -24 -969}\special{pa -25 -969}% +\special{pa -27 -969}\special{pa -28 -970}\special{pa -29 -970}\special{pa -31 -970}% +\special{pa -32 -970}\special{pa -33 -970}\special{pa -35 -970}\special{pa -36 -970}% +\special{pa -37 -970}\special{pa -39 -970}\special{pa -40 -969}\special{pa -41 -969}% +\special{pa -43 -969}\special{pa -44 -969}\special{pa -45 -968}\special{pa -46 -968}% +\special{pa -48 -967}\special{pa -49 -967}\special{pa -50 -966}\special{pa -52 -965}% +\special{pa -53 -965}\special{pa -54 -964}\special{pa -56 -963}\special{pa -57 -962}% +\special{pa -58 -962}\special{pa -60 -961}\special{pa -61 -960}\special{pa -62 -959}% +\special{pa -64 -958}\special{pa -65 -957}\special{pa -66 -955}\special{pa -68 -954}% +\special{pa -69 -953}\special{pa -70 -952}\special{pa -72 -950}\special{pa -73 -949}% +\special{pa -74 -947}\special{pa -76 -946}\special{pa -77 -944}\special{pa -78 -943}% +\special{pa -80 -941}\special{pa -81 -940}\special{pa -82 -938}\special{pa -84 -936}% +\special{pa -85 -934}\special{pa -86 -932}\special{pa -88 -930}\special{pa -89 -928}% +\special{pa -90 -926}\special{pa -92 -924}\special{pa -93 -922}\special{pa -94 -920}% +\special{pa -96 -918}\special{pa -97 -916}\special{pa -98 -913}\special{pa -100 -911}% +\special{pa -101 -909}\special{pa -102 -906}\special{pa -104 -904}\special{pa -105 -901}% +\special{pa -106 -899}\special{pa -108 -896}\special{pa -109 -893}\special{pa -110 -890}% +\special{pa -112 -888}\special{pa -113 -885}\special{pa -114 -882}\special{pa -116 -879}% +\special{pa -117 -876}\special{pa -118 -873}\special{pa -120 -870}\special{pa -121 -867}% +\special{pa -122 -864}\special{pa -124 -861}\special{pa -125 -857}\special{pa -126 -854}% +\special{pa -128 -851}\special{pa -129 -847}\special{pa -130 -844}\special{pa -132 -840}% +\special{pa -133 -837}\special{pa -134 -833}\special{pa -136 -830}\special{pa -137 -826}% +\special{pa -138 -822}\special{pa -139 -818}\special{pa -141 -814}\special{pa -142 -811}% +\special{pa -143 -807}\special{pa -145 -803}\special{pa -146 -799}\special{pa -147 -795}% +\special{pa -149 -791}\special{pa -150 -786}\special{pa -151 -782}\special{pa -153 -778}% +\special{pa -154 -774}\special{pa -155 -769}\special{pa -157 -765}\special{pa -158 -760}% +\special{pa -159 -756}\special{pa -161 -751}\special{pa -162 -747}\special{pa -163 -742}% +\special{pa -165 -737}\special{pa -166 -733}\special{pa -167 -728}\special{pa -169 -723}% +\special{pa -170 -718}\special{pa -171 -713}\special{pa -173 -708}\special{pa -174 -703}% +\special{pa -175 -698}\special{pa -177 -693}\special{pa -178 -688}\special{pa -179 -683}% +\special{pa -181 -677}\special{pa -182 -672}\special{pa -183 -667}\special{pa -185 -661}% +\special{pa -186 -656}\special{pa -187 -650}\special{pa -189 -645}\special{pa -190 -639}% +\special{pa -191 -634}\special{pa -193 -628}\special{pa -194 -622}\special{pa -195 -616}% +\special{pa -197 -611}\special{pa -198 -605}\special{pa -199 -599}\special{pa -201 -593}% +\special{pa -202 -587}\special{pa -203 -581}\special{pa -205 -575}\special{pa -206 -568}% +\special{pa -207 -562}\special{pa -209 -556}\special{pa -210 -550}\special{pa -211 -543}% +\special{pa -213 -537}\special{pa -214 -530}\special{pa -215 -524}\special{pa -217 -517}% +\special{pa -218 -511}\special{pa -219 -504}\special{pa -221 -497}\special{pa -222 -491}% +\special{pa -223 -484}\special{pa -225 -477}\special{pa -226 -470}\special{pa -227 -463}% +\special{pa -229 -456}\special{pa -230 -449}\special{pa -231 -442}\special{pa -232 -435}% +\special{pa -234 -428}\special{pa -235 -421}\special{pa -236 -413}\special{pa -238 -406}% +\special{pa -239 -399}\special{pa -240 -391}\special{pa -242 -384}\special{pa -243 -376}% +\special{pa -244 -369}\special{pa -246 -361}\special{pa -247 -354}\special{pa -248 -346}% +\special{pa -250 -338}\special{pa -251 -330}\special{pa -252 -322}\special{pa -254 -315}% +\special{pa -255 -307}\special{pa -256 -299}\special{pa -258 -291}\special{pa -259 -283}% +\special{pa -260 -274}\special{pa -262 -266}\special{pa -263 -258}\special{pa -264 -250}% +\special{pa -266 -241}% +\special{fp}% +\special{pa 0 -955}\special{pa -2 -956}\special{pa -4 -956}\special{pa -6 -957}% +\special{pa -8 -958}\special{pa -10 -959}\special{pa -12 -959}\special{pa -14 -960}% +\special{pa -16 -961}\special{pa -18 -961}\special{pa -20 -962}\special{pa -22 -962}% +\special{pa -24 -963}\special{pa -26 -963}\special{pa -28 -963}\special{pa -30 -963}% +\special{pa -32 -964}\special{pa -34 -964}\special{pa -36 -964}\special{pa -38 -964}% +\special{pa -40 -964}\special{pa -42 -964}\special{pa -44 -964}\special{pa -46 -964}% +\special{pa -48 -964}\special{pa -50 -963}\special{pa -52 -963}\special{pa -54 -963}% +\special{pa -56 -962}\special{pa -58 -962}\special{pa -60 -961}\special{pa -62 -961}% +\special{pa -64 -960}\special{pa -66 -960}\special{pa -68 -959}\special{pa -70 -958}% +\special{pa -72 -958}\special{pa -74 -957}\special{pa -76 -956}\special{pa -78 -955}% +\special{pa -80 -954}\special{pa -82 -953}\special{pa -84 -952}\special{pa -86 -951}% +\special{pa -88 -950}\special{pa -90 -949}\special{pa -92 -948}\special{pa -94 -946}% +\special{pa -96 -945}\special{pa -98 -944}\special{pa -100 -942}\special{pa -102 -941}% +\special{pa -105 -939}\special{pa -107 -938}\special{pa -109 -936}\special{pa -111 -934}% +\special{pa -113 -933}\special{pa -115 -931}\special{pa -117 -929}\special{pa -119 -927}% +\special{pa -121 -925}\special{pa -123 -923}\special{pa -125 -921}\special{pa -127 -919}% +\special{pa -129 -917}\special{pa -131 -915}\special{pa -133 -913}\special{pa -135 -911}% +\special{pa -137 -908}\special{pa -139 -906}\special{pa -141 -904}\special{pa -143 -901}% +\special{pa -145 -899}\special{pa -147 -896}\special{pa -149 -894}\special{pa -151 -891}% +\special{pa -153 -888}\special{pa -155 -886}\special{pa -157 -883}\special{pa -159 -880}% +\special{pa -161 -877}\special{pa -163 -874}\special{pa -165 -872}\special{pa -167 -869}% +\special{pa -169 -865}\special{pa -171 -862}\special{pa -173 -859}\special{pa -175 -856}% +\special{pa -177 -853}\special{pa -179 -850}\special{pa -181 -846}\special{pa -183 -843}% +\special{pa -185 -839}\special{pa -187 -836}\special{pa -189 -832}\special{pa -191 -829}% +\special{pa -193 -825}\special{pa -195 -822}\special{pa -197 -818}\special{pa -199 -814}% +\special{pa -201 -810}\special{pa -203 -806}\special{pa -205 -803}\special{pa -207 -799}% +\special{pa -209 -795}\special{pa -211 -791}\special{pa -213 -786}\special{pa -215 -782}% +\special{pa -217 -778}\special{pa -219 -774}\special{pa -221 -770}\special{pa -223 -765}% +\special{pa -225 -761}\special{pa -227 -756}\special{pa -229 -752}\special{pa -231 -747}% +\special{pa -233 -743}\special{pa -235 -738}\special{pa -237 -734}\special{pa -239 -729}% +\special{pa -241 -724}\special{pa -243 -719}\special{pa -245 -714}\special{pa -247 -710}% +\special{pa -249 -705}\special{pa -251 -700}\special{pa -253 -695}\special{pa -255 -689}% +\special{pa -257 -684}\special{pa -259 -679}\special{pa -261 -674}\special{pa -263 -669}% +\special{pa -265 -663}\special{pa -267 -658}\special{pa -269 -652}\special{pa -271 -647}% +\special{pa -273 -641}\special{pa -275 -636}\special{pa -277 -630}\special{pa -279 -625}% +\special{pa -281 -619}\special{pa -283 -613}\special{pa -285 -607}\special{pa -287 -601}% +\special{pa -289 -596}\special{pa -291 -590}\special{pa -293 -584}\special{pa -295 -578}% +\special{pa -297 -571}\special{pa -299 -565}\special{pa -301 -559}\special{pa -303 -553}% +\special{pa -305 -547}\special{pa -307 -540}\special{pa -309 -534}\special{pa -311 -527}% +\special{pa -314 -521}\special{pa -316 -514}\special{pa -318 -508}\special{pa -320 -501}% +\special{pa -322 -495}\special{pa -324 -488}\special{pa -326 -481}\special{pa -328 -474}% +\special{pa -330 -467}\special{pa -332 -460}\special{pa -334 -454}\special{pa -336 -447}% +\special{pa -338 -439}\special{pa -340 -432}\special{pa -342 -425}\special{pa -344 -418}% +\special{pa -346 -411}\special{pa -348 -403}\special{pa -350 -396}\special{pa -352 -389}% +\special{pa -354 -381}\special{pa -356 -374}\special{pa -358 -366}\special{pa -360 -359}% +\special{pa -362 -351}\special{pa -364 -343}\special{pa -366 -336}\special{pa -368 -328}% +\special{pa -370 -320}\special{pa -372 -312}\special{pa -374 -304}\special{pa -376 -296}% +\special{pa -378 -288}\special{pa -380 -280}\special{pa -382 -272}\special{pa -384 -264}% +\special{pa -386 -256}\special{pa -388 -248}\special{pa -390 -239}\special{pa -392 -231}% +\special{pa -394 -223}\special{pa -396 -214}\special{pa -398 -206}\special{pa -400 -197}% +\special{pa -402 -189}% +\special{fp}% +\special{pa 0 -955}\special{pa -2 -955}\special{pa -5 -956}\special{pa -7 -956}% +\special{pa -10 -957}\special{pa -12 -957}\special{pa -15 -957}\special{pa -17 -958}% +\special{pa -20 -958}\special{pa -22 -958}\special{pa -25 -958}\special{pa -27 -958}% +\special{pa -30 -958}\special{pa -32 -958}\special{pa -35 -958}\special{pa -37 -958}% +\special{pa -40 -958}\special{pa -42 -958}\special{pa -45 -957}\special{pa -47 -957}% +\special{pa -50 -957}\special{pa -52 -956}\special{pa -55 -956}\special{pa -57 -956}% +\special{pa -60 -955}\special{pa -62 -954}\special{pa -65 -954}\special{pa -67 -953}% +\special{pa -70 -952}\special{pa -72 -952}\special{pa -75 -951}\special{pa -77 -950}% +\special{pa -80 -949}\special{pa -82 -948}\special{pa -85 -947}\special{pa -87 -946}% +\special{pa -90 -945}\special{pa -92 -944}\special{pa -95 -942}\special{pa -97 -941}% +\special{pa -100 -940}\special{pa -102 -939}\special{pa -105 -937}\special{pa -107 -936}% +\special{pa -110 -934}\special{pa -112 -933}\special{pa -115 -931}\special{pa -117 -930}% +\special{pa -120 -928}\special{pa -122 -926}\special{pa -125 -924}\special{pa -127 -922}% +\special{pa -130 -921}\special{pa -132 -919}\special{pa -135 -917}\special{pa -137 -915}% +\special{pa -140 -913}\special{pa -142 -911}\special{pa -145 -908}\special{pa -147 -906}% +\special{pa -150 -904}\special{pa -152 -902}\special{pa -155 -899}\special{pa -157 -897}% +\special{pa -160 -894}\special{pa -162 -892}\special{pa -165 -889}\special{pa -167 -887}% +\special{pa -170 -884}\special{pa -172 -881}\special{pa -175 -879}\special{pa -177 -876}% +\special{pa -180 -873}\special{pa -182 -870}\special{pa -185 -867}\special{pa -187 -864}% +\special{pa -190 -861}\special{pa -192 -858}\special{pa -195 -855}\special{pa -197 -852}% +\special{pa -200 -849}\special{pa -202 -846}\special{pa -205 -842}\special{pa -207 -839}% +\special{pa -209 -836}\special{pa -212 -832}\special{pa -214 -829}\special{pa -217 -825}% +\special{pa -219 -821}\special{pa -222 -818}\special{pa -224 -814}\special{pa -227 -810}% +\special{pa -229 -807}\special{pa -232 -803}\special{pa -234 -799}\special{pa -237 -795}% +\special{pa -239 -791}\special{pa -242 -787}\special{pa -244 -783}\special{pa -247 -779}% +\special{pa -249 -775}\special{pa -252 -770}\special{pa -254 -766}\special{pa -257 -762}% +\special{pa -259 -757}\special{pa -262 -753}\special{pa -264 -749}\special{pa -267 -744}% +\special{pa -269 -740}\special{pa -272 -735}\special{pa -274 -730}\special{pa -277 -726}% +\special{pa -279 -721}\special{pa -282 -716}\special{pa -284 -711}\special{pa -287 -706}% +\special{pa -289 -702}\special{pa -292 -697}\special{pa -294 -692}\special{pa -297 -686}% +\special{pa -299 -681}\special{pa -302 -676}\special{pa -304 -671}\special{pa -307 -666}% +\special{pa -309 -660}\special{pa -312 -655}\special{pa -314 -650}\special{pa -317 -644}% +\special{pa -319 -639}\special{pa -322 -633}\special{pa -324 -628}\special{pa -327 -622}% +\special{pa -329 -616}\special{pa -332 -610}\special{pa -334 -605}\special{pa -337 -599}% +\special{pa -339 -593}\special{pa -342 -587}\special{pa -344 -581}\special{pa -347 -575}% +\special{pa -349 -569}\special{pa -352 -563}\special{pa -354 -557}\special{pa -357 -550}% +\special{pa -359 -544}\special{pa -362 -538}\special{pa -364 -532}\special{pa -367 -525}% +\special{pa -369 -519}\special{pa -372 -512}\special{pa -374 -506}\special{pa -377 -499}% +\special{pa -379 -492}\special{pa -382 -486}\special{pa -384 -479}\special{pa -387 -472}% +\special{pa -389 -465}\special{pa -392 -458}\special{pa -394 -451}\special{pa -397 -445}% +\special{pa -399 -437}\special{pa -402 -430}\special{pa -404 -423}\special{pa -407 -416}% +\special{pa -409 -409}\special{pa -412 -402}\special{pa -414 -394}\special{pa -417 -387}% +\special{pa -419 -380}\special{pa -421 -372}\special{pa -424 -365}\special{pa -426 -357}% +\special{pa -429 -349}\special{pa -431 -342}\special{pa -434 -334}\special{pa -436 -326}% +\special{pa -439 -319}\special{pa -441 -311}\special{pa -444 -303}\special{pa -446 -295}% +\special{pa -449 -287}\special{pa -451 -279}\special{pa -454 -271}\special{pa -456 -263}% +\special{pa -459 -255}\special{pa -461 -246}\special{pa -464 -238}\special{pa -466 -230}% +\special{pa -469 -221}\special{pa -471 -213}\special{pa -474 -204}\special{pa -476 -196}% +\special{pa -479 -187}\special{pa -481 -179}\special{pa -484 -170}\special{pa -486 -161}% +\special{pa -489 -153}\special{pa -491 -144}\special{pa -494 -135}\special{pa -496 -126}% +\special{pa -499 -117}% +\special{fp}% +\special{pa 0 -955}\special{pa -3 -955}\special{pa -5 -955}\special{pa -8 -955}% +\special{pa -11 -955}\special{pa -14 -955}\special{pa -16 -955}\special{pa -19 -955}% +\special{pa -22 -955}\special{pa -25 -954}\special{pa -27 -954}\special{pa -30 -954}% +\special{pa -33 -953}\special{pa -36 -953}\special{pa -38 -952}\special{pa -41 -952}% +\special{pa -44 -951}\special{pa -46 -951}\special{pa -49 -950}\special{pa -52 -949}% +\special{pa -55 -949}\special{pa -57 -948}\special{pa -60 -947}\special{pa -63 -946}% +\special{pa -66 -945}\special{pa -68 -944}\special{pa -71 -943}\special{pa -74 -942}% +\special{pa -77 -941}\special{pa -79 -940}\special{pa -82 -938}\special{pa -85 -937}% +\special{pa -87 -936}\special{pa -90 -934}\special{pa -93 -933}\special{pa -96 -931}% +\special{pa -98 -930}\special{pa -101 -928}\special{pa -104 -927}\special{pa -107 -925}% +\special{pa -109 -923}\special{pa -112 -922}\special{pa -115 -920}\special{pa -118 -918}% +\special{pa -120 -916}\special{pa -123 -914}\special{pa -126 -912}\special{pa -129 -910}% +\special{pa -131 -908}\special{pa -134 -906}\special{pa -137 -904}\special{pa -139 -901}% +\special{pa -142 -899}\special{pa -145 -897}\special{pa -148 -894}\special{pa -150 -892}% +\special{pa -153 -889}\special{pa -156 -887}\special{pa -159 -884}\special{pa -161 -882}% +\special{pa -164 -879}\special{pa -167 -876}\special{pa -170 -874}\special{pa -172 -871}% +\special{pa -175 -868}\special{pa -178 -865}\special{pa -180 -862}\special{pa -183 -859}% +\special{pa -186 -856}\special{pa -189 -853}\special{pa -191 -850}\special{pa -194 -847}% +\special{pa -197 -843}\special{pa -200 -840}\special{pa -202 -837}\special{pa -205 -833}% +\special{pa -208 -830}\special{pa -211 -826}\special{pa -213 -823}\special{pa -216 -819}% +\special{pa -219 -816}\special{pa -221 -812}\special{pa -224 -808}\special{pa -227 -805}% +\special{pa -230 -801}\special{pa -232 -797}\special{pa -235 -793}\special{pa -238 -789}% +\special{pa -241 -785}\special{pa -243 -781}\special{pa -246 -777}\special{pa -249 -773}% +\special{pa -252 -769}\special{pa -254 -764}\special{pa -257 -760}\special{pa -260 -756}% +\special{pa -262 -751}\special{pa -265 -747}\special{pa -268 -742}\special{pa -271 -738}% +\special{pa -273 -733}\special{pa -276 -729}\special{pa -279 -724}\special{pa -282 -719}% +\special{pa -284 -714}\special{pa -287 -710}\special{pa -290 -705}\special{pa -293 -700}% +\special{pa -295 -695}\special{pa -298 -690}\special{pa -301 -685}\special{pa -304 -680}% +\special{pa -306 -675}\special{pa -309 -669}\special{pa -312 -664}\special{pa -314 -659}% +\special{pa -317 -653}\special{pa -320 -648}\special{pa -323 -643}\special{pa -325 -637}% +\special{pa -328 -632}\special{pa -331 -626}\special{pa -334 -620}\special{pa -336 -615}% +\special{pa -339 -609}\special{pa -342 -603}\special{pa -345 -597}\special{pa -347 -592}% +\special{pa -350 -586}\special{pa -353 -580}\special{pa -355 -574}\special{pa -358 -568}% +\special{pa -361 -562}\special{pa -364 -555}\special{pa -366 -549}\special{pa -369 -543}% +\special{pa -372 -537}\special{pa -375 -530}\special{pa -377 -524}\special{pa -380 -517}% +\special{pa -383 -511}\special{pa -386 -504}\special{pa -388 -498}\special{pa -391 -491}% +\special{pa -394 -485}\special{pa -396 -478}\special{pa -399 -471}\special{pa -402 -464}% +\special{pa -405 -457}\special{pa -407 -450}\special{pa -410 -444}\special{pa -413 -436}% +\special{pa -416 -429}\special{pa -418 -422}\special{pa -421 -415}\special{pa -424 -408}% +\special{pa -427 -401}\special{pa -429 -393}\special{pa -432 -386}\special{pa -435 -379}% +\special{pa -437 -371}\special{pa -440 -364}\special{pa -443 -356}\special{pa -446 -349}% +\special{pa -448 -341}\special{pa -451 -333}\special{pa -454 -326}\special{pa -457 -318}% +\special{pa -459 -310}\special{pa -462 -302}\special{pa -465 -294}\special{pa -468 -286}% +\special{pa -470 -278}\special{pa -473 -270}\special{pa -476 -262}\special{pa -479 -254}% +\special{pa -481 -246}\special{pa -484 -237}\special{pa -487 -229}\special{pa -489 -221}% +\special{pa -492 -212}\special{pa -495 -204}\special{pa -498 -195}\special{pa -500 -187}% +\special{pa -503 -178}\special{pa -506 -170}\special{pa -509 -161}\special{pa -511 -152}% +\special{pa -514 -143}\special{pa -517 -135}\special{pa -520 -126}\special{pa -522 -117}% +\special{pa -525 -108}\special{pa -528 -99}\special{pa -530 -90}\special{pa -533 -81}% +\special{pa -536 -72}\special{pa -539 -62}\special{pa -541 -53}\special{pa -544 -44}% +\special{pa -547 -34}% +\special{fp}% +\special{pa 0 -955}\special{pa -3 -954}\special{pa -5 -954}\special{pa -8 -954}% +\special{pa -11 -953}\special{pa -14 -953}\special{pa -16 -952}\special{pa -19 -952}% +\special{pa -22 -951}\special{pa -24 -950}\special{pa -27 -950}\special{pa -30 -949}% +\special{pa -32 -948}\special{pa -35 -947}\special{pa -38 -946}\special{pa -41 -945}% +\special{pa -43 -944}\special{pa -46 -943}\special{pa -49 -942}\special{pa -51 -941}% +\special{pa -54 -940}\special{pa -57 -939}\special{pa -60 -937}\special{pa -62 -936}% +\special{pa -65 -935}\special{pa -68 -933}\special{pa -70 -932}\special{pa -73 -930}% +\special{pa -76 -929}\special{pa -79 -927}\special{pa -81 -925}\special{pa -84 -924}% +\special{pa -87 -922}\special{pa -89 -920}\special{pa -92 -918}\special{pa -95 -916}% +\special{pa -97 -914}\special{pa -100 -912}\special{pa -103 -910}\special{pa -106 -908}% +\special{pa -108 -906}\special{pa -111 -904}\special{pa -114 -902}\special{pa -116 -899}% +\special{pa -119 -897}\special{pa -122 -895}\special{pa -125 -892}\special{pa -127 -890}% +\special{pa -130 -887}\special{pa -133 -885}\special{pa -135 -882}\special{pa -138 -879}% +\special{pa -141 -877}\special{pa -143 -874}\special{pa -146 -871}\special{pa -149 -868}% +\special{pa -152 -865}\special{pa -154 -862}\special{pa -157 -859}\special{pa -160 -856}% +\special{pa -162 -853}\special{pa -165 -850}\special{pa -168 -847}\special{pa -171 -844}% +\special{pa -173 -840}\special{pa -176 -837}\special{pa -179 -834}\special{pa -181 -830}% +\special{pa -184 -827}\special{pa -187 -823}\special{pa -189 -820}\special{pa -192 -816}% +\special{pa -195 -812}\special{pa -198 -809}\special{pa -200 -805}\special{pa -203 -801}% +\special{pa -206 -797}\special{pa -208 -793}\special{pa -211 -789}\special{pa -214 -785}% +\special{pa -217 -781}\special{pa -219 -777}\special{pa -222 -773}\special{pa -225 -769}% +\special{pa -227 -765}\special{pa -230 -760}\special{pa -233 -756}\special{pa -236 -752}% +\special{pa -238 -747}\special{pa -241 -743}\special{pa -244 -738}\special{pa -246 -733}% +\special{pa -249 -729}\special{pa -252 -724}\special{pa -254 -719}\special{pa -257 -715}% +\special{pa -260 -710}\special{pa -263 -705}\special{pa -265 -700}\special{pa -268 -695}% +\special{pa -271 -690}\special{pa -273 -685}\special{pa -276 -680}\special{pa -279 -675}% +\special{pa -282 -670}\special{pa -284 -664}\special{pa -287 -659}\special{pa -290 -654}% +\special{pa -292 -648}\special{pa -295 -643}\special{pa -298 -637}\special{pa -300 -632}% +\special{pa -303 -626}\special{pa -306 -621}\special{pa -309 -615}\special{pa -311 -609}% +\special{pa -314 -604}\special{pa -317 -598}\special{pa -319 -592}\special{pa -322 -586}% +\special{pa -325 -580}\special{pa -328 -574}\special{pa -330 -568}\special{pa -333 -562}% +\special{pa -336 -556}\special{pa -338 -549}\special{pa -341 -543}\special{pa -344 -537}% +\special{pa -346 -531}\special{pa -349 -524}\special{pa -352 -518}\special{pa -355 -511}% +\special{pa -357 -505}\special{pa -360 -498}\special{pa -363 -491}\special{pa -365 -485}% +\special{pa -368 -478}\special{pa -371 -471}\special{pa -374 -464}\special{pa -376 -458}% +\special{pa -379 -451}\special{pa -382 -444}\special{pa -384 -437}\special{pa -387 -430}% +\special{pa -390 -423}\special{pa -393 -415}\special{pa -395 -408}\special{pa -398 -401}% +\special{pa -401 -394}\special{pa -403 -386}\special{pa -406 -379}\special{pa -409 -371}% +\special{pa -411 -364}\special{pa -414 -356}\special{pa -417 -349}\special{pa -420 -341}% +\special{pa -422 -333}\special{pa -425 -326}\special{pa -428 -318}\special{pa -430 -310}% +\special{pa -433 -302}\special{pa -436 -294}\special{pa -439 -286}\special{pa -441 -278}% +\special{pa -444 -270}\special{pa -447 -262}\special{pa -449 -254}\special{pa -452 -246}% +\special{pa -455 -238}\special{pa -457 -229}\special{pa -460 -221}\special{pa -463 -213}% +\special{pa -466 -204}\special{pa -468 -196}\special{pa -471 -187}\special{pa -474 -178}% +\special{pa -476 -170}\special{pa -479 -161}\special{pa -482 -152}\special{pa -485 -144}% +\special{pa -487 -135}\special{pa -490 -126}\special{pa -493 -117}\special{pa -495 -108}% +\special{pa -498 -99}\special{pa -501 -90}\special{pa -503 -81}\special{pa -506 -72}% +\special{pa -509 -62}\special{pa -512 -53}\special{pa -514 -44}\special{pa -517 -35}% +\special{pa -520 -25}\special{pa -522 -16}\special{pa -525 -6}\special{pa -528 3}% +\special{pa -531 13}\special{pa -533 23}\special{pa -536 32}\special{pa -539 42}% +\special{pa -541 52}% +\special{fp}% +\special{pa 0 -955}\special{pa -2 -954}\special{pa -5 -953}\special{pa -7 -952}% +\special{pa -10 -952}\special{pa -12 -951}\special{pa -14 -950}\special{pa -17 -949}% +\special{pa -19 -948}\special{pa -22 -947}\special{pa -24 -946}\special{pa -27 -944}% +\special{pa -29 -943}\special{pa -31 -942}\special{pa -34 -941}\special{pa -36 -939}% +\special{pa -39 -938}\special{pa -41 -936}\special{pa -43 -935}\special{pa -46 -933}% +\special{pa -48 -932}\special{pa -51 -930}\special{pa -53 -929}\special{pa -56 -927}% +\special{pa -58 -925}\special{pa -60 -923}\special{pa -63 -921}\special{pa -65 -919}% +\special{pa -68 -917}\special{pa -70 -915}\special{pa -72 -913}\special{pa -75 -911}% +\special{pa -77 -909}\special{pa -80 -907}\special{pa -82 -904}\special{pa -85 -902}% +\special{pa -87 -900}\special{pa -89 -897}\special{pa -92 -895}\special{pa -94 -892}% +\special{pa -97 -890}\special{pa -99 -887}\special{pa -101 -885}\special{pa -104 -882}% +\special{pa -106 -879}\special{pa -109 -876}\special{pa -111 -874}\special{pa -113 -871}% +\special{pa -116 -868}\special{pa -118 -865}\special{pa -121 -862}\special{pa -123 -859}% +\special{pa -126 -856}\special{pa -128 -852}\special{pa -130 -849}\special{pa -133 -846}% +\special{pa -135 -843}\special{pa -138 -839}\special{pa -140 -836}\special{pa -142 -832}% +\special{pa -145 -829}\special{pa -147 -825}\special{pa -150 -822}\special{pa -152 -818}% +\special{pa -155 -814}\special{pa -157 -811}\special{pa -159 -807}\special{pa -162 -803}% +\special{pa -164 -799}\special{pa -167 -795}\special{pa -169 -791}\special{pa -171 -787}% +\special{pa -174 -783}\special{pa -176 -779}\special{pa -179 -775}\special{pa -181 -771}% +\special{pa -184 -766}\special{pa -186 -762}\special{pa -188 -758}\special{pa -191 -753}% +\special{pa -193 -749}\special{pa -196 -744}\special{pa -198 -740}\special{pa -200 -735}% +\special{pa -203 -730}\special{pa -205 -726}\special{pa -208 -721}\special{pa -210 -716}% +\special{pa -212 -711}\special{pa -215 -707}\special{pa -217 -702}\special{pa -220 -697}% +\special{pa -222 -692}\special{pa -225 -686}\special{pa -227 -681}\special{pa -229 -676}% +\special{pa -232 -671}\special{pa -234 -666}\special{pa -237 -660}\special{pa -239 -655}% +\special{pa -241 -650}\special{pa -244 -644}\special{pa -246 -639}\special{pa -249 -633}% +\special{pa -251 -627}\special{pa -254 -622}\special{pa -256 -616}\special{pa -258 -610}% +\special{pa -261 -605}\special{pa -263 -599}\special{pa -266 -593}\special{pa -268 -587}% +\special{pa -270 -581}\special{pa -273 -575}\special{pa -275 -569}\special{pa -278 -563}% +\special{pa -280 -556}\special{pa -283 -550}\special{pa -285 -544}\special{pa -287 -538}% +\special{pa -290 -531}\special{pa -292 -525}\special{pa -295 -518}\special{pa -297 -512}% +\special{pa -299 -505}\special{pa -302 -499}\special{pa -304 -492}\special{pa -307 -485}% +\special{pa -309 -479}\special{pa -311 -472}\special{pa -314 -465}\special{pa -316 -458}% +\special{pa -319 -451}\special{pa -321 -444}\special{pa -324 -437}\special{pa -326 -430}% +\special{pa -328 -423}\special{pa -331 -416}\special{pa -333 -408}\special{pa -336 -401}% +\special{pa -338 -394}\special{pa -340 -387}\special{pa -343 -379}\special{pa -345 -372}% +\special{pa -348 -364}\special{pa -350 -357}\special{pa -353 -349}\special{pa -355 -341}% +\special{pa -357 -334}\special{pa -360 -326}\special{pa -362 -318}\special{pa -365 -310}% +\special{pa -367 -302}\special{pa -369 -294}\special{pa -372 -286}\special{pa -374 -278}% +\special{pa -377 -270}\special{pa -379 -262}\special{pa -381 -254}\special{pa -384 -246}% +\special{pa -386 -237}\special{pa -389 -229}\special{pa -391 -221}\special{pa -394 -212}% +\special{pa -396 -204}\special{pa -398 -195}\special{pa -401 -187}\special{pa -403 -178}% +\special{pa -406 -169}\special{pa -408 -161}\special{pa -410 -152}\special{pa -413 -143}% +\special{pa -415 -134}\special{pa -418 -125}\special{pa -420 -116}\special{pa -423 -108}% +\special{pa -425 -98}\special{pa -427 -89}\special{pa -430 -80}\special{pa -432 -71}% +\special{pa -435 -62}\special{pa -437 -53}\special{pa -439 -43}\special{pa -442 -34}% +\special{pa -444 -24}\special{pa -447 -15}\special{pa -449 -5}\special{pa -452 4}% +\special{pa -454 14}\special{pa -456 23}\special{pa -459 33}\special{pa -461 43}% +\special{pa -464 53}\special{pa -466 63}\special{pa -468 72}\special{pa -471 82}% +\special{pa -473 92}\special{pa -476 102}\special{pa -478 113}\special{pa -480 123}% +\special{pa -483 133}% +\special{fp}% +\special{pa 0 -955}\special{pa -2 -954}\special{pa -4 -953}\special{pa -6 -951}% +\special{pa -8 -950}\special{pa -9 -949}\special{pa -11 -948}\special{pa -13 -946}% +\special{pa -15 -945}\special{pa -17 -944}\special{pa -19 -942}\special{pa -21 -941}% +\special{pa -23 -939}\special{pa -25 -938}\special{pa -26 -936}\special{pa -28 -934}% +\special{pa -30 -932}\special{pa -32 -931}\special{pa -34 -929}\special{pa -36 -927}% +\special{pa -38 -925}\special{pa -40 -923}\special{pa -41 -921}\special{pa -43 -919}% +\special{pa -45 -917}\special{pa -47 -915}\special{pa -49 -912}\special{pa -51 -910}% +\special{pa -53 -908}\special{pa -55 -905}\special{pa -57 -903}\special{pa -58 -901}% +\special{pa -60 -898}\special{pa -62 -896}\special{pa -64 -893}\special{pa -66 -890}% +\special{pa -68 -888}\special{pa -70 -885}\special{pa -72 -882}\special{pa -74 -879}% +\special{pa -75 -876}\special{pa -77 -873}\special{pa -79 -870}\special{pa -81 -867}% +\special{pa -83 -864}\special{pa -85 -861}\special{pa -87 -858}\special{pa -89 -855}% +\special{pa -91 -851}\special{pa -92 -848}\special{pa -94 -845}\special{pa -96 -841}% +\special{pa -98 -838}\special{pa -100 -834}\special{pa -102 -831}\special{pa -104 -827}% +\special{pa -106 -824}\special{pa -107 -820}\special{pa -109 -816}\special{pa -111 -812}% +\special{pa -113 -808}\special{pa -115 -805}\special{pa -117 -801}\special{pa -119 -797}% +\special{pa -121 -793}\special{pa -123 -789}\special{pa -124 -784}\special{pa -126 -780}% +\special{pa -128 -776}\special{pa -130 -772}\special{pa -132 -767}\special{pa -134 -763}% +\special{pa -136 -759}\special{pa -138 -754}\special{pa -140 -750}\special{pa -141 -745}% +\special{pa -143 -740}\special{pa -145 -736}\special{pa -147 -731}\special{pa -149 -726}% +\special{pa -151 -722}\special{pa -153 -717}\special{pa -155 -712}\special{pa -157 -707}% +\special{pa -158 -702}\special{pa -160 -697}\special{pa -162 -692}\special{pa -164 -687}% +\special{pa -166 -681}\special{pa -168 -676}\special{pa -170 -671}\special{pa -172 -666}% +\special{pa -173 -660}\special{pa -175 -655}\special{pa -177 -649}\special{pa -179 -644}% +\special{pa -181 -638}\special{pa -183 -633}\special{pa -185 -627}\special{pa -187 -621}% +\special{pa -189 -616}\special{pa -190 -610}\special{pa -192 -604}\special{pa -194 -598}% +\special{pa -196 -592}\special{pa -198 -586}\special{pa -200 -580}\special{pa -202 -574}% +\special{pa -204 -568}\special{pa -206 -562}\special{pa -207 -555}\special{pa -209 -549}% +\special{pa -211 -543}\special{pa -213 -536}\special{pa -215 -530}\special{pa -217 -523}% +\special{pa -219 -517}\special{pa -221 -510}\special{pa -223 -504}\special{pa -224 -497}% +\special{pa -226 -490}\special{pa -228 -484}\special{pa -230 -477}\special{pa -232 -470}% +\special{pa -234 -463}\special{pa -236 -456}\special{pa -238 -449}\special{pa -239 -442}% +\special{pa -241 -435}\special{pa -243 -428}\special{pa -245 -421}\special{pa -247 -413}% +\special{pa -249 -406}\special{pa -251 -399}\special{pa -253 -391}\special{pa -255 -384}% +\special{pa -256 -377}\special{pa -258 -369}\special{pa -260 -361}\special{pa -262 -354}% +\special{pa -264 -346}\special{pa -266 -338}\special{pa -268 -331}\special{pa -270 -323}% +\special{pa -272 -315}\special{pa -273 -307}\special{pa -275 -299}\special{pa -277 -291}% +\special{pa -279 -283}\special{pa -281 -275}\special{pa -283 -267}\special{pa -285 -259}% +\special{pa -287 -251}\special{pa -289 -242}\special{pa -290 -234}\special{pa -292 -226}% +\special{pa -294 -217}\special{pa -296 -209}\special{pa -298 -200}\special{pa -300 -192}% +\special{pa -302 -183}\special{pa -304 -174}\special{pa -306 -166}\special{pa -307 -157}% +\special{pa -309 -148}\special{pa -311 -139}\special{pa -313 -130}\special{pa -315 -121}% +\special{pa -317 -112}\special{pa -319 -103}\special{pa -321 -94}\special{pa -322 -85}% +\special{pa -324 -76}\special{pa -326 -67}\special{pa -328 -57}\special{pa -330 -48}% +\special{pa -332 -39}\special{pa -334 -29}\special{pa -336 -20}\special{pa -338 -10}% +\special{pa -339 -1}\special{pa -341 9}\special{pa -343 19}\special{pa -345 28}% +\special{pa -347 38}\special{pa -349 48}\special{pa -351 58}\special{pa -353 68}% +\special{pa -355 78}\special{pa -356 88}\special{pa -358 98}\special{pa -360 108}% +\special{pa -362 118}\special{pa -364 128}\special{pa -366 139}\special{pa -368 149}% +\special{pa -370 159}\special{pa -372 170}\special{pa -373 180}\special{pa -375 190}% +\special{pa -377 201}% +\special{fp}% +\special{pa -19 -942}\special{pa -18 -942}\special{pa -18 -942}\special{pa -17 -941}% +\special{pa -16 -941}\special{pa -15 -941}\special{pa -15 -941}\special{pa -14 -940}% +\special{pa -13 -940}\special{pa -13 -940}\special{pa -12 -940}\special{pa -11 -940}% +\special{pa -10 -939}\special{pa -9 -939}\special{pa -9 -939}\special{pa -8 -939}% +\special{pa -7 -939}\special{pa -6 -939}\special{pa -5 -939}\special{pa -4 -939}% +\special{pa -3 -939}\special{pa -3 -939}\special{pa -2 -939}\special{pa -1 -939}% +\special{pa 0 -939}\special{pa 1 -939}\special{pa 2 -939}\special{pa 3 -939}% +\special{pa 3 -939}\special{pa 4 -939}\special{pa 5 -939}\special{pa 6 -939}% +\special{pa 7 -939}\special{pa 8 -939}\special{pa 9 -939}\special{pa 9 -939}% +\special{pa 10 -939}\special{pa 11 -940}\special{pa 12 -940}\special{pa 13 -940}% +\special{pa 13 -940}\special{pa 14 -940}\special{pa 15 -941}\special{pa 15 -941}% +\special{pa 16 -941}\special{pa 17 -941}\special{pa 18 -942}\special{pa 18 -942}% +\special{pa 19 -942}\special{pa 19 -943}\special{pa 20 -943}\special{pa 21 -943}% +\special{pa 21 -944}\special{pa 22 -944}\special{pa 22 -944}\special{pa 23 -945}% +\special{pa 23 -945}\special{pa 24 -945}\special{pa 24 -946}\special{pa 25 -946}% +\special{pa 25 -946}\special{pa 25 -947}\special{pa 26 -947}\special{pa 26 -948}% +\special{pa 26 -948}\special{pa 26 -948}\special{pa 27 -949}\special{pa 27 -949}% +\special{pa 27 -950}\special{pa 27 -950}\special{pa 27 -951}\special{pa 27 -951}% +\special{pa 28 -951}\special{pa 28 -952}\special{pa 28 -952}\special{pa 28 -953}% +\special{pa 28 -953}\special{pa 27 -954}\special{pa 27 -954}\special{pa 27 -954}% +\special{pa 27 -955}\special{pa 27 -955}\special{pa 27 -956}\special{pa 26 -956}% +\special{pa 26 -957}\special{pa 26 -957}\special{pa 26 -957}\special{pa 25 -958}% +\special{pa 25 -958}\special{pa 25 -959}\special{pa 24 -959}\special{pa 24 -959}% +\special{pa 23 -960}\special{pa 23 -960}\special{pa 22 -960}\special{pa 22 -961}% +\special{pa 21 -961}\special{pa 21 -961}\special{pa 20 -962}\special{pa 19 -962}% +\special{pa 19 -962}\special{pa 18 -963}\special{pa 18 -963}\special{pa 17 -963}% +\special{pa 16 -963}\special{pa 15 -964}\special{pa 15 -964}\special{pa 14 -964}% +\special{pa 13 -964}\special{pa 13 -965}\special{pa 12 -965}\special{pa 11 -965}% +\special{pa 10 -965}\special{pa 9 -965}\special{pa 9 -965}\special{pa 8 -966}% +\special{pa 7 -966}\special{pa 6 -966}\special{pa 5 -966}\special{pa 4 -966}% +\special{pa 3 -966}\special{pa 3 -966}\special{pa 2 -966}\special{pa 1 -966}% +\special{pa -0 -966}\special{pa -1 -966}\special{pa -2 -966}\special{pa -3 -966}% +\special{pa -3 -966}\special{pa -4 -966}\special{pa -5 -966}\special{pa -6 -966}% +\special{pa -7 -966}\special{pa -8 -966}\special{pa -9 -965}\special{pa -9 -965}% +\special{pa -10 -965}\special{pa -11 -965}\special{pa -12 -965}\special{pa -13 -965}% +\special{pa -13 -964}\special{pa -14 -964}\special{pa -15 -964}\special{pa -15 -964}% +\special{pa -16 -963}\special{pa -17 -963}\special{pa -18 -963}\special{pa -18 -963}% +\special{pa -19 -962}\special{pa -19 -962}\special{pa -20 -962}\special{pa -21 -961}% +\special{pa -21 -961}\special{pa -22 -961}\special{pa -22 -960}\special{pa -23 -960}% +\special{pa -23 -960}\special{pa -24 -959}\special{pa -24 -959}\special{pa -25 -959}% +\special{pa -25 -958}\special{pa -25 -958}\special{pa -26 -957}\special{pa -26 -957}% +\special{pa -26 -957}\special{pa -26 -956}\special{pa -27 -956}\special{pa -27 -955}% +\special{pa -27 -955}\special{pa -27 -954}\special{pa -27 -954}\special{pa -27 -954}% +\special{pa -28 -953}\special{pa -28 -953}\special{pa -28 -952}\special{pa -28 -952}% +\special{pa -28 -951}\special{pa -27 -951}\special{pa -27 -951}\special{pa -27 -950}% +\special{pa -27 -950}\special{pa -27 -949}\special{pa -27 -949}\special{pa -26 -948}% +\special{pa -26 -948}\special{pa -26 -948}\special{pa -26 -947}\special{pa -25 -947}% +\special{pa -25 -946}\special{pa -25 -946}\special{pa -24 -946}\special{pa -24 -945}% +\special{pa -23 -945}\special{pa -23 -945}\special{pa -22 -944}\special{pa -22 -944}% +\special{pa -21 -943}\special{pa -21 -943}\special{pa -20 -943}\special{pa -19 -943}% +\special{pa -19 -942}% +\special{fp}% +\special{pa -38 -925}\special{pa -36 -924}\special{pa -35 -924}\special{pa -34 -923}% +\special{pa -32 -923}\special{pa -31 -922}\special{pa -30 -922}\special{pa -28 -921}% +\special{pa -27 -921}\special{pa -25 -921}\special{pa -23 -920}\special{pa -22 -920}% +\special{pa -20 -919}\special{pa -19 -919}\special{pa -17 -919}\special{pa -15 -919}% +\special{pa -14 -918}\special{pa -12 -918}\special{pa -10 -918}\special{pa -9 -918}% +\special{pa -7 -918}\special{pa -5 -918}\special{pa -3 -918}\special{pa -2 -918}% +\special{pa 0 -918}\special{pa 2 -918}\special{pa 3 -918}\special{pa 5 -918}% +\special{pa 7 -918}\special{pa 9 -918}\special{pa 10 -918}\special{pa 12 -918}% +\special{pa 14 -918}\special{pa 15 -919}\special{pa 17 -919}\special{pa 19 -919}% +\special{pa 20 -920}\special{pa 22 -920}\special{pa 23 -920}\special{pa 25 -921}% +\special{pa 27 -921}\special{pa 28 -921}\special{pa 30 -922}\special{pa 31 -922}% +\special{pa 32 -923}\special{pa 34 -923}\special{pa 35 -924}\special{pa 36 -924}% +\special{pa 38 -925}\special{pa 39 -926}\special{pa 40 -926}\special{pa 41 -927}% +\special{pa 42 -928}\special{pa 44 -928}\special{pa 45 -929}\special{pa 46 -930}% +\special{pa 47 -930}\special{pa 47 -931}\special{pa 48 -932}\special{pa 49 -933}% +\special{pa 50 -933}\special{pa 51 -934}\special{pa 51 -935}\special{pa 52 -936}% +\special{pa 52 -937}\special{pa 53 -937}\special{pa 53 -938}\special{pa 54 -939}% +\special{pa 54 -940}\special{pa 54 -941}\special{pa 55 -942}\special{pa 55 -943}% +\special{pa 55 -943}\special{pa 55 -944}\special{pa 55 -945}\special{pa 55 -946}% +\special{pa 55 -947}\special{pa 55 -948}\special{pa 55 -949}\special{pa 54 -949}% +\special{pa 54 -950}\special{pa 54 -951}\special{pa 53 -952}\special{pa 53 -953}% +\special{pa 52 -954}\special{pa 52 -954}\special{pa 51 -955}\special{pa 51 -956}% +\special{pa 50 -957}\special{pa 49 -958}\special{pa 48 -958}\special{pa 47 -959}% +\special{pa 47 -960}\special{pa 46 -961}\special{pa 45 -961}\special{pa 44 -962}% +\special{pa 42 -963}\special{pa 41 -963}\special{pa 40 -964}\special{pa 39 -965}% +\special{pa 38 -965}\special{pa 36 -966}\special{pa 35 -966}\special{pa 34 -967}% +\special{pa 32 -967}\special{pa 31 -968}\special{pa 30 -968}\special{pa 28 -969}% +\special{pa 27 -969}\special{pa 25 -970}\special{pa 23 -970}\special{pa 22 -970}% +\special{pa 20 -971}\special{pa 19 -971}\special{pa 17 -971}\special{pa 15 -972}% +\special{pa 14 -972}\special{pa 12 -972}\special{pa 10 -972}\special{pa 9 -972}% +\special{pa 7 -972}\special{pa 5 -973}\special{pa 3 -973}\special{pa 2 -973}% +\special{pa -0 -973}\special{pa -2 -973}\special{pa -3 -973}\special{pa -5 -973}% +\special{pa -7 -972}\special{pa -9 -972}\special{pa -10 -972}\special{pa -12 -972}% +\special{pa -14 -972}\special{pa -15 -972}\special{pa -17 -971}\special{pa -19 -971}% +\special{pa -20 -971}\special{pa -22 -970}\special{pa -23 -970}\special{pa -25 -970}% +\special{pa -27 -969}\special{pa -28 -969}\special{pa -30 -968}\special{pa -31 -968}% +\special{pa -32 -967}\special{pa -34 -967}\special{pa -35 -966}\special{pa -36 -966}% +\special{pa -38 -965}\special{pa -39 -965}\special{pa -40 -964}\special{pa -41 -963}% +\special{pa -42 -963}\special{pa -44 -962}\special{pa -45 -961}\special{pa -46 -961}% +\special{pa -47 -960}\special{pa -47 -959}\special{pa -48 -958}\special{pa -49 -958}% +\special{pa -50 -957}\special{pa -51 -956}\special{pa -51 -955}\special{pa -52 -954}% +\special{pa -52 -954}\special{pa -53 -953}\special{pa -53 -952}\special{pa -54 -951}% +\special{pa -54 -950}\special{pa -54 -949}\special{pa -55 -949}\special{pa -55 -948}% +\special{pa -55 -947}\special{pa -55 -946}\special{pa -55 -945}\special{pa -55 -944}% +\special{pa -55 -943}\special{pa -55 -943}\special{pa -55 -942}\special{pa -54 -941}% +\special{pa -54 -940}\special{pa -54 -939}\special{pa -53 -938}\special{pa -53 -937}% +\special{pa -52 -937}\special{pa -52 -936}\special{pa -51 -935}\special{pa -51 -934}% +\special{pa -50 -933}\special{pa -49 -933}\special{pa -48 -932}\special{pa -47 -931}% +\special{pa -47 -930}\special{pa -46 -930}\special{pa -45 -929}\special{pa -44 -928}% +\special{pa -42 -928}\special{pa -41 -927}\special{pa -40 -926}\special{pa -39 -926}% +\special{pa -38 -925}% +\special{fp}% +\special{pa -57 -903}\special{pa -55 -902}\special{pa -53 -901}\special{pa -51 -901}% +\special{pa -49 -900}\special{pa -46 -899}\special{pa -44 -898}\special{pa -42 -898}% +\special{pa -40 -897}\special{pa -38 -896}\special{pa -35 -896}\special{pa -33 -895}% +\special{pa -30 -895}\special{pa -28 -894}\special{pa -26 -894}\special{pa -23 -893}% +\special{pa -21 -893}\special{pa -18 -893}\special{pa -15 -893}\special{pa -13 -892}% +\special{pa -10 -892}\special{pa -8 -892}\special{pa -5 -892}\special{pa -3 -892}% +\special{pa 0 -892}\special{pa 3 -892}\special{pa 5 -892}\special{pa 8 -892}% +\special{pa 10 -892}\special{pa 13 -892}\special{pa 16 -893}\special{pa 18 -893}% +\special{pa 21 -893}\special{pa 23 -894}\special{pa 26 -894}\special{pa 28 -894}% +\special{pa 30 -895}\special{pa 33 -895}\special{pa 35 -896}\special{pa 38 -896}% +\special{pa 40 -897}\special{pa 42 -898}\special{pa 44 -898}\special{pa 46 -899}% +\special{pa 49 -900}\special{pa 51 -901}\special{pa 53 -901}\special{pa 55 -902}% +\special{pa 57 -903}\special{pa 58 -904}\special{pa 60 -905}\special{pa 62 -906}% +\special{pa 64 -907}\special{pa 65 -908}\special{pa 67 -909}\special{pa 68 -910}% +\special{pa 70 -911}\special{pa 71 -912}\special{pa 72 -913}\special{pa 74 -914}% +\special{pa 75 -916}\special{pa 76 -917}\special{pa 77 -918}\special{pa 78 -919}% +\special{pa 79 -920}\special{pa 79 -922}\special{pa 80 -923}\special{pa 81 -924}% +\special{pa 81 -925}\special{pa 82 -927}\special{pa 82 -928}\special{pa 82 -929}% +\special{pa 83 -931}\special{pa 83 -932}\special{pa 83 -933}\special{pa 83 -935}% +\special{pa 83 -936}\special{pa 82 -937}\special{pa 82 -938}\special{pa 82 -940}% +\special{pa 81 -941}\special{pa 81 -942}\special{pa 80 -943}\special{pa 79 -945}% +\special{pa 79 -946}\special{pa 78 -947}\special{pa 77 -948}\special{pa 76 -950}% +\special{pa 75 -951}\special{pa 74 -952}\special{pa 72 -953}\special{pa 71 -954}% +\special{pa 70 -955}\special{pa 68 -956}\special{pa 67 -958}\special{pa 65 -959}% +\special{pa 64 -960}\special{pa 62 -961}\special{pa 60 -962}\special{pa 58 -962}% +\special{pa 57 -963}\special{pa 55 -964}\special{pa 53 -965}\special{pa 51 -966}% +\special{pa 49 -967}\special{pa 46 -967}\special{pa 44 -968}\special{pa 42 -969}% +\special{pa 40 -969}\special{pa 38 -970}\special{pa 35 -971}\special{pa 33 -971}% +\special{pa 30 -972}\special{pa 28 -972}\special{pa 26 -973}\special{pa 23 -973}% +\special{pa 21 -973}\special{pa 18 -974}\special{pa 15 -974}\special{pa 13 -974}% +\special{pa 10 -974}\special{pa 8 -974}\special{pa 5 -974}\special{pa 3 -975}% +\special{pa -0 -975}\special{pa -3 -975}\special{pa -5 -974}\special{pa -8 -974}% +\special{pa -10 -974}\special{pa -13 -974}\special{pa -16 -974}\special{pa -18 -974}% +\special{pa -21 -973}\special{pa -23 -973}\special{pa -26 -973}\special{pa -28 -972}% +\special{pa -30 -972}\special{pa -33 -971}\special{pa -35 -971}\special{pa -38 -970}% +\special{pa -40 -969}\special{pa -42 -969}\special{pa -44 -968}\special{pa -46 -967}% +\special{pa -49 -967}\special{pa -51 -966}\special{pa -53 -965}\special{pa -55 -964}% +\special{pa -57 -963}\special{pa -58 -962}\special{pa -60 -961}\special{pa -62 -961}% +\special{pa -64 -960}\special{pa -65 -959}\special{pa -67 -957}\special{pa -68 -956}% +\special{pa -70 -955}\special{pa -71 -954}\special{pa -72 -953}\special{pa -74 -952}% +\special{pa -75 -951}\special{pa -76 -950}\special{pa -77 -948}\special{pa -78 -947}% +\special{pa -79 -946}\special{pa -79 -945}\special{pa -80 -943}\special{pa -81 -942}% +\special{pa -81 -941}\special{pa -82 -940}\special{pa -82 -938}\special{pa -82 -937}% +\special{pa -83 -936}\special{pa -83 -934}\special{pa -83 -933}\special{pa -83 -932}% +\special{pa -83 -931}\special{pa -82 -929}\special{pa -82 -928}\special{pa -82 -927}% +\special{pa -81 -925}\special{pa -81 -924}\special{pa -80 -923}\special{pa -79 -922}% +\special{pa -79 -920}\special{pa -78 -919}\special{pa -77 -918}\special{pa -76 -917}% +\special{pa -75 -916}\special{pa -74 -914}\special{pa -72 -913}\special{pa -71 -912}% +\special{pa -70 -911}\special{pa -68 -910}\special{pa -67 -909}\special{pa -65 -908}% +\special{pa -64 -907}\special{pa -62 -906}\special{pa -60 -905}\special{pa -58 -904}% +\special{pa -57 -903}% +\special{fp}% +\special{pa -75 -876}\special{pa -73 -875}\special{pa -70 -874}\special{pa -68 -873}% +\special{pa -65 -872}\special{pa -62 -871}\special{pa -59 -870}\special{pa -56 -869}% +\special{pa -53 -868}\special{pa -50 -867}\special{pa -47 -867}\special{pa -44 -866}% +\special{pa -41 -865}\special{pa -37 -865}\special{pa -34 -864}\special{pa -31 -864}% +\special{pa -27 -863}\special{pa -24 -863}\special{pa -21 -862}\special{pa -17 -862}% +\special{pa -14 -862}\special{pa -10 -862}\special{pa -7 -861}\special{pa -3 -861}% +\special{pa 0 -861}\special{pa 4 -861}\special{pa 7 -861}\special{pa 10 -862}% +\special{pa 14 -862}\special{pa 17 -862}\special{pa 21 -862}\special{pa 24 -863}% +\special{pa 27 -863}\special{pa 31 -864}\special{pa 34 -864}\special{pa 37 -865}% +\special{pa 41 -865}\special{pa 44 -866}\special{pa 47 -867}\special{pa 50 -867}% +\special{pa 53 -868}\special{pa 56 -869}\special{pa 59 -870}\special{pa 62 -871}% +\special{pa 65 -872}\special{pa 68 -873}\special{pa 70 -874}\special{pa 73 -875}% +\special{pa 75 -876}\special{pa 78 -878}\special{pa 80 -879}\special{pa 83 -880}% +\special{pa 85 -881}\special{pa 87 -883}\special{pa 89 -884}\special{pa 91 -886}% +\special{pa 93 -887}\special{pa 95 -888}\special{pa 97 -890}\special{pa 98 -891}% +\special{pa 100 -893}\special{pa 101 -895}\special{pa 103 -896}\special{pa 104 -898}% +\special{pa 105 -899}\special{pa 106 -901}\special{pa 107 -903}\special{pa 108 -904}% +\special{pa 108 -906}\special{pa 109 -908}\special{pa 109 -910}\special{pa 110 -911}% +\special{pa 110 -913}\special{pa 110 -915}\special{pa 110 -917}\special{pa 110 -918}% +\special{pa 110 -920}\special{pa 110 -922}\special{pa 109 -923}\special{pa 109 -925}% +\special{pa 108 -927}\special{pa 108 -929}\special{pa 107 -930}\special{pa 106 -932}% +\special{pa 105 -934}\special{pa 104 -935}\special{pa 102 -937}\special{pa 101 -938}% +\special{pa 100 -940}\special{pa 98 -942}\special{pa 97 -943}\special{pa 95 -945}% +\special{pa 93 -946}\special{pa 91 -947}\special{pa 89 -949}\special{pa 87 -950}% +\special{pa 85 -952}\special{pa 83 -953}\special{pa 80 -954}\special{pa 78 -955}% +\special{pa 75 -957}\special{pa 73 -958}\special{pa 70 -959}\special{pa 68 -960}% +\special{pa 65 -961}\special{pa 62 -962}\special{pa 59 -963}\special{pa 56 -964}% +\special{pa 53 -965}\special{pa 50 -966}\special{pa 47 -966}\special{pa 44 -967}% +\special{pa 41 -968}\special{pa 37 -968}\special{pa 34 -969}\special{pa 31 -969}% +\special{pa 27 -970}\special{pa 24 -970}\special{pa 21 -971}\special{pa 17 -971}% +\special{pa 14 -971}\special{pa 10 -971}\special{pa 7 -971}\special{pa 3 -972}% +\special{pa -0 -972}\special{pa -4 -972}\special{pa -7 -971}\special{pa -10 -971}% +\special{pa -14 -971}\special{pa -17 -971}\special{pa -21 -971}\special{pa -24 -970}% +\special{pa -27 -970}\special{pa -31 -969}\special{pa -34 -969}\special{pa -37 -968}% +\special{pa -41 -968}\special{pa -44 -967}\special{pa -47 -966}\special{pa -50 -966}% +\special{pa -53 -965}\special{pa -56 -964}\special{pa -59 -963}\special{pa -62 -962}% +\special{pa -65 -961}\special{pa -68 -960}\special{pa -70 -959}\special{pa -73 -958}% +\special{pa -75 -957}\special{pa -78 -955}\special{pa -80 -954}\special{pa -83 -953}% +\special{pa -85 -952}\special{pa -87 -950}\special{pa -89 -949}\special{pa -91 -947}% +\special{pa -93 -946}\special{pa -95 -945}\special{pa -97 -943}\special{pa -98 -941}% +\special{pa -100 -940}\special{pa -101 -938}\special{pa -103 -937}\special{pa -104 -935}% +\special{pa -105 -934}\special{pa -106 -932}\special{pa -107 -930}\special{pa -108 -928}% +\special{pa -108 -927}\special{pa -109 -925}\special{pa -109 -923}\special{pa -110 -922}% +\special{pa -110 -920}\special{pa -110 -918}\special{pa -110 -916}\special{pa -110 -915}% +\special{pa -110 -913}\special{pa -110 -911}\special{pa -109 -910}\special{pa -109 -908}% +\special{pa -108 -906}\special{pa -108 -904}\special{pa -107 -903}\special{pa -106 -901}% +\special{pa -105 -899}\special{pa -104 -898}\special{pa -102 -896}\special{pa -101 -895}% +\special{pa -100 -893}\special{pa -98 -891}\special{pa -97 -890}\special{pa -95 -888}% +\special{pa -93 -887}\special{pa -91 -885}\special{pa -89 -884}\special{pa -87 -883}% +\special{pa -85 -881}\special{pa -83 -880}\special{pa -80 -879}\special{pa -78 -877}% +\special{pa -75 -876}% +\special{fp}% +\special{pa -94 -845}\special{pa -91 -843}\special{pa -88 -842}\special{pa -84 -841}% +\special{pa -81 -839}\special{pa -77 -838}\special{pa -74 -837}\special{pa -70 -836}% +\special{pa -66 -835}\special{pa -63 -834}\special{pa -59 -833}\special{pa -55 -832}% +\special{pa -51 -831}\special{pa -47 -830}\special{pa -43 -829}\special{pa -38 -829}% +\special{pa -34 -828}\special{pa -30 -828}\special{pa -26 -827}\special{pa -22 -827}% +\special{pa -17 -827}\special{pa -13 -826}\special{pa -9 -826}\special{pa -4 -826}% +\special{pa 0 -826}\special{pa 4 -826}\special{pa 9 -826}\special{pa 13 -826}% +\special{pa 17 -827}\special{pa 22 -827}\special{pa 26 -827}\special{pa 30 -828}% +\special{pa 34 -828}\special{pa 38 -829}\special{pa 43 -829}\special{pa 47 -830}% +\special{pa 51 -831}\special{pa 55 -832}\special{pa 59 -833}\special{pa 63 -834}% +\special{pa 66 -835}\special{pa 70 -836}\special{pa 74 -837}\special{pa 77 -838}% +\special{pa 81 -839}\special{pa 84 -841}\special{pa 88 -842}\special{pa 91 -843}% +\special{pa 94 -845}\special{pa 97 -846}\special{pa 100 -848}\special{pa 103 -849}% +\special{pa 106 -851}\special{pa 109 -853}\special{pa 112 -855}\special{pa 114 -856}% +\special{pa 116 -858}\special{pa 119 -860}\special{pa 121 -862}\special{pa 123 -864}% +\special{pa 125 -866}\special{pa 126 -868}\special{pa 128 -870}\special{pa 130 -872}% +\special{pa 131 -874}\special{pa 132 -876}\special{pa 133 -878}\special{pa 134 -880}% +\special{pa 135 -882}\special{pa 136 -884}\special{pa 137 -886}\special{pa 137 -889}% +\special{pa 138 -891}\special{pa 138 -893}\special{pa 138 -895}\special{pa 138 -897}% +\special{pa 138 -899}\special{pa 137 -902}\special{pa 137 -904}\special{pa 136 -906}% +\special{pa 135 -908}\special{pa 134 -910}\special{pa 133 -912}\special{pa 132 -914}% +\special{pa 131 -916}\special{pa 130 -918}\special{pa 128 -920}\special{pa 126 -922}% +\special{pa 125 -924}\special{pa 123 -926}\special{pa 121 -928}\special{pa 119 -930}% +\special{pa 116 -932}\special{pa 114 -934}\special{pa 111 -936}\special{pa 109 -937}% +\special{pa 106 -939}\special{pa 103 -941}\special{pa 100 -942}\special{pa 97 -944}% +\special{pa 94 -945}\special{pa 91 -947}\special{pa 88 -948}\special{pa 84 -949}% +\special{pa 81 -951}\special{pa 77 -952}\special{pa 74 -953}\special{pa 70 -954}% +\special{pa 66 -955}\special{pa 63 -956}\special{pa 59 -957}\special{pa 55 -958}% +\special{pa 51 -959}\special{pa 47 -960}\special{pa 43 -961}\special{pa 38 -961}% +\special{pa 34 -962}\special{pa 30 -962}\special{pa 26 -963}\special{pa 22 -963}% +\special{pa 17 -963}\special{pa 13 -964}\special{pa 9 -964}\special{pa 4 -964}% +\special{pa -0 -964}\special{pa -4 -964}\special{pa -9 -964}\special{pa -13 -964}% +\special{pa -17 -963}\special{pa -22 -963}\special{pa -26 -963}\special{pa -30 -962}% +\special{pa -34 -962}\special{pa -38 -961}\special{pa -43 -961}\special{pa -47 -960}% +\special{pa -51 -959}\special{pa -55 -958}\special{pa -59 -957}\special{pa -63 -956}% +\special{pa -66 -955}\special{pa -70 -954}\special{pa -74 -953}\special{pa -77 -952}% +\special{pa -81 -951}\special{pa -84 -949}\special{pa -88 -948}\special{pa -91 -947}% +\special{pa -94 -945}\special{pa -97 -944}\special{pa -100 -942}\special{pa -103 -941}% +\special{pa -106 -939}\special{pa -109 -937}\special{pa -112 -935}\special{pa -114 -934}% +\special{pa -116 -932}\special{pa -119 -930}\special{pa -121 -928}\special{pa -123 -926}% +\special{pa -125 -924}\special{pa -126 -922}\special{pa -128 -920}\special{pa -130 -918}% +\special{pa -131 -916}\special{pa -132 -914}\special{pa -133 -912}\special{pa -134 -910}% +\special{pa -135 -908}\special{pa -136 -906}\special{pa -137 -904}\special{pa -137 -901}% +\special{pa -138 -899}\special{pa -138 -897}\special{pa -138 -895}\special{pa -138 -893}% +\special{pa -138 -891}\special{pa -137 -888}\special{pa -137 -886}\special{pa -136 -884}% +\special{pa -135 -882}\special{pa -134 -880}\special{pa -133 -878}\special{pa -132 -876}% +\special{pa -131 -874}\special{pa -130 -872}\special{pa -128 -870}\special{pa -126 -868}% +\special{pa -125 -866}\special{pa -123 -864}\special{pa -121 -862}\special{pa -119 -860}% +\special{pa -116 -858}\special{pa -114 -856}\special{pa -111 -854}\special{pa -109 -853}% +\special{pa -106 -851}\special{pa -103 -849}\special{pa -100 -848}\special{pa -97 -846}% +\special{pa -94 -845}% +\special{fp}% +\special{pa -113 -808}\special{pa -109 -807}\special{pa -105 -805}\special{pa -101 -803}% +\special{pa -97 -802}\special{pa -93 -800}\special{pa -89 -799}\special{pa -84 -798}% +\special{pa -80 -796}\special{pa -75 -795}\special{pa -70 -794}\special{pa -66 -793}% +\special{pa -61 -792}\special{pa -56 -791}\special{pa -51 -790}\special{pa -46 -789}% +\special{pa -41 -789}\special{pa -36 -788}\special{pa -31 -788}\special{pa -26 -787}% +\special{pa -21 -787}\special{pa -16 -786}\special{pa -10 -786}\special{pa -5 -786}% +\special{pa 0 -786}\special{pa 5 -786}\special{pa 10 -786}\special{pa 16 -786}% +\special{pa 21 -787}\special{pa 26 -787}\special{pa 31 -788}\special{pa 36 -788}% +\special{pa 41 -789}\special{pa 46 -789}\special{pa 51 -790}\special{pa 56 -791}% +\special{pa 61 -792}\special{pa 66 -793}\special{pa 70 -794}\special{pa 75 -795}% +\special{pa 80 -796}\special{pa 84 -798}\special{pa 89 -799}\special{pa 93 -800}% +\special{pa 97 -802}\special{pa 101 -803}\special{pa 105 -805}\special{pa 109 -807}% +\special{pa 113 -809}\special{pa 117 -810}\special{pa 121 -812}\special{pa 124 -814}% +\special{pa 127 -816}\special{pa 131 -818}\special{pa 134 -820}\special{pa 137 -822}% +\special{pa 140 -824}\special{pa 142 -827}\special{pa 145 -829}\special{pa 147 -831}% +\special{pa 150 -834}\special{pa 152 -836}\special{pa 154 -838}\special{pa 156 -841}% +\special{pa 157 -843}\special{pa 159 -846}\special{pa 160 -848}\special{pa 161 -851}% +\special{pa 162 -853}\special{pa 163 -856}\special{pa 164 -858}\special{pa 165 -861}% +\special{pa 165 -864}\special{pa 165 -866}\special{pa 165 -869}\special{pa 165 -871}% +\special{pa 165 -874}\special{pa 165 -877}\special{pa 164 -879}\special{pa 163 -882}% +\special{pa 162 -884}\special{pa 161 -887}\special{pa 160 -889}\special{pa 159 -892}% +\special{pa 157 -894}\special{pa 156 -897}\special{pa 154 -899}\special{pa 152 -902}% +\special{pa 150 -904}\special{pa 147 -906}\special{pa 145 -909}\special{pa 142 -911}% +\special{pa 140 -913}\special{pa 137 -915}\special{pa 134 -917}\special{pa 131 -919}% +\special{pa 127 -921}\special{pa 124 -923}\special{pa 120 -925}\special{pa 117 -927}% +\special{pa 113 -929}\special{pa 109 -931}\special{pa 105 -932}\special{pa 101 -934}% +\special{pa 97 -936}\special{pa 93 -937}\special{pa 89 -939}\special{pa 84 -940}% +\special{pa 80 -941}\special{pa 75 -942}\special{pa 70 -944}\special{pa 66 -945}% +\special{pa 61 -946}\special{pa 56 -947}\special{pa 51 -947}\special{pa 46 -948}% +\special{pa 41 -949}\special{pa 36 -949}\special{pa 31 -950}\special{pa 26 -950}% +\special{pa 21 -951}\special{pa 16 -951}\special{pa 10 -951}\special{pa 5 -951}% +\special{pa -0 -951}\special{pa -5 -951}\special{pa -10 -951}\special{pa -16 -951}% +\special{pa -21 -951}\special{pa -26 -950}\special{pa -31 -950}\special{pa -36 -949}% +\special{pa -41 -949}\special{pa -46 -948}\special{pa -51 -947}\special{pa -56 -947}% +\special{pa -61 -946}\special{pa -66 -945}\special{pa -70 -944}\special{pa -75 -942}% +\special{pa -80 -941}\special{pa -84 -940}\special{pa -89 -939}\special{pa -93 -937}% +\special{pa -97 -936}\special{pa -101 -934}\special{pa -105 -932}\special{pa -109 -931}% +\special{pa -113 -929}\special{pa -117 -927}\special{pa -121 -925}\special{pa -124 -923}% +\special{pa -127 -921}\special{pa -131 -919}\special{pa -134 -917}\special{pa -137 -915}% +\special{pa -140 -913}\special{pa -142 -911}\special{pa -145 -909}\special{pa -147 -906}% +\special{pa -150 -904}\special{pa -152 -902}\special{pa -154 -899}\special{pa -156 -897}% +\special{pa -157 -894}\special{pa -159 -892}\special{pa -160 -889}\special{pa -161 -887}% +\special{pa -162 -884}\special{pa -163 -882}\special{pa -164 -879}\special{pa -165 -877}% +\special{pa -165 -874}\special{pa -165 -871}\special{pa -165 -869}\special{pa -165 -866}% +\special{pa -165 -864}\special{pa -165 -861}\special{pa -164 -858}\special{pa -163 -856}% +\special{pa -162 -853}\special{pa -161 -851}\special{pa -160 -848}\special{pa -159 -846}% +\special{pa -157 -843}\special{pa -156 -841}\special{pa -154 -838}\special{pa -152 -836}% +\special{pa -150 -834}\special{pa -147 -831}\special{pa -145 -829}\special{pa -142 -827}% +\special{pa -140 -824}\special{pa -137 -822}\special{pa -134 -820}\special{pa -131 -818}% +\special{pa -127 -816}\special{pa -124 -814}\special{pa -120 -812}\special{pa -117 -810}% +\special{pa -113 -808}% +\special{fp}% +\special{pa -132 -767}\special{pa -128 -765}\special{pa -123 -763}\special{pa -118 -761}% +\special{pa -113 -760}\special{pa -108 -758}\special{pa -103 -756}\special{pa -98 -755}% +\special{pa -93 -753}\special{pa -88 -752}\special{pa -82 -750}\special{pa -77 -749}% +\special{pa -71 -748}\special{pa -65 -747}\special{pa -60 -746}\special{pa -54 -745}% +\special{pa -48 -744}\special{pa -42 -744}\special{pa -36 -743}\special{pa -30 -742}% +\special{pa -24 -742}\special{pa -18 -742}\special{pa -12 -741}\special{pa -6 -741}% +\special{pa 0 -741}\special{pa 6 -741}\special{pa 12 -741}\special{pa 18 -742}% +\special{pa 24 -742}\special{pa 30 -742}\special{pa 36 -743}\special{pa 42 -744}% +\special{pa 48 -744}\special{pa 54 -745}\special{pa 60 -746}\special{pa 65 -747}% +\special{pa 71 -748}\special{pa 77 -749}\special{pa 82 -750}\special{pa 88 -752}% +\special{pa 93 -753}\special{pa 98 -755}\special{pa 103 -756}\special{pa 108 -758}% +\special{pa 113 -760}\special{pa 118 -762}\special{pa 123 -763}\special{pa 128 -765}% +\special{pa 132 -767}\special{pa 136 -770}\special{pa 141 -772}\special{pa 145 -774}% +\special{pa 149 -776}\special{pa 152 -779}\special{pa 156 -781}\special{pa 160 -784}% +\special{pa 163 -786}\special{pa 166 -789}\special{pa 169 -791}\special{pa 172 -794}% +\special{pa 175 -797}\special{pa 177 -799}\special{pa 179 -802}\special{pa 182 -805}% +\special{pa 183 -808}\special{pa 185 -811}\special{pa 187 -814}\special{pa 188 -817}% +\special{pa 190 -820}\special{pa 191 -823}\special{pa 191 -826}\special{pa 192 -829}% +\special{pa 193 -832}\special{pa 193 -835}\special{pa 193 -838}\special{pa 193 -841}% +\special{pa 193 -844}\special{pa 192 -847}\special{pa 191 -850}\special{pa 191 -853}% +\special{pa 189 -856}\special{pa 188 -859}\special{pa 187 -862}\special{pa 185 -865}% +\special{pa 183 -868}\special{pa 181 -870}\special{pa 179 -873}\special{pa 177 -876}% +\special{pa 175 -879}\special{pa 172 -882}\special{pa 169 -884}\special{pa 166 -887}% +\special{pa 163 -889}\special{pa 160 -892}\special{pa 156 -894}\special{pa 152 -897}% +\special{pa 149 -899}\special{pa 145 -902}\special{pa 141 -904}\special{pa 136 -906}% +\special{pa 132 -908}\special{pa 128 -910}\special{pa 123 -912}\special{pa 118 -914}% +\special{pa 113 -916}\special{pa 108 -918}\special{pa 103 -919}\special{pa 98 -921}% +\special{pa 93 -922}\special{pa 88 -924}\special{pa 82 -925}\special{pa 77 -926}% +\special{pa 71 -927}\special{pa 65 -928}\special{pa 60 -929}\special{pa 54 -930}% +\special{pa 48 -931}\special{pa 42 -932}\special{pa 36 -932}\special{pa 30 -933}% +\special{pa 24 -933}\special{pa 18 -934}\special{pa 12 -934}\special{pa 6 -934}% +\special{pa -0 -934}\special{pa -6 -934}\special{pa -12 -934}\special{pa -18 -934}% +\special{pa -24 -933}\special{pa -30 -933}\special{pa -36 -932}\special{pa -42 -932}% +\special{pa -48 -931}\special{pa -54 -930}\special{pa -60 -929}\special{pa -65 -928}% +\special{pa -71 -927}\special{pa -77 -926}\special{pa -82 -925}\special{pa -88 -924}% +\special{pa -93 -922}\special{pa -98 -921}\special{pa -103 -919}\special{pa -108 -917}% +\special{pa -113 -916}\special{pa -118 -914}\special{pa -123 -912}\special{pa -128 -910}% +\special{pa -132 -908}\special{pa -136 -906}\special{pa -141 -904}\special{pa -145 -901}% +\special{pa -149 -899}\special{pa -152 -897}\special{pa -156 -894}\special{pa -160 -892}% +\special{pa -163 -889}\special{pa -166 -887}\special{pa -169 -884}\special{pa -172 -881}% +\special{pa -175 -879}\special{pa -177 -876}\special{pa -179 -873}\special{pa -182 -870}% +\special{pa -183 -867}\special{pa -185 -865}\special{pa -187 -862}\special{pa -188 -859}% +\special{pa -190 -856}\special{pa -191 -853}\special{pa -191 -850}\special{pa -192 -847}% +\special{pa -193 -844}\special{pa -193 -841}\special{pa -193 -838}\special{pa -193 -835}% +\special{pa -193 -832}\special{pa -192 -829}\special{pa -191 -826}\special{pa -191 -823}% +\special{pa -189 -820}\special{pa -188 -817}\special{pa -187 -814}\special{pa -185 -811}% +\special{pa -183 -808}\special{pa -181 -805}\special{pa -179 -802}\special{pa -177 -799}% +\special{pa -175 -797}\special{pa -172 -794}\special{pa -169 -791}\special{pa -166 -789}% +\special{pa -163 -786}\special{pa -160 -783}\special{pa -156 -781}\special{pa -152 -779}% +\special{pa -149 -776}\special{pa -145 -774}\special{pa -141 -772}\special{pa -136 -769}% +\special{pa -132 -767}% +\special{fp}% +\special{pa -151 -722}\special{pa -146 -719}\special{pa -140 -717}\special{pa -135 -715}% +\special{pa -130 -713}\special{pa -124 -711}\special{pa -118 -709}\special{pa -112 -707}% +\special{pa -106 -705}\special{pa -100 -704}\special{pa -94 -702}\special{pa -87 -701}% +\special{pa -81 -699}\special{pa -75 -698}\special{pa -68 -697}\special{pa -61 -696}% +\special{pa -55 -695}\special{pa -48 -694}\special{pa -41 -694}\special{pa -34 -693}% +\special{pa -28 -693}\special{pa -21 -692}\special{pa -14 -692}\special{pa -7 -692}% +\special{pa 0 -692}\special{pa 7 -692}\special{pa 14 -692}\special{pa 21 -692}% +\special{pa 28 -693}\special{pa 35 -693}\special{pa 41 -694}\special{pa 48 -694}% +\special{pa 55 -695}\special{pa 62 -696}\special{pa 68 -697}\special{pa 75 -698}% +\special{pa 81 -699}\special{pa 88 -701}\special{pa 94 -702}\special{pa 100 -704}% +\special{pa 106 -705}\special{pa 112 -707}\special{pa 118 -709}\special{pa 124 -711}% +\special{pa 130 -713}\special{pa 135 -715}\special{pa 141 -717}\special{pa 146 -719}% +\special{pa 151 -722}\special{pa 156 -724}\special{pa 161 -726}\special{pa 165 -729}% +\special{pa 170 -732}\special{pa 174 -734}\special{pa 178 -737}\special{pa 182 -740}% +\special{pa 186 -743}\special{pa 190 -746}\special{pa 193 -749}\special{pa 196 -752}% +\special{pa 200 -755}\special{pa 202 -758}\special{pa 205 -761}\special{pa 207 -765}% +\special{pa 210 -768}\special{pa 212 -771}\special{pa 214 -775}\special{pa 215 -778}% +\special{pa 217 -781}\special{pa 218 -785}\special{pa 219 -788}\special{pa 220 -792}% +\special{pa 220 -795}\special{pa 220 -799}\special{pa 220 -802}\special{pa 220 -805}% +\special{pa 220 -809}\special{pa 219 -812}\special{pa 219 -816}\special{pa 218 -819}% +\special{pa 217 -823}\special{pa 215 -826}\special{pa 214 -829}\special{pa 212 -833}% +\special{pa 210 -836}\special{pa 207 -839}\special{pa 205 -843}\special{pa 202 -846}% +\special{pa 199 -849}\special{pa 196 -852}\special{pa 193 -855}\special{pa 190 -858}% +\special{pa 186 -861}\special{pa 182 -864}\special{pa 178 -867}\special{pa 174 -870}% +\special{pa 170 -872}\special{pa 165 -875}\special{pa 161 -877}\special{pa 156 -880}% +\special{pa 151 -882}\special{pa 146 -885}\special{pa 140 -887}\special{pa 135 -889}% +\special{pa 130 -891}\special{pa 124 -893}\special{pa 118 -895}\special{pa 112 -897}% +\special{pa 106 -899}\special{pa 100 -900}\special{pa 94 -902}\special{pa 87 -903}% +\special{pa 81 -904}\special{pa 75 -906}\special{pa 68 -907}\special{pa 61 -908}% +\special{pa 55 -909}\special{pa 48 -910}\special{pa 41 -910}\special{pa 34 -911}% +\special{pa 28 -911}\special{pa 21 -912}\special{pa 14 -912}\special{pa 7 -912}% +\special{pa -0 -912}\special{pa -7 -912}\special{pa -14 -912}\special{pa -21 -912}% +\special{pa -28 -911}\special{pa -35 -911}\special{pa -41 -910}\special{pa -48 -909}% +\special{pa -55 -909}\special{pa -62 -908}\special{pa -68 -907}\special{pa -75 -906}% +\special{pa -81 -904}\special{pa -88 -903}\special{pa -94 -902}\special{pa -100 -900}% +\special{pa -106 -899}\special{pa -112 -897}\special{pa -118 -895}\special{pa -124 -893}% +\special{pa -130 -891}\special{pa -135 -889}\special{pa -141 -887}\special{pa -146 -885}% +\special{pa -151 -882}\special{pa -156 -880}\special{pa -161 -877}\special{pa -165 -875}% +\special{pa -170 -872}\special{pa -174 -869}\special{pa -178 -867}\special{pa -182 -864}% +\special{pa -186 -861}\special{pa -190 -858}\special{pa -193 -855}\special{pa -196 -852}% +\special{pa -200 -849}\special{pa -202 -846}\special{pa -205 -842}\special{pa -207 -839}% +\special{pa -210 -836}\special{pa -212 -833}\special{pa -214 -829}\special{pa -215 -826}% +\special{pa -217 -823}\special{pa -218 -819}\special{pa -219 -816}\special{pa -220 -812}% +\special{pa -220 -809}\special{pa -220 -805}\special{pa -220 -802}\special{pa -220 -798}% +\special{pa -220 -795}\special{pa -219 -792}\special{pa -219 -788}\special{pa -218 -785}% +\special{pa -217 -781}\special{pa -215 -778}\special{pa -214 -774}\special{pa -212 -771}% +\special{pa -210 -768}\special{pa -207 -765}\special{pa -205 -761}\special{pa -202 -758}% +\special{pa -199 -755}\special{pa -196 -752}\special{pa -193 -749}\special{pa -190 -746}% +\special{pa -186 -743}\special{pa -182 -740}\special{pa -178 -737}\special{pa -174 -734}% +\special{pa -170 -732}\special{pa -165 -729}\special{pa -161 -726}\special{pa -156 -724}% +\special{pa -151 -722}% +\special{fp}% +\special{pa -170 -671}\special{pa -164 -668}\special{pa -158 -666}\special{pa -152 -663}% +\special{pa -146 -661}\special{pa -139 -659}\special{pa -133 -657}\special{pa -126 -655}% +\special{pa -119 -653}\special{pa -113 -651}\special{pa -106 -649}\special{pa -98 -648}% +\special{pa -91 -646}\special{pa -84 -645}\special{pa -77 -643}\special{pa -69 -642}% +\special{pa -62 -641}\special{pa -54 -640}\special{pa -46 -640}\special{pa -39 -639}% +\special{pa -31 -638}\special{pa -23 -638}\special{pa -15 -638}\special{pa -8 -637}% +\special{pa 0 -637}\special{pa 8 -637}\special{pa 16 -638}\special{pa 23 -638}% +\special{pa 31 -638}\special{pa 39 -639}\special{pa 47 -640}\special{pa 54 -640}% +\special{pa 62 -641}\special{pa 69 -642}\special{pa 77 -643}\special{pa 84 -645}% +\special{pa 91 -646}\special{pa 99 -648}\special{pa 106 -649}\special{pa 113 -651}% +\special{pa 120 -653}\special{pa 126 -655}\special{pa 133 -657}\special{pa 139 -659}% +\special{pa 146 -661}\special{pa 152 -663}\special{pa 158 -666}\special{pa 164 -668}% +\special{pa 170 -671}\special{pa 175 -674}\special{pa 181 -676}\special{pa 186 -679}% +\special{pa 191 -682}\special{pa 196 -685}\special{pa 201 -688}\special{pa 205 -692}% +\special{pa 209 -695}\special{pa 214 -698}\special{pa 217 -702}\special{pa 221 -705}% +\special{pa 224 -709}\special{pa 228 -712}\special{pa 231 -716}\special{pa 233 -719}% +\special{pa 236 -723}\special{pa 238 -727}\special{pa 240 -731}\special{pa 242 -734}% +\special{pa 244 -738}\special{pa 245 -742}\special{pa 246 -746}\special{pa 247 -750}% +\special{pa 248 -754}\special{pa 248 -758}\special{pa 248 -761}\special{pa 248 -765}% +\special{pa 248 -769}\special{pa 247 -773}\special{pa 246 -777}\special{pa 245 -781}% +\special{pa 244 -785}\special{pa 242 -788}\special{pa 240 -792}\special{pa 238 -796}% +\special{pa 236 -800}\special{pa 233 -803}\special{pa 231 -807}\special{pa 228 -811}% +\special{pa 224 -814}\special{pa 221 -818}\special{pa 217 -821}\special{pa 213 -825}% +\special{pa 209 -828}\special{pa 205 -831}\special{pa 201 -834}\special{pa 196 -837}% +\special{pa 191 -840}\special{pa 186 -843}\special{pa 181 -846}\special{pa 175 -849}% +\special{pa 170 -852}\special{pa 164 -854}\special{pa 158 -857}\special{pa 152 -859}% +\special{pa 146 -862}\special{pa 139 -864}\special{pa 133 -866}\special{pa 126 -868}% +\special{pa 119 -870}\special{pa 113 -872}\special{pa 106 -874}\special{pa 98 -875}% +\special{pa 91 -877}\special{pa 84 -878}\special{pa 77 -879}\special{pa 69 -880}% +\special{pa 62 -881}\special{pa 54 -882}\special{pa 46 -883}\special{pa 39 -884}% +\special{pa 31 -884}\special{pa 23 -885}\special{pa 15 -885}\special{pa 8 -885}% +\special{pa -0 -885}\special{pa -8 -885}\special{pa -16 -885}\special{pa -23 -885}% +\special{pa -31 -884}\special{pa -39 -884}\special{pa -47 -883}\special{pa -54 -882}% +\special{pa -62 -881}\special{pa -69 -880}\special{pa -77 -879}\special{pa -84 -878}% +\special{pa -91 -877}\special{pa -99 -875}\special{pa -106 -874}\special{pa -113 -872}% +\special{pa -120 -870}\special{pa -126 -868}\special{pa -133 -866}\special{pa -139 -864}% +\special{pa -146 -862}\special{pa -152 -859}\special{pa -158 -857}\special{pa -164 -854}% +\special{pa -170 -852}\special{pa -175 -849}\special{pa -181 -846}\special{pa -186 -843}% +\special{pa -191 -840}\special{pa -196 -837}\special{pa -201 -834}\special{pa -205 -831}% +\special{pa -209 -828}\special{pa -214 -824}\special{pa -217 -821}\special{pa -221 -818}% +\special{pa -224 -814}\special{pa -228 -811}\special{pa -231 -807}\special{pa -233 -803}% +\special{pa -236 -800}\special{pa -238 -796}\special{pa -240 -792}\special{pa -242 -788}% +\special{pa -244 -785}\special{pa -245 -781}\special{pa -246 -777}\special{pa -247 -773}% +\special{pa -248 -769}\special{pa -248 -765}\special{pa -248 -761}\special{pa -248 -757}% +\special{pa -248 -754}\special{pa -247 -750}\special{pa -246 -746}\special{pa -245 -742}% +\special{pa -244 -738}\special{pa -242 -734}\special{pa -240 -730}\special{pa -238 -727}% +\special{pa -236 -723}\special{pa -233 -719}\special{pa -231 -716}\special{pa -228 -712}% +\special{pa -224 -709}\special{pa -221 -705}\special{pa -217 -702}\special{pa -213 -698}% +\special{pa -209 -695}\special{pa -205 -692}\special{pa -201 -688}\special{pa -196 -685}% +\special{pa -191 -682}\special{pa -186 -679}\special{pa -181 -676}\special{pa -175 -674}% +\special{pa -170 -671}% +\special{fp}% +\special{pa -189 -616}\special{pa -182 -613}\special{pa -176 -610}\special{pa -169 -607}% +\special{pa -162 -604}\special{pa -155 -602}\special{pa -148 -600}\special{pa -140 -597}% +\special{pa -133 -595}\special{pa -125 -593}\special{pa -117 -591}\special{pa -109 -590}% +\special{pa -101 -588}\special{pa -93 -586}\special{pa -85 -585}\special{pa -77 -584}% +\special{pa -68 -583}\special{pa -60 -582}\special{pa -52 -581}\special{pa -43 -580}% +\special{pa -34 -579}\special{pa -26 -579}\special{pa -17 -578}\special{pa -9 -578}% +\special{pa 0 -578}\special{pa 9 -578}\special{pa 17 -578}\special{pa 26 -579}% +\special{pa 35 -579}\special{pa 43 -580}\special{pa 52 -581}\special{pa 60 -582}% +\special{pa 69 -583}\special{pa 77 -584}\special{pa 85 -585}\special{pa 93 -586}% +\special{pa 102 -588}\special{pa 110 -590}\special{pa 117 -591}\special{pa 125 -593}% +\special{pa 133 -595}\special{pa 140 -597}\special{pa 148 -600}\special{pa 155 -602}% +\special{pa 162 -605}\special{pa 169 -607}\special{pa 176 -610}\special{pa 182 -613}% +\special{pa 189 -616}\special{pa 195 -619}\special{pa 201 -622}\special{pa 207 -625}% +\special{pa 212 -628}\special{pa 218 -632}\special{pa 223 -635}\special{pa 228 -639}% +\special{pa 233 -642}\special{pa 237 -646}\special{pa 242 -650}\special{pa 246 -653}% +\special{pa 249 -657}\special{pa 253 -661}\special{pa 256 -665}\special{pa 259 -669}% +\special{pa 262 -673}\special{pa 265 -678}\special{pa 267 -682}\special{pa 269 -686}% +\special{pa 271 -690}\special{pa 272 -694}\special{pa 273 -699}\special{pa 274 -703}% +\special{pa 275 -707}\special{pa 275 -712}\special{pa 276 -716}\special{pa 275 -720}% +\special{pa 275 -725}\special{pa 274 -729}\special{pa 273 -733}\special{pa 272 -738}% +\special{pa 271 -742}\special{pa 269 -746}\special{pa 267 -750}\special{pa 265 -754}% +\special{pa 262 -759}\special{pa 259 -763}\special{pa 256 -767}\special{pa 253 -771}% +\special{pa 249 -775}\special{pa 246 -779}\special{pa 241 -782}\special{pa 237 -786}% +\special{pa 233 -790}\special{pa 228 -793}\special{pa 223 -797}\special{pa 218 -801}% +\special{pa 212 -804}\special{pa 207 -807}\special{pa 201 -810}\special{pa 195 -813}% +\special{pa 189 -816}\special{pa 182 -819}\special{pa 176 -822}\special{pa 169 -825}% +\special{pa 162 -828}\special{pa 155 -830}\special{pa 148 -832}\special{pa 140 -835}% +\special{pa 133 -837}\special{pa 125 -839}\special{pa 117 -841}\special{pa 109 -842}% +\special{pa 101 -844}\special{pa 93 -846}\special{pa 85 -847}\special{pa 77 -848}% +\special{pa 68 -849}\special{pa 60 -850}\special{pa 52 -851}\special{pa 43 -852}% +\special{pa 34 -853}\special{pa 26 -853}\special{pa 17 -854}\special{pa 9 -854}% +\special{pa -0 -854}\special{pa -9 -854}\special{pa -17 -854}\special{pa -26 -853}% +\special{pa -35 -853}\special{pa -43 -852}\special{pa -52 -851}\special{pa -60 -850}% +\special{pa -69 -849}\special{pa -77 -848}\special{pa -85 -847}\special{pa -93 -846}% +\special{pa -102 -844}\special{pa -110 -842}\special{pa -117 -841}\special{pa -125 -839}% +\special{pa -133 -837}\special{pa -140 -835}\special{pa -148 -832}\special{pa -155 -830}% +\special{pa -162 -827}\special{pa -169 -825}\special{pa -176 -822}\special{pa -182 -819}% +\special{pa -189 -816}\special{pa -195 -813}\special{pa -201 -810}\special{pa -207 -807}% +\special{pa -212 -804}\special{pa -218 -800}\special{pa -223 -797}\special{pa -228 -793}% +\special{pa -233 -790}\special{pa -237 -786}\special{pa -242 -782}\special{pa -246 -779}% +\special{pa -249 -775}\special{pa -253 -771}\special{pa -256 -767}\special{pa -259 -763}% +\special{pa -262 -759}\special{pa -265 -754}\special{pa -267 -750}\special{pa -269 -746}% +\special{pa -271 -742}\special{pa -272 -738}\special{pa -273 -733}\special{pa -274 -729}% +\special{pa -275 -725}\special{pa -275 -720}\special{pa -276 -716}\special{pa -275 -712}% +\special{pa -275 -707}\special{pa -274 -703}\special{pa -273 -699}\special{pa -272 -694}% +\special{pa -271 -690}\special{pa -269 -686}\special{pa -267 -682}\special{pa -265 -678}% +\special{pa -262 -673}\special{pa -259 -669}\special{pa -256 -665}\special{pa -253 -661}% +\special{pa -249 -657}\special{pa -246 -653}\special{pa -241 -650}\special{pa -237 -646}% +\special{pa -233 -642}\special{pa -228 -639}\special{pa -223 -635}\special{pa -218 -632}% +\special{pa -212 -628}\special{pa -207 -625}\special{pa -201 -622}\special{pa -195 -619}% +\special{pa -189 -616}% +\special{fp}% +\special{pa -207 -555}\special{pa -200 -552}\special{pa -193 -549}\special{pa -186 -546}% +\special{pa -178 -543}\special{pa -170 -540}\special{pa -162 -538}\special{pa -154 -535}% +\special{pa -146 -533}\special{pa -138 -531}\special{pa -129 -529}\special{pa -120 -527}% +\special{pa -111 -525}\special{pa -103 -523}\special{pa -94 -522}\special{pa -84 -520}% +\special{pa -75 -519}\special{pa -66 -518}\special{pa -57 -517}\special{pa -47 -516}% +\special{pa -38 -515}\special{pa -28 -515}\special{pa -19 -515}\special{pa -9 -514}% +\special{pa 0 -514}\special{pa 10 -514}\special{pa 19 -515}\special{pa 29 -515}% +\special{pa 38 -516}\special{pa 48 -516}\special{pa 57 -517}\special{pa 66 -518}% +\special{pa 75 -519}\special{pa 85 -520}\special{pa 94 -522}\special{pa 103 -523}% +\special{pa 112 -525}\special{pa 120 -527}\special{pa 129 -529}\special{pa 138 -531}% +\special{pa 146 -533}\special{pa 154 -535}\special{pa 163 -538}\special{pa 170 -541}% +\special{pa 178 -543}\special{pa 186 -546}\special{pa 193 -549}\special{pa 201 -552}% +\special{pa 208 -555}\special{pa 214 -559}\special{pa 221 -562}\special{pa 227 -566}% +\special{pa 234 -569}\special{pa 240 -573}\special{pa 245 -577}\special{pa 251 -581}% +\special{pa 256 -585}\special{pa 261 -589}\special{pa 266 -593}\special{pa 270 -597}% +\special{pa 274 -601}\special{pa 278 -606}\special{pa 282 -610}\special{pa 285 -615}% +\special{pa 288 -619}\special{pa 291 -624}\special{pa 294 -628}\special{pa 296 -633}% +\special{pa 298 -638}\special{pa 299 -642}\special{pa 301 -647}\special{pa 302 -652}% +\special{pa 303 -656}\special{pa 303 -661}\special{pa 303 -666}\special{pa 303 -671}% +\special{pa 303 -675}\special{pa 302 -680}\special{pa 301 -685}\special{pa 299 -690}% +\special{pa 298 -694}\special{pa 296 -699}\special{pa 294 -704}\special{pa 291 -708}% +\special{pa 288 -713}\special{pa 285 -717}\special{pa 282 -722}\special{pa 278 -726}% +\special{pa 274 -730}\special{pa 270 -735}\special{pa 266 -739}\special{pa 261 -743}% +\special{pa 256 -747}\special{pa 251 -751}\special{pa 245 -755}\special{pa 239 -759}% +\special{pa 234 -763}\special{pa 227 -766}\special{pa 221 -770}\special{pa 214 -773}% +\special{pa 207 -776}\special{pa 200 -780}\special{pa 193 -783}\special{pa 186 -786}% +\special{pa 178 -789}\special{pa 170 -791}\special{pa 162 -794}\special{pa 154 -796}% +\special{pa 146 -799}\special{pa 138 -801}\special{pa 129 -803}\special{pa 120 -805}% +\special{pa 111 -807}\special{pa 103 -809}\special{pa 94 -810}\special{pa 84 -811}% +\special{pa 75 -813}\special{pa 66 -814}\special{pa 57 -815}\special{pa 47 -816}% +\special{pa 38 -816}\special{pa 28 -817}\special{pa 19 -817}\special{pa 9 -817}% +\special{pa -0 -817}\special{pa -10 -817}\special{pa -19 -817}\special{pa -29 -817}% +\special{pa -38 -816}\special{pa -48 -816}\special{pa -57 -815}\special{pa -66 -814}% +\special{pa -75 -813}\special{pa -85 -811}\special{pa -94 -810}\special{pa -103 -808}% +\special{pa -112 -807}\special{pa -120 -805}\special{pa -129 -803}\special{pa -138 -801}% +\special{pa -146 -799}\special{pa -154 -796}\special{pa -163 -794}\special{pa -170 -791}% +\special{pa -178 -788}\special{pa -186 -786}\special{pa -193 -783}\special{pa -201 -780}% +\special{pa -208 -776}\special{pa -214 -773}\special{pa -221 -770}\special{pa -227 -766}% +\special{pa -234 -762}\special{pa -240 -759}\special{pa -245 -755}\special{pa -251 -751}% +\special{pa -256 -747}\special{pa -261 -743}\special{pa -266 -739}\special{pa -270 -735}% +\special{pa -274 -730}\special{pa -278 -726}\special{pa -282 -722}\special{pa -285 -717}% +\special{pa -288 -713}\special{pa -291 -708}\special{pa -294 -704}\special{pa -296 -699}% +\special{pa -298 -694}\special{pa -299 -690}\special{pa -301 -685}\special{pa -302 -680}% +\special{pa -303 -675}\special{pa -303 -671}\special{pa -303 -666}\special{pa -303 -661}% +\special{pa -303 -656}\special{pa -302 -652}\special{pa -301 -647}\special{pa -299 -642}% +\special{pa -298 -637}\special{pa -296 -633}\special{pa -294 -628}\special{pa -291 -624}% +\special{pa -288 -619}\special{pa -285 -614}\special{pa -282 -610}\special{pa -278 -606}% +\special{pa -274 -601}\special{pa -270 -597}\special{pa -266 -593}\special{pa -261 -589}% +\special{pa -256 -585}\special{pa -251 -581}\special{pa -245 -577}\special{pa -239 -573}% +\special{pa -234 -569}\special{pa -227 -566}\special{pa -221 -562}\special{pa -214 -559}% +\special{pa -207 -555}% +\special{fp}% +\special{pa -226 -490}\special{pa -219 -487}\special{pa -211 -484}\special{pa -203 -480}% +\special{pa -194 -477}\special{pa -186 -474}\special{pa -177 -471}\special{pa -168 -469}% +\special{pa -159 -466}\special{pa -150 -464}\special{pa -141 -461}\special{pa -131 -459}% +\special{pa -122 -457}\special{pa -112 -455}\special{pa -102 -454}\special{pa -92 -452}% +\special{pa -82 -451}\special{pa -72 -450}\special{pa -62 -449}\special{pa -52 -448}% +\special{pa -41 -447}\special{pa -31 -446}\special{pa -21 -446}\special{pa -10 -446}% +\special{pa 0 -446}\special{pa 11 -446}\special{pa 21 -446}\special{pa 31 -446}% +\special{pa 42 -447}\special{pa 52 -448}\special{pa 62 -449}\special{pa 72 -450}% +\special{pa 82 -451}\special{pa 92 -452}\special{pa 102 -454}\special{pa 112 -455}% +\special{pa 122 -457}\special{pa 131 -459}\special{pa 141 -461}\special{pa 150 -464}% +\special{pa 159 -466}\special{pa 168 -469}\special{pa 177 -471}\special{pa 186 -474}% +\special{pa 194 -477}\special{pa 203 -480}\special{pa 211 -484}\special{pa 219 -487}% +\special{pa 226 -490}\special{pa 234 -494}\special{pa 241 -498}\special{pa 248 -502}% +\special{pa 255 -506}\special{pa 261 -510}\special{pa 268 -514}\special{pa 274 -518}% +\special{pa 279 -522}\special{pa 285 -527}\special{pa 290 -531}\special{pa 295 -536}% +\special{pa 299 -541}\special{pa 304 -545}\special{pa 308 -550}\special{pa 311 -555}% +\special{pa 315 -560}\special{pa 318 -565}\special{pa 320 -570}\special{pa 323 -575}% +\special{pa 325 -580}\special{pa 327 -585}\special{pa 328 -590}\special{pa 329 -595}% +\special{pa 330 -601}\special{pa 331 -606}\special{pa 331 -611}\special{pa 331 -616}% +\special{pa 330 -621}\special{pa 329 -627}\special{pa 328 -632}\special{pa 327 -637}% +\special{pa 325 -642}\special{pa 323 -647}\special{pa 320 -652}\special{pa 318 -657}% +\special{pa 314 -662}\special{pa 311 -667}\special{pa 307 -672}\special{pa 303 -677}% +\special{pa 299 -681}\special{pa 295 -686}\special{pa 290 -691}\special{pa 285 -695}% +\special{pa 279 -700}\special{pa 273 -704}\special{pa 267 -708}\special{pa 261 -712}% +\special{pa 255 -716}\special{pa 248 -720}\special{pa 241 -724}\special{pa 234 -728}% +\special{pa 226 -732}\special{pa 219 -735}\special{pa 211 -738}\special{pa 203 -742}% +\special{pa 194 -745}\special{pa 186 -748}\special{pa 177 -751}\special{pa 168 -753}% +\special{pa 159 -756}\special{pa 150 -758}\special{pa 141 -761}\special{pa 131 -763}% +\special{pa 122 -765}\special{pa 112 -767}\special{pa 102 -768}\special{pa 92 -770}% +\special{pa 82 -771}\special{pa 72 -772}\special{pa 62 -773}\special{pa 52 -774}% +\special{pa 41 -775}\special{pa 31 -776}\special{pa 21 -776}\special{pa 10 -776}% +\special{pa -0 -776}\special{pa -11 -776}\special{pa -21 -776}\special{pa -31 -776}% +\special{pa -42 -775}\special{pa -52 -774}\special{pa -62 -773}\special{pa -72 -772}% +\special{pa -82 -771}\special{pa -92 -770}\special{pa -102 -768}\special{pa -112 -767}% +\special{pa -122 -765}\special{pa -131 -763}\special{pa -141 -761}\special{pa -150 -758}% +\special{pa -159 -756}\special{pa -168 -753}\special{pa -177 -751}\special{pa -186 -748}% +\special{pa -194 -745}\special{pa -203 -742}\special{pa -211 -738}\special{pa -219 -735}% +\special{pa -226 -731}\special{pa -234 -728}\special{pa -241 -724}\special{pa -248 -720}% +\special{pa -255 -716}\special{pa -261 -712}\special{pa -268 -708}\special{pa -274 -704}% +\special{pa -279 -700}\special{pa -285 -695}\special{pa -290 -691}\special{pa -295 -686}% +\special{pa -299 -681}\special{pa -304 -677}\special{pa -308 -672}\special{pa -311 -667}% +\special{pa -315 -662}\special{pa -318 -657}\special{pa -320 -652}\special{pa -323 -647}% +\special{pa -325 -642}\special{pa -327 -637}\special{pa -328 -632}\special{pa -329 -626}% +\special{pa -330 -621}\special{pa -331 -616}\special{pa -331 -611}\special{pa -331 -606}% +\special{pa -330 -601}\special{pa -329 -595}\special{pa -328 -590}\special{pa -327 -585}% +\special{pa -325 -580}\special{pa -323 -575}\special{pa -320 -570}\special{pa -318 -565}% +\special{pa -314 -560}\special{pa -311 -555}\special{pa -307 -550}\special{pa -303 -545}% +\special{pa -299 -541}\special{pa -295 -536}\special{pa -290 -531}\special{pa -285 -527}% +\special{pa -279 -522}\special{pa -273 -518}\special{pa -267 -514}\special{pa -261 -510}% +\special{pa -255 -506}\special{pa -248 -502}\special{pa -241 -498}\special{pa -234 -494}% +\special{pa -226 -490}% +\special{fp}% +\special{pa -245 -421}\special{pa -237 -417}\special{pa -228 -413}\special{pa -219 -410}% +\special{pa -210 -406}\special{pa -201 -403}\special{pa -192 -400}\special{pa -182 -397}% +\special{pa -172 -394}\special{pa -163 -392}\special{pa -152 -389}\special{pa -142 -387}% +\special{pa -132 -385}\special{pa -121 -383}\special{pa -111 -381}\special{pa -100 -379}% +\special{pa -89 -378}\special{pa -78 -376}\special{pa -67 -375}\special{pa -56 -374}% +\special{pa -45 -374}\special{pa -34 -373}\special{pa -22 -373}\special{pa -11 -372}% +\special{pa 0 -372}\special{pa 11 -372}\special{pa 23 -373}\special{pa 34 -373}% +\special{pa 45 -374}\special{pa 56 -374}\special{pa 67 -375}\special{pa 78 -377}% +\special{pa 89 -378}\special{pa 100 -379}\special{pa 111 -381}\special{pa 121 -383}% +\special{pa 132 -385}\special{pa 142 -387}\special{pa 153 -389}\special{pa 163 -392}% +\special{pa 173 -394}\special{pa 182 -397}\special{pa 192 -400}\special{pa 201 -403}% +\special{pa 211 -406}\special{pa 220 -410}\special{pa 228 -413}\special{pa 237 -417}% +\special{pa 245 -421}\special{pa 253 -425}\special{pa 261 -429}\special{pa 269 -433}% +\special{pa 276 -437}\special{pa 283 -442}\special{pa 290 -446}\special{pa 296 -451}% +\special{pa 303 -455}\special{pa 308 -460}\special{pa 314 -465}\special{pa 319 -470}% +\special{pa 324 -475}\special{pa 329 -480}\special{pa 333 -485}\special{pa 337 -491}% +\special{pa 341 -496}\special{pa 344 -501}\special{pa 347 -507}\special{pa 350 -512}% +\special{pa 352 -518}\special{pa 354 -523}\special{pa 355 -529}\special{pa 357 -535}% +\special{pa 358 -540}\special{pa 358 -546}\special{pa 358 -551}\special{pa 358 -557}% +\special{pa 358 -563}\special{pa 357 -568}\special{pa 355 -574}\special{pa 354 -579}% +\special{pa 352 -585}\special{pa 350 -590}\special{pa 347 -596}\special{pa 344 -601}% +\special{pa 341 -607}\special{pa 337 -612}\special{pa 333 -617}\special{pa 329 -623}% +\special{pa 324 -628}\special{pa 319 -633}\special{pa 314 -638}\special{pa 308 -643}% +\special{pa 302 -647}\special{pa 296 -652}\special{pa 290 -657}\special{pa 283 -661}% +\special{pa 276 -666}\special{pa 269 -670}\special{pa 261 -674}\special{pa 253 -678}% +\special{pa 245 -682}\special{pa 237 -686}\special{pa 228 -689}\special{pa 219 -693}% +\special{pa 210 -696}\special{pa 201 -700}\special{pa 192 -703}\special{pa 182 -706}% +\special{pa 172 -708}\special{pa 163 -711}\special{pa 152 -713}\special{pa 142 -716}% +\special{pa 132 -718}\special{pa 121 -720}\special{pa 111 -722}\special{pa 100 -723}% +\special{pa 89 -725}\special{pa 78 -726}\special{pa 67 -727}\special{pa 56 -728}% +\special{pa 45 -729}\special{pa 34 -730}\special{pa 22 -730}\special{pa 11 -730}% +\special{pa -0 -730}\special{pa -11 -730}\special{pa -23 -730}\special{pa -34 -730}% +\special{pa -45 -729}\special{pa -56 -728}\special{pa -67 -727}\special{pa -78 -726}% +\special{pa -89 -725}\special{pa -100 -723}\special{pa -111 -722}\special{pa -121 -720}% +\special{pa -132 -718}\special{pa -142 -716}\special{pa -153 -713}\special{pa -163 -711}% +\special{pa -173 -708}\special{pa -182 -705}\special{pa -192 -703}\special{pa -201 -699}% +\special{pa -211 -696}\special{pa -220 -693}\special{pa -228 -689}\special{pa -237 -686}% +\special{pa -245 -682}\special{pa -253 -678}\special{pa -261 -674}\special{pa -269 -670}% +\special{pa -276 -665}\special{pa -283 -661}\special{pa -290 -657}\special{pa -296 -652}% +\special{pa -303 -647}\special{pa -308 -642}\special{pa -314 -638}\special{pa -319 -633}% +\special{pa -324 -628}\special{pa -329 -622}\special{pa -333 -617}\special{pa -337 -612}% +\special{pa -341 -607}\special{pa -344 -601}\special{pa -347 -596}\special{pa -350 -590}% +\special{pa -352 -585}\special{pa -354 -579}\special{pa -355 -574}\special{pa -357 -568}% +\special{pa -358 -563}\special{pa -358 -557}\special{pa -358 -551}\special{pa -358 -546}% +\special{pa -358 -540}\special{pa -357 -534}\special{pa -355 -529}\special{pa -354 -523}% +\special{pa -352 -518}\special{pa -350 -512}\special{pa -347 -507}\special{pa -344 -501}% +\special{pa -341 -496}\special{pa -337 -491}\special{pa -333 -485}\special{pa -329 -480}% +\special{pa -324 -475}\special{pa -319 -470}\special{pa -314 -465}\special{pa -308 -460}% +\special{pa -302 -455}\special{pa -296 -451}\special{pa -290 -446}\special{pa -283 -441}% +\special{pa -276 -437}\special{pa -269 -433}\special{pa -261 -429}\special{pa -253 -425}% +\special{pa -245 -421}% +\special{fp}% +\special{pa -264 -346}\special{pa -255 -342}\special{pa -246 -338}\special{pa -236 -334}% +\special{pa -227 -331}\special{pa -217 -327}\special{pa -207 -324}\special{pa -196 -321}% +\special{pa -186 -318}\special{pa -175 -315}\special{pa -164 -312}\special{pa -153 -310}% +\special{pa -142 -307}\special{pa -131 -305}\special{pa -119 -303}\special{pa -108 -302}% +\special{pa -96 -300}\special{pa -84 -299}\special{pa -72 -297}\special{pa -60 -296}% +\special{pa -48 -295}\special{pa -36 -295}\special{pa -24 -294}\special{pa -12 -294}% +\special{pa 0 -294}\special{pa 12 -294}\special{pa 24 -294}\special{pa 36 -295}% +\special{pa 48 -296}\special{pa 60 -296}\special{pa 72 -297}\special{pa 84 -299}% +\special{pa 96 -300}\special{pa 108 -302}\special{pa 119 -303}\special{pa 131 -305}% +\special{pa 142 -308}\special{pa 153 -310}\special{pa 164 -312}\special{pa 175 -315}% +\special{pa 186 -318}\special{pa 197 -321}\special{pa 207 -324}\special{pa 217 -327}% +\special{pa 227 -331}\special{pa 237 -334}\special{pa 246 -338}\special{pa 255 -342}% +\special{pa 264 -346}\special{pa 273 -351}\special{pa 281 -355}\special{pa 290 -359}% +\special{pa 297 -364}\special{pa 305 -369}\special{pa 312 -374}\special{pa 319 -379}% +\special{pa 326 -384}\special{pa 332 -389}\special{pa 338 -394}\special{pa 344 -399}% +\special{pa 349 -405}\special{pa 354 -410}\special{pa 359 -416}\special{pa 363 -422}% +\special{pa 367 -427}\special{pa 371 -433}\special{pa 374 -439}\special{pa 377 -445}% +\special{pa 379 -451}\special{pa 381 -457}\special{pa 383 -463}\special{pa 384 -469}% +\special{pa 385 -475}\special{pa 386 -481}\special{pa 386 -487}\special{pa 386 -493}% +\special{pa 385 -499}\special{pa 384 -505}\special{pa 383 -511}\special{pa 381 -517}% +\special{pa 379 -523}\special{pa 377 -529}\special{pa 374 -535}\special{pa 370 -541}% +\special{pa 367 -547}\special{pa 363 -552}\special{pa 359 -558}\special{pa 354 -564}% +\special{pa 349 -569}\special{pa 344 -575}\special{pa 338 -580}\special{pa 332 -585}% +\special{pa 326 -590}\special{pa 319 -595}\special{pa 312 -600}\special{pa 305 -605}% +\special{pa 297 -610}\special{pa 289 -615}\special{pa 281 -619}\special{pa 273 -623}% +\special{pa 264 -628}\special{pa 255 -632}\special{pa 246 -636}\special{pa 236 -639}% +\special{pa 227 -643}\special{pa 217 -646}\special{pa 207 -650}\special{pa 196 -653}% +\special{pa 186 -656}\special{pa 175 -659}\special{pa 164 -661}\special{pa 153 -664}% +\special{pa 142 -666}\special{pa 131 -668}\special{pa 119 -670}\special{pa 108 -672}% +\special{pa 96 -674}\special{pa 84 -675}\special{pa 72 -676}\special{pa 60 -677}% +\special{pa 48 -678}\special{pa 36 -679}\special{pa 24 -679}\special{pa 12 -680}% +\special{pa -0 -680}\special{pa -12 -680}\special{pa -24 -679}\special{pa -36 -679}% +\special{pa -48 -678}\special{pa -60 -677}\special{pa -72 -676}\special{pa -84 -675}% +\special{pa -96 -674}\special{pa -108 -672}\special{pa -119 -670}\special{pa -131 -668}% +\special{pa -142 -666}\special{pa -153 -664}\special{pa -164 -661}\special{pa -175 -659}% +\special{pa -186 -656}\special{pa -197 -653}\special{pa -207 -650}\special{pa -217 -646}% +\special{pa -227 -643}\special{pa -237 -639}\special{pa -246 -635}\special{pa -255 -632}% +\special{pa -264 -627}\special{pa -273 -623}\special{pa -281 -619}\special{pa -290 -614}% +\special{pa -297 -610}\special{pa -305 -605}\special{pa -312 -600}\special{pa -319 -595}% +\special{pa -326 -590}\special{pa -332 -585}\special{pa -338 -580}\special{pa -344 -574}% +\special{pa -349 -569}\special{pa -354 -563}\special{pa -359 -558}\special{pa -363 -552}% +\special{pa -367 -546}\special{pa -371 -541}\special{pa -374 -535}\special{pa -377 -529}% +\special{pa -379 -523}\special{pa -381 -517}\special{pa -383 -511}\special{pa -384 -505}% +\special{pa -385 -499}\special{pa -386 -493}\special{pa -386 -487}\special{pa -386 -481}% +\special{pa -385 -475}\special{pa -384 -469}\special{pa -383 -463}\special{pa -381 -457}% +\special{pa -379 -451}\special{pa -377 -445}\special{pa -374 -439}\special{pa -370 -433}% +\special{pa -367 -427}\special{pa -363 -421}\special{pa -359 -416}\special{pa -354 -410}% +\special{pa -349 -405}\special{pa -344 -399}\special{pa -338 -394}\special{pa -332 -389}% +\special{pa -326 -383}\special{pa -319 -378}\special{pa -312 -373}\special{pa -305 -369}% +\special{pa -297 -364}\special{pa -289 -359}\special{pa -281 -355}\special{pa -273 -350}% +\special{pa -264 -346}% +\special{fp}% +\special{pa -283 -267}\special{pa -273 -263}\special{pa -263 -258}\special{pa -253 -254}% +\special{pa -243 -250}\special{pa -232 -247}\special{pa -221 -243}\special{pa -210 -240}% +\special{pa -199 -237}\special{pa -188 -233}\special{pa -176 -231}\special{pa -164 -228}% +\special{pa -152 -225}\special{pa -140 -223}\special{pa -128 -221}\special{pa -115 -219}% +\special{pa -103 -217}\special{pa -90 -216}\special{pa -77 -215}\special{pa -65 -214}% +\special{pa -52 -213}\special{pa -39 -212}\special{pa -26 -211}\special{pa -13 -211}% +\special{pa 0 -211}\special{pa 13 -211}\special{pa 26 -211}\special{pa 39 -212}% +\special{pa 52 -213}\special{pa 65 -214}\special{pa 78 -215}\special{pa 90 -216}% +\special{pa 103 -217}\special{pa 115 -219}\special{pa 128 -221}\special{pa 140 -223}% +\special{pa 152 -226}\special{pa 164 -228}\special{pa 176 -231}\special{pa 188 -234}% +\special{pa 199 -237}\special{pa 211 -240}\special{pa 222 -243}\special{pa 232 -247}% +\special{pa 243 -250}\special{pa 253 -254}\special{pa 264 -258}\special{pa 273 -263}% +\special{pa 283 -267}\special{pa 292 -272}\special{pa 301 -276}\special{pa 310 -281}% +\special{pa 319 -286}\special{pa 327 -291}\special{pa 335 -296}\special{pa 342 -302}% +\special{pa 349 -307}\special{pa 356 -313}\special{pa 362 -318}\special{pa 368 -324}% +\special{pa 374 -330}\special{pa 379 -336}\special{pa 384 -342}\special{pa 389 -348}% +\special{pa 393 -354}\special{pa 397 -360}\special{pa 400 -366}\special{pa 403 -373}% +\special{pa 406 -379}\special{pa 408 -385}\special{pa 410 -392}\special{pa 412 -398}% +\special{pa 413 -405}\special{pa 413 -411}\special{pa 413 -418}\special{pa 413 -424}% +\special{pa 413 -431}\special{pa 412 -437}\special{pa 410 -444}\special{pa 408 -450}% +\special{pa 406 -456}\special{pa 403 -463}\special{pa 400 -469}\special{pa 397 -475}% +\special{pa 393 -482}\special{pa 389 -488}\special{pa 384 -494}\special{pa 379 -500}% +\special{pa 374 -506}\special{pa 368 -512}\special{pa 362 -517}\special{pa 356 -523}% +\special{pa 349 -528}\special{pa 342 -534}\special{pa 334 -539}\special{pa 327 -544}% +\special{pa 318 -549}\special{pa 310 -554}\special{pa 301 -559}\special{pa 292 -564}% +\special{pa 283 -568}\special{pa 273 -573}\special{pa 263 -577}\special{pa 253 -581}% +\special{pa 243 -585}\special{pa 232 -589}\special{pa 221 -592}\special{pa 210 -596}% +\special{pa 199 -599}\special{pa 188 -602}\special{pa 176 -605}\special{pa 164 -607}% +\special{pa 152 -610}\special{pa 140 -612}\special{pa 128 -614}\special{pa 115 -616}% +\special{pa 103 -618}\special{pa 90 -619}\special{pa 77 -621}\special{pa 65 -622}% +\special{pa 52 -623}\special{pa 39 -623}\special{pa 26 -624}\special{pa 13 -624}% +\special{pa -0 -624}\special{pa -13 -624}\special{pa -26 -624}\special{pa -39 -623}% +\special{pa -52 -623}\special{pa -65 -622}\special{pa -78 -621}\special{pa -90 -619}% +\special{pa -103 -618}\special{pa -115 -616}\special{pa -128 -614}\special{pa -140 -612}% +\special{pa -152 -610}\special{pa -164 -607}\special{pa -176 -605}\special{pa -188 -602}% +\special{pa -199 -599}\special{pa -211 -596}\special{pa -222 -592}\special{pa -232 -589}% +\special{pa -243 -585}\special{pa -253 -581}\special{pa -264 -577}\special{pa -273 -573}% +\special{pa -283 -568}\special{pa -292 -564}\special{pa -301 -559}\special{pa -310 -554}% +\special{pa -319 -549}\special{pa -327 -544}\special{pa -335 -539}\special{pa -342 -534}% +\special{pa -349 -528}\special{pa -356 -523}\special{pa -362 -517}\special{pa -368 -511}% +\special{pa -374 -506}\special{pa -379 -500}\special{pa -384 -494}\special{pa -389 -488}% +\special{pa -393 -481}\special{pa -397 -475}\special{pa -400 -469}\special{pa -403 -463}% +\special{pa -406 -456}\special{pa -408 -450}\special{pa -410 -444}\special{pa -412 -437}% +\special{pa -413 -431}\special{pa -413 -424}\special{pa -413 -418}\special{pa -413 -411}% +\special{pa -413 -405}\special{pa -412 -398}\special{pa -410 -392}\special{pa -408 -385}% +\special{pa -406 -379}\special{pa -403 -373}\special{pa -400 -366}\special{pa -397 -360}% +\special{pa -393 -354}\special{pa -389 -348}\special{pa -384 -342}\special{pa -379 -336}% +\special{pa -374 -330}\special{pa -368 -324}\special{pa -362 -318}\special{pa -356 -312}% +\special{pa -349 -307}\special{pa -342 -301}\special{pa -334 -296}\special{pa -327 -291}% +\special{pa -318 -286}\special{pa -310 -281}\special{pa -301 -276}\special{pa -292 -271}% +\special{pa -283 -267}% +\special{fp}% +\special{pa -302 -183}\special{pa -291 -178}\special{pa -281 -174}\special{pa -270 -169}% +\special{pa -259 -165}\special{pa -248 -161}\special{pa -236 -157}\special{pa -224 -154}% +\special{pa -212 -150}\special{pa -200 -147}\special{pa -188 -144}\special{pa -175 -141}% +\special{pa -162 -139}\special{pa -149 -136}\special{pa -136 -134}\special{pa -123 -132}% +\special{pa -110 -130}\special{pa -96 -129}\special{pa -82 -127}\special{pa -69 -126}% +\special{pa -55 -125}\special{pa -41 -124}\special{pa -28 -124}\special{pa -14 -123}% +\special{pa 0 -123}\special{pa 14 -123}\special{pa 28 -124}\special{pa 42 -124}% +\special{pa 55 -125}\special{pa 69 -126}\special{pa 83 -127}\special{pa 96 -129}% +\special{pa 110 -130}\special{pa 123 -132}\special{pa 136 -134}\special{pa 150 -136}% +\special{pa 162 -139}\special{pa 175 -141}\special{pa 188 -144}\special{pa 200 -147}% +\special{pa 213 -151}\special{pa 225 -154}\special{pa 236 -158}\special{pa 248 -161}% +\special{pa 259 -165}\special{pa 270 -170}\special{pa 281 -174}\special{pa 292 -178}% +\special{pa 302 -183}\special{pa 312 -188}\special{pa 322 -193}\special{pa 331 -198}% +\special{pa 340 -203}\special{pa 349 -209}\special{pa 357 -214}\special{pa 365 -220}% +\special{pa 372 -226}\special{pa 380 -232}\special{pa 386 -238}\special{pa 393 -244}% +\special{pa 399 -250}\special{pa 405 -256}\special{pa 410 -263}\special{pa 415 -269}% +\special{pa 419 -276}\special{pa 423 -282}\special{pa 427 -289}\special{pa 430 -296}% +\special{pa 433 -302}\special{pa 436 -309}\special{pa 437 -316}\special{pa 439 -323}% +\special{pa 440 -330}\special{pa 441 -337}\special{pa 441 -344}\special{pa 441 -351}% +\special{pa 440 -358}\special{pa 439 -365}\special{pa 437 -371}\special{pa 435 -378}% +\special{pa 433 -385}\special{pa 430 -392}\special{pa 427 -399}\special{pa 423 -405}% +\special{pa 419 -412}\special{pa 415 -418}\special{pa 410 -425}\special{pa 405 -431}% +\special{pa 399 -438}\special{pa 393 -444}\special{pa 386 -450}\special{pa 379 -456}% +\special{pa 372 -462}\special{pa 365 -468}\special{pa 357 -473}\special{pa 348 -479}% +\special{pa 340 -484}\special{pa 331 -490}\special{pa 321 -495}\special{pa 312 -500}% +\special{pa 302 -504}\special{pa 291 -509}\special{pa 281 -514}\special{pa 270 -518}% +\special{pa 259 -522}\special{pa 248 -526}\special{pa 236 -530}\special{pa 224 -533}% +\special{pa 212 -537}\special{pa 200 -540}\special{pa 188 -543}\special{pa 175 -546}% +\special{pa 162 -549}\special{pa 149 -551}\special{pa 136 -553}\special{pa 123 -555}% +\special{pa 110 -557}\special{pa 96 -559}\special{pa 82 -560}\special{pa 69 -561}% +\special{pa 55 -562}\special{pa 41 -563}\special{pa 28 -564}\special{pa 14 -564}% +\special{pa -0 -564}\special{pa -14 -564}\special{pa -28 -564}\special{pa -42 -563}% +\special{pa -55 -562}\special{pa -69 -561}\special{pa -83 -560}\special{pa -96 -559}% +\special{pa -110 -557}\special{pa -123 -555}\special{pa -136 -553}\special{pa -150 -551}% +\special{pa -162 -549}\special{pa -175 -546}\special{pa -188 -543}\special{pa -200 -540}% +\special{pa -213 -537}\special{pa -225 -533}\special{pa -236 -530}\special{pa -248 -526}% +\special{pa -259 -522}\special{pa -270 -518}\special{pa -281 -514}\special{pa -292 -509}% +\special{pa -302 -504}\special{pa -312 -500}\special{pa -322 -495}\special{pa -331 -489}% +\special{pa -340 -484}\special{pa -349 -479}\special{pa -357 -473}\special{pa -365 -468}% +\special{pa -372 -462}\special{pa -380 -456}\special{pa -386 -450}\special{pa -393 -444}% +\special{pa -399 -437}\special{pa -405 -431}\special{pa -410 -425}\special{pa -415 -418}% +\special{pa -419 -412}\special{pa -423 -405}\special{pa -427 -398}\special{pa -430 -392}% +\special{pa -433 -385}\special{pa -436 -378}\special{pa -437 -371}\special{pa -439 -364}% +\special{pa -440 -357}\special{pa -441 -351}\special{pa -441 -344}\special{pa -441 -337}% +\special{pa -440 -330}\special{pa -439 -323}\special{pa -437 -316}\special{pa -435 -309}% +\special{pa -433 -302}\special{pa -430 -296}\special{pa -427 -289}\special{pa -423 -282}% +\special{pa -419 -275}\special{pa -415 -269}\special{pa -410 -262}\special{pa -405 -256}% +\special{pa -399 -250}\special{pa -393 -244}\special{pa -386 -237}\special{pa -379 -231}% +\special{pa -372 -225}\special{pa -365 -220}\special{pa -357 -214}\special{pa -348 -208}% +\special{pa -340 -203}\special{pa -331 -198}\special{pa -321 -193}\special{pa -312 -188}% +\special{pa -302 -183}% +\special{fp}% +\special{pa -321 -94}\special{pa -310 -89}\special{pa -299 -84}\special{pa -287 -80}% +\special{pa -275 -75}\special{pa -263 -71}\special{pa -251 -67}\special{pa -238 -63}% +\special{pa -226 -60}\special{pa -213 -56}\special{pa -199 -53}\special{pa -186 -50}% +\special{pa -172 -47}\special{pa -159 -44}\special{pa -145 -42}\special{pa -131 -40}% +\special{pa -116 -38}\special{pa -102 -36}\special{pa -88 -35}\special{pa -73 -34}% +\special{pa -59 -33}\special{pa -44 -32}\special{pa -29 -31}\special{pa -15 -31}% +\special{pa 0 -31}\special{pa 15 -31}\special{pa 30 -31}\special{pa 44 -32}% +\special{pa 59 -33}\special{pa 73 -34}\special{pa 88 -35}\special{pa 102 -36}% +\special{pa 117 -38}\special{pa 131 -40}\special{pa 145 -42}\special{pa 159 -45}% +\special{pa 173 -47}\special{pa 186 -50}\special{pa 200 -53}\special{pa 213 -56}% +\special{pa 226 -60}\special{pa 239 -63}\special{pa 251 -67}\special{pa 263 -71}% +\special{pa 276 -75}\special{pa 287 -80}\special{pa 299 -84}\special{pa 310 -89}% +\special{pa 321 -94}\special{pa 331 -99}\special{pa 342 -105}\special{pa 352 -110}% +\special{pa 361 -116}\special{pa 370 -121}\special{pa 379 -127}\special{pa 388 -133}% +\special{pa 396 -139}\special{pa 403 -146}\special{pa 411 -152}\special{pa 418 -159}% +\special{pa 424 -165}\special{pa 430 -172}\special{pa 436 -179}\special{pa 441 -186}% +\special{pa 446 -193}\special{pa 450 -200}\special{pa 454 -207}\special{pa 457 -214}% +\special{pa 460 -221}\special{pa 463 -228}\special{pa 465 -236}\special{pa 466 -243}% +\special{pa 468 -250}\special{pa 468 -258}\special{pa 469 -265}\special{pa 468 -272}% +\special{pa 468 -280}\special{pa 466 -287}\special{pa 465 -294}\special{pa 463 -302}% +\special{pa 460 -309}\special{pa 457 -316}\special{pa 454 -323}\special{pa 450 -330}% +\special{pa 446 -337}\special{pa 441 -344}\special{pa 436 -351}\special{pa 430 -358}% +\special{pa 424 -365}\special{pa 417 -371}\special{pa 410 -378}\special{pa 403 -384}% +\special{pa 395 -391}\special{pa 387 -397}\special{pa 379 -403}\special{pa 370 -409}% +\special{pa 361 -414}\special{pa 351 -420}\special{pa 341 -425}\special{pa 331 -431}% +\special{pa 321 -436}\special{pa 310 -441}\special{pa 299 -445}\special{pa 287 -450}% +\special{pa 275 -454}\special{pa 263 -459}\special{pa 251 -463}\special{pa 238 -467}% +\special{pa 226 -470}\special{pa 213 -474}\special{pa 199 -477}\special{pa 186 -480}% +\special{pa 172 -483}\special{pa 159 -485}\special{pa 145 -488}\special{pa 131 -490}% +\special{pa 116 -492}\special{pa 102 -494}\special{pa 88 -495}\special{pa 73 -496}% +\special{pa 59 -497}\special{pa 44 -498}\special{pa 29 -499}\special{pa 15 -499}% +\special{pa -0 -499}\special{pa -15 -499}\special{pa -30 -499}\special{pa -44 -498}% +\special{pa -59 -497}\special{pa -73 -496}\special{pa -88 -495}\special{pa -102 -494}% +\special{pa -117 -492}\special{pa -131 -490}\special{pa -145 -488}\special{pa -159 -485}% +\special{pa -173 -483}\special{pa -186 -480}\special{pa -200 -477}\special{pa -213 -474}% +\special{pa -226 -470}\special{pa -239 -467}\special{pa -251 -463}\special{pa -263 -459}% +\special{pa -276 -454}\special{pa -287 -450}\special{pa -299 -445}\special{pa -310 -441}% +\special{pa -321 -436}\special{pa -331 -431}\special{pa -342 -425}\special{pa -352 -420}% +\special{pa -361 -414}\special{pa -370 -408}\special{pa -379 -403}\special{pa -388 -397}% +\special{pa -396 -390}\special{pa -403 -384}\special{pa -411 -378}\special{pa -418 -371}% +\special{pa -424 -365}\special{pa -430 -358}\special{pa -436 -351}\special{pa -441 -344}% +\special{pa -446 -337}\special{pa -450 -330}\special{pa -454 -323}\special{pa -457 -316}% +\special{pa -460 -309}\special{pa -463 -301}\special{pa -465 -294}\special{pa -466 -287}% +\special{pa -468 -280}\special{pa -468 -272}\special{pa -469 -265}\special{pa -468 -257}% +\special{pa -468 -250}\special{pa -466 -243}\special{pa -465 -235}\special{pa -463 -228}% +\special{pa -460 -221}\special{pa -457 -214}\special{pa -454 -207}\special{pa -450 -199}% +\special{pa -446 -192}\special{pa -441 -185}\special{pa -436 -179}\special{pa -430 -172}% +\special{pa -424 -165}\special{pa -417 -158}\special{pa -410 -152}\special{pa -403 -146}% +\special{pa -395 -139}\special{pa -387 -133}\special{pa -379 -127}\special{pa -370 -121}% +\special{pa -361 -116}\special{pa -351 -110}\special{pa -341 -105}\special{pa -331 -99}% +\special{pa -321 -94}% +\special{fp}% +\special{pa -339 -1}\special{pa -328 5}\special{pa -316 10}\special{pa -304 15}% +\special{pa -291 19}\special{pa -279 24}\special{pa -266 28}\special{pa -252 32}% +\special{pa -239 36}\special{pa -225 40}\special{pa -211 43}\special{pa -197 46}% +\special{pa -182 49}\special{pa -168 52}\special{pa -153 55}\special{pa -138 57}% +\special{pa -123 59}\special{pa -108 61}\special{pa -93 62}\special{pa -77 64}% +\special{pa -62 65}\special{pa -47 66}\special{pa -31 66}\special{pa -15 67}% +\special{pa 0 67}\special{pa 16 67}\special{pa 31 66}\special{pa 47 66}% +\special{pa 62 65}\special{pa 78 64}\special{pa 93 62}\special{pa 108 61}% +\special{pa 124 59}\special{pa 139 57}\special{pa 153 54}\special{pa 168 52}% +\special{pa 183 49}\special{pa 197 46}\special{pa 211 43}\special{pa 225 40}% +\special{pa 239 36}\special{pa 253 32}\special{pa 266 28}\special{pa 279 24}% +\special{pa 292 19}\special{pa 304 15}\special{pa 316 10}\special{pa 328 5}% +\special{pa 340 -1}\special{pa 351 -6}\special{pa 362 -12}\special{pa 372 -17}% +\special{pa 382 -23}\special{pa 392 -29}\special{pa 401 -36}\special{pa 410 -42}% +\special{pa 419 -49}\special{pa 427 -55}\special{pa 435 -62}\special{pa 442 -69}% +\special{pa 449 -76}\special{pa 455 -83}\special{pa 461 -90}\special{pa 467 -97}% +\special{pa 472 -105}\special{pa 476 -112}\special{pa 481 -120}\special{pa 484 -127}% +\special{pa 487 -135}\special{pa 490 -143}\special{pa 492 -150}\special{pa 494 -158}% +\special{pa 495 -166}\special{pa 496 -174}\special{pa 496 -181}\special{pa 496 -189}% +\special{pa 495 -197}\special{pa 494 -205}\special{pa 492 -213}\special{pa 490 -220}% +\special{pa 487 -228}\special{pa 484 -236}\special{pa 480 -243}\special{pa 476 -251}% +\special{pa 472 -258}\special{pa 467 -265}\special{pa 461 -273}\special{pa 455 -280}% +\special{pa 449 -287}\special{pa 442 -294}\special{pa 435 -301}\special{pa 427 -308}% +\special{pa 419 -314}\special{pa 410 -321}\special{pa 401 -327}\special{pa 392 -333}% +\special{pa 382 -340}\special{pa 372 -345}\special{pa 361 -351}\special{pa 351 -357}% +\special{pa 339 -362}\special{pa 328 -367}\special{pa 316 -373}\special{pa 304 -377}% +\special{pa 291 -382}\special{pa 279 -387}\special{pa 266 -391}\special{pa 252 -395}% +\special{pa 239 -399}\special{pa 225 -402}\special{pa 211 -406}\special{pa 197 -409}% +\special{pa 182 -412}\special{pa 168 -415}\special{pa 153 -417}\special{pa 138 -420}% +\special{pa 123 -422}\special{pa 108 -423}\special{pa 93 -425}\special{pa 77 -426}% +\special{pa 62 -427}\special{pa 47 -428}\special{pa 31 -429}\special{pa 15 -429}% +\special{pa -0 -429}\special{pa -16 -429}\special{pa -31 -429}\special{pa -47 -428}% +\special{pa -62 -427}\special{pa -78 -426}\special{pa -93 -425}\special{pa -108 -423}% +\special{pa -124 -422}\special{pa -139 -420}\special{pa -153 -417}\special{pa -168 -415}% +\special{pa -183 -412}\special{pa -197 -409}\special{pa -211 -406}\special{pa -225 -402}% +\special{pa -239 -399}\special{pa -253 -395}\special{pa -266 -391}\special{pa -279 -386}% +\special{pa -292 -382}\special{pa -304 -377}\special{pa -316 -372}\special{pa -328 -367}% +\special{pa -340 -362}\special{pa -351 -357}\special{pa -362 -351}\special{pa -372 -345}% +\special{pa -382 -339}\special{pa -392 -333}\special{pa -401 -327}\special{pa -410 -321}% +\special{pa -419 -314}\special{pa -427 -308}\special{pa -435 -301}\special{pa -442 -294}% +\special{pa -449 -287}\special{pa -455 -280}\special{pa -461 -273}\special{pa -467 -265}% +\special{pa -472 -258}\special{pa -476 -251}\special{pa -481 -243}\special{pa -484 -235}% +\special{pa -487 -228}\special{pa -490 -220}\special{pa -492 -212}\special{pa -494 -205}% +\special{pa -495 -197}\special{pa -496 -189}\special{pa -496 -181}\special{pa -496 -174}% +\special{pa -495 -166}\special{pa -494 -158}\special{pa -492 -150}\special{pa -490 -142}% +\special{pa -487 -135}\special{pa -484 -127}\special{pa -480 -120}\special{pa -476 -112}% +\special{pa -472 -105}\special{pa -467 -97}\special{pa -461 -90}\special{pa -455 -83}% +\special{pa -449 -76}\special{pa -442 -69}\special{pa -435 -62}\special{pa -427 -55}% +\special{pa -419 -48}\special{pa -410 -42}\special{pa -401 -36}\special{pa -392 -29}% +\special{pa -382 -23}\special{pa -372 -17}\special{pa -361 -12}\special{pa -351 -6}% +\special{pa -339 -1}% +\special{fp}% +\special{pa -358 98}\special{pa -346 103}\special{pa -334 109}\special{pa -321 114}% +\special{pa -308 119}\special{pa -294 124}\special{pa -280 128}\special{pa -266 132}% +\special{pa -252 136}\special{pa -238 140}\special{pa -223 144}\special{pa -208 147}% +\special{pa -193 150}\special{pa -177 153}\special{pa -162 156}\special{pa -146 158}% +\special{pa -130 161}\special{pa -114 162}\special{pa -98 164}\special{pa -82 166}% +\special{pa -65 167}\special{pa -49 168}\special{pa -33 168}\special{pa -16 169}% +\special{pa 0 169}\special{pa 17 169}\special{pa 33 168}\special{pa 49 168}% +\special{pa 66 167}\special{pa 82 165}\special{pa 98 164}\special{pa 114 162}% +\special{pa 130 160}\special{pa 146 158}\special{pa 162 156}\special{pa 178 153}% +\special{pa 193 150}\special{pa 208 147}\special{pa 223 144}\special{pa 238 140}% +\special{pa 252 136}\special{pa 267 132}\special{pa 281 128}\special{pa 294 123}% +\special{pa 308 119}\special{pa 321 114}\special{pa 334 109}\special{pa 346 103}% +\special{pa 359 98}\special{pa 370 92}\special{pa 382 86}\special{pa 393 80}% +\special{pa 404 74}\special{pa 414 67}\special{pa 424 61}\special{pa 433 54}% +\special{pa 442 47}\special{pa 451 40}\special{pa 459 33}\special{pa 467 26}% +\special{pa 474 18}\special{pa 481 11}\special{pa 487 3}\special{pa 493 -4}% +\special{pa 498 -12}\special{pa 503 -20}\special{pa 507 -28}\special{pa 511 -36}% +\special{pa 514 -44}\special{pa 517 -52}\special{pa 520 -60}\special{pa 521 -69}% +\special{pa 523 -77}\special{pa 523 -85}\special{pa 524 -93}\special{pa 523 -101}% +\special{pa 523 -110}\special{pa 521 -118}\special{pa 519 -126}\special{pa 517 -134}% +\special{pa 514 -142}\special{pa 511 -150}\special{pa 507 -158}\special{pa 503 -166}% +\special{pa 498 -174}\special{pa 493 -182}\special{pa 487 -190}\special{pa 480 -197}% +\special{pa 474 -205}\special{pa 466 -212}\special{pa 459 -219}\special{pa 451 -226}% +\special{pa 442 -233}\special{pa 433 -240}\special{pa 424 -247}\special{pa 414 -254}% +\special{pa 403 -260}\special{pa 393 -266}\special{pa 382 -272}\special{pa 370 -278}% +\special{pa 358 -284}\special{pa 346 -290}\special{pa 334 -295}\special{pa 321 -300}% +\special{pa 308 -305}\special{pa 294 -310}\special{pa 280 -314}\special{pa 266 -318}% +\special{pa 252 -323}\special{pa 238 -326}\special{pa 223 -330}\special{pa 208 -333}% +\special{pa 193 -337}\special{pa 177 -339}\special{pa 162 -342}\special{pa 146 -345}% +\special{pa 130 -347}\special{pa 114 -349}\special{pa 98 -350}\special{pa 82 -352}% +\special{pa 65 -353}\special{pa 49 -354}\special{pa 33 -354}\special{pa 16 -355}% +\special{pa -0 -355}\special{pa -17 -355}\special{pa -33 -354}\special{pa -49 -354}% +\special{pa -66 -353}\special{pa -82 -352}\special{pa -98 -350}\special{pa -114 -349}% +\special{pa -130 -347}\special{pa -146 -344}\special{pa -162 -342}\special{pa -178 -339}% +\special{pa -193 -336}\special{pa -208 -333}\special{pa -223 -330}\special{pa -238 -326}% +\special{pa -252 -322}\special{pa -267 -318}\special{pa -281 -314}\special{pa -294 -310}% +\special{pa -308 -305}\special{pa -321 -300}\special{pa -334 -295}\special{pa -346 -289}% +\special{pa -359 -284}\special{pa -370 -278}\special{pa -382 -272}\special{pa -393 -266}% +\special{pa -404 -260}\special{pa -414 -253}\special{pa -424 -247}\special{pa -433 -240}% +\special{pa -442 -233}\special{pa -451 -226}\special{pa -459 -219}\special{pa -467 -212}% +\special{pa -474 -204}\special{pa -481 -197}\special{pa -487 -189}\special{pa -493 -182}% +\special{pa -498 -174}\special{pa -503 -166}\special{pa -507 -158}\special{pa -511 -150}% +\special{pa -514 -142}\special{pa -517 -134}\special{pa -520 -126}\special{pa -521 -118}% +\special{pa -523 -109}\special{pa -523 -101}\special{pa -524 -93}\special{pa -523 -85}% +\special{pa -523 -77}\special{pa -521 -68}\special{pa -519 -60}\special{pa -517 -52}% +\special{pa -514 -44}\special{pa -511 -36}\special{pa -507 -28}\special{pa -503 -20}% +\special{pa -498 -12}\special{pa -493 -4}\special{pa -487 3}\special{pa -480 11}% +\special{pa -474 18}\special{pa -466 26}\special{pa -459 33}\special{pa -451 40}% +\special{pa -442 47}\special{pa -433 54}\special{pa -424 61}\special{pa -414 67}% +\special{pa -403 74}\special{pa -393 80}\special{pa -382 86}\special{pa -370 92}% +\special{pa -358 98}% +\special{fp}% +\special{pa -377 201}\special{pa -364 207}\special{pa -351 212}\special{pa -338 218}% +\special{pa -324 223}\special{pa -310 228}\special{pa -295 233}\special{pa -280 237}% +\special{pa -265 242}\special{pa -250 246}\special{pa -235 249}\special{pa -219 253}% +\special{pa -203 256}\special{pa -187 259}\special{pa -170 262}\special{pa -154 265}% +\special{pa -137 267}\special{pa -120 269}\special{pa -103 271}\special{pa -86 272}% +\special{pa -69 273}\special{pa -52 274}\special{pa -34 275}\special{pa -17 275}% +\special{pa 0 276}\special{pa 18 275}\special{pa 35 275}\special{pa 52 274}% +\special{pa 69 273}\special{pa 86 272}\special{pa 103 271}\special{pa 120 269}% +\special{pa 137 267}\special{pa 154 265}\special{pa 171 262}\special{pa 187 259}% +\special{pa 203 256}\special{pa 219 253}\special{pa 235 249}\special{pa 250 246}% +\special{pa 266 241}\special{pa 281 237}\special{pa 296 233}\special{pa 310 228}% +\special{pa 324 223}\special{pa 338 218}\special{pa 351 212}\special{pa 365 207}% +\special{pa 377 201}\special{pa 390 195}\special{pa 402 189}\special{pa 414 182}% +\special{pa 425 176}\special{pa 436 169}\special{pa 446 162}\special{pa 456 155}% +\special{pa 465 148}\special{pa 475 140}\special{pa 483 133}\special{pa 491 125}% +\special{pa 499 117}\special{pa 506 109}\special{pa 513 101}\special{pa 519 93}% +\special{pa 524 85}\special{pa 529 77}\special{pa 534 68}\special{pa 538 60}% +\special{pa 541 52}\special{pa 544 43}\special{pa 547 34}\special{pa 549 26}% +\special{pa 550 17}\special{pa 551 9}\special{pa 551 -0}\special{pa 551 -9}% +\special{pa 550 -17}\special{pa 549 -26}\special{pa 547 -35}\special{pa 544 -43}% +\special{pa 541 -52}\special{pa 538 -60}\special{pa 534 -69}\special{pa 529 -77}% +\special{pa 524 -85}\special{pa 519 -93}\special{pa 512 -102}\special{pa 506 -110}% +\special{pa 499 -117}\special{pa 491 -125}\special{pa 483 -133}\special{pa 474 -140}% +\special{pa 465 -148}\special{pa 456 -155}\special{pa 446 -162}\special{pa 435 -169}% +\special{pa 425 -176}\special{pa 413 -182}\special{pa 402 -189}\special{pa 390 -195}% +\special{pa 377 -201}\special{pa 364 -207}\special{pa 351 -212}\special{pa 338 -218}% +\special{pa 324 -223}\special{pa 310 -228}\special{pa 295 -233}\special{pa 280 -237}% +\special{pa 265 -242}\special{pa 250 -246}\special{pa 235 -249}\special{pa 219 -253}% +\special{pa 203 -256}\special{pa 187 -259}\special{pa 170 -262}\special{pa 154 -265}% +\special{pa 137 -267}\special{pa 120 -269}\special{pa 103 -271}\special{pa 86 -272}% +\special{pa 69 -273}\special{pa 52 -274}\special{pa 34 -275}\special{pa 17 -275}% +\special{pa -0 -276}\special{pa -18 -275}\special{pa -35 -275}\special{pa -52 -274}% +\special{pa -69 -273}\special{pa -86 -272}\special{pa -103 -271}\special{pa -120 -269}% +\special{pa -137 -267}\special{pa -154 -265}\special{pa -171 -262}\special{pa -187 -259}% +\special{pa -203 -256}\special{pa -219 -253}\special{pa -235 -249}\special{pa -250 -246}% +\special{pa -266 -241}\special{pa -281 -237}\special{pa -296 -233}\special{pa -310 -228}% +\special{pa -324 -223}\special{pa -338 -218}\special{pa -351 -212}\special{pa -365 -207}% +\special{pa -377 -201}\special{pa -390 -195}\special{pa -402 -189}\special{pa -414 -182}% +\special{pa -425 -176}\special{pa -436 -169}\special{pa -446 -162}\special{pa -456 -155}% +\special{pa -465 -148}\special{pa -475 -140}\special{pa -483 -133}\special{pa -491 -125}% +\special{pa -499 -117}\special{pa -506 -109}\special{pa -513 -101}\special{pa -519 -93}% +\special{pa -524 -85}\special{pa -529 -77}\special{pa -534 -68}\special{pa -538 -60}% +\special{pa -541 -52}\special{pa -544 -43}\special{pa -547 -34}\special{pa -549 -26}% +\special{pa -550 -17}\special{pa -551 -9}\special{pa -551 0}\special{pa -551 9}% +\special{pa -550 17}\special{pa -549 26}\special{pa -547 35}\special{pa -544 43}% +\special{pa -541 52}\special{pa -538 60}\special{pa -534 69}\special{pa -529 77}% +\special{pa -524 85}\special{pa -519 93}\special{pa -512 102}\special{pa -506 110}% +\special{pa -499 117}\special{pa -491 125}\special{pa -483 133}\special{pa -474 140}% +\special{pa -465 148}\special{pa -456 155}\special{pa -446 162}\special{pa -435 169}% +\special{pa -425 176}\special{pa -413 182}\special{pa -402 189}\special{pa -390 195}% +\special{pa -377 201}% +\special{fp}% +\settowidth{\Width}{ワイヤーフレームモデル}\setlength{\Width}{0\Width}% +\settoheight{\Height}{ワイヤーフレームモデル}\settodepth{\Depth}{ワイヤーフレームモデル}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(-2.4285714,-1.5000000){\hspace*{\Width}\raisebox{\Height}{ワイヤーフレームモデル}}% +% +\settowidth{\Width}{サーフェスモデル}\setlength{\Width}{0\Width}% +\settoheight{\Height}{サーフェスモデル}\settodepth{\Depth}{サーフェスモデル}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(3.5714286,-1.5000000){\hspace*{\Width}\raisebox{\Height}{サーフェスモデル}}% +% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire01.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire01.tex new file mode 100644 index 00000000000..13fbd5890be --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire01.tex @@ -0,0 +1,30 @@ +%%% /Users/hannya/Desktop/fig/wire01.tex +%%% Generator=template3D.cdy +{\unitlength=8mm% +\begin{picture}% +(3.57,3.27)(-1.77,-0.91)% +\special{pn 8}% +% +\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(-1.8000000,-0.4700000){\hspace*{\Width}\raisebox{\Height}{$x$}}% +% +\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(1.4600000,-0.6100000){\hspace*{\Width}\raisebox{\Height}{$y$}}% +% +\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(0.0000000,2.1200000){\hspace*{\Width}\raisebox{\Height}{$z$}}% +% +\special{pa 494 -130}\special{pa -494 130}% +\special{fp}% +\special{pa -391 -164}\special{pa 391 164}% +\special{fp}% +\special{pa 0 287}\special{pa 0 -594}% +\special{fp}% +\special{pa -442 -17}\special{pa 0 -149}% +\special{fp}% +\special{pa 196 82}\special{pa 247 -65}\special{pa 0 -297}\special{pa 196 82}% +\special{fp}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire02.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire02.tex new file mode 100644 index 00000000000..ca0a12c55a0 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire02.tex @@ -0,0 +1,30 @@ +%%% /Users/hannya/Desktop/fig/wire02.tex +%%% Generator=template3D.cdy +{\unitlength=8mm% +\begin{picture}% +(3.57,3.27)(-1.77,-0.91)% +\special{pn 8}% +% +\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(-1.8000000,-0.4700000){\hspace*{\Width}\raisebox{\Height}{$x$}}% +% +\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(1.4600000,-0.6100000){\hspace*{\Width}\raisebox{\Height}{$y$}}% +% +\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(0.0000000,2.1200000){\hspace*{\Width}\raisebox{\Height}{$z$}}% +% +\special{pa 494 -130}\special{pa -494 130}% +\special{fp}% +\special{pa -391 -164}\special{pa 391 164}% +\special{fp}% +\special{pa 0 287}\special{pa 0 -594}% +\special{fp}% +\special{pa -442 -17}\special{pa 442 -280}% +\special{fp}% +\special{pa 196 82}\special{pa 247 -65}\special{pa 0 -297}\special{pa 196 82}% +\special{fp}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire03.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire03.tex new file mode 100644 index 00000000000..bd61a8b728f --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire03.tex @@ -0,0 +1,30 @@ +%%% /Users/hannya/Desktop/fig/wire03.tex +%%% Generator=template3D.cdy +{\unitlength=8mm% +\begin{picture}% +(3.57,3.27)(-1.77,-0.91)% +\special{pn 8}% +% +\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(-1.8000000,-0.4700000){\hspace*{\Width}\raisebox{\Height}{$x$}}% +% +\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(1.4600000,-0.6100000){\hspace*{\Width}\raisebox{\Height}{$y$}}% +% +\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(0.0000000,2.1200000){\hspace*{\Width}\raisebox{\Height}{$z$}}% +% +\special{pa 494 -130}\special{pa -494 130}% +\special{fp}% +\special{pa -391 -164}\special{pa 391 164}% +\special{fp}% +\special{pa 0 287}\special{pa 0 -594}% +\special{fp}% +\special{pa -442 -17}\special{pa 145 -68}% +\special{fp}% +\special{pa 196 82}\special{pa 247 -65}\special{pa 0 -297}\special{pa 196 82}% +\special{fp}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire04.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire04.tex new file mode 100644 index 00000000000..8c69fb66dc3 --- /dev/null +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/wire04.tex @@ -0,0 +1,30 @@ +%%% /Users/hannya/Desktop/fig/wire04.tex +%%% Generator=template3D.cdy +{\unitlength=8mm% +\begin{picture}% +(3.57,3.27)(-1.77,-0.91)% +\special{pn 8}% +% +\settowidth{\Width}{$x$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$x$}\settodepth{\Depth}{$x$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(-1.8000000,-0.4700000){\hspace*{\Width}\raisebox{\Height}{$x$}}% +% +\settowidth{\Width}{$y$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$y$}\settodepth{\Depth}{$y$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(1.4600000,-0.6100000){\hspace*{\Width}\raisebox{\Height}{$y$}}% +% +\settowidth{\Width}{$z$}\setlength{\Width}{-0.5\Width}% +\settoheight{\Height}{$z$}\settodepth{\Depth}{$z$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}% +\put(0.0000000,2.1200000){\hspace*{\Width}\raisebox{\Height}{$z$}}% +% +\special{pa 494 -130}\special{pa -494 130}% +\special{fp}% +\special{pa -391 -164}\special{pa 391 164}% +\special{fp}% +\special{pa 0 287}\special{pa 0 -594}% +\special{fp}% +\special{pa -442 -17}\special{pa -247 -84}% +\special{fp}% +\special{pa 196 82}\special{pa 247 -65}\special{pa 0 -297}\special{pa 196 82}% +\special{fp}% +\end{picture}}% \ No newline at end of file diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex index e3b86464ef9..654d4da88c3 100644 --- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex +++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex @@ -156,19 +156,20 @@ Hide coordinate axes. \itemket{Description}Generic function to set the style of axis. \itemket{Details}Parameters are:\\ 1. Style of axis ("l" ; line(default), "a" : arrow)\\ -\hspace*{10mm}Rem)Write like \verb|"a0.5"| when setting the size.\\ -2. Name of horizontal ax ( default is \verb|"x"|)\\ -3. Posion of horizontal name (default is \verb|"e"|)\\ -4. Name of horizontal ax ( default is \verb|"y"|)\\ -5. Posion of horizontal name (default is \verb|"n"|)\\ -6. Name of origin (default is \verb|"O"|)\\ -7. Position of origin (default is \verb|"sw"|)\\ -8. Line style\\ +2. Name of horizontal ax ( default is x)\\ +3. Posion of horizontal name (default is "e")\\ +4. Name of horizontal ax ( default is y)\\ +5. Posion of horizontal name (default is "n")\\ +6. Name of origin (default is O)\\ +7. Position of origin (default is "sw")\\ +8. Linestyle\\ 9. Color of axes\\ 10. Color of labels\\ + \itemket{Examples}\mbox{} \verb|Setax(["a","","","","","","nw"]);|\\ +\verb|Setax(["","","","","","","","do","red"]);|\\ \verb|Setax([7,"nw"]);|\\ \verb|Setax(["a","\theta","","x","w"]);| @@ -192,10 +193,10 @@ To draw a point in the void mode. \verb|Setax([7,"se"]);|\\ \verb|Setpt(8);|\\ -\verb|Drwpt([-pi,0],0);|\\ +\verb|Pointdata("1",[[-pi,0]],["Inside=0"]);|\\ \verb|Drwxy();|\\ \verb|Plotdata("1","sin(x)","x",["dr","Num=300"]);|\\ -\verb|Drwpt([pi,0],0);| +\verb|Pointdata("2",[[pi,0]],["Inside=0"]);| \begin{center} \input{Fig/drwxy} @@ -322,7 +323,7 @@ $f(x)=\left\{\begin{array}{l}1 (x\geq 0)\\ -1 (x<0)\\ \end{array}\right.$ \itemket{Usage}Setpt(ratio); \itemket{Description}Generic funtion to set the size of points. \itemket{Details}"ratio" is the ratio from the standard size.\\ -Size can be change as a option of ``Pointdata". +Size can be change as a option of "Pointdata". \itemket{Examples}\mbox{} \verb|Pointdata("1",A,["Size=1"]);|\\ @@ -333,6 +334,13 @@ Size can be change as a option of ``Pointdata". \hspace{20mm}\input{Fig/pointsize} \end{cmd} +%------------Setarrow-------------------------------- +\begin{cmd}{Setarrow}{setarrow} +\itemket{Usage}Setarrow(size,angle,position,cut,segstyle) +\itemket{Description}Generic function to set the arrow. +\itemket{Details} Set the style of arrow. Same as options of \hyperlink{arrowdata}{Arrowdata()} .\\ +\end{cmd} + %------------Setmarklen-------------------------------- \begin{cmd}{Setmarklen}{setmarklen} @@ -363,7 +371,7 @@ The coordinate of apparent origin is $(3,2)$ but we use the original coordinate Left figure is Euclidean view, right figure is the result of \TeX. \begin{center} -\includegraphics[bb=0 0 227 205 , width=4cm]{Fig/setorigin.pdf}\hspace{10mm}% +\includegraphics[bb=0 0 299.02 250.01 , width=4cm]{Fig/setorigin.pdf}\hspace{10mm}% \input{Fig/setorigin} \end{center} @@ -480,13 +488,13 @@ In addition, there are options specific to each function. \begin{cmd}{Pointdata}{pointdata} \itemket{Usage}Pointdata(name, point list, options) \itemket{Description}Generic function to make a point data. -\itemket{Detailse}Options are "Size=", "Color=", "notex/nodisp". +\itemket{Detailse}Options are "Size=", "Color=", "Inside=","notex/nodisp". \itemket{Examples}\mbox{} \verb|Pointdata("1",[[1,2],[-2,3]]); | // make 2 points (1,2),(-2,3)\\ \verb|Pointdata("2",[A,B]); | // A and B are draw by drawing tool.\\ \verb|Pointdata("3",A,["size=4"]); | // size of point A is 4.\\ -\verb|Pointdata("4",[A,B],[0]); | // white circles\\ +\verb|Pointdata("4",[A,B],["Inside=0"]); | // white circles\\ \verb|Pointdata("5",[[3,4],[5,6]],["notex"]); | //not draw in the \TeX file.\\ \verb|Pointdata("6",[[3,4],[5,6]],["nodisp"]);| //not draw \TeX file and Euclidean view.\\ @@ -505,38 +513,38 @@ Draw node of tree. \end{cmd} %---------Drwpt ----------------------------------- -\begin{cmd}{Drwpt}{drwpt} -\itemket{Usage}Drwpt(point, option) or Drawpoint(point, options) -\itemket{Description}Draw a point. -\itemket{Details} -The position of point is specified via its coordinate or the name of geometric object. -When the point is to be displayed not only on \TeX\ final output but also on the Euclidean view, you should generate geometric point on the screen. -Also \verb|Pointdata()| or \verb|Putpoint()| can be used. -When several points are to be generated, -the list of them should be given as the argument. -When 0 is input as the option, the point is displayed in a solid-white manner. -\itemket{Examples}\mbox{} +%\begin{cmd}{Drwpt}{drwpt} +%\itemket{Usage}Drwpt(point, option) or Drawpoint(point, options) +%\itemket{Description}Draw a point. +%\itemket{Details} +%The position of point is specified via its coordinate or the name of geometric object. +%When the point is to be displayed not only on \TeX\ final output but also on the Euclidean view, you should generate geometric point on the screen. +%Also \verb|Pointdata()| or \verb|Putpoint()| can be used. +%When several points are to be generated, +%the list of them should be given as the argument. +%When 0 is input as the option, the point is displayed in a solid-white manner. +%\itemket{Examples}\mbox{} -Draw the points $(1,1)$ and $(4,3)$. +%Draw the points $(1,1)$ and $(4,3)$. -\verb| Drwpt([[1,1],[4,3]]);|\\ +%\verb| Drwpt([[1,1],[4,3]]);|\\ -After generating points A, B, and C on the Euclidean view, display their image on \TeX\ document. +%After generating points A, B, and C on the Euclidean view, display their image on \TeX\ document. -\verb| Drwpt([A,B,C]);|\\ +%\verb| Drwpt([A,B,C]);|\\ -The endpoint B of segment AB in a solid-white manner. +%The endpoint B of segment AB in a solid-white manner. -\verb| Ptsize(5);|\\ -\verb| Listplot([A,B]);|\\ -\verb| Drawpoint(B,0);| -\begin{center} -\input{Fig/drawpoint} -\end{center} +%\verb| Ptsize(5);|\\ +%\verb| Listplot([A,B]);|\\ +%\verb| Drawpoint(B,0);| +%\begin{center} +%\input{Fig/drawpoint} +%\end{center} -\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points} +%\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points} -\end{cmd} +%\end{cmd} %--------------Putpoint------------------------------ \begin{cmd}{Putpoint}{putpoint} @@ -1480,10 +1488,9 @@ Draw discontinuity accurately by "Dis" option. Draw floor function. \verb| Plotdata("1","floor(x)","x",["Num=100","Dis=0.9"]); |\\ -\verb| Ptsize(3); |\\ \verb| Drwxy(); |\\ \verb| repeat(7,s,start -> -2, |\\ -\verb| Drwpt([s+1,s],0); |\\ +\verb| Pointdata(text(s+3),[s+1,s],["Inside=0","Size=3"]);|\\ \verb| ); | \vspace{\baselineskip} @@ -1679,7 +1686,7 @@ The option "nth" is used to set the number when plotting data has multi intersec %-----------Letter--------------------------------- \begin{cmd}{Letter}{letter} -\itemket{Usage}Letter([position, direction, string]) +\itemket{Usage}Letter([position, direction, string],options) \itemket{Description}Display the string. \itemket{Details} Write the string at the position specified by position (or coordinates) and direction. \\ @@ -1689,6 +1696,7 @@ The distance from the specified position can also be given as a numerical value. Multiple strings can be passed in the form of a list. \\ \itemket{Remark}\mbox{} The derivative symbol $'$ uses \$ $'$ \$ (single quart) in mathematical mode (interleaved with two \$ s). +Option is size of font. For example, ["size=32"] \item[Example]\mbox{} \verb|Letter([[2,1] ,"se","P"]); | // Display P in the southeast of the coordinates (2, 1). \\ @@ -2615,6 +2623,28 @@ Gets the points at both ends of the graph with limited domain and draw the line \begin{center} \input{Fig/ptstart} \end{center} \end{cmd} +%------------Readcsv-------------------------------- +\begin{cmd}{Readcsv}{readcsv} + +\itemket{Usage}Readcsv(path,filename,option) +\itemket{Description}read an external data file in csv format. The return value is a list of the data. +\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig). +If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\ +option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ). +\itemket{Examples} \mbox{} +Examples can be found in the command Boxplot(). +\end{cmd} + +%------------Readlines-------------------------------- +\begin{cmd}{Readlines}{readlines} + +\itemket{Usage}Readlines(path,filename,option) +\itemket{Description}read a text file line by line. The return value is a list of strings. +\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig). +If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\ +option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ). +\end{cmd} + %----------ReadOutData---------------------------------- \begin{cmd}{ReadOutData}{readoutdata} \itemket{Usage}ReadOutdata(filename); @@ -3531,27 +3561,6 @@ Example2 \end{cmd} -%------------Readcsv-------------------------------- -\begin{cmd}{Readcsv}{readcsv} - -\itemket{Usage}Readcsv(path,filename,option) -\itemket{Description}read an external data file in csv format. The return value is a list of the data. -\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig). -If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\ -option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ). -\itemket{Examples} \mbox{} -Examples can be found in the command Boxplot(). -\end{cmd} - -%------------Readlines-------------------------------- -\begin{cmd}{Readlines}{readlines} - -\itemket{Usage}Readlines(path,filename,option) -\itemket{Description}read a text file line by line. The return value is a list of strings. -\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig). -If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\ -option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ). -\end{cmd} %------------Scatterplot-------------------------------- \begin{cmd}{Scatterplot}{scatterplot} @@ -4135,11 +4144,29 @@ Meanings and defaults of options are\\ \end{cmd} \newpage -%=== 3D ========= +%========== 3D ========= \section{\ketcindy 3D} +\subsection{Screen} +The screen of KETCindy3D is structured as follows. + +There are two areas surrounded by a white rectangle on the drawing surface of Cinderella. The area on the left side where the NE and the SW are diagonal is referred to as the main screen, and the area on the right side is referred to as the sub screen. + +\vspace{\baselineskip} +\begin{center} + \includegraphics[bb=0 0 879.05 447.02 , width=8cm]{Fig/3dstart.pdf} +\end{center} +As in the case of a flat surface, the main screen shows the range output to TeX and it can be changed by dragging two points of NE and SW. The viewpoint can be moved with the slider below the main screen, and the axis rotates on the main screen. You can think of the sub screen as a viewpoint placed on the xy plane. + +When you draw points and line segments with Cinderella's drawing tool on the main screen, points corresponding to the secondary screen are drawn. You can change the x, y coordinates by dragging the point on the main screen, and drag the point on the sub screen to change the z coordinate. +\vspace{\baselineskip} +\begin{center} + \includegraphics[bb=0.00 0.00 863.04 378.52 , width=10cm]{Fig/3dscreen.pdf} +\end{center} +KeTCindy3D performs hidden line processing on lines and surfaces. Hidden line processing speeds up processing in cooperation with C language. + +It is necessary to develop an environment that uses C language, but now it is standardized. If you can not use C language, you will use a function to compute with R, but in that case it will take quite a while. -%==================================== \subsection{Setting and Defining} %------------Ketinit3d-------------------------------- \begin{cmd}{Ketinit3d}{ketinit3D} @@ -4148,11 +4175,10 @@ Meanings and defaults of options are\\ \itemket{Details}Euclidean view of Cinderella becomes 3D mode. Two sliders are created to indicate the viewing angle TH($\theta$), FI($\phi$). The initial values are $\mathrm{TH}=0$ and $\mathrm{FI}=0$.\\ \textcolor{red}{Caution} This funcition and Ketinit() have to write on Initializaiton slot. -\itemket{Remark}If \verb|Ketinit3d(0)| is used, the subscreen is not displayed. +\itemket{Remark}If \verb|Ketinit3d(0)| is used, the subscreen is not displayed. Ketinit () is also placed in the Initialization Slot, unlike 2D. \end{cmd} %------------Start3d-------------------------------- - \begin{cmd}{Start3d}{start3d} \itemket{Usage}Start3d(option) \itemket{Description}3d function to initialize limited variables. @@ -4160,12 +4186,12 @@ Meanings and defaults of options are\\ This funcition should be written at the beginning of Draw slot.\\ The option is a list of geometric points which are not regarded as 3D points. \itemket{Example}\mbox{}\\ +If option is given a list of exclusion points, that point is not a point of space. (The position does not change even if moving the viewpoint with the slider) + \verb|Start3d([A,B,C]);|\\ -\verb|Slider("A-C-B");| // A,C,B should not be 3D points. -\end{cmd} +\verb|Slider("A-C-B");| // A,C,B should not be 3D points.\end{cmd} %--------------Startsurf------------------------------ - \begin{cmd}{Startsurf}{startsurf} \itemket{Usage}Startsurf(options) \itemket{Description}Defines values related to surface rendering. @@ -4178,162 +4204,490 @@ Drawing of a curved surface with hidden line processing is performed in the foll %\itemket{Examples} \mbox{} \end{cmd} -%--------------Isangle------------------------------ -\begin{cmd}{Isangle}{isangle} - -\itemket{Usage}Isangle() -\itemket{Description}Decide the selection of the angle slider. -\itemket{Details}Returns ``true" if select slider, and ``false" if not.\\ -In drawing including hidden line processing, reaction is bad when recalculating while moving the viewpoint. With this function, you can write code that does not recalculate while moving the viewpoint. - -\itemket{Examples} \mbox{} +%-------------Xyzax3data------------------------------- +\begin{cmd}{Xyzax3data}{xyzax3data} -\verb| fd=[ |\\ -\verb| "z=4-(x^2+y^2)",|\\ -\verb| "x=R*cos(T)","y=R*sin(T)",|\\ -\verb| "R=[0,2]","T=[0,2*pi]","e" \verb| ];|\\ -\verb| if(Isangle(),|\\ -\verb| Sf3data("1",fd);|\\ -\verb| ,|\\ -\verb| Startsurf();|\\ -\verb| Sfbdparadata("1",fd);|\\ -\verb| Crvsfparadata("1","ax3d","sfbd3d1",fd);|\\ -\verb| ExeccmdC("1");|\\ -\verb| );| +\itemket{Usage} Xyzax3data(name, range of x, range of y, range of z, options) +\itemket{Description}Generic function to draw the coordinate axis. +\itemket{Details}Name can be null string.\\ +Options are the followings.\\ +"an": arrowhead, n is size.\\ +"Onesw": origin and its position. +\itemket{Examples} \mbox{} +\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");|\\ +\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]","a");| //arrowhead\\ +\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a2"]);| //big arrowhead\\ +\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["O"]);|\\ +\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]",["a","Oe2n2"]);| //set origin upper right \end{cmd} +\newpage +%================== 3D Drawing =============== + \subsection{Command for Drawing} -%-------------Bezier3d}------------------------------- +\subsubsection{Point and line} -\begin{cmd}{Bezier3d}{bezier3d} +%--------------Drawpoint3d------------------------------ -\itemket{Usage}Bezier3d(name,list1,list2) -\itemket{Description}Draw a Cubic B\'ezier curve. -\itemket{Details}list1 is list of anchor points, and list2 is list of handle points +\begin{cmd}{Drawpoint3d}{drawpoint3d} + +\itemket{Usage}Drawpoint3d(list of coordinates) +\itemket{Description}Generic function to draw 3D-points. +\itemket{Details}These points are not geometric point. +To convert the geometric point, use \hyperlink{putpoint3d}{Putpoint3d()}. +To output in the \TeX file, use \hyperlink{pointdata}{Pointdata()} or \hyperlink{drwpt}{Drawpoint()}. \itemket{Examples} \mbox{} -\verb|Bezier3d("1",["A","B","C"],["D","E","F","G"]);| +\verb| Drawpoint3d([1,1,1]); |\\ +\verb| Drawpoint3d([[1,1,1],[0,1,0]]); | -\begin{center} \input{Fig/bezier3d1} \end{center} +\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points} \end{cmd} -%----------Changestyle3d---------------------------------- -\begin{cmd}{Changestyle3d}{changestyle3d} -\itemket{Usage} Changestyle3d(PD,option) -\itemket{Description}Change the attribute of PD. -\itemket{Details}Change the attribute of PD to one with option specification. PD is a plotting data or a list of plotting data. -\itemket{Examples} \mbox{} +%--------------Pointdata3d------------------------------ +\begin{cmd}{Pointdata3d}{pointdata3d} -Make a tetrahedron by four points of space.\\ -\verb|Spaceline("1",[A,B]);|\\ -\verb|Spaceline("2",[A,C]);|\\ -\verb|Spaceline("3",[B,C]);|\\ -\verb|Spaceline("4",[A,D]);|\\ -\verb|Spaceline("5",[B,D]);|\\ -\verb|Spaceline("6",[C,D]);|\\ -then\\ -\verb|Changestyle3d("sl3d1",["dr,3"]);| // one edge become thick.\\ -or\\ -\verb|edges=apply(1..6,"sl3d"+text(#));|\\ -\verb|Changestyle3d(edges,["notex"]);| // all edges become ``notex".\\ +\itemket{Usage}Pointdata3d(name, point list, options) +\itemket{Description}Generic function to generate data of the point list. +\itemket{Details}Options are "Size=","Color=". +\itemket{Examples} \verb|Pointdata3d("1",[[0,1,0],[1,1,2]],["Size=2","Color=red"]);| \end{cmd} -%------------Concatobj-------------------------------- +%---------------Putpoint3d----------------------------- +\begin{cmd}{Putpoint3d}{putpoint3d} -\begin{cmd}{Concatobj}{concatobj} -\itemket{Usage}Concatobj(list,options) -\itemket{Description}Concatenates several objects. -%\itemket{Details} +\itemket{Usage}Putpoint3d(list of 3D-points, option) +\itemket{Description}Generic function to draw the geometric point in the space. +\itemket{Details}Option is "free" or "fix"(default). \itemket{Examples} \mbox{} -A tetrahedron by four vertecies A,B,C,D.\\ -The tetrahedron consists of four planes $\triangle\mathrm{ABC}$, $\triangle\mathrm{ABD}$, $\triangle\mathrm{ACD}$, $\triangle\mathrm{BCD}$.\\ -\begin{center} \input{Fig/concatobj} \end{center} -\verb|Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\ -makes [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]] -This data is used to drawing tetrahedron. -For example code, see \hyperlink{vertexedgeface}{VertexEdgeFace()}. -\end{cmd} +\verb|Putpoint3d(["A",[2,1,3]]);|\\ +\verb|Putpoint3d(["A",[2,1,3]],"free");| \\ +\verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]]);|\\ -%-------------Crvsfparadata------------------------------- +These points don't output in the \TeX file. To output in the \TeX file use the following \hyperlink{pointdata}{Pointdata()} or \hyperlink{drwpt}{Drawpoint()} -\begin{cmd}{Crvsfparadata}{crvsfparadata} -\itemket{Usage}Crvsfparadata(name,PD1,PD2,formula) -\itemket{Description}Remove curves hidden by curved face. -%\itemket{Details} -\itemket{Examples} \mbox{} +In the 3D-drawings the coordinate of the point name A is A3d. -For example code, see \hyperlink{execcmdc}{ExeccmdC()}. -\end{cmd} +\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points} -%--------------Datalist2d------------------------------ +\end{cmd} -\begin{cmd}{Datalist2d}{datalist2d} +%-----------------Putaxes3d--------------------------- +\begin{cmd}{Putaxes3d}{putaxes3d} -\itemket{Usage}Datalist2d() -\itemket{Description} Generic function to get a list of 2D-plotting data on the screen. +\itemket{Usage}Putaxes3d([x,y,z]) +\itemket{Description}Generic function to make the geometric points on the coordinate axis. +\itemket{Details}For the argument [x,y,x] we get the four geometric points X(x,0,0), Y(0,y,0), Z(0,0,z) and O(0,0,0). \itemket{Examples} \mbox{} -We execute the following program then the computer will display "PD=[ax2d,AB2d]" on the console.\\ - -\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\ -\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\ -\verb| Spaceline("1",[A,B]); |\\ -\verb| println("PD="+Datalist2d());| +\verb|Putaxes3d([1,2,3]);|\\ +\verb|Putaxes3d(a);| //this equals to \verb|Putaxes3d([a,a,a]);| \end{cmd} -%--------------Datalist3d------------------------------ -\begin{cmd}{Datalist3d}{datalist3d} +%--------------PutonCurve3d------------------------------ +\begin{cmd}{PutonCurve3d}{putonCurve3d} -\itemket{Usage}Datalist3d() -\itemket{Details}Generic function to get a list of 3D-plotting data. +\itemket{Usage} PutonCurve3d(name, PD) +\itemket{Description}Generic function to make the geometric point on the 3D-curve. +\itemket{Details}This point moves along the curve by mouse dragging. \itemket{Examples} \mbox{} -We execute the following program then the computer will display "PD=[ax3d,AB3d]" on the console.\\ - -\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\ -\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\ -\verb| Spaceline("1",[A,B]); |\\ -\verb| println("PD="+Datalist3d()); | - +Make reference to \hyperlink{partcrv3d}{Partcrv3d()} \end{cmd} -%--------------Dist3d------------------------------ - -\begin{cmd}{Dist3d}{dist3d} +%----------------Putonseg3d---------------------------- +\begin{cmd}{Putonseg3d}{putonseg3d} -\itemket{Usage}Dist3d(a1,a2) -\itemket{Description}Generic function to get the 3D-distance of two points. +\itemket{Usage}Putonseg3d(name, point1, point2) +\itemket{Description}Generic function to make the geometric point on the 3D-segment. +\itemket{Details}We get the middle point between the two points. This point moves along the segment by mouse dragging. \itemket{Examples} \mbox{} -Following three programs return the same result.\\ - -\verb| Dist3d("A","B"); |\\ -\verb| Dist3d(A,B); |\\ -\verb| Dist3d(A3d,B3d); | - +\verb|Putonseg3d("C",A,B);| //Put C on the center of A and B.\\ +\verb|Putonseg3d("C",[A,B]);| //same as above \end{cmd} -%--------------Drawpoint3d------------------------------ - -\begin{cmd}{Drawpoint3d}{drawpoint3d} +%--------------Spaceline------------------------------ +\begin{cmd}{Spaceline}{spaceline} -\itemket{Usage}Drawpoint3d(list of coordinates) -\itemket{Description}Generic function to draw 3D-points. -\itemket{Details}These points are not geometric point. -To convert the geometric point, use \hyperlink{putpoint3d}{Putpoint3d()}. -To output in the \TeX file, use \hyperlink{pointdata}{Pointdata()} or \hyperlink{drwpt}{Drawpoint()}. +\itemket{Usage} Spaceline(name, list) +\itemket{Description}Generic function to draw the space polygonal lines. +\itemket{Details}Options are line type: "dr" or "da" or "do". \itemket{Examples} \mbox{} -\verb| Drawpoint3d([1,1,1]); |\\ -\verb| Drawpoint3d([[1,1,1],[0,1,0]]); | +\verb|Spaceline("1",[[2,5,1],[4,2,3]]);| //draw the line between two points\\ +\verb|Spaceline("2",[A,B,C,A]);| //draw the triangle ABC\\ -\itemket{Remark} \hyperlink{mkpttable}{Comparative chart of drawing of points} +\begin{layer}{150}{0} +\putnotese{100}{-5}{ \input{Fig/oresenex01}} +\end{layer} -\end{cmd} -%--------------ExeccmdC------------------------------ +\verb|pt=[[2,0,0],[2,0,2],[2,2,2],[0,2,2],[0,4,2],[0,4,4]]; |\\ +\verb|Spaceline("1",pt); |\\ +\verb|Pointdata3d("1",pt,["Size=3"]);| +\vspace{30mm} +\end{cmd} +%-------------Spacecurve------------------------------- +\begin{cmd}{Spacecurve}{spacecurve} + +\itemket{Usage}Spacecurve(name, formula, domain, options) +\itemket{Description}Generic function to draw the space curve. +\itemket{Examples} \mbox{} +\verb|Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);|\\ +option=["Num=100"]: division number of the interval "t=[0,4*pi]" + \begin{center} \input{Fig/rasen} \end{center} +\end{cmd} + +%-------------Bezier3d}------------------------------- + +\begin{cmd}{Bezier3d}{bezier3d} + +\itemket{Usage}Bezier3d(name,list1,list2) +\itemket{Description}Draw a Cubic B\'ezier curve. +\itemket{Details}list1 is list of anchor points, and list2 is list of handle points +\itemket{Examples} \mbox{} + +\verb|Bezier3d("1",["A","B","C"],["D","E","F","G"]);| + +\begin{center} \input{Fig/bezier3d1} \end{center} + +\end{cmd} + +%---------Mkbezierptcrv3d----------------------------------- +\begin{cmd}{Mkbezierptcrv3d}{mkbezierptcrv3d} +\itemket{Usage}Mkbezierptcrv3d(list) +\itemket{Description}Draw a cubic B\'ezier curve from nodes. +\itemket{Details}Arrange the control points automatically. +After that, move the nodes and the control points and correct the cubic B\'ezier curve to what you want to draw. See the function {\tt \hyperlink{bezier}{Bezier3d}}. +\itemket{Examples} \mbox{} + +\verb|Mkbezierptcrv3d(["A","B","C","D"]);| +\end{cmd} +%-------------Skeletonparadata------------------------------- +\begin{cmd}{Skeletonparadata}{skeletonparadata} + +\itemket{Usage}Skeletonparadata(name, PDlist, PDlist, option) +\itemket{Description}Generic function to draw the lines by performing hidden line processing. +\itemket{Details}This function draw the second argument(the list of the lines) by performing hidden line processing which are hidden by the third argument(the list of the lines). If both arguments are omitted the function draw all lines by performing hidden line processing. + +Options:\\ +\hspace*{5mm}\verb|real number| gap of line\\ +\hspace*{5mm}\verb|"No=pointlist"| not executed when any point is selected\\ +\hspace*{5mm}\verb|"File=y/m/n(default:n)"| whether to make data file or not\\ +\hspace*{5mm}\verb|"Check=pointlist"| data file updated if any point is changed + +\itemket{Examples} \mbox{} + +\verb| Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]");| //Data name is "ax3d".\\ +\verb| Putpoint3d(["A",[0,-2,-2]]);|\\ +\verb| Putpoint3d(["B",[-1,1,3]]);|\\ +\verb| Spaceline([A,B]);| //Data name is "AB3d".\\ +\verb| Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);| //Data name is "sc3d1".\\ + +\verb|Skeletonparadata("1");| //(left figure)\\ +\verb|Skeletonparadata("1",[2]);| //option\verb|=[2]|: gap of lines\verb|=2| (center figure)\\ +\verb|Skeletonparadata("1",["AB3d","ax3d"],["sc3d1"]);| //(right figure) +\begin{center} \input{Fig/skeletonparadata01} \input{Fig/skeletonparadata02} + \input{Fig/skeletonparadata03} \end{center} + +\end{cmd} + +%================== 3D polyhedron =============== +\subsubsection{Polyhedron} + + The description of polyhedron drawing will be explained by taking the case of tetrahedron as an example. + +The tetrahedron is composed of four sides. Letting the vertices be A, B, C, D, the four faces are + +\hspace{20mm}$\triangle\mathrm{ABC}$, $\triangle\mathrm{ABD}$, $\triangle\mathrm{ACD}$, $\triangle\mathrm{BCD}$ + +\begin{center} \input{Fig/concatobj} \end{center} + +If numbers are given to the vertex list [A, B, C, D] in order from A, the vertex order of each face is [1, 2, 3], [1, 2, 4], [1, 3 , 4], [2, 3, 4]. + +[A, B, C, D], [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2 , 3, 4]]] is called "surface data". VertexEdgeFace () draws a polyhedron using this surface data. + +There are two kinds of hidden line processing of polyhedron. The first method is to treat polyhedron as a line drawing, and to process only the hidden part, using Skeletonparadata (). + +The other is to use Phparadata () as a way to draw a part hidden in the surface with a dotted line or hide it, considering it as a surface. + +\vspace{\baselineskip} +%------------Concatobj-------------------------------- + +\begin{cmd}{Concatobj}{concatobj} +\itemket{Usage}Concatobj(list,options) +\itemket{Description}Concatenates several objects. +%\itemket{Details} +\itemket{Examples} \mbox{} + +A tetrahedron by four vertecies A,B,C,D.\\ +The tetrahedron consists of four planes $\triangle\mathrm{ABC}$, $\triangle\mathrm{ABD}$, $\triangle\mathrm{ACD}$, $\triangle\mathrm{BCD}$.\\ + +\verb| Putpoint3d("A",2*[0,0,sqrt(3)]); |\\ +\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]);|\\ +\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);|\\ +\verb| Putpoint3d("D",2*[-1,-1/sqrt(3),0]);|\\ +\verb| phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\ +\verb| VertexEdgeFace("1",phd);|\\ +\verb| Skeletonparadata("1");|\\ +\verb| Letter3d([A3d,"ne","A",B3d,"sw","B",C3d,"se","C",D3d,"e","D"]);|\\ + +\begin{center} \input{Fig/concatobj} \end{center} + +If you are drawing tetrahedrons without creating geometric points, you can do as follows. + +\verb| a=2*[-1,-1/sqrt(3),0];|\\ +\verb| b=2*[1,-1/sqrt(3),0];|\\ +\verb| c=2*[0,sqrt(3)-1/sqrt(3),0];|\\ +\verb| d=2*[0,0,sqrt(3)];|\\ +\verb| phd=Concatobj([[a,b,c],[a,b,d],[a,c,d],[b,c,d]]);|\\ + +In the case of a convex polygon such as a tetrahedron, we can use CindyScript 's convexhull 3 d () function as follows. You can save time and effort by simply providing a vertex list instead of a surface list. + +\verb| a=2*[0,0,sqrt(3)];|\\ +\verb| b=2*[1,-1/sqrt(3),0];|\\ +\verb| c=2*[0,sqrt(3)-1/sqrt(3),0];|\\ +\verb| d=2*[-1,-1/sqrt(3),0];|\\ +\verb| phd=convexhull3d([a,b,c,d]);|\\ + +\end{cmd} + + +%-------------Vertexedgeface------------------------------- +\begin{cmd}{Vertexedgeface}{vertexedgeface} + +\itemket{Usage} VertexEdgeFace(name, list, options) +\itemket{Description}Generic function to draw the polyhedron. +\itemket{Details}We use the faces data of the polyhedron.\\ +The second argument is the list of vertexes list and the faces list.\\ +For example, the faces data of the tetrahedron is [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]].\\ + +The generated data is as follows. + +phv3d: list of vertices + +phe3d: list of edges + +phf3d: Surface list + +Each name is appended to the end. + +\itemket{Examples} \mbox{} + +\verb| Putpoint3d("A",2*[-1,-1/sqrt(3),0]); |\\ +\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]); |\\ +\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]); |\\ +\verb| Putpoint3d("D",2*[0,0,sqrt(3)]); |\\ +\verb| phd=[[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]];|\\ +\verb| VertexEdgeFace("1",phd); |\\ + //Three data lists are made, phv3d1:vertex, phe3d1:edge and phf3d1:face. + \begin{center} \input{Fig/vertex01} \end{center} +\end{cmd} + +%--------------Phparadata------------------------------ +\begin{cmd}{Phparadata}{phparadata} + +\itemket{Usage}Phparadata(name, name2, list of options) +\itemket{Description}Generic function to draw the polyhedron by performing hidden line processing. +\itemket{Details}Make polyhedral plot data with VertexEdgeFace (). For this plot data, hidden surfaces (sides) are hidden-line processed and displayed. The second argument name2 is the same as the name given by VertexEdgeFace (). The hidden line type is specified by the option "Hidden = line type". Hidden lines are not displayed by default setting. +\itemket{Examples} \mbox{} + +\begin{layer}{150}{0} +\putnotese{100}{0}{ \input{Fig/phparadata04}} +\end{layer} + +Draw a tetrahedron. + +\verb| Putpoint3d("A",2*[-1,-1/sqrt(3),0]);|\\ +\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]);|\\ +\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);|\\ +\verb| Putpoint3d("D",2*[0,0,sqrt(3)]);|\\ +\verb| phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);|\\ +\verb| VertexEdgeFace("1",phd);|\\ +\verb| Phparadata("1","1",["Hidden=do"]);|\\ + +A tetrahedron is drawn by VertexEdgeFace (), but it is hidden by Phparadata (). Since it is correctly output if it is drawn with the figure button, it is good to execute Phparadata () after confirming it by displaying it on the screen before executing Phparadata (). + +\vspace{\baselineskip} +Draw a truncated icosahedron of s06 (soccer ball type) using polyhedron data \verb|polyhedrons_obj| by Kobayashi, Suzuki, Mitani. + +\verb|Setdirectory( Dirhead+"/data/polyhedrons_obj");| //Many polyhedron data exist in this directory.\\ +\verb|phd=Readobj("s06.obj",["size=3"]);| //"s06" is the name of truncated icosahedron data.\\ +\verb|Setdirectory(Dirwork);| //Chage work space.\\ +\verb|VertexEdgeFace("s06",phd);|\\ +\verb|Phparadata("1","s06");| //default usage, left figure\\ + +The last two lines we can write the following.\\ +\verb|VertexEdgeFace("1",phd);|\\ +\verb|Phparadata("1","1");| +\begin{center} + \includegraphics[bb=0 0 726.04 365.02 , width=10cm]{Fig/phparadata01.pdf} +\end{center} + +\verb|Phparadata("1","s06",["dr,2","Hidden=do"]);| //right figure + \begin{center} \input{Fig/phparadata02} \input{Fig/phparadata03} \end{center} +\end{cmd} + +%--------------Nohiddenbyfaces------------------------------ +\begin{cmd}{Nohiddenbyfaces}{nohiddenbyfaces} + +\itemket{Usage}Nohiddenbyfaces(name,PD1,PD2,option1,option2) +\itemket{Description}Generic function to draw hidden lines by the surfaces. +\itemket{Details}PD1 are hidden lines, PD2 are surfaces.\\ +If we omit PD1 then all lines are processing objects.\\ +By default, hidden lines are drawn with dotted lines.\\ +Option1=line type of PD2 and option2=line type of hidden lines.\\ +If we specify only option2 then option1 must be null list:[].\\ +\itemket{Examples} \mbox{} + +\begin{verbatim} +Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); +Putpoint3d("A",2*[-1,-1/sqrt(3),0]); +Putpoint3d("B",2*[1,-1/sqrt(3),0]); +Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]); +Putpoint3d("D",2*[0,0,2*sqrt(6)/3]); +phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]); +VertexEdgeFace("1",phd); +Nohiddenbyfaces("1","phf3d1"); +\end{verbatim} +(left figure) + +\verb|Nohiddenbyfaces("1","phe3d1","phf3d1",["dr,2"],["da"]); | +(right figure) + +\begin{center} \input{Fig/nohiddenbyfaces1} \input{Fig/nohiddenbyfaces2} \end{center} + +We draw hidden axes with broken line in the following example.\\ +\verb|Nohiddenbyfaces("1","ax3d","phf3d1",[],["da"]);| + +\end{cmd} +%================== 3D Surface =============== +\subsubsection{Surface} + +There are wire frame models and surface models for drawing curved surfaces. The wire frame model represents a curved surface with stitches, and the surface model draws its contour as a stitch-free surface. + +In KeTCindy, each drawing is done using the following function. +\begin{tabbing} +1234567890123456789012345678901234567890\=\kill +Wire frame model without hidden wire \>Sf3data(name,form,options)\\ +Surface model\>Sfbdparadata(name,form,options)\\ +Hidden-line wireframe model \>Wireparadata(name,PD,form,n1,n2,options) +\end{tabbing} + +However, in order to do hidden line processing, surface data is necessary, so after drawing with Sfbdparadata (), draw hidden lines with ireparadata (). + +Also, in the drawing of the surface model, it takes time to process the hidden line, so it is assumed to use the C language. Therefore, ExeccmdC () which draws using C language is used together. + + \begin{center} \input{Fig/surfacemodel} \end{center} + +The form of the argument is an equation and a list of character strings for the domain of the variable. There are three patterns of equations as follows. + +\vspace{\baselineskip} +(1) $z=f(x,y)$ + + \hspace{5mm} 【Example】formula : $z=x^2-y^2$ + + \hspace{15mm} range : $x=(-2,2) , y=(-2,2)$ + +(2) $z=f(x,y),x=g(r,t),y=h(r,t)$ + + \hspace{5mm} 【Example】formula : $z=4-(x^2+y^2) , x=r\cos t , y=r\sin t$ + +\hspace{15mm} range : $r=(0,2) , t=(0,2\pi)$ + +(3) $x=f(u,v),y=g(u,v),z=h(u,v),$ + +\hspace{5mm} 【Example】formula : $x=2\sin u \cos v , y=2\sin u \sin v , z=2\cos u $ + +\hspace{15mm} range : $u=(0,\pi) , v=(0,2\pi)$ + +\vspace{\baselineskip} + +Here, (2) and (3) are parametric types, each consisting of expressions of $ x, y, z $ and two domain of parametric variables. Since it is indistinguishable as it is, when giving it as an argument, "p" is added to the type of (3) as the identification character at the beginning. + +Regarding the domain of definition, there are cases where it is taken in the open section and in the closed section. The distinction is indicated by "ewsn" as boundary designation (both are closed segments). I think the meaning of "ewsn" as follows. + +\vspace{\baselineskip} +For variable $u,v$ , $a \leq u \leq b,c \leq v \leq d$ + + \begin{center} \input{Fig/ewsn} \end{center} + +This boundary designation is added at the end, but it can be omitted, and if omitted, it is the initial value "ewsn" (closed interval). + +To make both open segments, add "". However, do not perform hidden line processing +Sf3data () draws a line also on the boundary, so you can omit this specification. + +\vspace{\baselineskip} +\verb|fd=["p","x=r*cos(t)","y=r*sin(t)","z=2*(2-r)","r=[1,2]","t=[0,2*pi]","ew"]| + +\vspace{\baselineskip} +If this is "e", $ 1