@syngrisi/syngrisi
Version:
Syngrisi - Visual Testing Tool
3 lines • 446 kB
JavaScript
var Jt=Object.defineProperty;var a=(x,h)=>Jt(x,"name",{value:h,configurable:!0});import{c as xe,p as Be,d as we,c9 as Zt,l as fe,r as ie,j as v,G as ne,N as Xe,u as at,a as ot,x as It,P as Ae,T as re,V as Ft,K as ve,m as Rt,D as Me,O as Ve,y as lt,h as Oe,k as Lt,A as ei,b as tt,q as ti,B as Ie,R as ii,e as ni}from"./http-CC8JzV-G.js";import{j as be,k as Fe,ca as ri,G as ze,S as pe,m as si,T as ge,Y as ai,N as ke,f as oi,n as li,q as hi,b as it,w as ci,I as ui,d as Le,c as mt,P as ct,K as Te,a2 as fi,b5 as Pe,a6 as di,M as Bt,h as vt,cb as gi,E as zt,W as mi,cc as vi,Q as Ct,c4 as pi,cd as yi,ce as xi,i as Ye}from"./LogicalGroup-qEd2Ojyr.js";import{u as ht,V as Wt,s as Xt,I as Ci,O as Yt,B as Nt,S as pt,P as _i,b as bi,f as St,p as Tt,c as Ht,d as wi,A as Si,R as Ti,e as Oi}from"./root-DAUh68CU.js";import{B as ki,d as ji,I as nt,T as Ne,A as Ee}from"./IconAlertTriangle-1gFtSaOu.js";import{C as Vt}from"./Center-CHBiBbZO.js";const Pi=[["path",{d:"M20 11a8.1 8.1 0 0 0 -6.986 -6.918a8.095 8.095 0 0 0 -8.019 3.918",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15 3",key:"svg-1"}],["path",{d:"M18 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}],["path",{d:"M4 8a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-3"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",key:"svg-4"}]],Mi=xe("outline","analyze","Analyze",Pi);const Ei=[["path",{d:"M17 10h-14l4 -4",key:"svg-0"}],["path",{d:"M7 14h14l-4 4",key:"svg-1"}]],Di=xe("outline","arrows-exchange-2","ArrowsExchange2",Ei);const Ai=[["path",{d:"M18 9l3 3l-3 3",key:"svg-0"}],["path",{d:"M15 12h6",key:"svg-1"}],["path",{d:"M6 9l-3 3l3 3",key:"svg-2"}],["path",{d:"M3 12h6",key:"svg-3"}],["path",{d:"M9 18l3 3l3 -3",key:"svg-4"}],["path",{d:"M12 15v6",key:"svg-5"}],["path",{d:"M15 6l-3 -3l-3 3",key:"svg-6"}],["path",{d:"M12 3v6",key:"svg-7"}]],Ii=xe("outline","arrows-move","ArrowsMove",Ai);const Fi=[["path",{d:"M8 8h8v8h-8l0 -8",key:"svg-0"}],["path",{d:"M4 4v.01",key:"svg-1"}],["path",{d:"M8 4v.01",key:"svg-2"}],["path",{d:"M12 4v.01",key:"svg-3"}],["path",{d:"M16 4v.01",key:"svg-4"}],["path",{d:"M20 4v.01",key:"svg-5"}],["path",{d:"M4 20v.01",key:"svg-6"}],["path",{d:"M8 20v.01",key:"svg-7"}],["path",{d:"M12 20v.01",key:"svg-8"}],["path",{d:"M16 20v.01",key:"svg-9"}],["path",{d:"M20 20v.01",key:"svg-10"}],["path",{d:"M20 16v.01",key:"svg-11"}],["path",{d:"M20 12v.01",key:"svg-12"}],["path",{d:"M20 8v.01",key:"svg-13"}],["path",{d:"M4 16v.01",key:"svg-14"}],["path",{d:"M4 12v.01",key:"svg-15"}],["path",{d:"M4 8v.01",key:"svg-16"}]],Ri=xe("outline","box-margin","BoxMargin",Fi);const Li=[["path",{d:"M8 8h8v8h-8l0 -8",key:"svg-0"}],["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-1"}],["path",{d:"M16 16l3.3 3.3",key:"svg-2"}],["path",{d:"M16 8l3.3 -3.3",key:"svg-3"}],["path",{d:"M8 8l-3.3 -3.3",key:"svg-4"}],["path",{d:"M8 16l-3.3 3.3",key:"svg-5"}]],Bi=xe("outline","box-model","BoxModel",Li);const zi=[["path",{d:"M3 12h1m8 -9v1m8 8h1m-15.4 -6.4l.7 .7m12.1 -.7l-.7 .7",key:"svg-0"}],["path",{d:"M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0 -1 3a2 2 0 0 1 -4 0a3.5 3.5 0 0 0 -1 -3",key:"svg-1"}],["path",{d:"M9.7 17l4.6 0",key:"svg-2"}]],Wi=xe("outline","bulb","Bulb",zi);const Xi=[["path",{d:"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12",key:"svg-0"}],["path",{d:"M16 3v4",key:"svg-1"}],["path",{d:"M8 3v4",key:"svg-2"}],["path",{d:"M4 11h16",key:"svg-3"}],["path",{d:"M11 15h1",key:"svg-4"}],["path",{d:"M12 15v3",key:"svg-5"}]],Yi=xe("outline","calendar","Calendar",Xi);const Ni=[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]],Hi=xe("outline","chevron-left","ChevronLeft",Ni);const Vi=[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]],Ui=xe("outline","chevron-right","ChevronRight",Vi);const Gi=[["path",{d:"M6 15l6 -6l6 6",key:"svg-0"}]],$i=xe("outline","chevron-up","ChevronUp",Gi);const qi=[["path",{d:"M7 8l-4 4l4 4",key:"svg-0"}],["path",{d:"M17 8l4 4l-4 4",key:"svg-1"}],["path",{d:"M14 4l-4 16",key:"svg-2"}]],Ki=xe("outline","code","Code",qi);const Qi=[["path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2",key:"svg-0"}],["path",{d:"M10 14a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M14 4l0 4l-6 0l0 -4",key:"svg-2"}]],Ji=xe("outline","device-floppy","DeviceFloppy",Qi);const Zi=[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]],en=xe("outline","link","Link",Zi);const tn=[["path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4",key:"svg-0"}],["path",{d:"M13.5 6.5l4 4",key:"svg-1"}]],nn=xe("outline","pencil","Pencil",tn);const rn=[["path",{d:"M16 17a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M6 7a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M6 18l12 -12",key:"svg-2"}]],sn=xe("outline","percentage","Percentage",rn);const an=[["path",{d:"M17 3l4 4l-14 14l-4 -4l14 -14",key:"svg-0"}],["path",{d:"M16 7l-1.5 -1.5",key:"svg-1"}],["path",{d:"M13 10l-1.5 -1.5",key:"svg-2"}],["path",{d:"M10 13l-1.5 -1.5",key:"svg-3"}],["path",{d:"M7 16l-1.5 -1.5",key:"svg-4"}]],on=xe("outline","ruler-2","Ruler2",an);const ln=[["path",{d:"M3.575 3.597a2 2 0 0 0 2.849 2.808",key:"svg-0"}],["path",{d:"M17 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M3 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-2"}],["path",{d:"M17.574 17.598a2 2 0 0 0 2.826 2.83",key:"svg-3"}],["path",{d:"M5 7v10",key:"svg-4"}],["path",{d:"M9 5h8",key:"svg-5"}],["path",{d:"M7 19h10",key:"svg-6"}],["path",{d:"M19 7v8",key:"svg-7"}],["path",{d:"M3 3l18 18",key:"svg-8"}]],hn=xe("outline","shape-off","ShapeOff",ln);const cn=[["path",{d:"M3 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M17 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M3 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-2"}],["path",{d:"M17 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M5 7l0 10",key:"svg-4"}],["path",{d:"M7 5l10 0",key:"svg-5"}],["path",{d:"M7 19l10 0",key:"svg-6"}],["path",{d:"M19 7l0 10",key:"svg-7"}]],un=xe("outline","shape","Shape",cn);const fn=[["path",{d:"M3 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",key:"svg-0"}],["path",{d:"M15 6a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",key:"svg-1"}],["path",{d:"M15 18a3 3 0 1 0 6 0a3 3 0 1 0 -6 0",key:"svg-2"}],["path",{d:"M8.7 10.7l6.6 -3.4",key:"svg-3"}],["path",{d:"M8.7 13.3l6.6 3.4",key:"svg-4"}]],Ut=xe("outline","share","Share",fn);const dn=[["path",{d:"M12 4v16",key:"svg-0"}],["path",{d:"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14",key:"svg-1"}],["path",{d:"M12 13l7.5 -7.5",key:"svg-2"}],["path",{d:"M12 18l8 -8",key:"svg-3"}],["path",{d:"M15 20l5 -5",key:"svg-4"}],["path",{d:"M12 8l4 -4",key:"svg-5"}]],gn=xe("outline","square-half","SquareHalf",dn);const mn=[["path",{d:"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14",key:"svg-0"}],["path",{d:"M10 16v-6a2 2 0 1 1 4 0v6",key:"svg-1"}],["path",{d:"M10 13h4",key:"svg-2"}]],vn=xe("outline","square-letter-a","SquareLetterA",mn);const pn=[["path",{d:"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14",key:"svg-0"}],["path",{d:"M14 8h-4v8h4",key:"svg-1"}],["path",{d:"M10 12h2.5",key:"svg-2"}]],yn=xe("outline","square-letter-e","SquareLetterE",pn);const xn=[["path",{d:"M4 15h16",key:"svg-0"}],["path",{d:"M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4",key:"svg-1"}],["path",{d:"M4 20h12",key:"svg-2"}]],Cn=xe("outline","text-caption","TextCaption",xn);const _n=[["path",{d:"M6 21l15 -15l-3 -3l-15 15l3 3",key:"svg-0"}],["path",{d:"M15 6l3 3",key:"svg-1"}],["path",{d:"M9 3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2",key:"svg-2"}],["path",{d:"M19 13a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2",key:"svg-3"}]],bn=xe("outline","wand","Wand",_n),wn={async getActualDom({checkId:x,apikey:h,shareToken:y}){if(!x)return null;const b={};h&&(b.apikey=h),y&&(b["x-share-token"]=y);try{const O=await Be.get(`${we.baseUri}/v1/checks/${x}/dom`,{headers:b},"RCAService.getActualDom");if(!O.ok){if(O.status===404)return null;throw new Error(`Failed to fetch DOM snapshot: ${O.status}`)}return O.json()}catch(O){return console.warn("Failed to fetch actual DOM:",O),null}},async getBaselineDom({baselineId:x,apikey:h,shareToken:y}){if(!x)return null;const b={};h&&(b.apikey=h),y&&(b["x-share-token"]=y);try{const O=await Be.get(`${we.baseUri}/v1/baselines/${x}/dom`,{headers:b},"RCAService.getBaselineDom");if(!O.ok){if(O.status===404)return null;throw new Error(`Failed to fetch baseline DOM: ${O.status}`)}return O.json()}catch(O){return console.warn("Failed to fetch baseline DOM:",O),null}},async getDomSnapshots(x){const[h,y]=await Promise.all([this.getActualDom({checkId:x.checkId,apikey:x.apikey,shareToken:x.shareToken}),x.baselineId?this.getBaselineDom({baselineId:x.baselineId,apikey:x.apikey,shareToken:x.shareToken}):Promise.resolve(null)]);return{actual:h,baseline:y}}};var ut={};const Sn={},Tn=Object.freeze(Object.defineProperty({__proto__:null,default:Sn},Symbol.toStringTag,{value:"Module"})),ft=Zt(Tn);var Ot;function On(){return Ot||(Ot=1,(function(x){var h=h||{version:"5.5.2"};if(x.fabric=h,typeof document<"u"&&typeof window<"u")document instanceof(typeof HTMLDocument<"u"?HTMLDocument:Document)?h.document=document:h.document=document.implementation.createHTMLDocument(""),h.window=window;else{var y=ft,b=new y.JSDOM(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;h.document=b.document,h.jsdomImplForWrapper=ft.implForWrapper,h.nodeCanvas=ft.Canvas,h.window=b,DOMParser=h.window.DOMParser}h.isTouchSupported="ontouchstart"in h.window||"ontouchstart"in h.document||h.window&&h.window.navigator&&h.window.navigator.maxTouchPoints>0,h.isLikelyNode=typeof Buffer<"u"&&typeof window>"u",h.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],h.DPI=96,h.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",h.commaWsp="(?:\\s+,?\\s*|,\\s*)",h.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/ig,h.reNonWord=/[ \n\.,;!\?\-]/,h.fontPaths={},h.iMatrix=[1,0,0,1,0,0],h.svgNS="http://www.w3.org/2000/svg",h.perfLimitSizeTotal=2097152,h.maxCacheSideLimit=4096,h.minCacheSideLimit=256,h.charWidthsCache={},h.textureSize=2048,h.disableStyleCopyPaste=!1,h.enableGLFiltering=!0,h.devicePixelRatio=h.window.devicePixelRatio||h.window.webkitDevicePixelRatio||h.window.mozDevicePixelRatio||1,h.browserShadowBlurConstant=1,h.arcToSegmentsCache={},h.boundsOfCurveCache={},h.cachesBoundsOfCurve=!0,h.forceGLPutImageData=!1,h.initFilterBackend=function(){if(h.enableGLFiltering&&h.isWebglSupported&&h.isWebglSupported(h.textureSize))return console.log("max texture size: "+h.maxTextureSize),new h.WebglFilterBackend({tileSize:h.textureSize});if(h.Canvas2dFilterBackend)return new h.Canvas2dFilterBackend},typeof document<"u"&&typeof window<"u"&&(window.fabric=h),(function(){function f(e,i){if(this.__eventListeners[e]){var o=this.__eventListeners[e];i?o[o.indexOf(i)]=!1:h.util.array.fill(o,!1)}}a(f,"_removeEventListener");function s(e,i){if(this.__eventListeners||(this.__eventListeners={}),arguments.length===1)for(var o in e)this.on(o,e[o]);else this.__eventListeners[e]||(this.__eventListeners[e]=[]),this.__eventListeners[e].push(i);return this}a(s,"on");function c(e,i){var o=(function(){i.apply(this,arguments),this.off(e,o)}).bind(this);this.on(e,o)}a(c,"_once");function l(e,i){if(arguments.length===1)for(var o in e)c.call(this,o,e[o]);else c.call(this,e,i);return this}a(l,"once");function t(e,i){if(!this.__eventListeners)return this;if(arguments.length===0)for(e in this.__eventListeners)f.call(this,e);else if(arguments.length===1&&typeof arguments[0]=="object")for(var o in e)f.call(this,o,e[o]);else f.call(this,e,i);return this}a(t,"off");function r(e,i){if(!this.__eventListeners)return this;var o=this.__eventListeners[e];if(!o)return this;for(var n=0,u=o.length;n<u;n++)o[n]&&o[n].call(this,i||{});return this.__eventListeners[e]=o.filter(function(d){return d!==!1}),this}a(r,"fire"),h.Observable={fire:r,on:s,once:l,off:t}})(),h.Collection={_objects:[],add:a(function(){if(this._objects.push.apply(this._objects,arguments),this._onObjectAdded)for(var f=0,s=arguments.length;f<s;f++)this._onObjectAdded(arguments[f]);return this.renderOnAddRemove&&this.requestRenderAll(),this},"add"),insertAt:a(function(f,s,c){var l=this._objects;return c?l[s]=f:l.splice(s,0,f),this._onObjectAdded&&this._onObjectAdded(f),this.renderOnAddRemove&&this.requestRenderAll(),this},"insertAt"),remove:a(function(){for(var f=this._objects,s,c=!1,l=0,t=arguments.length;l<t;l++)s=f.indexOf(arguments[l]),s!==-1&&(c=!0,f.splice(s,1),this._onObjectRemoved&&this._onObjectRemoved(arguments[l]));return this.renderOnAddRemove&&c&&this.requestRenderAll(),this},"remove"),forEachObject:a(function(f,s){for(var c=this.getObjects(),l=0,t=c.length;l<t;l++)f.call(s,c[l],l,c);return this},"forEachObject"),getObjects:a(function(f){return typeof f>"u"?this._objects.concat():this._objects.filter(function(s){return s.type===f})},"getObjects"),item:a(function(f){return this._objects[f]},"item"),isEmpty:a(function(){return this._objects.length===0},"isEmpty"),size:a(function(){return this._objects.length},"size"),contains:a(function(f,s){return this._objects.indexOf(f)>-1?!0:s?this._objects.some(function(c){return typeof c.contains=="function"&&c.contains(f,!0)}):!1},"contains"),complexity:a(function(){return this._objects.reduce(function(f,s){return f+=s.complexity?s.complexity():0,f},0)},"complexity")},h.CommonMethods={_setOptions:a(function(f){for(var s in f)this.set(s,f[s])},"_setOptions"),_initGradient:a(function(f,s){f&&f.colorStops&&!(f instanceof h.Gradient)&&this.set(s,new h.Gradient(f))},"_initGradient"),_initPattern:a(function(f,s,c){f&&f.source&&!(f instanceof h.Pattern)?this.set(s,new h.Pattern(f,c)):c&&c()},"_initPattern"),_setObject:a(function(f){for(var s in f)this._set(s,f[s])},"_setObject"),set:a(function(f,s){return typeof f=="object"?this._setObject(f):this._set(f,s),this},"set"),_set:a(function(f,s){this[f]=s},"_set"),toggle:a(function(f){var s=this.get(f);return typeof s=="boolean"&&this.set(f,!s),this},"toggle"),get:a(function(f){return this[f]},"get")},(function(f){var s=Math.sqrt,c=Math.atan2,l=Math.pow,t=Math.PI/180,r=Math.PI/2;h.util={cos:a(function(e){if(e===0)return 1;e<0&&(e=-e);var i=e/r;switch(i){case 1:case 3:return 0;case 2:return-1}return Math.cos(e)},"cos"),sin:a(function(e){if(e===0)return 0;var i=e/r,o=1;switch(e<0&&(o=-1),i){case 1:return o;case 2:return 0;case 3:return-o}return Math.sin(e)},"sin"),removeFromArray:a(function(e,i){var o=e.indexOf(i);return o!==-1&&e.splice(o,1),e},"removeFromArray"),getRandomInt:a(function(e,i){return Math.floor(Math.random()*(i-e+1))+e},"getRandomInt"),degreesToRadians:a(function(e){return e*t},"degreesToRadians"),radiansToDegrees:a(function(e){return e/t},"radiansToDegrees"),rotatePoint:a(function(e,i,o){var n=new h.Point(e.x-i.x,e.y-i.y),u=h.util.rotateVector(n,o);return new h.Point(u.x,u.y).addEquals(i)},"rotatePoint"),rotateVector:a(function(e,i){var o=h.util.sin(i),n=h.util.cos(i),u=e.x*n-e.y*o,d=e.x*o+e.y*n;return{x:u,y:d}},"rotateVector"),createVector:a(function(e,i){return new h.Point(i.x-e.x,i.y-e.y)},"createVector"),calcAngleBetweenVectors:a(function(e,i){return Math.acos((e.x*i.x+e.y*i.y)/(Math.hypot(e.x,e.y)*Math.hypot(i.x,i.y)))},"calcAngleBetweenVectors"),getHatVector:a(function(e){return new h.Point(e.x,e.y).multiply(1/Math.hypot(e.x,e.y))},"getHatVector"),getBisector:a(function(e,i,o){var n=h.util.createVector(e,i),u=h.util.createVector(e,o),d=h.util.calcAngleBetweenVectors(n,u),g=h.util.calcAngleBetweenVectors(h.util.rotateVector(n,d),u),m=d*(g===0?1:-1)/2;return{vector:h.util.getHatVector(h.util.rotateVector(n,m)),angle:d}},"getBisector"),projectStrokeOnPoints:a(function(e,i,o){var n=[],u=i.strokeWidth/2,d=i.strokeUniform?new h.Point(1/i.scaleX,1/i.scaleY):new h.Point(1,1),g=a(function(m){var p=u/Math.hypot(m.x,m.y);return new h.Point(m.x*p*d.x,m.y*p*d.y)},"getStrokeHatVector");return e.length<=1||e.forEach(function(m,p){var _=new h.Point(m.x,m.y),S,M;p===0?(M=e[p+1],S=o?g(h.util.createVector(M,_)).addEquals(_):e[e.length-1]):p===e.length-1?(S=e[p-1],M=o?g(h.util.createVector(S,_)).addEquals(_):e[0]):(S=e[p-1],M=e[p+1]);var F=h.util.getBisector(_,S,M),H=F.vector,L=F.angle,Z,K;if(i.strokeLineJoin==="miter"&&(Z=-u/Math.sin(L/2),K=new h.Point(H.x*Z*d.x,H.y*Z*d.y),Math.hypot(K.x,K.y)/u<=i.strokeMiterLimit)){n.push(_.add(K)),n.push(_.subtract(K));return}Z=-u*Math.SQRT2,K=new h.Point(H.x*Z*d.x,H.y*Z*d.y),n.push(_.add(K)),n.push(_.subtract(K))}),n},"projectStrokeOnPoints"),transformPoint:a(function(e,i,o){return o?new h.Point(i[0]*e.x+i[2]*e.y,i[1]*e.x+i[3]*e.y):new h.Point(i[0]*e.x+i[2]*e.y+i[4],i[1]*e.x+i[3]*e.y+i[5])},"transformPoint"),makeBoundingBoxFromPoints:a(function(e,i){if(i)for(var o=0;o<e.length;o++)e[o]=h.util.transformPoint(e[o],i);var n=[e[0].x,e[1].x,e[2].x,e[3].x],u=h.util.array.min(n),d=h.util.array.max(n),g=d-u,m=[e[0].y,e[1].y,e[2].y,e[3].y],p=h.util.array.min(m),_=h.util.array.max(m),S=_-p;return{left:u,top:p,width:g,height:S}},"makeBoundingBoxFromPoints"),invertTransform:a(function(e){var i=1/(e[0]*e[3]-e[1]*e[2]),o=[i*e[3],-i*e[1],-i*e[2],i*e[0]],n=h.util.transformPoint({x:e[4],y:e[5]},o,!0);return o[4]=-n.x,o[5]=-n.y,o},"invertTransform"),toFixed:a(function(e,i){return parseFloat(Number(e).toFixed(i))},"toFixed"),parseUnit:a(function(e,i){var o=/\D{0,2}$/.exec(e),n=parseFloat(e);switch(i||(i=h.Text.DEFAULT_SVG_FONT_SIZE),o[0]){case"mm":return n*h.DPI/25.4;case"cm":return n*h.DPI/2.54;case"in":return n*h.DPI;case"pt":return n*h.DPI/72;case"pc":return n*h.DPI/72*12;case"em":return n*i;default:return n}},"parseUnit"),falseFunction:a(function(){return!1},"falseFunction"),getKlass:a(function(e,i){return e=h.util.string.camelize(e.charAt(0).toUpperCase()+e.slice(1)),h.util.resolveNamespace(i)[e]},"getKlass"),getSvgAttributes:a(function(e){var i=["instantiated_by_use","style","id","class"];switch(e){case"linearGradient":i=i.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);break;case"radialGradient":i=i.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);break;case"stop":i=i.concat(["offset","stop-color","stop-opacity"]);break}return i},"getSvgAttributes"),resolveNamespace:a(function(e){if(!e)return h;var i=e.split("."),o=i.length,n,u=f||h.window;for(n=0;n<o;++n)u=u[i[n]];return u},"resolveNamespace"),loadImage:a(function(e,i,o,n){if(!e){i&&i.call(o,e);return}var u=h.util.createImage(),d=a(function(){i&&i.call(o,u,!1),u=u.onload=u.onerror=null},"onLoadCallback");u.onload=d,u.onerror=function(){h.log("Error loading "+u.src),i&&i.call(o,null,!0),u=u.onload=u.onerror=null},e.indexOf("data")!==0&&n!==void 0&&n!==null&&(u.crossOrigin=n),e.substring(0,14)==="data:image/svg"&&(u.onload=null,h.util.loadImageInDom(u,d)),u.src=e},"loadImage"),loadImageInDom:a(function(e,i){var o=h.document.createElement("div");o.style.width=o.style.height="1px",o.style.left=o.style.top="-100%",o.style.position="absolute",o.appendChild(e),h.document.querySelector("body").appendChild(o),e.onload=function(){i(),o.parentNode.removeChild(o),o=null}},"loadImageInDom"),enlivenObjects:a(function(e,i,o,n){e=e||[];var u=[],d=0,g=e.length;function m(){++d===g&&i&&i(u.filter(function(p){return p}))}if(a(m,"onLoaded"),!g){i&&i(u);return}e.forEach(function(p,_){if(!p||!p.type){m();return}var S=h.util.getKlass(p.type,o);S.fromObject(p,function(M,F){F||(u[_]=M),n&&n(p,M,F),m()})})},"enlivenObjects"),enlivenObjectEnlivables:a(function(e,i,o){var n=h.Object.ENLIVEN_PROPS.filter(function(u){return!!e[u]});h.util.enlivenObjects(n.map(function(u){return e[u]}),function(u){var d={};n.forEach(function(g,m){d[g]=u[m],i&&(i[g]=u[m])}),o&&o(d)})},"enlivenObjectEnlivables"),enlivenPatterns:a(function(e,i){e=e||[];function o(){++u===d&&i&&i(n)}a(o,"onLoaded");var n=[],u=0,d=e.length;if(!d){i&&i(n);return}e.forEach(function(g,m){g&&g.source?new h.Pattern(g,function(p){n[m]=p,o()}):(n[m]=g,o())})},"enlivenPatterns"),groupSVGElements:a(function(e,i,o){var n;return e&&e.length===1?(typeof o<"u"&&(e[0].sourcePath=o),e[0]):(i&&(i.width&&i.height?i.centerPoint={x:i.width/2,y:i.height/2}:(delete i.width,delete i.height)),n=new h.Group(e,i),typeof o<"u"&&(n.sourcePath=o),n)},"groupSVGElements"),populateWithProperties:a(function(e,i,o){if(o&&Array.isArray(o))for(var n=0,u=o.length;n<u;n++)o[n]in e&&(i[o[n]]=e[o[n]])},"populateWithProperties"),createCanvasElement:a(function(){return h.document.createElement("canvas")},"createCanvasElement"),copyCanvasElement:a(function(e){var i=h.util.createCanvasElement();return i.width=e.width,i.height=e.height,i.getContext("2d").drawImage(e,0,0),i},"copyCanvasElement"),toDataURL:a(function(e,i,o){return e.toDataURL("image/"+i,o)},"toDataURL"),createImage:a(function(){return h.document.createElement("img")},"createImage"),multiplyTransformMatrices:a(function(e,i,o){return[e[0]*i[0]+e[2]*i[1],e[1]*i[0]+e[3]*i[1],e[0]*i[2]+e[2]*i[3],e[1]*i[2]+e[3]*i[3],o?0:e[0]*i[4]+e[2]*i[5]+e[4],o?0:e[1]*i[4]+e[3]*i[5]+e[5]]},"multiplyTransformMatrices"),qrDecompose:a(function(e){var i=c(e[1],e[0]),o=l(e[0],2)+l(e[1],2),n=s(o),u=(e[0]*e[3]-e[2]*e[1])/n,d=c(e[0]*e[2]+e[1]*e[3],o);return{angle:i/t,scaleX:n,scaleY:u,skewX:d/t,skewY:0,translateX:e[4],translateY:e[5]}},"qrDecompose"),calcRotateMatrix:a(function(e){if(!e.angle)return h.iMatrix.concat();var i=h.util.degreesToRadians(e.angle),o=h.util.cos(i),n=h.util.sin(i);return[o,n,-n,o,0,0]},"calcRotateMatrix"),calcDimensionsMatrix:a(function(e){var i=typeof e.scaleX>"u"?1:e.scaleX,o=typeof e.scaleY>"u"?1:e.scaleY,n=[e.flipX?-i:i,0,0,e.flipY?-o:o,0,0],u=h.util.multiplyTransformMatrices,d=h.util.degreesToRadians;return e.skewX&&(n=u(n,[1,0,Math.tan(d(e.skewX)),1],!0)),e.skewY&&(n=u(n,[1,Math.tan(d(e.skewY)),0,1],!0)),n},"calcDimensionsMatrix"),composeMatrix:a(function(e){var i=[1,0,0,1,e.translateX||0,e.translateY||0],o=h.util.multiplyTransformMatrices;return e.angle&&(i=o(i,h.util.calcRotateMatrix(e))),(e.scaleX!==1||e.scaleY!==1||e.skewX||e.skewY||e.flipX||e.flipY)&&(i=o(i,h.util.calcDimensionsMatrix(e))),i},"composeMatrix"),resetObjectTransform:a(function(e){e.scaleX=1,e.scaleY=1,e.skewX=0,e.skewY=0,e.flipX=!1,e.flipY=!1,e.rotate(0)},"resetObjectTransform"),saveObjectTransform:a(function(e){return{scaleX:e.scaleX,scaleY:e.scaleY,skewX:e.skewX,skewY:e.skewY,angle:e.angle,left:e.left,flipX:e.flipX,flipY:e.flipY,top:e.top}},"saveObjectTransform"),isTransparent:a(function(e,i,o,n){n>0&&(i>n?i-=n:i=0,o>n?o-=n:o=0);var u=!0,d,g,m=e.getImageData(i,o,n*2||1,n*2||1),p=m.data.length;for(d=3;d<p&&(g=m.data[d],u=g<=0,u!==!1);d+=4);return m=null,u},"isTransparent"),parsePreserveAspectRatioAttribute:a(function(e){var i="meet",o="Mid",n="Mid",u=e.split(" "),d;return u&&u.length&&(i=u.pop(),i!=="meet"&&i!=="slice"?(d=i,i="meet"):u.length&&(d=u.pop())),o=d!=="none"?d.slice(1,4):"none",n=d!=="none"?d.slice(5,8):"none",{meetOrSlice:i,alignX:o,alignY:n}},"parsePreserveAspectRatioAttribute"),clearFabricFontCache:a(function(e){e=(e||"").toLowerCase(),e?h.charWidthsCache[e]&&delete h.charWidthsCache[e]:h.charWidthsCache={}},"clearFabricFontCache"),limitDimsByArea:a(function(e,i){var o=Math.sqrt(i*e),n=Math.floor(i/o);return{x:Math.floor(o),y:n}},"limitDimsByArea"),capValue:a(function(e,i,o){return Math.max(e,Math.min(i,o))},"capValue"),findScaleToFit:a(function(e,i){return Math.min(i.width/e.width,i.height/e.height)},"findScaleToFit"),findScaleToCover:a(function(e,i){return Math.max(i.width/e.width,i.height/e.height)},"findScaleToCover"),matrixToSVG:a(function(e){return"matrix("+e.map(function(i){return h.util.toFixed(i,h.Object.NUM_FRACTION_DIGITS)}).join(" ")+")"},"matrixToSVG"),removeTransformFromObject:a(function(e,i){var o=h.util.invertTransform(i),n=h.util.multiplyTransformMatrices(o,e.calcOwnMatrix());h.util.applyTransformToObject(e,n)},"removeTransformFromObject"),addTransformToObject:a(function(e,i){h.util.applyTransformToObject(e,h.util.multiplyTransformMatrices(i,e.calcOwnMatrix()))},"addTransformToObject"),applyTransformToObject:a(function(e,i){var o=h.util.qrDecompose(i),n=new h.Point(o.translateX,o.translateY);e.flipX=!1,e.flipY=!1,e.set("scaleX",o.scaleX),e.set("scaleY",o.scaleY),e.skewX=o.skewX,e.skewY=o.skewY,e.angle=o.angle,e.setPositionByOrigin(n,"center","center")},"applyTransformToObject"),sizeAfterTransform:a(function(e,i,o){var n=e/2,u=i/2,d=[{x:-n,y:-u},{x:n,y:-u},{x:-n,y:u},{x:n,y:u}],g=h.util.calcDimensionsMatrix(o),m=h.util.makeBoundingBoxFromPoints(d,g);return{x:m.width,y:m.height}},"sizeAfterTransform"),mergeClipPaths:a(function(e,i){var o=e,n=i;o.inverted&&!n.inverted&&(o=i,n=e),h.util.applyTransformToObject(n,h.util.multiplyTransformMatrices(h.util.invertTransform(o.calcTransformMatrix()),n.calcTransformMatrix()));var u=o.inverted&&n.inverted;return u&&(o.inverted=n.inverted=!1),new h.Group([o],{clipPath:n,inverted:u})},"mergeClipPaths"),hasStyleChanged:a(function(e,i,o){return o=o||!1,e.fill!==i.fill||e.stroke!==i.stroke||e.strokeWidth!==i.strokeWidth||e.fontSize!==i.fontSize||e.fontFamily!==i.fontFamily||e.fontWeight!==i.fontWeight||e.fontStyle!==i.fontStyle||e.textBackgroundColor!==i.textBackgroundColor||e.deltaY!==i.deltaY||o&&(e.overline!==i.overline||e.underline!==i.underline||e.linethrough!==i.linethrough)},"hasStyleChanged"),stylesToArray:a(function(o,i){for(var o=h.util.object.clone(o,!0),n=i.split(`
`),u=-1,d={},g=[],m=0;m<n.length;m++){if(!o[m]){u+=n[m].length;continue}for(var p=0;p<n[m].length;p++){u++;var _=o[m][p];if(_&&Object.keys(_).length>0){var S=h.util.hasStyleChanged(d,_,!0);S?g.push({start:u,end:u+1,style:_}):g[g.length-1].end++}d=_||{}}}return g},"stylesToArray"),stylesFromArray:a(function(e,i){if(!Array.isArray(e))return e;for(var o=i.split(`
`),n=-1,u=0,d={},g=0;g<o.length;g++)for(var m=0;m<o[g].length;m++)n++,e[u]&&e[u].start<=n&&n<e[u].end&&(d[g]=d[g]||{},d[g][m]=Object.assign({},e[u].style),n===e[u].end-1&&u++);return d},"stylesFromArray")}})(x),(function(){var f=Array.prototype.join,s={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},c={m:"l",M:"L"};function l(C,P,k,j,Y,T,w,I,R,U,X){var $=h.util.cos(C),q=h.util.sin(C),te=h.util.cos(P),A=h.util.sin(P),E=k*Y*te-j*T*A+w,z=j*Y*te+k*T*A+I,N=U+R*(-k*Y*q-j*T*$),B=X+R*(-j*Y*q+k*T*$),V=E+R*(k*Y*A+j*T*te),Q=z+R*(j*Y*A-k*T*te);return["C",N,B,V,Q,E,z]}a(l,"segmentToBezier");function t(C,P,k,j,Y,T,w){var I=Math.PI,R=w*I/180,U=h.util.sin(R),X=h.util.cos(R),$=0,q=0;k=Math.abs(k),j=Math.abs(j);var te=-X*C*.5-U*P*.5,A=-X*P*.5+U*C*.5,E=k*k,z=j*j,N=A*A,B=te*te,V=E*z-E*N-z*B,Q=0;if(V<0){var ce=Math.sqrt(1-V/(E*z));k*=ce,j*=ce}else Q=(Y===T?-1:1)*Math.sqrt(V/(E*N+z*B));var he=Q*k*A/j,G=-Q*j*te/k,le=X*he-U*G+C*.5,ue=U*he+X*G+P*.5,de=r(1,0,(te-he)/k,(A-G)/j),ye=r((te-he)/k,(A-G)/j,(-te-he)/k,(-A-G)/j);T===0&&ye>0?ye-=2*I:T===1&&ye<0&&(ye+=2*I);for(var me=Math.ceil(Math.abs(ye/I*2)),Se=[],_e=ye/me,Re=8/3*Math.sin(_e/4)*Math.sin(_e/4)/Math.sin(_e/2),Ue=de+_e,je=0;je<me;je++)Se[je]=l(de,Ue,X,U,k,j,le,ue,Re,$,q),$=Se[je][5],q=Se[je][6],de=Ue,Ue+=_e;return Se}a(t,"arcToSegments");function r(C,P,k,j){var Y=Math.atan2(P,C),T=Math.atan2(j,k);return T>=Y?T-Y:2*Math.PI-(Y-T)}a(r,"calcVectorAngle");function e(C,P,k,j,Y,T,w,I){var R;if(h.cachesBoundsOfCurve&&(R=f.call(arguments),h.boundsOfCurveCache[R]))return h.boundsOfCurveCache[R];var U=Math.sqrt,X=Math.min,$=Math.max,q=Math.abs,te=[],A=[[],[]],E,z,N,B,V,Q,ce,he;z=6*C-12*k+6*Y,E=-3*C+9*k-9*Y+3*w,N=3*k-3*C;for(var G=0;G<2;++G){if(G>0&&(z=6*P-12*j+6*T,E=-3*P+9*j-9*T+3*I,N=3*j-3*P),q(E)<1e-12){if(q(z)<1e-12)continue;B=-N/z,0<B&&B<1&&te.push(B);continue}ce=z*z-4*N*E,!(ce<0)&&(he=U(ce),V=(-z+he)/(2*E),0<V&&V<1&&te.push(V),Q=(-z-he)/(2*E),0<Q&&Q<1&&te.push(Q))}for(var le,ue,de=te.length,ye=de,me;de--;)B=te[de],me=1-B,le=me*me*me*C+3*me*me*B*k+3*me*B*B*Y+B*B*B*w,A[0][de]=le,ue=me*me*me*P+3*me*me*B*j+3*me*B*B*T+B*B*B*I,A[1][de]=ue;A[0][ye]=C,A[1][ye]=P,A[0][ye+1]=w,A[1][ye+1]=I;var Se=[{x:X.apply(null,A[0]),y:X.apply(null,A[1])},{x:$.apply(null,A[0]),y:$.apply(null,A[1])}];return h.cachesBoundsOfCurve&&(h.boundsOfCurveCache[R]=Se),Se}a(e,"getBoundsOfCurve");function i(C,P,k){for(var j=k[1],Y=k[2],T=k[3],w=k[4],I=k[5],R=k[6],U=k[7],X=t(R-C,U-P,j,Y,w,I,T),$=0,q=X.length;$<q;$++)X[$][1]+=C,X[$][2]+=P,X[$][3]+=C,X[$][4]+=P,X[$][5]+=C,X[$][6]+=P;return X}a(i,"fromArcToBeziers");function o(C){var P=0,k=0,j=C.length,Y=0,T=0,w,I,R,U=[],X,$,q;for(I=0;I<j;++I){switch(R=!1,w=C[I].slice(0),w[0]){case"l":w[0]="L",w[1]+=P,w[2]+=k;case"L":P=w[1],k=w[2];break;case"h":w[1]+=P;case"H":w[0]="L",w[2]=k,P=w[1];break;case"v":w[1]+=k;case"V":w[0]="L",k=w[1],w[1]=P,w[2]=k;break;case"m":w[0]="M",w[1]+=P,w[2]+=k;case"M":P=w[1],k=w[2],Y=w[1],T=w[2];break;case"c":w[0]="C",w[1]+=P,w[2]+=k,w[3]+=P,w[4]+=k,w[5]+=P,w[6]+=k;case"C":$=w[3],q=w[4],P=w[5],k=w[6];break;case"s":w[0]="S",w[1]+=P,w[2]+=k,w[3]+=P,w[4]+=k;case"S":X==="C"?($=2*P-$,q=2*k-q):($=P,q=k),P=w[3],k=w[4],w[0]="C",w[5]=w[3],w[6]=w[4],w[3]=w[1],w[4]=w[2],w[1]=$,w[2]=q,$=w[3],q=w[4];break;case"q":w[0]="Q",w[1]+=P,w[2]+=k,w[3]+=P,w[4]+=k;case"Q":$=w[1],q=w[2],P=w[3],k=w[4];break;case"t":w[0]="T",w[1]+=P,w[2]+=k;case"T":X==="Q"?($=2*P-$,q=2*k-q):($=P,q=k),w[0]="Q",P=w[1],k=w[2],w[1]=$,w[2]=q,w[3]=P,w[4]=k;break;case"a":w[0]="A",w[6]+=P,w[7]+=k;case"A":R=!0,U=U.concat(i(P,k,w)),P=w[6],k=w[7];break;case"z":case"Z":P=Y,k=T;break}R||U.push(w),X=w[0]}return U}a(o,"makePathSimpler");function n(C,P,k,j){return Math.sqrt((k-C)*(k-C)+(j-P)*(j-P))}a(n,"calcLineLength");function u(C){return C*C*C}a(u,"CB1");function d(C){return 3*C*C*(1-C)}a(d,"CB2");function g(C){return 3*C*(1-C)*(1-C)}a(g,"CB3");function m(C){return(1-C)*(1-C)*(1-C)}a(m,"CB4");function p(C,P,k,j,Y,T,w,I){return function(R){var U=u(R),X=d(R),$=g(R),q=m(R);return{x:w*U+Y*X+k*$+C*q,y:I*U+T*X+j*$+P*q}}}a(p,"getPointOnCubicBezierIterator");function _(C,P,k,j,Y,T,w,I){return function(R){var U=1-R,X=3*U*U*(k-C)+6*U*R*(Y-k)+3*R*R*(w-Y),$=3*U*U*(j-P)+6*U*R*(T-j)+3*R*R*(I-T);return Math.atan2($,X)}}a(_,"getTangentCubicIterator");function S(C){return C*C}a(S,"QB1");function M(C){return 2*C*(1-C)}a(M,"QB2");function F(C){return(1-C)*(1-C)}a(F,"QB3");function H(C,P,k,j,Y,T){return function(w){var I=S(w),R=M(w),U=F(w);return{x:Y*I+k*R+C*U,y:T*I+j*R+P*U}}}a(H,"getPointOnQuadraticBezierIterator");function L(C,P,k,j,Y,T){return function(w){var I=1-w,R=2*I*(k-C)+2*w*(Y-k),U=2*I*(j-P)+2*w*(T-j);return Math.atan2(U,R)}}a(L,"getTangentQuadraticIterator");function Z(C,P,k){var j={x:P,y:k},Y,T=0,w;for(w=1;w<=100;w+=1)Y=C(w/100),T+=n(j.x,j.y,Y.x,Y.y),j=Y;return T}a(Z,"pathIterator");function K(C,P){for(var k=0,j=0,Y=C.iterator,T={x:C.x,y:C.y},w,I,R=.01,U=C.angleFinder,X;j<P&&R>1e-4;)w=Y(k),X=k,I=n(T.x,T.y,w.x,w.y),I+j>P?(k-=R,R/=2):(T=w,k+=R,j+=I);return w.angle=U(X),w}a(K,"findPercentageForDistance");function J(C){for(var P=0,k=C.length,j,Y=0,T=0,w=0,I=0,R=[],U,X,$,q=0;q<k;q++){switch(j=C[q],X={x:Y,y:T,command:j[0]},j[0]){case"M":X.length=0,w=Y=j[1],I=T=j[2];break;case"L":X.length=n(Y,T,j[1],j[2]),Y=j[1],T=j[2];break;case"C":U=p(Y,T,j[1],j[2],j[3],j[4],j[5],j[6]),$=_(Y,T,j[1],j[2],j[3],j[4],j[5],j[6]),X.iterator=U,X.angleFinder=$,X.length=Z(U,Y,T),Y=j[5],T=j[6];break;case"Q":U=H(Y,T,j[1],j[2],j[3],j[4]),$=L(Y,T,j[1],j[2],j[3],j[4]),X.iterator=U,X.angleFinder=$,X.length=Z(U,Y,T),Y=j[3],T=j[4];break;case"Z":case"z":X.destX=w,X.destY=I,X.length=n(Y,T,w,I),Y=w,T=I;break}P+=X.length,R.push(X)}return R.push({length:P,x:Y,y:T}),R}a(J,"getPathSegmentsInfo");function ee(C,P,k){k||(k=J(C));for(var j=0;P-k[j].length>0&&j<k.length-2;)P-=k[j].length,j++;var Y=k[j],T=P/Y.length,w=Y.command,I=C[j],R;switch(w){case"M":return{x:Y.x,y:Y.y,angle:0};case"Z":case"z":return R=new h.Point(Y.x,Y.y).lerp(new h.Point(Y.destX,Y.destY),T),R.angle=Math.atan2(Y.destY-Y.y,Y.destX-Y.x),R;case"L":return R=new h.Point(Y.x,Y.y).lerp(new h.Point(I[1],I[2]),T),R.angle=Math.atan2(I[2]-Y.y,I[1]-Y.x),R;case"C":return K(Y,P);case"Q":return K(Y,P)}}a(ee,"getPointOnPath");function ae(C){var P=[],k=[],j,Y,T=h.rePathCommand,w="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",I="("+w+")"+h.commaWsp,R="([01])"+h.commaWsp+"?",U=I+"?"+I+"?"+I+R+R+I+"?("+w+")",X=new RegExp(U,"g"),$,q,te;if(!C||!C.match)return P;te=C.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi);for(var A=0,E,z=te.length;A<z;A++){j=te[A],q=j.slice(1).trim(),k.length=0;var N=j.charAt(0);if(E=[N],N.toLowerCase()==="a")for(var B;B=X.exec(q);)for(var V=1;V<B.length;V++)k.push(B[V]);else for(;$=T.exec(q);)k.push($[0]);for(var V=0,Q=k.length;V<Q;V++)Y=parseFloat(k[V]),isNaN(Y)||E.push(Y);var ce=s[N.toLowerCase()],he=c[N]||N;if(E.length-1>ce)for(var G=1,le=E.length;G<le;G+=ce)P.push([N].concat(E.slice(G,G+ce))),N=he;else P.push(E)}return P}a(ae,"parsePath");function oe(C,P){var k=[],j,Y=new h.Point(C[0].x,C[0].y),T=new h.Point(C[1].x,C[1].y),w=C.length,I=1,R=0,U=w>2;for(P=P||0,U&&(I=C[2].x<T.x?-1:C[2].x===T.x?0:1,R=C[2].y<T.y?-1:C[2].y===T.y?0:1),k.push(["M",Y.x-I*P,Y.y-R*P]),j=1;j<w;j++){if(!Y.eq(T)){var X=Y.midPointFrom(T);k.push(["Q",Y.x,Y.y,X.x,X.y])}Y=C[j],j+1<C.length&&(T=C[j+1])}return U&&(I=Y.x>C[j-2].x?1:Y.x===C[j-2].x?0:-1,R=Y.y>C[j-2].y?1:Y.y===C[j-2].y?0:-1),k.push(["L",Y.x+I*P,Y.y+R*P]),k}a(oe,"getSmoothPathFromPoints");function se(C,P,k){return k&&(P=h.util.multiplyTransformMatrices(P,[1,0,0,1,-k.x,-k.y])),C.map(function(j){for(var Y=j.slice(0),T={},w=1;w<j.length-1;w+=2)T.x=j[w],T.y=j[w+1],T=h.util.transformPoint(T,P),Y[w]=T.x,Y[w+1]=T.y;return Y})}a(se,"transformPath"),h.util.joinPath=function(C){return C.map(function(P){return P.join(" ")}).join(" ")},h.util.parsePath=ae,h.util.makePathSimpler=o,h.util.getSmoothPathFromPoints=oe,h.util.getPathSegmentsInfo=J,h.util.getBoundsOfCurve=e,h.util.getPointOnPath=ee,h.util.transformPath=se})(),(function(){var f=Array.prototype.slice;function s(e,i){for(var o=f.call(arguments,2),n=[],u=0,d=e.length;u<d;u++)n[u]=o.length?e[u][i].apply(e[u],o):e[u][i].call(e[u]);return n}a(s,"invoke");function c(e,i){return r(e,i,function(o,n){return o>=n})}a(c,"max");function l(e,i){return r(e,i,function(o,n){return o<n})}a(l,"min");function t(e,i){for(var o=e.length;o--;)e[o]=i;return e}a(t,"fill");function r(e,i,o){if(!(!e||e.length===0)){var n=e.length-1,u=i?e[n][i]:e[n];if(i)for(;n--;)o(e[n][i],u)&&(u=e[n][i]);else for(;n--;)o(e[n],u)&&(u=e[n]);return u}}a(r,"find"),h.util.array={fill:t,invoke:s,min:l,max:c}})(),(function(){function f(c,l,t){if(t)if(!h.isLikelyNode&&l instanceof Element)c=l;else if(l instanceof Array){c=[];for(var r=0,e=l.length;r<e;r++)c[r]=f({},l[r],t)}else if(l&&typeof l=="object")for(var i in l)i==="canvas"||i==="group"?c[i]=null:l.hasOwnProperty(i)&&(c[i]=f({},l[i],t));else c=l;else for(var i in l)c[i]=l[i];return c}a(f,"extend");function s(c,l){return f({},c,l)}a(s,"clone"),h.util.object={extend:f,clone:s},h.util.object.extend(h.util,h.Observable)})(),(function(){function f(r){return r.replace(/-+(.)?/g,function(e,i){return i?i.toUpperCase():""})}a(f,"camelize");function s(r,e){return r.charAt(0).toUpperCase()+(e?r.slice(1):r.slice(1).toLowerCase())}a(s,"capitalize");function c(r){return r.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}a(c,"escapeXml");function l(r){var e=0,i,o=[];for(e=0,i;e<r.length;e++)(i=t(r,e))!==!1&&o.push(i);return o}a(l,"graphemeSplit");function t(r,e){var i=r.charCodeAt(e);if(isNaN(i))return"";if(i<55296||i>57343)return r.charAt(e);if(55296<=i&&i<=56319){if(r.length<=e+1)throw"High surrogate without following low surrogate";var o=r.charCodeAt(e+1);if(56320>o||o>57343)throw"High surrogate without following low surrogate";return r.charAt(e)+r.charAt(e+1)}if(e===0)throw"Low surrogate without preceding high surrogate";var n=r.charCodeAt(e-1);if(55296>n||n>56319)throw"Low surrogate without preceding high surrogate";return!1}a(t,"getWholeChar"),h.util.string={camelize:f,capitalize:s,escapeXml:c,graphemeSplit:l}})(),(function(){var f=Array.prototype.slice,s=a(function(){},"emptyFunction"),c=(function(){for(var i in{toString:1})if(i==="toString")return!1;return!0})(),l=a(function(i,o,n){for(var u in o)u in i.prototype&&typeof i.prototype[u]=="function"&&(o[u]+"").indexOf("callSuper")>-1?i.prototype[u]=(function(d){return function(){var g=this.constructor.superclass;this.constructor.superclass=n;var m=o[d].apply(this,arguments);if(this.constructor.superclass=g,d!=="initialize")return m}})(u):i.prototype[u]=o[u],c&&(o.toString!==Object.prototype.toString&&(i.prototype.toString=o.toString),o.valueOf!==Object.prototype.valueOf&&(i.prototype.valueOf=o.valueOf))},"addMethods");function t(){}a(t,"Subclass");function r(i){for(var o=null,n=this;n.constructor.superclass;){var u=n.constructor.superclass.prototype[i];if(n[i]!==u){o=u;break}n=n.constructor.superclass.prototype}return o?arguments.length>1?o.apply(this,f.call(arguments,1)):o.call(this):console.log("tried to callSuper "+i+", method not found in prototype chain",this)}a(r,"callSuper");function e(){var i=null,o=f.call(arguments,0);typeof o[0]=="function"&&(i=o.shift());function n(){this.initialize.apply(this,arguments)}a(n,"klass"),n.superclass=i,n.subclasses=[],i&&(t.prototype=i.prototype,n.prototype=new t,i.subclasses.push(n));for(var u=0,d=o.length;u<d;u++)l(n,o[u],i);return n.prototype.initialize||(n.prototype.initialize=s),n.prototype.constructor=n,n.prototype.callSuper=r,n}a(e,"createClass"),h.util.createClass=e})(),(function(){var f=!!h.document.createElement("div").attachEvent,s=["touchstart","touchmove","touchend"];h.util.addListener=function(l,t,r,e){l&&l.addEventListener(t,r,f?!1:e)},h.util.removeListener=function(l,t,r,e){l&&l.removeEventListener(t,r,f?!1:e)};function c(l){var t=l.changedTouches;return t&&t[0]?t[0]:l}a(c,"getTouchInfo"),h.util.getPointer=function(l){var t=l.target,r=h.util.getScrollLeftTop(t),e=c(l);return{x:e.clientX+r.left,y:e.clientY+r.top}},h.util.isTouchEvent=function(l){return s.indexOf(l.type)>-1||l.pointerType==="touch"}})(),(function(){function f(e,i){var o=e.style;if(!o)return e;if(typeof i=="string")return e.style.cssText+=";"+i,i.indexOf("opacity")>-1?r(e,i.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var n in i)if(n==="opacity")r(e,i[n]);else{var u=n==="float"||n==="cssFloat"?typeof o.styleFloat>"u"?"cssFloat":"styleFloat":n;o.setProperty(u,i[n])}return e}a(f,"setStyle");var s=h.document.createElement("div"),c=typeof s.style.opacity=="string",l=typeof s.style.filter=="string",t=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,r=a(function(e){return e},"setOpacity");c?r=a(function(e,i){return e.style.opacity=i,e},"setOpacity"):l&&(r=a(function(e,i){var o=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(o.zoom=1),t.test(o.filter)?(i=i>=.9999?"":"alpha(opacity="+i*100+")",o.filter=o.filter.replace(t,i)):o.filter+=" alpha(opacity="+i*100+")",e},"setOpacity")),h.util.setStyle=f})(),(function(){var f=Array.prototype.slice;function s(m){return typeof m=="string"?h.document.getElementById(m):m}a(s,"getById");var c,l=a(function(m){return f.call(m,0)},"toArray");try{c=l(h.document.childNodes)instanceof Array}catch{}c||(l=a(function(m){for(var p=new Array(m.length),_=m.length;_--;)p[_]=m[_];return p},"toArray"));function t(m,p){var _=h.document.createElement(m);for(var S in p)S==="class"?_.className=p[S]:S==="for"?_.htmlFor=p[S]:_.setAttribute(S,p[S]);return _}a(t,"makeElement");function r(m,p){m&&(" "+m.className+" ").indexOf(" "+p+" ")===-1&&(m.className+=(m.className?" ":"")+p)}a(r,"addClass");function e(m,p,_){return typeof p=="string"&&(p=t(p,_)),m.parentNode&&m.parentNode.replaceChild(p,m),p.appendChild(m),p}a(e,"wrapElement");function i(m){for(var p=0,_=0,S=h.document.documentElement,M=h.document.body||{scrollLeft:0,scrollTop:0};m&&(m.parentNode||m.host)&&(m=m.parentNode||m.host,m===h.document?(p=M.scrollLeft||S.scrollLeft||0,_=M.scrollTop||S.scrollTop||0):(p+=m.scrollLeft||0,_+=m.scrollTop||0),!(m.nodeType===1&&m.style.position==="fixed")););return{left:p,top:_}}a(i,"getScrollLeftTop");function o(m){var p,_=m&&m.ownerDocument,S={left:0,top:0},M={left:0,top:0},F,H={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!_)return M;for(var L in H)M[H[L]]+=parseInt(n(m,L),10)||0;return p=_.documentElement,typeof m.getBoundingClientRect<"u"&&(S=m.getBoundingClientRect()),F=i(m),{left:S.left+F.left-(p.clientLeft||0)+M.left,top:S.top+F.top-(p.clientTop||0)+M.top}}a(o,"getElementOffset");var n;h.document.defaultView&&h.document.defaultView.getComputedStyle?n=a(function(m,p){var _=h.document.defaultView.getComputedStyle(m,null);return _?_[p]:void 0},"getElementStyle"):n=a(function(m,p){var _=m.style[p];return!_&&m.currentStyle&&(_=m.currentStyle[p]),_},"getElementStyle"),(function(){var m=h.document.documentElement.style,p="userSelect"in m?"userSelect":"MozUserSelect"in m?"MozUserSelect":"WebkitUserSelect"in m?"WebkitUserSelect":"KhtmlUserSelect"in m?"KhtmlUserSelect":"";function _(M){return typeof M.onselectstart<"u"&&(M.onselectstart=h.util.falseFunction),p?M.style[p]="none":typeof M.unselectable=="string"&&(M.unselectable="on"),M}a(_,"makeElementUnselectable");function S(M){return typeof M.onselectstart<"u"&&(M.onselectstart=null),p?M.style[p]="":typeof M.unselectable=="string"&&(M.unselectable=""),M}a(S,"makeElementSelectable"),h.util.makeElementUnselectable=_,h.util.makeElementSelectable=S})();function u(m){var p=h.jsdomImplForWrapper(m);return p._canvas||p._image}a(u,"getNodeCanvas");function d(m){if(h.isLikelyNode){var p=h.jsdomImplForWrapper(m);p&&(p._image=null,p._canvas=null,p._currentSrc=null,p._attributes=null,p._classList=null)}}a(d,"cleanUpJsdomNode");function g(m,p){m.imageSmoothingEnabled=m.imageSmoothingEnabled||m.webkitImageSmoothingEnabled||m.mozImageSmoothingEnabled||m.msImageSmoothingEnabled||m.oImageSmoothingEnabled,m.imageSmoothingEnabled=p}a(g,"setImageSmoothing"),h.util.setImageSmoothing=g,h.util.getById=s,h.util.toArray=l,h.util.addClass=r,h.util.makeElement=t,h.util.wrapElement=e,h.util.getScrollLeftTop=i,h.util.getElementOffset=o,h.util.getNodeCanvas=u,h.util.cleanUpJsdomNode=d})(),(function(){function f(l,t){return l+(/\?/.test(l)?"&":"?")+t}a(f,"addParamToUrl");function s(){}a(s,"emptyFn");function c(l,t){t||(t={});var r=t.method?t.method.toUpperCase():"GET",e=t.onComplete||function(){},i=new h.window.XMLHttpRequest,o=t.body||t.parameters;return i.onreadystatechange=function(){i.readyState===4&&(e(i),i.onreadystatechange=s)},r==="GET"&&(o=null,typeof t.parameters=="string"&&(l=f(l,t.parameters))),i.open(r,l,!0),(r==="POST"||r==="PUT")&&i.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),i.send(o),i}a(c,"request"),h.util.request=c})(),h.log=console.log,h.warn=console.warn,(function(){var f=h.util.object.extend,s=h.util.object.clone,c=[];h.util.object.extend(c,{cancelAll:a(function(){var u=this.splice(0);return u.forEach(function(d){d.cancel()}),u},"cancelAll"),cancelByCanvas:a(function(u){if(!u)return[];var d=this.filter(function(g){return typeof g.target=="object"&&g.target.canvas===u});return d.forEach(function(g){g.cancel()}),d},"cancelByCanvas"),cancelByTarget:a(function(u){var d=this.findAnimationsByTarget(u);return d.forEach(function(g){g.cancel()}),d},"cancelByTarget"),findAnimationIndex:a(function(u){return this.indexOf(this.findAnimation(u))},"findAnimationIndex"),findAnimation:a(function(u){return this.find(function(d){return d.cancel===u})},"findAnimation"),findAnimationsByTarget:a(function(u){return u?this.filter(function(d){return d.target===u}):[]},"findAnimationsByTarget")});function l(){return!1}a(l,"noop");function t(u,d,g,m){return-g*Math.cos(u/m*(Math.PI/2))+g+d}a(t,"defaultEasing");function r(u){u||(u={});var d=!1,g,m=a(function(){var p=h.runningAnimations.indexOf(g);return p>-1&&h.runningAnimations.splice(p,1)[0]},"removeFromRegistry");return g=f(s(u),{cancel:a(function(){return d=!0,m()},"cancel"),currentValue:"startValue"in u?u.startValue:0,completionRate:0,durationRate:0}),h.runningAnimations.push(g),o(function(p){var _=p||+new Date,S=u.duration||500,M=_+S,F,H=u.onChange||l,L=u.abort||l,Z=u.onComplete||l,K=u.easing||t,J="startValue"in u?u.startValue.length>0:!1,ee="startValue"in u?u.startValue:0,ae="endValue"in u?u.endValue:100,oe=u.byValue||(J?ee.map(function(se,C){return ae[C]-ee[C]}):ae-ee);u.onStart&&u.onStart(),a((function se(C){F=C||+new Date;var P=F>M?S:F-_,k=P/S,j=J?ee.map(function(T,w){return K(P,ee[w],oe[w],S)}):K(P,ee,oe,S),Y=Math.abs(J?(j[0]-ee[0])/oe[0]:(j-ee)/oe);if(g.currentValue=J?j.slice():j,g.completionRate=Y,g.durationRate=k,!d){if(L(j,Y,k)){m();return}if(F>M){g.currentValue=J?ae.slice():ae,g.completionRate=1,g.durationRate=1,H(J?ae.slice():ae,1,1),Z(ae,1,1),m();return}else H(j,Y,k),o(se)}}),"tick")(_)}),g.cancel}a(r,"animate");var e=h.window.requestAnimationFrame||h.window.webkitRequestAnimationFrame||h.window.mozRequestAnimationFrame||h.window.oRequestAnimationFrame||h.window.msRequestAnimationFrame||function(u){return h.window.setTimeout(u,1e3/60)},i=h.window.cancelAnimationFrame||h.window.clearTimeout;function o(){return e.apply(h.window,arguments)}a(o,"requestAnimFrame");function n(){return i.apply(h.window,arguments)}a(n,"cancelAnimFrame"),h.util.animate=r,h.util.requestAnimFrame=o,h.util.cancelAnimFrame=n,h.runningAnimations=c})(),(function(){function f(c,l,t){var r="rgba("+parseInt(c[0]+t*(l[0]-c[0]),10)+","+parseInt(c[1]+t*(l[1]-c[1]),10)+","+parseInt(c[2]+t*(l[2]-c[2]),10);return r+=","+(c&&l?parseFloat(c[3]+t*(l[3]-c[3])):1),r+=")",r}a(f,"calculateColor");function s(c,l,t,r){var e=new h.Color(c).getSource(),i=new h.Color(l).getSource(),o=r.onComplete,n=r.onChange;return r=r||{},h.util.animate(h.util.object.extend(r,{duration:t||500,startValue:e,endValue:i,byValue:i,easing:a(function(u,d,g,m){var p=r.colorEasing?r.colorEasing(u,m):1-Math.cos(u/m*(Math.PI/2));return f(d,g,p)},"easing"),onComplete:a(function(u,d,g){if(o)return o(f(i,i,0),d,g)},"onComplete"),onChange:a(function(u,d,g){if(n){if(Array.isArray(u))return n(f(u,u,0),d,g);n(u,d,g)}},"onChange")}))}a(s,"animateColor"),h.util.animateColor=s})(),(function(){function f(C,P,k,j){return C<Math.abs(P)?(C=P,j=k/4):P===0&&C===0?j=k/(2*Math.PI)*Math.asin(1):j=k/(2*Math.PI)*Math.asin(P/C),{a:C,c:P,p:k,s:j}}a(f,"normalize");function s(C,P,k){return C.a*Math.pow(2,10*(P-=1))*Math.sin((P*k-C.s)*(2*Math.PI)/C.p)}a(s,"elastic");function c(C,P,k,j){return k*((C=C/j-1)*C*C+1)+P}a(c,"easeOutCubic");function l(C,P,k,j){return C/=j/2,C<1?k/2*C*C*C+P:k/2*((C-=2)*C*C+2)+P}a(l,"easeInOutCubic");function t(C,P,k,j){return k*(C/=j)*C*C*C+P}a(t,"easeInQuart");function r(C,P,k,j){return-k*((C=C/j-1)*C*C*C-1)+P}a(r,"easeOutQuart");function e(C,P,k,j){return C/=j/2,C<1?k/2*C*C*C*C+P:-k/2*((C-=2)*C*C*C-2)+P}a(e,"easeInOutQuart");function i(C,P,k,j){return k*(C/=j)*C*C*C*C+P}a(i,"easeInQuint");function o(C,P,k,j){return k*((C=C/j-1)*C*C*C*C+1)+P}a(o,"easeOutQuint");function n(C,P,k,j){return C/=j/2,C<1?k/2*C*C*C*C*C+P:k/2*((C-=2)*C*C*C*C+2)+P}a(n,"easeInOutQuint");function u(C,P,k,j){return-k*Math.cos(C/j*(Math.PI/2))+k+P}a(u,"easeInSine");function d(C,P,k,j){return k*Math.sin(C/j*(Math.PI/2))+P}a(d,"easeOutSine");function g(C,P,k,j){return-k/2*(Math.cos(Math.PI*C/j)-1)+P}a(g,"easeInOutSine");function m(C,P,k,j){return C===0?P:k*Math.pow(2,10*(C/j-1))+P}a(m,"easeInExpo");function p(C,P,k,j){return C===j?P+k:k*(-Math.pow(2,-10*C/j)+1)+P}a(p,"easeOutExpo");function _(C,P,k,j){return C===0?P:C===j?P+k:(C/=j/2,C<1?k/2*Math.pow(2,10*(C-1))+P:k/2*(-Math.pow(2,-10*--C)+2)+P)}a(_,"easeInOutExpo");function S(C,P,k,j){return-k*(Math.sqrt(1-(C/=j)*C)-1)+P}a(S,"easeInCirc");function M(C,P,k,j){return k*Math.sqrt(1-(C=C/j-1)*C)+P}a(M,"easeOutCirc");function F(C,P,k,j){return C/=j/2,C<1?-k/2*(Math.sqrt(1-C*C)-1)+P:k/2*(Math.sqrt(1-(C-=2)*C)+1)+P}a(F,"easeInOutCirc");function H(C,P,k,j){var Y=1.70158,T=0,w=k;if(C===0)return P;if(C/=j,C===1)return P+k;T||(T=j*.3);var I=f(w,k,T,Y);return-s(I,C,j)+P}a(H,"easeInElastic");function L(C,P,k,j){var Y=1.70158,T=0,w=k;if(C===0)return P;if(C/=j,C===1)return P+k;T||(T=j*.3);var I=f(w,k,T,Y);return I.a*Math.pow(2,-10*C)*Math.sin((C*j-I.s)*(2*Math.PI)/I.p)+I.c+P}a(L,"easeOutElastic");function Z(C,P,k,j){var Y=1.70158,T=0,w=k;if(C===0)return P;if(C/=j/2,C===2)return P+k;T||(T=j*(.3*1.5));var I=f(w,k,T,Y);return C<1?-.5*s(I,C,j)+P:I.a*Math.pow(2,-10*(C-=1))*Math.sin((C*j-I.s)*(2*Math.PI)/I.p)*.5+I.c+P}a(Z,"easeInOutElastic");function K(C,P,k,j,Y){return Y===void 0&&(Y=1.70158),k*(C/=j)*C*((Y+1)*C-Y)+P}a(K,"easeInBack");function J(C,P,k,j,Y){return Y===void 0&&(Y=1.70158),k*((C=C/j-1)*C*((Y+1)*C+Y)+1)+P}a(J,"easeOutBack");function ee(C,P,k,j,Y){return Y===void 0&&(Y=1.70158),C/=j/2,C<1?k/2*(C*C*(((Y*=1.525)+1)*C-Y))+P:k/2*((C-=2)*C*(((Y*=1.525)+1)*C+Y)+2)+P}a(ee,"easeInOutBack");function ae(C,P,k,j){return k-oe(j-C,0,k,j)+P}a(ae,"easeInBounce");function oe(C,P,k,j){return(C/=j)<1/2.75?k*(7.5625*C*C)+P:C<2/2.75?k*(7.5625*(C-=1.5/2.75)*C+.75)+P:C<2.5/2.75?k*(7.5625*(C-=2.25/2.75)*C+.9375)+P:k*(7.5625*(C-=2.625/2.75)*C+.984375)+P}a(oe,"easeOutBounce");function se(C,P,k,j){return C<j/2?ae(C*2,0,k,j)*.5+P:oe(C*2-j,0,k,j)*.5+k*.5+P}a(se,"easeInOutBounce"),h.util.ease={easeInQuad:a(function(C,P,k,j){return k*(C/=j)*C+P},"easeInQuad"),easeOutQuad:a(function(C,P,k,j){return-k*(C/=j)*(C-2)+P},"easeOutQuad"),easeInOutQuad:a(function(C,P,k,j){return C/=j/2,C<1?k/2*C*C+P:-k/2*(--C*(C-2)-1)+P},"easeInOutQuad"),easeInCubic:a(function(C,P,k,j){return k*(C/=j)*C*C+P},"easeInCubic"),easeOutCubic:c,easeInOutCubic:l,easeInQuart:t,easeOutQuart:r,easeInOutQuart:e,easeInQuint:i,easeOutQuint:o,easeInOutQuint:n,easeInSine:u,easeOutSine:d,easeInOutSine:g,easeInExpo:m,easeOutExpo:p,easeInOutExpo:_,easeInCirc:S,easeOutCirc:M,easeInOutCirc:F,easeInElastic:H,easeOutElastic:L,easeInOutElastic:Z,easeInBack:K,easeOutBack