phpservermon/static/plugin/excanvas.min.js

4 lines
18 KiB
JavaScript

/**
* https://github.com/GerHobbelt/excanvas
*/
document.createElement("canvas").getContext||function(){var e=Math,t=e.round,i=e.sin,n=e.cos,r=e.abs,a=e.sqrt,s=10,l=s/2;navigator.userAgent.match(/MSIE ([\d.]+)?/)[1];function o(){return this.context_||(this.context_=new R(this))}var h=Array.prototype.slice;function c(e){return String(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}function u(e,t,i){e.namespaces[t]||e.namespaces.add(t,i,"#default#VML")}function d(e){if(u(e,"g_vml_","urn:schemas-microsoft-com:vml"),u(e,"g_o_","urn:schemas-microsoft-com:office:office"),!e.styleSheets.ex_canvas_){var t=e.createStyleSheet();t.owningElement.id="ex_canvas_",t.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}d(document);var f={init:function(e){var t=e||document;t.createElement("canvas"),t.attachEvent("onreadystatechange",function(e,t,i){var n=h.call(arguments,2);return function(){return e.apply(t,n.concat(h.call(arguments)))}}(this.init_,this,t))},init_:function(e){for(var t=e.getElementsByTagName("canvas"),i=0;i<t.length;i++)this.initElement(t[i])},initElement:function(e){if(!e.getContext){e.getContext=o,d(e.ownerDocument),e.innerHTML="",e.attachEvent("onpropertychange",p),e.attachEvent("onresize",_);var t=e.attributes;t.width&&t.width.specified?e.style.width=t.width.nodeValue+"px":e.width=e.clientWidth,t.height&&t.height.specified?e.style.height=t.height.nodeValue+"px":e.height=e.clientHeight}return e},uninitElement:function(e){if(e.getContext){var t=e.getContext();delete t.element_,delete t.canvas,e.innerHTML="",e.context_=null,e.getContext=null,e.detachEvent("onpropertychange",p),e.detachEvent("onresize",_)}}};function p(e){var t=e.srcElement;switch(e.propertyName){case"width":t.getContext().clearRect(),t.style.width=t.attributes.width.nodeValue+"px",t.firstChild.style.width=t.clientWidth+"px";break;case"height":t.getContext().clearRect(),t.style.height=t.attributes.height.nodeValue+"px",t.firstChild.style.height=t.clientHeight+"px"}}function _(e){var t=e.srcElement;t.firstChild&&(t.firstChild.style.width=t.clientWidth+"px",t.firstChild.style.height=t.clientHeight+"px")}f.init();for(var y=[],g=0;g<16;g++)for(var m=0;m<16;m++)y[16*g+m]=g.toString(16)+m.toString(16);function x(e,t){for(var i=[[1,0,0],[0,1,0],[0,0,1]],n=0;n<3;n++)for(var r=0;r<3;r++){for(var a=0,s=0;s<3;s++)a+=e[n][s]*t[s][r];i[n][r]=a}return i}function F(e,t){t.fillStyle=e.fillStyle,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.lineWidth=e.lineWidth,t.miterLimit=e.miterLimit,t.shadowBlur=e.shadowBlur,t.shadowColor=e.shadowColor,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY,t.strokeStyle=e.strokeStyle,t.globalAlpha=e.globalAlpha,t.font=e.font,t.textAlign=e.textAlign,t.textBaseline=e.textBaseline,t.arcScaleX_=e.arcScaleX_,t.arcScaleY_=e.arcScaleY_,t.lineScale_=e.lineScale_}var v={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"};function E(e){var t=e.indexOf("(",3),i=e.indexOf(")",t+1),n=e.substring(t+1,i).split(",");return 4==n.length&&"a"==e.charAt(3)||(n[3]=1),n}function A(e){return parseFloat(e)/100}function w(e,t,i){return Math.min(i,Math.max(t,e))}function C(e,t,i){return i<0&&i++,i>1&&i--,6*i<1?e+6*(t-e)*i:2*i<1?t:3*i<2?e+(t-e)*(2/3-i)*6:e}var b={};function D(e){if(e in b)return b[e];var t=1;if("#"==(e=String(e)).charAt(0))r=e;else if(/^rgb/.test(e)){for(var i,n=E(e),r="#",a=0;a<3;a++)i=-1!=n[a].indexOf("%")?Math.floor(255*A(n[a])):+n[a],r+=y[w(i,0,255)];t=+n[3]}else if(/^hsl/.test(e)){r=function(e){var t,i,n,r,a,s;if((r=parseFloat(e[0])/360%360)<0&&r++,a=w(A(e[1]),0,1),s=w(A(e[2]),0,1),0==a)t=i=n=s;else{var l=s<.5?s*(1+a):s+a-s*a,o=2*s-l;t=C(o,l,r+1/3),i=C(o,l,r),n=C(o,l,r-1/3)}return"#"+y[Math.floor(255*t)]+y[Math.floor(255*i)]+y[Math.floor(255*n)]}(n=E(e)),t=n[3]}else r=v[e]||e;return b[e]={color:r,alpha:t}}var S={style:"normal",variant:"normal",weight:"normal",size:10,family:"sans-serif"},k={};var T={butt:"flat",round:"round"};function R(e){this.m_=[[1,0,0],[0,1,0],[0,0,1]],this.mStack_=[],this.aStack_=[],this.currentPath_=[],this.strokeStyle="#000",this.fillStyle="#000",this.lineWidth=1,this.lineJoin="miter",this.lineCap="butt",this.miterLimit=1*s,this.globalAlpha=1,this.font="10px sans-serif",this.textAlign="left",this.textBaseline="alphabetic",this.canvas=e;var t="width:"+e.clientWidth+"px;height:"+e.clientHeight+"px;overflow:hidden;position:absolute",i=e.ownerDocument.createElement("div");i.style.cssText=t,e.appendChild(i);var n=i.cloneNode(!1);n.style.backgroundColor="red",n.style.filter="alpha(opacity=0)",e.appendChild(n),this.element_=i,this.arcScaleX_=1,this.arcScaleY_=1,this.lineScale_=1}var B=R.prototype;function M(e,t,i,n){e.currentPath_.push({type:"bezierCurveTo",cp1x:t.x,cp1y:t.y,cp2x:i.x,cp2y:i.y,x:n.x,y:n.y}),e.currentX_=n.x,e.currentY_=n.y}function z(e,t){var i,n=D(e.strokeStyle),r=n.color,a=n.alpha*e.globalAlpha,s=e.lineScale_*e.lineWidth;s<1&&(a*=s),t.push("<g_vml_:stroke",' opacity="',a,'"',' joinstyle="',e.lineJoin,'"',' miterlimit="',e.miterLimit,'"',' endcap="',(i=e.lineCap,T[i]||"square"),'"',' weight="',s,'px"',' color="',r,'" />')}function I(t,i,n,r){var a=t.fillStyle,l=t.arcScaleX_,o=t.arcScaleY_,h=r.x-n.x,c=r.y-n.y;if(a instanceof N){var u=0,d={x:0,y:0},f=0,p=1;if("gradient"==a.type_){var _=a.x0_/l,y=a.y0_/o,g=a.x1_/l,m=a.y1_/o,x=O(t,_,y),F=O(t,g,m),v=F.x-x.x,E=F.y-x.y;(u=180*Math.atan2(v,E)/Math.PI)<0&&(u+=360),u<1e-6&&(u=0)}else{d={x:((x=O(t,a.x0_,a.y0_)).x-n.x)/h,y:(x.y-n.y)/c},h/=l*s,c/=o*s;var A=e.max(h,c);f=2*a.r0_/A,p=2*a.r1_/A-f}var w=a.colors_;w.sort(function(e,t){return e.offset-t.offset});for(var C=w.length,b=w[0].color,S=w[C-1].color,k=w[0].alpha*t.globalAlpha,T=w[C-1].alpha*t.globalAlpha,R=[],B=0;B<C;B++){var M=w[B];R.push(M.offset*p+f+" "+M.color)}i.push('<g_vml_:fill type="',a.type_,'"',' method="none" focus="100%"',' color="',b,'"',' color2="',S,'"',' colors="',R.join(","),'"',' opacity="',T,'"',' g_o_:opacity2="',k,'"',' angle="',u,'"',' focusposition="',d.x,",",d.y,'" />')}else if(a instanceof L){if(h&&c){var z=-n.x,I=-n.y;i.push("<g_vml_:fill",' position="',z/h*l*l,",",I/c*o*o,'"',' type="tile"',' src="',a.src_,'" />')}}else{var P=D(t.fillStyle),Y=P.color,X=P.alpha*t.globalAlpha;i.push('<g_vml_:fill color="',Y,'" opacity="',X,'" />')}}function O(e,t,i){var n=e.m_;return{x:s*(t*n[0][0]+i*n[1][0]+n[2][0])-l,y:s*(t*n[0][1]+i*n[1][1]+n[2][1])-l}}function P(e,t,i){var n;if((n=t,isFinite(n[0][0])&&isFinite(n[0][1])&&isFinite(n[1][0])&&isFinite(n[1][1])&&isFinite(n[2][0])&&isFinite(n[2][1]))&&(e.m_=t,i)){var s=t[0][0]*t[1][1]-t[0][1]*t[1][0];e.lineScale_=a(r(s))}}function N(e){this.type_=e,this.x0_=0,this.y0_=0,this.r0_=0,this.x1_=0,this.y1_=0,this.r1_=0,this.colors_=[]}function L(e,t){switch(function(e){e&&1==e.nodeType&&"IMG"==e.tagName||Y("TYPE_MISMATCH_ERR");"complete"!=e.readyState&&Y("INVALID_STATE_ERR")}(e),t){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=t;break;default:Y("SYNTAX_ERR")}this.src_=e.src,this.width_=e.width,this.height_=e.height}function Y(e){throw new X(e)}function X(e){this.code=this[e],this.message=e+": DOM Exception "+this.code}B.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null),this.element_.innerHTML=""},B.beginPath=function(){this.currentPath_=[]},B.moveTo=function(e,t){var i=O(this,e,t);this.currentPath_.push({type:"moveTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},B.lineTo=function(e,t){var i=O(this,e,t);this.currentPath_.push({type:"lineTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},B.bezierCurveTo=function(e,t,i,n,r,a){var s=O(this,r,a);M(this,O(this,e,t),O(this,i,n),s)},B.quadraticCurveTo=function(e,t,i,n){var r=O(this,e,t),a=O(this,i,n),s={x:this.currentX_+2/3*(r.x-this.currentX_),y:this.currentY_+2/3*(r.y-this.currentY_)};M(this,s,{x:s.x+(a.x-this.currentX_)/3,y:s.y+(a.y-this.currentY_)/3},a)},B.arc=function(e,t,r,a,o,h){r*=s;var c=h?"at":"wa",u=e+n(a)*r-l,d=t+i(a)*r-l,f=e+n(o)*r-l,p=t+i(o)*r-l;u!=f||h||(u+=.125);var _=O(this,e,t),y=O(this,u,d),g=O(this,f,p);this.currentPath_.push({type:c,x:_.x,y:_.y,radius:r,xStart:y.x,yStart:y.y,xEnd:g.x,yEnd:g.y})},B.rect=function(e,t,i,n){this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath()},B.strokeRect=function(e,t,i,n){var r=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.stroke(),this.currentPath_=r},B.fillRect=function(e,t,i,n){var r=this.currentPath_;this.beginPath(),this.moveTo(e,t),this.lineTo(e+i,t),this.lineTo(e+i,t+n),this.lineTo(e,t+n),this.closePath(),this.fill(),this.currentPath_=r},B.createLinearGradient=function(e,t,i,n){var r=new N("gradient");return r.x0_=e,r.y0_=t,r.x1_=i,r.y1_=n,r},B.createRadialGradient=function(e,t,i,n,r,a){var s=new N("gradientradial");return s.x0_=e,s.y0_=t,s.r0_=i,s.x1_=n,s.y1_=r,s.r1_=a,s},B.drawImage=function(i,n){var r,a,l,o,h,c,u,d,f=i.runtimeStyle.width,p=i.runtimeStyle.height;i.runtimeStyle.width="auto",i.runtimeStyle.height="auto";var _=i.width,y=i.height;if(i.runtimeStyle.width=f,i.runtimeStyle.height=p,3==arguments.length)r=arguments[1],a=arguments[2],h=c=0,u=l=_,d=o=y;else if(5==arguments.length)r=arguments[1],a=arguments[2],l=arguments[3],o=arguments[4],h=c=0,u=_,d=y;else{if(9!=arguments.length)throw Error("Invalid number of arguments");h=arguments[1],c=arguments[2],u=arguments[3],d=arguments[4],r=arguments[5],a=arguments[6],l=arguments[7],o=arguments[8]}var g=O(this,r,a),m=[];if(m.push(" <g_vml_:group",' coordsize="',10*s,",",10*s,'"',' coordorigin="0,0"',' style="width:',10,"px;height:",10,"px;position:absolute;"),1!=this.m_[0][0]||this.m_[0][1]||1!=this.m_[1][1]||this.m_[1][0]){var x=[];x.push("M11=",this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",t(g.x/s),",","Dy=",t(g.y/s),"");var F=g,v=O(this,r+l,a),E=O(this,r,a+o),A=O(this,r+l,a+o);F.x=e.max(F.x,v.x,E.x,A.x),F.y=e.max(F.y,v.y,E.y,A.y),m.push("padding:0 ",t(F.x/s),"px ",t(F.y/s),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",x.join(""),", sizingmethod='clip');")}else m.push("top:",t(g.y/s),"px;left:",t(g.x/s),"px;");m.push(' ">','<g_vml_:image src="',i.src,'"',' style="width:',s*l,"px;"," height:",s*o,'px"',' cropleft="',h/_,'"',' croptop="',c/y,'"',' cropright="',(_-h-u)/_,'"',' cropbottom="',(y-c-d)/y,'"'," />","</g_vml_:group>"),this.element_.insertAdjacentHTML("BeforeEnd",m.join(""))},B.stroke=function(e){var i=[];i.push("<g_vml_:shape",' filled="',!!e,'"',' style="position:absolute;width:',10,"px;height:",10,'px;"',' coordorigin="0,0"',' coordsize="',10*s,",",10*s,'"',' stroked="',!e,'"',' path="');for(var n={x:null,y:null},r={x:null,y:null},a=0;a<this.currentPath_.length;a++){var l=this.currentPath_[a];switch(l.type){case"moveTo":l,i.push(" m ",t(l.x),",",t(l.y));break;case"lineTo":i.push(" l ",t(l.x),",",t(l.y));break;case"close":i.push(" x "),l=null;break;case"bezierCurveTo":i.push(" c ",t(l.cp1x),",",t(l.cp1y),",",t(l.cp2x),",",t(l.cp2y),",",t(l.x),",",t(l.y));break;case"at":case"wa":i.push(" ",l.type," ",t(l.x-this.arcScaleX_*l.radius),",",t(l.y-this.arcScaleY_*l.radius)," ",t(l.x+this.arcScaleX_*l.radius),",",t(l.y+this.arcScaleY_*l.radius)," ",t(l.xStart),",",t(l.yStart)," ",t(l.xEnd),",",t(l.yEnd))}l&&((null==n.x||l.x<n.x)&&(n.x=l.x),(null==r.x||l.x>r.x)&&(r.x=l.x),(null==n.y||l.y<n.y)&&(n.y=l.y),(null==r.y||l.y>r.y)&&(r.y=l.y))}i.push(' ">'),e?I(this,i,n,r):z(this,i),i.push("</g_vml_:shape>"),this.element_.insertAdjacentHTML("beforeEnd",i.join(""))},B.fill=function(){this.stroke(!0)},B.closePath=function(){this.currentPath_.push({type:"close"})},B.save=function(){var e={};F(this,e),this.aStack_.push(e),this.mStack_.push(this.m_),this.m_=x([[1,0,0],[0,1,0],[0,0,1]],this.m_)},B.restore=function(){this.aStack_.length&&(F(this.aStack_.pop(),this),this.m_=this.mStack_.pop())},B.translate=function(e,t){P(this,x([[1,0,0],[0,1,0],[e,t,1]],this.m_),!1)},B.rotate=function(e){var t=n(e),r=i(e);P(this,x([[t,r,0],[-r,t,0],[0,0,1]],this.m_),!1)},B.scale=function(e,t){this.arcScaleX_*=e,this.arcScaleY_*=t,P(this,x([[e,0,0],[0,t,0],[0,0,1]],this.m_),!0)},B.transform=function(e,t,i,n,r,a){P(this,x([[e,t,0],[i,n,0],[r,a,1]],this.m_),!0)},B.setTransform=function(e,t,i,n,r,a){P(this,[[e,t,0],[i,n,0],[r,a,1]],!0)},B.drawText_=function(e,i,n,r,a){var l,o=this.m_,h=0,u=1e3,d={x:0,y:0},f=[],p=function(e,t){var i={};for(var n in e)i[n]=e[n];var r=parseFloat(t.currentStyle.fontSize),a=parseFloat(e.size);return"number"==typeof e.size?i.size=e.size:-1!=e.size.indexOf("px")?i.size=a:-1!=e.size.indexOf("em")?i.size=r*a:-1!=e.size.indexOf("%")?i.size=r/100*a:-1!=e.size.indexOf("pt")?i.size=a/.75:i.size=r,i.size*=.981,i.family="'"+i.family.replace(/(\'|\")/g,"").replace(/\s*,\s*/g,"', '")+"'",i}(function(e){if(k[e])return k[e];var t=document.createElement("div").style;try{t.font=e}catch(e){}return k[e]={style:t.fontStyle||S.style,variant:t.fontVariant||S.variant,weight:t.fontWeight||S.weight,size:t.fontSize||S.size,family:t.fontFamily||S.family}}(this.font),this.element_),_=(l=p).style+" "+l.variant+" "+l.weight+" "+l.size+"px "+l.family,y=this.element_.currentStyle,g=this.textAlign.toLowerCase();switch(g){case"left":case"center":case"right":break;case"end":g="ltr"==y.direction?"right":"left";break;case"start":g="rtl"==y.direction?"right":"left";break;default:g="left"}switch(this.textBaseline){case"hanging":case"top":d.y=p.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":d.y=-p.size/2.25}switch(g){case"right":h=1e3,u=.05;break;case"center":h=u=500}var m=O(this,i+d.x,n+d.y);f.push('<g_vml_:line from="',-h,' 0" to="',u,' 0.05" ',' coordsize="100 100" coordorigin="0 0"',' filled="',!a,'" stroked="',!!a,'" style="position:absolute;width:1px;height:1px;">'),a?z(this,f):I(this,f,{x:-h,y:0},{x:u,y:p.size});var x=o[0][0].toFixed(3)+","+o[1][0].toFixed(3)+","+o[0][1].toFixed(3)+","+o[1][1].toFixed(3)+",0,0",F=t(m.x/s+1-o[0][0])+","+t(m.y/s-2*o[1][0]);f.push('<g_vml_:skew on="t" matrix="',x,'" ',' offset="',F,'" origin="',h,' 0" />','<g_vml_:path textpathok="true" />','<g_vml_:textpath on="true" string="',c(e),'" style="v-text-align:',g,";font:",c(_),'" /></g_vml_:line>'),this.element_.insertAdjacentHTML("beforeEnd",f.join(""))},B.fillText=function(e,t,i,n){this.drawText_(e,t,i,n,!1)},B.strokeText=function(e,t,i,n){this.drawText_(e,t,i,n,!0)},B.measureText=function(e){if(!this.textMeasureEl_){this.element_.insertAdjacentHTML("beforeEnd",'<span style="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;"></span>'),this.textMeasureEl_=this.element_.lastChild}var t=this.element_.ownerDocument;return this.textMeasureEl_.innerHTML="",this.textMeasureEl_.style.font=this.font,this.textMeasureEl_.appendChild(t.createTextNode(e)),{width:this.textMeasureEl_.offsetWidth}},B.clip=function(){},B.arcTo=function(){},B.createPattern=function(e,t){return new L(e,t)},N.prototype.addColorStop=function(e,t){t=D(t),this.colors_.push({offset:e,color:t.color,alpha:t.alpha})};var H=X.prototype=new Error;H.INDEX_SIZE_ERR=1,H.DOMSTRING_SIZE_ERR=2,H.HIERARCHY_REQUEST_ERR=3,H.WRONG_DOCUMENT_ERR=4,H.INVALID_CHARACTER_ERR=5,H.NO_DATA_ALLOWED_ERR=6,H.NO_MODIFICATION_ALLOWED_ERR=7,H.NOT_FOUND_ERR=8,H.NOT_SUPPORTED_ERR=9,H.INUSE_ATTRIBUTE_ERR=10,H.INVALID_STATE_ERR=11,H.SYNTAX_ERR=12,H.INVALID_MODIFICATION_ERR=13,H.NAMESPACE_ERR=14,H.INVALID_ACCESS_ERR=15,H.VALIDATION_ERR=16,H.TYPE_MISMATCH_ERR=17,G_vmlCanvasManager=f,CanvasRenderingContext2D=R,CanvasGradient=N,CanvasPattern=L,DOMException=X,G_vmlCanvasManager._version=888}();