!function(a,b,c){function d(a,b,c,d,e,f,g,h,i){return{x:.5*((-a+3*c-3*e+g)*i*i*i+(2*a-5*c+4*e-g)*i*i+(-a+e)*i+2*c),y:.5*((-b+3*d-3*f+h)*i*i*i+(2*b-5*d+4*f-h)*i*i+(-b+f)*i+2*d)}}function e(a){return function(b){return this.argument(a,b)}}function f(a,b){for(var c=[],d=a.length;b1&&(e=1);var f=this.pointAt(d),g=this.pointAt(e);return 180*Math.atan2(g.y-f.y,g.x-f.x)/Math.PI},normalAt:function(a,b){return this.tangentAt(a,b)-90},nearest:function(a,b,d){d===c&&(d=s.detail);for(var e,f,g,h=1/0,i=0;i<=d;i++)e=this.pointAt(i/d),g=Math.sqrt(Math.pow(e.x-a,2)+Math.pow(e.y-b,2)),gf&&(f=b.x),b.y>g&&(g=b.y);return new B(d,e,f-d,g-e)},curvature:function(){return null}}),A(s.curves.moveTo,{length:null}),A(s.curves.lineTo,{pointAt:function(a){var b=this.from(),c=this._arguments;return{x:(1-a)*b[0]+a*c[0],y:(1-a)*b[1]+a*c[1]}},tangentAt:function(){var a=this.from(),b=this._arguments;return 180*Math.atan2(b[1]-a[1],b[0]-a[0])/Math.PI},length:function(){var a=this.from(),b=this._arguments;return Math.sqrt(Math.pow(b[1]-a[1],2)+Math.pow(b[0]-a[0],2))},curvature:function(){return 0},divide:function(a){return[]},solve:function(a){if("t"in a)throw new Error("Use pointAt(t) function instead solve.")}}),A(s.curves.quadraticCurveTo,{params:function(){var a=this.from(),b=this._arguments;return{x1:a[0],y1:a[1],x2:b[2],y2:b[3],hx:b[0],hy:b[1]}},pointAt:function(a){var b=this.params(),c=1-a;return{x:c*c*b.x1+2*a*c*b.hx+a*a*b.x2,y:c*c*b.y1+2*a*c*b.hy+a*a*b.y2}},tangentAt:function(a){var b=this.params(),c=1-a;return Math.atan2(-2*b.y1*c+2*b.hy*(1-2*a)+2*b.y2*a,-2*b.x1*c+2*b.hx*(1-2*a)+2*b.x2*a)/Math.PI*180},toCubic:function(a){a===c&&(a=2/3);var b=this.params();return this.name="bezierCurveTo",this._arguments=[b.x1+a*(b.hx-b.x1),b.y1+a*(b.hy-b.y1),b.x2+a*(b.hx-b.x2),b.y2+a*(b.hy-b.y2),b.x2,b.y2],A(this,s.curves.bezierCurveTo),this}}),A(s.curves.bezierCurveTo,{params:function(){var a=this.from(),b=this._arguments;return{x1:a[0],y1:a[1],x2:b[4],y2:b[5],h1x:b[0],h1y:b[1],h2x:b[2],h2y:b[3]}},pointAt:function(a){var b=this.params(),c=1-a;return{x:c*c*c*b.x1+3*a*c*c*b.h1x+3*a*a*c*b.h2x+a*a*a*b.x2,y:c*c*c*b.y1+3*a*c*c*b.h1y+3*a*a*c*b.h2y+a*a*a*b.y2}},tangentAt:function(a){var b=this.params(),c=1-a;return Math.atan2(-3*b.y1*c*c+3*b.h1y*(c*c-2*a*c)+3*b.h2y*(2*a*c-a*a)+3*a*a*b.y2,-3*b.x1*c*c+3*b.h1x*(c*c-2*a*c)+3*b.h2x*(2*a*c-a*a)+3*a*a*b.x2)/Math.PI*180}}),A(s.curves.arc,{params:function(){var a=this.from(),b=this._arguments;return{x1:a[0],y1:a[1],x2:b[0],y2:b[1],radius:b[2],start:b[3],end:b[4],clockwise:b[5]}},pointAt:function(){var a=this.params();return a}}),s.prototype.visible=!0,s.prototype._special=!1,s.prototype.hide=function(){this.visible=!1},s.prototype.show=function(){this.visible=!0},s.prototype.fill=function(a,b){return b?this.fill:this.fill=a,this._special=!0,this.update()},s.prototype.draw=function(a){if(this.visible){var b=this.from();a.save(),a.beginPath(),a.moveTo(b[0],b[1]),this.process(a),a.stroke(),a.restore()}},t.prototype.processPath=function(a){var b,c=[0,0],d=this._curves,e=[],f=0;for(a.beginPath();f1&&(c-=1),6*c<1?a+6*(b-a)*c:2*c<1?b:3*c<2?a+(b-a)*(2/3-c)*6:a}var e,f;return 0===b?{r:255*c,g:255*c,b:255*c}:(f=c<.5?c*(1+b):c+b-b*c,e=2*c-f,{r:255*d(e,f,a+1/3),g:255*d(e,f,a),b:255*d(e,f,a-1/3)})},to:function(a,b,c){a/=255,b/=255,c/=255;var d,e,f,g,h,i=Math.min(a,b,c),j=Math.max(a,b,c),k=j-i,l=(j+i)/2;return 0===k?{h:0,s:0,l:100*l}:(e=l<.5?k/(j+i):k/(2-j-i),f=((j-a)/6+k/2)/k,g=((j-b)/6+k/2)/k,h=((j-c)/6+k/2)/k,a===j?d=h-g:b===j?d=1/3+f-h:c===j&&(d=2/3+g-f),d<0?d+=1:d>1&&(d-=1),{h:360*d,s:100*e,l:100*l})},round:!0,period:[360,0,0]},xyz:{from:function(a,b,c){a/=100,b/=100,c/=100;var d=3.2406*a-1.5372*b-.4986*c,e=.9689*-a+1.8758*b+.0415*c,f=.0557*a-.204*b+1.057*c;return d>.0031308?d=1.055*(d^1/2.4)-.055:d*=12.92,e>.0031308?e=1.055*(e^1/2.4)-.055:e*=12.92,f>.0031308?f=1.055*(f^1/2.4)-.055:f*=12.92,{r:255*d,g:255*e,b:255*f}}}}}("undefined"!=typeof window?window:this,Graphics2D);