!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.draw2d=e():t.draw2d=e()}("undefined"!=typeof self?self:this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={geo:{},io:{json:{},png:{},svg:{}},storage:{},util:{spline:{}},shape:{basic:{},composite:{},arrow:{},node:{},note:{},diagram:{},flowchart:{},analog:{},icon:{},layout:{},pert:{},state:{},widget:{}},policy:{canvas:{},connection:{},line:{},port:{},figure:{}},command:{},decoration:{connection:{}},layout:{connection:{},anchor:{},mesh:{},locator:{}},ui:{},isTouchDevice:-1!=navigator.platform.indexOf("iPhone")||-1!=navigator.platform.indexOf("iPod")||-1!=navigator.platform.indexOf("iPad")},t.exports=e.default},function(t,e,n){"use strict";(function(e){var n=function(){var t={},e=!1,n=0,i=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(e=arguments[0],n++);for(;n<i;n++){var r=arguments[n];!function(n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e&&"[object Object]"===Object.prototype.toString.call(n[i])?t[i]=extend(!0,t[i],n[i]):t[i]=n[i])}(r)}return t};t.exports=n,e.extend=n}).call(e,n(64))},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.util.JSON={set:function(t,e,n){if(e&&""!==e){for(var i,r=/[\w-]+|\[\]|([^\[[\w]\]]|["'](.*?)['"])/g,a=e.match(r),o=t,s=null,c=null,l=function(t,e,n){"[]"===e?t.push(n):t[e]=n};a.length>0;)i=a.shift().replace(/["']/g,""),isNaN(+i)&&"[]"!==i?"string"==typeof i&&($.isPlainObject(o)||(o={},l(s,c,o))):o.constructor!==Array&&(o=[],l(s,c,o)),s=o,c=i,o=o[i];l(s,c,n)}},get:function(t,e){var n=/[\w-]+|\[\]|([^\[[\w]\]]|["'](.*?)['"])/g;if(e){for(var i=e.match(n);null!==t&&i.length>0;){if(!t.propertyIsEnumerable(i[0].replace(/"/g,"")))return;t=t[i.shift().replace(/"/g,"")]}return t}},diff:function(t,e){var n={};for(key in t){var i=t[key],r=e[key];i!==r&&(i.equals?i.equals(r)||(n[key]=t[key]):n[key]=t[key])}return n},flatDiff:function(t,e){var n={};for(var i in t)t[i]!==e[i]&&(n[i]=t[i]);return n},ensureDefault:function(t,e,n){t.hasOwnProperty(e)||(t[e]=n)}},t.exports=r.default.util.JSON},function(t,e,n){/*! 2.3.1 */
!function(e,n){t.exports=n()}(0,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/assets/",e(e.s=6)}([function(t,e,n){"use strict";(function(t){function i(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=new M,n=e.tween(t);return n.tweenable=e,n}Object.defineProperty(e,"__esModule",{value:!0}),e.Tweenable=e.composeEasingObject=e.tweenProps=e.clone=e.each=void 0;var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};e.tween=a;var c=n(5),l=i(c),u=n(1),h=function(t){return t&&t.__esModule?t:{default:t}}(u),d=n(7),f=i(d),p="undefined"!=typeof window?window:t,g=p.cancelAnimationFrame||p.webkitCancelAnimationFrame||p.oCancelAnimationFrame||p.msCancelAnimationFrame||p.mozCancelRequestAnimationFrame||p.clearTimeout,m=p.requestAnimationFrame||p.webkitRequestAnimationFrame||p.oRequestAnimationFrame||p.msRequestAnimationFrame||p.mozCancelRequestAnimationFrame&&p.mozRequestAnimationFrame||setTimeout,v=function(){},y=e.each=function(t,e){return Object.keys(t).forEach(e)},x=e.clone=function(t){return(0,h.default)({},t)},b=x(l),w=function(t,e,n,i){return t+(e-t)*n(i)},C=e.tweenProps=function(t,e,n,i,r,a,o){var s=t<a?0:(t-a)/r;return y(e,function(t){var r=o[t],a="function"==typeof r?r:b[r];e[t]=w(n[t],i[t],a,s)}),e},_=e.composeEasingObject=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"linear",n={},i=void 0===e?"undefined":s(e);return"string"===i||"function"===i?y(t,function(t){return n[t]=e}):y(t,function(t){return n[t]=n[t]||e[t]||"linear"}),n},M=e.Tweenable=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;r(this,t),this._currentState=e,this._configured=!1,this._scheduleFunction=m,void 0!==n&&this.setConfig(n)}return o(t,[{key:"_applyFilter",value:function(e){var n=this,i=t.filters,r=this._filterArgs;y(i,function(t){var a=i[t][e];void 0!==a&&a.apply(n,r)})}},{key:"_timeoutHandler",value:function(e){var n=this,i=arguments,r=this._currentState,a=this._delay,o=this._duration,s=this._step,c=this._targetState,l=this._timestamp,u=l+a+o,h=Math.min(e||t.now(),u),d=h>=u,f=o-(u-h);this.isPlaying()&&(d?(s(c,this._attachment,f),this.stop(!0)):(this._scheduleId=this._scheduleFunction.call(p,function(){return n._timeoutHandler.apply(n,i)},1e3/60),this._applyFilter("beforeTween"),h<l+a?(h=1,o=1,l=1):l+=a,C(h,r,this._originalState,c,o,l,this._easing),this._applyFilter("afterTween"),s(r,this._attachment,f)))}},{key:"tween",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,n=this._attachment,i=this._configured;return this._isTweening?this:(void 0===e&&i||this.setConfig(e),this._timestamp=t.now(),this._start(this.get(),n),this.resume())}},{key:"setConfig",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._configured=!0,this._attachment=e.attachment,(0,h.default)(this,{_pausedAtTime:null,_scheduleId:null,_delay:e.delay||0,_start:e.start||v,_step:e.step||v,_duration:e.duration||500,_currentState:x(e.from||this.get())}),(0,h.default)(this,{_originalState:this.get(),_targetState:x(e.to||this.get())});var n=this._currentState;this._targetState=(0,h.default)({},n,this._targetState),this._easing=_(n,e.easing),this._filterArgs=[n,this._originalState,this._targetState,this._easing],this._applyFilter("tweenCreated");var i=e.promise||Promise;return this._promise=new i(function(e,n){t._resolve=e,t._reject=n}),this._promise.catch(v),this}},{key:"get",value:function(){return x(this._currentState)}},{key:"set",value:function(t){this._currentState=t}},{key:"pause",value:function(){return this._pausedAtTime=t.now(),this._isPaused=!0,this}},{key:"resume",value:function(){return this._isPaused&&(this._timestamp+=t.now()-this._pausedAtTime),this._isPaused=!1,this._isTweening=!0,this._timeoutHandler(),this._promise}},{key:"seek",value:function(e){e=Math.max(e,0);var n=t.now();return this._timestamp+e===0?this:(this._timestamp=n-e,this.isPlaying()||(this._isTweening=!0,this._isPaused=!1,this._timeoutHandler(n),this.pause()),this)}},{key:"stop",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this._attachment,n=this._currentState,i=this._easing,r=this._originalState,a=this._targetState;return this._isTweening=!1,this._isPaused=!1,g(this._scheduleId),t?(this._applyFilter("beforeTween"),C(1,n,r,a,1,0,i),this._applyFilter("afterTween"),this._applyFilter("afterTweenEnd"),this._resolve(n,e)):this._reject(n,e),this}},{key:"isPlaying",value:function(){return this._isTweening&&!this._isPaused}},{key:"setScheduleFunction",value:function(t){this._scheduleFunction=t}},{key:"dispose",value:function(){var t=this;y(this,function(e){return delete t[e]})}}]),t}();(0,h.default)(M,{formulas:b,filters:{token:f},now:Date.now||function(t){return+new Date}})}).call(e,n(4))},function(t,e,n){"use strict";function i(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(t){i[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,s,c=i(t),l=1;l<arguments.length;l++){n=Object(arguments[l]);for(var u in n)a.call(n,u)&&(c[u]=n[u]);if(r){s=r(n);for(var h=0;h<s.length;h++)o.call(n,s[h])&&(c[s[h]]=n[s[h]])}}return c}},function(t,e,n){"use strict";function i(t,e,n,i,r,a){var o=0,s=0,c=0,l=0,u=0,h=0,d=function(t){return((o*t+s)*t+c)*t},f=function(t){return((l*t+u)*t+h)*t},p=function(t){return(3*o*t+2*s)*t+c},g=function(t){return t>=0?t:0-t},m=function(t,e){var n=void 0,i=void 0,r=void 0,a=void 0,o=void 0,s=void 0;for(r=t,s=0;s<8;s++){if(a=d(r)-t,g(a)<e)return r;if(o=p(r),g(o)<1e-6)break;r-=a/o}if(n=0,i=1,(r=t)<n)return n;if(r>i)return i;for(;n<i;){if(a=d(r),g(a-t)<e)return r;t>a?n=r:i=r,r=.5*(i-n)+n}return r};return c=3*e,s=3*(i-e)-c,o=1-c-s,h=3*n,u=3*(r-n)-h,l=1-h-u,function(t,e){return f(m(t,e))}(t,function(t){return 1/(200*t)}(a))}Object.defineProperty(e,"__esModule",{value:!0}),e.unsetBezierFunction=e.setBezierFunction=void 0;var r=n(0),a=n(1),o=function(t){return t&&t.__esModule?t:{default:t}}(a),s=function(t,e,n,r){return function(a){return i(a,t,e,n,r,1)}};e.setBezierFunction=function(t,e,n,i,a){return r.Tweenable.formulas[t]=(0,o.default)(s(e,n,i,a),{displayName:t,x1:e,y1:n,x2:i,y2:a})},e.unsetBezierFunction=function(t){return delete r.Tweenable.formulas[t]}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.interpolate=void 0;var i=n(0),r=new i.Tweenable;r._filterArgs=[],e.interpolate=function(t,e,n,a){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=(0,i.clone)(t),c=(0,i.composeEasingObject)(t,a);r.set({}),r._filterArgs=[s,t,e,c],r._applyFilter("tweenCreated"),r._applyFilter("beforeTween");var l=(0,i.tweenProps)(n,s,t,e,1,o,c);return r._applyFilter("afterTween"),l}},function(t,e,n){"use strict";var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"===("undefined"==typeof window?"undefined":r(window))&&(i=window)}t.exports=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.linear=function(t){return t},e.easeInQuad=function(t){return Math.pow(t,2)},e.easeOutQuad=function(t){return-(Math.pow(t-1,2)-1)},e.easeInOutQuad=function(t){return(t/=.5)<1?.5*Math.pow(t,2):-.5*((t-=2)*t-2)},e.easeInCubic=function(t){return Math.pow(t,3)},e.easeOutCubic=function(t){return Math.pow(t-1,3)+1},e.easeInOutCubic=function(t){return(t/=.5)<1?.5*Math.pow(t,3):.5*(Math.pow(t-2,3)+2)},e.easeInQuart=function(t){return Math.pow(t,4)},e.easeOutQuart=function(t){return-(Math.pow(t-1,4)-1)},e.easeInOutQuart=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},e.easeInQuint=function(t){return Math.pow(t,5)},e.easeOutQuint=function(t){return Math.pow(t-1,5)+1},e.easeInOutQuint=function(t){return(t/=.5)<1?.5*Math.pow(t,5):.5*(Math.pow(t-2,5)+2)},e.easeInSine=function(t){return 1-Math.cos(t*(Math.PI/2))},e.easeOutSine=function(t){return Math.sin(t*(Math.PI/2))},e.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)},e.easeInExpo=function(t){return 0===t?0:Math.pow(2,10*(t-1))},e.easeOutExpo=function(t){return 1===t?1:1-Math.pow(2,-10*t)},e.easeInOutExpo=function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},e.easeInCirc=function(t){return-(Math.sqrt(1-t*t)-1)},e.easeOutCirc=function(t){return Math.sqrt(1-Math.pow(t-1,2))},e.easeInOutCirc=function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},e.easeOutBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},e.easeInBack=function(t){var e=1.70158;return t*t*((e+1)*t-e)},e.easeOutBack=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},e.easeInOutBack=function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},e.elastic=function(t){return-1*Math.pow(4,-8*t)*Math.sin((6*t-1)*(2*Math.PI)/2)+1},e.swingFromTo=function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},e.swingFrom=function(t){var e=1.70158;return t*t*((e+1)*t-e)},e.swingTo=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},e.bounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},e.bouncePast=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?2-(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?2-(7.5625*(t-=2.25/2.75)*t+.9375):2-(7.5625*(t-=2.625/2.75)*t+.984375)},e.easeFromTo=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},e.easeFrom=function(t){return Math.pow(t,4)},e.easeTo=function(t){return Math.pow(t,.25)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(0);Object.defineProperty(e,"Tweenable",{enumerable:!0,get:function(){return i.Tweenable}}),Object.defineProperty(e,"tween",{enumerable:!0,get:function(){return i.tween}});var r=n(3);Object.defineProperty(e,"interpolate",{enumerable:!0,get:function(){return r.interpolate}});var a=n(2);Object.defineProperty(e,"setBezierFunction",{enumerable:!0,get:function(){return a.setBezierFunction}}),Object.defineProperty(e,"unsetBezierFunction",{enumerable:!0,get:function(){return a.unsetBezierFunction}})},function(t,e,n){"use strict";function i(t){return parseInt(t,16)}function r(t,e,n){[t,e,n].forEach(m),this._tokenData=b(t)}function a(t,e,n,i){var r=this._tokenData;E(i,r),[t,e,n].forEach(function(t){return w(t,r)})}function o(t,e,n,i){var r=this._tokenData;[t,e,n].forEach(function(t){return S(t,r)}),P(i,r)}Object.defineProperty(e,"__esModule",{value:!0}),e.tweenCreated=r,e.beforeTween=a,e.afterTween=o;var s=n(0),c=function(){var t=/[0-9.\-]+/g.source,e=/,\s*/.source;return new RegExp("rgb\\("+t+e+t+e+t+"\\)","g")}(),l=/#([0-9]|[a-f]){3,6}/gi,u=function(t,e){return t.map(function(t,n){return"_"+e+"_"+n})},h=function(t){var e=t.match(/([^\-0-9\.]+)/g);return e?(1===e.length||t.charAt(0).match(/(\d|\-|\.)/))&&e.unshift(""):e=["",""],e.join("VAL")},d=function(t){return t=t.replace(/#/,""),3===t.length&&(t=t.split(""),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),[i(t.substr(0,2)),i(t.substr(2,2)),i(t.substr(4,2))]},f=function(t){return"rgb("+d(t).join(",")+")"},p=function(t,e,n){var i=e.match(t),r=e.replace(t,"VAL");return i&&i.forEach(function(t){return r=r.replace("VAL",n(t))}),r},g=function(t){return p(l,t,f)},m=function(t){(0,s.each)(t,function(e){var n=t[e];"string"==typeof n&&n.match(l)&&(t[e]=g(n))})},v=function(t){var e=t.match(/[0-9.\-]+/g).map(Math.floor);return""+t.match(/^.*\(/)[0]+e.join(",")+")"},y=function(t){return p(c,t,v)},x=function(t){return t.match(/[0-9.\-]+/g)},b=function(t){var e={};return(0,s.each)(t,function(n){var i=t[n];"string"==typeof i&&(e[n]={formatString:h(i),chunkNames:u(x(i),n)})}),e},w=function(t,e){(0,s.each)(e,function(n){x(t[n]).forEach(function(i,r){return t[e[n].chunkNames[r]]=+i}),delete t[n]})},C=function(t,e){var n={};return e.forEach(function(e){n[e]=t[e],delete t[e]}),n},_=function(t,e){return e.map(function(e){return t[e]})},M=function(t,e){return e.forEach(function(e){return t=t.replace("VAL",+e.toFixed(4))}),t},S=function(t,e){(0,s.each)(e,function(n){var i=e[n],r=i.chunkNames,a=i.formatString,o=M(a,_(C(t,r),r));t[n]=y(o)})},E=function(t,e){(0,s.each)(e,function(n){var i=e[n].chunkNames,r=t[n];"string"==typeof r?function(){var e=r.split(" "),n=e[e.length-1];i.forEach(function(i,r){return t[i]=e[r]||n})}():i.forEach(function(e){return t[e]=r}),delete t[n]})},P=function(t,e){(0,s.each)(e,function(n){var i=e[n].chunkNames,r=(i.length,t[i[0]]);t[n]="string"==typeof r?i.map(function(e){var n=t[e];return delete t[e],n}).join(" "):r})}}])})},function(t,e){t.exports=function(t){function e(t){"undefined"!=typeof console&&(console.error||console.log)("[Script Loader]",t)}try{"undefined"!=typeof execScript&&function(){return"undefined"!=typeof attachEvent&&"undefined"==typeof addEventListener}()?execScript(t):"undefined"!=typeof eval?eval.call(null,t):e("EvalError: No eval function available")}catch(t){e(t)}}},function(t,e,n){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(r);a.default.util.Color=Class.extend({init:function(t,e,n){if(this.hashString=null,void 0===t||null===t)this.hashString="none";else if(t instanceof a.default.util.Color)"none"===t.hashString?this.hashString="none":(this.red=t.red,this.green=t.green,this.blue=t.blue);else if("string"==typeof t)if("none"===t)this.hashString="none";else{var r=this.hex2rgb(t);this.red=r[0],this.green=r[1],this.blue=r[2]}else"object"===(void 0===t?"undefined":i(t))&&"number"==typeof t.red?(this.red=t.red,this.green=t.green,this.blue=t.blue):t instanceof Array&&3===t.length?(this.red=t[0],this.green=t[1],this.blue=t[2]):"object"===(void 0===t?"undefined":i(t))&&"number"==typeof t.length&&3===t.length?(this.red=t[0],this.green=t[1],this.blue=t[2]):(this.red=parseInt(t),this.green=parseInt(e),this.blue=parseInt(n))},getHTMLStyle:function(){return"rgb("+this.red+","+this.green+","+this.blue+")"},getRed:function(){return this.red},getGreen:function(){return this.green},getBlue:function(){return this.blue},getIdealTextColor:function(){return 255-(.299*this.red+.587*this.green+.114*this.blue)<105?new a.default.util.Color(0,0,0):new a.default.util.Color(255,255,255)},hex2rgb:function(t){return t=t.replace("#",""),{0:parseInt(t.substr(0,2),16),1:parseInt(t.substr(2,2),16),2:parseInt(t.substr(4,2),16)}},hex:function(){return this.int2hex(this.red)+this.int2hex(this.green)+this.int2hex(this.blue)},hash:function(){return null===this.hashString&&(this.hashString="#"+this.hex()),this.hashString},int2hex:function(t){return t=Math.round(Math.min(Math.max(0,t),255)),"0123456789ABCDEF".charAt((t-t%16)/16)+"0123456789ABCDEF".charAt(t%16)},darker:function(t){if("none"===this.hashString)return this;var e=parseInt(Math.round(this.getRed()*(1-t))),n=parseInt(Math.round(this.getGreen()*(1-t))),i=parseInt(Math.round(this.getBlue()*(1-t)));return e<0?e=0:e>255&&(e=255),n<0?n=0:n>255&&(n=255),i<0?i=0:i>255&&(i=255),new a.default.util.Color(e,n,i)},lighter:function(t){if("none"===this.hashString)return this;var e=parseInt(Math.round(this.getRed()*(1+t))),n=parseInt(Math.round(this.getGreen()*(1+t))),i=parseInt(Math.round(this.getBlue()*(1+t)));return e<0?e=0:e>255&&(e=255),n<0?n=0:n>255&&(n=255),i<0?i=0:i>255&&(i=255),new a.default.util.Color(e,n,i)},fadeTo:function(t,e){var n=Math.floor(this.red+e*(t.red-this.red)+.5),i=Math.floor(this.green+e*(t.green-this.green)+.5),r=Math.floor(this.blue+e*(t.blue-this.blue)+.5);return new a.default.util.Color(n,i,r)},equals:function(t){return t instanceof a.default.util.Color&&this.hash()==t.hash()}}),t.exports=a.default.util.Color},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(2),s=i(o),c=n(1),l=i(c);a.default.VectorFigure=a.default.shape.node.Node.extend({NAME:"draw2d.VectorFigure",init:function(t,e,n){this.stroke=1,this.radius=0,this.bgColor=new a.default.util.Color("#ffffff"),this.color=new a.default.util.Color("#303030"),this.dasharray=null,this.strokeBeforeGlow=this.stroke,this.glowIsActive=!1,this._super(t,(0,l.default)({dasharray:this.setDashArray,radius:this.setRadius,bgColor:this.setBackgroundColor,color:this.setColor,stroke:this.setStroke},e),(0,l.default)({dasharray:this.getDashArray,radius:this.getRadius,bgColor:this.getBackgroundColor,color:this.getColor,stroke:this.getStroke},n))},setRadius:function(t){return this.radius=t,this.repaint(),this.fireEvent("change:radius",{value:this.radius}),this},getRadius:function(){return this.radius},setDashArray:function(t){return this.dasharray=t,this.repaint(),this.fireEvent("change:dashArray",{value:this.dasharray}),this},getDashArray:function(){return this.dasharray},setGlow:function(t){return t===this.glowIsActive?this:(this.glowIsActive=t,!0===t?(this.strokeBeforeGlow=this.getStroke(),this.setStroke(2.5*this.strokeBeforeGlow)):this.setStroke(this.strokeBeforeGlow),this)},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape)return t=t||{},t.x=this.getAbsoluteX(),t.y=this.getAbsoluteY(),void 0===t.stroke&&(null===this.color||0===this.stroke?t.stroke="none":t.stroke=this.color.hash()),s.default.ensureDefault(t,"stroke-width",this.stroke),s.default.ensureDefault(t,"fill",this.bgColor.hash()),s.default.ensureDefault(t,"dasharray",this.dasharray),this._super(t),this},setBackgroundColor:function(t){return this.bgColor=new a.default.util.Color(t),this.repaint(),this.fireEvent("change:bgColor",{value:this.bgColor}),this},getBackgroundColor:function(){return this.bgColor},setStroke:function(t){return this.stroke=t,this.repaint(),this.fireEvent("change:stroke",{value:this.stroke}),this},getStroke:function(){return this.stroke},setColor:function(t){return this.color=new a.default.util.Color(t),this.repaint(),this.fireEvent("change:color",{value:this.color}),this},getColor:function(){return this.color},getPersistentAttributes:function(){return(0,l.default)(this._super(),{bgColor:this.bgColor.hash(),color:this.color.hash(),stroke:this.stroke,radius:this.radius,dasharray:this.dasharray})},setPersistentAttributes:function(t){return this._super(t),void 0!==t.radius&&this.setRadius(t.radius),void 0!==t.bgColor&&this.setBackgroundColor(t.bgColor),void 0!==t.color&&this.setColor(t.color),void 0!==t.stroke&&this.setStroke(null===t.stroke?0:parseFloat(t.stroke)),"string"==typeof t.dasharray&&(this.dasharray=t.dasharray),this}})},function(t,e){function n(t,e){for(var n in t)e[n]=t[n]}function i(t,e){function i(){}var r=t.prototype;if(Object.create){var a=Object.create(e.prototype);r.__proto__=a}r instanceof e||(i.prototype=e.prototype,i=new i,n(r,i),t.prototype=r=i),r.constructor!=t&&("function"!=typeof t&&console.error("unknow Class:"+t),r.constructor=t)}function r(t,e){if(e instanceof Error)var n=e;else n=this,Error.call(this,rt[t]),this.message=rt[t],Error.captureStackTrace&&Error.captureStackTrace(this,r);return n.code=t,e&&(this.message=this.message+": "+e),n}function a(){}function o(t,e){this._node=t,this._refresh=e,s(this)}function s(t){var e=t._node._inc||t._node.ownerDocument._inc;if(t._inc!=e){var i=t._refresh(t._node);O(t,"length",i.length),n(i,t),t._inc=e}}function c(){}function l(t,e){for(var n=t.length;n--;)if(t[n]===e)return n}function u(t,e,n,i){if(i?e[l(e,i)]=n:e[e.length++]=n,t){n.ownerElement=t;var r=t.ownerDocument;r&&(i&&y(r,t,i),v(r,t,n))}}function h(t,e,n){var i=l(e,n);if(!(i>=0))throw r(ot,new Error(t.tagName+"@"+n));for(var a=e.length-1;i<a;)e[i]=e[++i];if(e.length=a,t){var o=t.ownerDocument;o&&(y(o,t,n),n.ownerElement=null)}}function d(t){if(this._features={},t)for(var e in t)this._features=t[e]}function f(){}function p(t){return"<"==t&&"&lt;"||">"==t&&"&gt;"||"&"==t&&"&amp;"||'"'==t&&"&quot;"||"&#"+t.charCodeAt()+";"}function g(t,e){if(e(t))return!0;if(t=t.firstChild)do{if(g(t,e))return!0}while(t=t.nextSibling)}function m(){}function v(t,e,n){t&&t._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&(e._nsMap[n.prefix?n.localName:""]=n.value)}function y(t,e,n,i){t&&t._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&delete e._nsMap[n.prefix?n.localName:""]}function x(t,e,n){if(t&&t._inc){t._inc++;var i=e.childNodes;if(n)i[i.length++]=n;else{for(var r=e.firstChild,a=0;r;)i[a++]=r,r=r.nextSibling;i.length=a}}}function b(t,e){var n=e.previousSibling,i=e.nextSibling;return n?n.nextSibling=i:t.firstChild=i,i?i.previousSibling=n:t.lastChild=n,x(t.ownerDocument,t),e}function w(t,e,n){var i=e.parentNode;if(i&&i.removeChild(e),e.nodeType===et){var r=e.firstChild;if(null==r)return e;var a=e.lastChild}else r=a=e;var o=n?n.previousSibling:t.lastChild;r.previousSibling=o,a.nextSibling=n,o?o.nextSibling=r:t.firstChild=r,null==n?t.lastChild=a:n.previousSibling=a;do{r.parentNode=t}while(r!==a&&(r=r.nextSibling));return x(t.ownerDocument||t,t),e.nodeType==et&&(e.firstChild=e.lastChild=null),e}function C(t,e){var n=e.parentNode;if(n){var i=t.lastChild;n.removeChild(e);var i=t.lastChild}var i=t.lastChild;return e.parentNode=t,e.previousSibling=i,e.nextSibling=null,i?i.nextSibling=e:t.firstChild=e,t.lastChild=e,x(t.ownerDocument,t,e),e}function _(){this._nsMap={}}function M(){}function S(){}function E(){}function P(){}function k(){}function A(){}function R(){}function D(){}function T(){}function L(){}function z(){}function N(){}function I(t,e){var n=[],i=9==this.nodeType?this.documentElement:this,r=i.prefix,a=i.namespaceURI;if(a&&null==r){var r=i.lookupPrefix(a);if(null==r)var o=[{namespace:a,prefix:null}]}return F(this,n,t,e,o),n.join("")}function B(t,e,n){var i=t.prefix||"",r=t.namespaceURI;if(!i&&!r)return!1;if("xml"===i&&"http://www.w3.org/XML/1998/namespace"===r||"http://www.w3.org/2000/xmlns/"==r)return!1;for(var a=n.length;a--;){var o=n[a];if(o.prefix==i)return o.namespace!=r}return!0}function F(t,e,n,i,r){if(i){if(!(t=i(t)))return;if("string"==typeof t)return void e.push(t)}switch(t.nodeType){case G:r||(r=[]);var a=(r.length,t.attributes),o=a.length,s=t.firstChild,c=t.tagName;n=W===t.namespaceURI||n,e.push("<",c);for(var l=0;l<o;l++){var u=a.item(l);"xmlns"==u.prefix?r.push({prefix:u.localName,namespace:u.value}):"xmlns"==u.nodeName&&r.push({prefix:"",namespace:u.value})}for(var l=0;l<o;l++){var u=a.item(l);if(B(u,n,r)){var h=u.prefix||"",d=u.namespaceURI,f=h?" xmlns:"+h:" xmlns";e.push(f,'="',d,'"'),r.push({prefix:h,namespace:d})}F(u,e,n,i,r)}if(B(t,n,r)){var h=t.prefix||"",d=t.namespaceURI,f=h?" xmlns:"+h:" xmlns";e.push(f,'="',d,'"'),r.push({prefix:h,namespace:d})}if(s||n&&!/^(?:meta|link|img|br|hr|input)$/i.test(c)){if(e.push(">"),n&&/^script$/i.test(c))for(;s;)s.data?e.push(s.data):F(s,e,n,i,r),s=s.nextSibling;else for(;s;)F(s,e,n,i,r),s=s.nextSibling;e.push("</",c,">")}else e.push("/>");return;case Q:case et:for(var s=t.firstChild;s;)F(s,e,n,i,r),s=s.nextSibling;return;case X:return e.push(" ",t.name,'="',t.value.replace(/[<&"]/g,p),'"');case $:return e.push(t.data.replace(/[<&]/g,p));case Y:return e.push("<![CDATA[",t.data,"]]>");case J:return e.push("\x3c!--",t.data,"--\x3e");case tt:var g=t.publicId,m=t.systemId;if(e.push("<!DOCTYPE ",t.name),g)e.push(' PUBLIC "',g),m&&"."!=m&&e.push('" "',m),e.push('">');else if(m&&"."!=m)e.push(' SYSTEM "',m,'">');else{var v=t.internalSubset;v&&e.push(" [",v,"]"),e.push(">")}return;case Z:return e.push("<?",t.target," ",t.data,"?>");case q:return e.push("&",t.nodeName,";");default:e.push("??",t.nodeName)}}function V(t,e,n){var i;switch(e.nodeType){case G:i=e.cloneNode(!1),i.ownerDocument=t;case et:break;case X:n=!0}if(i||(i=e.cloneNode(!1)),i.ownerDocument=t,i.parentNode=null,n)for(var r=e.firstChild;r;)i.appendChild(V(t,r,n)),r=r.nextSibling;return i}function H(t,e,n){var i=new e.constructor;for(var r in e){var o=e[r];"object"!=typeof o&&o!=i[r]&&(i[r]=o)}switch(e.childNodes&&(i.childNodes=new a),i.ownerDocument=t,i.nodeType){case G:var s=e.attributes,l=i.attributes=new c,u=s.length;l._ownerElement=i;for(var h=0;h<u;h++)i.setAttributeNode(H(t,s.item(h),!0));break;case X:n=!0}if(n)for(var d=e.firstChild;d;)i.appendChild(H(t,d,n)),d=d.nextSibling;return i}function O(t,e,n){t[e]=n}function j(t){switch(t.nodeType){case G:case et:var e=[];for(t=t.firstChild;t;)7!==t.nodeType&&8!==t.nodeType&&e.push(j(t)),t=t.nextSibling;return e.join("");default:return t.nodeValue}}var W="http://www.w3.org/1999/xhtml",U={},G=U.ELEMENT_NODE=1,X=U.ATTRIBUTE_NODE=2,$=U.TEXT_NODE=3,Y=U.CDATA_SECTION_NODE=4,q=U.ENTITY_REFERENCE_NODE=5,K=U.ENTITY_NODE=6,Z=U.PROCESSING_INSTRUCTION_NODE=7,J=U.COMMENT_NODE=8,Q=U.DOCUMENT_NODE=9,tt=U.DOCUMENT_TYPE_NODE=10,et=U.DOCUMENT_FRAGMENT_NODE=11,nt=U.NOTATION_NODE=12,it={},rt={},at=(it.INDEX_SIZE_ERR=(rt[1]="Index size error",1),it.DOMSTRING_SIZE_ERR=(rt[2]="DOMString size error",2),it.HIERARCHY_REQUEST_ERR=(rt[3]="Hierarchy request error",3)),ot=(it.WRONG_DOCUMENT_ERR=(rt[4]="Wrong document",4),it.INVALID_CHARACTER_ERR=(rt[5]="Invalid character",5),it.NO_DATA_ALLOWED_ERR=(rt[6]="No data allowed",6),it.NO_MODIFICATION_ALLOWED_ERR=(rt[7]="No modification allowed",7),it.NOT_FOUND_ERR=(rt[8]="Not found",8)),st=(it.NOT_SUPPORTED_ERR=(rt[9]="Not supported",9),it.INUSE_ATTRIBUTE_ERR=(rt[10]="Attribute in use",10));it.INVALID_STATE_ERR=(rt[11]="Invalid state",11),it.SYNTAX_ERR=(rt[12]="Syntax error",12),it.INVALID_MODIFICATION_ERR=(rt[13]="Invalid modification",13),it.NAMESPACE_ERR=(rt[14]="Invalid namespace",14),it.INVALID_ACCESS_ERR=(rt[15]="Invalid access",15);r.prototype=Error.prototype,n(it,r),a.prototype={length:0,item:function(t){return this[t]||null},toString:function(t,e){for(var n=[],i=0;i<this.length;i++)F(this[i],n,t,e);return n.join("")}},o.prototype.item=function(t){return s(this),this[t]},i(o,a),c.prototype={length:0,item:a.prototype.item,getNamedItem:function(t){for(var e=this.length;e--;){var n=this[e];if(n.nodeName==t)return n}},setNamedItem:function(t){var e=t.ownerElement;if(e&&e!=this._ownerElement)throw new r(st);var n=this.getNamedItem(t.nodeName);return u(this._ownerElement,this,t,n),n},setNamedItemNS:function(t){var e,n=t.ownerElement;if(n&&n!=this._ownerElement)throw new r(st);return e=this.getNamedItemNS(t.namespaceURI,t.localName),u(this._ownerElement,this,t,e),e},removeNamedItem:function(t){var e=this.getNamedItem(t);return h(this._ownerElement,this,e),e},removeNamedItemNS:function(t,e){var n=this.getNamedItemNS(t,e);return h(this._ownerElement,this,n),n},getNamedItemNS:function(t,e){for(var n=this.length;n--;){var i=this[n];if(i.localName==e&&i.namespaceURI==t)return i}return null}},d.prototype={hasFeature:function(t,e){var n=this._features[t.toLowerCase()];return!(!n||e&&!(e in n))},createDocument:function(t,e,n){var i=new m;if(i.implementation=this,i.childNodes=new a,i.doctype=n,n&&i.appendChild(n),e){var r=i.createElementNS(t,e);i.appendChild(r)}return i},createDocumentType:function(t,e,n){var i=new A;return i.name=t,i.nodeName=t,i.publicId=e,i.systemId=n,i}},f.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(t,e){return w(this,t,e)},replaceChild:function(t,e){this.insertBefore(t,e),e&&this.removeChild(e)},removeChild:function(t){return b(this,t)},appendChild:function(t){return this.insertBefore(t,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(t){return H(this.ownerDocument||this,this,t)},normalize:function(){for(var t=this.firstChild;t;){var e=t.nextSibling;e&&e.nodeType==$&&t.nodeType==$?(this.removeChild(e),t.appendData(e.data)):(t.normalize(),t=e)}},isSupported:function(t,e){return this.ownerDocument.implementation.hasFeature(t,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(t){for(var e=this;e;){var n=e._nsMap;if(n)for(var i in n)if(n[i]==t)return i;e=e.nodeType==X?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(t){for(var e=this;e;){var n=e._nsMap;if(n&&t in n)return n[t];e=e.nodeType==X?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(t){return null==this.lookupPrefix(t)}},n(U,f),n(U,f.prototype),m.prototype={nodeName:"#document",nodeType:Q,doctype:null,documentElement:null,_inc:1,insertBefore:function(t,e){if(t.nodeType==et){for(var n=t.firstChild;n;){var i=n.nextSibling;this.insertBefore(n,e),n=i}return t}return null==this.documentElement&&t.nodeType==G&&(this.documentElement=t),w(this,t,e),t.ownerDocument=this,t},removeChild:function(t){return this.documentElement==t&&(this.documentElement=null),b(this,t)},importNode:function(t,e){return V(this,t,e)},getElementById:function(t){var e=null;return g(this.documentElement,function(n){if(n.nodeType==G&&n.getAttribute("id")==t)return e=n,!0}),e},createElement:function(t){var e=new _;return e.ownerDocument=this,e.nodeName=t,e.tagName=t,e.childNodes=new a,(e.attributes=new c)._ownerElement=e,e},createDocumentFragment:function(){var t=new L;return t.ownerDocument=this,t.childNodes=new a,t},createTextNode:function(t){var e=new E;return e.ownerDocument=this,e.appendData(t),e},createComment:function(t){var e=new P;return e.ownerDocument=this,e.appendData(t),e},createCDATASection:function(t){var e=new k;return e.ownerDocument=this,e.appendData(t),e},createProcessingInstruction:function(t,e){var n=new z;return n.ownerDocument=this,n.tagName=n.target=t,n.nodeValue=n.data=e,n},createAttribute:function(t){var e=new M;return e.ownerDocument=this,e.name=t,e.nodeName=t,e.localName=t,e.specified=!0,e},createEntityReference:function(t){var e=new T;return e.ownerDocument=this,e.nodeName=t,e},createElementNS:function(t,e){var n=new _,i=e.split(":"),r=n.attributes=new c;return n.childNodes=new a,n.ownerDocument=this,n.nodeName=e,n.tagName=e,n.namespaceURI=t,2==i.length?(n.prefix=i[0],n.localName=i[1]):n.localName=e,r._ownerElement=n,n},createAttributeNS:function(t,e){var n=new M,i=e.split(":");return n.ownerDocument=this,n.nodeName=e,n.name=e,n.namespaceURI=t,n.specified=!0,2==i.length?(n.prefix=i[0],n.localName=i[1]):n.localName=e,n}},i(m,f),_.prototype={nodeType:G,hasAttribute:function(t){return null!=this.getAttributeNode(t)},getAttribute:function(t){var e=this.getAttributeNode(t);return e&&e.value||""},getAttributeNode:function(t){return this.attributes.getNamedItem(t)},setAttribute:function(t,e){var n=this.ownerDocument.createAttribute(t);n.value=n.nodeValue=""+e,this.setAttributeNode(n)},removeAttribute:function(t){var e=this.getAttributeNode(t);e&&this.removeAttributeNode(e)},appendChild:function(t){return t.nodeType===et?this.insertBefore(t,null):C(this,t)},setAttributeNode:function(t){return this.attributes.setNamedItem(t)},setAttributeNodeNS:function(t){return this.attributes.setNamedItemNS(t)},removeAttributeNode:function(t){return this.attributes.removeNamedItem(t.nodeName)},removeAttributeNS:function(t,e){var n=this.getAttributeNodeNS(t,e);n&&this.removeAttributeNode(n)},hasAttributeNS:function(t,e){return null!=this.getAttributeNodeNS(t,e)},getAttributeNS:function(t,e){var n=this.getAttributeNodeNS(t,e);return n&&n.value||""},setAttributeNS:function(t,e,n){var i=this.ownerDocument.createAttributeNS(t,e);i.value=i.nodeValue=""+n,this.setAttributeNode(i)},getAttributeNodeNS:function(t,e){return this.attributes.getNamedItemNS(t,e)},getElementsByTagName:function(t){return new o(this,function(e){var n=[];return g(e,function(i){i===e||i.nodeType!=G||"*"!==t&&i.tagName!=t||n.push(i)}),n})},getElementsByTagNameNS:function(t,e){return new o(this,function(n){var i=[];return g(n,function(r){r===n||r.nodeType!==G||"*"!==t&&r.namespaceURI!==t||"*"!==e&&r.localName!=e||i.push(r)}),i})}},m.prototype.getElementsByTagName=_.prototype.getElementsByTagName,m.prototype.getElementsByTagNameNS=_.prototype.getElementsByTagNameNS,i(_,f),M.prototype.nodeType=X,i(M,f),S.prototype={data:"",substringData:function(t,e){return this.data.substring(t,t+e)},appendData:function(t){t=this.data+t,this.nodeValue=this.data=t,this.length=t.length},insertData:function(t,e){this.replaceData(t,0,e)},appendChild:function(t){throw new Error(rt[at])},deleteData:function(t,e){this.replaceData(t,e,"")},replaceData:function(t,e,n){n=this.data.substring(0,t)+n+this.data.substring(t+e),this.nodeValue=this.data=n,this.length=n.length}},i(S,f),E.prototype={nodeName:"#text",nodeType:$,splitText:function(t){var e=this.data,n=e.substring(t);e=e.substring(0,t),this.data=this.nodeValue=e,this.length=e.length;var i=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}},i(E,S),P.prototype={nodeName:"#comment",nodeType:J},i(P,S),k.prototype={nodeName:"#cdata-section",nodeType:Y},i(k,S),A.prototype.nodeType=tt,i(A,f),R.prototype.nodeType=nt,i(R,f),D.prototype.nodeType=K,i(D,f),T.prototype.nodeType=q,i(T,f),L.prototype.nodeName="#document-fragment",L.prototype.nodeType=et,i(L,f),z.prototype.nodeType=Z,i(z,f),N.prototype.serializeToString=function(t,e,n){return I.call(t,e,n)},f.prototype.toString=I;try{Object.defineProperty&&(Object.defineProperty(o.prototype,"length",{get:function(){return s(this),this.$$length}}),Object.defineProperty(f.prototype,"textContent",{get:function(){return j(this)},set:function(t){switch(this.nodeType){case G:case et:for(;this.firstChild;)this.removeChild(this.firstChild);(t||String(t))&&this.appendChild(this.ownerDocument.createTextNode(t));break;default:this.data=t,this.value=t,this.nodeValue=t}}}),O=function(t,e,n){t["$$"+e]=n})}catch(t){}e.DOMImplementation=d,e.XMLSerializer=N},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(9),s=(i(o),n(11)),c=(i(s),n(13));i(c);t.exports=a.default,n(15),n(16),n(17),n(18),n(19),n(20),n(21),n(22),n(23),n(24),n(25),n(26),n(27),n(28),n(29),n(30),n(31),n(32),n(33),n(34),n(35),n(36),n(37),n(38),n(39),n(40),n(41),n(42),n(43),n(44),n(45),n(46),n(47),n(48),n(49),n(50),n(51),n(52),n(53),n(54),n(55),n(56),n(57),n(58),n(59),n(60),n(61),n(62),n(63),n(65),n(66),n(67),n(68),n(69),n(70),n(71),n(72),n(73),n(74),n(75),n(76),n(77),n(78),n(79),n(80),n(81),n(82),n(83),n(84),n(85),n(86),n(87),n(88),n(89),n(90),n(91),n(92),n(93),n(94),n(95),n(96),n(97),n(98),n(99),n(100),n(101),n(102),n(103),n(104),n(105),n(106),n(107),n(108),n(109),n(110),n(111),n(112),n(113),n(114),n(115),n(116),n(117),n(118),n(119),n(120),n(121),n(122),n(123),n(124),n(125),n(126),n(127),n(128),n(129),n(130),n(131),n(132),n(133),n(134),n(135),n(136),n(137),n(138),n(139),n(140),n(141),n(142),n(143),n(150),n(151),n(152),n(153),n(154),n(155),n(156),n(157),n(159),n(6),n(160),n(161),n(162),n(163),n(164),n(165),n(166),n(167),n(168),n(169),n(170),n(171),n(172),n(173),n(174),n(175),n(176),n(177),n(178),n(179),n(180),n(181),n(182),n(183),n(6),n(184),n(185),n(186),n(187),n(188),n(189),n(190),n(191),n(192),n(193),n(194),n(195),n(196),n(197),n(198),n(199),n(200),n(201),n(202),n(203),n(204),n(205),n(206),n(207),n(208),n(209),n(210),n(211),n(212),n(213),n(214),n(215),n(216),n(217),n(218),n(219);n(220),n(221),n(222),n(223),n(224),n(225),n(226),n(227),n(228),n(229),n(230),n(231),n(232),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(241),n(242),n(243),n(244),n(245),n(246),n(247),n(248),n(249),n(250),n(251),n(252),n(253),n(254),n(255),n(256),n(257),n(258),n(259),n(260),n(261),n(262),n(263),n(264),n(265),n(266),n(267),n(268),n(269),n(270),n(271),n(272),n(273),n(274),n(275),n(276),n(277),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(291),n(292),n(293),n(294),n(295),n(296),n(297),n(298),n(299),n(300),n(301),n(302),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(311),n(312),n(313),n(314),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(347),n(348),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385),n(386),n(387),n(388),n(389),n(390),n(391),n(392),n(393),n(394),n(395),n(396),n(397),n(398),n(399),n(400),n(401),n(402),n(403),n(404),n(405),n(406),n(407),n(408),n(409),n(410),n(411),n(412),n(413),n(414),n(415),n(416),n(417),n(418),n(419);n(420),n(421),n(422),n(423),n(424),n(425),n(426),n(427),n(428),n(429),n(430),n(431),n(432),n(433),n(434),n(435),n(436),n(437),n(438),n(439),n(440),n(441),n(442),n(443),n(444),n(445),n(447),n(448),n(449),n(450),n(451),n(452),n(453),n(454),n(455),n(461),n(462)},function(t,e,n){"use strict";n(4)(n(10))},function(t,e){t.exports='// ┌────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.0 - JavaScript Vector Library                          │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com)    │ \\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com)              │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n\n// ┌──────────────────────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.3.4 - JavaScript Events Library                                                │ \\\\\n// ├──────────────────────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://dmitry.baranovskiy.com/)          │ \\\\\n// │ Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. │ \\\\\n// └──────────────────────────────────────────────────────────────────────────────────────┘ \\\\\n\n// THIS FILES IS PATCHED BY FREEGROUP\n// you can\'t replace this file with a new version without migrate all changes\n// tagged with "FREEGROUP"\n//\n// Licensed under the Apache License, Version 2.0 (the "License");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an "AS IS" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ┌────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.4.2 - JavaScript Events Library                      │ \\\\\n// ├────────────────────────────────────────────────────────────┤ \\\\\n// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\\\\n// └────────────────────────────────────────────────────────────┘ \\\\\n(function (glob, factory) {\n    if (typeof define === "function" && define.amd) {\n        define("eve", function() {\n            return factory();\n        });\n    } else if (typeof exports === "object") {\n        module.exports = factory();\n    } else {\n        glob.eve = factory();\n    }\n}(this, function(){\n    var version = "0.4.2",\n        has = "hasOwnProperty",\n        separator = /[\\.\\/]/,\n        wildcard = "*",\n        fun = function () {},\n        numsort = function (a, b) {\n            return a - b;\n        },\n        current_event,\n        stop,\n        events = {n: {}},\n    /*\\\n     * eve\n     [ method ]\n\n     * Fires event with given `name`, given scope and other parameters.\n\n     > Arguments\n\n     - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\n     - scope (object) context for the event handlers\n     - varargs (...) the rest of arguments will be sent to event handlers\n\n     = (object) array of returned values from the listeners\n     \\*/\n        eve = function (name, scope) {\n            name = String(name);\n            var e = events,\n                oldstop = stop,\n                args = Array.prototype.slice.call(arguments, 2),\n                listeners = eve.listeners(name),\n                z = 0,\n                f = false,\n                l,\n                indexed = [],\n                queue = {},\n                out = [],\n                ce = current_event,\n                errors = [];\n            current_event = name;\n            stop = 0;\n            for (var i = 0, ii = listeners.length; i < ii; i++) if ("zIndex" in listeners[i]) {\n                indexed.push(listeners[i].zIndex);\n                if (listeners[i].zIndex < 0) {\n                    queue[listeners[i].zIndex] = listeners[i];\n                }\n            }\n            indexed.sort(numsort);\n            while (indexed[z] < 0) {\n                l = queue[indexed[z++]];\n                out.push(l.apply(scope, args));\n                if (stop) {\n                    stop = oldstop;\n                    return out;\n                }\n            }\n            for (i = 0; i < ii; i++) {\n                l = listeners[i];\n                if ("zIndex" in l) {\n                    if (l.zIndex == indexed[z]) {\n                        out.push(l.apply(scope, args));\n                        if (stop) {\n                            break;\n                        }\n                        do {\n                            z++;\n                            l = queue[indexed[z]];\n                            l && out.push(l.apply(scope, args));\n                            if (stop) {\n                                break;\n                            }\n                        } while (l)\n                    } else {\n                        queue[l.zIndex] = l;\n                    }\n                } else {\n                    out.push(l.apply(scope, args));\n                    if (stop) {\n                        break;\n                    }\n                }\n            }\n            stop = oldstop;\n            current_event = ce;\n            return out.length ? out : null;\n        };\n    // Undocumented. Debug only.\n    eve._events = events;\n    /*\\\n     * eve.listeners\n     [ method ]\n\n     * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\n\n     > Arguments\n\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated\n\n     = (array) array of event handlers\n     \\*/\n    eve.listeners = function (name) {\n        var names = name.split(separator),\n            e = events,\n            item,\n            items,\n            k,\n            i,\n            ii,\n            j,\n            jj,\n            nes,\n            es = [e],\n            out = [];\n        for (i = 0, ii = names.length; i < ii; i++) {\n            nes = [];\n            for (j = 0, jj = es.length; j < jj; j++) {\n                e = es[j].n;\n                items = [e[names[i]], e[wildcard]];\n                k = 2;\n                while (k--) {\n                    item = items[k];\n                    if (item) {\n                        nes.push(item);\n                        out = out.concat(item.f || []);\n                    }\n                }\n            }\n            es = nes;\n        }\n        return out;\n    };\n\n    /*\\\n     * eve.on\n     [ method ]\n     **\n     * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\n     | eve.on("*.under.*", f);\n     | eve("mouse.under.floor"); // triggers f\n     * Use @eve to trigger the listener.\n     **\n     > Arguments\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n     **\n     = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment.\n     > Example:\n     | eve.on("mouse", eatIt)(2);\n     | eve.on("mouse", scream);\n     | eve.on("mouse", catchIt)(1);\n     * This will ensure that `catchIt()` function will be called before `eatIt()`.\n     *\n     * If you want to put your handler before non-indexed handlers, specify a negative value.\n     * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.\n     \\*/\n    eve.on = function (name, f) {\n        name = String(name);\n        if (typeof f != "function") {\n            return function () {};\n        }\n        var names = name.split(separator),\n            e = events;\n        for (var i = 0, ii = names.length; i < ii; i++) {\n            e = e.n;\n            e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\n        }\n        e.f = e.f || [];\n        for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\n            return fun;\n        }\n        e.f.push(f);\n        return function (zIndex) {\n            if (+zIndex == +zIndex) {\n                f.zIndex = +zIndex;\n            }\n        };\n    };\n    /*\\\n     * eve.f\n     [ method ]\n     **\n     * Returns function that will fire given event with optional arguments.\n     * Arguments that will be passed to the result function will be also\n     * concated to the list of final arguments.\n     | el.onclick = eve.f("click", 1, 2);\n     | eve.on("click", function (a, b, c) {\n     |     console.log(a, b, c); // 1, 2, [event object]\n     | });\n     > Arguments\n     - event (string) event name\n     - varargs (…) and any other arguments\n     = (function) possible event handler function\n     \\*/\n    eve.f = function (event) {\n        var attrs = [].slice.call(arguments, 1);\n        return function () {\n            eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\n        };\n    };\n    /*\\\n     * eve.stop\n     [ method ]\n     **\n     * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\n     \\*/\n    eve.stop = function () {\n        stop = 1;\n    };\n    /*\\\n     * eve.nt\n     [ method ]\n     **\n     * Could be used inside event handler to figure out actual name of the event.\n     **\n     > Arguments\n     **\n     - subname (string) #optional subname of the event\n     **\n     = (string) name of the event, if `subname` is not specified\n     * or\n     = (boolean) `true`, if current event’s name contains `subname`\n     \\*/\n    eve.nt = function (subname) {\n        if (subname) {\n            return new RegExp("(?:\\\\.|\\\\/|^)" + subname + "(?:\\\\.|\\\\/|$)").test(current_event);\n        }\n        return current_event;\n    };\n    /*\\\n     * eve.nts\n     [ method ]\n     **\n     * Could be used inside event handler to figure out actual name of the event.\n     **\n     **\n     = (array) names of the event\n     \\*/\n    eve.nts = function () {\n        return current_event.split(separator);\n    };\n    /*\\\n     * eve.off\n     [ method ]\n     **\n     * Removes given function from the list of event listeners assigned to given name.\n     * If no arguments specified all the events will be cleared.\n     **\n     > Arguments\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n     \\*/\n    /*\\\n     * eve.unbind\n     [ method ]\n     **\n     * See @eve.off\n     \\*/\n    eve.off = eve.unbind = function (name, f) {\n        if (!name) {\n            eve._events = events = {n: {}};\n            return;\n        }\n        var names = name.split(separator),\n            e,\n            key,\n            splice,\n            i, ii, j, jj,\n            cur = [events];\n        for (i = 0, ii = names.length; i < ii; i++) {\n            for (j = 0; j < cur.length; j += splice.length - 2) {\n                splice = [j, 1];\n                e = cur[j].n;\n                if (names[i] != wildcard) {\n                    if (e[names[i]]) {\n                        splice.push(e[names[i]]);\n                    }\n                } else {\n                    for (key in e) if (e[has](key)) {\n                        splice.push(e[key]);\n                    }\n                }\n                cur.splice.apply(cur, splice);\n            }\n        }\n        for (i = 0, ii = cur.length; i < ii; i++) {\n            e = cur[i];\n            while (e.n) {\n                if (f) {\n                    if (e.f) {\n                        for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\n                            e.f.splice(j, 1);\n                            break;\n                        }\n                        !e.f.length && delete e.f;\n                    }\n                    for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n                        var funcs = e.n[key].f;\n                        for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\n                            funcs.splice(j, 1);\n                            break;\n                        }\n                        !funcs.length && delete e.n[key].f;\n                    }\n                } else {\n                    delete e.f;\n                    for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n                        delete e.n[key].f;\n                    }\n                }\n                e = e.n;\n            }\n        }\n    };\n    /*\\\n     * eve.once\n     [ method ]\n     **\n     * Binds given event handler with a given name to only run once then unbind itself.\n     | eve.once("login", f);\n     | eve("login"); // triggers f\n     | eve("login"); // no listeners\n     * Use @eve to trigger the listener.\n     **\n     > Arguments\n     **\n     - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n     - f (function) event handler function\n     **\n     = (function) same return function as @eve.on\n     \\*/\n    eve.once = function (name, f) {\n        var f2 = function () {\n            eve.unbind(name, f2);\n            return f.apply(this, arguments);\n        };\n        return eve.on(name, f2);\n    };\n    /*\\\n     * eve.version\n     [ property (string) ]\n     **\n     * Current version of the library.\n     \\*/\n    eve.version = version;\n    eve.toString = function () {\n        return "You are running Eve " + version;\n    };\n\n    return eve;\n}));\n\n// ┌────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library                      │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Core Module                                                        │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n    if (typeof define === "function" && define.amd) {\n        define("raphael.core", ["eve"], function(eve) {\n            return factory(eve);\n        });\n    } else if (typeof exports === "object") {\n        module.exports = factory(require("eve"));\n    } else {\n        glob.Raphael = factory(glob.eve);\n    }\n}(this, function (eve) {\n    /*\\\n     * Raphael\n     [ method ]\n     **\n     * Creates a canvas object on which to draw.\n     * You must do this first, as all future calls to drawing methods\n     * from this instance will be bound to this canvas.\n     > Parameters\n     **\n     - container (HTMLElement|string) DOM element or its ID which is going to be a parent for drawing surface\n     - width (number)\n     - height (number)\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - x (number)\n     - y (number)\n     - width (number)\n     - height (number)\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - all (array) (first 3 or 4 elements in the array are equal to [containerID, width, height] or [x, y, width, height]. The rest are element descriptions in format {type: type, <attributes>}). See @Paper.add.\n     - callback (function) #optional callback function which is going to be executed in the context of newly created paper\n     * or\n     - onReadyCallback (function) function that is going to be called on DOM ready event. You can also subscribe to this event via Eve’s “DOMLoad” event. In this case method returns `undefined`.\n     = (object) @Paper\n     > Usage\n     | // Each of the following examples create a canvas\n     | // that is 320px wide by 200px high.\n     | // Canvas is created at the viewport’s 10,50 coordinate.\n     | var paper = Raphael(10, 50, 320, 200);\n     | // Canvas is created at the top left corner of the #notepad element\n     | // (or its top right corner in dir="rtl" elements)\n     | var paper = Raphael(document.getElementById("notepad"), 320, 200);\n     | // Same as above\n     | var paper = Raphael("notepad", 320, 200);\n     | // Image dump\n     | var set = Raphael(["notepad", 320, 200, {\n     |     type: "rect",\n     |     x: 10,\n     |     y: 10,\n     |     width: 25,\n     |     height: 25,\n     |     stroke: "#f00"\n     | }, {\n     |     type: "text",\n     |     x: 30,\n     |     y: 40,\n     |     text: "Dump"\n     | }]);\n     \\*/\n    function R(first) {\n        if (R.is(first, "function")) {\n            return loaded ? first() : eve.on("raphael.DOMload", first);\n        } else if (R.is(first, array)) {\n            return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first);\n        } else {\n            var args = Array.prototype.slice.call(arguments, 0);\n            if (R.is(args[args.length - 1], "function")) {\n                var f = args.pop();\n                return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on("raphael.DOMload", function () {\n                    f.call(R._engine.create[apply](R, args));\n                });\n            } else {\n                return R._engine.create[apply](R, arguments);\n            }\n        }\n    }\n    R.version = "2.1.4";\n    R.eve = eve;\n    var loaded,\n        separator = /[, ]+/,\n        elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1},\n        formatrg = /\\{(\\d+)\\}/g,\n        proto = "prototype",\n        has = "hasOwnProperty",\n        g = {\n            doc: document,\n            win: window\n        },\n        oldRaphael = {\n            was: Object.prototype[has].call(g.win, "Raphael"),\n            is: g.win.Raphael\n        },\n        Paper = function () {\n            /*\\\n             * Paper.ca\n             [ property (object) ]\n             **\n             * Shortcut for @Paper.customAttributes\n             \\*/\n            /*\\\n             * Paper.customAttributes\n             [ property (object) ]\n             **\n             * If you have a set of attributes that you would like to represent\n             * as a function of some number you can do it easily with custom attributes:\n             > Usage\n             | paper.customAttributes.hue = function (num) {\n             |     num = num % 1;\n             |     return {fill: "hsb(" + num + ", 0.75, 1)"};\n             | };\n             | // Custom attribute “hue” will change fill\n             | // to be given hue with fixed saturation and brightness.\n             | // Now you can use it like this:\n             | var c = paper.circle(10, 10, 10).attr({hue: .45});\n             | // or even like this:\n             | c.animate({hue: 1}, 1e3);\n             |\n             | // You could also create custom attribute\n             | // with multiple parameters:\n             | paper.customAttributes.hsb = function (h, s, b) {\n             |     return {fill: "hsb(" + [h, s, b].join(",") + ")"};\n             | };\n             | c.attr({hsb: "0.5 .8 1"});\n             | c.animate({hsb: [1, 0, 0.5]}, 1e3);\n             \\*/\n            this.ca = this.customAttributes = {};\n        },\n        paperproto,\n        appendChild = "appendChild",\n        apply = "apply",\n        concat = "concat",\n        supportsTouch = (\'ontouchstart\' in g.win) || g.win.DocumentTouch && g.doc instanceof DocumentTouch, //taken from Modernizr touch test\n        E = "",\n        S = " ",\n        Str = String,\n        split = "split",\n        events = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[split](S),\n        touchMap = {\n            mousedown: "touchstart",\n            mousemove: "touchmove",\n            mouseup: "touchend"\n        },\n        lowerCase = Str.prototype.toLowerCase,\n        math = Math,\n        mmax = math.max,\n        mmin = math.min,\n        abs = math.abs,\n        pow = math.pow,\n        PI = math.PI,\n        nu = "number",\n        string = "string",\n        array = "array",\n        toString = "toString",\n        fillString = "fill",\n        objectToString = Object.prototype.toString,\n        paper = {},\n        push = "push",\n        ISURL = R._ISURL = /^url\\([\'"]?(.+?)[\'"]?\\)$/i,\n        colourRegExp = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?)%?\\s*\\))\\s*$/i,\n        isnan = {"NaN": 1, "Infinity": 1, "-Infinity": 1},\n        bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n        round = math.round,\n        setAttribute = "setAttribute",\n        toFloat = parseFloat,\n        toInt = parseInt,\n        upperCase = Str.prototype.toUpperCase,\n        availableAttrs = R._availableAttrs = {\n            "arrow-end": "none",\n            "arrow-start": "none",\n            blur: 0,\n            "clip-rect": "0 0 1e9 1e9",\n            cursor: "default",\n            cx: 0,\n            cy: 0,\n            fill: "#fff",\n            "fill-opacity": 1,\n            font: \'10px "Arial"\',\n            "font-family": \'"Arial"\',\n            "font-size": "10",\n            "font-style": "normal",\n            "font-weight": 400,\n            gradient: 0,\n            height: 0,\n            href: "http://raphaeljs.com/",\n            "letter-spacing": 0,\n            opacity: 1,\n            path: "M0,0",\n            r: 0,\n            rx: 0,\n            ry: 0,\n            src: "",\n            stroke: "#000",\n            "stroke-dasharray": "",\n            "stroke-linecap": "butt",\n            "stroke-linejoin": "butt",\n            "stroke-miterlimit": 0,\n            "stroke-opacity": 1,\n            "stroke-width": 1,\n            "stroke-scale": false, // FreeGroup: draw2d enhancement\n            target: "_blank",\n            "text-anchor": "middle",\n            title: "Raphael",\n            transform: "",\n            width: 0,\n            x: 0,\n            y: 0\n        },\n        availableAnimAttrs = R._availableAnimAttrs = {\n            blur: nu,\n            "clip-rect": "csv",\n            cx: nu,\n            cy: nu,\n            fill: "colour",\n            "fill-opacity": nu,\n            "font-size": nu,\n            height: nu,\n            opacity: nu,\n            path: "path",\n            r: nu,\n            rx: nu,\n            ry: nu,\n            stroke: "colour",\n            "stroke-opacity": nu,\n            "stroke-width": nu,\n            transform: "transform",\n            width: nu,\n            x: nu,\n            y: nu\n        },\n        whitespace = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]/g,\n        commaSpaces = /[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/,\n        hsrg = {hs: 1, rg: 1},\n        p2s = /,?([achlmqrstvxz]),?/gi,\n        pathCommand = /([achlmrqstvz])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/ig,\n        tCommand = /([rstm])[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*)+)/ig,\n        pathValues = /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,?[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*/ig,\n        radial_gradient = R._radial_gradient = /^r(?:\\(([^,]+?)[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*,[\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029]*([^\\)]+?)\\))?/,\n        eldata = {},\n        sortByKey = function (a, b) {\n            return a.key - b.key;\n        },\n        sortByNumber = function (a, b) {\n            return toFloat(a) - toFloat(b);\n        },\n        fun = function () {},\n        pipe = function (x) {\n            return x;\n        },\n        rectPath = R._rectPath = function (x, y, w, h, r) {\n            if (r) {\n                return [["M", x + r, y], ["l", w - r * 2, 0], ["a", r, r, 0, 0, 1, r, r], ["l", 0, h - r * 2], ["a", r, r, 0, 0, 1, -r, r], ["l", r * 2 - w, 0], ["a", r, r, 0, 0, 1, -r, -r], ["l", 0, r * 2 - h], ["a", r, r, 0, 0, 1, r, -r], ["z"]];\n            }\n            return [["M", x, y], ["l", w, 0], ["l", 0, h], ["l", -w, 0], ["z"]];\n        },\n        ellipsePath = function (x, y, rx, ry) {\n            if (ry == null) {\n                ry = rx;\n            }\n            return [["M", x, y], ["m", 0, -ry], ["a", rx, ry, 0, 1, 1, 0, 2 * ry], ["a", rx, ry, 0, 1, 1, 0, -2 * ry], ["z"]];\n        },\n        getPath = R._getPath = {\n            path: function (el) {\n                return el.attr("path");\n            },\n            circle: function (el) {\n                var a = el.attrs;\n                return ellipsePath(a.cx, a.cy, a.r);\n            },\n            ellipse: function (el) {\n                var a = el.attrs;\n                return ellipsePath(a.cx, a.cy, a.rx, a.ry);\n            },\n            rect: function (el) {\n                var a = el.attrs;\n                return rectPath(a.x, a.y, a.width, a.height, a.r);\n            },\n            image: function (el) {\n                var a = el.attrs;\n                return rectPath(a.x, a.y, a.width, a.height);\n            },\n            text: function (el) {\n                var bbox = el._getBBox();\n                return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n            },\n            set : function(el) {\n                var bbox = el._getBBox();\n                return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n            }\n        },\n    /*\\\n     * Raphael.mapPath\n     [ method ]\n     **\n     * Transform the path string with given matrix.\n     > Parameters\n     - path (string) path string\n     - matrix (object) see @Matrix\n     = (string) transformed path string\n     \\*/\n        mapPath = R.mapPath = function (path, matrix) {\n            if (!matrix) {\n                return path;\n            }\n            var x, y, i, j, ii, jj, pathi;\n            path = path2curve(path);\n            for (i = 0, ii = path.length; i < ii; i++) {\n                pathi = path[i];\n                for (j = 1, jj = pathi.length; j < jj; j += 2) {\n                    x = matrix.x(pathi[j], pathi[j + 1]);\n                    y = matrix.y(pathi[j], pathi[j + 1]);\n                    pathi[j] = x;\n                    pathi[j + 1] = y;\n                }\n            }\n            return path;\n        };\n\n    R._g = g;\n    /*\\\n     * Raphael.type\n     [ property (string) ]\n     **\n     * Can be “SVG”, “VML” or empty, depending on browser support.\n     \\*/\n    R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML");\n    if (R.type == "VML") {\n        var d = g.doc.createElement("div"),\n            b;\n        d.innerHTML = \'<v:shape adj="1"/>\';\n        b = d.firstChild;\n        b.style.behavior = "url(#default#VML)";\n        if (!(b && typeof b.adj == "object")) {\n            return (R.type = E);\n        }\n        d = null;\n    }\n    /*\\\n     * Raphael.svg\n     [ property (boolean) ]\n     **\n     * `true` if browser supports SVG.\n     \\*/\n    /*\\\n     * Raphael.vml\n     [ property (boolean) ]\n     **\n     * `true` if browser supports VML.\n     \\*/\n    R.svg = !(R.vml = R.type == "VML");\n    R._Paper = Paper;\n    /*\\\n     * Raphael.fn\n     [ property (object) ]\n     **\n     * You can add your own method to the canvas. For example if you want to draw a pie chart,\n     * you can create your own pie chart function and ship it as a Raphaël plugin. To do this\n     * you need to extend the `Raphael.fn` object. You should modify the `fn` object before a\n     * Raphaël instance is created, otherwise it will take no effect. Please note that the\n     * ability for namespaced plugins was removed in Raphael 2.0. It is up to the plugin to\n     * ensure any namespacing ensures proper context.\n     > Usage\n     | Raphael.fn.arrow = function (x1, y1, x2, y2, size) {\n     |     return this.path( ... );\n     | };\n     | // or create namespace\n     | Raphael.fn.mystuff = {\n     |     arrow: function () {…},\n     |     star: function () {…},\n     |     // etc…\n     | };\n     | var paper = Raphael(10, 10, 630, 480);\n     | // then use it\n     | paper.arrow(10, 10, 30, 30, 5).attr({fill: "#f00"});\n     | paper.mystuff.arrow();\n     | paper.mystuff.star();\n     \\*/\n    R.fn = paperproto = Paper.prototype = R.prototype;\n    R._id = 0;\n    R._oid = 0;\n    /*\\\n     * Raphael.is\n     [ method ]\n     **\n     * Handful of replacements for `typeof` operator.\n     > Parameters\n     - o (…) any object or primitive\n     - type (string) name of the type, i.e. “string”, “function”, “number”, etc.\n     = (boolean) is given value is of given type\n     \\*/\n    R.is = function (o, type) {\n        type = lowerCase.call(type);\n        if (type == "finite") {\n            return !isnan[has](+o);\n        }\n        if (type == "array") {\n            return o instanceof Array;\n        }\n        return  (type == "null" && o === null) ||\n            (type == typeof o && o !== null) ||\n            (type == "object" && o === Object(o)) ||\n            (type == "array" && Array.isArray && Array.isArray(o)) ||\n            objectToString.call(o).slice(8, -1).toLowerCase() == type;\n    };\n\n    function clone(obj) {\n        if (typeof obj == "function" || Object(obj) !== obj) {\n            return obj;\n        }\n        var res = new obj.constructor;\n        for (var key in obj) if (obj[has](key)) {\n            res[key] = clone(obj[key]);\n        }\n        return res;\n    }\n\n    /*\\\n     * Raphael.angle\n     [ method ]\n     **\n     * Returns angle between two or three points\n     > Parameters\n     - x1 (number) x coord of first point\n     - y1 (number) y coord of first point\n     - x2 (number) x coord of second point\n     - y2 (number) y coord of second point\n     - x3 (number) #optional x coord of third point\n     - y3 (number) #optional y coord of third point\n     = (number) angle in degrees.\n     \\*/\n    R.angle = function (x1, y1, x2, y2, x3, y3) {\n        if (x3 == null) {\n            var x = x1 - x2,\n                y = y1 - y2;\n            if (!x && !y) {\n                return 0;\n            }\n            return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\n        } else {\n            return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3);\n        }\n    };\n    /*\\\n     * Raphael.rad\n     [ method ]\n     **\n     * Transform angle to radians\n     > Parameters\n     - deg (number) angle in degrees\n     = (number) angle in radians.\n     \\*/\n    R.rad = function (deg) {\n        return deg % 360 * PI / 180;\n    };\n    /*\\\n     * Raphael.deg\n     [ method ]\n     **\n     * Transform angle to degrees\n     > Parameters\n     - rad (number) angle in radians\n     = (number) angle in degrees.\n     \\*/\n    R.deg = function (rad) {\n        return Math.round ((rad * 180 / PI% 360)* 1000) / 1000;\n    };\n    /*\\\n     * Raphael.snapTo\n     [ method ]\n     **\n     * Snaps given value to given grid.\n     > Parameters\n     - values (array|number) given array of values or step of the grid\n     - value (number) value to adjust\n     - tolerance (number) #optional tolerance for snapping. Default is `10`.\n     = (number) adjusted value.\n     \\*/\n    R.snapTo = function (values, value, tolerance) {\n        tolerance = R.is(tolerance, "finite") ? tolerance : 10;\n        if (R.is(values, array)) {\n            var i = values.length;\n            while (i--) if (abs(values[i] - value) <= tolerance) {\n                return values[i];\n            }\n        } else {\n            values = +values;\n            var rem = value % values;\n            if (rem < tolerance) {\n                return value - rem;\n            }\n            if (rem > values - tolerance) {\n                return value - rem + values;\n            }\n        }\n        return value;\n    };\n\n    /*\\\n     * Raphael.createUUID\n     [ method ]\n     **\n     * Returns RFC4122, version 4 ID\n     \\*/\n    var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) {\n        return function () {\n            return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(uuidRegEx, uuidReplacer).toUpperCase();\n        };\n    })(/[xy]/g, function (c) {\n        var r = math.random() * 16 | 0,\n            v = c == "x" ? r : (r & 3 | 8);\n        return v.toString(16);\n    });\n\n    /*\\\n     * Raphael.setWindow\n     [ method ]\n     **\n     * Used when you need to draw in `&lt;iframe>`. Switched window to the iframe one.\n     > Parameters\n     - newwin (window) new window object\n     \\*/\n    R.setWindow = function (newwin) {\n        eve("raphael.setWindow", R, g.win, newwin);\n        g.win = newwin;\n        g.doc = g.win.document;\n        if (R._engine.initWin) {\n            R._engine.initWin(g.win);\n        }\n    };\n    var toHex = function (color) {\n            if (R.vml) {\n                // http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/\n                var trim = /^\\s+|\\s+$/g;\n                var bod;\n                try {\n                    var docum = new ActiveXObject("htmlfile");\n                    docum.write("<body>");\n                    docum.close();\n                    bod = docum.body;\n                } catch(e) {\n                    bod = createPopup().document.body;\n                }\n                var range = bod.createTextRange();\n                toHex = cacher(function (color) {\n                    try {\n                        bod.style.color = Str(color).replace(trim, E);\n                        var value = range.queryCommandValue("ForeColor");\n                        value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16);\n                        return "#" + ("000000" + value.toString(16)).slice(-6);\n                    } catch(e) {\n                        return "none";\n                    }\n                });\n            } else {\n                var i = g.doc.createElement("i");\n                i.title = "Rapha\\xebl Colour Picker";\n                i.style.display = "none";\n                g.doc.body.appendChild(i);\n                toHex = cacher(function (color) {\n                    i.style.color = color;\n                    return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue("color");\n                });\n            }\n            return toHex(color);\n        },\n        hsbtoString = function () {\n            return "hsb(" + [this.h, this.s, this.b] + ")";\n        },\n        hsltoString = function () {\n            return "hsl(" + [this.h, this.s, this.l] + ")";\n        },\n        rgbtoString = function () {\n            return this.hex;\n        },\n        prepareRGB = function (r, g, b) {\n            if (g == null && R.is(r, "object") && "r" in r && "g" in r && "b" in r) {\n                b = r.b;\n                g = r.g;\n                r = r.r;\n            }\n            if (g == null && R.is(r, string)) {\n                var clr = R.getRGB(r);\n                r = clr.r;\n                g = clr.g;\n                b = clr.b;\n            }\n            if (r > 1 || g > 1 || b > 1) {\n                r /= 255;\n                g /= 255;\n                b /= 255;\n            }\n\n            return [r, g, b];\n        },\n        packageRGB = function (r, g, b, o) {\n            r *= 255;\n            g *= 255;\n            b *= 255;\n            var rgb = {\n                r: r,\n                g: g,\n                b: b,\n                hex: R.rgb(r, g, b),\n                toString: rgbtoString\n            };\n            R.is(o, "finite") && (rgb.opacity = o);\n            return rgb;\n        };\n\n    /*\\\n     * Raphael.color\n     [ method ]\n     **\n     * Parses the color string and returns object with all values for the given color.\n     > Parameters\n     - clr (string) color string in one of the supported formats (see @Raphael.getRGB)\n     = (object) Combined RGB & HSB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••,\n     o     error (boolean) `true` if string can’t be parsed,\n     o     h (number) hue,\n     o     s (number) saturation,\n     o     v (number) value (brightness),\n     o     l (number) lightness\n     o }\n     \\*/\n    R.color = function (clr) {\n        var rgb;\n        if (R.is(clr, "object") && "h" in clr && "s" in clr && "b" in clr) {\n            rgb = R.hsb2rgb(clr);\n            clr.r = rgb.r;\n            clr.g = rgb.g;\n            clr.b = rgb.b;\n            clr.hex = rgb.hex;\n        } else if (R.is(clr, "object") && "h" in clr && "s" in clr && "l" in clr) {\n            rgb = R.hsl2rgb(clr);\n            clr.r = rgb.r;\n            clr.g = rgb.g;\n            clr.b = rgb.b;\n            clr.hex = rgb.hex;\n        } else {\n            if (R.is(clr, "string")) {\n                clr = R.getRGB(clr);\n            }\n            if (R.is(clr, "object") && "r" in clr && "g" in clr && "b" in clr) {\n                rgb = R.rgb2hsl(clr);\n                clr.h = rgb.h;\n                clr.s = rgb.s;\n                clr.l = rgb.l;\n                rgb = R.rgb2hsb(clr);\n                clr.v = rgb.b;\n            } else {\n                clr = {hex: "none"};\n                clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n            }\n        }\n        clr.toString = rgbtoString;\n        return clr;\n    };\n    /*\\\n     * Raphael.hsb2rgb\n     [ method ]\n     **\n     * Converts HSB values to RGB object.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - v (number) value or brightness\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••\n     o }\n     \\*/\n    R.hsb2rgb = function (h, s, v, o) {\n        if (this.is(h, "object") && "h" in h && "s" in h && "b" in h) {\n            v = h.b;\n            s = h.s;\n            o = h.o;\n            h = h.h;\n        }\n        h *= 360;\n        var R, G, B, X, C;\n        h = (h % 360) / 60;\n        C = v * s;\n        X = C * (1 - abs(h % 2 - 1));\n        R = G = B = v - C;\n\n        h = ~~h;\n        R += [C, X, 0, 0, X, C][h];\n        G += [X, C, C, X, 0, 0][h];\n        B += [0, 0, X, C, C, X][h];\n        return packageRGB(R, G, B, o);\n    };\n    /*\\\n     * Raphael.hsl2rgb\n     [ method ]\n     **\n     * Converts HSL values to RGB object.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - l (number) luminosity\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue,\n     o     hex (string) color in HTML/CSS format: #••••••\n     o }\n     \\*/\n    R.hsl2rgb = function (h, s, l, o) {\n        if (this.is(h, "object") && "h" in h && "s" in h && "l" in h) {\n            l = h.l;\n            s = h.s;\n            h = h.h;\n        }\n        if (h > 1 || s > 1 || l > 1) {\n            h /= 360;\n            s /= 100;\n            l /= 100;\n        }\n        h *= 360;\n        var R, G, B, X, C;\n        h = (h % 360) / 60;\n        C = 2 * s * (l < .5 ? l : 1 - l);\n        X = C * (1 - abs(h % 2 - 1));\n        R = G = B = l - C / 2;\n\n        h = ~~h;\n        R += [C, X, 0, 0, X, C][h];\n        G += [X, C, C, X, 0, 0][h];\n        B += [0, 0, X, C, C, X][h];\n        return packageRGB(R, G, B, o);\n    };\n    /*\\\n     * Raphael.rgb2hsb\n     [ method ]\n     **\n     * Converts RGB values to HSB object.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (object) HSB object in format:\n     o {\n     o     h (number) hue\n     o     s (number) saturation\n     o     b (number) brightness\n     o }\n     \\*/\n    R.rgb2hsb = function (r, g, b) {\n        b = prepareRGB(r, g, b);\n        r = b[0];\n        g = b[1];\n        b = b[2];\n\n        var H, S, V, C;\n        V = mmax(r, g, b);\n        C = V - mmin(r, g, b);\n        H = (C == 0 ? null :\n                V == r ? (g - b) / C :\n                    V == g ? (b - r) / C + 2 :\n                    (r - g) / C + 4\n        );\n        H = ((H + 360) % 6) * 60 / 360;\n        S = C == 0 ? 0 : C / V;\n        return {h: H, s: S, b: V, toString: hsbtoString};\n    };\n    /*\\\n     * Raphael.rgb2hsl\n     [ method ]\n     **\n     * Converts RGB values to HSL object.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (object) HSL object in format:\n     o {\n     o     h (number) hue\n     o     s (number) saturation\n     o     l (number) luminosity\n     o }\n     \\*/\n    R.rgb2hsl = function (r, g, b) {\n        b = prepareRGB(r, g, b);\n        r = b[0];\n        g = b[1];\n        b = b[2];\n\n        var H, S, L, M, m, C;\n        M = mmax(r, g, b);\n        m = mmin(r, g, b);\n        C = M - m;\n        H = (C == 0 ? null :\n            M == r ? (g - b) / C :\n                M == g ? (b - r) / C + 2 :\n                (r - g) / C + 4);\n        H = ((H + 360) % 6) * 60 / 360;\n        L = (M + m) / 2;\n        S = (C == 0 ? 0 :\n            L < .5 ? C / (2 * L) :\n            C / (2 - 2 * L));\n        return {h: H, s: S, l: L, toString: hsltoString};\n    };\n    R._path2string = function () {\n        return this.join(",").replace(p2s, "$1");\n    };\n    function repush(array, item) {\n        for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n            return array.push(array.splice(i, 1)[0]);\n        }\n    }\n    function cacher(f, scope, postprocessor) {\n        function newf() {\n            var arg = Array.prototype.slice.call(arguments, 0),\n                args = arg.join("\\u2400"),\n                cache = newf.cache = newf.cache || {},\n                count = newf.count = newf.count || [];\n            if (cache[has](args)) {\n                repush(count, args);\n                return postprocessor ? postprocessor(cache[args]) : cache[args];\n            }\n            count.length >= 1e3 && delete cache[count.shift()];\n            count.push(args);\n            cache[args] = f[apply](scope, arg);\n            return postprocessor ? postprocessor(cache[args]) : cache[args];\n        }\n        return newf;\n    }\n\n    var preload = R._preload = function (src, f) {\n        var img = g.doc.createElement("img");\n        img.style.cssText = "position:absolute;left:-9999em;top:-9999em";\n        img.onload = function () {\n            f.call(this);\n            this.onload = null;\n            g.doc.body.removeChild(this);\n        };\n        img.onerror = function () {\n            g.doc.body.removeChild(this);\n        };\n        g.doc.body.appendChild(img);\n        img.src = src;\n    };\n\n    function clrToString() {\n        return this.hex;\n    }\n\n    /*\\\n     * Raphael.getRGB\n     [ method ]\n     **\n     * Parses colour string as RGB object\n     > Parameters\n     - colour (string) colour string in one of formats:\n     # <ul>\n     #     <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n     #     <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n     #     <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n     #     <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n     #     <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n     #     <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n     #     <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsl(•••, •••, •••) — same as hsb</li>\n     #     <li>hsl(•••%, •••%, •••%) — same as hsb</li>\n     # </ul>\n     = (object) RGB object in format:\n     o {\n     o     r (number) red,\n     o     g (number) green,\n     o     b (number) blue\n     o     hex (string) color in HTML/CSS format: #••••••,\n     o     error (boolean) true if string can’t be parsed\n     o }\n     \\*/\n    R.getRGB = cacher(function (colour) {\n        if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) {\n            return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString};\n        }\n        if (colour == "none") {\n            return {r: -1, g: -1, b: -1, hex: "none", toString: clrToString};\n        }\n        !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour));\n        var res,\n            red,\n            green,\n            blue,\n            opacity,\n            t,\n            values,\n            rgb = colour.match(colourRegExp);\n        if (rgb) {\n            if (rgb[2]) {\n                blue = toInt(rgb[2].substring(5), 16);\n                green = toInt(rgb[2].substring(3, 5), 16);\n                red = toInt(rgb[2].substring(1, 3), 16);\n            }\n            if (rgb[3]) {\n                blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n                green = toInt((t = rgb[3].charAt(2)) + t, 16);\n                red = toInt((t = rgb[3].charAt(1)) + t, 16);\n            }\n            if (rgb[4]) {\n                values = rgb[4][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == "%" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == "%" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == "%" && (blue *= 2.55);\n                rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == "%" && (opacity /= 100);\n            }\n            if (rgb[5]) {\n                values = rgb[5][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == "%" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == "%" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == "%" && (blue *= 2.55);\n                (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\\xb0") && (red /= 360);\n                rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == "%" && (opacity /= 100);\n                return R.hsb2rgb(red, green, blue, opacity);\n            }\n            if (rgb[6]) {\n                values = rgb[6][split](commaSpaces);\n                red = toFloat(values[0]);\n                values[0].slice(-1) == "%" && (red *= 2.55);\n                green = toFloat(values[1]);\n                values[1].slice(-1) == "%" && (green *= 2.55);\n                blue = toFloat(values[2]);\n                values[2].slice(-1) == "%" && (blue *= 2.55);\n                (values[0].slice(-3) == "deg" || values[0].slice(-1) == "\\xb0") && (red /= 360);\n                rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3]));\n                values[3] && values[3].slice(-1) == "%" && (opacity /= 100);\n                return R.hsl2rgb(red, green, blue, opacity);\n            }\n            rgb = {r: red, g: green, b: blue, toString: clrToString};\n            rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1);\n            R.is(opacity, "finite") && (rgb.opacity = opacity);\n            return rgb;\n        }\n        return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString};\n    }, R);\n    /*\\\n     * Raphael.hsb\n     [ method ]\n     **\n     * Converts HSB values to hex representation of the colour.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - b (number) value or brightness\n     = (string) hex representation of the colour.\n     \\*/\n    R.hsb = cacher(function (h, s, b) {\n        return R.hsb2rgb(h, s, b).hex;\n    });\n    /*\\\n     * Raphael.hsl\n     [ method ]\n     **\n     * Converts HSL values to hex representation of the colour.\n     > Parameters\n     - h (number) hue\n     - s (number) saturation\n     - l (number) luminosity\n     = (string) hex representation of the colour.\n     \\*/\n    R.hsl = cacher(function (h, s, l) {\n        return R.hsl2rgb(h, s, l).hex;\n    });\n    /*\\\n     * Raphael.rgb\n     [ method ]\n     **\n     * Converts RGB values to hex representation of the colour.\n     > Parameters\n     - r (number) red\n     - g (number) green\n     - b (number) blue\n     = (string) hex representation of the colour.\n     \\*/\n    R.rgb = cacher(function (r, g, b) {\n        function round(x) { return (x + 0.5) | 0; }\n        return "#" + (16777216 | round(b) | (round(g) << 8) | (round(r) << 16)).toString(16).slice(1);\n    });\n    /*\\\n     * Raphael.getColor\n     [ method ]\n     **\n     * On each call returns next colour in the spectrum. To reset it back to red call @Raphael.getColor.reset\n     > Parameters\n     - value (number) #optional brightness, default is `0.75`\n     = (string) hex representation of the colour.\n     \\*/\n    R.getColor = function (value) {\n        var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75},\n            rgb = this.hsb2rgb(start.h, start.s, start.b);\n        start.h += .075;\n        if (start.h > 1) {\n            start.h = 0;\n            start.s -= .2;\n            start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b});\n        }\n        return rgb.hex;\n    };\n    /*\\\n     * Raphael.getColor.reset\n     [ method ]\n     **\n     * Resets spectrum position for @Raphael.getColor back to red.\n     \\*/\n    R.getColor.reset = function () {\n        delete this.start;\n    };\n\n    // http://schepers.cc/getting-to-the-point\n    function catmullRom2bezier(crp, z) {\n        var d = [];\n        for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n            var p = [\n                {x: +crp[i - 2], y: +crp[i - 1]},\n                {x: +crp[i],     y: +crp[i + 1]},\n                {x: +crp[i + 2], y: +crp[i + 3]},\n                {x: +crp[i + 4], y: +crp[i + 5]}\n            ];\n            if (z) {\n                if (!i) {\n                    p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\n                } else if (iLen - 4 == i) {\n                    p[3] = {x: +crp[0], y: +crp[1]};\n                } else if (iLen - 2 == i) {\n                    p[2] = {x: +crp[0], y: +crp[1]};\n                    p[3] = {x: +crp[2], y: +crp[3]};\n                }\n            } else {\n                if (iLen - 4 == i) {\n                    p[3] = p[2];\n                } else if (!i) {\n                    p[0] = {x: +crp[i], y: +crp[i + 1]};\n                }\n            }\n            d.push(["C",\n                (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n                (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n                (p[1].x + 6 * p[2].x - p[3].x) / 6,\n                (p[1].y + 6*p[2].y - p[3].y) / 6,\n                p[2].x,\n                p[2].y\n            ]);\n        }\n\n        return d;\n    }\n    /*\\\n     * Raphael.parsePathString\n     [ method ]\n     **\n     * Utility method\n     **\n     * Parses given path string into an array of arrays of path segments.\n     > Parameters\n     - pathString (string|array) path string or array of segments (in the last case it will be returned straight away)\n     = (array) array of segments.\n     \\*/\n    R.parsePathString = function (pathString) {\n        if (!pathString) {\n            return null;\n        }\n        var pth = paths(pathString);\n        if (pth.arr) {\n            return pathClone(pth.arr);\n        }\n\n        var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0},\n            data = [];\n        if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption\n            data = pathClone(pathString);\n        }\n        if (!data.length) {\n            Str(pathString).replace(pathCommand, function (a, b, c) {\n                var params = [],\n                    name = b.toLowerCase();\n                c.replace(pathValues, function (a, b) {\n                    b && params.push(+b);\n                });\n                if (name == "m" && params.length > 2) {\n                    data.push([b][concat](params.splice(0, 2)));\n                    name = "l";\n                    b = b == "m" ? "l" : "L";\n                }\n                if (name == "r") {\n                    data.push([b][concat](params));\n                } else while (params.length >= paramCounts[name]) {\n                    data.push([b][concat](params.splice(0, paramCounts[name])));\n                    if (!paramCounts[name]) {\n                        break;\n                    }\n                }\n            });\n        }\n        data.toString = R._path2string;\n        pth.arr = pathClone(data);\n        return data;\n    };\n    /*\\\n     * Raphael.parseTransformString\n     [ method ]\n     **\n     * Utility method\n     **\n     * Parses given path string into an array of transformations.\n     > Parameters\n     - TString (string|array) transform string or array of transformations (in the last case it will be returned straight away)\n     = (array) array of transformations.\n     \\*/\n    R.parseTransformString = cacher(function (TString) {\n        if (!TString) {\n            return null;\n        }\n        var paramCounts = {r: 3, s: 4, t: 2, m: 6},\n            data = [];\n        if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption\n            data = pathClone(TString);\n        }\n        if (!data.length) {\n            Str(TString).replace(tCommand, function (a, b, c) {\n                var params = [],\n                    name = lowerCase.call(b);\n                c.replace(pathValues, function (a, b) {\n                    b && params.push(+b);\n                });\n                data.push([b][concat](params));\n            });\n        }\n        data.toString = R._path2string;\n        return data;\n    });\n    // PATHS\n    var paths = function (ps) {\n        var p = paths.ps = paths.ps || {};\n        if (p[ps]) {\n            p[ps].sleep = 100;\n        } else {\n            p[ps] = {\n                sleep: 100\n            };\n        }\n        setTimeout(function () {\n            for (var key in p) if (p[has](key) && key != ps) {\n                p[key].sleep--;\n                !p[key].sleep && delete p[key];\n            }\n        });\n        return p[ps];\n    };\n    /*\\\n     * Raphael.findDotsAtSegment\n     [ method ]\n     **\n     * Utility method\n     **\n     * Find dot coordinates on the given cubic bezier curve at the given t.\n     > Parameters\n     - p1x (number) x of the first point of the curve\n     - p1y (number) y of the first point of the curve\n     - c1x (number) x of the first anchor of the curve\n     - c1y (number) y of the first anchor of the curve\n     - c2x (number) x of the second anchor of the curve\n     - c2y (number) y of the second anchor of the curve\n     - p2x (number) x of the second point of the curve\n     - p2y (number) y of the second point of the curve\n     - t (number) position on the curve (0..1)\n     = (object) point information in format:\n     o {\n     o     x: (number) x coordinate of the point\n     o     y: (number) y coordinate of the point\n     o     m: {\n     o         x: (number) x coordinate of the left anchor\n     o         y: (number) y coordinate of the left anchor\n     o     }\n     o     n: {\n     o         x: (number) x coordinate of the right anchor\n     o         y: (number) y coordinate of the right anchor\n     o     }\n     o     start: {\n     o         x: (number) x coordinate of the start of the curve\n     o         y: (number) y coordinate of the start of the curve\n     o     }\n     o     end: {\n     o         x: (number) x coordinate of the end of the curve\n     o         y: (number) y coordinate of the end of the curve\n     o     }\n     o     alpha: (number) angle of the curve derivative at the point\n     o }\n     \\*/\n    R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n        var t1 = 1 - t,\n            t13 = pow(t1, 3),\n            t12 = pow(t1, 2),\n            t2 = t * t,\n            t3 = t2 * t,\n            x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n            y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n            mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n            my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n            nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n            ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n            ax = t1 * p1x + t * c1x,\n            ay = t1 * p1y + t * c1y,\n            cx = t1 * c2x + t * p2x,\n            cy = t1 * c2y + t * p2y,\n            alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI);\n        (mx > nx || my < ny) && (alpha += 180);\n        return {\n            x: x,\n            y: y,\n            m: {x: mx, y: my},\n            n: {x: nx, y: ny},\n            start: {x: ax, y: ay},\n            end: {x: cx, y: cy},\n            alpha: alpha\n        };\n    };\n    /*\\\n     * Raphael.bezierBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Return bounding box of a given cubic bezier curve\n     > Parameters\n     - p1x (number) x of the first point of the curve\n     - p1y (number) y of the first point of the curve\n     - c1x (number) x of the first anchor of the curve\n     - c1y (number) y of the first anchor of the curve\n     - c2x (number) x of the second anchor of the curve\n     - c2y (number) y of the second anchor of the curve\n     - p2x (number) x of the second point of the curve\n     - p2y (number) y of the second point of the curve\n     * or\n     - bez (array) array of six points for bezier curve\n     = (object) point information in format:\n     o {\n     o     min: {\n     o         x: (number) x coordinate of the left point\n     o         y: (number) y coordinate of the top point\n     o     }\n     o     max: {\n     o         x: (number) x coordinate of the right point\n     o         y: (number) y coordinate of the bottom point\n     o     }\n     o }\n     \\*/\n    R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n        if (!R.is(p1x, "array")) {\n            p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n        }\n        var bbox = curveDim.apply(null, p1x);\n        return {\n            x: bbox.min.x,\n            y: bbox.min.y,\n            x2: bbox.max.x,\n            y2: bbox.max.y,\n            width: bbox.max.x - bbox.min.x,\n            height: bbox.max.y - bbox.min.y\n        };\n    };\n    /*\\\n     * Raphael.isPointInsideBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if given point is inside bounding boxes.\n     > Parameters\n     - bbox (string) bounding box\n     - x (string) x coordinate of the point\n     - y (string) y coordinate of the point\n     = (boolean) `true` if point inside\n     \\*/\n    R.isPointInsideBBox = function (bbox, x, y) {\n        return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2;\n    };\n    /*\\\n     * Raphael.isBBoxIntersect\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if two bounding boxes intersect\n     > Parameters\n     - bbox1 (string) first bounding box\n     - bbox2 (string) second bounding box\n     = (boolean) `true` if they intersect\n     \\*/\n    R.isBBoxIntersect = function (bbox1, bbox2) {\n        var i = R.isPointInsideBBox;\n        return i(bbox2, bbox1.x, bbox1.y)\n            || i(bbox2, bbox1.x2, bbox1.y)\n            || i(bbox2, bbox1.x, bbox1.y2)\n            || i(bbox2, bbox1.x2, bbox1.y2)\n            || i(bbox1, bbox2.x, bbox2.y)\n            || i(bbox1, bbox2.x2, bbox2.y)\n            || i(bbox1, bbox2.x, bbox2.y2)\n            || i(bbox1, bbox2.x2, bbox2.y2)\n            || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n            && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n    };\n    function base3(t, p1, p2, p3, p4) {\n        var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n            t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n        return t * t2 - 3 * p1 + 3 * p2;\n    }\n    function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n        if (z == null) {\n            z = 1;\n        }\n        z = z > 1 ? 1 : z < 0 ? 0 : z;\n        var z2 = z / 2,\n            n = 12,\n            Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],\n            Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n            sum = 0;\n        for (var i = 0; i < n; i++) {\n            var ct = z2 * Tvalues[i] + z2,\n                xbase = base3(ct, x1, x2, x3, x4),\n                ybase = base3(ct, y1, y2, y3, y4),\n                comb = xbase * xbase + ybase * ybase;\n            sum += Cvalues[i] * math.sqrt(comb);\n        }\n        return z2 * sum;\n    }\n    function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n        if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n            return;\n        }\n        var t = 1,\n            step = t / 2,\n            t2 = t - step,\n            l,\n            e = .01;\n        l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n        while (abs(l - ll) > e) {\n            step /= 2;\n            t2 += (l < ll ? 1 : -1) * step;\n            l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n        }\n        return t2;\n    }\n    function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n        if (\n            mmax(x1, x2) < mmin(x3, x4) ||\n            mmin(x1, x2) > mmax(x3, x4) ||\n            mmax(y1, y2) < mmin(y3, y4) ||\n            mmin(y1, y2) > mmax(y3, y4)\n        ) {\n            return;\n        }\n        var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n            ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n            denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n        if (!denominator) {\n            return;\n        }\n        var px = nx / denominator,\n            py = ny / denominator,\n            px2 = +px.toFixed(2),\n            py2 = +py.toFixed(2);\n        if (\n            px2 < +mmin(x1, x2).toFixed(2) ||\n            px2 > +mmax(x1, x2).toFixed(2) ||\n            px2 < +mmin(x3, x4).toFixed(2) ||\n            px2 > +mmax(x3, x4).toFixed(2) ||\n            py2 < +mmin(y1, y2).toFixed(2) ||\n            py2 > +mmax(y1, y2).toFixed(2) ||\n            py2 < +mmin(y3, y4).toFixed(2) ||\n            py2 > +mmax(y3, y4).toFixed(2)\n        ) {\n            return;\n        }\n        return {x: px, y: py};\n    }\n    function inter(bez1, bez2) {\n        return interHelper(bez1, bez2);\n    }\n    function interCount(bez1, bez2) {\n        return interHelper(bez1, bez2, 1);\n    }\n    function interHelper(bez1, bez2, justCount) {\n        var bbox1 = R.bezierBBox(bez1),\n            bbox2 = R.bezierBBox(bez2);\n        if (!R.isBBoxIntersect(bbox1, bbox2)) {\n            return justCount ? 0 : [];\n        }\n        var l1 = bezlen.apply(0, bez1),\n            l2 = bezlen.apply(0, bez2),\n            n1 = mmax(~~(l1 / 5), 1),\n            n2 = mmax(~~(l2 / 5), 1),\n            dots1 = [],\n            dots2 = [],\n            xy = {},\n            res = justCount ? 0 : [];\n        for (var i = 0; i < n1 + 1; i++) {\n            var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1));\n            dots1.push({x: p.x, y: p.y, t: i / n1});\n        }\n        for (i = 0; i < n2 + 1; i++) {\n            p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2));\n            dots2.push({x: p.x, y: p.y, t: i / n2});\n        }\n        for (i = 0; i < n1; i++) {\n            for (var j = 0; j < n2; j++) {\n                var di = dots1[i],\n                    di1 = dots1[i + 1],\n                    dj = dots2[j],\n                    dj1 = dots2[j + 1],\n                    ci = abs(di1.x - di.x) < .001 ? "y" : "x",\n                    cj = abs(dj1.x - dj.x) < .001 ? "y" : "x",\n                    is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n                if (is) {\n                    if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n                        continue;\n                    }\n                    xy[is.x.toFixed(4)] = is.y.toFixed(4);\n                    var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n                        t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n                    if (t1 >= 0 && t1 <= 1.001 && t2 >= 0 && t2 <= 1.001) {\n                        if (justCount) {\n                            res++;\n                        } else {\n                            res.push({\n                                x: is.x,\n                                y: is.y,\n                                t1: mmin(t1, 1),\n                                t2: mmin(t2, 1)\n                            });\n                        }\n                    }\n                }\n            }\n        }\n        return res;\n    }\n    /*\\\n     * Raphael.pathIntersection\n     [ method ]\n     **\n     * Utility method\n     **\n     * Finds intersections of two paths\n     > Parameters\n     - path1 (string) path string\n     - path2 (string) path string\n     = (array) dots of intersection\n     o [\n     o     {\n     o         x: (number) x coordinate of the point\n     o         y: (number) y coordinate of the point\n     o         t1: (number) t value for segment of path1\n     o         t2: (number) t value for segment of path2\n     o         segment1: (number) order number for segment of path1\n     o         segment2: (number) order number for segment of path2\n     o         bez1: (array) eight coordinates representing beziér curve for the segment of path1\n     o         bez2: (array) eight coordinates representing beziér curve for the segment of path2\n     o     }\n     o ]\n     \\*/\n    R.pathIntersection = function (path1, path2) {\n        return interPathHelper(path1, path2);\n    };\n    R.pathIntersectionNumber = function (path1, path2) {\n        return interPathHelper(path1, path2, 1);\n    };\n    function interPathHelper(path1, path2, justCount) {\n        path1 = R._path2curve(path1);\n        path2 = R._path2curve(path2);\n        var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n            res = justCount ? 0 : [];\n        for (var i = 0, ii = path1.length; i < ii; i++) {\n            var pi = path1[i];\n            if (pi[0] == "M") {\n                x1 = x1m = pi[1];\n                y1 = y1m = pi[2];\n            } else {\n                if (pi[0] == "C") {\n                    bez1 = [x1, y1].concat(pi.slice(1));\n                    x1 = bez1[6];\n                    y1 = bez1[7];\n                } else {\n                    bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n                    x1 = x1m;\n                    y1 = y1m;\n                }\n                for (var j = 0, jj = path2.length; j < jj; j++) {\n                    var pj = path2[j];\n                    if (pj[0] == "M") {\n                        x2 = x2m = pj[1];\n                        y2 = y2m = pj[2];\n                    } else {\n                        if (pj[0] == "C") {\n                            bez2 = [x2, y2].concat(pj.slice(1));\n                            x2 = bez2[6];\n                            y2 = bez2[7];\n                        } else {\n                            bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n                            x2 = x2m;\n                            y2 = y2m;\n                        }\n                        var intr = interHelper(bez1, bez2, justCount);\n                        if (justCount) {\n                            res += intr;\n                        } else {\n                            for (var k = 0, kk = intr.length; k < kk; k++) {\n                                intr[k].segment1 = i;\n                                intr[k].segment2 = j;\n                                intr[k].bez1 = bez1;\n                                intr[k].bez2 = bez2;\n                            }\n                            res = res.concat(intr);\n                        }\n                    }\n                }\n            }\n        }\n        return res;\n    }\n    /*\\\n     * Raphael.isPointInsidePath\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns `true` if given point is inside a given closed path.\n     > Parameters\n     - path (string) path string\n     - x (number) x of the point\n     - y (number) y of the point\n     = (boolean) true, if point is inside the path\n     \\*/\n    R.isPointInsidePath = function (path, x, y) {\n        var bbox = R.pathBBox(path);\n        return R.isPointInsideBBox(bbox, x, y) &&\n            interPathHelper(path, [["M", x, y], ["H", bbox.x2 + 10]], 1) % 2 == 1;\n    };\n    R._removedFactory = function (methodname) {\n        return function () {\n            eve("raphael.log", null, "Rapha\\xebl: you are calling to method \\u201c" + methodname + "\\u201d of removed object", methodname);\n        };\n    };\n    /*\\\n     * Raphael.pathBBox\n     [ method ]\n     **\n     * Utility method\n     **\n     * Return bounding box of a given path\n     > Parameters\n     - path (string) path string\n     = (object) bounding box\n     o {\n     o     x: (number) x coordinate of the left top point of the box\n     o     y: (number) y coordinate of the left top point of the box\n     o     x2: (number) x coordinate of the right bottom point of the box\n     o     y2: (number) y coordinate of the right bottom point of the box\n     o     width: (number) width of the box\n     o     height: (number) height of the box\n     o     cx: (number) x coordinate of the center of the box\n     o     cy: (number) y coordinate of the center of the box\n     o }\n     \\*/\n    var pathDimensions = R.pathBBox = function (path) {\n            var pth = paths(path);\n            if (pth.bbox) {\n                var b= pth.bbox;\n                return {x: b.x, y: b.y, width: b.width, height: b.height, x2: b.x2, y2: b.y2} ; // FREEGROUP FIX!!!!!!\n                // raphael reuse the returned bbox. You must clone it here if the caller need the bbxo for\n                //further calculation\n            }\n            if (!path) {\n                return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0};\n            }\n            path = path2curve(path);\n            var x = 0,\n                y = 0,\n                X = [],\n                Y = [],\n                p;\n            for (var i = 0, ii = path.length; i < ii; i++) {\n                p = path[i];\n                if (p[0] == "M") {\n                    x = p[1];\n                    y = p[2];\n                    X.push(x);\n                    Y.push(y);\n                } else {\n                    var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n                    X = X[concat](dim.min.x, dim.max.x);\n                    Y = Y[concat](dim.min.y, dim.max.y);\n                    x = p[5];\n                    y = p[6];\n                }\n            }\n            var xmin = mmin[apply](0, X),\n                ymin = mmin[apply](0, Y),\n                xmax = mmax[apply](0, X),\n                ymax = mmax[apply](0, Y),\n                width = xmax - xmin,\n                height = ymax - ymin,\n                bb = {\n                    x: xmin,\n                    y: ymin,\n                    x2: xmax,\n                    y2: ymax,\n                    width: width,\n                    height: height,\n                    cx: xmin + width / 2,\n                    cy: ymin + height / 2\n                };\n            pth.bbox = clone(bb);\n            return bb;\n        },\n        pathClone = function (pathArray) {\n            var res = clone(pathArray);\n            res.toString = R._path2string;\n            return res;\n        },\n        pathToRelative = R._pathToRelative = function (pathArray) {\n            var pth = paths(pathArray);\n            if (pth.rel) {\n                return pathClone(pth.rel);\n            }\n            if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\n                pathArray = R.parsePathString(pathArray);\n            }\n            var res = [],\n                x = 0,\n                y = 0,\n                mx = 0,\n                my = 0,\n                start = 0;\n            if (pathArray[0][0] == "M") {\n                x = pathArray[0][1];\n                y = pathArray[0][2];\n                mx = x;\n                my = y;\n                start++;\n                res.push(["M", x, y]);\n            }\n            for (var i = start, ii = pathArray.length; i < ii; i++) {\n                var r = res[i] = [],\n                    pa = pathArray[i];\n                if (pa[0] != lowerCase.call(pa[0])) {\n                    r[0] = lowerCase.call(pa[0]);\n                    switch (r[0]) {\n                        case "a":\n                            r[1] = pa[1];\n                            r[2] = pa[2];\n                            r[3] = pa[3];\n                            r[4] = pa[4];\n                            r[5] = pa[5];\n                            r[6] = +(pa[6] - x).toFixed(3);\n                            r[7] = +(pa[7] - y).toFixed(3);\n                            break;\n                        case "v":\n                            r[1] = +(pa[1] - y).toFixed(3);\n                            break;\n                        case "m":\n                            mx = pa[1];\n                            my = pa[2];\n                        default:\n                            for (var j = 1, jj = pa.length; j < jj; j++) {\n                                r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3);\n                            }\n                    }\n                } else {\n                    r = res[i] = [];\n                    if (pa[0] == "m") {\n                        mx = pa[1] + x;\n                        my = pa[2] + y;\n                    }\n                    for (var k = 0, kk = pa.length; k < kk; k++) {\n                        res[i][k] = pa[k];\n                    }\n                }\n                var len = res[i].length;\n                switch (res[i][0]) {\n                    case "z":\n                        x = mx;\n                        y = my;\n                        break;\n                    case "h":\n                        x += +res[i][len - 1];\n                        break;\n                    case "v":\n                        y += +res[i][len - 1];\n                        break;\n                    default:\n                        x += +res[i][len - 2];\n                        y += +res[i][len - 1];\n                }\n            }\n            res.toString = R._path2string;\n            pth.rel = pathClone(res);\n            return res;\n        },\n        pathToAbsolute = R._pathToAbsolute = function (pathArray) {\n            var pth = paths(pathArray);\n            if (pth.abs) {\n                return pathClone(pth.abs);\n            }\n            if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption\n                pathArray = R.parsePathString(pathArray);\n            }\n            if (!pathArray || !pathArray.length) {\n                return [["M", 0, 0]];\n            }\n            var res = [],\n                x = 0,\n                y = 0,\n                mx = 0,\n                my = 0,\n                start = 0;\n            if (pathArray[0][0] == "M") {\n                x = +pathArray[0][1];\n                y = +pathArray[0][2];\n                mx = x;\n                my = y;\n                start++;\n                res[0] = ["M", x, y];\n            }\n            var crz = pathArray.length == 3 && pathArray[0][0] == "M" && pathArray[1][0].toUpperCase() == "R" && pathArray[2][0].toUpperCase() == "Z";\n            for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n                res.push(r = []);\n                pa = pathArray[i];\n                if (pa[0] != upperCase.call(pa[0])) {\n                    r[0] = upperCase.call(pa[0]);\n                    switch (r[0]) {\n                        case "A":\n                            r[1] = pa[1];\n                            r[2] = pa[2];\n                            r[3] = pa[3];\n                            r[4] = pa[4];\n                            r[5] = pa[5];\n                            r[6] = +(pa[6] + x);\n                            r[7] = +(pa[7] + y);\n                            break;\n                        case "V":\n                            r[1] = +pa[1] + y;\n                            break;\n                        case "H":\n                            r[1] = +pa[1] + x;\n                            break;\n                        case "R":\n                            var dots = [x, y][concat](pa.slice(1));\n                            for (var j = 2, jj = dots.length; j < jj; j++) {\n                                dots[j] = +dots[j] + x;\n                                dots[++j] = +dots[j] + y;\n                            }\n                            res.pop();\n                            res = res[concat](catmullRom2bezier(dots, crz));\n                            break;\n                        case "M":\n                            mx = +pa[1] + x;\n                            my = +pa[2] + y;\n                        default:\n                            for (j = 1, jj = pa.length; j < jj; j++) {\n                                r[j] = +pa[j] + ((j % 2) ? x : y);\n                            }\n                    }\n                } else if (pa[0] == "R") {\n                    dots = [x, y][concat](pa.slice(1));\n                    res.pop();\n                    res = res[concat](catmullRom2bezier(dots, crz));\n                    r = ["R"][concat](pa.slice(-2));\n                } else {\n                    for (var k = 0, kk = pa.length; k < kk; k++) {\n                        r[k] = pa[k];\n                    }\n                }\n                switch (r[0]) {\n                    case "Z":\n                        x = mx;\n                        y = my;\n                        break;\n                    case "H":\n                        x = r[1];\n                        break;\n                    case "V":\n                        y = r[1];\n                        break;\n                    case "M":\n                        mx = r[r.length - 2];\n                        my = r[r.length - 1];\n                    default:\n                        x = r[r.length - 2];\n                        y = r[r.length - 1];\n                }\n            }\n            res.toString = R._path2string;\n            pth.abs = pathClone(res);\n            return res;\n        },\n        l2c = function (x1, y1, x2, y2) {\n            return [x1, y1, x2, y2, x2, y2];\n        },\n        q2c = function (x1, y1, ax, ay, x2, y2) {\n            var _13 = 1 / 3,\n                _23 = 2 / 3;\n            return [\n                _13 * x1 + _23 * ax,\n                _13 * y1 + _23 * ay,\n                _13 * x2 + _23 * ax,\n                _13 * y2 + _23 * ay,\n                x2,\n                y2\n            ];\n        },\n        a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n            // for more information of where this math came from visit:\n            // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n            var _120 = PI * 120 / 180,\n                rad = PI / 180 * (+angle || 0),\n                res = [],\n                xy,\n                rotate = cacher(function (x, y, rad) {\n                    var X = x * math.cos(rad) - y * math.sin(rad),\n                        Y = x * math.sin(rad) + y * math.cos(rad);\n                    return {x: X, y: Y};\n                });\n            if (!recursive) {\n                xy = rotate(x1, y1, -rad);\n                x1 = xy.x;\n                y1 = xy.y;\n                xy = rotate(x2, y2, -rad);\n                x2 = xy.x;\n                y2 = xy.y;\n                var cos = math.cos(PI / 180 * angle),\n                    sin = math.sin(PI / 180 * angle),\n                    x = (x1 - x2) / 2,\n                    y = (y1 - y2) / 2;\n                var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\n                if (h > 1) {\n                    h = math.sqrt(h);\n                    rx = h * rx;\n                    ry = h * ry;\n                }\n                var rx2 = rx * rx,\n                    ry2 = ry * ry,\n                    k = (large_arc_flag == sweep_flag ? -1 : 1) *\n                        math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n                    cx = k * rx * y / ry + (x1 + x2) / 2,\n                    cy = k * -ry * x / rx + (y1 + y2) / 2,\n                    f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n                    f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n                f1 = x1 < cx ? PI - f1 : f1;\n                f2 = x2 < cx ? PI - f2 : f2;\n                f1 < 0 && (f1 = PI * 2 + f1);\n                f2 < 0 && (f2 = PI * 2 + f2);\n                if (sweep_flag && f1 > f2) {\n                    f1 = f1 - PI * 2;\n                }\n                if (!sweep_flag && f2 > f1) {\n                    f2 = f2 - PI * 2;\n                }\n            } else {\n                f1 = recursive[0];\n                f2 = recursive[1];\n                cx = recursive[2];\n                cy = recursive[3];\n            }\n            var df = f2 - f1;\n            if (abs(df) > _120) {\n                var f2old = f2,\n                    x2old = x2,\n                    y2old = y2;\n                f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n                x2 = cx + rx * math.cos(f2);\n                y2 = cy + ry * math.sin(f2);\n                res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n            }\n            df = f2 - f1;\n            var c1 = math.cos(f1),\n                s1 = math.sin(f1),\n                c2 = math.cos(f2),\n                s2 = math.sin(f2),\n                t = math.tan(df / 4),\n                hx = 4 / 3 * rx * t,\n                hy = 4 / 3 * ry * t,\n                m1 = [x1, y1],\n                m2 = [x1 + hx * s1, y1 - hy * c1],\n                m3 = [x2 + hx * s2, y2 - hy * c2],\n                m4 = [x2, y2];\n            m2[0] = 2 * m1[0] - m2[0];\n            m2[1] = 2 * m1[1] - m2[1];\n            if (recursive) {\n                return [m2, m3, m4][concat](res);\n            } else {\n                res = [m2, m3, m4][concat](res).join()[split](",");\n                var newres = [];\n                for (var i = 0, ii = res.length; i < ii; i++) {\n                    newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n                }\n                return newres;\n            }\n        },\n        findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n            var t1 = 1 - t;\n            return {\n                x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\n                y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\n            };\n        },\n        curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n            var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x),\n                b = 2 * (c1x - p1x) - 2 * (c2x - c1x),\n                c = p1x - c1x,\n                t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a,\n                t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a,\n                y = [p1y, p2y],\n                x = [p1x, p2x],\n                dot;\n            abs(t1) > "1e12" && (t1 = .5);\n            abs(t2) > "1e12" && (t2 = .5);\n            if (t1 > 0 && t1 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            if (t2 > 0 && t2 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y);\n            b = 2 * (c1y - p1y) - 2 * (c2y - c1y);\n            c = p1y - c1y;\n            t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a;\n            t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a;\n            abs(t1) > "1e12" && (t1 = .5);\n            abs(t2) > "1e12" && (t2 = .5);\n            if (t1 > 0 && t1 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            if (t2 > 0 && t2 < 1) {\n                dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);\n                x.push(dot.x);\n                y.push(dot.y);\n            }\n            return {\n                min: {x: mmin[apply](0, x), y: mmin[apply](0, y)},\n                max: {x: mmax[apply](0, x), y: mmax[apply](0, y)}\n            };\n        }),\n        path2curve = R._path2curve = cacher(function (path, path2) {\n            var pth = !path2 && paths(path);\n            if (!path2 && pth.curve) {\n                return pathClone(pth.curve);\n            }\n            var p = pathToAbsolute(path),\n                p2 = path2 && pathToAbsolute(path2),\n                attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n                attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n                processPath = function (path, d, pcom) {\n                    var nx, ny, tq = {T:1, Q:1};\n                    if (!path) {\n                        return ["C", d.x, d.y, d.x, d.y, d.x, d.y];\n                    }\n                    !(path[0] in tq) && (d.qx = d.qy = null);\n                    switch (path[0]) {\n                        case "M":\n                            d.X = path[1];\n                            d.Y = path[2];\n                            break;\n                        case "A":\n                            path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1))));\n                            break;\n                        case "S":\n                            if (pcom == "C" || pcom == "S") { // In "S" case we have to take into account, if the previous command is C/S.\n                                nx = d.x * 2 - d.bx;          // And reflect the previous\n                                ny = d.y * 2 - d.by;          // command\'s control point relative to the current point.\n                            }\n                            else {                            // or some else or nothing\n                                nx = d.x;\n                                ny = d.y;\n                            }\n                            path = ["C", nx, ny][concat](path.slice(1));\n                            break;\n                        case "T":\n                            if (pcom == "Q" || pcom == "T") { // In "T" case we have to take into account, if the previous command is Q/T.\n                                d.qx = d.x * 2 - d.qx;        // And make a reflection similar\n                                d.qy = d.y * 2 - d.qy;        // to case "S".\n                            }\n                            else {                            // or something else or nothing\n                                d.qx = d.x;\n                                d.qy = d.y;\n                            }\n                            path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n                            break;\n                        case "Q":\n                            d.qx = path[1];\n                            d.qy = path[2];\n                            path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n                            break;\n                        case "L":\n                            path = ["C"][concat](l2c(d.x, d.y, path[1], path[2]));\n                            break;\n                        case "H":\n                            path = ["C"][concat](l2c(d.x, d.y, path[1], d.y));\n                            break;\n                        case "V":\n                            path = ["C"][concat](l2c(d.x, d.y, d.x, path[1]));\n                            break;\n                        case "Z":\n                            path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y));\n                            break;\n                    }\n                    return path;\n                },\n                fixArc = function (pp, i) {\n                    if (pp[i].length > 7) {\n                        pp[i].shift();\n                        var pi = pp[i];\n                        while (pi.length) {\n                            pcoms1[i]="A"; // if created multiple C:s, their original seg is saved\n                            p2 && (pcoms2[i]="A"); // the same as above\n                            pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6)));\n                        }\n                        pp.splice(i, 1);\n                        ii = mmax(p.length, p2 && p2.length || 0);\n                    }\n                },\n                fixM = function (path1, path2, a1, a2, i) {\n                    if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") {\n                        path2.splice(i, 0, ["M", a2.x, a2.y]);\n                        a1.bx = 0;\n                        a1.by = 0;\n                        a1.x = path1[i][1];\n                        a1.y = path1[i][2];\n                        ii = mmax(p.length, p2 && p2.length || 0);\n                    }\n                },\n                pcoms1 = [], // path commands of original path p\n                pcoms2 = [], // path commands of original path p2\n                pfirst = "", // temporary holder for original path command\n                pcom = ""; // holder for previous path command of original path\n            for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\n                p[i] && (pfirst = p[i][0]); // save current path command\n\n                if (pfirst != "C") // C is not saved yet, because it may be result of conversion\n                {\n                    pcoms1[i] = pfirst; // Save current path command\n                    i && ( pcom = pcoms1[i-1]); // Get previous path command pcom\n                }\n                p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n                if (pcoms1[i] != "A" && pfirst == "C") pcoms1[i] = "C"; // A is the only command\n                // which may produce multiple C:s\n                // so we have to make sure that C is also C in original path\n\n                fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n                if (p2) { // the same procedures is done to p2\n                    p2[i] && (pfirst = p2[i][0]);\n                    if (pfirst != "C")\n                    {\n                        pcoms2[i] = pfirst;\n                        i && (pcom = pcoms2[i-1]);\n                    }\n                    p2[i] = processPath(p2[i], attrs2, pcom);\n\n                    if (pcoms2[i]!="A" && pfirst=="C") pcoms2[i]="C";\n\n                    fixArc(p2, i);\n                }\n                fixM(p, p2, attrs, attrs2, i);\n                fixM(p2, p, attrs2, attrs, i);\n                var seg = p[i],\n                    seg2 = p2 && p2[i],\n                    seglen = seg.length,\n                    seg2len = p2 && seg2.length;\n                attrs.x = seg[seglen - 2];\n                attrs.y = seg[seglen - 1];\n                attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n                attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n                attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n                attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n                attrs2.x = p2 && seg2[seg2len - 2];\n                attrs2.y = p2 && seg2[seg2len - 1];\n            }\n            if (!p2) {\n                pth.curve = pathClone(p);\n            }\n            return p2 ? [p, p2] : p;\n        }, null, pathClone),\n        parseDots = R._parseDots = cacher(function (gradient) {\n            var dots = [];\n            for (var i = 0, ii = gradient.length; i < ii; i++) {\n                var dot = {},\n                    par = gradient[i].match(/^([^:]*):?([\\d\\.]*)/);\n                dot.color = R.getRGB(par[1]);\n                if (dot.color.error) {\n                    return null;\n                }\n                dot.opacity = dot.color.opacity;\n                dot.color = dot.color.hex;\n                par[2] && (dot.offset = par[2] + "%");\n                dots.push(dot);\n            }\n            for (i = 1, ii = dots.length - 1; i < ii; i++) {\n                if (!dots[i].offset) {\n                    var start = toFloat(dots[i - 1].offset || 0),\n                        end = 0;\n                    for (var j = i + 1; j < ii; j++) {\n                        if (dots[j].offset) {\n                            end = dots[j].offset;\n                            break;\n                        }\n                    }\n                    if (!end) {\n                        end = 100;\n                        j = ii;\n                    }\n                    end = toFloat(end);\n                    var d = (end - start) / (j - i + 1);\n                    for (; i < j; i++) {\n                        start += d;\n                        dots[i].offset = start + "%";\n                    }\n                }\n            }\n            return dots;\n        }),\n        tear = R._tear = function (el, paper) {\n            el == paper.top && (paper.top = el.prev);\n            el == paper.bottom && (paper.bottom = el.next);\n            el.next && (el.next.prev = el.prev);\n            el.prev && (el.prev.next = el.next);\n        },\n        tofront = R._tofront = function (el, paper) {\n            if (paper.top === el) {\n                return;\n            }\n            tear(el, paper);\n            el.next = null;\n            el.prev = paper.top;\n            paper.top.next = el;\n            paper.top = el;\n        },\n        toback = R._toback = function (el, paper) {\n            if (paper.bottom === el) {\n                return;\n            }\n            tear(el, paper);\n            el.next = paper.bottom;\n            el.prev = null;\n            paper.bottom.prev = el;\n            paper.bottom = el;\n        },\n        insertafter = R._insertafter = function (el, el2, paper) {\n            tear(el, paper);\n            el2 == paper.top && (paper.top = el);\n            el2.next && (el2.next.prev = el);\n            el.next = el2.next;\n            el.prev = el2;\n            el2.next = el;\n        },\n        insertbefore = R._insertbefore = function (el, el2, paper) {\n            tear(el, paper);\n            el2 == paper.bottom && (paper.bottom = el);\n            el2.prev && (el2.prev.next = el);\n            el.prev = el2.prev;\n            el2.prev = el;\n            el.next = el2;\n        },\n    /*\\\n     * Raphael.toMatrix\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns matrix of transformations applied to a given path\n     > Parameters\n     - path (string) path string\n     - transform (string|array) transformation string\n     = (object) @Matrix\n     \\*/\n        toMatrix = R.toMatrix = function (path, transform) {\n            var bb = pathDimensions(path),\n                el = {\n                    _: {\n                        transform: E\n                    },\n                    getBBox: function () {\n                        return bb;\n                    }\n                };\n            extractTransform(el, transform);\n            return el.matrix;\n        },\n    /*\\\n     * Raphael.transformPath\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns path transformed by a given transformation\n     > Parameters\n     - path (string) path string\n     - transform (string|array) transformation string\n     = (string) path\n     \\*/\n        transformPath = R.transformPath = function (path, transform) {\n            return mapPath(path, toMatrix(path, transform));\n        },\n        extractTransform = R._extractTransform = function (el, tstr) {\n            if (tstr == null) {\n                return el._.transform;\n            }\n            tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || E);\n            var tdata = R.parseTransformString(tstr),\n                deg = 0,\n                dx = 0,\n                dy = 0,\n                sx = 1,\n                sy = 1,\n                _ = el._,\n                m = new Matrix;\n            _.transform = tdata || [];\n            if (tdata) {\n                for (var i = 0, ii = tdata.length; i < ii; i++) {\n                    var t = tdata[i],\n                        tlen = t.length,\n                        command = Str(t[0]).toLowerCase(),\n                        absolute = t[0] != command,\n                        inver = absolute ? m.invert() : 0,\n                        x1,\n                        y1,\n                        x2,\n                        y2,\n                        bb;\n                    if (command == "t" && tlen == 3) {\n                        if (absolute) {\n                            x1 = inver.x(0, 0);\n                            y1 = inver.y(0, 0);\n                            x2 = inver.x(t[1], t[2]);\n                            y2 = inver.y(t[1], t[2]);\n                            m.translate(x2 - x1, y2 - y1);\n                        } else {\n                            m.translate(t[1], t[2]);\n                        }\n                    } else if (command == "r") {\n                        if (tlen == 2) {\n                            bb = bb || el.getBBox(1);\n                            m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n                            deg += t[1];\n                        } else if (tlen == 4) {\n                            if (absolute) {\n                                x2 = inver.x(t[2], t[3]);\n                                y2 = inver.y(t[2], t[3]);\n                                m.rotate(t[1], x2, y2);\n                            } else {\n                                m.rotate(t[1], t[2], t[3]);\n                            }\n                            deg += t[1];\n                        }\n                    } else if (command == "s") {\n                        if (tlen == 2 || tlen == 3) {\n                            bb = bb || el.getBBox(1);\n                            m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n                            sx *= t[1];\n                            sy *= t[tlen - 1];\n                        } else if (tlen == 5) {\n                            if (absolute) {\n                                x2 = inver.x(t[3], t[4]);\n                                y2 = inver.y(t[3], t[4]);\n                                m.scale(t[1], t[2], x2, y2);\n                            } else {\n                                m.scale(t[1], t[2], t[3], t[4]);\n                            }\n                            sx *= t[1];\n                            sy *= t[2];\n                        }\n                    } else if (command == "m" && tlen == 7) {\n                        m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n                    }\n                    _.dirtyT = 1;\n                    el.matrix = m;\n                }\n            }\n\n            /*\\\n             * Element.matrix\n             [ property (object) ]\n             **\n             * Keeps @Matrix object, which represents element transformation\n             \\*/\n            el.matrix = m;\n\n            _.sx = sx;\n            _.sy = sy;\n            _.deg = deg;\n            _.dx = dx = m.e;\n            _.dy = dy = m.f;\n\n            if (sx == 1 && sy == 1 && !deg && _.bbox) {\n                _.bbox.x += +dx;\n                _.bbox.y += +dy;\n            } else {\n                _.dirtyT = 1;\n            }\n        },\n        getEmpty = function (item) {\n            var l = item[0];\n            switch (l.toLowerCase()) {\n                case "t": return [l, 0, 0];\n                case "m": return [l, 1, 0, 0, 1, 0, 0];\n                case "r": if (item.length == 4) {\n                    return [l, 0, item[2], item[3]];\n                } else {\n                    return [l, 0];\n                }\n                case "s": if (item.length == 5) {\n                    return [l, 1, 1, item[3], item[4]];\n                } else if (item.length == 3) {\n                    return [l, 1, 1];\n                } else {\n                    return [l, 1];\n                }\n            }\n        },\n        equaliseTransform = R._equaliseTransform = function (t1, t2) {\n            t2 = Str(t2).replace(/\\.{3}|\\u2026/g, t1);\n            t1 = R.parseTransformString(t1) || [];\n            t2 = R.parseTransformString(t2) || [];\n            var maxlength = mmax(t1.length, t2.length),\n                from = [],\n                to = [],\n                i = 0, j, jj,\n                tt1, tt2;\n            for (; i < maxlength; i++) {\n                tt1 = t1[i] || getEmpty(t2[i]);\n                tt2 = t2[i] || getEmpty(tt1);\n                if ((tt1[0] != tt2[0]) ||\n                    (tt1[0].toLowerCase() == "r" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||\n                    (tt1[0].toLowerCase() == "s" && (tt1[3] != tt2[3] || tt1[4] != tt2[4]))\n                ) {\n                    return;\n                }\n                from[i] = [];\n                to[i] = [];\n                for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) {\n                    j in tt1 && (from[i][j] = tt1[j]);\n                    j in tt2 && (to[i][j] = tt2[j]);\n                }\n            }\n            return {\n                from: from,\n                to: to\n            };\n        };\n    R._getContainer = function (x, y, w, h) {\n        var container;\n        container = h == null && !R.is(x, "object") ? g.doc.getElementById(x) : x;\n        if (container == null) {\n            return;\n        }\n        if (container.tagName) {\n            if (y == null) {\n                return {\n                    container: container,\n                    width: container.style.pixelWidth || container.offsetWidth,\n                    height: container.style.pixelHeight || container.offsetHeight\n                };\n            } else {\n                return {\n                    container: container,\n                    width: y,\n                    height: w\n                };\n            }\n        }\n        return {\n            container: 1,\n            x: x,\n            y: y,\n            width: w,\n            height: h\n        };\n    };\n    /*\\\n     * Raphael.pathToRelative\n     [ method ]\n     **\n     * Utility method\n     **\n     * Converts path to relative form\n     > Parameters\n     - pathString (string|array) path string or array of segments\n     = (array) array of segments.\n     \\*/\n    R.pathToRelative = pathToRelative;\n    R._engine = {};\n    /*\\\n     * Raphael.path2curve\n     [ method ]\n     **\n     * Utility method\n     **\n     * Converts path to a new path where all segments are cubic bezier curves.\n     > Parameters\n     - pathString (string|array) path string or array of segments\n     = (array) array of segments.\n     \\*/\n    R.path2curve = path2curve;\n    /*\\\n     * Raphael.matrix\n     [ method ]\n     **\n     * Utility method\n     **\n     * Returns matrix based on given parameters.\n     > Parameters\n     - a (number)\n     - b (number)\n     - c (number)\n     - d (number)\n     - e (number)\n     - f (number)\n     = (object) @Matrix\n     \\*/\n    R.matrix = function (a, b, c, d, e, f) {\n        return new Matrix(a, b, c, d, e, f);\n    };\n    function Matrix(a, b, c, d, e, f) {\n        if (a != null) {\n            this.a = +a;\n            this.b = +b;\n            this.c = +c;\n            this.d = +d;\n            this.e = +e;\n            this.f = +f;\n        } else {\n            this.a = 1;\n            this.b = 0;\n            this.c = 0;\n            this.d = 1;\n            this.e = 0;\n            this.f = 0;\n        }\n    }\n    (function (matrixproto) {\n        /*\\\n         * Matrix.add\n         [ method ]\n         **\n         * Adds given matrix to existing one.\n         > Parameters\n         - a (number)\n         - b (number)\n         - c (number)\n         - d (number)\n         - e (number)\n         - f (number)\n         or\n         - matrix (object) @Matrix\n         \\*/\n        matrixproto.add = function (a, b, c, d, e, f) {\n            var out = [[], [], []],\n                m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]],\n                matrix = [[a, c, e], [b, d, f], [0, 0, 1]],\n                x, y, z, res;\n\n            if (a && a instanceof Matrix) {\n                matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]];\n            }\n\n            for (x = 0; x < 3; x++) {\n                for (y = 0; y < 3; y++) {\n                    res = 0;\n                    for (z = 0; z < 3; z++) {\n                        res += m[x][z] * matrix[z][y];\n                    }\n                    out[x][y] = res;\n                }\n            }\n            this.a = out[0][0];\n            this.b = out[1][0];\n            this.c = out[0][1];\n            this.d = out[1][1];\n            this.e = out[0][2];\n            this.f = out[1][2];\n        };\n        /*\\\n         * Matrix.invert\n         [ method ]\n         **\n         * Returns inverted version of the matrix\n         = (object) @Matrix\n         \\*/\n        matrixproto.invert = function () {\n            var me = this,\n                x = me.a * me.d - me.b * me.c;\n            return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\n        };\n        /*\\\n         * Matrix.clone\n         [ method ]\n         **\n         * Returns copy of the matrix\n         = (object) @Matrix\n         \\*/\n        matrixproto.clone = function () {\n            return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n        };\n        /*\\\n         * Matrix.translate\n         [ method ]\n         **\n         * Translate the matrix\n         > Parameters\n         - x (number)\n         - y (number)\n         \\*/\n        matrixproto.translate = function (x, y) {\n            this.add(1, 0, 0, 1, x, y);\n        };\n        /*\\\n         * Matrix.scale\n         [ method ]\n         **\n         * Scales the matrix\n         > Parameters\n         - x (number)\n         - y (number) #optional\n         - cx (number) #optional\n         - cy (number) #optional\n         \\*/\n        matrixproto.scale = function (x, y, cx, cy) {\n            y == null && (y = x);\n            (cx || cy) && this.add(1, 0, 0, 1, cx, cy);\n            this.add(x, 0, 0, y, 0, 0);\n            (cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);\n        };\n        /*\\\n         * Matrix.rotate\n         [ method ]\n         **\n         * Rotates the matrix\n         > Parameters\n         - a (number)\n         - x (number)\n         - y (number)\n         \\*/\n        matrixproto.rotate = function (a, x, y) {\n            a = R.rad(a);\n            x = x || 0;\n            y = y || 0;\n            var cos = +math.cos(a).toFixed(9),\n                sin = +math.sin(a).toFixed(9);\n            this.add(cos, sin, -sin, cos, x, y);\n            this.add(1, 0, 0, 1, -x, -y);\n        };\n        /*\\\n         * Matrix.x\n         [ method ]\n         **\n         * Return x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n         > Parameters\n         - x (number)\n         - y (number)\n         = (number) x\n         \\*/\n        matrixproto.x = function (x, y) {\n            return x * this.a + y * this.c + this.e;\n        };\n        /*\\\n         * Matrix.y\n         [ method ]\n         **\n         * Return y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n         > Parameters\n         - x (number)\n         - y (number)\n         = (number) y\n         \\*/\n        matrixproto.y = function (x, y) {\n            return x * this.b + y * this.d + this.f;\n        };\n        matrixproto.get = function (i) {\n            return +this[Str.fromCharCode(97 + i)].toFixed(4);\n        };\n        matrixproto.toString = function () {\n            return R.svg ?\n            "matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" :\n                [this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join();\n        };\n        matrixproto.toFilter = function () {\n            return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) +\n                ", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) +\n                ", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod=\'auto expand\')";\n        };\n        matrixproto.offset = function () {\n            return [this.e.toFixed(4), this.f.toFixed(4)];\n        };\n        function norm(a) {\n            return a[0] * a[0] + a[1] * a[1];\n        }\n        function normalize(a) {\n            var mag = math.sqrt(norm(a));\n            a[0] && (a[0] /= mag);\n            a[1] && (a[1] /= mag);\n        }\n        /*\\\n         * Matrix.split\n         [ method ]\n         **\n         * Splits matrix into primitive transformations\n         = (object) in format:\n         o dx (number) translation by x\n         o dy (number) translation by y\n         o scalex (number) scale by x\n         o scaley (number) scale by y\n         o shear (number) shear\n         o rotate (number) rotation in deg\n         o isSimple (boolean) could it be represented via simple transformations\n         \\*/\n        matrixproto.split = function () {\n            var out = {};\n            // translation\n            out.dx = this.e;\n            out.dy = this.f;\n\n            // scale and shear\n            var row = [[this.a, this.c], [this.b, this.d]];\n            out.scalex = math.sqrt(norm(row[0]));\n            normalize(row[0]);\n\n            out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n            row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\n\n            out.scaley = math.sqrt(norm(row[1]));\n            normalize(row[1]);\n            out.shear /= out.scaley;\n\n            // rotation\n            var sin = -row[0][1],\n                cos = row[1][1];\n            if (cos < 0) {\n                out.rotate = R.deg(math.acos(cos));\n                if (sin < 0) {\n                    out.rotate = 360 - out.rotate;\n                }\n            } else {\n                out.rotate = R.deg(math.asin(sin));\n            }\n\n            out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n            out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\n            out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n            return out;\n        };\n        /*\\\n         * Matrix.toTransformString\n         [ method ]\n         **\n         * Return transform string that represents given matrix\n         = (string) transform string\n         \\*/\n        matrixproto.toTransformString = function (shorter) {\n            var s = shorter || this[split]();\n            if (s.isSimple) {\n                s.scalex = +s.scalex.toFixed(4);\n                s.scaley = +s.scaley.toFixed(4);\n                s.rotate = +s.rotate.toFixed(4);\n                return  (s.dx || s.dy ? "t" + [s.dx, s.dy] : E) +\n                    (s.scalex != 1 || s.scaley != 1 ? "s" + [s.scalex, s.scaley, 0, 0] : E) +\n                    (s.rotate ? "r" + [s.rotate, 0, 0] : E);\n            } else {\n                return "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\n            }\n        };\n    })(Matrix.prototype);\n\n    var preventDefault = function () {\n            this.returnValue = false;\n        },\n        preventTouch = function () {\n            return this.originalEvent.preventDefault();\n        },\n        stopPropagation = function () {\n            this.cancelBubble = true;\n        },\n        stopTouch = function () {\n            return this.originalEvent.stopPropagation();\n        },\n        getEventPosition = function (e) {\n            var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n                scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n\n            return {\n                x: e.clientX + scrollX,\n                y: e.clientY + scrollY\n            };\n        },\n        addEvent = (function () {\n            if (g.doc.addEventListener) {\n                return function (obj, type, fn, element) {\n                    var f = function (e) {\n                        var pos = getEventPosition(e);\n                        return fn.call(element, e, pos.x, pos.y);\n                    };\n                    obj.addEventListener(type, f, false);\n\n                    if (supportsTouch && touchMap[type]) {\n                        var _f = function (e) {\n                            var pos = getEventPosition(e),\n                                olde = e;\n\n                            for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\n                                if (e.targetTouches[i].target == obj) {\n                                    e = e.targetTouches[i];\n                                    e.originalEvent = olde;\n                                    e.preventDefault = preventTouch;\n                                    e.stopPropagation = stopTouch;\n                                    break;\n                                }\n                            }\n\n                            return fn.call(element, e, pos.x, pos.y);\n                        };\n                        obj.addEventListener(touchMap[type], _f, false);\n                    }\n\n                    return function () {\n                        obj.removeEventListener(type, f, false);\n\n                        if (supportsTouch && touchMap[type])\n                            obj.removeEventListener(touchMap[type], _f, false);\n\n                        return true;\n                    };\n                };\n            } else if (g.doc.attachEvent) {\n                return function (obj, type, fn, element) {\n                    var f = function (e) {\n                        e = e || g.win.event;\n                        var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n                            scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n                            x = e.clientX + scrollX,\n                            y = e.clientY + scrollY;\n                        e.preventDefault = e.preventDefault || preventDefault;\n                        e.stopPropagation = e.stopPropagation || stopPropagation;\n                        return fn.call(element, e, x, y);\n                    };\n                    obj.attachEvent("on" + type, f);\n                    var detacher = function () {\n                        obj.detachEvent("on" + type, f);\n                        return true;\n                    };\n                    return detacher;\n                };\n            }\n        })(),\n        drag = [],\n        dragMove = function (e) {\n            var x = e.clientX,\n                y = e.clientY,\n                scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n                scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,\n                dragi,\n                j = drag.length;\n            while (j--) {\n                dragi = drag[j];\n                if (supportsTouch && e.touches) {\n                    var i = e.touches.length,\n                        touch;\n                    while (i--) {\n                        touch = e.touches[i];\n                        if (touch.identifier == dragi.el._drag.id) {\n                            x = touch.clientX;\n                            y = touch.clientY;\n                            (e.originalEvent ? e.originalEvent : e).preventDefault();\n                            break;\n                        }\n                    }\n                } else {\n                    e.preventDefault();\n                }\n                var node = dragi.el.node,\n                    o,\n                    next = node.nextSibling,\n                    parent = node.parentNode,\n                    display = node.style.display;\n                g.win.opera && parent.removeChild(node);\n                node.style.display = "none";\n                o = dragi.el.paper.getElementByPoint(x, y);\n                node.style.display = display;\n                g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n                o && eve("raphael.drag.over." + dragi.el.id, dragi.el, o);\n                x += scrollX;\n                y += scrollY;\n                eve("raphael.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\n            }\n        },\n        dragUp = function (e) {\n            R.unmousemove(dragMove).unmouseup(dragUp);\n            var i = drag.length,\n                dragi;\n            while (i--) {\n                dragi = drag[i];\n                dragi.el._drag = {};\n                eve("raphael.drag.end." + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\n            }\n            drag = [];\n        },\n    /*\\\n     * Raphael.el\n     [ property (object) ]\n     **\n     * You can add your own method to elements. This is usefull when you want to hack default functionality or\n     * want to wrap some common transformation or attributes in one method. In difference to canvas methods,\n     * you can redefine element method at any time. Expending element methods wouldn’t affect set.\n     > Usage\n     | Raphael.el.red = function () {\n     |     this.attr({fill: "#f00"});\n     | };\n     | // then use it\n     | paper.circle(100, 100, 20).red();\n     \\*/\n        elproto = R.el = {};\n    /*\\\n     * Element.click\n     [ method ]\n     **\n     * Adds event handler for click for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.unclick\n     [ method ]\n     **\n     * Removes event handler for click for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.dblclick\n     [ method ]\n     **\n     * Adds event handler for double click for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.undblclick\n     [ method ]\n     **\n     * Removes event handler for double click for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.mousedown\n     [ method ]\n     **\n     * Adds event handler for mousedown for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.unmousedown\n     [ method ]\n     **\n     * Removes event handler for mousedown for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.mousemove\n     [ method ]\n     **\n     * Adds event handler for mousemove for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.unmousemove\n     [ method ]\n     **\n     * Removes event handler for mousemove for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.mouseout\n     [ method ]\n     **\n     * Adds event handler for mouseout for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.unmouseout\n     [ method ]\n     **\n     * Removes event handler for mouseout for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.mouseover\n     [ method ]\n     **\n     * Adds event handler for mouseover for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.unmouseover\n     [ method ]\n     **\n     * Removes event handler for mouseover for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.mouseup\n     [ method ]\n     **\n     * Adds event handler for mouseup for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.unmouseup\n     [ method ]\n     **\n     * Removes event handler for mouseup for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.touchstart\n     [ method ]\n     **\n     * Adds event handler for touchstart for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.untouchstart\n     [ method ]\n     **\n     * Removes event handler for touchstart for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.touchmove\n     [ method ]\n     **\n     * Adds event handler for touchmove for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.untouchmove\n     [ method ]\n     **\n     * Removes event handler for touchmove for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.touchend\n     [ method ]\n     **\n     * Adds event handler for touchend for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.untouchend\n     [ method ]\n     **\n     * Removes event handler for touchend for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n\n    /*\\\n     * Element.touchcancel\n     [ method ]\n     **\n     * Adds event handler for touchcancel for the element.\n     > Parameters\n     - handler (function) handler for the event\n     = (object) @Element\n     \\*/\n    /*\\\n     * Element.untouchcancel\n     [ method ]\n     **\n     * Removes event handler for touchcancel for the element.\n     > Parameters\n     - handler (function) #optional handler for the event\n     = (object) @Element\n     \\*/\n    for (var i = events.length; i--;) {\n        (function (eventName) {\n            R[eventName] = elproto[eventName] = function (fn, scope) {\n                if (R.is(fn, "function")) {\n                    this.events = this.events || [];\n                    this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)});\n                }\n                return this;\n            };\n            R["un" + eventName] = elproto["un" + eventName] = function (fn) {\n                var events = this.events || [],\n                    l = events.length;\n                while (l--){\n                    if (events[l].name == eventName && (R.is(fn, "undefined") || events[l].f == fn)) {\n                        events[l].unbind();\n                        events.splice(l, 1);\n                        !events.length && delete this.events;\n                    }\n                }\n                return this;\n            };\n        })(events[i]);\n    }\n\n    /*\\\n     * Element.data\n     [ method ]\n     **\n     * Adds or retrieves given value asociated with given key.\n     **\n     * See also @Element.removeData\n     > Parameters\n     - key (string) key to store data\n     - value (any) #optional value to store\n     = (object) @Element\n     * or, if value is not specified:\n     = (any) value\n     * or, if key and value are not specified:\n     = (object) Key/value pairs for all the data associated with the element.\n     > Usage\n     | for (var i = 0, i < 5, i++) {\n     |     paper.circle(10 + 15 * i, 10, 10)\n     |          .attr({fill: "#000"})\n     |          .data("i", i)\n     |          .click(function () {\n     |             alert(this.data("i"));\n     |          });\n     | }\n     \\*/\n    elproto.data = function (key, value) {\n        var data = eldata[this.id] = eldata[this.id] || {};\n        if (arguments.length == 0) {\n            return data;\n        }\n        if (arguments.length == 1) {\n            if (R.is(key, "object")) {\n                for (var i in key) if (key[has](i)) {\n                    this.data(i, key[i]);\n                }\n                return this;\n            }\n            eve("raphael.data.get." + this.id, this, data[key], key);\n            return data[key];\n        }\n        data[key] = value;\n        eve("raphael.data.set." + this.id, this, value, key);\n        return this;\n    };\n    /*\\\n     * Element.removeData\n     [ method ]\n     **\n     * Removes value associated with an element by given key.\n     * If key is not provided, removes all the data of the element.\n     > Parameters\n     - key (string) #optional key\n     = (object) @Element\n     \\*/\n    elproto.removeData = function (key) {\n        if (key == null) {\n            eldata[this.id] = {};\n        } else {\n            eldata[this.id] && delete eldata[this.id][key];\n        }\n        return this;\n    };\n    /*\\\n     * Element.getData\n     [ method ]\n     **\n     * Retrieves the element data\n     = (object) data\n     \\*/\n    elproto.getData = function () {\n        return clone(eldata[this.id] || {});\n    };\n    /*\\\n     * Element.hover\n     [ method ]\n     **\n     * Adds event handlers for hover for the element.\n     > Parameters\n     - f_in (function) handler for hover in\n     - f_out (function) handler for hover out\n     - icontext (object) #optional context for hover in handler\n     - ocontext (object) #optional context for hover out handler\n     = (object) @Element\n     \\*/\n    elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n        return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\n    };\n    /*\\\n     * Element.unhover\n     [ method ]\n     **\n     * Removes event handlers for hover for the element.\n     > Parameters\n     - f_in (function) handler for hover in\n     - f_out (function) handler for hover out\n     = (object) @Element\n     \\*/\n    elproto.unhover = function (f_in, f_out) {\n        return this.unmouseover(f_in).unmouseout(f_out);\n    };\n    var draggable = [];\n    /*\\\n     * Element.drag\n     [ method ]\n     **\n     * Adds event handlers for drag of the element.\n     > Parameters\n     - onmove (function) handler for moving\n     - onstart (function) handler for drag start\n     - onend (function) handler for drag end\n     - mcontext (object) #optional context for moving handler\n     - scontext (object) #optional context for drag start handler\n     - econtext (object) #optional context for drag end handler\n     * Additionaly following `drag` events will be triggered: `drag.start.<id>` on start,\n     * `drag.end.<id>` on end and `drag.move.<id>` on every move. When element will be dragged over another element\n     * `drag.over.<id>` will be fired as well.\n     *\n     * Start event and start handler will be called in specified context or in context of the element with following parameters:\n     o x (number) x position of the mouse\n     o y (number) y position of the mouse\n     o event (object) DOM event object\n     * Move event and move handler will be called in specified context or in context of the element with following parameters:\n     o dx (number) shift by x from the start point\n     o dy (number) shift by y from the start point\n     o x (number) x position of the mouse\n     o y (number) y position of the mouse\n     o event (object) DOM event object\n     * End event and end handler will be called in specified context or in context of the element with following parameters:\n     o event (object) DOM event object\n     = (object) @Element\n     \\*/\n    elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\n        function start(e) {\n            (e.originalEvent || e).preventDefault();\n            var x = e.clientX,\n                y = e.clientY,\n                scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,\n                scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;\n            this._drag.id = e.identifier;\n            if (supportsTouch && e.touches) {\n                var i = e.touches.length, touch;\n                while (i--) {\n                    touch = e.touches[i];\n                    this._drag.id = touch.identifier;\n                    if (touch.identifier == this._drag.id) {\n                        x = touch.clientX;\n                        y = touch.clientY;\n                        break;\n                    }\n                }\n            }\n            this._drag.x = x + scrollX;\n            this._drag.y = y + scrollY;\n            !drag.length && R.mousemove(dragMove).mouseup(dragUp);\n            drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\n            onstart && eve.on("raphael.drag.start." + this.id, onstart);\n            onmove && eve.on("raphael.drag.move." + this.id, onmove);\n            onend && eve.on("raphael.drag.end." + this.id, onend);\n            eve("raphael.drag.start." + this.id, start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e);\n        }\n        this._drag = {};\n        draggable.push({el: this, start: start});\n        this.mousedown(start);\n        return this;\n    };\n    /*\\\n     * Element.onDragOver\n     [ method ]\n     **\n     * Shortcut for assigning event handler for `drag.over.<id>` event, where id is id of the element (see @Element.id).\n     > Parameters\n     - f (function) handler for event, first argument would be the element you are dragging over\n     \\*/\n    elproto.onDragOver = function (f) {\n        f ? eve.on("raphael.drag.over." + this.id, f) : eve.unbind("raphael.drag.over." + this.id);\n    };\n    /*\\\n     * Element.undrag\n     [ method ]\n     **\n     * Removes all drag event handlers from given element.\n     \\*/\n    elproto.undrag = function () {\n        var i = draggable.length;\n        while (i--) if (draggable[i].el == this) {\n            this.unmousedown(draggable[i].start);\n            draggable.splice(i, 1);\n            eve.unbind("raphael.drag.*." + this.id);\n        }\n        !draggable.length && R.unmousemove(dragMove).unmouseup(dragUp);\n        drag = [];\n    };\n    /*\\\n     * Paper.circle\n     [ method ]\n     **\n     * Draws a circle.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the centre\n     - y (number) y coordinate of the centre\n     - r (number) radius\n     = (object) Raphaël element object with type “circle”\n     **\n     > Usage\n     | var c = paper.circle(50, 50, 40);\n     \\*/\n    paperproto.circle = function (x, y, r) {\n        var out = R._engine.circle(this, x || 0, y || 0, r || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.rect\n     [ method ]\n     *\n     * Draws a rectangle.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the top left corner\n     - y (number) y coordinate of the top left corner\n     - width (number) width\n     - height (number) height\n     - r (number) #optional radius for rounded corners, default is 0\n     = (object) Raphaël element object with type “rect”\n     **\n     > Usage\n     | // regular rectangle\n     | var c = paper.rect(10, 10, 50, 50);\n     | // rectangle with rounded corners\n     | var c = paper.rect(40, 40, 50, 50, 10);\n     \\*/\n    paperproto.rect = function (x, y, w, h, r) {\n        var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.ellipse\n     [ method ]\n     **\n     * Draws an ellipse.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the centre\n     - y (number) y coordinate of the centre\n     - rx (number) horizontal radius\n     - ry (number) vertical radius\n     = (object) Raphaël element object with type “ellipse”\n     **\n     > Usage\n     | var c = paper.ellipse(50, 50, 40, 20);\n     \\*/\n    paperproto.ellipse = function (x, y, rx, ry) {\n        var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.path\n     [ method ]\n     **\n     * Creates a path element by given path data string.\n     > Parameters\n     - pathString (string) #optional path string in SVG format.\n     * Path string consists of one-letter commands, followed by comma seprarated arguments in numercal form. Example:\n     | "M10,20L30,40"\n     * Here we can see two commands: “M”, with arguments `(10, 20)` and “L” with arguments `(30, 40)`. Upper case letter mean command is absolute, lower case—relative.\n     *\n     # <p>Here is short list of commands available, for more details see <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path\'s data attribute\'s format are described in the SVG specification.">SVG path string format</a>.</p>\n     # <table><thead><tr><th>Command</th><th>Name</th><th>Parameters</th></tr></thead><tbody>\n     # <tr><td>M</td><td>moveto</td><td>(x y)+</td></tr>\n     # <tr><td>Z</td><td>closepath</td><td>(none)</td></tr>\n     # <tr><td>L</td><td>lineto</td><td>(x y)+</td></tr>\n     # <tr><td>H</td><td>horizontal lineto</td><td>x+</td></tr>\n     # <tr><td>V</td><td>vertical lineto</td><td>y+</td></tr>\n     # <tr><td>C</td><td>curveto</td><td>(x1 y1 x2 y2 x y)+</td></tr>\n     # <tr><td>S</td><td>smooth curveto</td><td>(x2 y2 x y)+</td></tr>\n     # <tr><td>Q</td><td>quadratic Bézier curveto</td><td>(x1 y1 x y)+</td></tr>\n     # <tr><td>T</td><td>smooth quadratic Bézier curveto</td><td>(x y)+</td></tr>\n     # <tr><td>A</td><td>elliptical arc</td><td>(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+</td></tr>\n     # <tr><td>R</td><td><a href="http://en.wikipedia.org/wiki/Catmull–Rom_spline#Catmull.E2.80.93Rom_spline">Catmull-Rom curveto</a>*</td><td>x1 y1 (x y)+</td></tr></tbody></table>\n     * * “Catmull-Rom curveto” is a not standard SVG command and added in 2.0 to make life easier.\n     * Note: there is a special case when path consist of just three commands: “M10,10R…z”. In this case path will smoothly connects to its beginning.\n     > Usage\n     | var c = paper.path("M10 10L90 90");\n     | // draw a diagonal line:\n     | // move to 10,10, line to 90,90\n     * For example of path strings, check out these icons: http://raphaeljs.com/icons/\n     \\*/\n    paperproto.path = function (pathString) {\n        pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E);\n        var out = R._engine.path(R.format[apply](R, arguments), this);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.image\n     [ method ]\n     **\n     * Embeds an image into the surface.\n     **\n     > Parameters\n     **\n     - src (string) URI of the source image\n     - x (number) x coordinate position\n     - y (number) y coordinate position\n     - width (number) width of the image\n     - height (number) height of the image\n     = (object) Raphaël element object with type “image”\n     **\n     > Usage\n     | var c = paper.image("apple.png", 10, 10, 80, 80);\n     \\*/\n    paperproto.image = function (src, x, y, w, h) {\n        var out = R._engine.image(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0);\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.text\n     [ method ]\n     **\n     * Draws a text string. If you need line breaks, put “\\n” in the string.\n     **\n     > Parameters\n     **\n     - x (number) x coordinate position\n     - y (number) y coordinate position\n     - text (string) The text string to draw\n     = (object) Raphaël element object with type “text”\n     **\n     > Usage\n     | var t = paper.text(50, 50, "Raphaël\\nkicks\\nbutt!");\n     \\*/\n    paperproto.text = function (x, y, text) {\n        var out = R._engine.text(this, x || 0, y || 0, Str(text));\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Paper.set\n     [ method ]\n     **\n     * Creates array-like object to keep and operate several elements at once.\n     * Warning: it doesn’t create any elements for itself in the page, it just groups existing elements.\n     * Sets act as pseudo elements — all methods available to an element can be used on a set.\n     = (object) array-like object that represents set of elements\n     **\n     > Usage\n     | var st = paper.set();\n     | st.push(\n     |     paper.circle(10, 10, 5),\n     |     paper.circle(30, 10, 5)\n     | );\n     | st.attr({fill: "red"}); // changes the fill of both circles\n     \\*/\n    paperproto.set = function (itemsArray) {\n        !R.is(itemsArray, "array") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length));\n        var out = new Set(itemsArray);\n        this.__set__ && this.__set__.push(out);\n        out["paper"] = this;\n        out["type"] = "set";\n        return out;\n    };\n    /*\\\n     * Paper.setStart\n     [ method ]\n     **\n     * Creates @Paper.set. All elements that will be created after calling this method and before calling\n     * @Paper.setFinish will be added to the set.\n     **\n     > Usage\n     | paper.setStart();\n     | paper.circle(10, 10, 5),\n     | paper.circle(30, 10, 5)\n     | var st = paper.setFinish();\n     | st.attr({fill: "red"}); // changes the fill of both circles\n     \\*/\n    paperproto.setStart = function (set) {\n        this.__set__ = set || this.set();\n    };\n    /*\\\n     * Paper.setFinish\n     [ method ]\n     **\n     * See @Paper.setStart. This method finishes catching and returns resulting set.\n     **\n     = (object) set\n     \\*/\n    paperproto.setFinish = function (set) {\n        var out = this.__set__;\n        delete this.__set__;\n        return out;\n    };\n    /*\\\n     * Paper.getSize\n     [ method ]\n     **\n     * Obtains current paper actual size.\n     **\n     = (object)\n     \\*/\n    paperproto.getSize = function () {\n        var container = this.canvas.parentNode;\n        return {\n            width: container.offsetWidth,\n            height: container.offsetHeight\n        };\n    };\n    /*\\\n     * Paper.setSize\n     [ method ]\n     **\n     * If you need to change dimensions of the canvas call this method\n     **\n     > Parameters\n     **\n     - width (number) new width of the canvas\n     - height (number) new height of the canvas\n     \\*/\n    paperproto.setSize = function (width, height) {\n        return R._engine.setSize.call(this, width, height);\n    };\n    /*\\\n     * Paper.setViewBox\n     [ method ]\n     **\n     * Sets the view box of the paper. Practically it gives you ability to zoom and pan whole paper surface by\n     * specifying new boundaries.\n     **\n     > Parameters\n     **\n     - x (number) new x position, default is `0`\n     - y (number) new y position, default is `0`\n     - w (number) new width of the canvas\n     - h (number) new height of the canvas\n     - fit (boolean) `true` if you want graphics to fit into new boundary box\n     \\*/\n    paperproto.setViewBox = function (x, y, w, h, fit) {\n        return R._engine.setViewBox.call(this, x, y, w, h, fit);\n    };\n    /*\\\n     * Paper.top\n     [ property ]\n     **\n     * Points to the topmost element on the paper\n     \\*/\n    /*\\\n     * Paper.bottom\n     [ property ]\n     **\n     * Points to the bottom element on the paper\n     \\*/\n    paperproto.top = paperproto.bottom = null;\n    /*\\\n     * Paper.raphael\n     [ property ]\n     **\n     * Points to the @Raphael object/function\n     \\*/\n    paperproto.raphael = R;\n    var getOffset = function (elem) {\n        var box = elem.getBoundingClientRect(),\n            doc = elem.ownerDocument,\n            body = doc.body,\n            docElem = doc.documentElement,\n            clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\n            top  = box.top  + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\n            left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\n        return {\n            y: top,\n            x: left\n        };\n    };\n    /*\\\n     * Paper.getElementByPoint\n     [ method ]\n     **\n     * Returns you topmost element under given point.\n     **\n     = (object) Raphaël element object\n     > Parameters\n     **\n     - x (number) x coordinate from the top left corner of the window\n     - y (number) y coordinate from the top left corner of the window\n     > Usage\n     | paper.getElementByPoint(mouseX, mouseY).attr({stroke: "#f00"});\n     \\*/\n    paperproto.getElementByPoint = function (x, y) {\n        var paper = this,\n            svg = paper.canvas,\n            target = g.doc.elementFromPoint(x, y);\n        if (g.win.opera && target.tagName == "svg") {\n            var so = getOffset(svg),\n                sr = svg.createSVGRect();\n            sr.x = x - so.x;\n            sr.y = y - so.y;\n            sr.width = sr.height = 1;\n            var hits = svg.getIntersectionList(sr, null);\n            if (hits.length) {\n                target = hits[hits.length - 1];\n            }\n        }\n        if (!target) {\n            return null;\n        }\n        while (target.parentNode && target != svg.parentNode && !target.raphael) {\n            target = target.parentNode;\n        }\n        target == paper.canvas.parentNode && (target = svg);\n        target = target && target.raphael ? paper.getById(target.raphaelid) : null;\n        return target;\n    };\n\n    /*\\\n     * Paper.getElementsByBBox\n     [ method ]\n     **\n     * Returns set of elements that have an intersecting bounding box\n     **\n     > Parameters\n     **\n     - bbox (object) bbox to check with\n     = (object) @Set\n     \\*/\n    paperproto.getElementsByBBox = function (bbox) {\n        var set = this.set();\n        this.forEach(function (el) {\n            if (R.isBBoxIntersect(el.getBBox(), bbox)) {\n                set.push(el);\n            }\n        });\n        return set;\n    };\n\n    /*\\\n     * Paper.getById\n     [ method ]\n     **\n     * Returns you element by its internal ID.\n     **\n     > Parameters\n     **\n     - id (number) id\n     = (object) Raphaël element object\n     \\*/\n    paperproto.getById = function (id) {\n        var bot = this.bottom;\n        while (bot) {\n            if (bot.id == id) {\n                return bot;\n            }\n            bot = bot.next;\n        }\n        return null;\n    };\n    /*\\\n     * Paper.forEach\n     [ method ]\n     **\n     * Executes given function for each element on the paper\n     *\n     * If callback function returns `false` it will stop loop running.\n     **\n     > Parameters\n     **\n     - callback (function) function to run\n     - thisArg (object) context object for the callback\n     = (object) Paper object\n     > Usage\n     | paper.forEach(function (el) {\n     |     el.attr({ stroke: "blue" });\n     | });\n     \\*/\n    paperproto.forEach = function (callback, thisArg) {\n        var bot = this.bottom;\n        while (bot) {\n            if (callback.call(thisArg, bot) === false) {\n                return this;\n            }\n            bot = bot.next;\n        }\n        return this;\n    };\n    /*\\\n     * Paper.getElementsByPoint\n     [ method ]\n     **\n     * Returns set of elements that have common point inside\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (object) @Set\n     \\*/\n    paperproto.getElementsByPoint = function (x, y) {\n        var set = this.set();\n        this.forEach(function (el) {\n            if (el.isPointInside(x, y)) {\n                set.push(el);\n            }\n        });\n        return set;\n    };\n    function x_y() {\n        return this.x + S + this.y;\n    }\n    function x_y_w_h() {\n        return this.x + S + this.y + S + this.width + " \\xd7 " + this.height;\n    }\n    /*\\\n     * Element.isPointInside\n     [ method ]\n     **\n     * Determine if given point is inside this element’s shape\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (boolean) `true` if point inside the shape\n     \\*/\n    elproto.isPointInside = function (x, y) {\n        var rp = this.realPath = getPath[this.type](this);\n        if (this.attr(\'transform\') && this.attr(\'transform\').length) {\n            rp = R.transformPath(rp, this.attr(\'transform\'));\n        }\n        return R.isPointInsidePath(rp, x, y);\n    };\n    /*\\\n     * Element.getBBox\n     [ method ]\n     **\n     * Return bounding box for a given element\n     **\n     > Parameters\n     **\n     - isWithoutTransform (boolean) flag, `true` if you want to have bounding box before transformations. Default is `false`.\n     = (object) Bounding box object:\n     o {\n     o     x: (number) top left corner x\n     o     y: (number) top left corner y\n     o     x2: (number) bottom right corner x\n     o     y2: (number) bottom right corner y\n     o     width: (number) width\n     o     height: (number) height\n     o }\n     \\*/\n    elproto.getBBox = function (isWithoutTransform) {\n        if (this.removed) {\n            return {};\n        }\n        var _ = this._;\n        if (isWithoutTransform) {\n            if (_.dirty || !_.bboxwt) {\n                this.realPath = getPath[this.type](this);\n                _.bboxwt = pathDimensions(this.realPath);\n                _.bboxwt.toString = x_y_w_h;\n                _.dirty = 0;\n            }\n            return _.bboxwt;\n        }\n        if (_.dirty || _.dirtyT || !_.bbox) {\n            if (_.dirty || !this.realPath) {\n                _.bboxwt = 0;\n                this.realPath = getPath[this.type](this);\n            }\n            _.bbox = pathDimensions(mapPath(this.realPath, this.matrix));\n            _.bbox.toString = x_y_w_h;\n            _.dirty = _.dirtyT = 0;\n        }\n        return _.bbox;\n    };\n    /*\\\n     * Element.clone\n     [ method ]\n     **\n     = (object) clone of a given element\n     **\n     \\*/\n    elproto.clone = function () {\n        if (this.removed) {\n            return null;\n        }\n        var out = this.paper[this.type]().attr(this.attr());\n        this.__set__ && this.__set__.push(out);\n        return out;\n    };\n    /*\\\n     * Element.glow\n     [ method ]\n     **\n     * Return set of elements that create glow-like effect around given element. See @Paper.set.\n     *\n     * Note: Glow is not connected to the element. If you change element attributes it won’t adjust itself.\n     **\n     > Parameters\n     **\n     - glow (object) #optional parameters object with all properties optional:\n     o {\n     o     width (number) size of the glow, default is `10`\n     o     fill (boolean) will it be filled, default is `false`\n     o     opacity (number) opacity, default is `0.5`\n     o     offsetx (number) horizontal offset, default is `0`\n     o     offsety (number) vertical offset, default is `0`\n     o     color (string) glow colour, default is `black`\n     o }\n     = (object) @Paper.set of elements that represents glow\n     \\*/\n    elproto.glow = function (glow) {\n        if (this.type == "text") {\n            return null;\n        }\n        glow = glow || {};\n        var s = {\n                width: (glow.width || 10) + (+this.attr("stroke-width") || 1),\n                fill: glow.fill || false,\n                opacity: glow.opacity == null ? .5 : glow.opacity,\n                offsetx: glow.offsetx || 0,\n                offsety: glow.offsety || 0,\n                color: glow.color || "#000"\n            },\n            c = s.width / 2,\n            r = this.paper,\n            out = r.set(),\n            path = this.realPath || getPath[this.type](this);\n        path = this.matrix ? mapPath(path, this.matrix) : path;\n        for (var i = 1; i < c + 1; i++) {\n            out.push(r.path(path).attr({\n                stroke: s.color,\n                fill: s.fill ? s.color : "none",\n                "stroke-linejoin": "round",\n                "stroke-linecap": "round",\n                "stroke-width": +(s.width / c * i).toFixed(3),\n                opacity: +(s.opacity / c).toFixed(3)\n            }));\n        }\n        return out.insertBefore(this).translate(s.offsetx, s.offsety);\n    };\n    var curveslengths = {},\n        getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\n            if (length == null) {\n                return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n            } else {\n                return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\n            }\n        },\n        getLengthFactory = function (istotal, subpath) {\n            return function (path, length, onlystart) {\n                path = path2curve(path);\n                var x, y, p, l, sp = "", subpaths = {}, point,\n                    len = 0;\n                for (var i = 0, ii = path.length; i < ii; i++) {\n                    p = path[i];\n                    if (p[0] == "M") {\n                        x = +p[1];\n                        y = +p[2];\n                    } else {\n                        l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n                        if (len + l > length) {\n                            if (subpath && !subpaths.start) {\n                                point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n                                sp += ["C" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y];\n                                if (onlystart) {return sp;}\n                                subpaths.start = sp;\n                                sp = ["M" + point.x, point.y + "C" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join();\n                                len += l;\n                                x = +p[5];\n                                y = +p[6];\n                                continue;\n                            }\n                            if (!istotal && !subpath) {\n                                point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n                                return {x: point.x, y: point.y, alpha: point.alpha};\n                            }\n                        }\n                        len += l;\n                        x = +p[5];\n                        y = +p[6];\n                    }\n                    sp += p.shift() + p;\n                }\n                subpaths.end = sp;\n                point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n                point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha});\n                return point;\n            };\n        };\n    var getTotalLength = getLengthFactory(1),\n        getPointAtLength = getLengthFactory(),\n        getSubpathsAtLength = getLengthFactory(0, 1);\n    /*\\\n     * Raphael.getTotalLength\n     [ method ]\n     **\n     * Returns length of the given path in pixels.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string.\n     **\n     = (number) length.\n     \\*/\n    R.getTotalLength = getTotalLength;\n    /*\\\n     * Raphael.getPointAtLength\n     [ method ]\n     **\n     * Return coordinates of the point located at the given length on the given path.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string\n     - length (number)\n     **\n     = (object) representation of the point:\n     o {\n     o     x: (number) x coordinate\n     o     y: (number) y coordinate\n     o     alpha: (number) angle of derivative\n     o }\n     \\*/\n    R.getPointAtLength = getPointAtLength;\n    /*\\\n     * Raphael.getSubpath\n     [ method ]\n     **\n     * Return subpath of a given path from given length to given length.\n     **\n     > Parameters\n     **\n     - path (string) SVG path string\n     - from (number) position of the start of the segment\n     - to (number) position of the end of the segment\n     **\n     = (string) pathstring for the segment\n     \\*/\n    R.getSubpath = function (path, from, to) {\n        if (this.getTotalLength(path) - to < 1e-6) {\n            return getSubpathsAtLength(path, from).end;\n        }\n        var a = getSubpathsAtLength(path, to, 1);\n        return from ? getSubpathsAtLength(a, from).end : a;\n    };\n    /*\\\n     * Element.getTotalLength\n     [ method ]\n     **\n     * Returns length of the path in pixels. Only works for element of “path” type.\n     = (number) length.\n     \\*/\n    elproto.getTotalLength = function () {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        if (this.node.getTotalLength) {\n            return this.node.getTotalLength();\n        }\n\n        return getTotalLength(path);\n    };\n    /*\\\n     * Element.getPointAtLength\n     [ method ]\n     **\n     * Return coordinates of the point located at the given length on the given path. Only works for element of “path” type.\n     **\n     > Parameters\n     **\n     - length (number)\n     **\n     = (object) representation of the point:\n     o {\n     o     x: (number) x coordinate\n     o     y: (number) y coordinate\n     o     alpha: (number) angle of derivative\n     o }\n     \\*/\n    elproto.getPointAtLength = function (length) {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        return getPointAtLength(path, length);\n    };\n    /*\\\n     * Element.getPath\n     [ method ]\n     **\n     * Returns path of the element. Only works for elements of “path” type and simple elements like circle.\n     = (object) path\n     **\n     \\*/\n    elproto.getPath = function () {\n        var path,\n            getPath = R._getPath[this.type];\n\n        if (this.type == "text" || this.type == "set") {\n            return;\n        }\n\n        if (getPath) {\n            path = getPath(this);\n        }\n\n        return path;\n    };\n    /*\\\n     * Element.getSubpath\n     [ method ]\n     **\n     * Return subpath of a given element from given length to given length. Only works for element of “path” type.\n     **\n     > Parameters\n     **\n     - from (number) position of the start of the segment\n     - to (number) position of the end of the segment\n     **\n     = (string) pathstring for the segment\n     \\*/\n    elproto.getSubpath = function (from, to) {\n        var path = this.getPath();\n        if (!path) {\n            return;\n        }\n\n        return R.getSubpath(path, from, to);\n    };\n    /*\\\n     * Raphael.easing_formulas\n     [ property ]\n     **\n     * Object that contains easing formulas for animation. You could extend it with your own. By default it has following list of easing:\n     # <ul>\n     #     <li>“linear”</li>\n     #     <li>“&lt;” or “easeIn” or “ease-in”</li>\n     #     <li>“>” or “easeOut” or “ease-out”</li>\n     #     <li>“&lt;>” or “easeInOut” or “ease-in-out”</li>\n     #     <li>“backIn” or “back-in”</li>\n     #     <li>“backOut” or “back-out”</li>\n     #     <li>“elastic”</li>\n     #     <li>“bounce”</li>\n     # </ul>\n     # <p>See also <a href="http://raphaeljs.com/easing.html">Easing demo</a>.</p>\n     \\*/\n    var ef = R.easing_formulas = {\n        linear: function (n) {\n            return n;\n        },\n        "<": function (n) {\n            return pow(n, 1.7);\n        },\n        ">": function (n) {\n            return pow(n, .48);\n        },\n        "<>": function (n) {\n            var q = .48 - n / 1.04,\n                Q = math.sqrt(.1734 + q * q),\n                x = Q - q,\n                X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n                y = -Q - q,\n                Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n                t = X + Y + .5;\n            return (1 - t) * 3 * t * t + t * t * t;\n        },\n        backIn: function (n) {\n            var s = 1.70158;\n            return n * n * ((s + 1) * n - s);\n        },\n        backOut: function (n) {\n            n = n - 1;\n            var s = 1.70158;\n            return n * n * ((s + 1) * n + s) + 1;\n        },\n        elastic: function (n) {\n            if (n == !!n) {\n                return n;\n            }\n            return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1;\n        },\n        bounce: function (n) {\n            var s = 7.5625,\n                p = 2.75,\n                l;\n            if (n < (1 / p)) {\n                l = s * n * n;\n            } else {\n                if (n < (2 / p)) {\n                    n -= (1.5 / p);\n                    l = s * n * n + .75;\n                } else {\n                    if (n < (2.5 / p)) {\n                        n -= (2.25 / p);\n                        l = s * n * n + .9375;\n                    } else {\n                        n -= (2.625 / p);\n                        l = s * n * n + .984375;\n                    }\n                }\n            }\n            return l;\n        }\n    };\n    ef.easeIn = ef["ease-in"] = ef["<"];\n    ef.easeOut = ef["ease-out"] = ef[">"];\n    ef.easeInOut = ef["ease-in-out"] = ef["<>"];\n    ef["back-in"] = ef.backIn;\n    ef["back-out"] = ef.backOut;\n\n    var animationElements = [],\n        requestAnimFrame = window.requestAnimationFrame       ||\n            window.webkitRequestAnimationFrame ||\n            window.mozRequestAnimationFrame    ||\n            window.oRequestAnimationFrame      ||\n            window.msRequestAnimationFrame     ||\n            function (callback) {\n                setTimeout(callback, 16);\n            },\n        animation = function () {\n            var Now = +new Date,\n                l = 0;\n            for (; l < animationElements.length; l++) {\n                var e = animationElements[l];\n                if (e.el.removed || e.paused) {\n                    continue;\n                }\n                var time = Now - e.start,\n                    ms = e.ms,\n                    easing = e.easing,\n                    from = e.from,\n                    diff = e.diff,\n                    to = e.to,\n                    t = e.t,\n                    that = e.el,\n                    set = {},\n                    now,\n                    init = {},\n                    key;\n                if (e.initstatus) {\n                    time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms;\n                    e.status = e.initstatus;\n                    delete e.initstatus;\n                    e.stop && animationElements.splice(l--, 1);\n                } else {\n                    e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top;\n                }\n                if (time < 0) {\n                    continue;\n                }\n                if (time < ms) {\n                    var pos = easing(time / ms);\n                    for (var attr in from) if (from[has](attr)) {\n                        switch (availableAnimAttrs[attr]) {\n                            case nu:\n                                now = +from[attr] + pos * ms * diff[attr];\n                                break;\n                            case "colour":\n                                now = "rgb(" + [\n                                        upto255(round(from[attr].r + pos * ms * diff[attr].r)),\n                                        upto255(round(from[attr].g + pos * ms * diff[attr].g)),\n                                        upto255(round(from[attr].b + pos * ms * diff[attr].b))\n                                    ].join(",") + ")";\n                                break;\n                            case "path":\n                                now = [];\n                                for (var i = 0, ii = from[attr].length; i < ii; i++) {\n                                    now[i] = [from[attr][i][0]];\n                                    for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                        now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j];\n                                    }\n                                    now[i] = now[i].join(S);\n                                }\n                                now = now.join(S);\n                                break;\n                            case "transform":\n                                if (diff[attr].real) {\n                                    now = [];\n                                    for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                        now[i] = [from[attr][i][0]];\n                                        for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                            now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j];\n                                        }\n                                    }\n                                } else {\n                                    var get = function (i) {\n                                        return +from[attr][i] + pos * ms * diff[attr][i];\n                                    };\n                                    // now = [["r", get(2), 0, 0], ["t", get(3), get(4)], ["s", get(0), get(1), 0, 0]];\n                                    now = [["m", get(0), get(1), get(2), get(3), get(4), get(5)]];\n                                }\n                                break;\n                            case "csv":\n                                if (attr == "clip-rect") {\n                                    now = [];\n                                    i = 4;\n                                    while (i--) {\n                                        now[i] = +from[attr][i] + pos * ms * diff[attr][i];\n                                    }\n                                }\n                                break;\n                            default:\n                                var from2 = [][concat](from[attr]);\n                                now = [];\n                                i = that.paper.customAttributes[attr].length;\n                                while (i--) {\n                                    now[i] = +from2[i] + pos * ms * diff[attr][i];\n                                }\n                                break;\n                        }\n                        set[attr] = now;\n                    }\n                    that.attr(set);\n                    (function (id, that, anim) {\n                        setTimeout(function () {\n                            eve("raphael.anim.frame." + id, that, anim);\n                        });\n                    })(that.id, that, e.anim);\n                } else {\n                    (function(f, el, a) {\n                        setTimeout(function() {\n                            eve("raphael.anim.frame." + el.id, el, a);\n                            eve("raphael.anim.finish." + el.id, el, a);\n                            R.is(f, "function") && f.call(el);\n                        });\n                    })(e.callback, that, e.anim);\n                    that.attr(to);\n                    animationElements.splice(l--, 1);\n                    if (e.repeat > 1 && !e.next) {\n                        for (key in to) if (to[has](key)) {\n                            init[key] = e.totalOrigin[key];\n                        }\n                        e.el.attr(init);\n                        runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1);\n                    }\n                    if (e.next && !e.stop) {\n                        runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat);\n                    }\n                }\n            }\n            animationElements.length && requestAnimFrame(animation);\n        },\n        upto255 = function (color) {\n            return color > 255 ? 255 : color < 0 ? 0 : color;\n        };\n    /*\\\n     * Element.animateWith\n     [ method ]\n     **\n     * Acts similar to @Element.animate, but ensure that given animation runs in sync with another given element.\n     **\n     > Parameters\n     **\n     - el (object) element to sync with\n     - anim (object) animation to sync with\n     - params (object) #optional final attributes for the element, see also @Element.attr\n     - ms (number) #optional number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept on of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     * or\n     - element (object) element to sync with\n     - anim (object) animation to sync with\n     - animation (object) #optional animation object, see @Raphael.animation\n     **\n     = (object) original element\n     \\*/\n    elproto.animateWith = function (el, anim, params, ms, easing, callback) {\n        var element = this;\n        if (element.removed) {\n            callback && callback.call(element);\n            return element;\n        }\n        var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback),\n            x, y;\n        runAnimation(a, element, a.percents[0], null, element.attr());\n        for (var i = 0, ii = animationElements.length; i < ii; i++) {\n            if (animationElements[i].anim == anim && animationElements[i].el == el) {\n                animationElements[ii - 1].start = animationElements[i].start;\n                break;\n            }\n        }\n        return element;\n        //\n        //\n        // var a = params ? R.animation(params, ms, easing, callback) : anim,\n        //     status = element.status(anim);\n        // return this.animate(a).status(a, status * anim.ms / a.ms);\n    };\n    function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\n        var cx = 3 * p1x,\n            bx = 3 * (p2x - p1x) - cx,\n            ax = 1 - cx - bx,\n            cy = 3 * p1y,\n            by = 3 * (p2y - p1y) - cy,\n            ay = 1 - cy - by;\n        function sampleCurveX(t) {\n            return ((ax * t + bx) * t + cx) * t;\n        }\n        function solve(x, epsilon) {\n            var t = solveCurveX(x, epsilon);\n            return ((ay * t + by) * t + cy) * t;\n        }\n        function solveCurveX(x, epsilon) {\n            var t0, t1, t2, x2, d2, i;\n            for(t2 = x, i = 0; i < 8; i++) {\n                x2 = sampleCurveX(t2) - x;\n                if (abs(x2) < epsilon) {\n                    return t2;\n                }\n                d2 = (3 * ax * t2 + 2 * bx) * t2 + cx;\n                if (abs(d2) < 1e-6) {\n                    break;\n                }\n                t2 = t2 - x2 / d2;\n            }\n            t0 = 0;\n            t1 = 1;\n            t2 = x;\n            if (t2 < t0) {\n                return t0;\n            }\n            if (t2 > t1) {\n                return t1;\n            }\n            while (t0 < t1) {\n                x2 = sampleCurveX(t2);\n                if (abs(x2 - x) < epsilon) {\n                    return t2;\n                }\n                if (x > x2) {\n                    t0 = t2;\n                } else {\n                    t1 = t2;\n                }\n                t2 = (t1 - t0) / 2 + t0;\n            }\n            return t2;\n        }\n        return solve(t, 1 / (200 * duration));\n    }\n    elproto.onAnimation = function (f) {\n        f ? eve.on("raphael.anim.frame." + this.id, f) : eve.unbind("raphael.anim.frame." + this.id);\n        return this;\n    };\n    function Animation(anim, ms) {\n        var percents = [],\n            newAnim = {};\n        this.ms = ms;\n        this.times = 1;\n        if (anim) {\n            for (var attr in anim) if (anim[has](attr)) {\n                newAnim[toFloat(attr)] = anim[attr];\n                percents.push(toFloat(attr));\n            }\n            percents.sort(sortByNumber);\n        }\n        this.anim = newAnim;\n        this.top = percents[percents.length - 1];\n        this.percents = percents;\n    }\n    /*\\\n     * Animation.delay\n     [ method ]\n     **\n     * Creates a copy of existing animation object with given delay.\n     **\n     > Parameters\n     **\n     - delay (number) number of ms to pass between animation start and actual animation\n     **\n     = (object) new altered Animation object\n     | var anim = Raphael.animation({cx: 10, cy: 20}, 2e3);\n     | circle1.animate(anim); // run the given animation immediately\n     | circle2.animate(anim.delay(500)); // run the given animation after 500 ms\n     \\*/\n    Animation.prototype.delay = function (delay) {\n        var a = new Animation(this.anim, this.ms);\n        a.times = this.times;\n        a.del = +delay || 0;\n        return a;\n    };\n    /*\\\n     * Animation.repeat\n     [ method ]\n     **\n     * Creates a copy of existing animation object with given repetition.\n     **\n     > Parameters\n     **\n     - repeat (number) number iterations of animation. For infinite animation pass `Infinity`\n     **\n     = (object) new altered Animation object\n     \\*/\n    Animation.prototype.repeat = function (times) {\n        var a = new Animation(this.anim, this.ms);\n        a.del = this.del;\n        a.times = math.floor(mmax(times, 0)) || 1;\n        return a;\n    };\n    function runAnimation(anim, element, percent, status, totalOrigin, times) {\n        percent = toFloat(percent);\n        var params,\n            isInAnim,\n            isInAnimSet,\n            percents = [],\n            next,\n            prev,\n            timestamp,\n            ms = anim.ms,\n            from = {},\n            to = {},\n            diff = {};\n        if (status) {\n            for (i = 0, ii = animationElements.length; i < ii; i++) {\n                var e = animationElements[i];\n                if (e.el.id == element.id && e.anim == anim) {\n                    if (e.percent != percent) {\n                        animationElements.splice(i, 1);\n                        isInAnimSet = 1;\n                    } else {\n                        isInAnim = e;\n                    }\n                    element.attr(e.totalOrigin);\n                    break;\n                }\n            }\n        } else {\n            status = +to; // NaN\n        }\n        for (var i = 0, ii = anim.percents.length; i < ii; i++) {\n            if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) {\n                percent = anim.percents[i];\n                prev = anim.percents[i - 1] || 0;\n                ms = ms / anim.top * (percent - prev);\n                next = anim.percents[i + 1];\n                params = anim.anim[percent];\n                break;\n            } else if (status) {\n                element.attr(anim.anim[anim.percents[i]]);\n            }\n        }\n        if (!params) {\n            return;\n        }\n        if (!isInAnim) {\n            for (var attr in params) if (params[has](attr)) {\n                if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) {\n                    from[attr] = element.attr(attr);\n                    (from[attr] == null) && (from[attr] = availableAttrs[attr]);\n                    to[attr] = params[attr];\n                    switch (availableAnimAttrs[attr]) {\n                        case nu:\n                            diff[attr] = (to[attr] - from[attr]) / ms;\n                            break;\n                        case "colour":\n                            from[attr] = R.getRGB(from[attr]);\n                            var toColour = R.getRGB(to[attr]);\n                            diff[attr] = {\n                                r: (toColour.r - from[attr].r) / ms,\n                                g: (toColour.g - from[attr].g) / ms,\n                                b: (toColour.b - from[attr].b) / ms\n                            };\n                            break;\n                        case "path":\n                            var pathes = path2curve(from[attr], to[attr]),\n                                toPath = pathes[1];\n                            from[attr] = pathes[0];\n                            diff[attr] = [];\n                            for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                diff[attr][i] = [0];\n                                for (var j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                    diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms;\n                                }\n                            }\n                            break;\n                        case "transform":\n                            var _ = element._,\n                                eq = equaliseTransform(_[attr], to[attr]);\n                            if (eq) {\n                                from[attr] = eq.from;\n                                to[attr] = eq.to;\n                                diff[attr] = [];\n                                diff[attr].real = true;\n                                for (i = 0, ii = from[attr].length; i < ii; i++) {\n                                    diff[attr][i] = [from[attr][i][0]];\n                                    for (j = 1, jj = from[attr][i].length; j < jj; j++) {\n                                        diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms;\n                                    }\n                                }\n                            } else {\n                                var m = (element.matrix || new Matrix),\n                                    to2 = {\n                                        _: {transform: _.transform},\n                                        getBBox: function () {\n                                            return element.getBBox(1);\n                                        }\n                                    };\n                                from[attr] = [\n                                    m.a,\n                                    m.b,\n                                    m.c,\n                                    m.d,\n                                    m.e,\n                                    m.f\n                                ];\n                                extractTransform(to2, to[attr]);\n                                to[attr] = to2._.transform;\n                                diff[attr] = [\n                                    (to2.matrix.a - m.a) / ms,\n                                    (to2.matrix.b - m.b) / ms,\n                                    (to2.matrix.c - m.c) / ms,\n                                    (to2.matrix.d - m.d) / ms,\n                                    (to2.matrix.e - m.e) / ms,\n                                    (to2.matrix.f - m.f) / ms\n                                ];\n                                // from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy];\n                                // var to2 = {_:{}, getBBox: function () { return element.getBBox(); }};\n                                // extractTransform(to2, to[attr]);\n                                // diff[attr] = [\n                                //     (to2._.sx - _.sx) / ms,\n                                //     (to2._.sy - _.sy) / ms,\n                                //     (to2._.deg - _.deg) / ms,\n                                //     (to2._.dx - _.dx) / ms,\n                                //     (to2._.dy - _.dy) / ms\n                                // ];\n                            }\n                            break;\n                        case "csv":\n                            var values = Str(params[attr])[split](separator),\n                                from2 = Str(from[attr])[split](separator);\n                            if (attr == "clip-rect") {\n                                from[attr] = from2;\n                                diff[attr] = [];\n                                i = from2.length;\n                                while (i--) {\n                                    diff[attr][i] = (values[i] - from[attr][i]) / ms;\n                                }\n                            }\n                            to[attr] = values;\n                            break;\n                        default:\n                            values = [][concat](params[attr]);\n                            from2 = [][concat](from[attr]);\n                            diff[attr] = [];\n                            i = element.paper.customAttributes[attr].length;\n                            while (i--) {\n                                diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms;\n                            }\n                            break;\n                    }\n                }\n            }\n            var easing = params.easing,\n                easyeasy = R.easing_formulas[easing];\n            if (!easyeasy) {\n                easyeasy = Str(easing).match(bezierrg);\n                if (easyeasy && easyeasy.length == 5) {\n                    var curve = easyeasy;\n                    easyeasy = function (t) {\n                        return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms);\n                    };\n                } else {\n                    easyeasy = pipe;\n                }\n            }\n            timestamp = params.start || anim.start || +new Date;\n            e = {\n                anim: anim,\n                percent: percent,\n                timestamp: timestamp,\n                start: timestamp + (anim.del || 0),\n                status: 0,\n                initstatus: status || 0,\n                stop: false,\n                ms: ms,\n                easing: easyeasy,\n                from: from,\n                diff: diff,\n                to: to,\n                el: element,\n                callback: params.callback,\n                prev: prev,\n                next: next,\n                repeat: times || anim.times,\n                origin: element.attr(),\n                totalOrigin: totalOrigin\n            };\n            animationElements.push(e);\n            if (status && !isInAnim && !isInAnimSet) {\n                e.stop = true;\n                e.start = new Date - ms * status;\n                if (animationElements.length == 1) {\n                    return animation();\n                }\n            }\n            if (isInAnimSet) {\n                e.start = new Date - e.ms * status;\n            }\n            animationElements.length == 1 && requestAnimFrame(animation);\n        } else {\n            isInAnim.initstatus = status;\n            isInAnim.start = new Date - isInAnim.ms * status;\n        }\n        eve("raphael.anim.start." + element.id, element, anim);\n    }\n    /*\\\n     * Raphael.animation\n     [ method ]\n     **\n     * Creates an animation object that can be passed to the @Element.animate or @Element.animateWith methods.\n     * See also @Animation.delay and @Animation.repeat methods.\n     **\n     > Parameters\n     **\n     - params (object) final attributes for the element, see also @Element.attr\n     - ms (number) number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     **\n     = (object) @Animation\n     \\*/\n    R.animation = function (params, ms, easing, callback) {\n        if (params instanceof Animation) {\n            return params;\n        }\n        if (R.is(easing, "function") || !easing) {\n            callback = callback || easing || null;\n            easing = null;\n        }\n        params = Object(params);\n        ms = +ms || 0;\n        var p = {},\n            json,\n            attr;\n        for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + "%" != attr) {\n            json = true;\n            p[attr] = params[attr];\n        }\n        if (!json) {\n            // if percent-like syntax is used and end-of-all animation callback used\n            if(callback){\n                // find the last one\n                var lastKey = 0;\n                for(var i in params){\n                    var percent = toInt(i);\n                    if(params[has](i) && percent > lastKey){\n                        lastKey = percent;\n                    }\n                }\n                lastKey += \'%\';\n                // if already defined callback in the last keyframe, skip\n                !params[lastKey].callback && (params[lastKey].callback = callback);\n            }\n            return new Animation(params, ms);\n        } else {\n            easing && (p.easing = easing);\n            callback && (p.callback = callback);\n            return new Animation({100: p}, ms);\n        }\n    };\n    /*\\\n     * Element.animate\n     [ method ]\n     **\n     * Creates and starts animation for given element.\n     **\n     > Parameters\n     **\n     - params (object) final attributes for the element, see also @Element.attr\n     - ms (number) number of milliseconds for animation to run\n     - easing (string) #optional easing type. Accept one of @Raphael.easing_formulas or CSS format: `cubic&#x2010;bezier(XX,&#160;XX,&#160;XX,&#160;XX)`\n     - callback (function) #optional callback function. Will be called at the end of animation.\n     * or\n     - animation (object) animation object, see @Raphael.animation\n     **\n     = (object) original element\n     \\*/\n    elproto.animate = function (params, ms, easing, callback) {\n        var element = this;\n        if (element.removed) {\n            callback && callback.call(element);\n            return element;\n        }\n        var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback);\n        runAnimation(anim, element, anim.percents[0], null, element.attr());\n        return element;\n    };\n    /*\\\n     * Element.setTime\n     [ method ]\n     **\n     * Sets the status of animation of the element in milliseconds. Similar to @Element.status method.\n     **\n     > Parameters\n     **\n     - anim (object) animation object\n     - value (number) number of milliseconds from the beginning of the animation\n     **\n     = (object) original element if `value` is specified\n     * Note, that during animation following events are triggered:\n     *\n     * On each animation frame event `anim.frame.<id>`, on start `anim.start.<id>` and on end `anim.finish.<id>`.\n     \\*/\n    elproto.setTime = function (anim, value) {\n        if (anim && value != null) {\n            this.status(anim, mmin(value, anim.ms) / anim.ms);\n        }\n        return this;\n    };\n    /*\\\n     * Element.status\n     [ method ]\n     **\n     * Gets or sets the status of animation of the element.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     - value (number) #optional 0 – 1. If specified, method works like a setter and sets the status of a given animation to the value. This will cause animation to jump to the given position.\n     **\n     = (number) status\n     * or\n     = (array) status if `anim` is not specified. Array of objects in format:\n     o {\n     o     anim: (object) animation object\n     o     status: (number) status\n     o }\n     * or\n     = (object) original element if `value` is specified\n     \\*/\n    elproto.status = function (anim, value) {\n        var out = [],\n            i = 0,\n            len,\n            e;\n        if (value != null) {\n            runAnimation(anim, this, -1, mmin(value, 1));\n            return this;\n        } else {\n            len = animationElements.length;\n            for (; i < len; i++) {\n                e = animationElements[i];\n                if (e.el.id == this.id && (!anim || e.anim == anim)) {\n                    if (anim) {\n                        return e.status;\n                    }\n                    out.push({\n                        anim: e.anim,\n                        status: e.status\n                    });\n                }\n            }\n            if (anim) {\n                return 0;\n            }\n            return out;\n        }\n    };\n    /*\\\n     * Element.pause\n     [ method ]\n     **\n     * Stops animation of the element with ability to resume it later on.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n     \\*/\n    elproto.pause = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            if (eve("raphael.anim.pause." + this.id, this, animationElements[i].anim) !== false) {\n                animationElements[i].paused = true;\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Element.resume\n     [ method ]\n     **\n     * Resumes animation if it was paused with @Element.pause method.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n     \\*/\n    elproto.resume = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            var e = animationElements[i];\n            if (eve("raphael.anim.resume." + this.id, this, e.anim) !== false) {\n                delete e.paused;\n                this.status(e.anim, e.status);\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Element.stop\n     [ method ]\n     **\n     * Stops animation of the element.\n     **\n     > Parameters\n     **\n     - anim (object) #optional animation object\n     **\n     = (object) original element\n     \\*/\n    elproto.stop = function (anim) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {\n            if (eve("raphael.anim.stop." + this.id, this, animationElements[i].anim) !== false) {\n                animationElements.splice(i--, 1);\n            }\n        }\n        return this;\n    };\n    function stopAnimation(paper) {\n        for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) {\n            animationElements.splice(i--, 1);\n        }\n    }\n    eve.on("raphael.remove", stopAnimation);\n    eve.on("raphael.clear", stopAnimation);\n    elproto.toString = function () {\n        return "Rapha\\xebl\\u2019s object";\n    };\n\n    // Set\n    var Set = function (items) {\n            this.items = [];\n            this.length = 0;\n            this.type = "set";\n            if (items) {\n                for (var i = 0, ii = items.length; i < ii; i++) {\n                    if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) {\n                        this[this.items.length] = this.items[this.items.length] = items[i];\n                        this.length++;\n                    }\n                }\n            }\n        },\n        setproto = Set.prototype;\n    /*\\\n     * Set.push\n     [ method ]\n     **\n     * Adds each argument to the current set.\n     = (object) original element\n     \\*/\n    setproto.push = function () {\n        var item,\n            len;\n        for (var i = 0, ii = arguments.length; i < ii; i++) {\n            item = arguments[i];\n            if (item && (item.constructor == elproto.constructor || item.constructor == Set)) {\n                len = this.items.length;\n                this[len] = this.items[len] = item;\n                this.length++;\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Set.pop\n     [ method ]\n     **\n     * Removes last element and returns it.\n     = (object) element\n     \\*/\n    setproto.pop = function () {\n        this.length && delete this[this.length--];\n        return this.items.pop();\n    };\n    /*\\\n     * Set.forEach\n     [ method ]\n     **\n     * Executes given function for each element in the set.\n     *\n     * If function returns `false` it will stop loop running.\n     **\n     > Parameters\n     **\n     - callback (function) function to run\n     - thisArg (object) context object for the callback\n     = (object) Set object\n     \\*/\n    setproto.forEach = function (callback, thisArg) {\n        for (var i = 0, ii = this.items.length; i < ii; i++) {\n            if (callback.call(thisArg, this.items[i], i) === false) {\n                return this;\n            }\n        }\n        return this;\n    };\n    for (var method in elproto) if (elproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname][apply](el, arg);\n                });\n            };\n        })(method);\n    }\n    setproto.attr = function (name, value) {\n        if (name && R.is(name, array) && R.is(name[0], "object")) {\n            for (var j = 0, jj = name.length; j < jj; j++) {\n                this.items[j].attr(name[j]);\n            }\n        } else {\n            for (var i = 0, ii = this.items.length; i < ii; i++) {\n                this.items[i].attr(name, value);\n            }\n        }\n        return this;\n    };\n    /*\\\n     * Set.clear\n     [ method ]\n     **\n     * Removes all elements from the set\n     \\*/\n    setproto.clear = function () {\n        while (this.length) {\n            this.pop();\n        }\n    };\n    /*\\\n     * Set.splice\n     [ method ]\n     **\n     * Removes given element from the set\n     **\n     > Parameters\n     **\n     - index (number) position of the deletion\n     - count (number) number of element to remove\n     - insertion… (object) #optional elements to insert\n     = (object) set elements that were deleted\n     \\*/\n    setproto.splice = function (index, count, insertion) {\n        index = index < 0 ? mmax(this.length + index, 0) : index;\n        count = mmax(0, mmin(this.length - index, count));\n        var tail = [],\n            todel = [],\n            args = [],\n            i;\n        for (i = 2; i < arguments.length; i++) {\n            args.push(arguments[i]);\n        }\n        for (i = 0; i < count; i++) {\n            todel.push(this[index + i]);\n        }\n        for (; i < this.length - index; i++) {\n            tail.push(this[index + i]);\n        }\n        var arglen = args.length;\n        for (i = 0; i < arglen + tail.length; i++) {\n            this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\n        }\n        i = this.items.length = this.length -= count - arglen;\n        while (this[i]) {\n            delete this[i++];\n        }\n        return new Set(todel);\n    };\n    /*\\\n     * Set.exclude\n     [ method ]\n     **\n     * Removes given element from the set\n     **\n     > Parameters\n     **\n     - element (object) element to remove\n     = (boolean) `true` if object was found & removed from the set\n     \\*/\n    setproto.exclude = function (el) {\n        for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\n            this.splice(i, 1);\n            return true;\n        }\n    };\n    setproto.animate = function (params, ms, easing, callback) {\n        (R.is(easing, "function") || !easing) && (callback = easing || null);\n        var len = this.items.length,\n            i = len,\n            item,\n            set = this,\n            collector;\n        if (!len) {\n            return this;\n        }\n        callback && (collector = function () {\n            !--len && callback.call(set);\n        });\n        easing = R.is(easing, string) ? easing : collector;\n        var anim = R.animation(params, ms, easing, collector);\n        item = this.items[--i].animate(anim);\n        while (i--) {\n            this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim);\n            (this.items[i] && !this.items[i].removed) || len--;\n        }\n        return this;\n    };\n    setproto.insertAfter = function (el) {\n        var i = this.items.length;\n        while (i--) {\n            this.items[i].insertAfter(el);\n        }\n        return this;\n    };\n\n    // FREEGROUP Fix: RaphaelJS changes the order of the elements of the \'set\' by calling the toBack method.\n    //                "toBack" must be called reverse to care about the rendering order. In this case we override\n    //                the buggy default implementation here.\n    //\n    setproto.toBack = function () {\n        var i = this.items.length;\n        while (i--) {\n            this.items[i].toBack();\n        }\n        return this;\n    };\n\n    // FREEGROUP Fix: Unfortunately raphael didn\'T expose the "set.prototype". In this case\n    //                I must add all extension to the raphael implementation itself.\n    //                Provide support method for easy check if the elements are visible.\n    setproto.isVisible = function () {\n        var i = this.items.length;\n        var visible = false;\n        while (i--) {\n            visible = visible ||this.items[i].isVisible();\n        }\n        return visible;\n    };\n\n\n    // FREEGROUP FIX: Adding "isWithoutTransform" to the function and redirect them to the elements\n    setproto.getBBox = function (isWithoutTransform) {\n        var x = [],\n            y = [],\n            x2 = [],\n            y2 = [];\n        for (var i = this.items.length; i--;) if (!this.items[i].removed) {\n            var box = this.items[i].getBBox(isWithoutTransform);\n            x.push(box.x);\n            y.push(box.y);\n            x2.push(box.x + box.width);\n            y2.push(box.y + box.height);\n        }\n        x = mmin[apply](0, x);\n        y = mmin[apply](0, y);\n        x2 = mmax[apply](0, x2);\n        y2 = mmax[apply](0, y2);\n        return {\n            x: x,\n            y: y,\n            x2: x2,\n            y2: y2,\n            width: x2 - x,\n            height: y2 - y\n        };\n    };\n    setproto.clone = function (s) {\n        s = this.paper.set();\n        for (var i = 0, ii = this.items.length; i < ii; i++) {\n            s.push(this.items[i].clone());\n        }\n        return s;\n    };\n    setproto.toString = function () {\n        return "Rapha\\xebl\\u2018s set";\n    };\n\n    setproto.glow = function(glowConfig) {\n        var ret = this.paper.set();\n        this.forEach(function(shape, index){\n            var g = shape.glow(glowConfig);\n            if(g != null){\n                g.forEach(function(shape2, index2){\n                    ret.push(shape2);\n                });\n            }\n        });\n        return ret;\n    };\n\n\n    /*\\\n     * Set.isPointInside\n     [ method ]\n     **\n     * Determine if given point is inside this set’s elements\n     **\n     > Parameters\n     **\n     - x (number) x coordinate of the point\n     - y (number) y coordinate of the point\n     = (boolean) `true` if point is inside any of the set\'s elements\n     \\*/\n    setproto.isPointInside = function (x, y) {\n        var isPointInside = false;\n        this.forEach(function (el) {\n            if (el.isPointInside(x, y)) {\n                isPointInside = true;\n                return false; // stop loop\n            }\n        });\n        return isPointInside;\n    };\n\n    /*\\\n     * Raphael.registerFont\n     [ method ]\n     **\n     * Adds given font to the registered set of fonts for Raphaël. Should be used as an internal call from within Cufón’s font file.\n     * Returns original parameter, so it could be used with chaining.\n     # <a href="http://wiki.github.com/sorccu/cufon/about">More about Cufón and how to convert your font form TTF, OTF, etc to JavaScript file.</a>\n     **\n     > Parameters\n     **\n     - font (object) the font to register\n     = (object) the font you passed in\n     > Usage\n     | Cufon.registerFont(Raphael.registerFont({…}));\n     \\*/\n    R.registerFont = function (font) {\n        if (!font.face) {\n            return font;\n        }\n        this.fonts = this.fonts || {};\n        var fontcopy = {\n                w: font.w,\n                face: {},\n                glyphs: {}\n            },\n            family = font.face["font-family"];\n        for (var prop in font.face) if (font.face[has](prop)) {\n            fontcopy.face[prop] = font.face[prop];\n        }\n        if (this.fonts[family]) {\n            this.fonts[family].push(fontcopy);\n        } else {\n            this.fonts[family] = [fontcopy];\n        }\n        if (!font.svg) {\n            fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10);\n            for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) {\n                var path = font.glyphs[glyph];\n                fontcopy.glyphs[glyph] = {\n                    w: path.w,\n                    k: {},\n                    d: path.d && "M" + path.d.replace(/[mlcxtrv]/g, function (command) {\n                        return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M";\n                    }) + "z"\n                };\n                if (path.k) {\n                    for (var k in path.k) if (path[has](k)) {\n                        fontcopy.glyphs[glyph].k[k] = path.k[k];\n                    }\n                }\n            }\n        }\n        return font;\n    };\n    /*\\\n     * Paper.getFont\n     [ method ]\n     **\n     * Finds font object in the registered fonts by given parameters. You could specify only one word from the font name, like “Myriad” for “Myriad Pro”.\n     **\n     > Parameters\n     **\n     - family (string) font family name or any word from it\n     - weight (string) #optional font weight\n     - style (string) #optional font style\n     - stretch (string) #optional font stretch\n     = (object) the font object\n     > Usage\n     | paper.print(100, 100, "Test string", paper.getFont("Times", 800), 30);\n     \\*/\n    paperproto.getFont = function (family, weight, style, stretch) {\n        stretch = stretch || "normal";\n        style = style || "normal";\n        weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400;\n        if (!R.fonts) {\n            return;\n        }\n        var font = R.fonts[family];\n        if (!font) {\n            var name = new RegExp("(^|\\\\s)" + family.replace(/[^\\w\\d\\s+!~.:_-]/g, E) + "(\\\\s|$)", "i");\n            for (var fontName in R.fonts) if (R.fonts[has](fontName)) {\n                if (name.test(fontName)) {\n                    font = R.fonts[fontName];\n                    break;\n                }\n            }\n        }\n        var thefont;\n        if (font) {\n            for (var i = 0, ii = font.length; i < ii; i++) {\n                thefont = font[i];\n                if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) {\n                    break;\n                }\n            }\n        }\n        return thefont;\n    };\n    /*\\\n     * Paper.print\n     [ method ]\n     **\n     * Creates path that represent given text written using given font at given position with given size.\n     * Result of the method is path element that contains whole text as a separate path.\n     **\n     > Parameters\n     **\n     - x (number) x position of the text\n     - y (number) y position of the text\n     - string (string) text to print\n     - font (object) font object, see @Paper.getFont\n     - size (number) #optional size of the font, default is `16`\n     - origin (string) #optional could be `"baseline"` or `"middle"`, default is `"middle"`\n     - letter_spacing (number) #optional number in range `-1..1`, default is `0`\n     - line_spacing (number) #optional number in range `1..3`, default is `1`\n     = (object) resulting path element, which consist of all letters\n     > Usage\n     | var txt = r.print(10, 50, "print", r.getFont("Museo"), 30).attr({fill: "#fff"});\n     \\*/\n    paperproto.print = function (x, y, string, font, size, origin, letter_spacing, line_spacing) {\n        origin = origin || "middle"; // baseline|middle\n        letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1);\n        line_spacing = mmax(mmin(line_spacing || 1, 3), 1);\n        var letters = Str(string)[split](E),\n            shift = 0,\n            notfirst = 0,\n            path = E,\n            scale;\n        R.is(font, "string") && (font = this.getFont(font));\n        if (font) {\n            scale = (size || 16) / font.face["units-per-em"];\n            var bb = font.face.bbox[split](separator),\n                top = +bb[0],\n                lineHeight = bb[3] - bb[1],\n                shifty = 0,\n                height = +bb[1] + (origin == "baseline" ? lineHeight + (+font.face.descent) : lineHeight / 2);\n            for (var i = 0, ii = letters.length; i < ii; i++) {\n                if (letters[i] == "\\n") {\n                    shift = 0;\n                    curr = 0;\n                    notfirst = 0;\n                    shifty += lineHeight * line_spacing;\n                } else {\n                    var prev = notfirst && font.glyphs[letters[i - 1]] || {},\n                        curr = font.glyphs[letters[i]];\n                    shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0;\n                    notfirst = 1;\n                }\n                if (curr && curr.d) {\n                    path += R.transformPath(curr.d, ["t", shift * scale, shifty * scale, "s", scale, scale, top, height, "t", (x - top) / scale, (y - height) / scale]);\n                }\n            }\n        }\n        return this.path(path).attr({\n            fill: "#000",\n            stroke: "none"\n        });\n    };\n\n    /*\\\n     * Paper.add\n     [ method ]\n     **\n     * Imports elements in JSON array in format `{type: type, <attributes>}`\n     **\n     > Parameters\n     **\n     - json (array)\n     = (object) resulting set of imported elements\n     > Usage\n     | paper.add([\n     |     {\n     |         type: "circle",\n     |         cx: 10,\n     |         cy: 10,\n     |         r: 5\n     |     },\n     |     {\n     |         type: "rect",\n     |         x: 10,\n     |         y: 10,\n     |         width: 10,\n     |         height: 10,\n     |         fill: "#fc0"\n     |     }\n     | ]);\n     \\*/\n    paperproto.add = function (json) {\n        if (R.is(json, "array")) {\n            var res = this.set(),\n                i = 0,\n                ii = json.length,\n                j;\n            for (; i < ii; i++) {\n                j = json[i] || {};\n                elements[has](j.type) && res.push(this[j.type]().attr(j));\n            }\n        }\n        return res;\n    };\n\n    /*\\\n     * Raphael.format\n     [ method ]\n     **\n     * Simple format function. Replaces construction of type “`{<number>}`” to the corresponding argument.\n     **\n     > Parameters\n     **\n     - token (string) string to format\n     - … (string) rest of arguments will be treated as parameters for replacement\n     = (string) formated string\n     > Usage\n     | var x = 10,\n     |     y = 20,\n     |     width = 40,\n     |     height = 50;\n     | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z"\n     | paper.path(Raphael.format("M{0},{1}h{2}v{3}h{4}z", x, y, width, height, -width));\n     \\*/\n    R.format = function (token, params) {\n        var args = R.is(params, array) ? [0][concat](params) : arguments;\n        token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) {\n            return args[++i] == null ? E : args[i];\n        }));\n        return token || E;\n    };\n    /*\\\n     * Raphael.fullfill\n     [ method ]\n     **\n     * A little bit more advanced format function than @Raphael.format. Replaces construction of type “`{<name>}`” to the corresponding argument.\n     **\n     > Parameters\n     **\n     - token (string) string to format\n     - json (object) object which properties will be used as a replacement\n     = (string) formated string\n     > Usage\n     | // this will draw a rectangular shape equivalent to "M10,20h40v50h-40z"\n     | paper.path(Raphael.fullfill("M{x},{y}h{dim.width}v{dim.height}h{dim[\'negative width\']}z", {\n     |     x: 10,\n     |     y: 20,\n     |     dim: {\n     |         width: 40,\n     |         height: 50,\n     |         "negative width": -40\n     |     }\n     | }));\n     \\*/\n    R.fullfill = (function () {\n        var tokenRegex = /\\{([^\\}]+)\\}/g,\n            objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[(\'|")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or ["xxxxx"] to run over object properties\n            replacer = function (all, key, obj) {\n                var res = obj;\n                key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\n                    name = name || quotedName;\n                    if (res) {\n                        if (name in res) {\n                            res = res[name];\n                        }\n                        typeof res == "function" && isFunc && (res = res());\n                    }\n                });\n                res = (res == null || res == obj ? all : res) + "";\n                return res;\n            };\n        return function (str, obj) {\n            return String(str).replace(tokenRegex, function (all, key) {\n                return replacer(all, key, obj);\n            });\n        };\n    })();\n    /*\\\n     * Raphael.ninja\n     [ method ]\n     **\n     * If you want to leave no trace of Raphaël (Well, Raphaël creates only one global variable `Raphael`, but anyway.) You can use `ninja` method.\n     * Beware, that in this case plugins could stop working, because they are depending on global variable existence.\n     **\n     = (object) Raphael object\n     > Usage\n     | (function (local_raphael) {\n     |     var paper = local_raphael(10, 10, 320, 200);\n     |     …\n     | })(Raphael.ninja());\n     \\*/\n    R.ninja = function () {\n        oldRaphael.was ? (g.win.Raphael = oldRaphael.is) : delete Raphael;\n        return R;\n    };\n    /*\\\n     * Raphael.st\n     [ property (object) ]\n     **\n     * You can add your own method to elements and sets. It is wise to add a set method for each element method\n     * you added, so you will be able to call the same method on sets too.\n     **\n     * See also @Raphael.el.\n     > Usage\n     | Raphael.el.red = function () {\n     |     this.attr({fill: "#f00"});\n     | };\n     | Raphael.st.red = function () {\n     |     this.forEach(function (el) {\n     |         el.red();\n     |     });\n     | };\n     | // then use it\n     | paper.set(paper.circle(100, 100, 20), paper.circle(110, 100, 20)).red();\n     \\*/\n    R.st = setproto;\n\n    eve.on("raphael.DOMload", function () {\n        loaded = true;\n    });\n\n    // Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html\n    (function (doc, loaded, f) {\n        if (doc.readyState == null && doc.addEventListener){\n            doc.addEventListener(loaded, f = function () {\n                doc.removeEventListener(loaded, f, false);\n                doc.readyState = "complete";\n            }, false);\n            doc.readyState = "loading";\n        }\n        function isLoaded() {\n            (/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve("raphael.DOMload");\n        }\n        isLoaded();\n    })(document, "DOMContentLoaded");\n\n    return R;\n}));\n\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library                       │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ SVG Module                                                          │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com)   │ \\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com)             │ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n    if (typeof define === "function" && define.amd) {\n        define("raphael.svg", ["raphael.core"], function(raphael) {\n            return factory(raphael);\n        });\n    } else if (typeof exports === "object") {\n        factory(require("./raphael.core"));\n    } else {\n        factory(glob.Raphael);\n    }\n}(this, function(R) {\n    if (R && !R.svg) {\n        return;\n    }\n\n    var has = "hasOwnProperty",\n        Str = String,\n        toFloat = parseFloat,\n        toInt = parseInt,\n        math = Math,\n        mmax = math.max,\n        abs = math.abs,\n        pow = math.pow,\n        separator = /[, ]+/,\n        eve = R.eve,\n        E = "",\n        S = " ";\n    var xlink = "http://www.w3.org/1999/xlink",\n        markers = {\n            block: "M5,0 0,2.5 5,5z",\n            classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z",\n            diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z",\n            open: "M6,1 1,3.5 6,6",\n            oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"\n        },\n        markerCounter = {};\n    R.toString = function () {\n        return  "Your browser supports SVG.\\nYou are running Rapha\\xebl " + this.version;\n    };\n    var $ = function (el, attr) {\n            if (attr) {\n                if (typeof el == "string") {\n                    el = $(el);\n                }\n                for (var key in attr) if (attr[has](key)) {\n                    if (key.substring(0, 6) == "xlink:") {\n                        el.setAttributeNS(xlink, key.substring(6), Str(attr[key]));\n                    } else {\n                        el.setAttribute(key, Str(attr[key]));\n                    }\n                }\n            } else {\n                el = R._g.doc.createElementNS("http://www.w3.org/2000/svg", el);\n                el.style && (el.style.webkitTapHighlightColor = "rgba(0,0,0,0)");\n            }\n            return el;\n        },\n        addGradientFill = function (element, gradient) {\n            var type = "linear",\n                id = element.id + gradient,\n                fx = .5, fy = .5,\n                o = element.node,\n                SVG = element.paper,\n                s = o.style,\n                el = R._g.doc.getElementById(id);\n            if (!el) {\n                gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) {\n                    type = "radial";\n                    if (_fx && _fy) {\n                        fx = toFloat(_fx);\n                        fy = toFloat(_fy);\n                        var dir = ((fy > .5) * 2 - 1);\n                        pow(fx - .5, 2) + pow(fy - .5, 2) > .25 &&\n                        (fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) &&\n                        fy != .5 &&\n                        (fy = fy.toFixed(5) - 1e-5 * dir);\n                    }\n                    return E;\n                });\n                gradient = gradient.split(/\\s*\\-\\s*/);\n                if (type == "linear") {\n                    var angle = gradient.shift();\n                    angle = -toFloat(angle);\n                    if (isNaN(angle)) {\n                        return null;\n                    }\n                    var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))],\n                        max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1);\n                    vector[2] *= max;\n                    vector[3] *= max;\n                    if (vector[2] < 0) {\n                        vector[0] = -vector[2];\n                        vector[2] = 0;\n                    }\n                    if (vector[3] < 0) {\n                        vector[1] = -vector[3];\n                        vector[3] = 0;\n                    }\n                }\n                var dots = R._parseDots(gradient);\n                if (!dots) {\n                    return null;\n                }\n                id = id.replace(/[\\(\\)\\s,\\xb0#]/g, "_");\n\n                if (element.gradient && id != element.gradient.id) {\n                    SVG.defs.removeChild(element.gradient);\n                    delete element.gradient;\n                }\n\n                if (!element.gradient) {\n                    el = $(type + "Gradient", {id: id});\n                    element.gradient = el;\n                    $(el, type == "radial" ? {\n                        fx: fx,\n                        fy: fy\n                    } : {\n                        x1: vector[0],\n                        y1: vector[1],\n                        x2: vector[2],\n                        y2: vector[3],\n                        gradientTransform: element.matrix.invert()\n                    });\n                    SVG.defs.appendChild(el);\n                    for (var i = 0, ii = dots.length; i < ii; i++) {\n                        el.appendChild($("stop", {\n                            offset: dots[i].offset ? dots[i].offset : i ? "100%" : "0%",\n                            "stop-color": dots[i].color || "#fff",\n                            "stop-opacity": isFinite(dots[i].opacity) ? dots[i].opacity : 1\n                        }));\n                    }\n                }\n            }\n            /* FREEGROUP: don\'t push URL parameter into the drawing. This will break Apps with "?" in the URL\n             * see: https://github.com/DmitryBaranovskiy/raphael/issues/693\n             **/\n            var url ="";//document.location.protocol + "//" + document.location.host  + document.location.pathname;\n            $(o, {\n                fill: "url(\'" + url + "#" + id + "\')",\n                opacity: 1,\n                "fill-opacity": 1\n            });\n\n            s.fill = E;\n            s.opacity = 1;\n            s.fillOpacity = 1;\n            return 1;\n        },\n        updatePosition = function (o) {\n            var bbox = o.getBBox(1);\n            $(o.pattern, {patternTransform: o.matrix.invert() + " translate(" + bbox.x + "," + bbox.y + ")"});\n        },\n        addArrow = function (o, value, isEnd) {\n            if (o.type == "path") {\n                var values = Str(value).toLowerCase().split("-"),\n                    p = o.paper,\n                    se = isEnd ? "end" : "start",\n                    node = o.node,\n                    attrs = o.attrs,\n                    stroke = attrs["stroke-width"],\n                    i = values.length,\n                    type = "classic",\n                    from,\n                    to,\n                    dx,\n                    refX,\n                    attr,\n                    w = 3,\n                    h = 3,\n                    t = 5;\n                while (i--) {\n                    switch (values[i]) {\n                        case "block":\n                        case "classic":\n                        case "oval":\n                        case "diamond":\n                        case "open":\n                        case "none":\n                            type = values[i];\n                            break;\n                        case "wide": h = 5; break;\n                        case "narrow": h = 2; break;\n                        case "long": w = 5; break;\n                        case "short": w = 2; break;\n                    }\n                }\n                if (type == "open") {\n                    w += 2;\n                    h += 2;\n                    t += 2;\n                    dx = 1;\n                    refX = isEnd ? 4 : 1;\n                    attr = {\n                        fill: "none",\n                        stroke: attrs.stroke\n                    };\n                } else {\n                    refX = dx = w / 2;\n                    attr = {\n                        fill: attrs.stroke,\n                        stroke: "none"\n                    };\n                }\n                if (o._.arrows) {\n                    if (isEnd) {\n                        o._.arrows.endPath && markerCounter[o._.arrows.endPath]--;\n                        o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--;\n                    } else {\n                        o._.arrows.startPath && markerCounter[o._.arrows.startPath]--;\n                        o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--;\n                    }\n                } else {\n                    o._.arrows = {};\n                }\n                if (type != "none") {\n                    var pathId = "raphael-marker-" + type,\n                        markerId = "raphael-marker-" + se + type + w + h + "-obj" + o.id;\n                    if (!R._g.doc.getElementById(pathId)) {\n                        p.defs.appendChild($($("path"), {\n                            "stroke-linecap": "round",\n                            d: markers[type],\n                            id: pathId\n                        }));\n                        markerCounter[pathId] = 1;\n                    } else {\n                        markerCounter[pathId]++;\n                    }\n                    var marker = R._g.doc.getElementById(markerId),\n                        use;\n                    if (!marker) {\n                        marker = $($("marker"), {\n                            id: markerId,\n                            markerHeight: h,\n                            markerWidth: w,\n                            orient: "auto",\n                            refX: refX,\n                            refY: h / 2\n                        });\n                        use = $($("use"), {\n                            "xlink:href": "#" + pathId,\n                            transform: (isEnd ? "rotate(180 " + w / 2 + " " + h / 2 + ") " : E) + "scale(" + w / t + "," + h / t + ")",\n                            "stroke-width": (1 / ((w / t + h / t) / 2)).toFixed(4)\n                        });\n                        marker.appendChild(use);\n                        p.defs.appendChild(marker);\n                        markerCounter[markerId] = 1;\n                    } else {\n                        markerCounter[markerId]++;\n                        use = marker.getElementsByTagName("use")[0];\n                    }\n                    $(use, attr);\n                    var delta = dx * (type != "diamond" && type != "oval");\n                    if (isEnd) {\n                        from = o._.arrows.startdx * stroke || 0;\n                        to = R.getTotalLength(attrs.path) - delta * stroke;\n                    } else {\n                        from = delta * stroke;\n                        to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n                    }\n                    attr = {};\n                    attr["marker-" + se] = "url(#" + markerId + ")";\n                    if (to || from) {\n                        attr.d = R.getSubpath(attrs.path, from, to);\n                    }\n                    $(node, attr);\n                    o._.arrows[se + "Path"] = pathId;\n                    o._.arrows[se + "Marker"] = markerId;\n                    o._.arrows[se + "dx"] = delta;\n                    o._.arrows[se + "Type"] = type;\n                    o._.arrows[se + "String"] = value;\n                } else {\n                    if (isEnd) {\n                        from = o._.arrows.startdx * stroke || 0;\n                        to = R.getTotalLength(attrs.path) - from;\n                    } else {\n                        from = 0;\n                        to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);\n                    }\n                    o._.arrows[se + "Path"] && $(node, {d: R.getSubpath(attrs.path, from, to)});\n                    delete o._.arrows[se + "Path"];\n                    delete o._.arrows[se + "Marker"];\n                    delete o._.arrows[se + "dx"];\n                    delete o._.arrows[se + "Type"];\n                    delete o._.arrows[se + "String"];\n                }\n                for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) {\n                    var item = R._g.doc.getElementById(attr);\n                    item && item.parentNode.removeChild(item);\n                }\n            }\n        },\n        dasharray = {\n            "-": [3, 1],\n            ".": [1, 1],\n            "-.": [3, 1, 1, 1],\n            "-..": [3, 1, 1, 1, 1, 1],\n            ". ": [1, 3],\n            "- ": [4, 3],\n            "--": [8, 3],\n            "- .": [4, 3, 1, 3],\n            "--.": [8, 3, 1, 3],\n            "--..": [8, 3, 1, 3, 1, 3]\n        },\n        addDashes = function (o, value, params) {\n            value = dasharray[Str(value).toLowerCase()];\n            if (value) {\n                var width = o.attrs["stroke-width"] || "1",\n                    butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0,\n                    dashes = [],\n                    i = value.length;\n                while (i--) {\n                    dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt;\n                }\n                $(o.node, {"stroke-dasharray": dashes.join(",")});\n            }\n            else {\n                $(o.node, {"stroke-dasharray": "none"});\n            }\n        },\n        setFillAndStroke = function (o, params) {\n            var node = o.node,\n                attrs = o.attrs,\n                vis = node.style.visibility;\n            node.style.visibility = "hidden";\n            for (var att in params) {\n                if (params[has](att)) {\n                    if (!R._availableAttrs[has](att)) {\n                        continue;\n                    }\n                    var value = params[att];\n                    attrs[att] = value;\n                    switch (att) {\n                        case "blur":\n                            o.blur(value);\n                            break;\n                        case "title":\n                            var title = node.getElementsByTagName("title");\n\n                            // Use the existing <title>.\n                            if (title.length && (title = title[0])) {\n                                title.firstChild.nodeValue = value;\n                            } else {\n                                title = $("title");\n                                var val = R._g.doc.createTextNode(value);\n                                title.appendChild(val);\n                                node.appendChild(title);\n                            }\n                            break;\n                        case "href":\n                        case "target":\n                            var pn = node.parentNode;\n                            if (pn.tagName.toLowerCase() != "a") {\n                                var hl = $("a");\n                                pn.insertBefore(hl, node);\n                                hl.appendChild(node);\n                                pn = hl;\n                            }\n                            if (att == "target") {\n                                pn.setAttributeNS(xlink, "show", value == "blank" ? "new" : value);\n                            } else {\n                                pn.setAttributeNS(xlink, att, value);\n                            }\n                            break;\n                        case "cursor":\n                            node.style.cursor = value;\n                            break;\n                        case "transform":\n                            o.transform(value);\n                            break;\n                        case "arrow-start":\n                            addArrow(o, value);\n                            break;\n                        case "arrow-end":\n                            addArrow(o, value, 1);\n                            break;\n                        case "clip-rect":\n                            var rect = Str(value).split(separator);\n                            if (rect.length == 4) {\n                                o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);\n                                var el = $("clipPath"),\n                                    rc = $("rect");\n                                el.id = R.createUUID();\n                                $(rc, {\n                                    x: rect[0],\n                                    y: rect[1],\n                                    width: rect[2],\n                                    height: rect[3]\n                                });\n                                el.appendChild(rc);\n                                o.paper.defs.appendChild(el);\n                                $(node, {"clip-path": "url(#" + el.id + ")"});\n                                o.clip = rc;\n                            }\n                            if (!value) {\n                                var path = node.getAttribute("clip-path");\n                                if (path) {\n                                    var clip = R._g.doc.getElementById(path.replace(/(^url\\(#|\\)$)/g, E));\n                                    clip && clip.parentNode.removeChild(clip);\n                                    $(node, {"clip-path": E});\n                                    delete o.clip;\n                                }\n                            }\n                            break;\n                        case "path":\n                            if (o.type == "path") {\n                                $(node, {d: value ? attrs.path = R._pathToAbsolute(value) : "M0,0"});\n                                o._.dirty = 1;\n                                if (o._.arrows) {\n                                    "startString" in o._.arrows && addArrow(o, o._.arrows.startString);\n                                    "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                                }\n                            }\n                            break;\n                        case "width":\n                            node.setAttribute(att, value);\n                            o._.dirty = 1;\n                            if (attrs.fx) {\n                                att = "x";\n                                value = attrs.x;\n                            } else {\n                                break;\n                            }\n                        case "x":\n                            if (attrs.fx) {\n                                value = -attrs.x - (attrs.width || 0);\n                            }\n                        case "rx":\n                            if (att == "rx" && o.type == "rect") {\n                                break;\n                            }\n                        case "cx":\n                            node.setAttribute(att, value);\n                            o.pattern && updatePosition(o);\n                            o._.dirty = 1;\n                            break;\n                        case "height":\n                            node.setAttribute(att, value);\n                            o._.dirty = 1;\n                            if (attrs.fy) {\n                                att = "y";\n                                value = attrs.y;\n                            } else {\n                                break;\n                            }\n                        case "y":\n                            if (attrs.fy) {\n                                value = -attrs.y - (attrs.height || 0);\n                            }\n                        case "ry":\n                            if (att == "ry" && o.type == "rect") {\n                                break;\n                            }\n                        case "cy":\n                            node.setAttribute(att, value);\n                            o.pattern && updatePosition(o);\n                            o._.dirty = 1;\n                            break;\n                        case "r":\n                            if (o.type == "rect") {\n                                $(node, {rx: value, ry: value});\n                            } else {\n                                node.setAttribute(att, value);\n                            }\n                            o._.dirty = 1;\n                            break;\n                        case "src":\n                            if (o.type == "image") {\n                                node.setAttributeNS(xlink, "href", value);\n                            }\n                            break;\n                        case "stroke-width":\n                            /* FREEGROUP fix\n                             * draw2d version 3.0.3\n                             *\n                             * don\'t scale the line width if the user resize an shape/element.\n                             * Obscure stroke-width in case of "Draw2D touch" usage\n                             */\n                            if(!attrs["stroke-scale"]){\n                                if (o._.sx != 1 || o._.sy != 1) {\n                                    value /= mmax(abs(o._.sx), abs(o._.sy)) || 1;\n                                }\n                                if (o.paper._vbSize) {\n                                //    value *= o.paper._vbSize;\n                                }\n                            }\n\n\n                            node.setAttribute(att, value);\n                            if (attrs["stroke-dasharray"]) {\n                                addDashes(o, attrs["stroke-dasharray"], params);\n                            }\n                            if (o._.arrows) {\n                                "startString" in o._.arrows && addArrow(o, o._.arrows.startString);\n                                "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                            }\n                            break;\n                        case "stroke-dasharray":\n                            addDashes(o, value, params);\n                            break;\n                        case "fill":\n                            var isURL = Str(value).match(R._ISURL);\n                            if (isURL) {\n                                el = $("pattern");\n                                var ig = $("image");\n                                el.id = R.createUUID();\n                                $(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1});\n                                $(ig, {x: 0, y: 0, "xlink:href": isURL[1]});\n                                el.appendChild(ig);\n\n                                (function (el) {\n                                    R._preload(isURL[1], function () {\n                                        var w = this.offsetWidth,\n                                            h = this.offsetHeight;\n                                        $(el, {width: w, height: h});\n                                        $(ig, {width: w, height: h});\n                                    });\n                                })(el);\n                                o.paper.defs.appendChild(el);\n                                $(node, {fill: "url(#" + el.id + ")"});\n                                o.pattern = el;\n                                o.pattern && updatePosition(o);\n                                break;\n                            }\n                            var clr = R.getRGB(value);\n                            if (!clr.error) {\n                                delete params.gradient;\n                                delete attrs.gradient;\n                                !R.is(attrs.opacity, "undefined") &&\n                                R.is(params.opacity, "undefined") &&\n                                $(node, {opacity: attrs.opacity});\n                                !R.is(attrs["fill-opacity"], "undefined") &&\n                                R.is(params["fill-opacity"], "undefined") &&\n                                $(node, {"fill-opacity": attrs["fill-opacity"]});\n                            } else if ((o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value)) {\n                                if ("opacity" in attrs || "fill-opacity" in attrs) {\n                                    var gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\\(#|\\)$/g, E));\n                                    if (gradient) {\n                                        var stops = gradient.getElementsByTagName("stop");\n                                        $(stops[stops.length - 1], {"stop-opacity": ("opacity" in attrs ? attrs.opacity : 1) * ("fill-opacity" in attrs ? attrs["fill-opacity"] : 1)});\n                                    }\n                                }\n                                attrs.gradient = value;\n                                attrs.fill = "none";\n                                break;\n                            }\n                            clr[has]("opacity") && $(node, {"fill-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\n                        case "stroke":\n                            clr = R.getRGB(value);\n                            node.setAttribute(att, clr.hex);\n                            att == "stroke" && clr[has]("opacity") && $(node, {"stroke-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});\n                            if (att == "stroke" && o._.arrows) {\n                                "startString" in o._.arrows && addArrow(o, o._.arrows.startString);\n                                "endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1);\n                            }\n                            break;\n                        case "gradient":\n                            (o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value);\n                            break;\n                        case "opacity":\n                            if (attrs.gradient && !attrs[has]("stroke-opacity")) {\n                                $(node, {"stroke-opacity": value > 1 ? value / 100 : value});\n                            }\n                        // fall\n                        case "fill-opacity":\n                            if (attrs.gradient) {\n                                gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\\(#|\\)$/g, E));\n                                if (gradient) {\n                                    stops = gradient.getElementsByTagName("stop");\n                                    // FREEGROUP FIX\n                                    for (gri = 0, grii = stops.length; gri < grii; gri++) {\n                                        $(stops[gri], {"stop-opacity": value});\n                                    }\n                                    // END FIX\n                                }\n                                break;\n                            }\n                        default:\n                            att == "font-size" && (value = toInt(value, 10) + "px");\n                            var cssrule = att.replace(/(\\-.)/g, function (w) {\n                                return w.substring(1).toUpperCase();\n                            });\n                            node.style[cssrule] = value;\n                            o._.dirty = 1;\n                            node.setAttribute(att, value);\n                            break;\n                    }\n                }\n            }\n\n            tuneText(o, params);\n            node.style.visibility = vis;\n        },\n        leading = 1.2,\n        tuneText = function (el, params) {\n            if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) {\n                return;\n            }\n            var a = el.attrs,\n                node = el.node,\n                fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10;\n\n            if (params[has]("text")) {\n                a.text = params.text;\n                while (node.firstChild) {\n                    node.removeChild(node.firstChild);\n                }\n                var texts = Str(params.text).split("\\n"),\n                    tspans = [],\n                    tspan;\n                for (var i = 0, ii = texts.length; i < ii; i++) {\n                    tspan = $("tspan");\n                    i && $(tspan, {dy: fontSize * leading, x: a.x});\n                    tspan.appendChild(R._g.doc.createTextNode(texts[i]));\n                    node.appendChild(tspan);\n                    tspans[i] = tspan;\n                }\n            } else {\n                tspans = node.getElementsByTagName("tspan");\n                for (i = 0, ii = tspans.length; i < ii; i++) if (i) {\n                    $(tspans[i], {dy: fontSize * leading, x: a.x});\n                } else {\n                    $(tspans[0], {dy: 0});\n                }\n            }\n            $(node, {x: a.x, y: a.y});\n            el._.dirty = 1;\n            var bb = el._getBBox(),\n                dif = a.y - (bb.y + bb.height / 2);\n            dif && R.is(dif, "finite") && $(tspans[0], {dy: dif});\n        },\n        getRealNode = function (node) {\n            if (node.parentNode && node.parentNode.tagName.toLowerCase() === "a") {\n                return node.parentNode;\n            } else {\n                return node;\n            }\n        },\n        Element = function (node, svg) {\n            var X = 0,\n                Y = 0;\n            /*\\\n             * Element.node\n             [ property (object) ]\n             **\n             * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n             **\n             * Note: Don’t mess with it.\n             > Usage\n             | // draw a circle at coordinate 10,10 with radius of 10\n             | var c = paper.circle(10, 10, 10);\n             | c.node.onclick = function () {\n             |     c.attr("fill", "red");\n             | };\n             \\*/\n            this[0] = this.node = node;\n            /*\\\n             * Element.raphael\n             [ property (object) ]\n             **\n             * Internal reference to @Raphael object. In case it is not available.\n             > Usage\n             | Raphael.el.red = function () {\n             |     var hsb = this.paper.raphael.rgb2hsb(this.attr("fill"));\n             |     hsb.h = 1;\n             |     this.attr({fill: this.paper.raphael.hsb2rgb(hsb).hex});\n             | }\n             \\*/\n            node.raphael = true;\n            /*\\\n             * Element.id\n             [ property (number) ]\n             **\n             * Unique id of the element. Especially useful when you want to listen to events of the element,\n             * because all events are fired in format `<module>.<action>.<id>`. Also useful for @Paper.getById method.\n             \\*/\n            this.id = R._oid++;\n            node.raphaelid = this.id;\n            this.matrix = R.matrix();\n            this.realPath = null;\n            /*\\\n             * Element.paper\n             [ property (object) ]\n             **\n             * Internal reference to “paper” where object drawn. Mainly for use in plugins and element extensions.\n             > Usage\n             | Raphael.el.cross = function () {\n             |     this.attr({fill: "red"});\n             |     this.paper.path("M10,10L50,50M50,10L10,50")\n             |         .attr({stroke: "red"});\n             | }\n             \\*/\n            this.paper = svg;\n            this.attrs = this.attrs || {};\n            this._ = {\n                transform: [],\n                sx: 1,\n                sy: 1,\n                deg: 0,\n                dx: 0,\n                dy: 0,\n                dirty: 1\n            };\n            !svg.bottom && (svg.bottom = this);\n            /*\\\n             * Element.prev\n             [ property (object) ]\n             **\n             * Reference to the previous element in the hierarchy.\n             \\*/\n            this.prev = svg.top;\n            svg.top && (svg.top.next = this);\n            svg.top = this;\n            /*\\\n             * Element.next\n             [ property (object) ]\n             **\n             * Reference to the next element in the hierarchy.\n             \\*/\n            this.next = null;\n        },\n        elproto = R.el;\n\n    Element.prototype = elproto;\n    elproto.constructor = Element;\n\n    R._engine.path = function (pathString, SVG) {\n        var el = $("path");\n        SVG.canvas && SVG.canvas.appendChild(el);\n        var p = new Element(el, SVG);\n        p.type = "path";\n        setFillAndStroke(p, {\n            fill: "none",\n            stroke: "#000",\n            path: pathString\n        });\n        return p;\n    };\n    /*\\\n     * Element.rotate\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds rotation by given angle around given point to the list of\n     * transformations of the element.\n     > Parameters\n     - deg (number) angle in degrees\n     - cx (number) #optional x coordinate of the centre of rotation\n     - cy (number) #optional y coordinate of the centre of rotation\n     * If cx & cy aren’t specified centre of the shape is used as a point of rotation.\n     = (object) @Element\n     \\*/\n    elproto.rotate = function (deg, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        deg = Str(deg).split(separator);\n        if (deg.length - 1) {\n            cx = toFloat(deg[1]);\n            cy = toFloat(deg[2]);\n        }\n        deg = toFloat(deg[0]);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n            cx = bbox.x + bbox.width / 2;\n            cy = bbox.y + bbox.height / 2;\n        }\n        this.transform(this._.transform.concat([["r", deg, cx, cy]]));\n        return this;\n    };\n    /*\\\n     * Element.scale\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds scale by given amount relative to given point to the list of\n     * transformations of the element.\n     > Parameters\n     - sx (number) horisontal scale amount\n     - sy (number) vertical scale amount\n     - cx (number) #optional x coordinate of the centre of scale\n     - cy (number) #optional y coordinate of the centre of scale\n     * If cx & cy aren’t specified centre of the shape is used instead.\n     = (object) @Element\n     \\*/\n    elproto.scale = function (sx, sy, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        sx = Str(sx).split(separator);\n        if (sx.length - 1) {\n            sy = toFloat(sx[1]);\n            cx = toFloat(sx[2]);\n            cy = toFloat(sx[3]);\n        }\n        sx = toFloat(sx[0]);\n        (sy == null) && (sy = sx);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n        }\n        cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n        cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n        this.transform(this._.transform.concat([["s", sx, sy, cx, cy]]));\n        return this;\n    };\n    /*\\\n     * Element.translate\n     [ method ]\n     **\n     * Deprecated! Use @Element.transform instead.\n     * Adds translation by given amount to the list of transformations of the element.\n     > Parameters\n     - dx (number) horisontal shift\n     - dy (number) vertical shift\n     = (object) @Element\n     \\*/\n    elproto.translate = function (dx, dy) {\n        if (this.removed) {\n            return this;\n        }\n        dx = Str(dx).split(separator);\n        if (dx.length - 1) {\n            dy = toFloat(dx[1]);\n        }\n        dx = toFloat(dx[0]) || 0;\n        dy = +dy || 0;\n        this.transform(this._.transform.concat([["t", dx, dy]]));\n        return this;\n    };\n    /*\\\n     * Element.transform\n     [ method ]\n     **\n     * Adds transformation to the element which is separate to other attributes,\n     * i.e. translation doesn’t change `x` or `y` of the rectange. The format\n     * of transformation string is similar to the path string syntax:\n     | "t100,100r30,100,100s2,2,100,100r45s1.5"\n     * Each letter is a command. There are four commands: `t` is for translate, `r` is for rotate, `s` is for\n     * scale and `m` is for matrix.\n     *\n     * There are also alternative “absolute” translation, rotation and scale: `T`, `R` and `S`. They will not take previous transformation into account. For example, `...T100,0` will always move element 100 px horisontally, while `...t100,0` could move it vertically if there is `r90` before. Just compare results of `r90t100,0` and `r90T100,0`.\n     *\n     * So, the example line above could be read like “translate by 100, 100; rotate 30° around 100, 100; scale twice around 100, 100;\n     * rotate 45° around centre; scale 1.5 times relative to centre”. As you can see rotate and scale commands have origin\n     * coordinates as optional parameters, the default is the centre point of the element.\n     * Matrix accepts six parameters.\n     > Usage\n     | var el = paper.rect(10, 20, 300, 200);\n     | // translate 100, 100, rotate 45°, translate -100, 0\n     | el.transform("t100,100r45t-100,0");\n     | // if you want you can append or prepend transformations\n     | el.transform("...t50,50");\n     | el.transform("s2...");\n     | // or even wrap\n     | el.transform("t50,50...t-50-50");\n     | // to reset transformation call method with empty string\n     | el.transform("");\n     | // to get current value call it without parameters\n     | console.log(el.transform());\n     > Parameters\n     - tstr (string) #optional transformation string\n     * If tstr isn’t specified\n     = (string) current transformation string\n     * else\n     = (object) @Element\n     \\*/\n    elproto.transform = function (tstr) {\n        var _ = this._;\n        if (tstr == null) {\n            return _.transform;\n        }\n        R._extractTransform(this, tstr);\n\n        this.clip && $(this.clip, {transform: this.matrix.invert()});\n        this.pattern && updatePosition(this);\n        this.node && $(this.node, {transform: this.matrix});\n\n        if (_.sx != 1 || _.sy != 1) {\n            var sw = this.attrs[has]("stroke-width") ? this.attrs["stroke-width"] : 1;\n            this.attr({"stroke-width": sw});\n        }\n\n        //Reduce transform string\n        _.transform = this.matrix.toTransformString();\n\n        return this;\n    };\n    /*\\\n     * Element.hide\n     [ method ]\n     **\n     * Makes element invisible. See @Element.show.\n     = (object) @Element\n     \\*/\n    elproto.hide = function () {\n        if(!this.removed) this.node.style.display = "none";\n        return this;\n    };\n    /*\\\n     * Element.show\n     [ method ]\n     **\n     * Makes element visible. See @Element.hide.\n     = (object) @Element\n     \\*/\n    elproto.show = function () {\n        if(!this.removed) this.node.style.display = "";\n        return this;\n    };\n    /*\\\n     * Element.remove\n     [ method ]\n     **\n     * Removes element from the paper.\n     \\*/\n    elproto.remove = function () {\n        var node = getRealNode(this.node);\n        if (this.removed || !node.parentNode) {\n            return;\n        }\n        var paper = this.paper;\n        paper.__set__ && paper.__set__.exclude(this);\n        eve.unbind("raphael.*.*." + this.id);\n        if (this.gradient) {\n            paper.defs.removeChild(this.gradient);\n        }\n        R._tear(this, paper);\n\n        node.parentNode.removeChild(node);\n\n        // Remove custom data for element\n        this.removeData();\n\n        for (var i in this) {\n            this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;\n        }\n        this.removed = true;\n    };\n    elproto._getBBox = function () {\n        if (this.node.style.display == "none") {\n            this.show();\n            var hide = true;\n        }\n        var canvasHidden = false,\n            containerStyle;\n        if (this.paper.canvas.parentElement) {\n            containerStyle = this.paper.canvas.parentElement.style;\n        } //IE10+ can\'t find parentElement\n        else if (this.paper.canvas.parentNode) {\n            containerStyle = this.paper.canvas.parentNode.style;\n        }\n\n        if(containerStyle && containerStyle.display == "none") {\n            canvasHidden = true;\n            containerStyle.display = "";\n        }\n        var bbox = {};\n        try {\n            bbox = this.node.getBBox();\n        } catch(e) {\n            // Firefox 3.0.x, 25.0.1 (probably more versions affected) play badly here - possible fix\n            bbox = {\n                x: this.node.clientLeft,\n                y: this.node.clientTop,\n                width: this.node.clientWidth,\n                height: this.node.clientHeight\n            }\n        } finally {\n            bbox = bbox || {};\n            if(canvasHidden){\n                containerStyle.display = "none";\n            }\n        }\n        hide && this.hide();\n        return bbox;\n    };\n    /*\\\n     * Element.attr\n     [ method ]\n     **\n     * Sets the attributes of the element.\n     > Parameters\n     - attrName (string) attribute’s name\n     - value (string) value\n     * or\n     - params (object) object of name/value pairs\n     * or\n     - attrName (string) attribute’s name\n     * or\n     - attrNames (array) in this case method returns array of current values for given attribute names\n     = (object) @Element if attrsName & value or params are passed in.\n     = (...) value of the attribute if only attrsName is passed in.\n     = (array) array of values of the attribute if attrsNames is passed in.\n     = (object) object of attributes if nothing is passed in.\n     > Possible parameters\n     # <p>Please refer to the <a href="http://www.w3.org/TR/SVG/" title="The W3C Recommendation for the SVG language describes these properties in detail.">SVG specification</a> for an explanation of these parameters.</p>\n     o arrow-end (string) arrowhead on the end of the path. The format for string is `<type>[-<width>[-<length>]]`. Possible types: `classic`, `block`, `open`, `oval`, `diamond`, `none`, width: `wide`, `narrow`, `medium`, length: `long`, `short`, `midium`.\n     o clip-rect (string) comma or space separated values: x, y, width and height\n     o cursor (string) CSS type of the cursor\n     o cx (number) the x-axis coordinate of the center of the circle, or ellipse\n     o cy (number) the y-axis coordinate of the center of the circle, or ellipse\n     o fill (string) colour, gradient or image\n     o fill-opacity (number)\n     o font (string)\n     o font-family (string)\n     o font-size (number) font size in pixels\n     o font-weight (string)\n     o height (number)\n     o href (string) URL, if specified element behaves as hyperlink\n     o opacity (number)\n     o path (string) SVG path string format\n     o r (number) radius of the circle, ellipse or rounded corner on the rect\n     o rx (number) horisontal radius of the ellipse\n     o ry (number) vertical radius of the ellipse\n     o src (string) image URL, only works for @Element.image element\n     o stroke (string) stroke colour\n     o stroke-dasharray (string) [“”, “none”, “`-`”, “`.`”, “`-.`”, “`-..`”, “`. `”, “`- `”, “`--`”, “`- .`”, “`--.`”, “`--..`”]\n     o stroke-linecap (string) [“`butt`”, “`square`”, “`round`”]\n     o stroke-linejoin (string) [“`bevel`”, “`round`”, “`miter`”]\n     o stroke-miterlimit (number)\n     o stroke-opacity (number)\n     o stroke-width (number) stroke width in pixels, default is \'1\'\n     o target (string) used with href\n     o text (string) contents of the text element. Use `\\n` for multiline text\n     o text-anchor (string) [“`start`”, “`middle`”, “`end`”], default is “`middle`”\n     o title (string) will create tooltip with a given text\n     o transform (string) see @Element.transform\n     o width (number)\n     o x (number)\n     o y (number)\n     > Gradients\n     * Linear gradient format: “`‹angle›-‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`90-#fff-#000`” – 90°\n     * gradient from white to black or “`0-#fff-#f00:20-#000`” – 0° gradient from white via red (at 20%) to black.\n     *\n     * radial gradient: “`r[(‹fx›, ‹fy›)]‹colour›[-‹colour›[:‹offset›]]*-‹colour›`”, example: “`r#fff-#000`” –\n     * gradient from white to black or “`r(0.25, 0.75)#fff-#000`” – gradient from white to black with focus point\n     * at 0.25, 0.75. Focus point coordinates are in 0..1 range. Radial gradients can only be applied to circles and ellipses.\n     > Path String\n     # <p>Please refer to <a href="http://www.w3.org/TR/SVG/paths.html#PathData" title="Details of a path’s data attribute’s format are described in the SVG specification.">SVG documentation regarding path string</a>. Raphaël fully supports it.</p>\n     > Colour Parsing\n     # <ul>\n     #     <li>Colour name (“<code>red</code>”, “<code>green</code>”, “<code>cornflowerblue</code>”, etc)</li>\n     #     <li>#••• — shortened HTML colour: (“<code>#000</code>”, “<code>#fc0</code>”, etc)</li>\n     #     <li>#•••••• — full length HTML colour: (“<code>#000000</code>”, “<code>#bd2300</code>”)</li>\n     #     <li>rgb(•••, •••, •••) — red, green and blue channels’ values: (“<code>rgb(200,&nbsp;100,&nbsp;0)</code>”)</li>\n     #     <li>rgb(•••%, •••%, •••%) — same as above, but in %: (“<code>rgb(100%,&nbsp;175%,&nbsp;0%)</code>”)</li>\n     #     <li>rgba(•••, •••, •••, •••) — red, green and blue channels’ values: (“<code>rgba(200,&nbsp;100,&nbsp;0, .5)</code>”)</li>\n     #     <li>rgba(•••%, •••%, •••%, •••%) — same as above, but in %: (“<code>rgba(100%,&nbsp;175%,&nbsp;0%, 50%)</code>”)</li>\n     #     <li>hsb(•••, •••, •••) — hue, saturation and brightness values: (“<code>hsb(0.5,&nbsp;0.25,&nbsp;1)</code>”)</li>\n     #     <li>hsb(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsba(•••, •••, •••, •••) — same as above, but with opacity</li>\n     #     <li>hsl(•••, •••, •••) — almost the same as hsb, see <a href="http://en.wikipedia.org/wiki/HSL_and_HSV" title="HSL and HSV - Wikipedia, the free encyclopedia">Wikipedia page</a></li>\n     #     <li>hsl(•••%, •••%, •••%) — same as above, but in %</li>\n     #     <li>hsla(•••, •••, •••, •••) — same as above, but with opacity</li>\n     #     <li>Optionally for hsb and hsl you could specify hue as a degree: “<code>hsl(240deg,&nbsp;1,&nbsp;.5)</code>” or, if you want to go fancy, “<code>hsl(240°,&nbsp;1,&nbsp;.5)</code>”</li>\n     # </ul>\n     \\*/\n    elproto.attr = function (name, value) {\n        if (this.removed) {\n            return this;\n        }\n        if (name == null) {\n            var res = {};\n            for (var a in this.attrs) if (this.attrs[has](a)) {\n                res[a] = this.attrs[a];\n            }\n            res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient;\n            res.transform = this._.transform;\n            return res;\n        }\n        if (value == null && R.is(name, "string")) {\n            if (name == "fill" && this.attrs.fill == "none" && this.attrs.gradient) {\n                return this.attrs.gradient;\n            }\n            if (name == "transform") {\n                return this._.transform;\n            }\n            var names = name.split(separator),\n                out = {};\n            for (var i = 0, ii = names.length; i < ii; i++) {\n                name = names[i];\n                if (name in this.attrs) {\n                    out[name] = this.attrs[name];\n                } else if (R.is(this.paper.customAttributes[name], "function")) {\n                    out[name] = this.paper.customAttributes[name].def;\n                } else {\n                    out[name] = R._availableAttrs[name];\n                }\n            }\n            return ii - 1 ? out : out[names[0]];\n        }\n        if (value == null && R.is(name, "array")) {\n            out = {};\n            for (i = 0, ii = name.length; i < ii; i++) {\n                out[name[i]] = this.attr(name[i]);\n            }\n            return out;\n        }\n        if (value != null) {\n            var params = {};\n            params[name] = value;\n        } else if (name != null && R.is(name, "object")) {\n            params = name;\n        }\n        for (var key in params) {\n            eve("raphael.attr." + key + "." + this.id, this, params[key]);\n        }\n        for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) {\n            var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\n            this.attrs[key] = params[key];\n            for (var subkey in par) if (par[has](subkey)) {\n                params[subkey] = par[subkey];\n            }\n        }\n        setFillAndStroke(this, params);\n        return this;\n    };\n    /*\\\n     * Element.toFront\n     [ method ]\n     **\n     * Moves the element so it is the closest to the viewer’s eyes, on top of other elements.\n     = (object) @Element\n     \\*/\n    elproto.toFront = function () {\n        if (this.removed) {\n            return this;\n        }\n        var node = getRealNode(this.node);\n        node.parentNode.appendChild(node);\n        var svg = this.paper;\n        svg.top != this && R._tofront(this, svg);\n        return this;\n    };\n    /*\\\n     * Element.toBack\n     [ method ]\n     **\n     * Moves the element so it is the furthest from the viewer’s eyes, behind other elements.\n     = (object) @Element\n     \\*/\n    elproto.toBack = function () {\n        if (this.removed) {\n            return this;\n        }\n        var node = getRealNode(this.node);\n        var parentNode = node.parentNode;\n        parentNode.insertBefore(node, parentNode.firstChild);\n        R._toback(this, this.paper);\n        var svg = this.paper;\n        return this;\n    };\n    /*\\\n     * Element.insertAfter\n     [ method ]\n     **\n     * Inserts current object after the given one.\n     = (object) @Element\n     \\*/\n    elproto.insertAfter = function (element) {\n        if (this.removed || !element) {\n            return this;\n        }\n\n        var node = getRealNode(this.node);\n        var afterNode = getRealNode(element.node || element[element.length - 1].node);\n        if (afterNode.nextSibling) {\n            afterNode.parentNode.insertBefore(node, afterNode.nextSibling);\n        } else {\n            afterNode.parentNode.appendChild(node);\n        }\n        R._insertafter(this, element, this.paper);\n        return this;\n    };\n    /*\\\n     * Element.insertBefore\n     [ method ]\n     **\n     * Inserts current object before the given one.\n     = (object) @Element\n     \\*/\n    elproto.insertBefore = function (element) {\n        if (this.removed || !element) {\n            return this;\n        }\n\n        var node = getRealNode(this.node);\n        var beforeNode = getRealNode(element.node || element[0].node);\n        beforeNode.parentNode.insertBefore(node, beforeNode);\n        R._insertbefore(this, element, this.paper);\n        return this;\n    };\n    elproto.blur = function (size) {\n        // Experimental. No Safari support. Use it on your own risk.\n        var t = this;\n        if (+size !== 0) {\n            var fltr = $("filter"),\n                blur = $("feGaussianBlur");\n            t.attrs.blur = size;\n            fltr.id = R.createUUID();\n            $(blur, {stdDeviation: +size || 1.5});\n            fltr.appendChild(blur);\n            t.paper.defs.appendChild(fltr);\n            t._blur = fltr;\n            $(t.node, {filter: "url(#" + fltr.id + ")"});\n        } else {\n            if (t._blur) {\n                t._blur.parentNode.removeChild(t._blur);\n                delete t._blur;\n                delete t.attrs.blur;\n            }\n            t.node.removeAttribute("filter");\n        }\n        return t;\n    };\n    R._engine.circle = function (svg, x, y, r) {\n        var el = $("circle");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"};\n        res.type = "circle";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.rect = function (svg, x, y, w, h, r) {\n        var el = $("rect");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {x: x, y: y, width: w, height: h, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"};\n        res.type = "rect";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.ellipse = function (svg, x, y, rx, ry) {\n        var el = $("ellipse");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"};\n        res.type = "ellipse";\n        $(el, res.attrs);\n        return res;\n    };\n    R._engine.image = function (svg, src, x, y, w, h) {\n        var el = $("image");\n        $(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"});\n        el.setAttributeNS(xlink, "href", src);\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {x: x, y: y, width: w, height: h, src: src};\n        res.type = "image";\n        return res;\n    };\n    R._engine.text = function (svg, x, y, text) {\n        var el = $("text");\n        svg.canvas && svg.canvas.appendChild(el);\n        var res = new Element(el, svg);\n        res.attrs = {\n            x: x,\n            y: y,\n            "text-anchor": "middle",\n            text: text,\n            "font-family": R._availableAttrs["font-family"],\n            "font-size": R._availableAttrs["font-size"],\n            stroke: "none",\n            fill: "#000"\n        };\n        res.type = "text";\n        setFillAndStroke(res, res.attrs);\n        return res;\n    };\n    R._engine.setSize = function (width, height) {\n        this.width = width || this.width;\n        this.height = height || this.height;\n        this.canvas.setAttribute("width", this.width);\n        this.canvas.setAttribute("height", this.height);\n        if (this._viewBox) {\n            this.setViewBox.apply(this, this._viewBox);\n        }\n        return this;\n    };\n    R._engine.create = function () {\n        var con = R._getContainer.apply(0, arguments),\n            container = con && con.container,\n            x = con.x,\n            y = con.y,\n            width = con.width,\n            height = con.height;\n        if (!container) {\n            throw new Error("SVG container not found.");\n        }\n        var cnvs = $("svg"),\n            css = "overflow:hidden;",\n            isFloating;\n        x = x || 0;\n        y = y || 0;\n        width = width || 512;\n        height = height || 342;\n        $(cnvs, {\n            height: height,\n            version: 1.1,\n            width: width,\n            xmlns: "http://www.w3.org/2000/svg",\n            "xmlns:xlink": "http://www.w3.org/1999/xlink"\n        });\n        if (container == 1) {\n            cnvs.style.cssText = css + "position:absolute;left:" + x + "px;top:" + y + "px";\n            R._g.doc.body.appendChild(cnvs);\n            isFloating = 1;\n        } else {\n            cnvs.style.cssText = css + "position:relative";\n            if (container.firstChild) {\n                container.insertBefore(cnvs, container.firstChild);\n            } else {\n                container.appendChild(cnvs);\n            }\n        }\n        container = new R._Paper;\n        container.width = width;\n        container.height = height;\n        container.canvas = cnvs;\n        container.clear();\n        container._left = container._top = 0;\n        isFloating && (container.renderfix = function () {});\n        container.renderfix();\n        return container;\n    };\n    R._engine.setViewBox = function (x, y, w, h, fit) {\n        eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]);\n        var paperSize = this.getSize(),\n            size = mmax(w / paperSize.width, h / paperSize.height),\n            top = this.top,\n            aspectRatio = fit ? "xMidYMid meet" : "xMinYMin",\n            vb,\n            sw;\n        if (x == null) {\n            if (this._vbSize) {\n                size = 1;\n            }\n            delete this._vbSize;\n            vb = "0 0 " + this.width + S + this.height;\n        } else {\n            this._vbSize = size;\n            vb = x + S + y + S + w + S + h;\n        }\n        $(this.canvas, {\n            viewBox: vb,\n            preserveAspectRatio: aspectRatio\n        });\n        while (size && top) {\n            sw = "stroke-width" in top.attrs ? top.attrs["stroke-width"] : 1;\n            top.attr({"stroke-width": sw});\n            top._.dirty = 1;\n            top._.dirtyT = 1;\n            top = top.prev;\n        }\n        this._viewBox = [x, y, w, h, !!fit];\n        return this;\n    };\n    /*\\\n     * Paper.renderfix\n     [ method ]\n     **\n     * Fixes the issue of Firefox and IE9 regarding subpixel rendering. If paper is dependant\n     * on other elements after reflow it could shift half pixel which cause for lines to lost their crispness.\n     * This method fixes the issue.\n     **\n     Special thanks to Mariusz Nowak (http://www.medikoo.com/) for this method.\n     \\*/\n    R.prototype.renderfix = function () {\n        var cnvs = this.canvas,\n            s = cnvs.style,\n            pos;\n        try {\n            pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix();\n        } catch (e) {\n            pos = cnvs.createSVGMatrix();\n        }\n        var left = -pos.e % 1,\n            top = -pos.f % 1;\n        if (left || top) {\n            if (left) {\n                this._left = (this._left + left) % 1;\n                s.left = this._left + "px";\n            }\n            if (top) {\n                this._top = (this._top + top) % 1;\n                s.top = this._top + "px";\n            }\n        }\n    };\n    /*\\\n     * Paper.clear\n     [ method ]\n     **\n     * Clears the paper, i.e. removes all the elements.\n     \\*/\n    R.prototype.clear = function () {\n        R.eve("raphael.clear", this);\n        var c = this.canvas;\n        while (c.firstChild) {\n            c.removeChild(c.firstChild);\n        }\n        this.bottom = this.top = null;\n        (this.desc = $("desc")).appendChild(R._g.doc.createTextNode("Created with Rapha\\xebl " + R.version));\n        c.appendChild(this.desc);\n        c.appendChild(this.defs = $("defs"));\n    };\n    /*\\\n     * Paper.remove\n     [ method ]\n     **\n     * Removes the paper from the DOM.\n     \\*/\n    R.prototype.remove = function () {\n        eve("raphael.remove", this);\n        this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);\n        for (var i in this) {\n            this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;\n        }\n    };\n    var setproto = R.st;\n    for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname].apply(el, arg);\n                });\n            };\n        })(method);\n    }\n}));\n\n// ┌─────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël 2.1.4 - JavaScript Vector Library                       │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ VML Module                                                          │ \\\\\n// ├─────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com)   │ \\\\\n// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com)             │ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\\\\n// └─────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n    if (typeof define === "function" && define.amd) {\n        define("raphael.vml", ["raphael.core"], function(raphael) {\n            return factory(raphael);\n        });\n    } else if (typeof exports === "object") {\n        factory(require("./raphael.core"));\n    } else {\n        factory(glob.Raphael);\n    }\n}(this, function(R) {\n    if (R && !R.vml) {\n        return;\n    }\n\n    var has = "hasOwnProperty",\n        Str = String,\n        toFloat = parseFloat,\n        math = Math,\n        round = math.round,\n        mmax = math.max,\n        mmin = math.min,\n        abs = math.abs,\n        fillString = "fill",\n        separator = /[, ]+/,\n        eve = R.eve,\n        ms = " progid:DXImageTransform.Microsoft",\n        S = " ",\n        E = "",\n        map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"},\n        bites = /([clmz]),?([^clmz]*)/gi,\n        blurregexp = / progid:\\S+Blur\\([^\\)]+\\)/g,\n        val = /-?[^,\\s-]+/g,\n        cssDot = "position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",\n        zoom = 21600,\n        pathTypes = {path: 1, rect: 1, image: 1},\n        ovalTypes = {circle: 1, ellipse: 1},\n        path2vml = function (path) {\n            var total =  /[ahqstv]/ig,\n                command = R._pathToAbsolute;\n            Str(path).match(total) && (command = R._path2curve);\n            total = /[clmz]/g;\n            if (command == R._pathToAbsolute && !Str(path).match(total)) {\n                var res = Str(path).replace(bites, function (all, command, args) {\n                    var vals = [],\n                        isMove = command.toLowerCase() == "m",\n                        res = map[command];\n                    args.replace(val, function (value) {\n                        if (isMove && vals.length == 2) {\n                            res += vals + map[command == "m" ? "l" : "L"];\n                            vals = [];\n                        }\n                        vals.push(round(value * zoom));\n                    });\n                    return res + vals;\n                });\n                return res;\n            }\n            var pa = command(path), p, r;\n            res = [];\n            for (var i = 0, ii = pa.length; i < ii; i++) {\n                p = pa[i];\n                r = pa[i][0].toLowerCase();\n                r == "z" && (r = "x");\n                for (var j = 1, jj = p.length; j < jj; j++) {\n                    r += round(p[j] * zoom) + (j != jj - 1 ? "," : E);\n                }\n                res.push(r);\n            }\n            return res.join(S);\n        },\n        compensation = function (deg, dx, dy) {\n            var m = R.matrix();\n            m.rotate(-deg, .5, .5);\n            return {\n                dx: m.x(dx, dy),\n                dy: m.y(dx, dy)\n            };\n        },\n        setCoords = function (p, sx, sy, dx, dy, deg) {\n            var _ = p._,\n                m = p.matrix,\n                fillpos = _.fillpos,\n                o = p.node,\n                s = o.style,\n                y = 1,\n                flip = "",\n                dxdy,\n                kx = zoom / sx,\n                ky = zoom / sy;\n            s.visibility = "hidden";\n            if (!sx || !sy) {\n                return;\n            }\n            o.coordsize = abs(kx) + S + abs(ky);\n            s.rotation = deg * (sx * sy < 0 ? -1 : 1);\n            if (deg) {\n                var c = compensation(deg, dx, dy);\n                dx = c.dx;\n                dy = c.dy;\n            }\n            sx < 0 && (flip += "x");\n            sy < 0 && (flip += " y") && (y = -1);\n            s.flip = flip;\n            o.coordorigin = (dx * -kx) + S + (dy * -ky);\n            if (fillpos || _.fillsize) {\n                var fill = o.getElementsByTagName(fillString);\n                fill = fill && fill[0];\n                o.removeChild(fill);\n                if (fillpos) {\n                    c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1]));\n                    fill.position = c.dx * y + S + c.dy * y;\n                }\n                if (_.fillsize) {\n                    fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy);\n                }\n                o.appendChild(fill);\n            }\n            s.visibility = "visible";\n        };\n    R.toString = function () {\n        return  "Your browser doesn\\u2019t support SVG. Falling down to VML.\\nYou are running Rapha\\xebl " + this.version;\n    };\n    var addArrow = function (o, value, isEnd) {\n            var values = Str(value).toLowerCase().split("-"),\n                se = isEnd ? "end" : "start",\n                i = values.length,\n                type = "classic",\n                w = "medium",\n                h = "medium";\n            while (i--) {\n                switch (values[i]) {\n                    case "block":\n                    case "classic":\n                    case "oval":\n                    case "diamond":\n                    case "open":\n                    case "none":\n                        type = values[i];\n                        break;\n                    case "wide":\n                    case "narrow": h = values[i]; break;\n                    case "long":\n                    case "short": w = values[i]; break;\n                }\n            }\n            var stroke = o.node.getElementsByTagName("stroke")[0];\n            stroke[se + "arrow"] = type;\n            stroke[se + "arrowlength"] = w;\n            stroke[se + "arrowwidth"] = h;\n        },\n        setFillAndStroke = function (o, params) {\n            // o.paper.canvas.style.display = "none";\n            o.attrs = o.attrs || {};\n            var node = o.node,\n                a = o.attrs,\n                s = node.style,\n                xy,\n                newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r),\n                isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry),\n                res = o;\n\n\n            for (var par in params) if (params[has](par)) {\n                a[par] = params[par];\n            }\n            if (newpath) {\n                a.path = R._getPath[o.type](o);\n                o._.dirty = 1;\n            }\n            params.href && (node.href = params.href);\n            params.title && (node.title = params.title);\n            params.target && (node.target = params.target);\n            params.cursor && (s.cursor = params.cursor);\n            "blur" in params && o.blur(params.blur);\n            if (params.path && o.type == "path" || newpath) {\n                node.path = path2vml(~Str(a.path).toLowerCase().indexOf("r") ? R._pathToAbsolute(a.path) : a.path);\n                o._.dirty = 1;\n                if (o.type == "image") {\n                    o._.fillpos = [a.x, a.y];\n                    o._.fillsize = [a.width, a.height];\n                    setCoords(o, 1, 1, 0, 0, 0);\n                }\n            }\n            "transform" in params && o.transform(params.transform);\n            if (isOval) {\n                var cx = +a.cx,\n                    cy = +a.cy,\n                    rx = +a.rx || +a.r || 0,\n                    ry = +a.ry || +a.r || 0;\n                node.path = R.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom));\n                o._.dirty = 1;\n            }\n            if ("clip-rect" in params) {\n                var rect = Str(params["clip-rect"]).split(separator);\n                if (rect.length == 4) {\n                    rect[2] = +rect[2] + (+rect[0]);\n                    rect[3] = +rect[3] + (+rect[1]);\n                    var div = node.clipRect || R._g.doc.createElement("div"),\n                        dstyle = div.style;\n                    dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect);\n                    if (!node.clipRect) {\n                        dstyle.position = "absolute";\n                        dstyle.top = 0;\n                        dstyle.left = 0;\n                        dstyle.width = o.paper.width + "px";\n                        dstyle.height = o.paper.height + "px";\n                        node.parentNode.insertBefore(div, node);\n                        div.appendChild(node);\n                        node.clipRect = div;\n                    }\n                }\n                if (!params["clip-rect"]) {\n                    node.clipRect && (node.clipRect.style.clip = "auto");\n                }\n            }\n            if (o.textpath) {\n                var textpathStyle = o.textpath.style;\n                params.font && (textpathStyle.font = params.font);\n                params["font-family"] && (textpathStyle.fontFamily = \'"\' + params["font-family"].split(",")[0].replace(/^[\'"]+|[\'"]+$/g, E) + \'"\');\n                params["font-size"] && (textpathStyle.fontSize = params["font-size"]);\n                params["font-weight"] && (textpathStyle.fontWeight = params["font-weight"]);\n                params["font-style"] && (textpathStyle.fontStyle = params["font-style"]);\n            }\n            if ("arrow-start" in params) {\n                addArrow(res, params["arrow-start"]);\n            }\n            if ("arrow-end" in params) {\n                addArrow(res, params["arrow-end"], 1);\n            }\n            if (params.opacity != null ||\n                params["stroke-width"] != null ||\n                params.fill != null ||\n                params.src != null ||\n                params.stroke != null ||\n                params["stroke-width"] != null ||\n                params["stroke-opacity"] != null ||\n                params["fill-opacity"] != null ||\n                params["stroke-dasharray"] != null ||\n                params["stroke-miterlimit"] != null ||\n                params["stroke-linejoin"] != null ||\n                params["stroke-linecap"] != null) {\n                var fill = node.getElementsByTagName(fillString),\n                    newfill = false;\n                fill = fill && fill[0];\n                !fill && (newfill = fill = createNode(fillString));\n                if (o.type == "image" && params.src) {\n                    fill.src = params.src;\n                }\n                params.fill && (fill.on = true);\n                if (fill.on == null || params.fill == "none" || params.fill === null) {\n                    fill.on = false;\n                }\n                if (fill.on && params.fill) {\n                    var isURL = Str(params.fill).match(R._ISURL);\n                    if (isURL) {\n                        fill.parentNode == node && node.removeChild(fill);\n                        fill.rotate = true;\n                        fill.src = isURL[1];\n                        fill.type = "tile";\n                        var bbox = o.getBBox(1);\n                        fill.position = bbox.x + S + bbox.y;\n                        o._.fillpos = [bbox.x, bbox.y];\n\n                        R._preload(isURL[1], function () {\n                            o._.fillsize = [this.offsetWidth, this.offsetHeight];\n                        });\n                    } else {\n                        fill.color = R.getRGB(params.fill).hex;\n                        fill.src = E;\n                        fill.type = "solid";\n                        if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != "r") && addGradientFill(res, params.fill, fill)) {\n                            a.fill = "none";\n                            a.gradient = params.fill;\n                            fill.rotate = false;\n                        }\n                    }\n                }\n                if ("fill-opacity" in params || "opacity" in params) {\n                    var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1);\n                    opacity = mmin(mmax(opacity, 0), 1);\n                    fill.opacity = opacity;\n                    if (fill.src) {\n                        fill.color = "none";\n                    }\n                }\n                node.appendChild(fill);\n                var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]),\n                    newstroke = false;\n                !stroke && (newstroke = stroke = createNode("stroke"));\n                if ((params.stroke && params.stroke != "none") ||\n                    params["stroke-width"] ||\n                    params["stroke-opacity"] != null ||\n                    params["stroke-dasharray"] ||\n                    params["stroke-miterlimit"] ||\n                    params["stroke-linejoin"] ||\n                    params["stroke-linecap"]) {\n                    stroke.on = true;\n                }\n                (params.stroke == "none" || params.stroke === null || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false);\n                var strokeColor = R.getRGB(params.stroke);\n                stroke.on && params.stroke && (stroke.color = strokeColor.hex);\n                opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1);\n                var width = (toFloat(params["stroke-width"]) || 1) * .75;\n                opacity = mmin(mmax(opacity, 0), 1);\n                params["stroke-width"] == null && (width = a["stroke-width"]);\n                params["stroke-width"] && (stroke.weight = width);\n                width && width < 1 && (opacity *= width) && (stroke.weight = 1);\n                stroke.opacity = opacity;\n\n                params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter");\n                stroke.miterlimit = params["stroke-miterlimit"] || 8;\n                params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round");\n                if ("stroke-dasharray" in params) {\n                    var dasharray = {\n                        "-": "shortdash",\n                        ".": "shortdot",\n                        "-.": "shortdashdot",\n                        "-..": "shortdashdotdot",\n                        ". ": "dot",\n                        "- ": "dash",\n                        "--": "longdash",\n                        "- .": "dashdot",\n                        "--.": "longdashdot",\n                        "--..": "longdashdotdot"\n                    };\n                    stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E;\n                }\n                newstroke && node.appendChild(stroke);\n            }\n            if (res.type == "text") {\n                res.paper.canvas.style.display = E;\n                var span = res.paper.span,\n                    m = 100,\n                    fontSize = a.font && a.font.match(/\\d+(?:\\.\\d*)?(?=px)/);\n                s = span.style;\n                a.font && (s.font = a.font);\n                a["font-family"] && (s.fontFamily = a["font-family"]);\n                a["font-weight"] && (s.fontWeight = a["font-weight"]);\n                a["font-style"] && (s.fontStyle = a["font-style"]);\n                fontSize = toFloat(a["font-size"] || fontSize && fontSize[0]) || 10;\n                s.fontSize = fontSize * m + "px";\n                res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, "&#60;").replace(/&/g, "&#38;").replace(/\\n/g, "<br>"));\n                var brect = span.getBoundingClientRect();\n                res.W = a.w = (brect.right - brect.left) / m;\n                res.H = a.h = (brect.bottom - brect.top) / m;\n                // res.paper.canvas.style.display = "none";\n                res.X = a.x;\n                res.Y = a.y + res.H / 2;\n\n                ("x" in params || "y" in params) && (res.path.v = R.format("m{0},{1}l{2},{1}", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1));\n                var dirtyattrs = ["x", "y", "text", "font", "font-family", "font-weight", "font-style", "font-size"];\n                for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) {\n                    res._.dirty = 1;\n                    break;\n                }\n\n                // text-anchor emulation\n                switch (a["text-anchor"]) {\n                    case "start":\n                        res.textpath.style["v-text-align"] = "left";\n                        res.bbx = res.W / 2;\n                        break;\n                    case "end":\n                        res.textpath.style["v-text-align"] = "right";\n                        res.bbx = -res.W / 2;\n                        break;\n                    default:\n                        res.textpath.style["v-text-align"] = "center";\n                        res.bbx = 0;\n                        break;\n                }\n                res.textpath.style["v-text-kern"] = true;\n            }\n            // res.paper.canvas.style.display = E;\n        },\n        addGradientFill = function (o, gradient, fill) {\n            o.attrs = o.attrs || {};\n            var attrs = o.attrs,\n                pow = Math.pow,\n                opacity,\n                oindex,\n                type = "linear",\n                fxfy = ".5 .5";\n            o.attrs.gradient = gradient;\n            gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) {\n                type = "radial";\n                if (fx && fy) {\n                    fx = toFloat(fx);\n                    fy = toFloat(fy);\n                    pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5);\n                    fxfy = fx + S + fy;\n                }\n                return E;\n            });\n            gradient = gradient.split(/\\s*\\-\\s*/);\n            if (type == "linear") {\n                var angle = gradient.shift();\n                angle = -toFloat(angle);\n                if (isNaN(angle)) {\n                    return null;\n                }\n            }\n            var dots = R._parseDots(gradient);\n            if (!dots) {\n                return null;\n            }\n            o = o.shape || o.node;\n            if (dots.length) {\n                o.removeChild(fill);\n                fill.on = true;\n                fill.method = "none";\n                fill.color = dots[0].color;\n                fill.color2 = dots[dots.length - 1].color;\n                var clrs = [];\n                for (var i = 0, ii = dots.length; i < ii; i++) {\n                    dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color);\n                }\n                fill.colors = clrs.length ? clrs.join() : "0% " + fill.color;\n                if (type == "radial") {\n                    fill.type = "gradientTitle";\n                    fill.focus = "100%";\n                    fill.focussize = "0 0";\n                    fill.focusposition = fxfy;\n                    fill.angle = 0;\n                } else {\n                    // fill.rotate= true;\n                    fill.type = "gradient";\n                    fill.angle = (270 - angle) % 360;\n                }\n                o.appendChild(fill);\n            }\n            return 1;\n        },\n        Element = function (node, vml) {\n            this[0] = this.node = node;\n            node.raphael = true;\n            this.id = R._oid++;\n            node.raphaelid = this.id;\n            this.X = 0;\n            this.Y = 0;\n            this.attrs = {};\n            this.paper = vml;\n            this.matrix = R.matrix();\n            this._ = {\n                transform: [],\n                sx: 1,\n                sy: 1,\n                dx: 0,\n                dy: 0,\n                deg: 0,\n                dirty: 1,\n                dirtyT: 1\n            };\n            !vml.bottom && (vml.bottom = this);\n            this.prev = vml.top;\n            vml.top && (vml.top.next = this);\n            vml.top = this;\n            this.next = null;\n        };\n    var elproto = R.el;\n\n    Element.prototype = elproto;\n    elproto.constructor = Element;\n    elproto.transform = function (tstr) {\n        if (tstr == null) {\n            return this._.transform;\n        }\n        var vbs = this.paper._viewBoxShift,\n            vbt = vbs ? "s" + [vbs.scale, vbs.scale] + "-1-1t" + [vbs.dx, vbs.dy] : E,\n            oldt;\n        if (vbs) {\n            oldt = tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, this._.transform || E);\n        }\n        R._extractTransform(this, vbt + tstr);\n        var matrix = this.matrix.clone(),\n            skew = this.skew,\n            o = this.node,\n            split,\n            isGrad = ~Str(this.attrs.fill).indexOf("-"),\n            isPatt = !Str(this.attrs.fill).indexOf("url(");\n        matrix.translate(1, 1);\n        if (isPatt || isGrad || this.type == "image") {\n            skew.matrix = "1 0 0 1";\n            skew.offset = "0 0";\n            split = matrix.split();\n            if ((isGrad && split.noRotation) || !split.isSimple) {\n                o.style.filter = matrix.toFilter();\n                var bb = this.getBBox(),\n                    bbt = this.getBBox(1),\n                    dx = bb.x - bbt.x,\n                    dy = bb.y - bbt.y;\n                o.coordorigin = (dx * -zoom) + S + (dy * -zoom);\n                setCoords(this, 1, 1, dx, dy, 0);\n            } else {\n                o.style.filter = E;\n                setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate);\n            }\n        } else {\n            o.style.filter = E;\n            skew.matrix = Str(matrix);\n            skew.offset = matrix.offset();\n        }\n        if (oldt !== null) { // empty string value is true as well\n            this._.transform = oldt;\n            R._extractTransform(this, oldt);\n        }\n        return this;\n    };\n    elproto.rotate = function (deg, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        if (deg == null) {\n            return;\n        }\n        deg = Str(deg).split(separator);\n        if (deg.length - 1) {\n            cx = toFloat(deg[1]);\n            cy = toFloat(deg[2]);\n        }\n        deg = toFloat(deg[0]);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n            cx = bbox.x + bbox.width / 2;\n            cy = bbox.y + bbox.height / 2;\n        }\n        this._.dirtyT = 1;\n        this.transform(this._.transform.concat([["r", deg, cx, cy]]));\n        return this;\n    };\n    elproto.translate = function (dx, dy) {\n        if (this.removed) {\n            return this;\n        }\n        dx = Str(dx).split(separator);\n        if (dx.length - 1) {\n            dy = toFloat(dx[1]);\n        }\n        dx = toFloat(dx[0]) || 0;\n        dy = +dy || 0;\n        if (this._.bbox) {\n            this._.bbox.x += dx;\n            this._.bbox.y += dy;\n        }\n        this.transform(this._.transform.concat([["t", dx, dy]]));\n        return this;\n    };\n    elproto.scale = function (sx, sy, cx, cy) {\n        if (this.removed) {\n            return this;\n        }\n        sx = Str(sx).split(separator);\n        if (sx.length - 1) {\n            sy = toFloat(sx[1]);\n            cx = toFloat(sx[2]);\n            cy = toFloat(sx[3]);\n            isNaN(cx) && (cx = null);\n            isNaN(cy) && (cy = null);\n        }\n        sx = toFloat(sx[0]);\n        (sy == null) && (sy = sx);\n        (cy == null) && (cx = cy);\n        if (cx == null || cy == null) {\n            var bbox = this.getBBox(1);\n        }\n        cx = cx == null ? bbox.x + bbox.width / 2 : cx;\n        cy = cy == null ? bbox.y + bbox.height / 2 : cy;\n\n        this.transform(this._.transform.concat([["s", sx, sy, cx, cy]]));\n        this._.dirtyT = 1;\n        return this;\n    };\n    elproto.hide = function () {\n        !this.removed && (this.node.style.display = "none");\n        return this;\n    };\n    elproto.show = function () {\n        !this.removed && (this.node.style.display = E);\n        return this;\n    };\n    // Needed to fix the vml setViewBox issues\n    elproto.auxGetBBox = R.el.getBBox;\n    elproto.getBBox = function(){\n        var b = this.auxGetBBox();\n        if (this.paper && this.paper._viewBoxShift)\n        {\n            var c = {};\n            var z = 1/this.paper._viewBoxShift.scale;\n            c.x = b.x - this.paper._viewBoxShift.dx;\n            c.x *= z;\n            c.y = b.y - this.paper._viewBoxShift.dy;\n            c.y *= z;\n            c.width  = b.width  * z;\n            c.height = b.height * z;\n            c.x2 = c.x + c.width;\n            c.y2 = c.y + c.height;\n            return c;\n        }\n        return b;\n    };\n    elproto._getBBox = function () {\n        if (this.removed) {\n            return {};\n        }\n        return {\n            x: this.X + (this.bbx || 0) - this.W / 2,\n            y: this.Y - this.H,\n            width: this.W,\n            height: this.H\n        };\n    };\n    elproto.remove = function () {\n        if (this.removed || !this.node.parentNode) {\n            return;\n        }\n        this.paper.__set__ && this.paper.__set__.exclude(this);\n        R.eve.unbind("raphael.*.*." + this.id);\n        R._tear(this, this.paper);\n        this.node.parentNode.removeChild(this.node);\n        this.shape && this.shape.parentNode.removeChild(this.shape);\n        for (var i in this) {\n            this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;\n        }\n        this.removed = true;\n    };\n    elproto.attr = function (name, value) {\n        if (this.removed) {\n            return this;\n        }\n        if (name == null) {\n            var res = {};\n            for (var a in this.attrs) if (this.attrs[has](a)) {\n                res[a] = this.attrs[a];\n            }\n            res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient;\n            res.transform = this._.transform;\n            return res;\n        }\n        if (value == null && R.is(name, "string")) {\n            if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) {\n                return this.attrs.gradient;\n            }\n            var names = name.split(separator),\n                out = {};\n            for (var i = 0, ii = names.length; i < ii; i++) {\n                name = names[i];\n                if (name in this.attrs) {\n                    out[name] = this.attrs[name];\n                } else if (R.is(this.paper.customAttributes[name], "function")) {\n                    out[name] = this.paper.customAttributes[name].def;\n                } else {\n                    out[name] = R._availableAttrs[name];\n                }\n            }\n            return ii - 1 ? out : out[names[0]];\n        }\n        if (this.attrs && value == null && R.is(name, "array")) {\n            out = {};\n            for (i = 0, ii = name.length; i < ii; i++) {\n                out[name[i]] = this.attr(name[i]);\n            }\n            return out;\n        }\n        var params;\n        if (value != null) {\n            params = {};\n            params[name] = value;\n        }\n        value == null && R.is(name, "object") && (params = name);\n        for (var key in params) {\n            eve("raphael.attr." + key + "." + this.id, this, params[key]);\n        }\n        if (params) {\n            for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) {\n                var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));\n                this.attrs[key] = params[key];\n                for (var subkey in par) if (par[has](subkey)) {\n                    params[subkey] = par[subkey];\n                }\n            }\n            // this.paper.canvas.style.display = "none";\n            if (params.text && this.type == "text") {\n                this.textpath.string = params.text;\n            }\n            setFillAndStroke(this, params);\n            // this.paper.canvas.style.display = E;\n        }\n        return this;\n    };\n    elproto.toFront = function () {\n        !this.removed && this.node.parentNode.appendChild(this.node);\n        this.paper && this.paper.top != this && R._tofront(this, this.paper);\n        return this;\n    };\n    elproto.toBack = function () {\n        if (this.removed) {\n            return this;\n        }\n        if (this.node.parentNode.firstChild != this.node) {\n            this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild);\n            R._toback(this, this.paper);\n        }\n        return this;\n    };\n    elproto.insertAfter = function (element) {\n        if (this.removed) {\n            return this;\n        }\n        if (element.constructor == R.st.constructor) {\n            element = element[element.length - 1];\n        }\n        if (element.node.nextSibling) {\n            element.node.parentNode.insertBefore(this.node, element.node.nextSibling);\n        } else {\n            element.node.parentNode.appendChild(this.node);\n        }\n        R._insertafter(this, element, this.paper);\n        return this;\n    };\n    elproto.insertBefore = function (element) {\n        if (this.removed) {\n            return this;\n        }\n        if (element.constructor == R.st.constructor) {\n            element = element[0];\n        }\n        element.node.parentNode.insertBefore(this.node, element.node);\n        R._insertbefore(this, element, this.paper);\n        return this;\n    };\n    elproto.blur = function (size) {\n        var s = this.node.runtimeStyle,\n            f = s.filter;\n        f = f.replace(blurregexp, E);\n        if (+size !== 0) {\n            this.attrs.blur = size;\n            s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")";\n            s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5));\n        } else {\n            s.filter = f;\n            s.margin = 0;\n            delete this.attrs.blur;\n        }\n        return this;\n    };\n\n    R._engine.path = function (pathString, vml) {\n        var el = createNode("shape");\n        el.style.cssText = cssDot;\n        el.coordsize = zoom + S + zoom;\n        el.coordorigin = vml.coordorigin;\n        var p = new Element(el, vml),\n            attr = {fill: "none", stroke: "#000"};\n        pathString && (attr.path = pathString);\n        p.type = "path";\n        p.path = [];\n        p.Path = E;\n        setFillAndStroke(p, attr);\n        vml.canvas.appendChild(el);\n        var skew = createNode("skew");\n        skew.on = true;\n        el.appendChild(skew);\n        p.skew = skew;\n        p.transform(E);\n        return p;\n    };\n    R._engine.rect = function (vml, x, y, w, h, r) {\n        var path = R._rectPath(x, y, w, h, r),\n            res = vml.path(path),\n            a = res.attrs;\n        res.X = a.x = x;\n        res.Y = a.y = y;\n        res.W = a.width = w;\n        res.H = a.height = h;\n        a.r = r;\n        a.path = path;\n        res.type = "rect";\n        return res;\n    };\n    R._engine.ellipse = function (vml, x, y, rx, ry) {\n        var res = vml.path(),\n            a = res.attrs;\n        res.X = x - rx;\n        res.Y = y - ry;\n        res.W = rx * 2;\n        res.H = ry * 2;\n        res.type = "ellipse";\n        setFillAndStroke(res, {\n            cx: x,\n            cy: y,\n            rx: rx,\n            ry: ry\n        });\n        return res;\n    };\n    R._engine.circle = function (vml, x, y, r) {\n        var res = vml.path(),\n            a = res.attrs;\n        res.X = x - r;\n        res.Y = y - r;\n        res.W = res.H = r * 2;\n        res.type = "circle";\n        setFillAndStroke(res, {\n            cx: x,\n            cy: y,\n            r: r\n        });\n        return res;\n    };\n    R._engine.image = function (vml, src, x, y, w, h) {\n        var path = R._rectPath(x, y, w, h),\n            res = vml.path(path).attr({stroke: "none"}),\n            a = res.attrs,\n            node = res.node,\n            fill = node.getElementsByTagName(fillString)[0];\n        a.src = src;\n        res.X = a.x = x;\n        res.Y = a.y = y;\n        res.W = a.width = w;\n        res.H = a.height = h;\n        a.path = path;\n        res.type = "image";\n        fill.parentNode == node && node.removeChild(fill);\n        fill.rotate = true;\n        fill.src = src;\n        fill.type = "tile";\n        res._.fillpos = [x, y];\n        res._.fillsize = [w, h];\n        node.appendChild(fill);\n        setCoords(res, 1, 1, 0, 0, 0);\n        return res;\n    };\n    R._engine.text = function (vml, x, y, text) {\n        var el = createNode("shape"),\n            path = createNode("path"),\n            o = createNode("textpath");\n        x = x || 0;\n        y = y || 0;\n        text = text || "";\n        path.v = R.format("m{0},{1}l{2},{1}", round(x * zoom), round(y * zoom), round(x * zoom) + 1);\n        path.textpathok = true;\n        o.string = Str(text);\n        o.on = true;\n        el.style.cssText = cssDot;\n        el.coordsize = zoom + S + zoom;\n        el.coordorigin = "0 0";\n        var p = new Element(el, vml),\n            attr = {\n                fill: "#000",\n                stroke: "none",\n                font: R._availableAttrs.font,\n                text: text\n            };\n        p.shape = el;\n        p.path = path;\n        p.textpath = o;\n        p.type = "text";\n        p.attrs.text = Str(text);\n        p.attrs.x = x;\n        p.attrs.y = y;\n        p.attrs.w = 1;\n        p.attrs.h = 1;\n        setFillAndStroke(p, attr);\n        el.appendChild(o);\n        el.appendChild(path);\n        vml.canvas.appendChild(el);\n        var skew = createNode("skew");\n        skew.on = true;\n        el.appendChild(skew);\n        p.skew = skew;\n        p.transform(E);\n        return p;\n    };\n    R._engine.setSize = function (width, height) {\n        var cs = this.canvas.style;\n        this.width = width;\n        this.height = height;\n        width == +width && (width += "px");\n        height == +height && (height += "px");\n        cs.width = width;\n        cs.height = height;\n        cs.clip = "rect(0 " + width + " " + height + " 0)";\n        if (this._viewBox) {\n            R._engine.setViewBox.apply(this, this._viewBox);\n        }\n        return this;\n    };\n    R._engine.setViewBox = function (x, y, w, h, fit) {\n        R.eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]);\n        var paperSize = this.getSize(),\n            width = paperSize.width,\n            height = paperSize.height,\n            H, W;\n        if (fit) {\n            H = height / h;\n            W = width / w;\n            if (w * H < width) {\n                x -= (width - w * H) / 2 / H;\n            }\n            if (h * W < height) {\n                y -= (height - h * W) / 2 / W;\n            }\n        }\n        this._viewBox = [x, y, w, h, !!fit];\n        this._viewBoxShift = {\n            dx: -x,\n            dy: -y,\n            scale: paperSize\n        };\n        this.forEach(function (el) {\n            el.transform("...");\n        });\n        return this;\n    };\n    var createNode;\n    R._engine.initWin = function (win) {\n        var doc = win.document;\n        if (doc.styleSheets.length < 31) {\n            doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)");\n        } else {\n            // no more room, add to the existing one\n            // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\n            doc.styleSheets[0].addRule(".rvml", "behavior:url(#default#VML)");\n        }\n        try {\n            !doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml");\n            createNode = function (tagName) {\n                return doc.createElement(\'<rvml:\' + tagName + \' class="rvml">\');\n            };\n        } catch (e) {\n            createNode = function (tagName) {\n                return doc.createElement(\'<\' + tagName + \' xmlns="urn:schemas-microsoft.com:vml" class="rvml">\');\n            };\n        }\n    };\n    R._engine.initWin(R._g.win);\n    R._engine.create = function () {\n        var con = R._getContainer.apply(0, arguments),\n            container = con.container,\n            height = con.height,\n            s,\n            width = con.width,\n            x = con.x,\n            y = con.y;\n        if (!container) {\n            throw new Error("VML container not found.");\n        }\n        var res = new R._Paper,\n            c = res.canvas = R._g.doc.createElement("div"),\n            cs = c.style;\n        x = x || 0;\n        y = y || 0;\n        width = width || 512;\n        height = height || 342;\n        res.width = width;\n        res.height = height;\n        width == +width && (width += "px");\n        height == +height && (height += "px");\n        res.coordsize = zoom * 1e3 + S + zoom * 1e3;\n        res.coordorigin = "0 0";\n        res.span = R._g.doc.createElement("span");\n        res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;";\n        c.appendChild(res.span);\n        cs.cssText = R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", width, height);\n        if (container == 1) {\n            R._g.doc.body.appendChild(c);\n            cs.left = x + "px";\n            cs.top = y + "px";\n            cs.position = "absolute";\n        } else {\n            if (container.firstChild) {\n                container.insertBefore(c, container.firstChild);\n            } else {\n                container.appendChild(c);\n            }\n        }\n        res.renderfix = function () {};\n        return res;\n    };\n    R.prototype.clear = function () {\n        R.eve("raphael.clear", this);\n        this.canvas.innerHTML = E;\n        this.span = R._g.doc.createElement("span");\n        this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";\n        this.canvas.appendChild(this.span);\n        this.bottom = this.top = null;\n    };\n    R.prototype.remove = function () {\n        R.eve("raphael.remove", this);\n        this.canvas.parentNode.removeChild(this.canvas);\n        for (var i in this) {\n            this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;\n        }\n        return true;\n    };\n\n    var setproto = R.st;\n    for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {\n        setproto[method] = (function (methodname) {\n            return function () {\n                var arg = arguments;\n                return this.forEach(function (el) {\n                    el[methodname].apply(el, arg);\n                });\n            };\n        })(method);\n    }\n}));\n\n// ┌────────────────────────────────────────────────────────────────────┐ \\\\\n// │ Raphaël @VERSION - JavaScript Vector Library                       │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com)    │ \\\\\n// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com)              │ \\\\\n// ├────────────────────────────────────────────────────────────────────┤ \\\\\n// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\\\\n// └────────────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob, factory) {\n    if (typeof define === "function" && define.amd) {\n        define("raphael", ["raphael.core", "raphael.svg", "raphael.vml"], function(Raphael) {\n            return (glob.Raphael = factory(Raphael));\n        });\n    } else if (typeof exports === "object") {\n        var raphael = require("raphael.core");\n\n        require("raphael.svg");\n        require("raphael.vml");\n\n        module.exports = factory(raphael);\n    } else {\n        glob.Raphael = factory(glob.Raphael);\n    }\n}(this, function (Raphael) {\n    return Raphael.ninja();\n}));\n\n\n\n\n\n\n\n\n\n/**\n * FRaphael\n * \tAn extension for Raphael.js to make it easier to work with Filter Effects\n *\n * Copyright © 2013 Chris Scott <chris.scott@factmint.com>\n * Delivered with and licensed under the MIT licence\n *\n */\n\n// Create the global FRaphael object\n(function(scope) {\n    var\tversion = "0.0.1",\n        license = "MIT";\n\n    var\tns = "http://www.w3.org/2000/svg",\n        idCounter = 0;\n\n    var FR = {\n        // Object prototype for a filter\n        Filter: function(id) {\n            if (id == undefined) {\n                id = "filter-" + idCounter++;\n                while(FR.filters[id] != undefined) {\n                    id = "filter-" + idCounter++;\n                }\n            }\n\n            if (FR.filters[id] != undefined) {\n                throw "A filter with id " + id + " already exists";\n            }\n\n            this.element = document.createElementNS(ns, "filter");\n            this.element.setAttribute("id", id);\n            this.element.setAttribute("x", "-25%");\n            this.element.setAttribute("y", "-25%");\n            this.element.setAttribute("width", "150%");\n            this.element.setAttribute("height", "150%");\n\n            this.lastFEResult = null;\n\n            FR.filters[id] = this;\n            this.id = id;\n        },\n\n        // Object prototype for an effect\n        FilterEffect: function(type, attributes) {\n            this.element = document.createElementNS(ns, type);\n            for (var key in attributes) {\n                this.element.setAttribute(key, attributes[key]);\n            }\n        },\n\n        // Return the filter applied to an element or a new filter if none are currently applied\n        getFilter: function(element) {\n            var filterId = element.data("filterId");\n            var filter = null;\n\n            if (filterId == undefined) {\n                filterId = "element-filter-" + element.id;\n                filter = element.paper.createFilter(filterId);\n                element.filter(filterId);\n            } else {\n                filter = FR.filters[filterId];\n            }\n\n            return filter;\n        },\n\n        // maintain a list of filters by id\n        filters: {}\n    };\n\n    FR.Filter.prototype = {\n        addEffect: function(type, attributes, children) {\n            var effect = new FR.FilterEffect(type, attributes);\n\n            if (children) {\n                if (children instanceof Array) {\n                    for (var x in children) {\n                        if (!children.hasOwnProperty(x)) continue;\n\n                        effect.element.appendChild(children[x].element);\n                    }\n                } else {\n                    effect.element.appendChild(children.element);\n                }\n            }\n\n            this.element.appendChild(effect.element);\n\n            return this;\n        },\n\n        chainEffect: function(type, attributes, children) {\n            if (attributes == undefined) {\n                attributes = {};\n            }\n\n            var inId;\n            var outId;\n            if (attributes.in == undefined) {\n                inId = this.getLastResult();\n            } else {\n                inId = attributes.in;\n            }\n            if (attributes.result == undefined) {\n                outId = idCounter++;\n            } else {\n                outId = attributes.result;\n            }\n\n            this.lastFEResult = outId;\n\n            attributes.in = inId;\n            attributes.result = outId;\n\n            this.addEffect(type, attributes, children);\n\n            return this;\n        },\n\n        getLastResult: function() {\n            return (this.lastFEResult == undefined) ? "SourceGraphic" : this.lastFEResult;\n        },\n\n        merge: function(in1, in2, attributes) {\n            var mergeNode1 = new FR.FilterEffect("feMergeNode", {\n                in: in1\n            });\n            var mergeNode2 = new FR.FilterEffect("feMergeNode", {\n                in: in2\n            });\n\n            this.chainEffect("feMerge", attributes, [mergeNode1, mergeNode2]);\n\n            return this;\n        },\n\n        compose: function(in1, in2, operator, attributes) {\n            if (attributes == undefined) {\n                attributes = {};\n            }\n\n            if (operator == undefined) {\n                operator = "over";\n            }\n\n            attributes.in = in1;\n            attributes.in2 = in2;\n            attributes.operator = operator;\n\n            this.chainEffect("feComposite", attributes);\n\n            return this;\n        },\n\n        arithmeticCompose: function(in1, in2, k1, k2, k3, k4) {\n            if (k1 == undefined) {\n                k1 = 0;\n            }\n            if (k2 == undefined) {\n                k2 = 0;\n            }\n            if (k3 == undefined) {\n                k3 = 0;\n            }\n            if (k4 == undefined) {\n                k4 = 0;\n            }\n\n            this.compose(in1, in2, "arithmetic", {\n                k1: k1,\n                k2: k2,\n                k3: k3,\n                k4: k4\n            });\n\n            return this;\n        },\n\n        addBlur: function(stdDeviation, attributes) {\n            if (!stdDeviation) {\n                throw "Standard deviation is required to perform a blur filter";\n            }\n\n            if (attributes == undefined) {\n                attributes = {};\n            }\n            attributes.stdDeviation = stdDeviation;\n\n            this.chainEffect("feGaussianBlur", attributes);\n\n            return this;\n        },\n\n        addOffset: function(dx, dy, attributes) {\n            if (dx == undefined | dy == undefined) {\n                throw "dx and dy values are required to perform an offset FE";\n            }\n\n            if (attributes == undefined) {\n                attributes = {};\n            }\n            attributes.dx = dx;\n            attributes.dy = dy;\n\n            this.chainEffect("feOffset", attributes);\n\n            return this;\n        },\n\n        addLighting: function(x, y, z, color, type, attributes) {\n            if (x == undefined | y == undefined | z == undefined) {\n                throw "Three co-ordinates are required to create a light source";\n            }\n\n            var previousResult = this.getLastResult();\n\n            var id = idCounter++;\n\n            if (attributes == undefined) {\n                attributes = {};\n            }\n\n            attributes.result = id;\n            if (color != undefined) {\n                attributes["lighting-color"] = color;\n            }\n\n            if (type == undefined || type == "diffuse") {\n                type = "feDiffuseLighting";\n            } else if (type == "specular") {\n                type = "feSpecularLighting";\n            }\n\n            var lightSource = new FR.FilterEffect("fePointLight", {\n                x: x,\n                y: y,\n                z: z\n            });\n\n            this.chainEffect(type, attributes, lightSource).arithmeticCompose(previousResult, id, 3, 0.2, 0, 0);\n\n            return this;\n        },\n\n        addShiftToColor: function(color, moveBy, attributes) {\n            if (color == undefined) {\n                throw "A colour string is a required argument to create a colorMatrix";\n            }\n            if (moveBy == undefined) {\n                moveBy = 0.5;\n            }\n\n            var remainingColor = 1 - moveBy, x = remainingColor;\n\n            if (attributes == undefined) {\n                attributes = {};\n            }\n\n            var colorObject = Raphael.color(color);\n            var\tr = colorObject.r * moveBy / 255,\n                g = colorObject.g * moveBy / 255,\n                b = colorObject.b * moveBy / 255;\n\n            /**\n             * r\'\tx 0 0 0 r\t\tr\n             * g\'\t0 x 0 0 g\t\tg\n             * b\' =\t0 0 x 0 b\t.\tb\n             * a\'\t0 0 0 1 0\t\to\n             * 1\t\t\t\t\t1\n             */\n            attributes.values = x + " 0 0 0 " + r + " 0 " + x + " 0 0 " + g + " 0 0 " + x + " 0 " + b + " 0 0 0 1 0 ";\n\n            this.chainEffect("feColorMatrix", attributes);\n\n            return this;\n        },\n\n        addRecolor: function(color, opacity, attributes) {\n            if (color == undefined) {\n                throw "A colour string is a required argument to create a colorMatrix";\n            }\n            if (opacity == undefined) {\n                opacity = 1;\n            }\n\n            if (attributes == undefined) {\n                attributes = {};\n            }\n\n            var colorObject = Raphael.color(color);\n            var\tr = colorObject.r / 255,\n                g = colorObject.g / 255,\n                b = colorObject.b / 255;\n\n            /**\n             * r\'\t0 0 0 0 r\t\tr\n             * g\'\t0 0 0 0 g\t\tg\n             * b\' =\t0 0 0 0 b\t.\tb\n             * a\'\t0 0 0 a 0\t\ta\n             * 1\t\t\t\t\t1\n             */\n            attributes.values = "0 0 0 0 " + r + " 0 0 0 0 " + g + " 0 0 0 0 " + b + " 0 0 0 " + opacity + " 0 ";\n\n            this.chainEffect("feColorMatrix", attributes);\n\n            return this;\n        },\n\n        addDesaturate: function(saturation, attributes) {\n            if (saturation == undefined) {\n                saturnation = 0;\n            }\n\n            if (attributes == undefined) {\n                attributes = {};\n            }\n\n            attributes.values = saturation;\n            attributes.type = "saturate";\n\n            this.chainEffect("feColorMatrix", attributes);\n\n            return this;\n        },\n\n        addConvolveMatrix: function(matrix, attributes) {\n            if (matrix == undefined) {\n                throw "A matrix (usually 9 numbers) must be provided to apply a convolve matrix transform";\n            }\n\n            if (attributes == undefined) {\n                attributes = {};\n            }\n\n            attributes.kernelMatrix = matrix;\n\n            this.chainEffect("feConvolveMatrix", attributes);\n\n            return this;\n        },\n\n        createShadow: function(dx, dy, blur, opacity, color) {\n            if (dx == undefined) {\n                throw "dx is required for the shadow effect";\n            }\n            if (dy == undefined) {\n                throw "dy is required for the shadow effect";\n            }\n            if (blur == undefined) {\n                throw "blur (stdDeviation) is required for the shadow effect";\n            }\n\n            if (opacity == undefined) {\n                opacity = 0.6;\n            }\n\n            var previousResult = this.getLastResult();\n\n            if (color == undefined) {\n                color = "#000000";\n            }\n\n            this.addOffset(dx, dy, {\n                in: "SourceAlpha"\n            });\n\n            this.addRecolor(color, opacity);\n\n            this.addBlur(blur);\n\n            this.merge(this.getLastResult(), previousResult);\n\n            return this;\n        },\n\n        createEmboss: function(height, x, y, z) {\n            if (height == undefined) {\n                height = 2;\n            }\n            if (x == undefined) {\n                x = -1000;\n            }\n            if (y == undefined) {\n                y = -5000;\n            }\n            if (z == undefined) {\n                z = 300;\n            }\n\n            // Create the highlight\n\n            this.addOffset(height * x / (x + y), height * y / (x + y), {\n                in: "SourceAlpha"\n            });\n\n            this.addBlur(height * 0.5);\n\n            var whiteLightSource = new FR.FilterEffect("fePointLight", {\n                x: x,\n                y: y,\n                z: z\n            });\n\n            this.chainEffect("feSpecularLighting", {\n                surfaceScale: height,\n                specularConstant: 0.8,\n                specularExponent: 15\n            }, whiteLightSource);\n\n            this.compose(this.getLastResult(), "SourceAlpha", "in");\n            var whiteLight = this.getLastResult();\n\n            // Create the lowlight\n\n            this.addOffset(height * -1 * x / (x + y), height * -1 * y / (x + y), {\n                in: "SourceAlpha"\n            });\n\n            this.addBlur(height * 0.5);\n\n            var darkLightSource = new FR.FilterEffect("fePointLight", {\n                x: -1 * x,\n                y: -1 * y,\n                z:      z\n            });\n\n            this.chainEffect("feSpecularLighting", {\n                surfaceScale: height,\n                specularConstant: 1.8,\n                specularExponent: 6\n            }, darkLightSource);\n\n            this.compose(this.getLastResult(), "SourceAlpha", "in");\n            this.chainEffect("feColorMatrix", {\n                values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0"\n            });\n            var darkLight = this.getLastResult();\n\n            this.arithmeticCompose(whiteLight, darkLight, 0, 0.8, 0.5, 0);\n\n            this.merge("SourceGraphic", this.getLastResult());\n\n            return this;\n        }\n    };\n\n    scope.FRaphael = FR;\n})(this);\n\n/**\n * add a filter to the paper by id\n */\nRaphael.fn.createFilter = function(id) {\n    var paper = this;\n    var filter = new FRaphael.Filter(id);\n    paper.defs.appendChild(filter.element);\n\n    return filter;\n};\n\n/**\n * Apply a filter to an element by id\n */\nRaphael.el.filter = function(filter) {\n    var id = (filter instanceof FRaphael.Filter) ? filter.id : filter;\n\n    this.node.setAttribute("filter", "url(#" + id + ")");\n    this.data("filterId", id);\n\n    return this;\n};\n\n/**\n * Get the current filter for an element or a new one if not\n */\nRaphael.el.getFilter = function() {\n    return FRaphael.getFilter(this);\n};\n\n/**\n * A shorthand method for applying blur\n */\nRaphael.el.blur = function(stdDeviation) {\n    if (stdDeviation == undefined) {\n        stdDeviation = 3;\n    }\n\n    this.getFilter().addBlur(stdDeviation);\n\n    return this;\n};\n\n/**\n * A shorthand method for applying a drop shadow\n */\nRaphael.el.shadow = function(dx, dy, blur, opacity, color) {\n    if (dx == undefined) {\n        dx = 3;\n    }\n    if (dy == undefined) {\n        dy = 3;\n    }\n    if (blur == undefined) {\n        blur = 3;\n    }\n\n    this.getFilter().createShadow(dx, dy, blur, opacity, color);\n\n    return this;\n};\n\n/**\n * A shorthand method for applying lighting\n */\nRaphael.el.light = function(x, y, z, color, type) {\n    if (x == undefined) {\n        x = this.paper.width;\n    }\n    if (y == undefined) {\n        y = 0;\n    }\n    if (z == undefined) {\n        z = 20;\n    }\n\n    this.getFilter().addLighting(x, y, z, color, type);\n\n    return this;\n};\n\n/**\n * A shorthand method for applying a colour shift\n */\nRaphael.el.colorShift = function(color, shift) {\n    if (color == undefined) {\n        color = "black";\n    }\n    if (shift == undefined) {\n        shift = 0.5;\n    }\n\n    this.getFilter().addShiftToColor(color, shift);\n\n    return this;\n};\n\n/**\n * A shorthand method for embossing\n */\nRaphael.el.emboss = function(height) {\n    this.getFilter().createEmboss(height);\n\n    return this;\n};\n\n/**\n * A shorthand method for desaturating\n */\nRaphael.el.desaturate = function(saturation) {\n    this.getFilter().addDesaturate(saturation);\n\n    return this;\n};\n\n/**\n * A shorthand method for complete desaturation\n */\nRaphael.el.greyScale = function() {\n    this.getFilter().addDesaturate(0);\n\n    return this;\n};\n'},function(t,e,n){"use strict";n(4)(n(12))},function(t,e){t.exports='/* \n * Simple JavaScript Inheritance \n * By John Resig http://ejohn.org/ \n * MIT Licensed. \n * \n ****************************************************** \n * Example Usage \n ****************************************************** \n var Person = Class.extend({ \n  init: function(isDancing){ \n    this.dancing = isDancing; \n  }, \n  dance: function(){ \n    return this.dancing; \n  } \n}); \n\nvar Ninja = Person.extend({ \n  init: function(){ \n    this._super( false ); \n  }, \n  dance: function(){ \n    // Call the inherited version of dance() \n    return this._super(); \n  }, \n  swingSword: function(){ \n    return true; \n  } \n}); \n\nvar p = new Person(true); \np.dance(); // => true \n\nvar n = new Ninja(); \nn.dance(); // => false \nn.swingSword(); // => true \n\n// Should all be true \np instanceof Person && p instanceof Class && \nn instanceof Ninja && n instanceof Person && n instanceof Class \n\n ****************************************************** \n */ \n  \n// Inspired by base2 and Prototype \n(function(){ \n  var fnTest = /xyz/.test(function(){xyz;}) ? /\\b_super\\b/ : /.*/; \n\n  // The base Class implementation (does nothing) \n  this.Class = function(){}; \n  \n\n  // Create a new Class that inherits from this class \n  Class.extend = function(prop) { \n    var _super = this.prototype; \n    \n    // Instantiate a base class (but only create the instance, \n    // don\'t run the init constructor) \n    initializing = true; \n    var prototype = new this(); \n    initializing = false; \n    \n     \n    // Copy the properties over onto the new prototype \n    for (var name in prop) { \n      // Check if we\'re overwriting an existing function \n      prototype[name] = typeof prop[name] == "function" && \n        typeof _super[name] == "function" && fnTest.test(prop[name]) ? \n        (function(name, fn){ \n          return function() { \n            var tmp = this._super; \n            \n            // Add a new ._super() method that is the same method \n            // but on the super-class \n            this._super = _super[name]; \n            \n            // The method only need to be bound temporarily, so we \n            // remove it when we\'re done executing \n            var ret = fn.apply(this, arguments);        \n            this._super = tmp; \n            \n            return ret; \n          }; \n        })(name, prop[name]) : \n        prop[name]; \n    } \n    \n    // The dummy class constructor \n    function Class() { \n      // All construction is actually done in the init method \n      if ( !initializing && this.init ) \n        this.init.apply(this, arguments); \n    } \n    \n    // Populate our constructed prototype object \n    Class.prototype = prototype; \n    \n    // Enforce the constructor to be what we expect \n    Class.prototype.constructor = Class; \n\n    // And make this class extendable \n    Class.extend = arguments.callee; \n    \n    // EXTENSION BY Draw2D.org to inject methods into an existing class to provide plugins or \n    // bugfixes for further releases \n    // \n    Class.inject = function (prop) { \n        var proto = this.prototype; \n        var parent = {}; \n        for (var name in prop) { \n            if (typeof (prop[name]) == "function" && typeof (proto[name]) == "function" && fnTest.test(prop[name])) { \n                parent[name] = proto[name]; \n                proto[name] = (function (name, fn) { \n                    return function () { \n                        var tmp = this.parent; \n                        this.parent = parent[name]; \n                        var ret = fn.apply(this, arguments); \n                        this.parent = tmp; \n                        return ret; \n                    }; \n                })(name, prop[name]); \n            } else { \n                proto[name] = prop[name]; \n            } \n        } \n    }; \n     \n    return Class; \n  }; \n})();\n \n'},function(t,e,n){"use strict";n(4)(n(14))},function(t,e){t.exports='var PF=function(){var e=function(t,n){var r=e.resolve(t,n||"/"),i=e.modules[r];if(!i)throw new Error("Failed to resolve module "+t+", tried "+r);var s=i._cached?i._cached:i();return s};return e.paths=[],e.modules={},e.extensions=[".js",".coffee"],e._core={assert:!0,events:!0,fs:!0,path:!0,vm:!0},e.resolve=function(){return function(t,n){function u(t){if(e.modules[t])return t;for(var n=0;n<e.extensions.length;n++){var r=e.extensions[n];if(e.modules[t+r])return t+r}}function a(t){t=t.replace(/\\/+$/,"");var n=t+"/package.json";if(e.modules[n]){var i=e.modules[n](),s=i.browserify;if(typeof s=="object"&&s.main){var o=u(r.resolve(t,s.main));if(o)return o}else if(typeof s=="string"){var o=u(r.resolve(t,s));if(o)return o}else if(i.main){var o=u(r.resolve(t,i.main));if(o)return o}}return u(t+"/index")}function f(e,t){var n=l(t);for(var r=0;r<n.length;r++){var i=n[r],s=u(i+"/"+e);if(s)return s;var o=a(i+"/"+e);if(o)return o}var s=u(e);if(s)return s}function l(e){var t;e==="/"?t=[""]:t=r.normalize(e).split("/");var n=[];for(var i=t.length-1;i>=0;i--){if(t[i]==="node_modules")continue;var s=t.slice(0,i+1).join("/")+"/node_modules";n.push(s)}return n}n||(n="/");if(e._core[t])return t;var r=e.modules.path();n=r.resolve("/",n);var i=n||"/";if(t.match(/^(?:\\.\\.?\\/|\\/)/)){var s=u(r.resolve(i,t))||a(r.resolve(i,t));if(s)return s}var o=f(t,i);if(o)return o;throw new Error("Cannot find module \'"+t+"\'")}}(),e.alias=function(t,n){var r=e.modules.path(),i=null;try{i=e.resolve(t+"/package.json","/")}catch(s){i=e.resolve(t,"/")}var o=r.dirname(i),u=(Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t})(e.modules);for(var a=0;a<u.length;a++){var f=u[a];if(f.slice(0,o.length+1)===o+"/"){var l=f.slice(o.length);e.modules[n+l]=e.modules[o+l]}else f===o&&(e.modules[n]=e.modules[o])}},e.define=function(t,n){var r=e._core[t]?"":e.modules.path().dirname(t),i=function(t){return e(t,r)};i.resolve=function(t){return e.resolve(t,r)},i.modules=e.modules,i.define=e.define;var s={exports:{}};e.modules[t]=function(){return e.modules[t]._cached=s.exports,n.call(s.exports,i,s,s.exports,r,t),e.modules[t]._cached=s.exports,s.exports}},typeof process=="undefined"&&(process={}),process.nextTick||(process.nextTick=function(){var e=[],t=typeof window!="undefined"&&window.postMessage&&window.addEventListener;return t&&window.addEventListener("message",function(t){if(t.source===window&&t.data==="browserify-tick"){t.stopPropagation();if(e.length>0){var n=e.shift();n()}}},!0),function(n){t?(e.push(n),window.postMessage("browserify-tick","*")):setTimeout(n,0)}}()),process.title||(process.title="browser"),process.binding||(process.binding=function(t){if(t==="evals")return e("vm");throw new Error("No such module")}),process.cwd||(process.cwd=function(){return"."}),process.env||(process.env={}),process.argv||(process.argv=[]),e.define("path",function(e,t,n,r,i){function s(e,t){var n=[];for(var r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}function o(e,t){var n=0;for(var r=e.length;r>=0;r--){var i=e[r];i=="."?e.splice(r,1):i===".."?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}var u=/^(.+\\/(?!$)|\\/)?((?:.+?)?(\\.[^.]*)?)$/;n.resolve=function(){var e="",t=!1;for(var n=arguments.length;n>=-1&&!t;n--){var r=n>=0?arguments[n]:process.cwd();if(typeof r!="string"||!r)continue;e=r+"/"+e,t=r.charAt(0)==="/"}return e=o(s(e.split("/"),function(e){return!!e}),!t).join("/"),(t?"/":"")+e||"."},n.normalize=function(e){var t=e.charAt(0)==="/",n=e.slice(-1)==="/";return e=o(s(e.split("/"),function(e){return!!e}),!t).join("/"),!e&&!t&&(e="."),e&&n&&(e+="/"),(t?"/":"")+e},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(s(e,function(e,t){return e&&typeof e=="string"}).join("/"))},n.dirname=function(e){var t=u.exec(e)[1]||"",n=!1;return t?t.length===1||n&&t.length<=3&&t.charAt(1)===":"?t:t.substring(0,t.length-1):"."},n.basename=function(e,t){var n=u.exec(e)[2]||"";return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return u.exec(e)[3]||""}}),e.define("/core/Node.js",function(e,t,n,r,i){function s(e,t,n){this.x=e,this.y=t,this.walkable=n===undefined?!0:n}t.exports=s}),e.define("/core/Grid.js",function(e,t,n,r,i){function o(e,t,n){this.width=e,this.height=t,this.nodes=this._buildNodes(e,t,n)}var s=e("./Node");o.prototype._buildNodes=function(e,t,n){var r,i,o=new Array(t),u;for(r=0;r<t;++r){o[r]=new Array(e);for(i=0;i<e;++i)o[r][i]=new s(i,r)}if(n===undefined)return o;if(n.length!==t||n[0].length!==e)throw new Error("Matrix size does not fit");for(r=0;r<t;++r)for(i=0;i<e;++i)n[r][i]&&(o[r][i].walkable=!1);return o},o.prototype.getNodeAt=function(e,t){return this.nodes[t][e]},o.prototype.isWalkableAt=function(e,t){return this.isInside(e,t)&&this.nodes[t][e].walkable},o.prototype.isInside=function(e,t){return e>=0&&e<this.width&&t>=0&&t<this.height},o.prototype.setWalkableAt=function(e,t,n){this.nodes[t][e].walkable=n},o.prototype.getNeighbors=function(e,t,n){var r=e.x,i=e.y,s=[],o=!1,u=!1,a=!1,f=!1,l=!1,c=!1,h=!1,p=!1,d=this.nodes;return this.isWalkableAt(r,i-1)&&(s.push(d[i-1][r]),o=!0),this.isWalkableAt(r+1,i)&&(s.push(d[i][r+1]),a=!0),this.isWalkableAt(r,i+1)&&(s.push(d[i+1][r]),l=!0),this.isWalkableAt(r-1,i)&&(s.push(d[i][r-1]),h=!0),t?(n?(u=h&&o,f=o&&a,c=a&&l,p=l&&h):(u=h||o,f=o||a,c=a||l,p=l||h),u&&this.isWalkableAt(r-1,i-1)&&s.push(d[i-1][r-1]),f&&this.isWalkableAt(r+1,i-1)&&s.push(d[i-1][r+1]),c&&this.isWalkableAt(r+1,i+1)&&s.push(d[i+1][r+1]),p&&this.isWalkableAt(r-1,i+1)&&s.push(d[i+1][r-1]),s):s},o.prototype.clone=function(){var e,t,n=this.width,r=this.height,i=this.nodes,u=new o(n,r),a=new Array(r),f;for(e=0;e<r;++e){a[e]=new Array(n);for(t=0;t<n;++t)a[e][t]=new s(t,e,i[e][t].walkable)}return u.nodes=a,u},t.exports=o}),e.define("/core/Heap.js",function(e,t,n,r,i){(function(){var e,n,r,i,s,o,u,a,f,l,c,h,p,d,v;r=Math.floor,l=Math.min,n=function(e,t){return e<t?-1:e>t?1:0},f=function(e,t,i,s,o){var u;i==null&&(i=0),o==null&&(o=n);if(i<0)throw new Error("lo must be non-negative");s==null&&(s=e.length);while(o(i,s)<0)u=r((i+s)/2),o(t,e[u])<0?s=u:i=u+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return r==null&&(r=n),e.push(t),d(e,0,e.length-1,r)},s=function(e,t){var r,i;return t==null&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,v(e,0,t)):i=r,i},a=function(e,t,r){var i;return r==null&&(r=n),i=e[0],e[0]=t,v(e,0,r),i},u=function(e,t,r){var i;return r==null&&(r=n),e.length&&r(e[0],t)<0&&(i=[e[0],t],t=i[0],e[0]=i[1],v(e,0,r)),t},i=function(e,t){var i,s,o,u,a,f,l,c;t==null&&(t=n),f=function(){c=[];for(var t=0,n=r(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)c.push(t);return c}.apply(this).reverse(),l=[];for(s=0,u=f.length;s<u;s++)i=f[s],l.push(v(e,i,t));return l},p=function(e,t,r){var i;return r==null&&(r=n),i=e.indexOf(t),d(e,0,i,r),v(e,i,r)},c=function(e,t,r){var s,o,a,f,l;r==null&&(r=n),o=e.slice(0,t);if(!o.length)return o;i(o,r),l=e.slice(t);for(a=0,f=l.length;a<f;a++)s=l[a],u(o,s,r);return o.sort(r).reverse()},h=function(e,t,r){var o,u,a,c,h,p,d,v,m,g;r==null&&(r=n);if(t*10<=e.length){c=e.slice(0,t).sort(r);if(!c.length)return c;a=c[c.length-1],v=e.slice(t);for(h=0,d=v.length;h<d;h++)o=v[h],r(o,a)<0&&(f(c,o,0,null,r),c.pop(),a=c[c.length-1]);return c}i(e,r),g=[];for(u=p=0,m=l(t,e.length);0<=m?p<m:p>m;u=0<=m?++p:--p)g.push(s(e,r));return g},d=function(e,t,r,i){var s,o,u;i==null&&(i=n),s=e[r];while(r>t){u=r-1>>1,o=e[u];if(i(s,o)<0){e[r]=o,r=u;continue}break}return e[r]=s},v=function(e,t,r){var i,s,o,u,a;r==null&&(r=n),s=e.length,a=t,o=e[t],i=2*t+1;while(i<s)u=i+1,u<s&&!(r(e[i],e[u])<0)&&(i=u),e[t]=e[i],t=i,i=2*t+1;return e[t]=o,d(e,a,t,r)},e=function(){function e(e){this.cmp=e!=null?e:n,this.nodes=[]}return e.name="Heap",e.push=o,e.pop=s,e.replace=a,e.pushpop=u,e.heapify=i,e.nlargest=c,e.nsmallest=h,e.prototype.push=function(e){return o(this.nodes,e,this.cmp)},e.prototype.pop=function(){return s(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return this.nodes.indexOf(e)!==-1},e.prototype.replace=function(e){return a(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return u(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return i(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return p(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return this.nodes.length===0},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return t=new e,t.nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.remove=e.prototype.pop,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),(typeof t!="undefined"&&t!==null?t.exports:void 0)?t.exports=e:window.Heap=e}).call(this)}),e.define("/core/Util.js",function(e,t,n,r,i){function s(e){var t=[[e.x,e.y]];while(e.parent)e=e.parent,t.push([e.x,e.y]);return t.reverse()}function o(e,t){var n=s(e),r=s(t);return n.concat(r.reverse())}function u(e){var t,n=0,r,i,s,o;for(t=1;t<e.length;++t)r=e[t-1],i=e[t],s=r[0]-i[0],o=r[1]-i[1],n+=Math.sqrt(s*s+o*o);return n}function a(e,t,n,r){var i=Math.abs,s=[],o,u,a,f,l,c;a=i(n-e),f=i(r-t),o=e<n?1:-1,u=t<r?1:-1,l=a-f;for(;;){s.push([e,t]);if(e===n&&t===r)break;c=2*l,c>-f&&(l-=f,e+=o),c<a&&(l+=a,t+=u)}return s}function f(e,t){var n=t.length,r=t[0][0],i=t[0][1],s=t[n-1][0],o=t[n-1][1],u,f,l,c,h,p,d,v,m,g,y,b,w;u=r,f=i,h=t[1][0],p=t[1][1],d=[[u,f]];for(v=2;v<n;++v){g=t[v],l=g[0],c=g[1],y=a(u,f,l,c),w=!1;for(m=1;m<y.length;++m){b=y[m];if(!e.isWalkableAt(b[0],b[1])){w=!0,d.push([h,p]),u=h,f=p;break}}w||(h=l,p=c)}return d.push([s,o]),d}n.backtrace=s,n.biBacktrace=o,n.pathLength=u,n.getLine=a,n.smoothenPath=f}),e.define("/core/Heuristic.js",function(e,t,n,r,i){t.exports={manhattan:function(e,t){return e+t},euclidean:function(e,t){return Math.sqrt(e*e+t*t)},chebyshev:function(e,t){return Math.max(e,t)}}}),e.define("/finders/AStarFinder.js",function(e,t,n,r,i){function a(e){e=e||{},this.allowDiagonal=e.allowDiagonal,this.dontCrossCorners=e.dontCrossCorners,this.heuristic=e.heuristic||u.manhattan}var s=e("../core/Heap"),o=e("../core/Util"),u=e("../core/Heuristic");a.prototype.findPath=function(e,t,n,r,i){var u=new s(function(e,t){return e.f-t.f}),a=i.getNodeAt(e,t),f=i.getNodeAt(n,r),l=this.heuristic,c=this.allowDiagonal,h=this.dontCrossCorners,p=Math.abs,d=Math.SQRT2,v,m,g,y,b,w,E,S;a.g=0,a.f=0,u.push(a),a.opened=!0;while(!u.empty()){v=u.pop(),v.closed=!0;if(v===f)return o.backtrace(f);m=i.getNeighbors(v,c,h);for(y=0,b=m.length;y<b;++y){g=m[y];if(g.closed)continue;w=g.x,E=g.y,S=v.g+(w-v.x===0||E-v.y===0?1:d);if(!g.opened||S<g.g)g.g=S,g.h=g.h||l(p(w-n),p(E-r)),g.f=g.g+g.h,g.parent=v,g.opened?u.updateItem(g):(u.push(g),g.opened=!0)}}return[]},t.exports=a}),e.define("/finders/BestFirstFinder.js",function(e,t,n,r,i){function o(e){s.call(this,e);var t=this.heuristic;this.heuristic=function(e,n){return t(e,n)*1e6}}var s=e("./AStarFinder");o.prototype=new s,o.prototype.constructor=o,t.exports=o}),e.define("/finders/BreadthFirstFinder.js",function(e,t,n,r,i){function o(e){e=e||{},this.allowDiagonal=e.allowDiagonal,this.dontCrossCorners=e.dontCrossCorners}var s=e("../core/Util");o.prototype.findPath=function(e,t,n,r,i){var o=[],u=this.allowDiagonal,a=this.dontCrossCorners,f=i.getNodeAt(e,t),l=i.getNodeAt(n,r),c,h,p,d,v;o.push(f),f.opened=!0;while(o.length){p=o.shift(),p.closed=!0;if(p===l)return s.backtrace(l);c=i.getNeighbors(p,u,a);for(d=0,v=c.length;d<v;++d){h=c[d];if(h.closed||h.opened)continue;o.push(h),h.opened=!0,h.parent=p}}return[]},t.exports=o}),e.define("/finders/DijkstraFinder.js",function(e,t,n,r,i){function o(e){s.call(this,e),this.heuristic=function(e,t){return 0}}var s=e("./AStarFinder");o.prototype=new s,o.prototype.constructor=o,t.exports=o}),e.define("/finders/BiAStarFinder.js",function(e,t,n,r,i){function a(e){e=e||{},this.allowDiagonal=e.allowDiagonal,this.dontCrossCorners=e.dontCrossCorners,this.heuristic=e.heuristic||u.manhattan}var s=e("../core/Heap"),o=e("../core/Util"),u=e("../core/Heuristic");a.prototype.findPath=function(e,t,n,r,i){var u=function(e,t){return e.f-t.f},a=new s(u),f=new s(u),l=i.getNodeAt(e,t),c=i.getNodeAt(n,r),h=this.heuristic,p=this.allowDiagonal,d=this.dontCrossCorners,v=Math.abs,m=Math.SQRT2,g,y,b,w,E,S,x,T,N=1,C=2;l.g=0,l.f=0,a.push(l),l.opened=N,c.g=0,c.f=0,f.push(c),c.opened=C;while(!a.empty()&&!f.empty()){g=a.pop(),g.closed=!0,y=i.getNeighbors(g,p,d);for(w=0,E=y.length;w<E;++w){b=y[w];if(b.closed)continue;if(b.opened===C)return o.biBacktrace(g,b);S=b.x,x=b.y,T=g.g+(S-g.x===0||x-g.y===0?1:m);if(!b.opened||T<b.g)b.g=T,b.h=b.h||h(v(S-n),v(x-r)),b.f=b.g+b.h,b.parent=g,b.opened?a.updateItem(b):(a.push(b),b.opened=N)}g=f.pop(),g.closed=!0,y=i.getNeighbors(g,p,d);for(w=0,E=y.length;w<E;++w){b=y[w];if(b.closed)continue;if(b.opened===N)return o.biBacktrace(b,g);S=b.x,x=b.y,T=g.g+(S-g.x===0||x-g.y===0?1:m);if(!b.opened||T<b.g)b.g=T,b.h=b.h||h(v(S-e),v(x-t)),b.f=b.g+b.h,b.parent=g,b.opened?f.updateItem(b):(f.push(b),b.opened=C)}}return[]},t.exports=a}),e.define("/finders/BiBestFirstFinder.js",function(e,t,n,r,i){function o(e){s.call(this,e);var t=this.heuristic;this.heuristic=function(e,n){return t(e,n)*1e6}}var s=e("./BiAStarFinder");o.prototype=new s,o.prototype.constructor=o,t.exports=o}),e.define("/finders/BiBreadthFirstFinder.js",function(e,t,n,r,i){function o(e){e=e||{},this.allowDiagonal=e.allowDiagonal,this.dontCrossCorners=e.dontCrossCorners}var s=e("../core/Util");o.prototype.findPath=function(e,t,n,r,i){var o=i.getNodeAt(e,t),u=i.getNodeAt(n,r),a=[],f=[],l,c,h,p=this.allowDiagonal,d=this.dontCrossCorners,v=0,m=1,g,y;a.push(o),o.opened=!0,o.by=v,f.push(u),u.opened=!0,u.by=m;while(a.length&&f.length){h=a.shift(),h.closed=!0,l=i.getNeighbors(h,p,d);for(g=0,y=l.length;g<y;++g){c=l[g];if(c.closed)continue;if(c.opened){if(c.by===m)return s.biBacktrace(h,c);continue}a.push(c),c.parent=h,c.opened=!0,c.by=v}h=f.shift(),h.closed=!0,l=i.getNeighbors(h,p,d);for(g=0,y=l.length;g<y;++g){c=l[g];if(c.closed)continue;if(c.opened){if(c.by===v)return s.biBacktrace(c,h);continue}f.push(c),c.parent=h,c.opened=!0,c.by=m}}return[]},t.exports=o}),e.define("/finders/BiDijkstraFinder.js",function(e,t,n,r,i){function o(e){s.call(this,e),this.heuristic=function(e,t){return 0}}var s=e("./BiAStarFinder");o.prototype=new s,o.prototype.constructor=o,t.exports=o}),e.define("/finders/JumpPointFinder.js",function(e,t,n,r,i){function a(e){e=e||{},this.heuristic=e.heuristic||u.manhattan}var s=e("../core/Heap"),o=e("../core/Util"),u=e("../core/Heuristic");a.prototype.findPath=function(e,t,n,r,i){var u=this.openList=new s(function(e,t){return e.f-t.f}),a=this.startNode=i.getNodeAt(e,t),f=this.endNode=i.getNodeAt(n,r),l;this.grid=i,a.g=0,a.f=0,u.push(a),a.opened=!0;while(!u.empty()){l=u.pop(),l.closed=!0;if(l===f)return o.backtrace(f);this._identifySuccessors(l)}return[]},a.prototype._identifySuccessors=function(e){var t=this.grid,n=this.heuristic,r=this.openList,i=this.endNode.x,s=this.endNode.y,o,a,f,l,c,h=e.x,p=e.y,d,v,m,g,y,b,w,E=Math.abs,S=Math.max;o=this._findNeighbors(e);for(l=0,c=o.length;l<c;++l){a=o[l],f=this._jump(a[0],a[1],h,p);if(f){d=f[0],v=f[1],w=t.getNodeAt(d,v);if(w.closed)continue;y=u.euclidean(E(d-h),E(v-p)),b=e.g+y;if(!w.opened||b<w.g)w.g=b,w.h=w.h||n(E(d-i),E(v-s)),w.f=w.g+w.h,w.parent=e,w.opened?r.updateItem(w):(r.push(w),w.opened=!0)}}},a.prototype._jump=function(e,t,n,r){var i=this.grid,s=e-n,o=t-r,u,a;if(!i.isWalkableAt(e,t))return null;if(i.getNodeAt(e,t)===this.endNode)return[e,t];if(s!==0&&o!==0){if(i.isWalkableAt(e-s,t+o)&&!i.isWalkableAt(e-s,t)||i.isWalkableAt(e+s,t-o)&&!i.isWalkableAt(e,t-o))return[e,t]}else if(s!==0){if(i.isWalkableAt(e+s,t+1)&&!i.isWalkableAt(e,t+1)||i.isWalkableAt(e+s,t-1)&&!i.isWalkableAt(e,t-1))return[e,t]}else if(i.isWalkableAt(e+1,t+o)&&!i.isWalkableAt(e+1,t)||i.isWalkableAt(e-1,t+o)&&!i.isWalkableAt(e-1,t))return[e,t];if(s!==0&&o!==0){u=this._jump(e+s,t,e,t),a=this._jump(e,t+o,e,t);if(u||a)return[e,t]}return i.isWalkableAt(e+s,t)||i.isWalkableAt(e,t+o)?this._jump(e+s,t+o,e,t):null},a.prototype._findNeighbors=function(e){var t=e.parent,n=e.x,r=e.y,i=this.grid,s,o,u,a,f,l,c=[],h,p,d,v;if(t)s=t.x,o=t.y,f=(n-s)/Math.max(Math.abs(n-s),1),l=(r-o)/Math.max(Math.abs(r-o),1),f!==0&&l!==0?(i.isWalkableAt(n,r+l)&&c.push([n,r+l]),i.isWalkableAt(n+f,r)&&c.push([n+f,r]),(i.isWalkableAt(n,r+l)||i.isWalkableAt(n+f,r))&&c.push([n+f,r+l]),!i.isWalkableAt(n-f,r)&&i.isWalkableAt(n,r+l)&&c.push([n-f,r+l]),!i.isWalkableAt(n,r-l)&&i.isWalkableAt(n+f,r)&&c.push([n+f,r-l])):f===0?i.isWalkableAt(n,r+l)&&(i.isWalkableAt(n,r+l)&&c.push([n,r+l]),i.isWalkableAt(n+1,r)||c.push([n+1,r+l]),i.isWalkableAt(n-1,r)||c.push([n-1,r+l])):i.isWalkableAt(n+f,r)&&(i.isWalkableAt(n+f,r)&&c.push([n+f,r]),i.isWalkableAt(n,r+1)||c.push([n+f,r+1]),i.isWalkableAt(n,r-1)||c.push([n+f,r-1]));else{h=i.getNeighbors(e,!0);for(d=0,v=h.length;d<v;++d)p=h[d],c.push([p.x,p.y])}return c},t.exports=a}),e.define("/PathFinding.js",function(e,t,n,r,i){t.exports={Node:e("./core/Node"),Grid:e("./core/Grid"),Heap:e("./core/Heap"),Util:e("./core/Util"),Heuristic:e("./core/Heuristic"),AStarFinder:e("./finders/AStarFinder"),BestFirstFinder:e("./finders/BestFirstFinder"),BreadthFirstFinder:e("./finders/BreadthFirstFinder"),DijkstraFinder:e("./finders/DijkstraFinder"),BiAStarFinder:e("./finders/BiAStarFinder"),BiBestFirstFinder:e("./finders/BiBestFirstFinder"),BiBreadthFirstFinder:e("./finders/BiBreadthFirstFinder"),BiDijkstraFinder:e("./finders/BiDijkstraFinder"),JumpPointFinder:e("./finders/JumpPointFinder")}}),e("/PathFinding.js"),e("/PathFinding")}()'},function(t,e,n){"use strict";!function(){Raphael.fn.group=function(t,e){if(!(document.getElementsByTagName("svg").length>0))return{add:function(){}};var n;for(this.svg="http://www.w3.org/2000/svg",this.defs=document.getElementsByTagName("defs")[t],this.svgcanv=document.getElementsByTagName("svg")[t],this.group=document.createElementNS(this.svg,"g"),n=0;n<e.length;n++)this.group.appendChild(e[n].node);return this.svgcanv.appendChild(this.group),this.group.translate=function(t,e){this.setAttribute("transform","translate("+t+","+e+") scale("+this.getAttr("scale").x+","+this.getAttr("scale").y+")")},this.group.rotate=function(t,e,n){this.setAttribute("transform","translate("+this.getAttr("translate").x+","+this.getAttr("translate").y+") scale("+this.getAttr("scale").x+","+this.getAttr("scale").y+") rotate("+t+","+e+","+n+")")},this.group.scale=function(t,e){this.setAttribute("transform","scale("+t+","+e+") translate("+this.getAttr("translate").x+","+this.getAttr("translate").y+")")},this.group.push=function(t){this.appendChild(t.node)},this.group.getAttr=function(t){this.previous=this.getAttribute("transform")?this.getAttribute("transform"):"";var e,i,r,a=[];for(a=this.previous.split(" "),n=0;n<a.length;n++)if("t"==a[n].substring(0,1)){var o=a[n],s=[];s=o.split("("),o=s[1].substring(0,s[1].length-1),s=[],s=o.split(","),e=0===s.length?{x:0,y:0}:{x:s[0],y:s[1]}}else"r"===a[n].substring(0,1)?(o=a[n],s=o.split("("),o=s[1].substring(0,s[1].length-1),s=o.split(","),i=0===s.length?{x:0,y:0,z:0}:{x:s[0],y:s[1],z:s[2]}):"s"===a[n].substring(0,1)&&(o=a[n],s=o.split("("),o=s[1].substring(0,s[1].length-1),s=o.split(","),r=0===s.length?{x:1,y:1}:{x:s[0],y:s[1]});if(void 0===e&&(e={x:0,y:0}),void 0===i&&(i={x:0,y:0,z:0}),void 0===r&&(r={x:1,y:1}),"translate"==t)var c=e;else"rotate"==t?c=i:"scale"==t&&(c=r);return c},this.group.copy=function(t){this.copy=t.node.cloneNode(!0),this.appendChild(this.copy)},this.group}}(),function(){Raphael.el.isVisible=function(){return"none"!==this.node.style.display}}()},function(t,e,n){"use strict";document.ontouchmove=function(t){t.preventDefault()},Math.sign=function(){return this<0?-1:1}},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.util.Base64={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",ENCODED_VALS:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",ENCODED_VALS_WEBSAFE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.",encodeByteArray:function(t,e){r.default.util.Base64.init();for(var n=e?r.default.util.Base64.byteToCharMapWebSafe_:r.default.util.Base64.byteToCharMap_,i=[],a=0;a<t.length;a+=3){var o=t[a],s=a+1<t.length,c=s?t[a+1]:0,l=a+2<t.length,u=l?t[a+2]:0,h=o>>2,d=(3&o)<<4|c>>4,f=(15&c)<<2|u>>6,p=63&u;l||(p=64,s||(f=64)),i.push(n[h],n[d],n[f],n[p])}return i.join("")},encode:function(t,e){return r.default.util.Base64.encodeByteArray(r.default.util.Base64.stringToByteArray(t),e)},decode:function(t,e){r.default.util.Base64.init();for(var n=e?r.default.util.Base64.charToByteMapWebSafe_:r.default.util.Base64.charToByteMap_,i=[],a=0;a<t.length;){var o=n[t.charAt(a++)],s=a<t.length,c=s?n[t.charAt(a)]:0;++a;var l=a<t.length,u=l?n[t.charAt(a)]:0;++a;var h=a<t.length,d=h?n[t.charAt(a)]:0;if(++a,null==o||null==c||null==u||null==d)throw Error();var f=o<<2|c>>4;if(i.push(f),64!=u){var p=c<<4&240|u>>2;if(i.push(p),64!=d){var g=u<<6&192|d;i.push(g)}}}return i},stringToByteArray:function(t){for(var e=[],n=0,i=0;i<t.length;i++){for(var r=t.charCodeAt(i);r>255;)e[n++]=255&r,r>>=8;e[n++]=r}return e},init:function(){if(!r.default.util.Base64.byteToCharMap_){r.default.util.Base64.byteToCharMap_={},r.default.util.Base64.charToByteMap_={},r.default.util.Base64.byteToCharMapWebSafe_={},r.default.util.Base64.charToByteMapWebSafe_={};for(var t=0;t<r.default.util.Base64.ENCODED_VALS.length;t++)r.default.util.Base64.byteToCharMap_[t]=r.default.util.Base64.ENCODED_VALS.charAt(t),r.default.util.Base64.charToByteMap_[r.default.util.Base64.byteToCharMap_[t]]=t,r.default.util.Base64.byteToCharMapWebSafe_[t]=r.default.util.Base64.ENCODED_VALS_WEBSAFE.charAt(t),r.default.util.Base64.charToByteMapWebSafe_[r.default.util.Base64.byteToCharMapWebSafe_[t]]=t}}}},function(t,e,n){"use strict";/*!
 * JavaScript Debug - v0.4 - 6/22/2010
 * http://benalman.com/projects/javascript-debug-console-log/
 *
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 *
 * With lots of help from Paul Irish!
 * http://paulirish.com/
 */
window.debug=function(){function t(t){!n||!i&&o&&o.log||n.apply(r,t)}function e(t){return c>0?c>t:l.length+c<=t}for(var n,i,r=this,a=Array.prototype.slice,o=console,s={},c=9,l=["error","warn","info","debug","log"],u="assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace".split(" "),h=u.length,d=[];--h>=0;)!function(t){s[t]=function(){0!==c&&o&&o[t]&&o[t].apply(o,arguments)}}(u[h]);for(h=l.length;--h>=0;)!function(n,i){s[i]=function(){var s=a.call(arguments),c=[i].concat(s);d.push(c),t(c),o&&e(n)&&(o.firebug?o[i].apply(r,s):o[i]?o[i](s):o.log(s))}}(h,l[h]);return s.setLevel=function(t){c="number"==typeof t?t:9},s.setCallback=function(){var e=a.call(arguments),r=d.length,o=r;for(n=e.shift()||null,i="boolean"==typeof e[0]&&e.shift(),o-="number"==typeof e[0]?e.shift():r;o<r;)t(d[o++])},s}()},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.util.ArrayList=Class.extend({init:function(t){Array.isArray(t)?this.data=t:this.data=[]},clear:function(){return this.data=[],this},reverse:function(){return this.data.reverse(),this},getSize:function(){return this.data.length},isEmpty:function(){return 0===this.getSize()},last:function(){return this.data[this.data.length-1]},asArray:function(){return this.data},first:function(){return this.data.length>0?this.data[0]:null},get:function(t){return this.data[t]},add:function(t){return this.data.push(t),this},grep:function(t){return this.data=this.data.filter(t),this},find:function(t){var e=this.data.filter(t);return 0===e.length?null:e[0]},map:function(t){return this.data=this.data.map(t),this},unique:function(){return this.data=this.data.filter(function(t,e,n){return n.indexOf(t)===e}),this},addAll:function(t,e){if(!(t instanceof r.default.util.ArrayList))throw"Unable to handle unknown object type in ArrayList.addAll";return this.data=this.data.concat(t.data),e&&this.unique(),this},pop:function(){return this.removeElementAt(this.data.length-1)},push:function(t){this.add(t)},remove:function(t){var e=this.indexOf(t);return e>=0?this.removeElementAt(e):null},insertElementAt:function(t,e){return this.data.splice(e,0,t),this},removeElementAt:function(t){var e=this.data[t];return this.data.splice(t,1),e},removeAll:function(t){var e=this;return t instanceof r.default.util.ArrayList&&(t=t.data),Array.isArray(t)&&t.forEach(function(t){e.remove(t)}),this},indexOf:function(t){return this.data.indexOf(t)},contains:function(t){return-1!==this.indexOf(t)},sort:function(t){return"function"==typeof t?this.data.sort(t):this.data.sort(function(e,n){return e[t]<n[t]?-1:e[t]>n[t]?1:0}),this},clone:function(t){var e=new r.default.util.ArrayList;if(t)for(var n=0;n<this.data.length;n++)e.data.push(this.data[n].clone());else e.data=this.data.slice(0);return e},each:function(t,e){if(void 0!==e&&!0===e)for(var n=this.data.length-1;n>=0&&!1!==t(n,this.data[n]);n--);else for(var i=0;i<this.data.length&&!1!==t(i,this.data[i]);i++);return this},overwriteElementAt:function(t,e){return this.data[e]=t,this},getPersistentAttributes:function(){return{data:this.data}},setPersistentAttributes:function(t){this.data=t.data}}),r.default.util.ArrayList.EMPTY_LIST=new r.default.util.ArrayList},function(t,e,n){"use strict";Raphael.fn.polygon=function(t){for(var e=["M"],n=t.split(" "),i=0;i<n.length;i++){for(var r=n[i].split(","),a=0;a<r.length;a++){var o=parseFloat(r[a]);isNaN(o)||e.push(o)}0==i&&e.push("L")}return e.push("Z"),this.path(e)}},function(t,e,n){"use strict";var i=n(0);(function(t){return t&&t.__esModule?t:{default:t}})(i).default.util.spline.Spline=Class.extend({NAME:"draw2d.util.spline.Spline",init:function(){},generate:function(t,e){throw"inherit classes must implement the method 'draw2d.util.spline.Spline.generate()'"}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.util.spline.CubicSpline=r.default.util.spline.Spline.extend({NAME:"draw2d.util.spline.CubicSpline",init:function(){this._super()},generate:function(t,e){var n=new r.default.util.ArrayList;n.add(t.get(0)),n.addAll(t),n.add(t.get(t.getSize()-1));var i=n.getSize(),a=new r.default.util.ArrayList;a.add(t.get(0)),a.add(this.p(1,0,n));for(var o=1;o<i-2;o++)for(var s=1;s<=e;s++)a.add(this.p(o,s/e,n));return a.add(t.get(t.getSize()-1)),a},p:function(t,e,n){for(var i=0,a=0,o=t-1,s=-2;s<=1;s++){var c=this.blend(s,e),l=n.get(o++);i+=c*l.x,a+=c*l.y}return new r.default.geo.Point(i,a)},blend:function(t,e){return-2===t?(((3-e)*e-3)*e+1)/6:-1===t?((3*e-6)*e*e+4)/6:0===t?(((-3*e+3)*e+3)*e+1)/6:e*e*e/6}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.util.spline.CatmullRomSpline=r.default.util.spline.CubicSpline.extend({NAME:"draw2d.util.spline.CatmullRomSpline",init:function(){this._super()},blend:function(t,e){return-2==t?((2-e)*e-1)*e/2:-1==t?((3*e-5)*e*e+2)/2:0==t?((-3*e+4)*e+1)*e/2:(e-1)*e*e/2}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.util.spline.BezierSpline=r.default.util.spline.Spline.extend({NAME:"draw2d.util.spline.BezierSpline",init:function(){this._super()},generate:function(t,e){var n=t.getSize(),i=new r.default.util.ArrayList;i.add(this.p(0,0,t));for(var a=0;a<n-3;a+=3)for(var o=1;o<=e;o++)i.add(this.p(a,o/e,t));return i},p:function(t,e,n){for(var i=0,a=0,o=t,s=0;s<=3;s++){var c=this.blend(s,e),l=n.get(o++);i+=c*l.x,a+=c*l.y}return new r.default.geo.Point(i,a)},blend:function(t,e){return 0==t?(1-e)*(1-e)*(1-e):1==t?3*e*(1-e)*(1-e):2==t?3*e*e*(1-e):e*e*e}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.geo.PositionConstants=function(){},r.default.geo.PositionConstants.NORTH=1,r.default.geo.PositionConstants.SOUTH=4,r.default.geo.PositionConstants.WEST=8,r.default.geo.PositionConstants.EAST=16},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.geo.Point=Class.extend({NAME:"draw2d.geo.Point",init:function(t,e){t instanceof r.default.geo.Point?(this.x=t.x,this.y=t.y):isNaN(parseFloat(t.x))||isNaN(parseFloat(t.y))?(this.x=t,this.y=e):(this.x=t.x,this.y=t.y),this.bx=null,this.by=null,this.bw=null,this.bh=null},setBoundary:function(t,e,n,i){return t instanceof r.default.geo.Rectangle?(this.bx=t.x,this.by=t.y,this.bw=t.w,this.bh=t.h):(this.bx=t,this.by=e,this.bw=n,this.bh=i),this.adjustBoundary(),this},adjustBoundary:function(){if(null!==this.bx)return this.x=Math.min(Math.max(this.bx,this.x),this.bw),this.y=Math.min(Math.max(this.by,this.y),this.bh),this},translate:function(t,e){return this.x+=t,this.y+=e,this.adjustBoundary(),this},getX:function(){return this.x},getY:function(){return this.y},setX:function(t){return this.x=t,this.adjustBoundary(),this},setY:function(t){return this.y=t,this.adjustBoundary(),this},setPosition:function(t,e){return t instanceof r.default.geo.Point?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e),this.adjustBoundary(),this},getPosition:function(t){var e=t.x-this.x,n=t.y-this.y;return Math.abs(e)>Math.abs(n)?e<0?r.default.geo.PositionConstants.WEST:r.default.geo.PositionConstants.EAST:n<0?r.default.geo.PositionConstants.NORTH:r.default.geo.PositionConstants.SOUTH},equals:function(t){return this.x===t.x&&this.y===t.y},distance:function(t){return Math.sqrt((this.x-t.x)*(this.x-t.x)+(this.y-t.y)*(this.y-t.y))},getDistance:function(t){return this.distance(t)},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},translated:function(t,e){var n=new r.default.geo.Point(t,e);return new r.default.geo.Point(this.x+n.x,this.y+n.y)},scale:function(t){return this.x*=t,this.y*=t,this.adjustBoundary(),this},scaled:function(t){return new r.default.geo.Point(this.x*t,this.y*t)},getScaled:function(t){return this.scaled(t)},getPersistentAttributes:function(){return{x:this.x,y:this.y}},setPersistentAttributes:function(t){this.x=t.x,this.y=t.y},subtract:function(t){return new r.default.geo.Point(this.x-t.x,this.y-t.y)},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lerp:function(t,e){return new r.default.geo.Point(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)},clone:function(){return new r.default.geo.Point(this.x,this.y)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.geo.Rectangle=r.default.geo.Point.extend({NAME:"draw2d.geo.Rectangle",init:function(t,e,n,i){t instanceof r.default.geo.Rectangle?(e=t.y,n=t.w,i=t.h,t=t.x):"number"==typeof t.x&&"number"==typeof t.y?(e=t.y,n=t.w|t.width,i=t.h|t.height,t=t.x):"number"==typeof t.top&&"number"==typeof t.left&&(e=t.top,n=t.w|t.width,i=t.h|t.height,t=t.left),this._super(t,e),this.w=n,this.h=i},adjustBoundary:function(){null!==this.bx&&(this.x=Math.min(Math.max(this.bx,this.x),this.bw-this.w),this.y=Math.min(Math.max(this.by,this.y),this.bh-this.h),this.w=Math.min(this.w,this.bw),this.h=Math.min(this.h,this.bh))},resize:function(t,e){return this.w+=t,this.h+=e,this.adjustBoundary(),this},scale:function(t,e){return this.w+=t,this.h+=e,this.x-=t/2,this.y-=e/2,this.adjustBoundary(),this},translate:function(t,e){var n=new r.default.geo.Point(t,e);return this.x+=n.x,this.y+=n.y,this.adjustBoundary(),this},translated:function(t,e){var n=new r.default.geo.Point(t,e);return new r.default.geo.Rectangle(this.x+n.x,this.y+n.y,this.w,this.h)},setBounds:function(t){return this.setPosition(t.x,t.y),this.w=t.w,this.h=t.h,this},isEmpty:function(){return this.w<=0||this.h<=0},getWidth:function(){return this.w},setWidth:function(t){return this.w=t,this.adjustBoundary(),this},getHeight:function(){return this.h},setHeight:function(t){return this.h=t,this.adjustBoundary(),this},getLeft:function(){return this.x},getRight:function(){return this.x+this.w},getTop:function(){return this.y},getBottom:function(){return this.y+this.h},getTopLeft:function(){return new r.default.geo.Point(this.x,this.y)},getTopCenter:function(){return new r.default.geo.Point(this.x+this.w/2,this.y)},getTopRight:function(){return new r.default.geo.Point(this.x+this.w,this.y)},getCenterLeft:function(){return new r.default.geo.Point(this.x,this.y+this.h/2)},getBottomLeft:function(){return new r.default.geo.Point(this.x,this.y+this.h)},getBottomCenter:function(){return new r.default.geo.Point(this.x+this.w/2,this.y+this.h)},getCenter:function(){return new r.default.geo.Point(this.x+this.w/2,this.y+this.h/2)},getBottomRight:function(){return new r.default.geo.Point(this.x+this.w,this.y+this.h)},getVertices:function(){var t=new r.default.util.ArrayList;return t.add(this.getTopLeft()),t.add(this.getTopRight()),t.add(this.getBottomRight()),t.add(this.getBottomLeft()),t},moveInside:function(t){var e=new r.default.geo.Rectangle(t.x,t.y,t.w,t.h);return e.x=Math.max(e.x,this.x),e.y=Math.max(e.y,this.y),e.w<this.w?e.x=Math.min(e.x+e.w,this.x+this.w)-e.w:e.x=this.x,e.h<this.h?e.y=Math.min(e.y+e.h,this.y+this.h)-e.h:e.y=this.y,e},getDistance:function(t){var e=this.x,n=this.y,i=this.w,a=this.h,o=t.getX(),s=t.getY(),c=1,l=1;t instanceof r.default.geo.Rectangle&&(c=t.getWidth(),l=t.getHeight());var u=9;if(e+i<=o)u=n+a<=s?0:n>=s+l?6:7;else if(e>=o+c)u=n+a<=s?2:n>=s+l?4:3;else if(n+a<=s)u=1;else{if(!(n>=s+l))return 0;u=5}switch(u){case 0:return e=e+i-o,n=n+a-s,-(e+n);case 1:return-(n+a-s);case 2:return e=o+c-e,n=n+a-s,-(e+n);case 3:return-(o+c-e);case 4:return e=o+c-e,n=s+l-n,-(e+n);case 5:return-(s+l-n);case 6:return e=e+i-o,n=s+l-n,-(e+n);case 7:return-(e+i-o)}throw"Unknown data type of parameter for distance calculation in draw2d.geo.Rectangle.getDistance(..)"},determineOctant:function(t){var e=this.x+3,n=this.y+3,i=this.w-6,a=this.h-6,o=t.x,s=t.y,c=2,l=2;t instanceof r.default.geo.Rectangle&&(c=t.w,l=t.h);return o+c<=e?s+l<=n?0:s>=n+a?6:7:o>=e+i?s+l<=n?2:s>=n+a?4:3:s+l<=n?1:s>=n+a?5:8},getDirection:function(t){var e=this.getTopLeft();switch(this.determineOctant(t)){case 0:return e.x-t.x<e.y-t.y?r.default.geo.Rectangle.DIRECTION_UP:r.default.geo.Rectangle.DIRECTION_LEFT;case 1:return r.default.geo.Rectangle.DIRECTION_UP;case 2:return e=this.getTopRight(),t.x-e.x<e.y-t.y?r.default.geo.Rectangle.DIRECTION_UP:r.default.geo.Rectangle.DIRECTION_RIGHT;case 3:return r.default.geo.Rectangle.DIRECTION_RIGHT;case 4:return e=this.getBottomRight(),t.x-e.x<t.y-e.y?r.default.geo.Rectangle.DIRECTION_DOWN:r.default.geo.Rectangle.DIRECTION_RIGHT;case 5:return r.default.geo.Rectangle.DIRECTION_DOWN;case 6:return e=this.getBottomLeft(),e.x-t.x<t.y-e.y?r.default.geo.Rectangle.DIRECTION_DOWN:r.default.geo.Rectangle.DIRECTION_LEFT;case 7:return r.default.geo.Rectangle.DIRECTION_LEFT;case 8:return t.y>this.y?r.default.geo.Rectangle.DIRECTION_DOWN:r.default.geo.Rectangle.DIRECTION_UP}return r.default.geo.Rectangle.DIRECTION_UP},equals:function(t){return this.x==t.x&&this.y==t.y&&this.w==t.w&&this.h==t.h},hitTest:function(t,e){t instanceof r.default.geo.Point&&(e=t.y,t=t.x);var n=this.x+this.getWidth(),i=this.y+this.getHeight();return t>=this.x&&t<=n&&e>=this.y&&e<=i},isInside:function(t){return t.hitTest(this.getTopLeft())&&t.hitTest(this.getTopRight())&&t.hitTest(this.getBottomLeft())&&t.hitTest(this.getBottomRight())},contains:function(t){return this.hitTest(t.getTopLeft())&&this.hitTest(t.getTopRight())&&this.hitTest(t.getBottomLeft())&&this.hitTest(t.getBottomRight())},intersects:function(t){var e=t.x,n=t.y,i=t.x+t.w,r=t.y+t.h,a=this.x,o=this.y,s=this.x+this.w,c=this.y+this.h;return Math.max(0,Math.min(i,s)-Math.max(e,a))*Math.max(0,Math.min(r,c)-Math.max(n,o))!=0},merge:function(t){var e=Math.max(t.getRight(),this.getRight()),n=Math.max(t.getBottom(),this.getBottom());return this.setPosition(Math.min(this.x,t.x),Math.min(this.y,t.y)),this.w=e-this.x,this.h=n-this.y,this},intersectionWithLine:function(t,e){var n=new r.default.util.ArrayList,i=this.getVertices();i.add(i.first());for(var a=i.first(),o=null,s=1;s<5;s++)o=i.get(s),a=r.default.shape.basic.Line.intersection(t,e,a,o),null!==a&&n.add(a),a=o;return n},clone:function(){return new r.default.geo.Rectangle(this.x,this.y,this.w,this.h)},toJSON:function(){return{width:this.w,height:this.h,x:this.x,y:this.y}}}),r.default.geo.Rectangle.DIRECTION_UP=0,r.default.geo.Rectangle.DIRECTION_RIGHT=1,r.default.geo.Rectangle.DIRECTION_DOWN=2,r.default.geo.Rectangle.DIRECTION_LEFT=3},function(t,e,n){"use strict";var i=n(0);(function(t){return t&&t.__esModule?t:{default:t}})(i).default.geo.Util={insetPoint:function(t,e,n){if(t.equals(e))return t;var i=t.x-e.x,r=t.y-e.y,a=Math.sqrt(i*i+r*r),o=Math.min(a/2,n);return{x:e.x+i/a*(a-o),y:e.y+r/a*(a-o)}}}},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.geo.Ray=r.default.geo.Point.extend({NAME:"draw2d.geo.Ray",init:function(t,e){this._super(t,e)},isHorizontal:function(){return 0!=this.x},similarity:function(t){return Math.abs(this.dot(t))},getAveraged:function(t){return new r.default.geo.Ray((this.x+t.x)/2,(this.y+t.y)/2)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.geo.Line={inverseLerp:function(t,e,n,i,r,a){var o=Math.abs(n-t),s=Math.abs(n-r);return 0===o&&(o=Math.abs(i-e),s=Math.abs(i-a),0==o)?1:s/o},pointProjection:function(t,e,n,i,a,o){var s=new r.default.geo.Point(0,0);t==n&&e==i&&(t-=1e-5);var c=(a-t)*(n-t)+(o-e)*(i-e);c/=Math.pow(n-t,2)+Math.pow(i-e,2),s.x=t+c*(n-t),s.y=e+c*(i-e);var l,u,h,d;return l=Math.min(t,n),u=Math.max(t,n),h=Math.min(e,i),d=Math.max(e,i),s.x>=l&&s.x<=u&&s.y>=h&&s.y<=d?s:null},distance:function(t,e,n,i,r,a){n-=t,i-=e,r-=t,a-=e;var o,s=r*n+a*i;s<=0?o=0:(r=n-r,a=i-a,s=r*n+a*i,o=s<=0?0:s*s/(n*n+i*i));var c=r*r+a*a-o;return c<0&&(c=0),Math.sqrt(c)}}},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandType=Class.extend({NAME:"draw2d.command.CommandType",init:function(t){this.policy=t},getPolicy:function(){return this.policy}}),r.default.command.CommandType.DELETE="DELETE",r.default.command.CommandType.MOVE="MOVE",r.default.command.CommandType.CONNECT="CONNECT",r.default.command.CommandType.MOVE_BASEPOINT="MOVE_BASEPOINT",r.default.command.CommandType.MOVE_VERTEX="MOVE_VERTEX",r.default.command.CommandType.MOVE_VERTICES="MOVE_VERTICES",r.default.command.CommandType.MOVE_GHOST_VERTEX="MOVE_GHOST_VERTEX",r.default.command.CommandType.RESIZE="RESIZE",r.default.command.CommandType.RESET="RESET",r.default.command.CommandType.ROTATE="ROTATE"},function(t,e,n){"use strict";var i=n(0);(function(t){return t&&t.__esModule?t:{default:t}})(i).default.command.Command=Class.extend({NAME:"draw2d.command.Command",init:function(t){this.label=t},getLabel:function(){return this.label},canExecute:function(){return!0},execute:function(){},cancel:function(){},undo:function(){},redo:function(){}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandCollection=r.default.command.Command.extend({NAME:"draw2d.command.CommandCollection",init:function(t){this._super(void 0===t?r.default.Configuration.i18n.command.collection:t),this.commands=new r.default.util.ArrayList},getLabel:function(){if(1===this.commands.getSize())return this.commands.first().getLabel();if(this.commands.getSize()>1){var t=this.commands.clone().map(function(t){return t.getLabel()});if(t.unique(),1===t.getSize())return t.first()}return this._super()},add:function(t){this.commands.add(t)},canExecute:function(){var t=!1;return this.commands.each(function(e,n){t=t||n.canExecute()}),t},execute:function(){this.commands.each(function(t,e){e.execute()})},redo:function(){this.commands.each(function(t,e){e.redo()})},undo:function(){this.commands.reverse(),this.commands.each(function(t,e){e.undo()}),this.commands.reverse()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandStack=Class.extend({NAME:"draw2d.command.CommandStack",init:function(){this.undostack=[],this.redostack=[],this.maxundo=50,this.transactionCommand=null,this.eventListeners=new r.default.util.ArrayList},setUndoLimit:function(t){return this.maxundo=t,this},markSaveLocation:function(){return this.undostack=[],this.redostack=[],this.notifyListeners(new r.default.command.Command,r.default.command.CommandStack.POST_EXECUTE),this},execute:function(t){if(void 0===t)throw"Missing parameter [command] for method call CommandStack.execute";if(null!==t&&!1!==t.canExecute())return null!==this.transactionCommand?void this.transactionCommand.add(t):(this.notifyListeners(t,r.default.command.CommandStack.PRE_EXECUTE),this.undostack.push(t),t.execute(),this.redostack=[],this.undostack.length>this.maxundo&&(this.undostack=this.undostack.slice(this.undostack.length-this.maxundo)),this.notifyListeners(t,r.default.command.CommandStack.POST_EXECUTE),this)},startTransaction:function(t){return this.transactionCommand=new r.default.command.CommandCollection(t),this},commitTransaction:function(){if(null!==this.transactionCommand){var t=this.transactionCommand;return this.transactionCommand=null,1===t.commands.getSize()?this.execute(t.commands.first()):this.execute(t),this}},undo:function(){var t=this.undostack.pop();return t&&(this.notifyListeners(t,r.default.command.CommandStack.PRE_UNDO),this.redostack.push(t),t.undo(),this.notifyListeners(t,r.default.command.CommandStack.POST_UNDO)),this},redo:function(){var t=this.redostack.pop();return t&&(this.notifyListeners(t,r.default.command.CommandStack.PRE_REDO),this.undostack.push(t),t.redo(),this.notifyListeners(t,r.default.command.CommandStack.POST_REDO)),this},getRedoLabel:function(){if(0===this.redostack.length)return"";var t=this.redostack[this.redostack.length-1];return t?t.getLabel():""},getUndoLabel:function(){if(0===this.undostack.length)return"";var t=this.undostack[this.undostack.length-1];return t?t.getLabel():""},canRedo:function(){return this.redostack.length>0},canUndo:function(){return this.undostack.length>0},addEventListener:function(t){if(t instanceof r.default.command.CommandStackEventListener)this.eventListeners.add(t);else if("function"==typeof t.stackChanged)this.eventListeners.add(t);else{if("function"!=typeof t)throw"Object doesn't implement required callback interface [draw2d.command.CommandStackListener]";this.eventListeners.add({stackChanged:t})}return this},removeEventListener:function(t){for(var e=this.eventListeners.getSize(),n=0;n<e;n++){var i=this.eventListeners.get(n);if(i===t||i.stackChanged===t)return void this.eventListeners.remove(i)}return this},notifyListeners:function(t,e){for(var n=new r.default.command.CommandStackEvent(this,t,e),i=this.eventListeners.getSize(),a=0;a<i;a++)this.eventListeners.get(a).stackChanged(n)}}),r.default.command.CommandStack.PRE_EXECUTE=1,r.default.command.CommandStack.PRE_REDO=2,r.default.command.CommandStack.PRE_UNDO=4,r.default.command.CommandStack.POST_EXECUTE=8,r.default.command.CommandStack.POST_REDO=16,r.default.command.CommandStack.POST_UNDO=32,r.default.command.CommandStack.POST_INIT=64,r.default.command.CommandStack.POST_MASK=r.default.command.CommandStack.POST_EXECUTE|r.default.command.CommandStack.POST_UNDO|r.default.command.CommandStack.POST_REDO,r.default.command.CommandStack.PRE_MASK=r.default.command.CommandStack.PRE_EXECUTE|r.default.command.CommandStack.PRE_UNDO|r.default.command.CommandStack.PRE_REDO},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandStackEvent=Class.extend({NAME:"draw2d.command.CommandStackEvent",init:function(t,e,n){this.stack=t,this.command=e,this.details=n},getStack:function(){return this.stack},getCommand:function(){return this.command},getDetails:function(){return this.details},isPostChangeEvent:function(){return 0!=(this.getDetails()&r.default.command.CommandStack.POST_MASK)},isPreChangeEvent:function(){return 0!=(this.getDetails()&r.default.command.CommandStack.PRE_MASK)}})},function(t,e,n){"use strict";var i=n(0);(function(t){return t&&t.__esModule?t:{default:t}})(i).default.command.CommandStackEventListener=Class.extend({NAME:"draw2d.command.CommandStackEventListener",init:function(){},stackChanged:function(t){}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandMove=r.default.command.Command.extend({NAME:"draw2d.command.CommandMove",init:function(t,e,n){this._super(r.default.Configuration.i18n.command.moveShape),this.figure=t,void 0===e?(this.oldX=t.getX(),this.oldY=t.getY()):(this.oldX=e,this.oldY=n)},setStartPosition:function(t,e){this.oldX=t,this.oldY=e},setPosition:function(t,e){this.newX=t,this.newY=e},canExecute:function(){return this.newX!=this.oldX||this.newY!=this.oldY},execute:function(){this.redo()},undo:function(){this.figure.setPosition(this.oldX,this.oldY)},redo:function(){this.figure.setPosition(this.newX,this.newY)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandAttr=r.default.command.Command.extend({NAME:"draw2d.command.CommandAttr",init:function(t,e){var n=this;this._super(r.default.Configuration.i18n.command.changeAttributes),this.figure=t,this.newAttributes=e,this.oldAttributes={},Object.keys(e).forEach(function(e){n.oldAttributes[e]=t.attr(e)})},canExecute:function(){return!0},execute:function(){this.redo()},undo:function(){this.figure.attr(this.oldAttributes)},redo:function(){this.figure.attr(this.newAttributes)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandMoveLine=r.default.command.Command.extend({NAME:"draw2d.command.CommandMoveLine",init:function(t){this._super(r.default.Configuration.i18n.command.moveLine),this.line=t,this.dx=0,this.dy=0},setTranslation:function(t,e){this.dx=t,this.dy=e},canExecute:function(){return 0!==this.dx&&0!==this.dy},execute:function(){this.redo()},undo:function(){var t=this;this.line.getVertices().each(function(e,n){n.translate(-t.dx,-t.dy)}),this.line.svgPathString=null,this.line.setPosition(this.line.getStartPoint())},redo:function(){var t=this;this.line.getVertices().each(function(e,n){n.translate(t.dx,t.dy)}),this.line.svgPathString=null,this.line.setPosition(this.line.getStartPoint())}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandMoveConnection=r.default.command.Command.extend({NAME:"draw2d.command.CommandMoveConnection",init:function(t){this._super(r.default.Configuration.i18n.command.moveLine),this.line=t,this.dx=0,this.dy=0},setTranslation:function(t,e){this.dx=t,this.dy=e},canExecute:function(){return 0!==this.dx&&0!==this.dy},execute:function(){this.redo()},undo:function(){var t=this;this.line.getVertices().each(function(e,n){n.translate(-t.dx,-t.dy)}),this.line.svgPathString=null,this.line.setPosition(this.line.getStartPoint())},redo:function(){var t=this;this.line.getVertices().each(function(e,n){n.translate(t.dx,t.dy)}),this.line.svgPathString=null,this.line.setPosition(this.line.getStartPoint())}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandMoveVertex=r.default.command.Command.extend({NAME:"draw2d.command.CommandMoveVertex",init:function(t){this._super(r.default.Configuration.i18n.command.moveVertex),this.line=t,this.index=-1,this.newPoint=null},setIndex:function(t){this.index=t,this.origPoint=this.line.getVertices().get(this.index).clone()},updatePosition:function(t,e){this.newPoint=new r.default.geo.Point(t,e)},canExecute:function(){return-1!==this.index&&null!==this.newPoint},execute:function(){this.redo()},undo:function(){this.line.setVertex(this.index,this.origPoint.x,this.origPoint.y)},redo:function(){this.line.setVertex(this.index,this.newPoint.x,this.newPoint.y)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandMoveVertices=r.default.command.Command.extend({NAME:"draw2d.command.CommandMoveVertices",init:function(t){this._super(r.default.Configuration.i18n.command.moveVertices),this.line=t,this.oldVertices=t.getVertices().clone(!0),this.newVertices=null},updateVertices:function(t){this.newVertices=t},canExecute:function(){return null!==this.newVertices},execute:function(){this.redo()},undo:function(){this.line.setVertices(this.oldVertices)},redo:function(){this.line.setVertices(this.newVertices)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandResize=r.default.command.Command.extend({NAME:"draw2d.command.CommandResize",init:function(t,e,n){this._super(r.default.Configuration.i18n.command.resizeShape),this.figure=t,void 0===e?(this.oldWidth=t.getWidth(),this.oldHeight=t.getHeight()):(this.oldWidth=e,this.oldHeight=n)},setDimension:function(t,e){this.newWidth=0|t,this.newHeight=0|e},canExecute:function(){return this.newWidth!=this.oldWidth||this.newHeight!=this.oldHeight},execute:function(){this.redo()},undo:function(){this.figure.setDimension(this.oldWidth,this.oldHeight)},redo:function(){this.figure.setDimension(this.newWidth,this.newHeight)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandRotate=r.default.command.Command.extend({NAME:"draw2d.command.CommandRotate",init:function(t,e){this._super(r.default.Configuration.i18n.command.rotateShape),this.figure=t,this.oldAngle=t.getRotationAngle(),this.newAngle=e},canExecute:function(){return this.oldAngle!=this.newAngle},execute:function(){this.redo()},undo:function(){this.rotate(this.oldAngle)},redo:function(){this.rotate(this.newAngle)},rotate:function(t){var e=this.figure.getWidth(),n=this.figure.getHeight();this.figure.setRotationAngle(t),this.figure.setDimension(n,e),this.figure.portRelayoutRequired=!0}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandConnect=r.default.command.Command.extend({NAME:"draw2d.command.CommandConnect",init:function(t,e,n){this._super(r.default.Configuration.i18n.command.connectPorts),this.canvas=e.getCanvas(),this.source=t,this.target=e,this.connection=null,this.dropTarget=n},setConnection:function(t){this.connection=t},getConnection:function(){return this.connection},execute:function(){var t=this,e=function(e){t.connection=e,t.connection.setSource(t.source),t.connection.setTarget(t.target),t.canvas.add(t.connection)};if(null===this.connection){var n=r.default.Configuration.factory.createConnection(this.source,this.target,e,this.dropTarget);if(void 0===n)return;this.connection=n}e(this.connection)},redo:function(){this.canvas.add(this.connection),this.connection.reconnect()},undo:function(){this.canvas.remove(this.connection)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandReconnect=r.default.command.Command.extend({NAME:"draw2d.command.CommandReconnect",init:function(t){this._super(r.default.Configuration.i18n.command.connectPorts),this.con=t,this.oldSourcePort=t.getSource(),this.oldTargetPort=t.getTarget()},canExecute:function(){return!0},setNewPorts:function(t,e){this.newSourcePort=t,this.newTargetPort=e},setIndex:function(t){},updatePosition:function(t,e){},execute:function(){this.redo()},cancel:function(){this.con.setSource(this.oldSourcePort),this.con.setTarget(this.oldTargetPort),this.con.routingRequired=!0,this.con.repaint()},undo:function(){this.con.setSource(this.oldSourcePort),this.con.setTarget(this.oldTargetPort),this.con.routingRequired=!0,this.con.repaint()},redo:function(){this.con.setSource(this.newSourcePort),this.con.setTarget(this.newTargetPort),this.con.routingRequired=!0,this.con.repaint()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandDelete=r.default.command.Command.extend({NAME:"draw2d.command.CommandDelete",init:function(t){this._super(r.default.Configuration.i18n.command.deleteShape),this.parent=t.getParent(),this.figure=t,this.canvas=t.getCanvas(),this.connections=null,this.removedParentEntry=null,this.indexOfChild=-1},canExecute:function(){return null!==this.figure.getCanvas()},execute:function(){this.redo()},undo:function(){null!==this.parent?(this.parent.add(this.removedParentEntry.figure,this.removedParentEntry.locator,this.indexOfChild),this.canvas.setCurrentSelection(this.parent)):(this.canvas.add(this.figure),this.canvas.setCurrentSelection(this.figure)),this.figure instanceof r.default.Connection&&this.figure.reconnect();for(var t=0;t<this.connections.getSize();++t)this.canvas.add(this.connections.get(t)),this.connections.get(t).reconnect()},redo:function(){this.canvas.setCurrentSelection(null),null===this.connections&&(this.figure instanceof r.default.shape.node.Node?this.connections=this.figure.getConnections():this.connections=new r.default.util.ArrayList);for(var t=0;t<this.connections.getSize();++t)this.canvas.remove(this.connections.get(t));null!==this.parent?(this.indexOfChild=this.parent.getChildren().indexOf(this.figure),this.removedParentEntry=this.parent.remove(this.figure)):this.canvas.remove(this.figure)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandDeleteGroup=r.default.command.Command.extend({NAME:"draw2d.command.CommandDeleteGroup",init:function(t){this._super(r.default.Configuration.i18n.command.deleteShape),this.parent=t.getParent(),this.group=t,this.canvas=t.getCanvas(),this.removedParentEntry=null,this.indexOfChild=-1,this.batchDelete=null},canExecute:function(){for(var t=this.group.getAssignedFigures(),e=0;e<t.getSize();e++)if(!1===t.get(e).isDeleteable())return!1;return null!==this.group.getCanvas()},execute:function(){this.redo()},undo:function(){this.batchDelete.undo(),this.canvas.setCurrentSelection(this.group)},redo:function(){if(null===this.batchDelete){this.batchDelete=new r.default.command.CommandCollection,this.batchDelete.add(new r.default.command.CommandUngroup(this.canvas,this.group));for(var t=this.group.getAssignedFigures(),e=0;e<t.getSize();e++){var n=t.get(e),i=n.createCommand(new r.default.command.CommandType(r.default.command.CommandType.DELETE));this.batchDelete.add(i)}}this.batchDelete.execute()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandAdd=r.default.command.Command.extend({NAME:"draw2d.command.CommandAdd",init:function(t,e,n,i){this._super(r.default.Configuration.i18n.command.addShape),this.figure=e,this.canvas=t,this.pos=new r.default.geo.Point(n,i)},canExecute:function(){return null===this.figure.getCanvas()},execute:function(){this.canvas.add(this.figure,this.pos.x,this.pos.y)},redo:function(){this.execute()},undo:function(){this.canvas.remove(this.figure)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandGroup=r.default.command.Command.extend({NAME:"draw2d.command.CommandGroup",init:function(t,e){this._super(r.default.Configuration.i18n.command.groupShapes),e instanceof r.default.Selection?this.figures=e.getAll():this.figures=e,this.figures.grep(function(t){return null===t.getComposite()}),this.canvas=t,this.group=new r.default.shape.composite.Group},canExecute:function(){return!this.figures.isEmpty()},execute:function(){this.redo()},undo:function(){var t=this;this.figures.each(function(e,n){t.group.unassignFigure(n)}),this.canvas.remove(this.group),this.canvas.setCurrentSelection(this.figures)},redo:function(){var t=this;this.figures.each(function(e,n){t.group.assignFigure(n)}),this.canvas.add(this.group),this.canvas.setCurrentSelection(this.group)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandUngroup=r.default.command.Command.extend({NAME:"draw2d.command.CommandUngroup",init:function(t,e){this._super(r.default.Configuration.i18n.command.ungroupShapes),e instanceof r.default.Selection?this.group=e.getAll().first():this.group=e,this.canvas=t,this.figures=this.group.getAssignedFigures().clone()},canExecute:function(){return!this.figures.isEmpty()},execute:function(){this.redo()},undo:function(){var t=this;this.figures.each(function(e,n){t.group.assignFigure(n)}),this.canvas.add(this.group),this.canvas.setCurrentSelection(this.group)},redo:function(){var t=this;this.figures.each(function(e,n){t.group.unassignFigure(n)}),this.canvas.setCurrentSelection(this.figures),this.canvas.remove(this.group)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandAddVertex=r.default.command.Command.extend({NAME:"draw2d.command.CommandAddVertex",init:function(t,e,n,i){this._super(r.default.Configuration.i18n.command.addVertex),this.line=t,this.index=e,this.newPoint=new r.default.geo.Point(n,i)},canExecute:function(){return!0},execute:function(){this.redo()},undo:function(){this.line.removeVertexAt(this.index)},redo:function(){this.line.insertVertexAt(this.index,this.newPoint.x,this.newPoint.y)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandAssignFigure=r.default.command.Command.extend({NAME:"draw2d.command.CommandAssignFigure",init:function(t,e){this._super(r.default.Configuration.i18n.command.assignShape),this.figure=t,this.composite=e,this.assignedConnections=new r.default.util.ArrayList,this.isNode=this.figure instanceof r.default.shape.node.Node,this.oldBoundingBox=e.getBoundingBox(),this.newBoundingBox=null},canExecute:function(){return!0},execute:function(){if(this.composite.assignFigure(this.figure),this.newBoundingBox=this.composite.getBoundingBox(),!0===this.isNode){var t=this.figure.getConnections(),e=this;t.each(function(t,n){n.getSource().getParent().getComposite()===e.composite&&n.getTarget().getParent().getComposite()===e.composite&&n.getComposite()!==e.composite&&(e.assignedConnections.add({oldComposite:n.getComposite(),connection:n}),e.composite.assignFigure(n))})}},undo:function(){this.composite.unassignFigure(this.figure),this.assignedConnections.each(function(t,e){null!==e.oldComposite?e.oldComposite.assignFigure(e.connection):e.connection.getComposite().unassignFigure(e.connection)}),this.composite.stickFigures=!0,this.composite.setBoundingBox(this.oldBoundingBox),this.composite.stickFigures=!1},redo:function(){this.composite.setBoundingBox(this.oldBoundingBox),this.composite.assignFigure(this.figure);var t=this;this.assignedConnections.each(function(e,n){t.composite.assignFigure(n.connection)})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandBoundingBox=r.default.command.Command.extend({NAME:"draw2d.command.CommandResize",init:function(t,e){this._super(r.default.Configuration.i18n.command.resizeShape),this.figure=t,this.oldBoundingBox=this.figure.getBoundingBox(),this.newBoundingBox=e},canExecute:function(){return!this.oldBoundingBox.equals(this.newBoundingBox)},execute:function(){this.redo()},undo:function(){this.figure.setBoundingBox(this.oldBoundingBox)},redo:function(){this.figure.setBoundingBox(this.newBoundingBox)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandRemoveVertex=r.default.command.Command.extend({NAME:"draw2d.command.CommandRemoveVertex",init:function(t,e){this._super(r.default.Configuration.i18n.command.deleteVertex),this.line=t,this.index=e,this.oldPoint=t.getVertices().get(e).clone()},canExecute:function(){return!0},execute:function(){this.redo()},undo:function(){this.line.insertVertexAt(this.index,this.oldPoint.x,this.oldPoint.y)},redo:function(){this.line.removeVertexAt(this.index)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.command.CommandReplaceVertices=r.default.command.Command.extend({NAME:"draw2d.command.CommandReplaceVertices",init:function(t,e,n){this._super(r.default.Configuration.i18n.command.addSegment),this.line=t,this.originalVertices=e,this.newVertices=n},canExecute:function(){return!0},execute:function(){this.redo()},undo:function(){this.line.setVertices(this.originalVertices)},redo:function(){this.line.setVertices(this.newVertices)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.ConnectionRouter=Class.extend({NAME:"draw2d.layout.connection.ConnectionRouter",init:function(){},route:function(t,e){throw"subclasses must implement the method [ConnectionRouter.route]"},_paint:function(t){var e,n,i,a=t.getVertices(),o=a.get(0),s=t.getRadius(),c=["M",.5+(0|o.x)," ",.5+(0|o.y)],l=1;if(s>0){var u=o;for(e=a.getSize()-1;l<e;l++)o=a.get(l),n=r.default.geo.Util.insetPoint(o,u,s),c.push("L",.5+(0|n.x),",",.5+(0|n.y)),i=a.get(l+1),n=r.default.geo.Util.insetPoint(o,i,s),c.push("Q",o.x,",",o.y," ",.5+(0|n.x),", ",.5+(0|n.y)),u=o;o=a.get(l),c.push("L",.5+(0|o.x),",",.5+(0|o.y))}else for(e=a.getSize();l<e;l++)o=a.get(l),c.push("L",.5+(0|o.x),",",.5+(0|o.y));t.svgPathString=c.join("")},onInstall:function(t){},onUninstall:function(t){},canRemoveVertexAt:function(t){return!1},canRemoveSegmentAt:function(t){return!1},getPersistentAttributes:function(t,e){return e},setPersistentAttributes:function(t,e){},onDrag:function(t,e,n,i,r){},verticesSet:function(t){}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.DirectRouter=r.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.DirectRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.LineSelectionFeedbackPolicy)},invalidate:function(){},route:function(t,e){var n=t.getStartPoint(),i=t.getEndPoint();t.addPoint(n),t.addPoint(i);var r=["M",n.x," ",n.y];r.push("L",i.x," ",i.y),t.svgPathString=r.join("")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.RubberbandRouter=r.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.RubberbandRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.LineSelectionFeedbackPolicy)},invalidate:function(){},route:function(t,e){var n=10,i=t.getStartPoint(),a=t.getEndPoint(),o=a.subtract(i),s=o.clone(),c=o.length(),l=1-Math.min(.75,.002*c),u=i.lerp(a,.25*l),h=i.lerp(a,.5),d=i.lerp(a,1-.25*l);n=Math.max(5,n*l),o.x=o.x/c*n,o.y=o.y/c*n,s.x=s.x/c*(n*l),s.y=s.y/c*(n*l);var f=new r.default.geo.Point(-o.y+i.x,o.x+i.y),p=new r.default.geo.Point(o.y+i.x,-o.x+i.y),g=new r.default.geo.Point(-s.y+u.x,s.x+u.y),m=new r.default.geo.Point(s.y+u.x,-s.x+u.y),v=new r.default.geo.Point(-s.y+h.x,s.x+h.y),y=new r.default.geo.Point(s.y+h.x,-s.x+h.y),x=new r.default.geo.Point(-s.y+d.x,s.x+d.y),b=new r.default.geo.Point(s.y+d.x,-s.x+d.y),w=new r.default.geo.Point(-o.y+a.x,o.x+a.y),C=new r.default.geo.Point(o.y+a.x,-o.x+a.y);t.addPoint(i),t.addPoint(a);var _=["M",f.x,",",f.y];_.push("A",n,",",n,"0 0 1 ",p.x,",",p.y),_.push("C",p.x,",",p.y,m.x,",",m.y,y.x,",",y.y),_.push("C",y.x,",",y.y,b.x,",",b.y,C.x,",",C.y),_.push("A",n,",",n,"0 0 1",w.x,",",w.y),_.push("C",w.x,",",w.y,x.x,",",x.y,v.x,",",v.y),_.push("C",v.x,",",v.y,g.x,",",g.y,f.x,",",f.y),t.svgPathString=_.join(" ")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.VertexRouter=r.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.VertexRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.VertexSelectionFeedbackPolicy)},invalidate:function(){},route:function(t,e){for(var n=e.oldVertices.getSize(),i=0;i<n;i++)t.addPoint(e.oldVertices.get(i));var r=t.getVertices(),a=t.getStartPoint(r.get(1)),o=t.getEndPoint(r.get(r.getSize()-2));r.first().setPosition(a),r.last().setPosition(o),this._paint(t)},canRemoveVertexAt:function(t,e){return!1},canRemoveSegmentAt:function(t,e){var n=t.getVertices().getSize()-1;return!(e<=0||e>=n)&&!(n<2)},getPersistentAttributes:function(t,e){return e.vertex=[],t.getVertices().each(function(t,n){e.vertex.push({x:n.x,y:n.y})}),e},setPersistentAttributes:function(t,e){Array.isArray(e.vertex)&&e.vertex.length>1&&(t.oldPoint=null,t.lineSegments=new r.default.util.ArrayList,t.setVertices(e.vertex))},onDrag:function(t,e,n,i,r){for(var a=t.getVertices().getSize()-1,o=1;o<a;o++)t.getVertex(o).translate(i,r)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.ManhattanConnectionRouter=r.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.ManhattanConnectionRouter",MINDIST:20,TOL:.1,TOLxTOL:.01,TOGGLE_DIST:20,init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=t.getStartPoint(),i=t.getSource().getConnectionDirection(t.getTarget()),r=t.getEndPoint(),a=t.getTarget().getConnectionDirection(t.getSource());this._route(t,r,a,n,i),this._paint(t)},_route:function(t,e,n,i,a){var o,s,c,l=r.default.geo.Rectangle.DIRECTION_UP,u=r.default.geo.Rectangle.DIRECTION_RIGHT,h=r.default.geo.Rectangle.DIRECTION_DOWN,d=r.default.geo.Rectangle.DIRECTION_LEFT,f=e.x-i.x,p=e.y-i.y;if(f*f<this.TOLxTOL&&p*p<this.TOLxTOL)return void t.addPoint(new r.default.geo.Point(i.x,i.y));n===d?f>0&&p*p<this.TOL&&a===u?(o=i,s=a):(f<0?o=new r.default.geo.Point(e.x-this.MINDIST,e.y):p>0&&a===h||p<0&&a===l?o=new r.default.geo.Point(i.x,e.y):n==a?(c=Math.min(e.x,i.x)-this.MINDIST,o=new r.default.geo.Point(c,e.y)):o=new r.default.geo.Point(e.x-f/2,e.y),s=p>0?l:h):n===u?f<0&&p*p<this.TOL&&a===d?(o=i,s=a):(f>0?o=new r.default.geo.Point(e.x+this.MINDIST,e.y):p>0&&a===h||p<0&&a===l?o=new r.default.geo.Point(i.x,e.y):n===a?(c=Math.max(e.x,i.x)+this.MINDIST,o=new r.default.geo.Point(c,e.y)):o=new r.default.geo.Point(e.x-f/2,e.y),s=p>0?l:h):n===h?f*f<this.TOL&&p<0&&a===l?(o=i,s=a):(p>0?o=new r.default.geo.Point(e.x,e.y+this.MINDIST):f>0&&a===u||f<0&&a===d?o=new r.default.geo.Point(e.x,i.y):n===a?(c=Math.max(e.y,i.y)+this.MINDIST,o=new r.default.geo.Point(e.x,c)):o=new r.default.geo.Point(e.x,e.y-p/2),s=f>0?d:u):n===l&&(f*f<this.TOL&&p>0&&a===h?(o=i,s=a):(p<0?o=new r.default.geo.Point(e.x,e.y-this.MINDIST):f>0&&a===u||f<0&&a===d?o=new r.default.geo.Point(e.x,i.y):n===a?(c=Math.min(e.y,i.y)-this.MINDIST,o=new r.default.geo.Point(e.x,c)):o=new r.default.geo.Point(e.x,e.y-p/2),s=f>0?d:u)),this._route(t,o,s,i,a),t.addPoint(e)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.ManhattanBridgedConnectionRouter=r.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.ManhattanBridgedConnectionRouter",BRIDGE_HORIZONTAL_LR:" r 0 0 3 -4 7 -4 10 0 13 0 ",BRIDGE_HORIZONTAL_RL:" r 0 0 -3 -4 -7 -4 -10 0 -13 0 ",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=t.getStartPoint(),i=t.getSource().getConnectionDirection(t.getTarget()),a=t.getEndPoint(),o=t.getTarget().getConnectionDirection(t.getSource());this._route(t,a,o,n,i);for(var s=t.getCanvas().getIntersection(t).sort("x"),c=s.clone().reverse(),l=s,u=t.getVertices(),h=u.get(0),d=["M",.5+(0|h.x)," ",.5+(0|h.y)],f=h,p=1;p<u.getSize();p++){h=u.get(p);var g=5,m=this.BRIDGE_HORIZONTAL_LR;f.x>h.x&&(l=c,m=this.BRIDGE_HORIZONTAL_RL,g=-g),l.each(function(t,e){0==e.justTouching&&!0===r.default.shape.basic.Line.hit(1,f.x,f.y,h.x,h.y,e.x,e.y)&&h.y===e.y&&(d.push(" L",.5+(e.x-g|0)," ",.5+(0|e.y)),d.push(m))}),d.push(" L",.5+(0|h.x)," ",.5+(0|h.y)),f=h}t.svgPathString=d.join("")}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.layout.connection.InteractiveManhattanConnectionRouter=a.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.InteractiveManhattanConnectionRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.OrthogonalSelectionFeedbackPolicy),t._routingMetaData||(t._routingMetaData={routedByUserInteraction:!1,fromDir:-1,toDir:-1})},onUninstall:function(t){delete t._routingMetaData},route:function(t,e){e.oldVertices,0===e.oldVertices.getSize()||!1===t._routingMetaData.routedByUserInteraction?(this._super(t,e),t._routingMetaData.fromDir=t.getSource().getConnectionDirection(t.getTarget()),t._routingMetaData.toDir=t.getTarget().getConnectionDirection(t.getSource())):(this.halfRoute(t,e),this._paint(t))},halfRoute:function(t,e){var n=this.MINDIST,i=Math.max,r=Math.min;e=e||{};var o=e.oldVertices,s=o.getSize(),c=t.getStartPoint(),l=t.getSource().getConnectionDirection(t.getTarget()),u=t.getEndPoint(),h=t.getTarget().getConnectionDirection(t.getSource());if(t._routingMetaData.fromDir===l&&t._routingMetaData.toDir===h||(t._routingMetaData.routedByUserInteraction=!1,this.route(t,o)),l===a.default.geo.Rectangle.DIRECTION_RIGHT&&h===a.default.geo.Rectangle.DIRECTION_LEFT&&c.x>u.x&&s<=4&&(t._routingMetaData.routedByUserInteraction=!1,this.route(t,{oldVertices:o})),o.each(function(e,n){t.addPoint(n)}),!t.isInDragDrop){if(e.startMoved||!c.equals(o.get(0))){var d=o.get(1),f=o.get(2);switch(t.setVertex(0,c),l){case a.default.geo.Rectangle.DIRECTION_RIGHT:t.setVertex(1,i(c.x+n,d.x),c.y),t.setVertex(2,i(c.x+n,d.x),f.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:t.setVertex(1,r(c.x-n,d.x),c.y),t.setVertex(2,r(c.x-n,d.x),f.y);break;case a.default.geo.Rectangle.DIRECTION_UP:t.setVertex(1,c.x,r(c.y-n,d.y)),t.setVertex(2,f.x,r(c.y-n,d.y));break;case a.default.geo.Rectangle.DIRECTION_DOWN:t.setVertex(1,c.x,i(c.y+n,d.y)),t.setVertex(2,f.x,i(c.y+n,d.y))}}if(e.endMoved||!u.equals(o.get(s-1))){var d=o.get(s-2),f=o.get(s-3);switch(t.setVertex(s-1,u),h){case a.default.geo.Rectangle.DIRECTION_RIGHT:t.setVertex(s-2,i(u.x+n,d.x),u.y),t.setVertex(s-3,i(u.x+n,d.x),f.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:t.setVertex(s-2,r(u.x-n,d.x),u.y),t.setVertex(s-3,r(u.x-n,d.x),f.y);break;case a.default.geo.Rectangle.DIRECTION_UP:t.setVertex(s-2,u.x,r(u.y-n,d.y)),t.setVertex(s-3,f.x,r(u.y-n,d.y));break;case a.default.geo.Rectangle.DIRECTION_DOWN:t.setVertex(s-2,u.x,i(u.y+n,d.y)),t.setVertex(s-3,f.x,i(u.y+n,d.y))}}}},canRemoveSegmentAt:function(t,e){var n=t.getVertices().getSize()-1;if(e<=0||e+1>=n)return!1;if(n<4)return!1;var i=t.getStartPoint(),r=t.getSource().getConnectionDirection(t.getTarget()),o=t.getEndPoint(),s=t.getTarget().getConnectionDirection(t.getSource());if(n<=5){if(r===a.default.geo.Rectangle.DIRECTION_RIGHT&&s===a.default.geo.Rectangle.DIRECTION_LEFT&&i.x>=o.x)return!1;if(r==a.default.geo.Rectangle.DIRECTION_LEFT&s==a.default.geo.Rectangle.DIRECTION_RIGHT&&i.x<=o.x)return!1;if(r==a.default.geo.Rectangle.DIRECTION_UP&s==a.default.geo.Rectangle.DIRECTION_DOWN&&i.y<=o.y)return!1;if(r==a.default.geo.Rectangle.DIRECTION_DOWN&s==a.default.geo.Rectangle.DIRECTION_UP&&i.y>=o.y)return!1;var c=new a.default.Connection;c.lineSegments=new a.default.util.ArrayList,c.vertices=new a.default.util.ArrayList,c.sourcePort=t.sourcePort,c.targetPort=t.targetPort,c._routingMetaData={routedByUserInteraction:!1,fromDir:-1,toDir:-1},this.route(c,{oldVertices:new a.default.util.ArrayList});if(t.getVertices().getSize()-1<=c.getVertices().getSize()-1)return!1}return!0},onDrag:function(t,e,n,i,r){var a=0;if(null!==t.draggedSegment){if(0!==t.draggedSegment.index&&t.draggedSegment.index!==t.getSegments().getSize()-1){t._routingMetaData.routedByUserInteraction=!0;var o=t.draggedSegment.start,s=t.draggedSegment.end;a=t.draggedSegment.index;var c=t.getVertices().first(),l=t.getVertices().last(),u=0;o.y===s.y?(1===a&&(u=o.y-c.y),a===t.getSegments().getSize()-2&&(u=s.y-l.y),u<0&&r>0?r=Math.min(r,-u-this.MINDIST):u>0&&r<0&&(r=-Math.min(-r,u-this.MINDIST)),t.getVertex(a).translate(0,r),t.getVertex(a+1).translate(0,r)):o.x===s.x&&(1===a&&(u=o.x-c.x,u<0&&i>0?i=Math.min(i,-u-this.MINDIST):u>0&&i<0&&(i=-Math.min(-i,u-this.MINDIST))),a===t.getSegments().getSize()-2&&(u=s.x-l.x,u<0&&i>0?i=Math.min(i,-u-this.MINDIST):u>0&&i<0&&(i=-Math.min(-i,u-this.MINDIST))),t.getVertex(a).translate(i,0),t.getVertex(a+1).translate(i,0))}}else{var h=t.getVertices().getSize()-1;for(a=1;a<h;a++)t.getVertex(a).translate(i,r)}},verticesSet:function(t){t._routingMetaData.routedByUserInteraction=!0,null!==t.getSource()&&null!==t.getTarget()&&(t._routingMetaData.fromDir=t.getSource().getConnectionDirection(t.getTarget()),t._routingMetaData.toDir=t.getTarget().getConnectionDirection(t.getSource()))},getPersistentAttributes:function(t,e){return e.vertex=[],t.getVertices().each(function(t,n){e.vertex.push({x:n.x,y:n.y})}),e.routingMetaData=(0,s.default)({},t._routingMetaData),e},setPersistentAttributes:function(t,e){Array.isArray(e.vertex)&&(t.oldPoint=null,t.lineSegments=new a.default.util.ArrayList,t.setVertices(e.vertex)),void 0!==e.routingMetaData&&(t._routingMetaData=(0,s.default)({},e.routingMetaData))}})},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.CircuitConnectionRouter=r.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.CircuitConnectionRouter",init:function(){this._super(),this.setBridgeRadius(4),this.setVertexRadius(2),this.abortRoutingOnFirstVertexNode=!1},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.LineSelectionFeedbackPolicy)},onUninstall:function(t){void 0!==t.vertexNodes&&null!==t.vertexNodes&&(t.vertexNodes.remove(),t.vertexNodes=null)},setVertexRadius:function(t){return this.vertexRadius=t,this},setJunctionRadius:function(t){this.vertexRadius=t},setBridgeRadius:function(t){return this.bridgeRadius=t,this.bridge_LR=[" r",.5,-.5,t-t/2,-(t-t/4),t,-t,t+t/2,-(t-t/4),2*t,"0 "].join(" "),this.bridge_RL=[" r",-.5,-.5,-(t-t/2),-(t-t/4),-t,-t,-(t+t/2),-(t-t/4),2*-t,"0 "].join(" "),this},route:function(t,e){var n=this,i=t.getStartPoint(),a=t.getSource().getConnectionDirection(t.getTarget()),o=t.getEndPoint(),s=t.getTarget().getConnectionDirection(t.getSource());this._route(t,o,s,i,a);var c=t.getCanvas().getIntersection(t).sort("x"),l=c.clone().reverse(),u=c,h=0;void 0!==t.vertexNodes&&null!==t.vertexNodes&&t.vertexNodes.remove(),t.vertexNodes=t.canvas.paper.set();var d=t.getVertices(),f=d.get(0),p=["M",.5+(0|f.x)," ",.5+(0|f.y)],g=f,m=null,v=null,y=null;for(h=1;h<d.getSize();h++)f=d.get(h),g.x>f.x?(u=l,v=this.bridge_RL,m=-this.bridgeRadius):(u=c,v=this.bridge_LR,m=this.bridgeRadius),u.each(function(e,i){if(!0===r.default.shape.basic.Line.hit(1,g.x,g.y,f.x,f.y,i.x,i.y))if(t.sharingPorts(i.other)){var a=i.other,o=a.getZOrder(),s=t.getZOrder();if(s<o){var c=t.canvas.paper.ellipse(i.x,i.y,n.vertexRadius,n.vertexRadius).attr({fill:t.lineColor.hash()});t.vertexNodes.push(c),!0===n.abortRoutingOnFirstVertexNode&&(t.getSource()!=a.getSource()&&t.getSource()!=a.getTarget()||(p=["M",.5+(0|i.x)," ",.5+(0|i.y)],null!==y&&(y.remove(),t.vertexNodes.exclude(lastVerteNode))),y=c)}}else f.y===i.y&&(p.push(" L",.5+(i.x-m|0)," ",.5+(0|i.y)),p.push(v))}),p.push(" L",.5+(0|f.x)," ",.5+(0|f.y)),g=f;t.svgPathString=p.join("")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.SplineConnectionRouter=r.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.SplineConnectionRouter",init:function(){this._super(),this.spline=new r.default.util.spline.CubicSpline,this.MINDIST=50,this.cheapRouter=null},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n,i=t.getStartPoint(),a=t.getSource().getConnectionDirection(t.getTarget()),o=t.getEndPoint(),s=t.getTarget().getConnectionDirection(t.getSource());this._route(t,o,s,i,a);var c=t.getVertices();t.oldPoint=null,t.lineSegments=new r.default.util.ArrayList,t.vertices=new r.default.util.ArrayList,this.spline.generate(c,8).each(function(e,n){t.addPoint(n)});var c=t.getVertices(),l=c.getSize(),u=c.get(0),h=["M",u.x," ",u.y];for(n=1;n<l;n++)u=c.get(n),h.push("L",u.x," ",u.y);t.svgPathString=h.join("")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.FanConnectionRouter=r.default.layout.connection.DirectRouter.extend({NAME:"draw2d.layout.connection.FanConnectionRouter",init:function(){this._super()},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=t.getSource().getConnections().clone();n.grep(function(e){return e.getTarget()===t.getTarget()||e.getSource()===t.getTarget()}),n.getSize()>1?this.routeCollision(t,n.indexOf(t)):this._super(t,e)},routeCollision:function(t,e){e+=1;var n,i=t.getStartPoint(),a=t.getEndPoint(),o=new r.default.geo.Point((a.x+i.x)/2,(a.y+i.y)/2),s=a.getPosition(i);n=s==r.default.geo.PositionConstants.SOUTH||s==r.default.geo.PositionConstants.EAST?new r.default.geo.Point(a.x-i.x,a.y-i.y):new r.default.geo.Point(i.x-a.x,i.y-a.y);var c,l=Math.sqrt(n.x*n.x+n.y*n.y),u=15*n.x/l,h=15*n.y/l;c=e%2==0?new r.default.geo.Point(o.x+e/2*(-1*h),o.y+e/2*u):new r.default.geo.Point(o.x+e/2*h,o.y+e/2*(-1*u)),t.addPoint(i),t.addPoint(c),t.addPoint(a),this._paint(t)}})},function(t,e,n){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(r),o=null;a.default.layout.connection.MazeConnectionRouter=a.default.layout.connection.ConnectionRouter.extend({NAME:"draw2d.layout.connection.MazeConnectionRouter",init:function(){this._super(),this.useSpline=!1,this.useSimplify=!0,this.useSimplifyValue=2,this.useDebug=!1,this.useShift=4,this.portOutletOffset=15,this.finder=new PF.JumpPointFinder({allowDiagonal:!1,dontCrossCorners:!0})},onInstall:function(t){t.installEditPolicy(new a.default.policy.line.LineSelectionFeedbackPolicy)},route:function(t,e){var n=t.getStartPoint(),i=t.getSource().getConnectionDirection(t.getTarget()),r=t.getEndPoint(),a=t.getTarget().getConnectionDirection(t.getSource());this._route(t,r,a,n,i),this._paint(t)},_route:function(t,e,n,i,r){var s=this.useShift,c=i,l=e;e=this.getAdjustedPoint(e,n,this.portOutletOffset),i=this.getAdjustedPoint(i,r,this.portOutletOffset);var u=this.generateNoGoGrid(t,e,n,i,r),h=this.finder.findPath(e.x>>s,e.y>>s,i.x>>s,i.y>>s,u);if(h.forEach(function(t){t.x=t[0]=t[0]<<s,t.y=t[1]=t[1]<<s}),this.useDebug){null!==o&&o.remove(),o=t.canvas.paper.set();for(var d=0;d<u.width;d++)for(var f=0;f<u.height;f++)u.isWalkableAt(d,f)||o.push(t.canvas.paper.rect(d<<s,f<<s,1<<s,1<<s).attr({fill:"red",opacity:"0.1"}));o.push(t.canvas.paper.rect(e.x-3,e.y-3,6,6).attr({fill:"#ff0000",opacity:"0.8"})),o.push(t.canvas.paper.rect(i.x-3,i.y-3,6,6).attr({fill:"#ff0000",opacity:"0.8"})),h.forEach(function(e){o.push(t.canvas.paper.rect(e.x-3,e.y-3,6,6).attr({fill:"#0000ff",opacity:"0.8"}))});for(var p=h[0],g=["M",p.x," ",p.y],d=1;d<h.length;d++)p=h[d],g.push("L",p.x," ",p.y);g=g.join(""),o.push(t.canvas.paper.path(g).attr({stroke:"#0000ff"}))}if(this.adjustPath(e,h,n),h.reverse(),this.adjustPath(i,h,r),h.reverse(),h.forEach(function(t){t.x=t[0],t.y=t[1]}),this.useSpline){var p=new a.default.util.ArrayList;if(p.add(l),h.forEach(function(t){p.add(new a.default.geo.Point(t[0],t[1]))}),p.add(c),this.useDebug){h.forEach(function(e){o.push(t.canvas.paper.rect(e.x-3,e.y-3,6,6).attr({fill:"#00ff00",opacity:"0.8"}))});for(var m=h[0],g=["M",m.x," ",m.y],d=1;d<h.length;d++)m=h[d],g.push("L",m.x," ",m.y);g=g.join(""),o.push(t.canvas.paper.path(g).attr({stroke:"#00ff00"}))}this.spline=new a.default.util.spline.CubicSpline;var v=this.spline.generate(p,8);this.useSimplify?(h=[],v.each(function(t,e){h.push({x:e.x,y:e.y})}),h=this.simplify(h,this.useSimplifyValue,!0),h.forEach(function(e){t.addPoint(e.x,e.y)})):v.each(function(e,n){t.addPoint(n)})}else{if(this.useSimplify&&(h=this.simplify(h,this.useSimplifyValue,!0)),this.useDebug){h.forEach(function(e){o.push(t.canvas.paper.rect(e.x-3,e.y-3,6,6).attr({fill:"#00ff00",opacity:"0.8"}))});for(var p=h[0],g=["M",p.x," ",p.y],d=1;d<h.length;d++)p=h[d],g.push("L",p.x," ",p.y);g=g.join(""),o.push(t.canvas.paper.path(g).attr({stroke:"#00ff00"}))}t.addPoint(l),h.forEach(function(e){t.addPoint(e[0],e[1])}),t.addPoint(c)}},generateNoGoGrid:function(t,e,n,i,r){var a=this.useShift,o=(1<<a)/2,s=t.getCanvas().paper.width>>a,c=t.getCanvas().paper.height>>a,l=new PF.Grid(s,c);t.getCanvas().getFigures().each(function(t,n){var r=n.getBoundingBox();if(!0!==r.hitTest(e.x,e.y)&&!r.hitTest(i.x,i.y)){var s=r.x>>a,c=r.y>>a;if(!(s<1||c<1))for(var u=r.x+r.w+o>>a,h=r.y+r.h+o>>a,t=s;t<=u;t++)for(var d=c;d<=h;d++)l.setWalkableAt(t,d,!1)}});var u=t.getSource().getParent().getBoundingBox();if(1===r||3===r){var h=u.y>>a;if(h>0)for(var d=u.y+u.h,f=i.x>>a,p=h-1;p<<a<=d;p++)l.setWalkableAt(f,p,!0)}else{var g=u.x>>a;if(g>0)for(var m=u.x+u.w,p=i.x>>a,f=g-1;f<<a<=m;f++)l.setWalkableAt(f,p,!0)}if(u=t.getTarget().getParent().getBoundingBox(),1===n||3===n){var h=u.y>>a;if(h>0)for(var d=u.y+u.h,f=e.x>>a,p=h-1;p<<a<=d;p++)l.setWalkableAt(f,p,!0)}else{var g=u.x>>a;if(g>0)for(var m=u.x+u.w,p=e.x>>a,f=g-1;f<<a<=m;f++)l.setWalkableAt(f,p,!0)}return l},getAdjustedPoint:function(t,e,n){switch(e){case a.default.geo.Rectangle.DIRECTION_UP:return new a.default.geo.Point(t.x,t.y-n);case a.default.geo.Rectangle.DIRECTION_RIGHT:return new a.default.geo.Point(t.x+n,t.y);case a.default.geo.Rectangle.DIRECTION_DOWN:return new a.default.geo.Point(t.x,t.y+n);case a.default.geo.Rectangle.DIRECTION_LEFT:return new a.default.geo.Point(t.x-n,t.y)}},adjustPath:function(t,e,n){var i=this.useShift,r=t.x>>i,a=t.y>>i;e.forEach(function(e){if(a!==e[1]>>i)return!1;e[1]=t.y}),e.forEach(function(e){if(r!==e[0]>>i)return!1;e[0]=t.x})},getSquareDistance:function(t,e){var n=t.x-e.x,i=t.y-e.y;return n*n+i*i},getSquareSegmentDistance:function(t,e,n){var i,r=e.x,a=e.y,o=n.x-r,s=n.y-a;return 0===o&&0===s||(i=((t.x-r)*o+(t.y-a)*s)/(o*o+s*s),i>1?(r=n.x,a=n.y):i>0&&(r+=o*i,a+=s*i)),o=t.x-r,s=t.y-a,o*o+s*s},simplifyRadialDistance:function(t,e){var n,i=t.length,r=null,a=t[0],o=[a];for(n=1;n<i;n++)r=t[n],this.getSquareDistance(r,a)>e&&(o.push(r),a=r);return a!==r&&o.push(r),o},simplifyDouglasPeucker:function(t,e){var n,r,a,o,s=t.length,c=("undefined"==typeof Uint8Array?"undefined":i(Uint8Array))!==void 0+""?Uint8Array:Array,l=new c(s),u=0,h=s-1,d=[],f=[],p=[];for(l[u]=l[h]=1;h;){for(r=0,n=u+1;n<h;n++)(a=this.getSquareSegmentDistance(t[n],t[u],t[h]))>r&&(o=n,r=a);r>e&&(l[o]=1,d.push(u),f.push(o),d.push(o),f.push(h)),u=d.pop(),h=f.pop()}for(n=0;n<s;n++)l[n]&&p.push(t[n]);return p},simplify:function(t,e,n){var i=void 0!==e?e*e:1;return n||(t=this.simplifyRadialDistance(t,i)),t=this.simplifyDouglasPeucker(t,i)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.MuteableManhattanConnectionRouter=r.default.layout.connection.ManhattanConnectionRouter.extend({NAME:"draw2d.layout.connection.MuteableManhattanConnectionRouter",UP:new r.default.geo.Ray(0,-1),DOWN:new r.default.geo.Ray(0,1),LEFT:new r.default.geo.Ray(-1,0),RIGHT:new r.default.geo.Ray(1,0),init:function(){this._super(),this.rowsUsed={},this.colsUsed={},this.constraints={},this.reservedInfo={}},route:function(t,e){this.rowsUsed={},this.colsUsed={},this.constraints={},this.reservedInfo={};var n,i=t.getCanvas(),a=t.getStartPoint(),o=t.getEndPoint(),s=new r.default.geo.Ray(a),c=new r.default.geo.Ray(o),l=new r.default.geo.Ray((s.x+c.x)/2,(s.y+c.y)/2),u=new r.default.geo.Ray(c.x-s.x,c.y-s.y),h=this.getStartDirection(t),d=this.getEndDirection(t),f=new r.default.util.ArrayList,p=h.isHorizontal();if(p?f.add(s.y):f.add(s.x),p=!p,0===h.dot(d))h.dot(u)>=0&&d.dot(u)<=0||(n=h.dot(u)<0?h.similarity(s.translated(h.getScaled(10))):p?l.y:l.x,f.add(n),p=!p,n=d.dot(u)>0?d.similarity(c.translated(d.getScaled(10))):p?l.y:l.x,f.add(n),p=!p);else if(h.dot(d)>0)n=h.dot(u)>=0?h.similarity(s.translated(h.getScaled(10))):d.similarity(c.translated(d.getScaled(10))),f.add(n),p=!p;else{if(h.dot(u)<0&&(n=h.similarity(s.translated(h.getScaled(10))),f.add(n),p=!p),this.isCycle(t))n=p?t.getSource().getParent().getBoundingBox().getTop()-10:t.getSource().getParent().getBoundingBox().getRight()+10;else if(p){for(var g=l.y,m=d.similarity(c.translated(d.getScaled(10))),v=new r.default.geo.Ray(f.get(f.getSize()-1),g),y=this.findFirstFigureAtStraightLine(i,v,this.LEFT,r.default.util.ArrayList.EMPTY_LIST);null!=y&&y.getBoundingBox().x+y.getBoundingBox().width>m;)g=y.getBoundingBox().y+y.getBoundingBox().height+5,v.y=g,y=this.findFirstFigureAtStraightLine(i,v,this.LEFT,Collections.EMPTY_LIST);n=g}else{var y=this.findFirstFigureAtStraightLine(i,s,this.RIGHT,this.getExcludingFigures(t));null==y?n=l.x:(n=Math.min(l.x,s.translated(new r.default.geo.Ray(3*(y.getBoundingBox().x-s.x)/4,0)).x),n=Math.max(s.x,n)),n=this.adjust(t,n)}f.add(n),p=!p}p?f.add(c.y):f.add(c.x),this.processPositions(s,c,f,h.isHorizontal(),t),this._paint(t)},getColumnNear:function(t,e,n,i){var r=Math.min(n,i),a=Math.max(n,i);r>e&&(a=r,r=e-(r-e)),a<e&&(r=a,a=e+(e-a));var o=0,s=-1;e%6!=0&&(e-=e%6);for(var c;o<e;){if(!((c=parseInt(e+o*s))in this.colsUsed))return this.colsUsed[c]=c,this.reserveColumn(t,c),c;if(c<=r)return c+6;if(c>=a)return c-6;1===s?s=-1:(s=1,o+=6)}return e},getRowNear:function(t,e,n,i){var r=Math.min(n,i),a=Math.max(n,i);r>e&&(a=r,r=e-(r-e)),a<e&&(r=a,a=e+(e-a));var o=0,s=-1;e%6!=0&&(e-=e%6);for(var c;o<e;){if(!((c=parseInt(e+o*s))in this.rowsUsed))return this.rowsUsed[c]=c,this.reserveRow(t,c),c;if(c<=r)return c+6;if(c>=a)return c-6;1==s?s=-1:(s=1,o+=6)}return e},getEndDirection:function(t){var e=t.getEndPoint(),n=t.getTarget().getParent().getBoundingBox();return this.getDirection(n,e)},getStartDirection:function(t){var e=t.getStartPoint(),n=t.getSource().getParent().getBoundingBox();return this.getDirection(n,e)},getDirection:function(t,e){var n=Math.abs(t.y-e.y),i=Math.abs(t.x-e.x),r=this.LEFT;return n<=i&&(i=n,r=this.UP),n=Math.abs(t.getBottom()-e.y),n<=i&&(i=n,r=this.DOWN),n=Math.abs(t.getRight()-e.x),n<i&&(i=n,r=this.RIGHT),r},processPositions:function(t,e,n,i,a){this.removeReservedLines(a);var o=[];i?o.push(t.x):o.oush(t.y);var s;for(s=0;s<n.getSize();s++)o.push(n.get(s));i==(n.getSize()%2==1)?o.push(e.x):o.push(e.y),a.addPoint(new r.default.geo.Point(t.x,t.y));var c,l,u,h,d,f;for(s=2;s<o.length-1;s++)i=!i,u=o[s-1],l=o[s],f=s!==o.length-2,i?(f&&(h=o[s-2],d=o[s+2],o[s]=l=this.getRowNear(a,l,h,d)),c=new r.default.geo.Point(u,l)):(f&&(h=o[s-2],d=o[s+2],o[s]=l=this.getColumnNear(a,l,h,d)),c=new r.default.geo.Point(l,u)),a.addPoint(c);a.addPoint(new r.default.geo.Point(e.x,e.y))},removeReservedLines:function(t){var e=this.reservedInfo[t];if(void 0!==e&&null!==e){for(var n=0;n<e.reservedRows.getSize();n++)delete this.rowsUsed[e.reservedRows.get(n)];for(var n=0;n<e.reservedCols.getSize();n++)delete this.colsUsed[e.reservedCols.get(n)];delete this.reservedInfo[t]}},reserveColumn:function(t,e){var n=this.reservedInfo[t];void 0!==n&&null!==n||(n={reservedCols:new r.default.util.ArrayList,reservedRows:new r.default.util.ArrayList},this.reservedInfo[t]=n),n.reservedCols.add(e)},reserveRow:function(t,e){var n=this.reservedInfo[t];void 0!==n&&null!==n||(n={reservedCols:new r.default.util.ArrayList,reservedRows:new r.default.util.ArrayList},this.reservedInfo[t]=n),n.reservedRows.add(e)},getConstraint:function(t){return this.constraints[t]},setConstraint:function(t,e){this.constraints[t]=e},isCycle:function(t){var e=t.getSource().getParent(),n=t.getTarget().getParent();return e.id===n.id},getExcludingFigures:function(t){var e=new r.default.util.ArrayList;return e.add(t.getSource().getParent()),e.add(t.getTarget().getParent()),e},findFirstFigureAtStraightLine:function(t,e,n,i){var r=null,a=t.getFigures(),o=this;return a.each(function(t,a){try{if(!i.contains(a)){var s=a.getBoundingBox();o.LEFT.equals(n)?e.x>s.x&&e.y>=s.y&&e.y<=s.y+s.h&&(null===r||s.x>r.getBoundingBox().x)&&(r=a):o.RIGHT.equals(n)?e.x<s.x+s.w&&e.y>=s.y&&e.y<=s.y+s.h&&(null==r||s.x<r.getBoundingBox().x)&&(r=a):o.UP.equals(n)?e.y>s.y&&e.x>=s.x&&e.x<=s.x+s.w&&(null===r||s.y>r.getBoundingBox().y)&&(r=a):o.DOWN.equals(n)&&e.y<s.y+s.h&&e.x>=s.x&&e.x<=s.x+s.w&&(null===r||s.y<r.getBoundingBox().y)&&(r=a)}}catch(t){console.log(t)}}),r},adjust:function(t,e){var n=e,i=t.getSource().getPosition();return t.getCanvas().getLines().each(function(r,a){try{if(a===t)return;var o=a.getTarget().getPosition();i.x<o.x&&i.y==o.y&&a.getVertices().getMidpoint().x<=e&&(n=a.getVertices().getMidpoint().x-5)}catch(t){console.log(t)}}),n}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.connection.SketchConnectionRouter=r.default.layout.connection.MazeConnectionRouter.extend({NAME:"draw2d.layout.connection.SketchConnectionRouter",init:function(){this._super(),this.useSpline=!0,this.useShift=5,this.useSimplifyValue=.2,this.finder=new PF.JumpPointFinder({allowDiagonal:!1,dontCrossCorners:!0})},onInstall:function(t){t.installEditPolicy(new r.default.policy.line.LineSelectionFeedbackPolicy)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.mesh.MeshLayouter=Class.extend({init:function(){},add:function(t,e){return new r.default.util.ArrayList}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.mesh.ExplodeLayouter=r.default.layout.mesh.MeshLayouter.extend({MIN_MARGIN:40,init:function(){},add:function(t,e){var n=[];n[0]={x:0,y:0},n[1]={x:0,y:0},n[2]={x:0,y:0},n[3]={x:0,y:0},n[4]={x:0,y:0},n[5]={x:0,y:0},n[6]={x:0,y:0},n[7]={x:0,y:0},n[8]={x:0,y:0};var i=e.getBoundingBox(),a=t.getFigures(),o=null,s=0,c=0,l=null,u=0;for(u=0;u<a.getSize();u++)if((o=a.get(u))!==e&&(s=o.getBoundingBox().getDistance(i))<this.MIN_MARGIN)switch(c=this.determineOctant(i,o.getBoundingBox())){case 2:case 3:n[2].x=Math.max(n[2].x,this.MIN_MARGIN-s),n[3].x=Math.max(n[3].x,this.MIN_MARGIN-s),n[4].x=Math.max(n[4].x,this.MIN_MARGIN-s);break;case 4:n[2].x=Math.max(n[2].x,this.MIN_MARGIN-s),n[3].x=Math.max(n[3].x,this.MIN_MARGIN-s),n[4].x=Math.max(n[4].x,this.MIN_MARGIN-s),n[4].y=Math.max(n[4].y,this.MIN_MARGIN-s),n[5].y=Math.max(n[5].y,this.MIN_MARGIN-s),n[6].y=Math.max(n[6].y,this.MIN_MARGIN-s);break;case 5:case 6:n[4].y=Math.max(n[4].y,this.MIN_MARGIN-s),n[5].y=Math.max(n[5].y,this.MIN_MARGIN-s),n[6].y=Math.max(n[6].y,this.MIN_MARGIN-s);break;case 8:s=0|i.getBottomRight().getDistance(o.getBoundingBox().getTopLeft()),n[2].x=Math.max(n[2].x,this.MIN_MARGIN+s),n[3].x=Math.max(n[3].x,this.MIN_MARGIN+s),n[4].x=Math.max(n[4].x,this.MIN_MARGIN+s),n[4].y=Math.max(n[4].y,this.MIN_MARGIN+s),n[5].y=Math.max(n[5].y,this.MIN_MARGIN+s),n[6].y=Math.max(n[6].y,this.MIN_MARGIN+s),n[8].x=Math.max(n[8].x,this.MIN_MARGIN+s)}var h=new r.default.util.ArrayList;for(u=0;u<a.getSize();u++)(o=a.get(u))!==e&&(c=this.determineOctant(i,o.getBoundingBox()),l=n[c],0===l.x&&0===l.y||h.add(new r.default.layout.mesh.ProposedMeshChange(o,l.x,l.y)));return h},determineOctant:function(t,e){var n=t.x,i=t.y,r=t.w,a=t.h,o=e.x,s=e.y,c=e.w,l=e.h;return o+c<=n?s+l<=i?0:s>=i+a?6:7:o>=n+r?s+l<=i?2:s>=i+a?4:3:s+l<=i?1:s>=i+a?5:8}})},function(t,e,n){"use strict";var i=n(0);(function(t){return t&&t.__esModule?t:{default:t}})(i).default.layout.mesh.ProposedMeshChange=Class.extend({init:function(t,e,n){this.figure=t,this.x=e,this.y=n},getFigure:function(){return this.figure},getX:function(){return this.x},getY:function(){return this.y}})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}var _packages=__webpack_require__(0),_packages2=_interopRequireDefault(_packages);_packages2.default.layout.locator.Locator=Class.extend({NAME:"draw2d.layout.locator.Locator",init:function(){},bind:function(t,e){e.setDraggable(!1),e.setSelectable(!1)},unbind:function(t,e){},relocate:function(t,e){e.repaint()},clone:function clone(){return eval("new "+this.NAME+"()")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.PortLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.PortLocator",init:function(){this._super()},applyConsiderRotation:function(t,e,n){var i=t.getParent(),r=i.getWidth()/2,a=i.getHeight()/2,o=i.getRotationAngle(),s=Raphael.matrix();if(s.rotate(o,r,a),90===o||270===o){var c=i.getHeight()/i.getWidth();s.scale(c,1/c,r,a)}t.setPosition(s.x(e,n),s.y(e,n))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.DraggableLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.DraggableLocator",init:function(){this._super()},bind:function(t,e){e.setSelectionAdapter(function(){return e})},unbind:function(t,e){e.setSelectionAdapter(null)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.SmartDraggableLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.SmartDraggableLocator",init:function(){this._super(),this.boundedCorners={init:!1,parent:0,child:0,dist:Number.MAX_SAFE_INTEGER,xOffset:0,yOffset:0}},bind:function(t,e){var n=this,i=function(){n.boundedCorners={init:!1,parent:0,child:0,dist:Number.MAX_SAFE_INTEGER,xOffset:0,yOffset:0};var t,i,r,a,o,s=e.getParent().getBoundingBox().getVertices(),c=e.getBoundingBox().getVertices();for(t=0;t<s.getSize();t++)for(i=0;i<c.getSize();i++)r=s.get(t),a=c.get(i),(o=Math.abs(r.distance(a)))<n.boundedCorners.dist&&(n.boundedCorners={parent:t,child:i,dist:o,xOffset:r.x-a.x,yOffset:r.y-a.y});n.boundedCorners.init=!0};e.setSelectionAdapter(function(){return e}),e.getParent().on("added",i),e.on("dragend",i)},unbind:function(t,e){e.setSelectionAdapter(null)},relocate:function(t,e){if(this._super(t,e),!0===this.boundedCorners.init){var n=e.getParent().getBoundingBox().getVertices(),i=e.getBoundingBox().getVertices(),r=n.get(this.boundedCorners.parent),a=i.get(this.boundedCorners.child),o=r.x-a.x,s=r.y-a.y;e.translate(o-this.boundedCorners.xOffset,s-this.boundedCorners.yOffset)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.XYAbsPortLocator=r.default.layout.locator.PortLocator.extend({NAME:"draw2d.layout.locator.XYAbsPortLocator",init:function(t,e){this._super(),this.x=t,this.y=e},relocate:function(t,e){this.applyConsiderRotation(e,this.x,this.y)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.XYRelPortLocator=r.default.layout.locator.PortLocator.extend({NAME:"draw2d.layout.locator.XYRelPortLocator",init:function(t,e){this._super(),this.x=t,this.y=e},relocate:function(t,e){var n=e.getParent(),i=n.getWidth()/100*this.x,r=n.getHeight()/100*this.y;this.applyConsiderRotation(e,i,r)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.InputPortLocator=r.default.layout.locator.PortLocator.extend({NAME:"draw2d.layout.locator.InputPortLocator",init:function(){this._super()},relocate:function(t,e){var n=e.getParent(),i=1,r=this.NAME,a=1;n.getPorts().each(function(t,n){a=n===e?i:a,i+=n.getLocator().NAME===r?1:0}),this.applyConsiderRotation(e,0,n.getHeight()/i*a)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.OutputPortLocator=r.default.layout.locator.PortLocator.extend({NAME:"draw2d.layout.locator.OutputPortLocator",init:function(){this._super()},relocate:function(t,e){var n=e.getParent(),i=1,r=this.NAME,a=1;n.getPorts().each(function(t,n){a=n===e?i:a,i+=n.getLocator().NAME===r?1:0}),this.applyConsiderRotation(e,n.getWidth(),n.getHeight()/i*a)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.ConnectionLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.ConnectionLocator",init:function(){this._super()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.ManhattanMidpointLocator=r.default.layout.locator.ConnectionLocator.extend({NAME:"draw2d.layout.locator.ManhattanMidpointLocator",init:function(){this._super()},relocate:function(t,e){var n=e.getParent(),i=n.getVertices(),r=Math.floor((i.getSize()-2)/2);if(!(i.getSize()<=r+1)){var a=i.get(r),o=i.get(r+1),s=(o.x-a.x)/2+a.x-e.getWidth()/2|0,c=(o.y-a.y)/2+a.y-e.getHeight()/2|0;e.setPosition(s,c)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.PolylineMidpointLocator=r.default.layout.locator.ManhattanMidpointLocator.extend({NAME:"draw2d.layout.locator.PolylineMidpointLocator",init:function(){this._super()},relocate:function(t,e){var n=e.getParent(),i=n.getVertices();if(i.getSize()%2==0)this._super(t,e);else{var t=Math.floor(i.getSize()/2),r=i.get(t);e.setPosition(r.x-e.getWidth()/2,r.y-e.getHeight()/2)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.ParallelMidpointLocator=r.default.layout.locator.ConnectionLocator.extend({NAME:"draw2d.layout.locator.ParallelMidpointLocator",init:function(t){this._super(),this.distanceFromConnection=void 0!==t?parseFloat(t):-5},relocate:function(t,e){var n=e.getParent(),i=n.getVertices(),r=Math.floor((i.getSize()-2)/2);if(!(i.getSize()<=r+1)){var a=i.get(r),o=i.get(r+1),s=this.distanceFromConnection<=0?this.distanceFromConnection-e.getHeight():this.distanceFromConnection,c=a.x-o.x,l=a.y-o.y,u=Math.sqrt(c*c+l*l),h=-Math.asin(l/u),d=180/Math.PI*h;h<0?o.x<a.x?(h=Math.abs(h)+Math.PI,d=360-d,s=-s-e.getHeight()):(h=2*Math.PI-Math.abs(h),d=360+d):o.x<a.x&&(h=Math.PI-h,d=360-d,s=-s-e.getHeight());var f=this.rotate(u/2-e.getWidth()/2,s,0,0,h),p=this.rotate(0,0,e.getWidth()/2,e.getHeight()/2,h);e.setRotationAngle(d),e.setPosition(f.x-p.x+a.x,f.y-p.y+a.y)}},rotate:function(t,e,n,i,r){var a=Math.cos,o=Math.sin;return{x:(t-n)*a(r)-(e-i)*o(r)+n,y:(t-n)*o(r)+(e-i)*a(r)+i}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.TopLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.TopLocator",init:function(){this._super()},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox(),a=n instanceof r.default.Port?i.w/2:0,o=e.getBoundingBox();e instanceof r.default.Port?e.setPosition(i.w/2-a,0):e.setPosition(i.w/2-o.w/2-a,-(o.h+2))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.BottomLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.BottomLocator",init:function(){this._super()},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox(),a=n instanceof r.default.Port?i.w/2:0,o=e.getBoundingBox();e instanceof r.default.Port?e.setPosition(i.w/2-a,i.h):e.setPosition(i.w/2-o.w/2-a,2+i.h)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.LeftLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.LeftLocator",init:function(t){this._super(),this.margin=t&&"margin"in t?t.margin:5},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox(),a=n instanceof r.default.Port?i.h/2:0;if(e instanceof r.default.Port)e.setPosition(0,i.h/2-a);else{var o=e.getBoundingBox();e.setPosition(-o.w-this.margin,i.h/2-o.h/2-a)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.RightLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.RightLocator",init:function(t){this._super(),this.margin=t&&"margin"in t?t.margin:5},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox(),a=n instanceof r.default.Port?i.h/2:0;if(e instanceof r.default.Port)e.setPosition(i.w,i.h/2-a);else{var o=e.getBoundingBox();e.setPosition(i.w+this.margin,i.h/2-o.h/2-a)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.locator.CenterLocator=r.default.layout.locator.Locator.extend({NAME:"draw2d.layout.locator.CenterLocator",init:function(){this._super()},relocate:function(t,e){var n=e.getParent(),i=n.getBoundingBox();if(e instanceof r.default.Port)e.setPosition(i.w/2,i.h/2);else{var a=e.getBoundingBox();e.setPosition(.5+(i.w/2-a.w/2|0),.5+(i.h/2-a.h/2|0))}}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.policy.EditPolicy=Class.extend({NAME:"draw2d.policy.EditPolicy",init:function(t,e,n){this.setterWhitelist=(0,s.default)({},e),this.getterWhitelist=(0,s.default)({},n),this.attr(t)},attr:function(t,e){if($.isPlainObject(t))for(var n in t){var i=this.setterWhitelist[n];i?i.call(this,t[n]):"function"==typeof t[n]&&(this[n]=t[n].bind(this))}else if("string"==typeof t){if(void 0===e){var r=this.getterWhitelist[t];if("function"==typeof r)return r.call(this);return}"function"==typeof e&&(e=e());var a=this.setterWhitelist[t];a&&a.call(this,e)}else if(void 0===t){var o={};for(key in this.getterWhitelist)o[key]=this.getterWhitelist[key].call(this);return o}return this},onInstall:function(t){},onUninstall:function(t){}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(5),s=i(o);a.default.policy.canvas.CanvasPolicy=a.default.policy.EditPolicy.extend({NAME:"draw2d.policy.canvas.CanvasPolicy",init:function(t,e,n){this.canvas=null,this._super(t,e,n)},onInstall:function(t){this.canvas=t},onUninstall:function(t){this.canvas=null},onClick:function(t,e,n,i,r){},onMouseMove:function(t,e,n,i,r){},onDoubleClick:function(t,e,n,i,r){},onMouseDown:function(t,e,n,i,r){},onMouseDrag:function(t,e,n,i,r,a,o){},onMouseUp:function(t,e,n,i,r){},onRightMouseDown:function(t,e,n,i,r){},onMouseWheel:function(t,e,n,i,r){return!0},snap:function(t,e,n,i){return n},createMonochromGif:function(t,e,n,i){i=new s.default(i);for(var r=String.fromCharCode(t%256)+String.fromCharCode(t/256)+String.fromCharCode(e%256)+String.fromCharCode(e/256),o="GIF89a"+r+"ð\0\0ÿÿÿ"+String.fromCharCode(i.red)+String.fromCharCode(i.green)+String.fromCharCode(i.blue)+"!ù\0\0\0,\0\0\0\0"+r+"\0",c={bit:1,byte_:0,data:"",writeBit:function(t){t&&(this.byte_|=this.bit),this.bit<<=1,256==this.bit&&(this.bit=1,this.data+=String.fromCharCode(this.byte_),this.byte_=0)},get:function(){var t="",e=this.data;1!=this.bit&&(e+=String.fromCharCode(this.byte_));for(var n=0;n<e.length+1;n+=255)chunklen=e.length-n,chunklen<0&&(chunklen=0),chunklen>255&&(chunklen=255),t+=String.fromCharCode(chunklen)+e.substring(n,n+255);return t+"\0"}},l=0;l<e;l++)for(var u=0;u<t;u++)c.writeBit(n[u+t*l]),c.writeBit(0),c.writeBit(0),c.writeBit(0),c.writeBit(0),c.writeBit(1);return o+=c.get()+";","data:image/gif;base64,"+a.default.util.Base64.encode(o)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i),a=n(3);r.default.policy.canvas.ZoomPolicy=r.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.ZoomPolicy",init:function(){this._super()},onInstall:function(t){this._super(t),t.setZoom(1)},onUninstall:function(t){this._super(t)},setZoom:function(t,e){var n=this.canvas,i=function(t){n.zoomFactor=Math.min(Math.max(.01,t),10);var e=n.initialWidth*n.zoomFactor|0,i=n.initialHeight*n.zoomFactor|0;n.paper.setViewBox(0,0,e,i),n.fireEvent("zoom",{value:n.zoomFactor})};if(e){(new a.Tweenable).tween({from:{x:n.zoomFactor},to:{x:t},duration:300,easing:"easeOutSine",step:function(t){i(t.x)},finish:function(t){n.fireEvent("zoomed",{value:n.zoomFactor})}})}else i(t),n.fireEvent("zoomed",{value:n.zoomFactor})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i),a=n(3);r.default.policy.canvas.WheelZoomPolicy=r.default.policy.canvas.ZoomPolicy.extend({NAME:"draw2d.policy.canvas.WheelZoomPolicy",init:function(){this._super(),this.center=null;var t=this;this.debouncedZoomedCallback=this._debounce(function(){var e=t.canvas;null!==e&&e.fireEvent("zoomed",{value:e.zoomFactor}),t.center=null},200)},onInstall:function(t){this._super(t),t.setZoom(1),t.__wheelZoom=1},onUninstall:function(t){this._super(t),delete t.__wheelZoom},onMouseWheel:function(t,e,n,i,r){if(!1===i)return!0;t/=1024;var a=(1e4*Math.min(5,Math.max(.1,this.canvas.zoomFactor+t))|0)/1e4;if(null===this.center){var o=this.canvas.fromCanvasToDocumentCoordinate(e,n);this.center={x:e,y:n,clientX:o.x,clientY:o.y}}return this._zoom(a,this.center),this.debouncedZoomedCallback(),!1},setZoom:function(t,e){var n=this.canvas.getScrollTop(),i=this.canvas.getScrollLeft(),r=this.canvas.getScrollArea().width(),o=this.canvas.getScrollArea().width(),s=n+o/2*this.canvas.zoomFactor,c=i+r/2*this.canvas.zoomFactor,l=this;if(e){(new a.Tweenable).tween({from:{x:this.canvas.zoomFactor},to:{x:t},duration:300,easing:"easeOutSine",step:function(t){l._zoom(t.x,c,s)},finish:function(t){l.debouncedZoomedCallback()}})}else this._zoom(t,{x:c,y:s}),this.debouncedZoomedCallback()},_zoom:function(t,e){var n=this.canvas;if(t!==n.zoomFactor){if(n.zoomFactor=t,n.paper.setViewBox(0,0,n.initialWidth,n.initialHeight),$(n.html).find("svg").attr({width:n.initialWidth/t,height:n.initialHeight/t}),e.clientX){var i=n.fromCanvasToDocumentCoordinate(e.x,e.y);n.scrollTo(this.canvas.getScrollTop()-(e.clientY-i.y),n.getScrollLeft()-(e.clientX-i.x))}n.fireEvent("zoom",{value:n.zoomFactor})}},_debounce:function(t,e,n){var i;return function(){var r=this,a=arguments,o=function(){i=null,n||t.apply(r,a)},s=n&&!i;clearTimeout(i),i=setTimeout(o,e),s&&t.apply(r,a)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.KeyboardPolicy=r.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.KeyboardPolicy",init:function(t,e,n){this._super(t,e,n)},onKeyUp:function(t,e,n,i){},onKeyDown:function(t,e,n,i){}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.DefaultKeyboardPolicy=r.default.policy.canvas.KeyboardPolicy.extend({NAME:"draw2d.policy.canvas.DefaultKeyboardPolicy",init:function(){this._super()},onKeyDown:function(t,e,n,i){if(46===e&&null!==t.getPrimarySelection()){t.getCommandStack().startTransaction(r.default.Configuration.i18n.command.deleteShape);var a=t.getSelection();a.each(function(e,n){if(n instanceof r.default.Connection){if(a.contains(n.getSource(),!0))return;if(a.contains(n.getTarget(),!0))return}var i=n.createCommand(new r.default.command.CommandType(r.default.command.CommandType.DELETE));null!==i&&t.getCommandStack().execute(i)}),t.getCommandStack().commitTransaction()}else this._super(t,e,n,i)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.ExtendedKeyboardPolicy=r.default.policy.canvas.KeyboardPolicy.extend({NAME:"draw2d.policy.canvas.ExtendedKeyboardPolicy",init:function(){this._super()},onKeyDown:function(t,e,n,i){if(null!==t.getPrimarySelection()&&!0===i)switch(e){case 71:t.getPrimarySelection()instanceof r.default.shape.composite.Group&&1===t.getSelection().getSize()?t.getCommandStack().execute(new r.default.command.CommandUngroup(t,t.getPrimarySelection())):t.getCommandStack().execute(new r.default.command.CommandGroup(t,t.getSelection()));break;case 66:t.getPrimarySelection().toBack();break;case 70:t.getPrimarySelection().toFront()}else this._super(t,e,n,i)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.SelectionPolicy=r.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.SelectionPolicy",init:function(t,e,n){this._super(t,e,n)},select:function(t,e){},unselect:function(t,e){t.getSelection().remove(e),e.unselect(),t.fireEvent("unselect",{figure:e}),t.fireEvent("select",{figure:null})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.SingleSelectionPolicy=r.default.policy.canvas.SelectionPolicy.extend({NAME:"draw2d.policy.canvas.SingleSelectionPolicy",init:function(){this._super(),this.mouseMovedDuringMouseDown=!1,this.mouseDraggingElement=null,this.mouseDownElement=null},select:function(t,e){if(!t.getSelection().contains(e)){var n=t.getSelection().getPrimary();null!==t.getSelection().getPrimary()&&this.unselect(t,t.getSelection().getPrimary()),null!==e&&e.select(!0),t.getSelection().setPrimary(e),n!==e&&t.fireEvent("select",{figure:e})}},onMouseDown:function(t,e,n,i,a){this.mouseMovedDuringMouseDown=!1;for(var o=!0,s=t.getBestFigure(e,n);null!==s;){var c=s.getSelectionAdapter()();if(c===s)break;s=c}s instanceof r.default.Port||(null!==s&&s.isDraggable()&&(o=s.onDragStart(e-s.getAbsoluteX(),n-s.getAbsoluteY(),i,a),this.mouseDraggingElement=!1===o?null:s),this.mouseDownElement=s,null!==this.mouseDownElement&&this.mouseDownElement.fireEvent("mousedown",{x:e,y:n,shiftKey:i,ctrlKey:a}),s!==t.getSelection().getPrimary()&&null!==s&&!0===s.isSelectable()&&(this.select(t,s),s instanceof r.default.shape.basic.Line?s instanceof r.default.Connection||(t.draggingLineCommand=s.createCommand(new r.default.command.CommandType(r.default.command.CommandType.MOVE)),null!==t.draggingLineCommand&&(t.draggingLine=s)):!1===o&&s.unselect()))},onMouseDrag:function(t,e,n,i,a,o,s){if(this.mouseMovedDuringMouseDown=!0,null!==this.mouseDraggingElement){var c=t.getSelection();c.contains(this.mouseDraggingElement)?c.each(function(t,r){r.onDrag(e,n,i,a,o,s)}):this.mouseDraggingElement.onDrag(e,n,i,a,o,s);var l=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor),u=t.getBestFigure(l.x,l.y,this.mouseDraggingElement);u!==t.currentDropTarget&&(null!==t.currentDropTarget&&(t.currentDropTarget.onDragLeave(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.mouseDraggingElement}),t.currentDropTarget=null),null!==u&&(t.currentDropTarget=u.delegateTarget(this.mouseDraggingElement),null!==t.currentDropTarget&&(t.currentDropTarget.onDragEnter(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragEnter",{draggingElement:this.mouseDraggingElement}))))}else null===this.mouseDownElement||this.mouseDownElement instanceof r.default.Connection||(null!==this.mouseDownElement.panningDelegate?(this.mouseDownElement.panningDelegate.fireEvent("panning",{dx:e,dy:n,dx2:i,dy2:a,shiftKey:o,ctrlKey:s}),this.mouseDownElement.panningDelegate.onPanning(e,n,i,a,o,s)):(this.mouseDownElement.fireEvent("panning",{dx:e,dy:n,dx2:i,dy2:a,shiftKey:o,ctrlKey:s}),this.mouseDownElement.onPanning(e,n,i,a,o,s)))},onMouseUp:function(t,e,n,i,a){if(null!==this.mouseDraggingElement){var o=new r.default.util.ArrayList;this.mouseDraggingElement instanceof r.default.shape.node.Node&&t.lineIntersections.each(function(t,e){o.contains(e.line)||o.add(e.line),o.contains(e.other)||o.add(e.other)}),t.getCommandStack().startTransaction();t.getSelection().getAll().contains(this.mouseDraggingElement)?t.getSelection().getAll().each(function(t,r){r.onDragEnd(e,n,i,a)}):this.mouseDraggingElement.onDragEnd(e,n,i,a),null===t.currentDropTarget||this.mouseDraggingElement.isResizeHandle||(this.mouseDraggingElement.onDrop(t.currentDropTarget,e,n,i,a),t.currentDropTarget.onDragLeave(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.mouseDraggingElement}),t.currentDropTarget.onCatch(this.mouseDraggingElement,e,n,i,a),t.currentDropTarget=null),t.getCommandStack().commitTransaction(),this.mouseDraggingElement instanceof r.default.shape.node.Node&&(t.lineIntersections.each(function(t,e){o.contains(e.line)||o.add(e.line),o.contains(e.other)||o.add(e.other)}),o.each(function(t,e){e.svgPathString=null,e.repaint()})),this.mouseDraggingElement=null}else null===this.mouseDownElement||this.mouseDownElement instanceof r.default.Connection||(null!==this.mouseDownElement.panningDelegate?(this.mouseDownElement.panningDelegate.fireEvent("panningEnd"),this.mouseDownElement.panningDelegate.onPanningEnd()):(this.mouseDownElement.fireEvent("panningEnd"),this.mouseDownElement.onPanningEnd()));null===this.mouseDownElement&&!1===this.mouseMovedDuringMouseDown&&this.select(t,null),null!==this.mouseDownElement&&this.mouseDownElement.fireEvent("mouseup",{x:e,y:n,shiftKey:i,ctrlKey:a}),this.mouseDownElement=null,this.mouseMovedDuringMouseDown=!1},onClick:function(t,e,n,i,r){null!==t&&(t.fireEvent("click",{figure:t,x:e,y:n,relX:e-t.getAbsoluteX(),relY:n-t.getAbsoluteY(),shiftKey:i,ctrlKey:r}),t.onClick())},onDoubleClick:function(t,e,n,i,r){null!==t&&(t.fireEvent("dblclick",{x:e,y:n,shiftKey:i,ctrlKey:r}),t.onDoubleClick())}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.GhostMoveSelectionPolicy=r.default.policy.canvas.SingleSelectionPolicy.extend({NAME:"draw2d.policy.canvas.GhostMoveSelectionPolicy",init:function(){this.clone=null,this.ghostRectangle1=null,this.ghostRectangle2=null,this._super()},onMouseDrag:function(t,e,n,i,a,o,s){if(this.mouseMovedDuringMouseDown=!0,null!==this.mouseDraggingElement){var c=t.getSelection().getAll();c.contains(this.mouseDraggingElement)?(null===this.ghostRectangle1?(this.ghostRectangle1=new r.default.shape.basic.Rectangle,this.ghostRectangle1.setBackgroundColor("#303030"),this.ghostRectangle1.setAlpha(.1),this.ghostRectangle2=new r.default.shape.basic.Rectangle,this.ghostRectangle2.setDashArray("- "),this.ghostRectangle2.setStroke(1),this.ghostRectangle2.setColor("#5497DC"),this.ghostRectangle2.setBackgroundColor(null),this.ghostRectangle1.setBoundingBox(this.mouseDraggingElement.getBoundingBox()),this.ghostRectangle2.setBoundingBox(this.mouseDraggingElement.getBoundingBox()),this.ghostRectangle1.setCanvas(t),this.ghostRectangle1.toFront(),this.ghostRectangle2.setCanvas(t),this.ghostRectangle2.toFront(),this.clone=this.mouseDraggingElement.clone(),this.clone instanceof r.default.shape.node.Node&&this.clone.resetPorts(),this.clone.setCanvas(t),this.clone.getShapeElement(),this.clone.setAlpha(.4),this.clone.repaint()):(this.ghostRectangle1.translate(i,a),this.ghostRectangle2.translate(i,a),this.clone.translate(i,a)),c.each(function(t,i){i._newPos=new r.default.geo.Point(i.ox+e,i.oy+n)})):this.mouseDraggingElement.onDrag(e,n,i,a,o,s);var l=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor),u=t.getBestFigure(l.x,l.y,this.mouseDraggingElement);u!==t.currentDropTarget&&(null!==t.currentDropTarget&&(t.currentDropTarget.onDragLeave(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.draggingElement}),t.currentDropTarget=null),null!==u&&(t.currentDropTarget=u.delegateTarget(this.mouseDraggingElement),null!==t.currentDropTarget&&(t.currentDropTarget.onDragEnter(this.mouseDraggingElement),t.currentDropTarget.fireEvent("dragEnter",{draggingElement:this.draggingElement}))))}else null===this.mouseDownElement||this.mouseDownElement instanceof r.default.Connection||(null!==this.mouseDownElement.panningDelegate?(this.mouseDownElement.panningDelegate.fireEvent("panning",{dx:e,dy:n,dx2:i,dy2:a,shiftKey:o,ctrlKey:s}),this.mouseDownElement.panningDelegate.onPanning(e,n,i,a,o,s)):(this.mouseDownElement.fireEvent("panning",{dx:e,dy:n,dx2:i,dy2:a,shiftKey:o,ctrlKey:s}),this.mouseDownElement.onPanning(e,n,i,a,o,s)))},onMouseUp:function(t,e,n,i,a){if(null!==this.ghostRectangle1&&(this.ghostRectangle1.setCanvas(null),this.ghostRectangle1=null,this.ghostRectangle2.setCanvas(null),this.ghostRectangle2=null,this.clone.setCanvas(null),this.clone=null),null!==this.mouseDraggingElement){var o=new r.default.util.ArrayList;this.mouseDraggingElement instanceof r.default.shape.node.Node&&t.lineIntersections.each(function(t,e){o.contains(e.line)||o.add(e.line),o.contains(e.other)||o.add(e.other)}),t.getCommandStack().startTransaction();t.getSelection().getAll().contains(this.mouseDraggingElement)?t.getSelection().getAll().each(function(t,r){r._newPos&&(r.setPosition(r._newPos),delete r._newPos),r.onDragEnd(e,n,i,a)}):this.mouseDraggingElement.onDragEnd(e,n,i,a),null===t.currentDropTarget||this.mouseDraggingElement.isResizeHandle||(this.mouseDraggingElement.onDrop(t.currentDropTarget,e,n,i,a),t.currentDropTarget.onDragLeave(this.mouseDraggingElement),t.currentDropTarget.onCatch(this.mouseDraggingElement,e,n,i,a),t.currentDropTarget=null),t.getCommandStack().commitTransaction(),this.mouseDraggingElement instanceof r.default.shape.node.Node&&(t.lineIntersections.each(function(t,e){o.contains(e.line)||o.add(e.line),o.contains(e.other)||o.add(e.other)}),o.each(function(t,e){e.svgPathString=null,e.repaint()})),this.mouseDraggingElement=null}null===this.mouseDownElement&&!1===this.mouseMovedDuringMouseDown&&this.select(t,null),this.mouseDownElement=null,this.mouseMovedDuringMouseDown=!1}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.PanningSelectionPolicy=r.default.policy.canvas.SingleSelectionPolicy.extend({NAME:"draw2d.policy.canvas.PanningSelectionPolicy",init:function(){this._super()},onMouseDrag:function(t,e,n,i,r,a,o){if(this._super(t,e,n,i,r,a,o),null===this.mouseDraggingElement&&null===this.mouseDownElement){var s=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor);if(null===t.getBestFigure(s.x,s.y)){var c=t.getScrollArea();c.scrollTop(c.scrollTop()-r),c.scrollLeft(c.scrollLeft()-i)}}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.BoundingboxSelectionPolicy=r.default.policy.canvas.SingleSelectionPolicy.extend({NAME:"draw2d.policy.canvas.BoundingboxSelectionPolicy",init:function(){this.isInsideMode=function(t,e){return t.isInside(e)},this.intersectsMode=function(t,e){return t.intersects(e)},this.decision=this.isInsideMode,this._super(),this.boundingBoxFigure1=null,this.boundingBoxFigure2=null,this.x=0,this.y=0,this.canDrawBoundingBox=!1},select:function(t,e){if(!t.getSelection().contains(e)){var n=t.getSelection().getPrimary();null!==e&&e.select(!0),n!==e&&(t.getSelection().setPrimary(e),t.fireEvent("select",{figure:e}));var i=this,a=t.getSelection();t.getLines().each(function(e,n){n instanceof r.default.Connection&&a.contains(n.getSource().getRoot())&&a.contains(n.getTarget().getRoot())&&i.select(t,n,!1)})}},setDecisionMode:function(t){return this.decision=!0===t?this.intersectsMode:this.isInsideMode,this},onMouseDown:function(t,e,n,i,a){try{var o=this;this.x=e,this.y=n;var s=t.getSelection().getAll();this.mouseMovedDuringMouseDown=!1;var c=!0;this.canDrawBoundingBox=!1;for(var l=t.getBestFigure(e,n);null!==l;){var u=l.getSelectionAdapter()();if(u===l)break;l=u}if(l instanceof r.default.Port)return;this.canDrawBoundingBox=!0,null!==l&&l.isDraggable()&&(c=l.onDragStart(e-l.getAbsoluteX(),n-l.getAbsoluteY(),i,a),this.mouseDraggingElement=!1===c?null:l),this.mouseDownElement=l,null!==this.mouseDownElement&&this.mouseDownElement.fireEvent("mousedown",{x:e,y:n,shiftKey:i,ctrlKey:a}),!1===i&&(null===this.mouseDownElement||!1!==this.mouseDownElement.isResizeHandle||s.contains(this.mouseDownElement)||s.each(function(e,n){o.unselect(t,n)})),l!==t.getSelection().getPrimary()&&null!==l&&!0===l.isSelectable()&&(this.select(t,l),l instanceof r.default.shape.basic.Line?l instanceof r.default.Connection||(t.draggingLineCommand=l.createCommand(new r.default.command.CommandType(r.default.command.CommandType.MOVE)),null!==t.draggingLineCommand&&(t.draggingLine=l)):!1===c&&l.unselect()),null!==this.mouseDownElement&&!1===this.mouseDownElement.isResizeHandle&&(s=t.getSelection().getAll(),s.each(function(e,n){var s=1,c=1,l=n.getHandleBBox();null!==l&&(l.translate(n.getAbsolutePosition().scale(-1)),s=l.x+1,c=l.y+1);var u=n.onDragStart(s,c,i,a,!0);n instanceof r.default.shape.basic.Line||!1===u&&o.unselect(t,n)}))}catch(t){console.log(t)}},onMouseDrag:function(t,e,n,i,a,o,s){if(!1!==this.canDrawBoundingBox)try{this._super(t,e,n,i,a,o,s),null===this.mouseDraggingElement&&null===this.mouseDownElement&&null===this.boundingBoxFigure1&&(this.boundingBoxFigure1=new r.default.shape.basic.Rectangle({width:1,height:1,x:this.x,y:this.y,bgColor:"#d4d1d4",alpha:.1}),this.boundingBoxFigure1.setCanvas(t),this.boundingBoxFigure2=new r.default.shape.basic.Rectangle({width:1,height:1,x:this.x,y:this.y,dash:"--..",stroke:.5,color:"#37a8ff",bgColor:null}),this.boundingBoxFigure2.setCanvas(t)),null!==this.boundingBoxFigure1&&(this.boundingBoxFigure1.setDimension(Math.abs(e),Math.abs(n)),this.boundingBoxFigure1.setPosition(this.x+Math.min(0,e),this.y+Math.min(0,n)),this.boundingBoxFigure2.setDimension(Math.abs(e),Math.abs(n)),this.boundingBoxFigure2.setPosition(this.x+Math.min(0,e),this.y+Math.min(0,n)))}catch(t){console.log(t)}},onMouseUp:function(t,e,n,i,a){try{var o=this;if(null===this.mouseDownElement)t.getSelection().getAll().each(function(e,n){o.unselect(t,n)});else if(this.mouseDownElement instanceof r.default.ResizeHandle||this.mouseDownElement instanceof r.default.shape.basic.LineResizeHandle);else if(null!==this.mouseDownElement&&!1===this.mouseMovedDuringMouseDown){var s=t.getSelection().getAll();s.contains(this.mouseDownElement)||t.getSelection().getAll().each(function(e,n){o.unselect(t,n)})}if(this._super(t,e,n,i,a),null!==this.boundingBoxFigure1){var c=this.boundingBoxFigure1.getBoundingBox();t.getFigures().each(function(e,n){if(!0===n.isSelectable()&&o.decision(n.getBoundingBox(),c)){var r=1,s=1,l=n.getHandleBBox();null!==l&&(l.translate(n.getAbsolutePosition().scale(-1)),r=l.x+1,s=l.y+1);!0===n.onDragStart(r,s,i,a)&&o.select(t,n,!1)}}),this.boundingBoxFigure1.setCanvas(null),this.boundingBoxFigure1=null,this.boundingBoxFigure2.setCanvas(null),this.boundingBoxFigure2=null}}catch(t){console.log(t)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.ReadOnlySelectionPolicy=r.default.policy.canvas.SelectionPolicy.extend({NAME:"draw2d.policy.canvas.ReadOnlySelectionPolicy",init:function(t,e,n){this._super(t,e,n)},onInstall:function(t){this._super(t),t.getAllPorts().each(function(t,e){e.setVisible(!1)})},onUninstall:function(t){t.getAllPorts().each(function(t,e){e.setVisible(!0)}),this._super(t)},onMouseDrag:function(t,e,n,i,r,a,o){var s=t.getScrollArea();s.scrollTop(s.scrollTop()-r),s.scrollLeft(s.scrollLeft()-i)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.DecorationPolicy=r.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.DecorationPolicy",init:function(t,e,n){this._super(t,e,n)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.FadeoutDecorationPolicy=r.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.FadeoutDecorationPolicy",DEFAULT_FADEOUT_DURATION:60,DEFAULT_ALPHA_DECREMENT:.05,init:function(){this._super(),this.alpha=1,this.alphaDec=this.DEFAULT_ALPHA_DECREMENT,this.hidePortsCounter=this.DEFAULT_FADEOUT_DURATION,this.portDragging=!1},onInstall:function(t){this._super(t),this.timerId=window.setInterval(this.onTimer.bind(this),50),this.hidePortsCounter=1,this.alpha=.1},onUninstall:function(t){window.clearInterval(this.timerId),this.canvas.getAllPorts().each(function(t,e){e.setAlpha(1)}),this._super(t)},onTimer:function(){this.hidePortsCounter--;var t=this;this.hidePortsCounter<=0&&this.alpha>0?(this.alpha=Math.max(0,this.alpha-this.alphaDec),this.canvas.getAllPorts().each(function(e,n){n.setAlpha(t.alpha)}),this.canvas.getSelection().getAll().each(function(e,n){n.selectionHandles.each(function(e,n){n.setAlpha(t.alpha)})})):this.hidePortsCounter>0&&1!==this.alpha&&(this.alpha=1,this.alphaDec=this.DEFAULT_ALPHA_DECREMENT,this.duringHide=!1,this.canvas.getAllPorts().each(function(e,n){n.setAlpha(t.alpha)}),this.canvas.getSelection().getAll().each(function(e,n){n.selectionHandles.each(function(e,n){n.setAlpha(t.alpha)})}))},onMouseDown:function(t,e,n,i,a){this.hidePortsCounter=this.DEFAULT_FADEOUT_DURATION,this.portDragging=t.getBestFigure(e,n)instanceof r.default.Port},onMouseMove:function(t,e,n,i,r){this.hidePortsCounter=this.DEFAULT_FADEOUT_DURATION,this.portDragging=!1},onMouseDrag:function(t,e,n,i,r,a,o){!1===this.portDragging&&(this.hidePortsCounter=0,this.alphaDec=.1,this.onTimer())},onMouseUp:function(t,e,n,i,r){this.hidePortsCounter=this.DEFAULT_FADEOUT_DURATION,this.portDragging=!1}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.policy.canvas.CoronaDecorationPolicy=a.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.CoronaDecorationPolicy",init:function(t,e,n){this.startDragX=0,this.startDragY=0,this.diameterToBeFullVisible=0,this.diameterToBeVisible=0,this.sumDiameter=0,this._super((0,s.default)({diameterToBeVisible:200,diameterToBeFullVisible:20},t),(0,s.default)({diameterToBeVisible:this.setDiameterToBeVisible,diameterToBeFullVisible:this.setDiameterToBeFullVisible},e),(0,s.default)({diameterToBeVisible:this.getDiameterToBeVisible,diameterToBeFullVisible:this.getDiameterToBeFullVisible},n))},setDiameterToBeVisible:function(t){this.diameterToBeVisible=t,this.sumDiameter=this.diameterToBeFullVisible+this.diameterToBeVisible},getDiameterToBeVisible:function(){return this.diameterToBeVisible},setDiameterToBeFullVisible:function(t){this.diameterToBeFullVisible=t,this.sumDiameter=this.diameterToBeFullVisible+this.diameterToBeVisible},getDiameterToBeFullVisible:function(){return this.diameterToBeFullVisible},onInstall:function(t){this._super(t),t.getFigures().each(function(t,e){e.getPorts().each(function(t,e){e.setVisible(!1)})})},onUninstall:function(t){this._super(t),t.getFigures().each(function(t,e){e.getPorts().each(function(t,e){e.__origAlpha&&(e.setAlpha(e.__origAlpha),delete e.__origAlpha),e.setVisible(!0)})})},onMouseDown:function(t,e,n,i,r){this.startDragX=e,this.startDragY=n},onMouseMove:function(t,e,n,i,r){this.updatePorts(t,e,n)},onMouseDrag:function(t,e,n,i,r,a,o){this.updatePorts(t,this.startDragX+e,this.startDragY+n)},updatePorts:function(t,e,n){var i=t.getFigures(),r=this;i.each(function(t,i){i instanceof a.default.shape.node.Node&&(!0===i.isVisible()&&!0===i.hitTest(e,n,r.sumDiameter)?i.getPorts().each(function(t,o){!1===o.isVisible()&&(o.__origAlpha=i.getAlpha());var s=i.getBoundingBox().getDistance(new a.default.geo.Point(e,n)),c=1-100/(r.diameterToBeVisible-r.diameterToBeFullVisible)*s/100;o.setAlpha(c),o.setVisible(!0)}):i.getPorts().each(function(t,e){e.__origAlpha&&(e.setAlpha(e.__origAlpha),delete e.__origAlpha),e.setVisible(!1)}))})}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.SnapToHelper={},a.default.SnapToHelper.NORTH=1,a.default.SnapToHelper.SOUTH=4,a.default.SnapToHelper.WEST=8,a.default.SnapToHelper.EAST=16,a.default.SnapToHelper.CENTER_H=32,a.default.SnapToHelper.CENTER_V=642,a.default.SnapToHelper.NORTH_EAST=a.default.SnapToHelper.NORTH|a.default.SnapToHelper.EAST,a.default.SnapToHelper.NORTH_WEST=a.default.SnapToHelper.NORTH|a.default.SnapToHelper.WEST,a.default.SnapToHelper.SOUTH_EAST=a.default.SnapToHelper.SOUTH|a.default.SnapToHelper.EAST,a.default.SnapToHelper.SOUTH_WEST=a.default.SnapToHelper.SOUTH|a.default.SnapToHelper.WEST,a.default.SnapToHelper.NORTH_SOUTH=a.default.SnapToHelper.NORTH|a.default.SnapToHelper.SOUTH,a.default.SnapToHelper.EAST_WEST=a.default.SnapToHelper.EAST|a.default.SnapToHelper.WEST,a.default.SnapToHelper.NSEW=a.default.SnapToHelper.NORTH_SOUTH|a.default.SnapToHelper.EAST_WEST,a.default.policy.canvas.SnapToEditPolicy=a.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.SnapToEditPolicy",init:function(t,e,n){this.lineColor=null,this._super((0,s.default)({lineColor:"#51C1FC"},t),(0,s.default)({lineColor:this.setLineColor},e),(0,s.default)({lineColor:this.getLineColor},n))},setLineColor:function(t){return this.lineColor=new a.default.util.Color(t),this},getLineColor:function(){return this.lineColor},snap:function(t,e,n,i){return n}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.ShowGridEditPolicy=r.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.ShowGridEditPolicy",GRID_COLOR:"#f0f0f0",GRID_WIDTH:20,init:function(t){this.color=new r.default.util.Color(this.GRID_COLOR),this.zoom=1,this.svg=null,this._super(),this.grid="number"==typeof t?t:this.GRID_WIDTH},onInstall:function(t){this._super(t),this.zoom=t.getZoom(),this.setGrid(this.grid)},onUninstall:function(t){this._super(t),null!==this.svg&&this.svg.remove()},setGridColor:function(t){this.color=new r.default.util.Color(t),this.setGrid(this.grid)},setGrid:function(t){if(this.grid=t,null!=this.canvas){null!==this.svg&&this.svg.remove();var e=this.canvas.paper,n=this.grid,i=e.width,r=e.height,a={stroke:this.color.hash()};e.setStart();for(var o=n+.5;o<r;o+=n)e.path([["M",0,o],["L",i,o]]).attr(a);for(var s=n+.5;s<i;s+=n)e.path([["M",s,0],["L",s,r]]).attr(a);this.svg=e.setFinish(),this.svg.toBack()}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.SnapToGridEditPolicy=r.default.policy.canvas.ShowGridEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToGridEditPolicy",init:function(t){this._super(t)},snap:function(t,e,n,i){if(e instanceof r.default.shape.basic.Line)return n;var a=e.getSnapToGridAnchor();return n.x=n.x+a.x,n.y=n.y+a.y,n.x=this.grid*Math.floor((n.x+this.grid/2)/this.grid),n.y=this.grid*Math.floor((n.y+this.grid/2)/this.grid),n.x=n.x-a.x,n.y=n.y-a.y,n}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.ShowDotEditPolicy=r.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.ShowDotEditPolicy",DOT_COLOR:"#999999",DOT_RADIUS:1,DOT_DISTANCE:20,init:function(t,e,n){this._super(),this.dotDistance=t||this.DOT_DISTANCE,this.dotRadius=e||this.DOT_RADIUS,this.dotColor=new r.default.util.Color(n||this.DOT_COLOR);var i=Array(this.dotDistance*this.dotDistance);i[0]=1,this.imageDataURL=this.createMonochromGif(this.dotDistance,this.dotDistance,i,this.dotColor)},onInstall:function(t){this._super(t),this.oldBg=this.canvas.html.css("background-image"),$(t.paper.canvas).css({"background-image":"url('"+this.imageDataURL+"')"})},onUninstall:function(t){this._super(t),$(t.paper.canvas).css({"background-image":this.oldBg})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.ShowChessboardEditPolicy=r.default.policy.canvas.DecorationPolicy.extend({NAME:"draw2d.policy.canvas.ShowChessboardEditPolicy",GRID_COLOR:"#e0e0e0",GRID_WIDTH:20,init:function(t){this._super(),this.cells=null,this.grid=t||this.GRID_WIDTH},onInstall:function(t){this._super(t),this.showGrid()},onUninstall:function(t){this.cells.remove(),this._super(t)},showGrid:function(){var t=this.canvas.initialWidth,e=this.canvas.initialHeight;this.cells=this.canvas.paper.set();for(var n=!1,i=n,r=0;r<t;r+=this.grid){for(var a=0;a<e;a+=this.grid){if(n){var o=this.canvas.paper.rect(r,a,this.grid,this.grid);o.attr({fill:this.GRID_COLOR,"stroke-width":0}),this.cells.push(o)}n=!n}i=!i,n=i}this.cells.toBack()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.SnapToGeometryEditPolicy=r.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToGeometryEditPolicy",SNAP_THRESHOLD:3,FADEOUT_DURATION:300,init:function(t,e,n){this._super(t,e,n),this.rows=null,this.cols=null,this.vline=null,this.hline=null},onMouseUp:function(t,e,n,i,r){this.rows=null,this.cols=null,this.hideVerticalLine(),this.hideHorizontalLine()},snap:function(t,e,n,i){if(e instanceof r.default.shape.basic.Line)return n;var a,o=n.x===i.x,s=n.y===i.y;if(!o&&!s)return n;if(e instanceof r.default.ResizeHandle){var c=e.getSnapToGridAnchor();n.x+=c.x,n.y+=c.y;var l=e.getSnapToDirection();return a=this.snapPoint(l,n),o&&l&r.default.SnapToHelper.EAST_WEST&&!(a.edge&r.default.SnapToHelper.EAST_WEST)?this.showVerticalLine(e,r.default.SnapToHelper.WEST,a.point.x):this.hideVerticalLine(),s&&l&r.default.SnapToHelper.NORTH_SOUTH&&!(a.edge&r.default.SnapToHelper.NORTH_SOUTH)?this.showHorizontalLine(e,r.default.SnapToHelper.NORTH,a.point.y):this.hideHorizontalLine(),a.point.x=o?a.point.x-c.x:n.x,a.point.y=s?a.point.y-c.y:n.y,a.point}var u=new r.default.geo.Rectangle(n.x,n.y,e.getWidth(),e.getHeight());return a=this.snapRectangle(u),o||(a.bounds.x=n.x),s||(a.bounds.y=n.y),!o||a.edge&r.default.SnapToHelper.WEST?!o||a.edge&r.default.SnapToHelper.EAST?this.hideVerticalLine():this.showVerticalLine(e,r.default.SnapToHelper.EAST,a.bounds.x+a.bounds.getWidth()):this.showVerticalLine(e,r.default.SnapToHelper.WEST,a.bounds.x),!s||a.edge&r.default.SnapToHelper.NORTH?!s||a.edge&r.default.SnapToHelper.SOUTH?this.hideHorizontalLine():this.showHorizontalLine(e,r.default.SnapToHelper.SOUTH,a.bounds.y+a.bounds.getHeight()):this.showHorizontalLine(e,r.default.SnapToHelper.NORTH,a.bounds.y),a.bounds.getTopLeft()},snapRectangle:function(t){var e=t.clone(),n=this.snapPoint(r.default.SnapToHelper.NORTH_WEST,t.getTopLeft());e.x=n.point.x,e.y=n.point.y;var i=this.snapPoint(r.default.SnapToHelper.SOUTH_EAST,t.getBottomRight());return n.edge&r.default.SnapToHelper.WEST&&(e.x=i.point.x-t.getWidth()),n.edge&r.default.SnapToHelper.NORTH&&(e.y=i.point.y-t.getHeight()),{edge:n.edge|i.edge,bounds:e}},snapPoint:function(t,e){var n=e.clone();if(null!==this.rows&&null!==this.cols||this.populateRowsAndCols(),0!=(t&r.default.SnapToHelper.EAST)){var i=this.getCorrectionFor(this.cols,e.x+1,1);i!==this.SNAP_THRESHOLD&&(t&=~r.default.SnapToHelper.EAST,n.x+=i)}if(0!=(t&r.default.SnapToHelper.WEST)){var a=this.getCorrectionFor(this.cols,e.x,-1);a!==this.SNAP_THRESHOLD&&(t&=~r.default.SnapToHelper.WEST,n.x+=a)}if(0!=(t&r.default.SnapToHelper.SOUTH)){var o=this.getCorrectionFor(this.rows,e.y+1,1);o!==this.SNAP_THRESHOLD&&(t&=~r.default.SnapToHelper.SOUTH,n.y+=o)}if(0!=(t&r.default.SnapToHelper.NORTH)){var s=this.getCorrectionFor(this.rows,e.y,-1);s!==this.SNAP_THRESHOLD&&(t&=~r.default.SnapToHelper.NORTH,n.y+=s)}return{edge:t,point:n}},populateRowsAndCols:function(){var t=this.canvas.getSelection();this.rows=[],this.cols=[];for(var e=this.canvas.getFigures(),n=0;n<e.getSize();n++){var i=e.get(n);if(!t.contains(i,!0)){var r=i.getBoundingBox();this.cols.push({type:-1,location:r.x}),this.cols.push({type:0,location:r.x+(r.w-1)/2}),this.cols.push({type:1,location:r.getRight()+1}),this.rows.push({type:-1,location:r.y}),this.rows.push({type:0,location:r.y+(r.h-1)/2}),this.rows.push({type:1,location:r.getBottom()+1})}}},getCorrectionFor:function(t,e,n){for(var i=this.SNAP_THRESHOLD,r=this.SNAP_THRESHOLD,a=0;a<t.length;a++){var o,s=t[a];-1===s.type&&0!==n?(o=Math.abs(e-s.location))<i&&(i=o,r=s.location-e):0===s.type&&0===n?(o=Math.abs(e-s.location))<i&&(i=o,r=s.location-e):1===s.type&&0!==n&&(o=Math.abs(e-s.location))<i&&(i=o,r=s.location-e)}return r},showVerticalLine:function(t,e,n){null!=this.vline&&(this.vline.stop(),this.vline.remove());var i=this.canvas.getFigures().clone();if(i.removeAll(this.canvas.getSelection().getAll(!0)),i.map(function(t){return t.getBoundingBox()}),i.grep(function(t){return Math.abs(t.x-n)<=1||Math.abs(t.getRight()-n)<=1}),0!==i.getSize()){var r=t.getBoundingBox(),a=r.getCenter();i.sort(function(t,e){return t.getCenter().getDistance(a)-e.getCenter().getDistance(a)});var o=0,s=this.canvas.getHeight()*Math.max(1,this.canvas.getZoom()),c=s,l=i.get(0);r.y<l.y?(o=r.y,c=l.getBottom()-r.y):(o=l.y,c=r.getBottom()-l.y),n=.5+(0|n),this.canvas.paper.setStart(),this.canvas.paper.path("M "+n+" 0 l 0 "+s).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+n+" "+o+" l 0 "+c).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.vline=this.canvas.paper.setFinish(),this.vline.toBack()}},hideVerticalLine:function(){var t=this;null!=this.vline&&this.vline.animate({opacity:.1},this.FADEOUT_DURATION,function(){null!==t.vline&&(t.vline.remove(),t.vline=null)})},showHorizontalLine:function(t,e,n){null!=this.hline&&(this.hline.stop(),this.hline.remove());var i=this.canvas.getFigures().clone();if(i.removeAll(this.canvas.getSelection().getAll(!0)),i.map(function(t){return t.getBoundingBox()}),i.grep(function(t){return Math.abs(t.y-n)<=1||Math.abs(t.getBottom()-n)<=1}),0!==i.getSize()){var r=t.getBoundingBox(),a=r.getCenter();i.sort(function(t,e){return t.getCenter().getDistance(a)-e.getCenter().getDistance(a)});var o,s=0,c=o=this.canvas.getWidth()*Math.max(1,this.canvas.getZoom()),l=i.get(0);r.x<l.x?(s=r.x,c=l.getRight()-r.x):(s=l.x,c=r.getRight()-l.x),n=.5+(0|n),this.canvas.paper.setStart(),this.canvas.paper.path("M 0 "+n+" l "+o+" 0").attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+s+" "+n+" l "+c+" 0").attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.hline=this.canvas.paper.setFinish(),this.hline.toBack()}},hideHorizontalLine:function(){var t=this;null!==this.hline&&this.hline.animate({opacity:.1},this.FADEOUT_DURATION,function(){null!==t.hline&&(t.hline.remove(),t.hline=null)})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.SnapToVerticesEditPolicy=r.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToVerticesEditPolicy",SNAP_THRESHOLD:3,FADEOUT_DURATION:300,init:function(t,e,n){this._super(t,e,n),this.constraints=null,this.vline=null,this.hline=null},onMouseUp:function(t,e,n,i,r){this.constraints=null,this.hideVerticalLine(),this.hideHorizontalLine()},snap:function(t,e,n,i){if(!(e instanceof r.default.shape.basic.VertexResizeHandle))return n;var a=n.x===i.x,o=n.y===i.y;if(!a&&!o)return n;var s=n.clone(),c=this.getCorrectionFor(e,i);return a&&c.vertical.x!==Number.MAX_SAFE_INTEGER?(s.x=c.vertical.x,this.showVerticalLine(i,c.vertical)):this.hideVerticalLine(),o&&c.horizontal.y!==Number.MAX_SAFE_INTEGER?(s.y=c.horizontal.y,this.showHorizontalLine(i,c.horizontal)):this.hideHorizontalLine(),s},getCorrectionFor:function(t,e){var n=this;if(null===this.constraints){this.constraints=[];this.canvas.getLines().each(function(e,i){i.getVertices().each(function(e,r){t.index===e&&t.owner===i||n.constraints.push(r)})})}for(var i,r,a=this.SNAP_THRESHOLD,o={x:Number.MAX_SAFE_INTEGER,y:Number.MAX_SAFE_INTEGER,diffy:Number.MAX_SAFE_INTEGER},s={x:Number.MAX_SAFE_INTEGER,y:Number.MAX_SAFE_INTEGER,diffx:Number.MAX_SAFE_INTEGER},c=0;c<this.constraints.length;c++){var l=this.constraints[c];i=Math.abs(e.x-l.x),r=Math.abs(e.y-l.y),i<a&&r<o.diffy&&(o={x:l.x,y:l.y,diffy:r}),r<a&&i<s.diffx&&(s={x:l.x,y:l.y,diffx:i})}return{vertical:o,horizontal:s}},showVerticalLine:function(t,e){null!=this.vline&&(this.vline.stop(),this.vline.remove());var n=this.canvas.getHeight(),i=.5+(0|e.x);this.canvas.paper.setStart(),this.canvas.paper.path("M "+i+" 0 l 0 "+n).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+i+" "+t.y+" L "+i+" "+e.y).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.vline=this.canvas.paper.setFinish(),this.vline.toBack()},hideVerticalLine:function(){var t=this;null!=this.vline&&this.vline.animate({opacity:.1},this.FADEOUT_DURATION,function(){null!==t.vline&&(t.vline.remove(),t.vline=null)})},showHorizontalLine:function(t,e){null!=this.hline&&(this.hline.stop(),this.hline.remove());var n=this.canvas.getWidth(),i=.5+(0|e.y);this.canvas.paper.setStart(),this.canvas.paper.path("M 0 "+i+" l "+n+" 0").attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+t.x+" "+i+" L "+e.x+" "+i).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.hline=this.canvas.paper.setFinish(),this.hline.toBack()},hideHorizontalLine:function(){var t=this;null!==this.hline&&this.hline.animate({opacity:.1},this.FADEOUT_DURATION,function(){null!==t.hline&&(t.hline.remove(),t.hline=null)})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.SnapToInBetweenEditPolicy=r.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToInBetweenEditPolicy",SNAP_THRESHOLD:5,FADEOUT_DURATION:500,init:function(t,e,n){this._super(t,e,n),this.bounds=null,this.horizontalGuideLines=null,this.verticalGuideLines=null},onMouseUp:function(t,e,n,i,r){this.bounds=null,this.hideHorizontalGuides(!1),this.hideVerticalGuides(!1)},snap:function(t,e,n,i){if(e instanceof r.default.ResizeHandle)return n;if(e instanceof r.default.shape.basic.Line)return n;var a=n.x===i.x,o=n.y===i.y,s=new r.default.geo.Rectangle(n.x,n.y,e.getWidth(),e.getHeight());if(n=n.clone(),!0===a){var c=this.snapHorizontal(s);c.snapped?(this.showHorizontalGuides(e,c),n.x+=c.diff):this.hideHorizontalGuides(!0)}else this.hideHorizontalGuides(!0);if(!0===o){var l=this.snapVertical(s);l.snapped?(this.showVerticalGuides(e,l),n.y+=l.diff):this.hideVerticalGuides(!0)}else this.hideVerticalGuides(!0);return n},snapHorizontal:function(t){var e=t.getCenter();null===this.bounds&&this.populateBounds();var n={point:e,snapped:!1,snappedBox:t.clone()},i=null,a=[],o=e.clone();if(o.x=0,this.bounds.forEach(function(t,n){null!==(i=r.default.shape.basic.Line.intersection(t.getTopRight(),t.getBottomRight(),e,o))&&(i.causedBBox=t,a.push(i))}),0===a.length)return n;a.sort(function(t,e){return e.x-t.x});var s=[],c=e.clone();if(c.x=Number.MAX_SAFE_INTEGER,this.bounds.forEach(function(t,n){null!==(i=r.default.shape.basic.Line.intersection(t.getTopLeft(),t.getBottomLeft(),e,c))&&(i.causedBBox=t,s.push(i))}),0===s.length)return n;s.sort(function(t,e){return t.x-e.x});var l=t.clone(),u=(a[0].x+s[0].x)/2-e.x;return l.x+=u,{snapped:Math.abs(u)<this.SNAP_THRESHOLD,snappedRect:l,diff:u,leftSide:a[0],rightSide:s[0]}},snapVertical:function(t){var e=t.getCenter();null===this.bounds&&this.populateBounds();var n={point:e,snapped:!1,snappedBox:t.clone()},i=null,a=[],o=e.clone();if(o.y=0,this.bounds.forEach(function(t){null!==(i=r.default.shape.basic.Line.intersection(t.getBottomLeft(),t.getBottomRight(),e,o))&&(i.causedBBox=t,a.push(i))}),0===a.length)return n;a.sort(function(t,e){return e.y-t.y});var s=[],c=e.clone();if(c.y=Number.MAX_SAFE_INTEGER,this.bounds.forEach(function(t){null!==(i=r.default.shape.basic.Line.intersection(t.getTopLeft(),t.getTopRight(),e,c))&&(i.causedBBox=t,s.push(i))}),0===s.length)return n;s.sort(function(t,e){return t.y-e.y});var l=t.clone(),u=(a[0].y+s[0].y)/2-e.y;return l.y+=u,{snapped:Math.abs(u)<this.SNAP_THRESHOLD,snappedRect:l,diff:u,topSide:a[0],bottomSide:s[0]}},populateBounds:function(){var t=this.canvas.getSelection().getAll(!0),e=this.bounds=[];this.canvas.getFigures().each(function(n,i){t.contains(i)||e.push(i.getBoundingBox())})},showHorizontalGuides:function(t,e){null!=this.horizontalGuideLines&&(this.horizontalGuideLines.stop(),this.horizontalGuideLines.remove());var n=e.snappedRect.getTopLeft(),i=e.snappedRect.getTopRight(),r=.5+(Math.min(e.leftSide.causedBBox.getTopRight().y,Math.min(e.rightSide.causedBBox.y,t.getY()))-50|0);this.canvas.paper.setStart(),this.canvas.paper.path("M "+(.5+(0|e.leftSide.x))+" "+r+" L "+(.5+(0|e.leftSide.x))+" "+e.leftSide.y).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+(.5+(0|n.x))+" "+r+" L "+(.5+(0|n.x))+" "+n.y).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+(.5+(0|i.x))+" "+r+" L "+(.5+(0|i.x))+" "+i.y).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+(.5+(0|e.rightSide.x))+" "+r+" L "+(.5+(0|e.rightSide.x))+" "+e.rightSide.y).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+e.leftSide.x+" "+(r+5)+" L "+n.x+" "+(r+5)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path("M "+e.rightSide.x+" "+(r+5)+" L "+i.x+" "+(r+5)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path(" M "+(e.leftSide.x+5)+" "+r+" L "+e.leftSide.x+" "+(r+5)+" L "+(e.leftSide.x+5)+" "+(r+10)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path(" M "+(n.x-5)+" "+r+" L "+n.x+" "+(r+5)+" L "+(n.x-5)+" "+(r+10)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path(" M "+(i.x+5)+" "+r+" L "+i.x+" "+(r+5)+" L "+(i.x+5)+" "+(r+10)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path(" M "+(e.rightSide.x-5)+" "+r+" L "+e.rightSide.x+" "+(r+5)+" L "+(e.rightSide.x-5)+" "+(r+10)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.horizontalGuideLines=this.canvas.paper.setFinish(),this.horizontalGuideLines.toFront()},hideHorizontalGuides:function(t){var e=this;null!=this.horizontalGuideLines&&(!0===t?null!==this.horizontalGuideLines&&(this.horizontalGuideLines.remove(),this.horizontalGuideLines=null):this.horizontalGuideLines.animate({opacity:.1},this.FADEOUT_DURATION,function(){null!==e.horizontalGuideLines&&(e.horizontalGuideLines.remove(),e.horizontalGuideLines=null)}))},showVerticalGuides:function(t,e){null!=this.verticalGuideLines&&(this.verticalGuideLines.stop(),this.verticalGuideLines.remove());var n=e.snappedRect.getTopRight(),i=e.snappedRect.getBottomRight(),r=.5+(Math.max(e.topSide.causedBBox.getRight(),Math.max(e.bottomSide.causedBBox.getRight(),t.getX()))+40|0);this.canvas.paper.setStart(),this.canvas.paper.path("M "+r+" "+(.5+(0|e.topSide.y))+" L "+(.5+(0|e.topSide.x))+" "+(.5+(0|e.topSide.y))).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+r+" "+(.5+(0|n.y))+" L "+(.5+(0|n.x))+" "+(.5+(0|n.y))).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+r+" "+(.5+(0|i.y))+" L "+(.5+(0|i.x))+" "+(.5+(0|i.y))).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+r+" "+(.5+(0|e.bottomSide.y))+" L "+(.5+(0|e.bottomSide.x))+" "+(.5+(0|e.bottomSide.y))).attr({stroke:this.lineColor.hash(),"stroke-width":1,"stroke-dasharray":". "}),this.canvas.paper.path("M "+(r-5)+" "+(.5+(0|e.topSide.y))+" L "+(r-5)+" "+(.5+(0|n.y))).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path("M "+(r-5)+" "+(.5+(0|e.bottomSide.y))+" L "+(r-5)+" "+(.5+(0|i.y))).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path(" M "+(r-10)+" "+(e.topSide.y+5)+" L "+(r-5)+" "+e.topSide.y+" L "+r+" "+(e.topSide.y+5)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path(" M "+(r-10)+" "+(n.y-5)+" L "+(r-5)+" "+n.y+" L "+r+" "+(n.y-5)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path(" M "+(r-10)+" "+(i.y+5)+" L "+(r-5)+" "+i.y+" L "+r+" "+(i.y+5)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.canvas.paper.path(" M "+(r-10)+" "+(e.bottomSide.y-5)+" L "+(r-5)+" "+e.bottomSide.y+" L "+r+" "+(e.bottomSide.y-5)).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.verticalGuideLines=this.canvas.paper.setFinish(),this.verticalGuideLines.toFront()},hideVerticalGuides:function(){var t=this;null!=this.verticalGuideLines&&this.verticalGuideLines.animate({opacity:.1},this.FADEOUT_DURATION,function(){null!==t.verticalGuideLines&&(t.verticalGuideLines.remove(),t.verticalGuideLines=null)})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.SnapToCenterEditPolicy=r.default.policy.canvas.SnapToEditPolicy.extend({NAME:"draw2d.policy.canvas.SnapToCenterEditPolicy",SNAP_THRESHOLD:5,FADEOUT_DURATION:500,init:function(t,e,n){this._super(t,e,n),this.centers=null,this.horizontalGuideLines=null,this.verticalGuideLines=null},onMouseUp:function(t,e,n,i,r){this.centers=null,this.hideHorizontalGuides(!1),this.hideVerticalGuides(!1)},snap:function(t,e,n,i){if(e instanceof r.default.ResizeHandle)return n;if(e instanceof r.default.shape.basic.Line)return n;var a=n.x===i.x,o=n.y===i.y,s=new r.default.geo.Rectangle(n.x,n.y,e.getWidth(),e.getHeight()),c=s.getCenter();if(n=n.clone(),!0===a){var l=this.snapHorizontal(c);l.snapped?(this.showHorizontalGuides(e,l),n.y+=l.diff):this.hideHorizontalGuides(!0)}else this.hideHorizontalGuides(!0);if(!0===o){var u=this.snapVertical(c);u.snapped?(this.showVerticalGuides(e,u),n.x+=u.diff):this.hideVerticalGuides(!0)}else this.hideVerticalGuides(!0);return n},snapVertical:function(t){var e=this;null===this.centers&&this.populateCenters();var n={point:t,snapped:!1,diff:0},i=[];if(this.centers.forEach(function(n){Math.abs(n.x-t.x)<e.SNAP_THRESHOLD&&i.push(n)}),0===i.length)return n;i.sort(function(t,e){return t.x-e.x});var r=i[0].x-t.x,a=t.clone();return a.x+=r,{snapped:!0,diff:r,point:i[0],snappedPoint:a}},snapHorizontal:function(t){var e=this;null===this.centers&&this.populateCenters();var n={point:t,snapped:!1,diff:0},i=[];if(this.centers.forEach(function(n){Math.abs(n.y-t.y)<e.SNAP_THRESHOLD&&i.push(n)}),0===i.length)return n;i.sort(function(t,e){return t.y-e.y});var r=i[0].y-t.y,a=t.clone();return a.y+=r,{snapped:!0,diff:r,point:i[0],snappedPoint:a}},populateCenters:function(){var t=this.canvas.getSelection().getAll(!0),e=this.centers=[];this.canvas.getFigures().each(function(n,i){t.contains(i)||e.push(i.getBoundingBox().getCenter())})},showHorizontalGuides:function(t,e){null!==this.horizontalGuideLines&&(this.horizontalGuideLines.stop(),this.horizontalGuideLines.remove());var n=e.point,i=e.snappedPoint;this.canvas.paper.setStart(),this.canvas.paper.path("M "+n.x+" "+(.5+(0|n.y))+" L "+i.x+" "+(.5+(0|i.y))).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.horizontalGuideLines=this.canvas.paper.setFinish(),this.horizontalGuideLines.toFront()},hideHorizontalGuides:function(t){var e=this;null!==this.horizontalGuideLines&&(!0===t?null!==this.horizontalGuideLines&&(this.horizontalGuideLines.remove(),this.horizontalGuideLines=null):this.horizontalGuideLines.animate({opacity:.1},this.FADEOUT_DURATION,function(){null!==e.horizontalGuideLines&&(e.horizontalGuideLines.remove(),e.horizontalGuideLines=null)}))},showVerticalGuides:function(t,e){null!==this.verticalGuideLines&&(this.verticalGuideLines.stop(),this.verticalGuideLines.remove());var n=e.point,i=e.snappedPoint;this.canvas.paper.setStart(),this.canvas.paper.path("M "+(.5+(0|n.x))+" "+n.y+" L "+(.5+(0|i.x))+" "+i.y).attr({stroke:this.lineColor.hash(),"stroke-width":1}),this.verticalGuideLines=this.canvas.paper.setFinish(),this.verticalGuideLines.toFront()},hideVerticalGuides:function(t){var e=this;null!==this.verticalGuideLines&&(!0===t?null!==this.verticalGuideLines&&(this.verticalGuideLines.remove(),this.verticalGuideLines=null):this.verticalGuideLines.animate({opacity:.1},this.FADEOUT_DURATION,function(){null!==e.verticalGuideLines&&(e.verticalGuideLines.remove(),e.verticalGuideLines=null)}))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.canvas.DropInterceptorPolicy=r.default.policy.canvas.CanvasPolicy.extend({NAME:"draw2d.policy.canvas.DropInterceptorPolicy",init:function(t,e,n){this._super(t,e,n)},delegateTarget:function(t,e){return!(t instanceof r.default.Port)&&e instanceof r.default.shape.composite.StrongComposite?e:e instanceof r.default.Port&&t instanceof r.default.Port?e.getConnections().getSize()>=e.getMaxFanOut()?null:t instanceof r.default.OutputPort&&e instanceof r.default.OutputPort?null:t instanceof r.default.InputPort&&e instanceof r.default.InputPort?null:t instanceof r.default.Port&&e instanceof r.default.Port&&t.getParent()===e.getParent()?null:t instanceof r.default.Port&&e instanceof r.default.shape.node.Hub?e.getHybridPort(0):e:null}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.connection.ConnectionCreatePolicy=r.default.policy.canvas.KeyboardPolicy.extend({NAME:"draw2d.policy.connection.ConnectionCreatePolicy",init:function(t,e,n){this._super(t,e,n)},createConnection:function(){return new r.default.Connection({router:new r.default.layout.connection.DirectRouter})},ripple:function(t,e,n){switch(n){case 0:var i=this.canvas.paper.circle(t,e,3,3).attr({fill:null,stroke:"#d0d0ff"}),r=Raphael.animation({transform:"s6",opacity:0,"stroke-width":3},500,"linear",function(){i.remove()});return i.animate(r),this.canvas.paper.set();case 1:var a=this.canvas.paper.circle(t,e,3,3).attr({fill:null,stroke:"#3f72bf"}),o=this.canvas.paper.circle(t,e,3,3).attr({fill:null,stroke:"#ff0000"}),s=Raphael.animation({transform:"s6",opacity:0,"stroke-width":1},1200,"linear").repeat(1/0);a.animate(s);var c=Raphael.animation({transform:"s12",opacity:0,"stroke-width":4},500,"linear",function(){o.remove()});return o.animate(c),a}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.connection.ComposedConnectionCreatePolicy=r.default.policy.connection.ConnectionCreatePolicy.extend({NAME:"draw2d.policy.connection.ComposedConnectionCreatePolicy",init:function(t){this.policies=t,this._super()},onMouseDown:function(){var t=arguments;this.policies.forEach(function(e){e.onMouseDown.apply(e,t)})},onMouseDrag:function(){var t=arguments;this.policies.forEach(function(e){e.onMouseDrag.apply(e,t)})},onMouseUp:function(){var t=arguments;this.policies.forEach(function(e){e.onMouseUp.apply(e,t)})},onClick:function(){var t=arguments;this.policies.forEach(function(e){e.onClick.apply(e,t)})},onMouseMove:function(){var t=arguments;this.policies.forEach(function(e){e.onMouseMove.apply(e,t)})},onKeyUp:function(t,e,n,i){var r=arguments;this.policies.forEach(function(t){t.onKeyUp.apply(t,r)})},onKeyDown:function(t,e,n,i){var r=arguments;this.policies.forEach(function(t){t.onKeyDown.apply(t,r)})},onInstall:function(t){var e=arguments;this.policies.forEach(function(t){t.onInstall.apply(t,e)})},onUninstall:function(t){var e=arguments;this.policies.forEach(function(t){t.onUninstall.apply(t,e)})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.connection.ClickConnectionCreatePolicy=r.default.policy.connection.ConnectionCreatePolicy.extend({NAME:"draw2d.policy.connection.ClickConnectionCreatePolicy",init:function(t,e,n){this._super(t,e,n),this.port1=null,this.beeline=null,this.pulse=null,this.tempConnection=null,this.vertices=[]},onClick:function(t,e,n,i,a){var o=this,s=t;if(null!==s||null!==this.port1){if(null===s)return this.vertices.push(new r.default.geo.Point(e,n)),this.beeline.setStartPosition(e,n),this.tempConnection.setVertices(this.vertices),null!==this.pulse&&(this.pulse.remove(),this.pulse=null),void this.ripple(e,n,0);if(s instanceof r.default.Port){if(null===this.port1){var c=s.getCanvas();this.port1=s,this.vertices.push(s.getAbsolutePosition()),this.beeline=new r.default.shape.basic.Line({start:this.port1.getAbsolutePosition(),end:this.port1.getAbsolutePosition(),dasharray:"- ",color:"#2C70FF"}),this.beeline.hide=function(){o.beeline.setCanvas(null)},this.beeline.show=function(t){o.beeline.setCanvas(t),o.beeline.shape.toFront()},this.beeline.show(c),this.tempConnection=new r.default.shape.basic.PolyLine({start:this.port1.getAbsolutePosition(),end:this.port1.getAbsolutePosition(),stroke:2,color:"#2C70FF"}),this.tempConnection.hide=function(){o.tempConnection.setCanvas(null)},this.tempConnection.show=function(t){o.tempConnection.setCanvas(t),o.tempConnection.shape.toFront()},this.tempConnection.show(c),this.tempConnection.setVertices([this.port1.getAbsolutePosition(),this.port1.getAbsolutePosition()]);var l=function(){o.tempConnection.shape.animate({"stroke-width":2},800,u)},u=function(){o.tempConnection.shape.animate({"stroke-width":1},800,l)};l();var h=s.getAbsolutePosition();return void(this.pulse=this.ripple(h.x,h.y,1))}if(s.delegateTarget(this.port1)instanceof r.default.Port){var d=new r.default.command.CommandType(r.default.command.CommandType.CONNECT);d.source=this.port1,d.target=s;var f=null;f=this.port1 instanceof r.default.InputPort?this.port1.createCommand(d):s.createCommand(d),null!==f&&(this.vertices.push(s.getPosition()),f.setConnection(this.createConnection()),t.getCanvas().getCommandStack().execute(f),this.beeline.hide(),this.tempConnection.hide(),null!==this.pulse&&(this.pulse.remove(),this.pulse=null),this.beeline=null,this.port1=null,this.vertices=[])}}}},onMouseMove:function(t,e,n,i,r){null!==this.beeline&&this.beeline.setEndPosition(e,n)},onKeyDown:function(t,e,n,i){27===e&&null!==this.beeline&&(this.beeline.hide(),this.tempConnection.hide(),this.beeline=null,this.port1=null,this.vertices=[],null!=this.pulse&&(this.pulse.remove(),this.pulse=null))},createConnection:function(){var t=this._super();return 2===this.vertices.length?t.setRouter(new r.default.layout.connection.DirectRouter):(t.setRouter(new r.default.layout.connection.VertexRouter),t.setVertices(this.vertices)),t.setRadius(10),t}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.connection.OrthogonalConnectionCreatePolicy=r.default.policy.connection.ConnectionCreatePolicy.extend({NAME:"draw2d.policy.connection.ClickConnectionCreatePolicy",init:function(t,e,n){this._super(t,e,n),this.port1=null,this.beeline=null,this.pulse=null,this.tempConnection=null,this.vertices=new r.default.util.ArrayList},onClick:function(t,e,n,i,a){var o=r.default.geo.Rectangle.DIRECTION_UP,s=r.default.geo.Rectangle.DIRECTION_RIGHT,c=r.default.geo.Rectangle.DIRECTION_DOWN,l=r.default.geo.Rectangle.DIRECTION_LEFT,u=this,h=t;if(null!==h||null!==this.port1){if(null===h){var d=this.port1.getCanvas(),f=this.beeline.getEndPosition();return this.vertices.add(f),this.beeline.setStartPosition(this.beeline.getEndPosition()),this.tempConnection.setVertices(this.vertices),null!==this.pulse&&(this.pulse.remove(),this.pulse=null),void this.ripple(f.x,f.y,0)}if(h instanceof r.default.Port)if(null===this.port1){var d=h.getCanvas();this.port1=h,this.vertices.add(h.getAbsolutePosition()),this.beeline=new r.default.shape.basic.Line({start:this.port1.getAbsolutePosition(),end:this.port1.getAbsolutePosition(),dasharray:"- ",color:"#2C70FF"}),this.beeline.hide=function(){u.beeline.setCanvas(null)},this.beeline.show=function(t){u.beeline.setCanvas(t),u.beeline.shape.toFront()},this.beeline.show(d),this.tempConnection=new r.default.shape.basic.PolyLine({start:this.port1.getAbsolutePosition(),end:this.port1.getAbsolutePosition(),stroke:2,color:"#2C70FF"}),this.tempConnection.hide=function(){u.tempConnection.setCanvas(null)},this.tempConnection.show=function(t){u.tempConnection.setCanvas(t),u.tempConnection.shape.toFront()},this.tempConnection.show(d),this.tempConnection.setVertices([this.port1.getAbsolutePosition(),this.port1.getAbsolutePosition()]);var p=function(){u.tempConnection.shape.animate({"stroke-width":2},800,g)},g=function(){u.tempConnection.shape.animate({"stroke-width":1},800,p)};p(),d.paper.setStart(),null!==this.pulse&&(this.pulse.remove(),this.pulse=null);var m=h.getAbsolutePosition();this.ripple(m.x,m.y,1),this.pulse=d.paper.setFinish()}else{var v=h.delegateTarget(this.port1);if(!(v instanceof r.default.Port))return;var y=new r.default.command.CommandType(r.default.command.CommandType.CONNECT);y.source=this.port1,y.target=h;var x=null;if(null!==(x=this.port1 instanceof r.default.InputPort?this.port1.createCommand(y):h.createCommand(y))){var b=this.createConnection();if(x.setConnection(b),h.getCanvas().getCommandStack().execute(x),this.beeline.hide(),this.tempConnection.hide(),null!==this.pulse&&(this.pulse.remove(),this.pulse=null),this.beeline=null,this.port1=null,this.vertices.getSize()<=2)return;var w=x.getConnection().getRouter().MINDIST,C=this.vertices.get(this.vertices.getSize()-2),_=this.vertices.last(),M=h.getAbsolutePosition(),S=o;switch(S=_.x===C.x?_.y<C.y?o:c:_.x<C.x?l:s,h.getConnectionDirection(this.port1)){case o:switch(S){case o:_.y<M.y-w?(this.vertices.add(new r.default.geo.Point(M.x,_.y)),this.vertices.add(M)):(_.y=M.y-w,this.vertices.add(new r.default.geo.Point(M.x,_.y)),this.vertices.add(M));break;case s:_.y>M.y-w?(C.y=M.y-w,_.x=M.x,_.y=C.y,this.vertices.add(M)):(_.x=M.x,this.vertices.add(M));break;case c:_.y<M.y-w?(C.x=M.x,_.setPosition(M)):(_.y=M.y-w,this.vertices.add(new r.default.geo.Point(M.x,_.y)),this.vertices.add(M));break;case l:_.y>M.y-w?(C.y=M.y-w,_.x=M.x,_.y=C.y,this.vertices.add(M)):(_.x=M.x,this.vertices.add(M))}break;case s:switch(S){case o:_.x>M.x+w?(_.y=M.y,this.vertices.add(M)):(this.vertices.add(new r.default.geo.Point(M.x+w,_.y)),this.vertices.add(new r.default.geo.Point(M.x+w,M.y)),this.vertices.add(M));break;case s:_.x>M.x+w?(this.vertices.add(new r.default.geo.Point(_.x,M.y)),this.vertices.add(M)):(_.x=M.x+w,this.vertices.add(new r.default.geo.Point(_.x,M.y)),this.vertices.add(M));break;case c:_.x>M.x+w?(_.y=M.y,this.vertices.add(M)):(this.vertices.add(new r.default.geo.Point(M.x+w,_.y)),this.vertices.add(new r.default.geo.Point(M.x+w,M.y)),this.vertices.add(M));break;case l:_.x>M.x+w?(this.vertices.add(new r.default.geo.Point(_.x,M.y)),this.vertices.add(M)):(_.x=M.x+w,this.vertices.add(new r.default.geo.Point(_.x,M.y)),this.vertices.add(M))}break;case c:switch(S){case o:_.y<M.y+w?(_.y=M.y+w,this.vertices.add(new r.default.geo.Point(M.x,_.y)),this.vertices.add(M)):(_.x=M.x,_.y=M.y,C.x=M.x);break;case s:_.y<M.y+w?(this.vertices.add(new r.default.geo.Point(_.x,M.y+w)),this.vertices.add(new r.default.geo.Point(M.x,M.y+w)),this.vertices.add(M)):(_.x=M.x,this.vertices.add(M));break;case c:_.y<M.y+w?(_.y=M.y+w,this.vertices.add(new r.default.geo.Point(M.x,_.y)),this.vertices.add(M)):(this.vertices.add(new r.default.geo.Point(M.x,_.y)),this.vertices.add(M));break;case l:_.y<M.y-w?(C.y=M.y-w,_.x=M.x,_.y=C.y,this.vertices.add(M)):(_.x=M.x,this.vertices.add(M))}break;case l:switch(S){case o:_.x>=M.x-w?(this.vertices.add(new r.default.geo.Point(M.x-w,_.y)),this.vertices.add(new r.default.geo.Point(M.x-w,M.y)),this.vertices.add(M)):_.y>M.y&&_.x<M.x-w?(_.y=M.y,this.vertices.add(M)):(this.vertices.add(new r.default.geo.Point(M.x-w,_.y)),this.vertices.add(new r.default.geo.Point(M.x-w,M.y)),this.vertices.add(M));break;case s:if(_.y<M.y&&_.x>M.x-w){var E=M.y-(M.y-_.y)/2;this.vertices.add(new r.default.geo.Point(_.x,E)),this.vertices.add(new r.default.geo.Point(M.x-w,E)),this.vertices.add(new r.default.geo.Point(M.x-w,M.y)),this.vertices.add(M)}else if(_.y>M.y&&_.x>M.x-w){var E=M.y+(_.y-M.y)/2;this.vertices.add(new r.default.geo.Point(_.x,E)),this.vertices.add(new r.default.geo.Point(M.x-w,E)),this.vertices.add(new r.default.geo.Point(M.x-w,M.y)),this.vertices.add(M)}else this.vertices.add(new r.default.geo.Point(_.x,M.y)),this.vertices.add(M);break;case c:_.x>=M.x-w?(this.vertices.add(new r.default.geo.Point(M.x-w,_.y)),this.vertices.add(new r.default.geo.Point(M.x-w,M.y)),this.vertices.add(M)):(_.y=M.y,this.vertices.add(M));break;case l:_.x<M.x-w?(this.vertices.add(new r.default.geo.Point(_.x,M.y)),this.vertices.add(M)):(_.x=M.x-w,this.vertices.add(new r.default.geo.Point(_.x,M.y)),this.vertices.add(M))}}this.vertices.getSize()>3&&(b._routingMetaData.routedByUserInteraction=!0,b.setVertices(this.vertices)),this.vertices.clear()}}}},onMouseMove:function(t,e,n,i,r){null!==this.beeline&&this.beeline.setEndPosition(this.orthogonal(this.vertices.last(),{x:e,y:n}))},onKeyDown:function(t,e,n,i){27===e&&null!==this.beeline&&(this.beeline.hide(),this.tempConnection.hide(),this.beeline=null,this.port1=null,this.vertices.clear(),null!=this.pulse&&(this.pulse.remove(),this.pulse=null))},orthogonal:function(t,e){var n=Math.abs(t.x-e.x)+10,i=r.default.geo.Line.distance(t.x-n,t.y,t.x+n,t.y,e.x,e.y),a=Math.abs(t.y-e.y)+10;return r.default.geo.Line.distance(t.x,t.y-a,t.x,t.y+a,e.x,e.y)>i?{x:e.x,y:t.y}:{x:t.x,y:e.y}},createConnection:function(){var t=this._super();return t.attr({radius:7,stroke:3}),t.setRouter(new r.default.layout.connection.InteractiveManhattanConnectionRouter),t}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.connection.DragConnectionCreatePolicy=r.default.policy.connection.ConnectionCreatePolicy.extend({NAME:"draw2d.policy.connection.DragConnectionCreatePolicy",init:function(t,e,n){this._super(t,e,n),this.mouseDraggingElement=null,this.currentDropTarget=null,this.currentTarget=null},onMouseDown:function(t,e,n,i,a){var o=t.getBestFigure(e,n);if(null!==o&&o instanceof r.default.Port&&(!0===o.isInDragDrop&&(o.onDragEnd(e,n,i,a),o.isInDragDrop=!1),o.isDraggable())){var s=o.onDragStart(e-o.getAbsoluteX(),n-o.getAbsoluteY(),i,a);s&&o.fireEvent("dragstart",{x:e-o.getAbsoluteX(),y:n-o.getAbsoluteY(),shiftKey:i,ctrlKey:a}),this.mouseDraggingElement=!1===s?null:o,this.mouseDownElement=o}},onMouseDrag:function(t,e,n,i,a,o,s){try{if(null!==this.mouseDraggingElement){var c=this.mouseDraggingElement,l=this.currentTarget;c.isInDragDrop=!0,c.onDrag(e,n,i,a,o,s);var u=t.getBestFigure(c.getAbsoluteX(),c.getAbsoluteY(),c);u!==l&&(null!==l&&(l.onDragLeave(c),l.fireEvent("dragLeave",{draggingElement:c}),c.editPolicy.each(function(e,n){n instanceof r.default.policy.port.PortFeedbackPolicy&&n.onHoverLeave(t,c,l)})),null!==u?(this.currentTarget=l=u.delegateTarget(c),null!==l&&(l.onDragEnter(c),l.fireEvent("dragEnter",{draggingElement:c}),c.editPolicy.each(function(e,n){n instanceof r.default.policy.port.PortFeedbackPolicy&&n.onHoverEnter(t,c,l)}))):this.currentTarget=null);var h=t.fromDocumentToCanvasCoordinate(t.mouseDownX+e/t.zoomFactor,t.mouseDownY+n/t.zoomFactor),u=t.getBestFigure(h.x,h.y,this.mouseDraggingElement);u!==this.currentDropTarget&&(null!==this.currentDropTarget&&(this.currentDropTarget.onDragLeave(this.mouseDraggingElement),this.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.mouseDraggingElement}),this.currentDropTarget=null),null!==u&&(this.currentDropTarget=u.delegateTarget(this.mouseDraggingElement),null!==this.currentDropTarget&&(this.currentDropTarget.onDragEnter(this.mouseDraggingElement),this.currentDropTarget.fireEvent("dragEnter",{draggingElement:this.mouseDraggingElement}))))}}catch(t){console.log(t)}},onMouseUp:function(t,e,n,i,a){if(null!==this.mouseDraggingElement){var o=this.mouseDraggingElement,s=this.currentTarget;if(t.getCommandStack().startTransaction(),o.onDragEnd(e,n,i,a),s&&o.editPolicy.each(function(e,n){n instanceof r.default.policy.port.PortFeedbackPolicy&&n.onHoverLeave(t,o,s)}),o.editPolicy.each(function(s,c){c instanceof r.default.policy.figure.DragDropEditPolicy&&c.onDragEnd(t,o,e,n,i,a)}),this.currentTarget=null,o.isInDragDrop=!1,o.fireEvent("dragend",{x:e,y:n,shiftKey:i,ctrlKey:a}),null!==this.currentDropTarget&&(this.mouseDraggingElement.onDrop(this.currentDropTarget,e,n,i,a),this.currentDropTarget.onDragLeave(this.mouseDraggingElement),this.currentDropTarget.fireEvent("dragLeave",{draggingElement:this.mouseDraggingElement}),this.currentDropTarget instanceof r.default.Port)){var c=new r.default.command.CommandType(r.default.command.CommandType.CONNECT);c.source=this.currentDropTarget,c.target=this.mouseDraggingElement;var l=this.mouseDraggingElement.createCommand(c);null!==l&&(l.setConnection(this.createConnection()),t.getCommandStack().execute(l),this.currentDropTarget.onCatch(this.mouseDraggingElement,e,n,i,a))}t.getCommandStack().commitTransaction(),this.currentDropTarget=null,this.mouseDraggingElement=null}},createConnection:function(){var t=this._super();return t.setRouter(new r.default.layout.connection.DirectRouter),t}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.FigureEditPolicy=r.default.policy.EditPolicy.extend({NAME:"draw2d.policy.figure.FigureEditPolicy",init:function(t,e,n){this._super(t,e,n)},onRightMouseDown:function(t,e,n,i,r){}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.DragDropEditPolicy=r.default.policy.figure.FigureEditPolicy.extend({NAME:"draw2d.policy.figure.DragDropEditPolicy",init:function(t,e,n){this._super(t,e,n)},onDragStart:function(t,e,n,i,r,a){return e.shape.attr({cursor:"move"}),!0===e.isMoving&&e.setAlpha(e.originalAlpha),e.originalAlpha=e.getAlpha(),e.isMoving=!1,!0},onDrag:function(t,e){!1===e.isMoving&&(e.isMoving=!0,e.setAlpha(.4*e.originalAlpha))},onDragEnd:function(t,e,n,i,r,a){e.shape.attr({cursor:"default"}),e.isMoving=!1,e.setAlpha(e.originalAlpha)},adjustPosition:function(t,e,n){return e instanceof r.default.geo.Point?e:new r.default.geo.Point(e,n)},adjustDimension:function(t,e,n){return new r.default.geo.Rectangle(0,0,e,n)},moved:function(t,e){}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.RegionEditPolicy=r.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.figure.RegionEditPolicy",init:function(t,e,n,i){if(this._super(),t instanceof r.default.geo.Rectangle)this.constRect=t;else{if("number"!=typeof i)throw"Invalid parameter. RegionEditPolicy need a rectangle as parameter in the constructor";this.constRect=new r.default.geo.Rectangle(t,e,n,i)}},setBoundingBox:function(t){return this.constRect=t,this},adjustPosition:function(t,e,n){var i=null;return i=e instanceof r.default.geo.Point?new r.default.geo.Rectangle(e.x,e.y,t.getWidth(),t.getHeight()):new r.default.geo.Rectangle(e,n,t.getWidth(),t.getHeight()),i=this.constRect.moveInside(i),i.getTopLeft()},adjustDimension:function(t,e,n){var i=t.getAbsoluteX()+e-this.constRect.getRight(),r=t.getAbsoluteY()+n-this.constRect.getBottom();return i>0&&(e-=i),r>0&&(n-=r),{w:e,h:n}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.HorizontalEditPolicy=r.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.figure.HorizontalEditPolicy",init:function(t,e,n){this._super(t,e,n)},adjustPosition:function(t,e,n){return new r.default.geo.Point(e,t.getY())}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.VerticalEditPolicy=r.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.figure.VerticalEditPolicy",init:function(t,e,n){this._super(t,e,n)},adjustPosition:function(t,e,n){return new r.default.geo.Point(t.getX(),n)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.SelectionPolicy=r.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.figure.SelectionPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){},onUnselect:function(t,e){}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.SelectionFeedbackPolicy=r.default.policy.figure.SelectionPolicy.extend({NAME:"draw2d.policy.figure.SelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){this._super(t,e,n)},onUnselect:function(t,e){this._super(t,e),e.selectionHandles.each(function(t,e){e.hide()}),e.selectionHandles=new r.default.util.ArrayList},onInstall:function(t){this._super(t);var e=t.getCanvas();null!==e&&e.getSelection().contains(t)&&this.onSelect(e,t,!0)},onUninstall:function(t){this._super(t),void 0!==t.selectionHandles&&(t.selectionHandles.each(function(t,e){e.hide()}),t.selectionHandles=new r.default.util.ArrayList)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.ResizeSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.ResizeSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=r.default.Configuration.factory.createResizeHandle(e,1),a=r.default.Configuration.factory.createResizeHandle(e,3),o=r.default.Configuration.factory.createResizeHandle(e,5),s=r.default.Configuration.factory.createResizeHandle(e,7);if(e.selectionHandles.add(i),e.selectionHandles.add(a),e.selectionHandles.add(o),e.selectionHandles.add(s),i.show(t),a.show(t),o.show(t),s.show(t),!1===e.isResizeable()&&(i.setBackgroundColor(null),a.setBackgroundColor(null),o.setBackgroundColor(null),s.setBackgroundColor(null),i.setDraggable(!1),a.setDraggable(!1),o.setDraggable(!1),s.setDraggable(!1)),!e.getKeepAspectRatio()&&e.isResizeable()){var c=r.default.Configuration.factory.createResizeHandle(e,2),l=r.default.Configuration.factory.createResizeHandle(e,4),u=r.default.Configuration.factory.createResizeHandle(e,6),h=r.default.Configuration.factory.createResizeHandle(e,8);e.selectionHandles.add(c),e.selectionHandles.add(l),e.selectionHandles.add(u),e.selectionHandles.add(h),c.show(t),l.show(t),u.show(t),h.show(t)}}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.getHeight(),i=e.getWidth(),r=e.getX(),a=e.getY(),o=e.selectionHandles.find(function(t){return 1===t.type}),s=e.selectionHandles.find(function(t){return 3===t.type}),c=e.selectionHandles.find(function(t){return 5===t.type}),l=e.selectionHandles.find(function(t){return 7===t.type});if(o.setPosition(r-o.getWidth(),a-o.getHeight()),s.setPosition(r+i,a-s.getHeight()),c.setPosition(r+i,a+n),l.setPosition(r-l.getWidth(),a+n),!e.getKeepAspectRatio()){var u=e.selectionHandles.find(function(t){return 2===t.type}),h=e.selectionHandles.find(function(t){return 4===t.type}),d=e.selectionHandles.find(function(t){return 6===t.type}),f=e.selectionHandles.find(function(t){return 8===t.type});u.setPosition(r+i/2-u.getWidth()/2,a-u.getHeight()),h.setPosition(r+i,a+n/2-h.getHeight()/2),d.setPosition(r+i/2-d.getWidth()/2,a+n),f.setPosition(r-f.getWidth(),a+n/2-f.getHeight()/2)}}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.RectangleSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.RectangleSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=new r.default.shape.basic.Rectangle({bgColor:null,dashArray:"- ",color:"#2C70FF",stroke:.5});i.hide=function(){i.setCanvas(null)},i.show=function(t){i.setCanvas(t),i.toFront(e)};var a=r.default.Configuration.factory.createResizeHandle(e,1),o=r.default.Configuration.factory.createResizeHandle(e,3),s=r.default.Configuration.factory.createResizeHandle(e,5),c=r.default.Configuration.factory.createResizeHandle(e,7);if(e.selectionHandles.add(a),e.selectionHandles.add(o),e.selectionHandles.add(s),e.selectionHandles.add(c),a.show(t),o.show(t),s.show(t),c.show(t),!1===e.isResizeable()&&(a.setBackgroundColor(null),o.setBackgroundColor(null),s.setBackgroundColor(null),c.setBackgroundColor(null),a.setDraggable(!1),o.setDraggable(!1),s.setDraggable(!1),c.setDraggable(!1)),!e.getKeepAspectRatio()&&e.isResizeable()){var l=r.default.Configuration.factory.createResizeHandle(e,2),u=r.default.Configuration.factory.createResizeHandle(e,4),h=r.default.Configuration.factory.createResizeHandle(e,6),d=r.default.Configuration.factory.createResizeHandle(e,8);e.selectionHandles.add(l),e.selectionHandles.add(u),e.selectionHandles.add(h),e.selectionHandles.add(d),l.show(t),u.show(t),h.show(t),d.show(t)}e.selectionHandles.add(i),i.show(t)}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.getHeight(),i=e.getWidth(),r=e.getAbsoluteX(),a=e.getAbsoluteY(),o=e.selectionHandles.find(function(t){return 1===t.type}),s=e.selectionHandles.find(function(t){return 3===t.type}),c=e.selectionHandles.find(function(t){return 5===t.type}),l=e.selectionHandles.find(function(t){return 7===t.type});if(o.setPosition(r-o.getWidth(),a-o.getHeight()),s.setPosition(r+i,a-s.getHeight()),c.setPosition(r+i,a+n),l.setPosition(r-l.getWidth(),a+n),!e.getKeepAspectRatio()&&e.isResizeable()){var u=e.selectionHandles.find(function(t){return 2===t.type}),h=e.selectionHandles.find(function(t){return 4===t.type}),d=e.selectionHandles.find(function(t){return 6===t.type}),f=e.selectionHandles.find(function(t){return 8===t.type});u.setPosition(r+i/2-u.getWidth()/2,a-u.getHeight()),h.setPosition(r+i,a+n/2-h.getHeight()/2),d.setPosition(r+i/2-d.getWidth()/2,a+n),f.setPosition(r-f.getWidth(),a+n/2-f.getHeight()/2)}var p=e.selectionHandles.last();p.setPosition(e.getAbsolutePosition().translate(-2.5,-2.5)),p.setDimension(e.getWidth()+4,e.getHeight()+4),p.setRotationAngle(e.getRotationAngle())}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.BigRectangleSelectionFeedbackPolicy=r.default.policy.figure.RectangleSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.BigRectangleSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){this._super(t,e,n),e.selectionHandles.isEmpty()||e.selectionHandles.each(function(t,e){e.setDimension(15,15)}),this.moved(t,e)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.RoundRectangleSelectionFeedbackPolicy=r.default.policy.figure.RectangleSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.RoundRectangleSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){this._super(t,e,n),e.selectionHandles.isEmpty()||e.selectionHandles.each(function(t,e){e.setDimension(12,12),e.setRadius(4)}),this.moved(t,e)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.BusSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.BusSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=r.default.Configuration.factory.createResizeHandle(e,2),a=r.default.Configuration.factory.createResizeHandle(e,4),o=r.default.Configuration.factory.createResizeHandle(e,6),s=r.default.Configuration.factory.createResizeHandle(e,8);e.selectionHandles.add(i),e.selectionHandles.add(a),e.selectionHandles.add(o),e.selectionHandles.add(s),i.setDraggable(e.isResizeable()),a.setDraggable(e.isResizeable()),o.setDraggable(e.isResizeable()),s.setDraggable(e.isResizeable()),i.show(t),a.show(t),o.show(t),s.show(t)}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.find(function(t){return 2===t.type}),i=e.selectionHandles.find(function(t){return 4===t.type}),r=e.selectionHandles.find(function(t){return 6===t.type}),a=e.selectionHandles.find(function(t){return 8===t.type}),o=e.getHeight(),s=e.getWidth(),c=e.getX(),l=e.getY();n.setPosition(c+s/2-n.getWidth()/2,l-n.getHeight()),i.setPosition(c+s,l+o/2-i.getHeight()/2),r.setPosition(c+s/2-r.getWidth()/2,l+o),a.setPosition(c-a.getWidth(),l+o/2-a.getHeight()/2)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.WidthSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.BusSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=r.default.Configuration.factory.createResizeHandle(e,4),a=r.default.Configuration.factory.createResizeHandle(e,8);i.installEditPolicy(new r.default.policy.figure.HorizontalEditPolicy),a.installEditPolicy(new r.default.policy.figure.HorizontalEditPolicy),e.selectionHandles.add(i),e.selectionHandles.add(a),i.setDraggable(e.isResizeable()),a.setDraggable(e.isResizeable()),i.show(t),a.show(t)}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.find(function(t){return 4===t.type}),i=e.selectionHandles.find(function(t){return 8===t.type}),r=e.getWidth(),a=e.getX(),o=e.getY();n.setDimension(n.getWidth(),e.getHeight()),i.setDimension(i.getWidth(),e.getHeight()),n.setPosition(a+r,o),i.setPosition(a-i.getWidth(),o)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.VBusSelectionFeedbackPolicy=r.default.policy.figure.BusSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.VBusSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.find(function(t){return 2===t.type}),i=e.selectionHandles.find(function(t){return 6===t.type}),r=e.getWidth();n.setDimension(r,n.getHeight()),i.setDimension(r,i.getHeight()),this._super(t,e)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.HBusSelectionFeedbackPolicy=r.default.policy.figure.BusSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.HBusSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.find(function(t){return 4===t.type}),i=e.selectionHandles.find(function(t){return 8===t.type});n.setDimension(n.getWidth(),e.getHeight()),i.setDimension(n.getWidth(),e.getHeight()),this._super(t,e)}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.AntSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.AntSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){if(e.selectionHandles.isEmpty()){var i=new r.default.shape.basic.Rectangle({bgColor:null,dasharray:"- ",color:"#2C70FF"});if(i.hide=function(){i.setCanvas(null)},i.show=function(t){i.setCanvas(t),i.shape.toFront()},i.show(t),e.selectionHandles.add(i),null!==e.getParent()){var a=new r.default.shape.basic.Line({opacity:.5,bgColor:null,dasharray:"- ",color:"#2C70FF"});a.show=function(t){a.setCanvas(t)},a.hide=function(){a.setCanvas(null)},a.show(t),e.selectionHandles.add(a),this._updateBeeLine(a,e)}}this.moved(t,e)},moved:function(t,e){if(!e.selectionHandles.isEmpty()){var n=e.selectionHandles.first();if(n.setPosition(e.getAbsolutePosition().translate(-2.5,-2.5)),n.setDimension(e.getWidth()+4,e.getHeight()+4),n.setRotationAngle(e.getRotationAngle()),e.selectionHandles.getSize()>1){var i=e.selectionHandles.get(1);this._updateBeeLine(i,e)}}},_updateBeeLine:function(t,e){var n=e.getParent();if(null!==n)if(n instanceof r.default.shape.basic.Line){var i=e.getBoundingBox().getCenter(),a=n.pointProjection(i);if(null===a){var o=t.getStartPosition(),s=t.getEndPosition(),c=i.distance(o),l=i.distance(o);a=c<l?o:s}var u=e.getBoundingBox().intersectionWithLine(i,a);u.getSize()>0?t.setStartPosition(e.getBoundingBox().intersectionWithLine(i,a).get(0)).setEndPosition(a):t.setStartPosition(e.getBoundingBox().getCenter()).setEndPosition(a)}else{var h=e.getBoundingBox(),d=n.getBoundingBox(),f=h.getCenter(),p=d.getCenter();h.intersects(d)?t.setStartPosition(f).setEndPosition(p):h.hitTest(p)||d.hitTest(f)?t.setStartPosition(f).setEndPosition(p):(h.scale(3,3),d.scale(3,3),t.setStartPosition(h.intersectionWithLine(f,p).get(0)).setEndPosition(d.intersectionWithLine(f,p).get(0)))}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.GlowSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.GlowSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){e.setGlow(!0),this.moved(t,e)},onUnselect:function(t,e){this._super(t,e),e.setGlow(!1)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.SlimSelectionFeedbackPolicy=r.default.policy.figure.RectangleSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.SlimSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){this._super(t,e,n),e.selectionHandles.isEmpty()||e.selectionHandles.each(function(t,e){e.setDimension(6,6),e.setRadius(0)}),this.moved(t,e)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.figure.VertexSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.figure.VertexSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){for(var i=e.getVertices(),a=0;a<i.getSize();a++){var o=new r.default.shape.basic.VertexResizeHandle(e,a);if(e.selectionHandles.add(o),o.setDraggable(e.isResizeable()),o.show(t),0!==a){var o=new r.default.shape.basic.GhostVertexResizeHandle(e,a-1);e.selectionHandles.add(o),o.setDraggable(e.isResizeable()),o.show(t)}}this.moved(t,e)},moved:function(t,e){e.selectionHandles.each(function(t,e){e.relocate()})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.line.LineSelectionFeedbackPolicy=r.default.policy.figure.SelectionFeedbackPolicy.extend({NAME:"draw2d.policy.line.LineSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){e.selectionHandles.isEmpty()&&(e.selectionHandles.add(new r.default.shape.basic.LineStartResizeHandle(e)),e.selectionHandles.add(new r.default.shape.basic.LineEndResizeHandle(e)),e.selectionHandles.each(function(n,i){i.setDraggable(e.isResizeable()),i.show(t)})),this.moved(t,e)},moved:function(t,e){e.selectionHandles.each(function(t,e){e.relocate()})}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.line.VertexSelectionFeedbackPolicy=r.default.policy.line.LineSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.line.VertexSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onSelect:function(t,e,n){var i=new r.default.shape.basic.LineStartResizeHandle(e),a=new r.default.shape.basic.LineEndResizeHandle(e);e.selectionHandles.add(i),e.selectionHandles.add(a);for(var o=e.getVertices(),s=o.getSize()-1,c=1;c<s;c++)e.selectionHandles.add(new r.default.shape.basic.VertexResizeHandle(e,c)),e.selectionHandles.add(new r.default.shape.basic.GhostVertexResizeHandle(e,c-1));e.selectionHandles.add(new r.default.shape.basic.GhostVertexResizeHandle(e,c-1)),e.selectionHandles.each(function(n,i){i.setDraggable(e.isResizeable()),i.show(t)}),this.moved(t,e)}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(144),s=(i(o),n(145));i(s);a.default.policy.line.OrthogonalSelectionFeedbackPolicy=a.default.policy.line.LineSelectionFeedbackPolicy.extend({NAME:"draw2d.policy.line.OrthogonalSelectionFeedbackPolicy",init:function(t,e,n){this._super(t,e,n),this.ResizeHandle=a.default.ResizeHandle.extend({NAME:"draw2d.policy.line.OrthogonalSelectionFeedbackPolicy.ResizeHandle",init:function(t,e){this._super(t),this.index=e},onDragStart:function(t,e,n,i){this._super(t,e,n,i),this.command=this.getCanvas().getPrimarySelection().createCommand(new a.default.command.CommandType(a.default.command.CommandType.MOVE_VERTICES)),this.vertex=this.owner.getVertex(this.index).clone()},onDrag:function(t,e,n,i){if(null==this.command)return!1;var r=this.owner.getRouter().MINDIST||10,o=this.owner.getSource().getConnectionDirection(this.owner.getTarget()),s=this.owner.getTarget().getConnectionDirection(this.owner.getSource());this.vertex.translate(n,i);var c=this.owner.getVertices(),l=c.getSize(),u=Math.max,h=Math.min;if(1===this.index){var d=c.get(this.index-1),f=c.get(this.index),p=c.get(this.index+1);if(f.x==p.x&&d.y==f.y)switch(o){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(1,u(d.x+r,this.vertex.x),f.y),this.owner.setVertex(2,u(d.x+r,this.vertex.x),p.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(1,h(d.x-r,this.vertex.x),f.y),this.owner.setVertex(2,h(d.x-r,this.vertex.x),p.y)}else switch(o){case a.default.geo.Rectangle.DIRECTION_UP:this.owner.setVertex(1,f.x,h(d.y-r,this.vertex.y)),this.owner.setVertex(2,p.x,h(d.y-r,this.vertex.y));break;case a.default.geo.Rectangle.DIRECTION_DOWN:this.owner.setVertex(1,f.x,u(d.y+r,this.vertex.y)),this.owner.setVertex(2,p.x,u(d.y+r,this.vertex.y))}}else if(this.index===l-2){var p=c.get(this.index-1),f=c.get(this.index),d=c.get(this.index+1);if(d.x===f.x&&p.y===f.y)switch(s){case a.default.geo.Rectangle.DIRECTION_UP:this.owner.setVertex(l-2,f.x,h(d.y-r,this.vertex.y)),this.owner.setVertex(l-3,p.x,h(d.y-r,this.vertex.y));break;case a.default.geo.Rectangle.DIRECTION_DOWN:this.owner.setVertex(l-2,f.x,u(d.y+r,this.vertex.y)),this.owner.setVertex(l-3,p.x,u(d.y+r,this.vertex.y))}else switch(s){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(l-2,u(d.x+r,this.vertex.x),f.y),this.owner.setVertex(l-3,u(d.x+r,this.vertex.x),p.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(l-2,h(d.x-r,this.vertex.x),f.y),this.owner.setVertex(l-3,h(d.x-r,this.vertex.x),p.y)}}else{var g=c.get(this.index-2),d=c.get(this.index-1),f=c.get(this.index),p=c.get(this.index+1),m=c.get(this.index+2);if(f.x===p.x&&f.y===d.y)if(this.index-2==0)switch(o){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(this.index-1,d.x,u(this.vertex.y,g.y-r)),this.owner.setVertex(this.index,this.vertex.x,u(this.vertex.y,g.y-r)),this.owner.setVertex(this.index+1,this.vertex.x,p.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(this.index-1,d.x,h(this.vertex.y,g.y+r)),this.owner.setVertex(this.index,this.vertex.x,this.vertex.y),this.owner.setVertex(this.index+1,this.vertex.x,p.y);break;case a.default.geo.Rectangle.DIRECTION_UP:this.owner.setVertex(this.index-1,d.x,h(this.vertex.y,g.y-r)),this.owner.setVertex(this.index,this.vertex.x,h(this.vertex.y,g.y-r)),this.owner.setVertex(this.index+1,this.vertex.x,p.y);break;case a.default.geo.Rectangle.DIRECTION_DOWN:this.owner.setVertex(this.index-1,d.x,u(this.vertex.y,g.y+r)),this.owner.setVertex(this.index,this.vertex.x,u(this.vertex.y,g.y+r)),this.owner.setVertex(this.index+1,this.vertex.x,p.y)}else if(this.index-l+3==0)switch(s){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(this.index-1,d.x,this.vertex.y),this.owner.setVertex(this.index,u(this.vertex.x,m.x+r),this.vertex.y),this.owner.setVertex(this.index+1,u(this.vertex.x,m.x+r),p.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(this.index-1,d.x,this.vertex.y),this.owner.setVertex(this.index,h(this.vertex.x,m.x-r),this.vertex.y),this.owner.setVertex(this.index+1,h(this.vertex.x,m.x-r),p.y)}else this.owner.setVertex(this.index-1,d.x,this.vertex.y),this.owner.setVertex(this.index,this.vertex),this.owner.setVertex(this.index+1,this.vertex.x,p.y);else if(d.x===f.x&&f.y===p.y)if(this.index-2==0)switch(o){case a.default.geo.Rectangle.DIRECTION_RIGHT:this.owner.setVertex(this.index-1,u(this.vertex.x,g.x+r),d.y),this.owner.setVertex(this.index,u(this.vertex.x,g.x+r),this.vertex.y),this.owner.setVertex(this.index+1,p.x,this.vertex.y);break;case a.default.geo.Rectangle.DIRECTION_LEFT:this.owner.setVertex(this.index-1,h(this.vertex.x,g.x-r),d.y),this.owner.setVertex(this.index,h(this.vertex.x,g.x-r),this.vertex.y),this.owner.setVertex(this.index+1,p.x,this.vertex.y)}else if(this.index-l+3==0)switch(s){case a.default.geo.Rectangle.DIRECTION_UP:this.owner.setVertex(this.index-1,this.vertex.x,u(this.vertex.y,d.y)),this.owner.setVertex(this.index,this.vertex.x,h(this.vertex.y,m.y-r)),this.owner.setVertex(this.index+1,p.x,h(this.vertex.y,m.y-r));break;case a.default.geo.Rectangle.DIRECTION_DOWN:this.owner.setVertex(this.index-1,this.vertex.x,d.y),this.owner.setVertex(this.index,this.vertex.x,u(this.vertex.y,m.y+r)),this.owner.setVertex(this.index+1,p.x,u(this.vertex.y,m.y+r))}else this.owner.setVertex(this.index-1,this.vertex.x,d.y),this.owner.setVertex(this.index,this.vertex),this.owner.setVertex(this.index+1,p.x,this.vertex.y)}return this.relocate(),null!==this.command&&this.command.updateVertices(this.owner.getVertices().clone()),this.owner._routingMetaData.routedByUserInteraction=!0,!0},onDragEnd:function(t,e,n,i){return this.getCanvas().getCommandStack().execute(this.command),this.command=null,!0},relocate:function(){var t=this.getWidth()/2,e=this.getHeight()/2,n=this.owner.getVertices().get(this.index);n&&this.setPosition(n.x-t,n.y-e)}})},onSelect:function(t,e,n){this._super(t,e,n);for(var i=e.getVertices(),r=1;r<i.getSize()-1;r++){var a=new this.ResizeHandle(e,r);e.selectionHandles.add(a),a.setDraggable(e.isResizeable()),a.show(t)}this.moved(t,e)},removeSegment:function(t,e){var n=t.getVertices().getSize()-1,i=t.getStartPoint(),r=t.getSource().getConnectionDirection(t.getTarget()),o=t.getEndPoint(),s=t.getTarget().getConnectionDirection(t.getSource()),c=t.getVertex(e-1),l=t.getVertex(e),u=t.getVertex(e+1),h=t.getVertex(e+2);if(l.y===u.y){var d=(l.x+u.x)/2;if(1===e)switch(r){case a.default.geo.Rectangle.DIRECTION_RIGHT:d=Math.max(d,i.x+10);break;case a.default.geo.Rectangle.DIRECTION_LEFT:d=Math.min(d,i.x-10);break;case a.default.geo.Rectangle.DIRECTION_UP:case a.default.geo.Rectangle.DIRECTION_DOWN:d=i.x}if(e===n-2)switch(r){case a.default.geo.Rectangle.DIRECTION_RIGHT:d=Math.max(d,o.x+10);break;case a.default.geo.Rectangle.DIRECTION_LEFT:d=Math.min(d,o.x-10);break;case a.default.geo.Rectangle.DIRECTION_UP:case a.default.geo.Rectangle.DIRECTION_DOWN:d=o.x}t.setVertex(e-1,new a.default.geo.Point(d,c.y)),t.setVertex(e+2,new a.default.geo.Point(d,h.y)),t.removeVertexAt(e),t.removeVertexAt(e),t._routingMetaData.routedByUserInteraction=!0}else if(l.x===u.x){var f=(l.y+u.y)/2;if(1===e)switch(r){case a.default.geo.Rectangle.DIRECTION_RIGHT:case a.default.geo.Rectangle.DIRECTION_LEFT:f=i.y;break;case a.default.geo.Rectangle.DIRECTION_UP:case a.default.geo.Rectangle.DIRECTION_DOWN:d=i.x}if(e===n-2)switch(s){case a.default.geo.Rectangle.DIRECTION_RIGHT:case a.default.geo.Rectangle.DIRECTION_LEFT:f=o.y;break;case a.default.geo.Rectangle.DIRECTION_UP:case a.default.geo.Rectangle.DIRECTION_DOWN:d=o.x}t.setVertex(e-1,new a.default.geo.Point(c.x,f)),t.setVertex(e+2,new a.default.geo.Point(h.x,f)),t.removeVertexAt(e),t.removeVertexAt(e),t._routingMetaData.routedByUserInteraction=!0}},splitSegment:function(t,e,n,i){var r=t.getVertices().getSize()-1,o=t.getVertex(e),s=t.getVertex(e+1);if(o.x==s.x)if(t._routingMetaData.routedByUserInteraction=!0,1===r){var c=o.getDistance(s)/4/2,l=new a.default.geo.Point(o.x,i-c),u=new a.default.geo.Point(s.x+40,i-c),h=new a.default.geo.Point(s.x+40,i+c),d=new a.default.geo.Point(s.x,i+c);t.insertVertexAt(e+1,l),t.insertVertexAt(e+2,u),t.insertVertexAt(e+3,h),t.insertVertexAt(e+4,d)}else{var l=new a.default.geo.Point(0,0),u=new a.default.geo.Point(0,0);0===e?(l.y=i,l.x=o.x,u.y=i,u.x=s.x+40,t.setVertex(e+1,new a.default.geo.Point(u.x,s.y))):e===r-1?(l.y=i,l.x=o.x-40,u.y=i,u.x=s.x,t.setVertex(e,new a.default.geo.Point(l.x,o.y))):(l.y=i,l.x=o.x-20,u.y=i,u.x=s.x+20,t.setVertex(e,new a.default.geo.Point(l.x,o.y)),t.setVertex(e+1,new a.default.geo.Point(u.x,s.y))),t.insertVertexAt(e+1,l),t.insertVertexAt(e+2,u)}else if(o.y==s.y)if(t._routingMetaData.routedByUserInteraction=!0,1===r){var c=o.getDistance(s)/4/2,l=new a.default.geo.Point(n-c,o.y),u=new a.default.geo.Point(n-c,o.y-40),h=new a.default.geo.Point(n+c,o.y-40),d=new a.default.geo.Point(n+c,o.y);t.insertVertexAt(e+1,l),t.insertVertexAt(e+2,u),t.insertVertexAt(e+3,h),t.insertVertexAt(e+4,d)}else{var l=new a.default.geo.Point(0,0),u=new a.default.geo.Point(0,0);0===e?(l.x=n,l.y=o.y,u.x=n,u.y=s.y+40,t.setVertex(e+1,new a.default.geo.Point(s.x,u.y))):e===r-1?(l.x=n,l.y=o.y-40,u.x=n,u.y=s.y,t.setVertex(e,new a.default.geo.Point(o.x,l.y))):(l.x=n,l.y=o.y-20,u.x=n,u.y=s.y+20,t.setVertex(e,new a.default.geo.Point(o.x,l.y)),t.setVertex(e+1,new a.default.geo.Point(s.x,u.y))),t.insertVertexAt(e+1,l),t.insertVertexAt(e+2,u)}},onRightMouseDown:function(t,e,n,i,r){var o=this,s=t.hitSegment(e,n),c={split:{name:a.default.Configuration.i18n.menu.addSegment}};null!==s&&(t.getRouter().canRemoveSegmentAt(t,s.index)&&(c.remove={name:a.default.Configuration.i18n.menu.deleteSegment}),$.contextMenu({selector:"body",events:{hide:function(){$.contextMenu("destroy")}},callback:function(i,r){switch(i){case"remove":var c=t.getVertices().clone(!0);o.removeSegment(t,s.index);var l=t.getVertices().clone(!0);t.getCanvas().getCommandStack().execute(new a.default.command.CommandReplaceVertices(t,c,l));break;case"split":var c=t.getVertices().clone(!0);o.splitSegment(t,s.index,e,n);var l=t.getVertices().clone(!0);t.getCanvas().getCommandStack().execute(new a.default.command.CommandReplaceVertices(t,c,l))}},x:e,y:n,items:c}))}})},function(t,e,n){"use strict";/*!
 * jQuery contextMenu - Plugin for simple contextMenu handling
 *
 * Version: 1.6.5
 *
 * Authors: Rodney Rehm, Addy Osmani (patches for FF)
 * Web: http://medialize.github.com/jQuery-contextMenu/
 *
 * Licensed under
 *   MIT License http://www.opensource.org/licenses/mit-license
 *   GPL v3 http://opensource.org/licenses/GPL-3.0
 *
 */
!function(t,e){function n(t){for(var e,n=t.split(/\s+/),i=[],r=0;e=n[r];r++)e=e[0].toUpperCase(),i.push(e);return i}function i(e){return e.id&&t('label[for="'+e.id+'"]').val()||e.name}function r(n,a,o){return o||(o=0),a.each(function(){var a,s,c=t(this),l=this,u=this.nodeName.toLowerCase();switch("label"==u&&c.find("input, textarea, select").length&&(a=c.text(),c=c.children().first(),l=c.get(0),u=l.nodeName.toLowerCase()),u){case"menu":s={name:c.attr("label"),items:{}},o=r(s.items,c.children(),o);break;case"a":case"button":s={name:c.text(),disabled:!!c.attr("disabled"),callback:function(){return function(){c.click()}}()};break;case"menuitem":case"command":switch(c.attr("type")){case e:case"command":case"menuitem":s={name:c.attr("label"),disabled:!!c.attr("disabled"),callback:function(){return function(){c.click()}}()};break;case"checkbox":s={type:"checkbox",disabled:!!c.attr("disabled"),name:c.attr("label"),selected:!!c.attr("checked")};break;case"radio":s={type:"radio",disabled:!!c.attr("disabled"),name:c.attr("label"),radio:c.attr("radiogroup"),value:c.attr("id"),selected:!!c.attr("checked")};break;default:s=e}break;case"hr":s="-------";break;case"input":switch(c.attr("type")){case"text":s={type:"text",name:a||i(l),disabled:!!c.attr("disabled"),value:c.val()};break;case"checkbox":s={type:"checkbox",name:a||i(l),disabled:!!c.attr("disabled"),selected:!!c.attr("checked")};break;case"radio":s={type:"radio",name:a||i(l),disabled:!!c.attr("disabled"),radio:!!c.attr("name"),value:c.val(),selected:!!c.attr("checked")};break;default:s=e}break;case"select":s={type:"select",name:a||i(l),disabled:!!c.attr("disabled"),selected:c.val(),options:{}},c.children().each(function(){s.options[this.value]=t(this).text()});break;case"textarea":s={type:"textarea",name:a||i(l),disabled:!!c.attr("disabled"),value:c.val()};break;case"label":break;default:s={type:"html",html:c.clone(!0)}}s&&(o++,n["key"+o]=s)}),o}if(t.support.htmlMenuitem="HTMLMenuItemElement"in window,t.support.htmlCommand="HTMLCommandElement"in window,t.support.eventSelectstart="onselectstart"in document.documentElement,!t.ui||!t.ui.widget){var a=t.cleanData;t.cleanData=function(e){for(var n,i=0;null!=(n=e[i]);i++)try{t(n).triggerHandler("remove")}catch(t){}a(e)}}var o=null,s=!1,c=t(window),l=0,u={},h={},d={},f={selector:null,appendTo:null,trigger:"right",autoHide:!1,delay:200,reposition:!1,determinePosition:function(e){if(t.ui&&t.ui.position)e.css("display","block").position({my:"center top",at:"center bottom",of:this,offset:"0 5",collision:"fit"}).css("display","none");else{var n=this.offset();n.top+=this.outerHeight(),n.left+=this.outerWidth()/2-e.outerWidth()/2,e.css(n)}},position:function(t,e,n){var i;if(!e&&!n)return void t.determinePosition.call(this,t.$menu);i="maintain"===e&&"maintain"===n?t.$menu.position():{top:n,left:e};var r=c.scrollTop()+c.height(),a=c.scrollLeft()+c.width(),o=t.$menu.height(),s=t.$menu.width();i.top+o>r&&(i.top-=o),i.left+s>a&&(i.left-=s),t.$menu.css(i)},positionSubmenu:function(e){if(t.ui&&t.ui.position)e.css("display","block").position({my:"left top",at:"right top",of:this,collision:"flipfit fit"}).css("display","");else{var n={top:0,left:this.outerWidth()};e.css(n)}},zIndex:1,animation:{duration:50,show:"slideDown",hide:"slideUp"},events:{show:t.noop,hide:t.noop},callback:null,items:{}},p={timer:null,pageX:null,pageY:null},g=function(t){for(var e=0,n=t;;)if(e=Math.max(e,parseInt(n.css("z-index"),10)||0),!(n=n.parent())||!n.length||"html body".indexOf(n.prop("nodeName").toLowerCase())>-1)break;return e},m={abortevent:function(t){t.preventDefault(),t.stopImmediatePropagation()},contextmenu:function(e){var n=t(this);if(e.preventDefault(),e.stopImmediatePropagation(),!("right"!=e.data.trigger&&e.originalEvent||n.hasClass("context-menu-active")||n.hasClass("context-menu-disabled"))){if(o=n,e.data.build){var i=e.data.build(o,e);if(!1===i)return;if(e.data=t.extend(!0,{},f,e.data,i||{}),!e.data.items||t.isEmptyObject(e.data.items))throw window.console&&(console.error||console.log)("No items specified to show in contextMenu"),new Error("No Items sepcified");e.data.$trigger=o,v.create(e.data)}v.show.call(n,e.data,e.pageX,e.pageY)}},click:function(e){e.preventDefault(),e.stopImmediatePropagation(),t(this).trigger(t.Event("contextmenu",{data:e.data,pageX:e.pageX,pageY:e.pageY}))},mousedown:function(e){var n=t(this);o&&o.length&&!o.is(n)&&o.data("contextMenu").$menu.trigger("contextmenu:hide"),2==e.button&&(o=n.data("contextMenuActive",!0))},mouseup:function(e){var n=t(this);n.data("contextMenuActive")&&o&&o.length&&o.is(n)&&!n.hasClass("context-menu-disabled")&&(e.preventDefault(),e.stopImmediatePropagation(),o=n,n.trigger(t.Event("contextmenu",{data:e.data,pageX:e.pageX,pageY:e.pageY}))),n.removeData("contextMenuActive")},mouseenter:function(e){var n=t(this),i=t(e.relatedTarget),r=t(document);i.is(".context-menu-list")||i.closest(".context-menu-list").length||o&&o.length||(p.pageX=e.pageX,p.pageY=e.pageY,p.data=e.data,r.on("mousemove.contextMenuShow",m.mousemove),p.timer=setTimeout(function(){p.timer=null,r.off("mousemove.contextMenuShow"),o=n,n.trigger(t.Event("contextmenu",{data:p.data,pageX:p.pageX,pageY:p.pageY}))},e.data.delay))},mousemove:function(t){p.pageX=t.pageX,p.pageY=t.pageY},mouseleave:function(e){var n=t(e.relatedTarget);if(!n.is(".context-menu-list")&&!n.closest(".context-menu-list").length){try{clearTimeout(p.timer)}catch(e){}p.timer=null}},layerClick:function(e){var n,i,r=t(this),a=r.data("contextMenuRoot"),o=e.button,s=e.pageX,l=e.pageY;e.preventDefault(),e.stopImmediatePropagation(),setTimeout(function(){var r,u="left"==a.trigger&&0===o||"right"==a.trigger&&2===o;if(document.elementFromPoint&&(a.$layer.hide(),n=document.elementFromPoint(s-c.scrollLeft(),l-c.scrollTop()),a.$layer.show()),a.reposition&&u)if(document.elementFromPoint){if(a.$trigger.is(n)||a.$trigger.has(n).length)return void a.position.call(a.$trigger,a,s,l)}else if(i=a.$trigger.offset(),r=t(window),i.top+=r.scrollTop(),i.top<=e.pageY&&(i.left+=r.scrollLeft(),i.left<=e.pageX&&(i.bottom=i.top+a.$trigger.outerHeight(),i.bottom>=e.pageY&&(i.right=i.left+a.$trigger.outerWidth(),i.right>=e.pageX))))return void a.position.call(a.$trigger,a,s,l);n&&u&&a.$trigger.one("contextmenu:hidden",function(){t(n).contextMenu({x:s,y:l})}),a.$menu.trigger("contextmenu:hide")},50)},keyStop:function(t,e){e.isInput||t.preventDefault(),t.stopPropagation()},key:function(t){var e=o.data("contextMenu")||{};switch(t.keyCode){case 9:case 38:if(m.keyStop(t,e),e.isInput){if(9==t.keyCode&&t.shiftKey)return t.preventDefault(),e.$selected&&e.$selected.find("input, textarea, select").blur(),void e.$menu.trigger("prevcommand");if(38==t.keyCode&&"checkbox"==e.$selected.find("input, textarea, select").prop("type"))return void t.preventDefault()}else if(9!=t.keyCode||t.shiftKey)return void e.$menu.trigger("prevcommand");case 40:if(m.keyStop(t,e),!e.isInput)return void e.$menu.trigger("nextcommand");if(9==t.keyCode)return t.preventDefault(),e.$selected&&e.$selected.find("input, textarea, select").blur(),void e.$menu.trigger("nextcommand");if(40==t.keyCode&&"checkbox"==e.$selected.find("input, textarea, select").prop("type"))return void t.preventDefault();break;case 37:if(m.keyStop(t,e),e.isInput||!e.$selected||!e.$selected.length)break;if(!e.$selected.parent().hasClass("context-menu-root")){var n=e.$selected.parent().parent();return e.$selected.trigger("contextmenu:blur"),void(e.$selected=n)}break;case 39:if(m.keyStop(t,e),e.isInput||!e.$selected||!e.$selected.length)break;var i=e.$selected.data("contextMenu")||{};if(i.$menu&&e.$selected.hasClass("context-menu-submenu"))return e.$selected=null,i.$selected=null,void i.$menu.trigger("nextcommand");break;case 35:case 36:return e.$selected&&e.$selected.find("input, textarea, select").length?void 0:((e.$selected&&e.$selected.parent()||e.$menu).children(":not(.disabled, .not-selectable)")[36==t.keyCode?"first":"last"]().trigger("contextmenu:focus"),void t.preventDefault());case 13:if(m.keyStop(t,e),e.isInput){if(e.$selected&&!e.$selected.is("textarea, select"))return void t.preventDefault();break}return void(e.$selected&&e.$selected.trigger("mouseup"));case 32:case 33:case 34:return void m.keyStop(t,e);case 27:return m.keyStop(t,e),void e.$menu.trigger("contextmenu:hide");default:var r=String.fromCharCode(t.keyCode).toUpperCase();if(e.accesskeys[r])return void e.accesskeys[r].$node.trigger(e.accesskeys[r].$menu?"contextmenu:focus":"mouseup")}t.stopPropagation(),e.$selected&&e.$selected.trigger(t)},prevItem:function(e){e.stopPropagation();var n=t(this).data("contextMenu")||{};if(n.$selected){var i=n.$selected;n=n.$selected.parent().data("contextMenu")||{},n.$selected=i}for(var r=n.$menu.children(),a=n.$selected&&n.$selected.prev().length?n.$selected.prev():r.last(),o=a;a.hasClass("disabled")||a.hasClass("not-selectable");)if(a=a.prev().length?a.prev():r.last(),a.is(o))return;n.$selected&&m.itemMouseleave.call(n.$selected.get(0),e),m.itemMouseenter.call(a.get(0),e);var s=a.find("input, textarea, select");s.length&&s.focus()},nextItem:function(e){e.stopPropagation();var n=t(this).data("contextMenu")||{};if(n.$selected){var i=n.$selected;n=n.$selected.parent().data("contextMenu")||{},n.$selected=i}for(var r=n.$menu.children(),a=n.$selected&&n.$selected.next().length?n.$selected.next():r.first(),o=a;a.hasClass("disabled")||a.hasClass("not-selectable");)if(a=a.next().length?a.next():r.first(),a.is(o))return;n.$selected&&m.itemMouseleave.call(n.$selected.get(0),e),m.itemMouseenter.call(a.get(0),e);var s=a.find("input, textarea, select");s.length&&s.focus()},focusInput:function(e){var n=t(this).closest(".context-menu-item"),i=n.data(),r=i.contextMenu,a=i.contextMenuRoot;a.$selected=r.$selected=n,a.isInput=r.isInput=!0},blurInput:function(e){var n=t(this).closest(".context-menu-item"),i=n.data(),r=i.contextMenu;i.contextMenuRoot.isInput=r.isInput=!1},menuMouseenter:function(e){var n=t(this).data().contextMenuRoot;n&&(n.hovering=!0)},menuMouseleave:function(e){var n=t(this).data().contextMenuRoot;n&&n.$layer&&n.$layer.is(e.relatedTarget)&&(n.hovering=!1)},itemMouseenter:function(e){var n=t(this),i=n.data(),r=i.contextMenu,a=i.contextMenuRoot;if(a){if(a.hovering=!0,e&&a.$layer&&a.$layer.is(e.relatedTarget)&&(e.preventDefault(),e.stopImmediatePropagation()),(r.$menu?r:a).$menu.children(".hover").trigger("contextmenu:blur"),n.hasClass("disabled")||n.hasClass("not-selectable"))return void(r.$selected=null);n.trigger("contextmenu:focus")}},itemMouseleave:function(e){var n=t(this),i=n.data(),r=i.contextMenu,a=i.contextMenuRoot;if(a&&a!==r&&a.$layer&&a.$layer.is(e.relatedTarget))return a.$selected&&a.$selected.trigger("contextmenu:blur"),e.preventDefault(),e.stopImmediatePropagation(),void(a.$selected=r.$selected=r.$node);n.trigger("contextmenu:blur")},itemClick:function(e){var n,i=t(this),r=i.data(),a=r.contextMenu,o=r.contextMenuRoot,s=r.contextMenuKey;if(a.items[s]&&!i.is(".disabled, .context-menu-submenu, .context-menu-separator, .not-selectable")){if(e.preventDefault(),e.stopImmediatePropagation(),t.isFunction(o.callbacks[s])&&Object.prototype.hasOwnProperty.call(o.callbacks,s))n=o.callbacks[s];else{if(!t.isFunction(o.callback))return;n=o.callback}!1!==n.call(o.$trigger,s,o)?o.$menu.trigger("contextmenu:hide"):o.$menu.parent().length&&v.update.call(o.$trigger,o)}},inputClick:function(t){t.stopImmediatePropagation()},hideMenu:function(e,n){var i=t(this).data("contextMenuRoot");v.hide.call(i.$trigger,i,n&&n.force)},focusItem:function(e){e.stopPropagation();var n=t(this),i=n.data(),r=i.contextMenu,a=i.contextMenuRoot;n.addClass("hover").siblings(".hover").trigger("contextmenu:blur"),r.$selected=a.$selected=n,r.$node&&a.positionSubmenu.call(r.$node,r.$menu)},blurItem:function(e){e.stopPropagation();var n=t(this),i=n.data(),r=i.contextMenu;n.removeClass("hover"),r&&(r.$selected=null)}},v={show:function(e,n,i){var r=t(this),a={};if(t("#context-menu-layer").trigger("mousedown"),e.$trigger=r,!1===e.events.show.call(r,e))return void(o=null);v.update.call(r,e),e.position.call(r,e,n,i),e.zIndex&&(a.zIndex=g(r)+e.zIndex),v.layer.call(e.$menu,e,a.zIndex),e.$menu.find("ul").css("zIndex",a.zIndex+1),e.$menu.css(a)[e.animation.show](e.animation.duration,function(){r.trigger("contextmenu:visible")}),r.data("contextMenu",e).addClass("context-menu-active"),t(document).off("keydown.contextMenu").on("keydown.contextMenu",m.key),e.autoHide&&t(document).on("mousemove.contextMenuAutoHide",function(t){var n=r.offset();n.right=n.left+r.outerWidth(),n.bottom=n.top+r.outerHeight(),!e.$layer||e.hovering||t.pageX>=n.left&&t.pageX<=n.right&&t.pageY>=n.top&&t.pageY<=n.bottom||e.$menu.trigger("contextmenu:hide")})},hide:function(n,i){var r=t(this);if(n||(n=r.data("contextMenu")||{}),i||!n.events||!1!==n.events.hide.call(r,n)){if(r.removeData("contextMenu").removeClass("context-menu-active"),n.$layer){setTimeout(function(t){return function(){t.remove()}}(n.$layer),10);try{delete n.$layer}catch(t){n.$layer=null}}o=null,n.$menu.find(".hover").trigger("contextmenu:blur"),n.$selected=null,t(document).off(".contextMenuAutoHide").off("keydown.contextMenu"),n.$menu&&n.$menu[n.animation.hide](n.animation.duration,function(){n.build&&(n.$menu.remove(),t.each(n,function(t,i){switch(t){case"ns":case"selector":case"build":case"trigger":return!0;default:n[t]=e;try{delete n[t]}catch(t){}return!0}})),setTimeout(function(){r.trigger("contextmenu:hidden")},10)})}},create:function(i,r){r===e&&(r=i),i.$menu=t('<ul class="context-menu-list"></ul>').addClass(i.className||"").data({contextMenu:i,contextMenuRoot:r}),t.each(["callbacks","commands","inputs"],function(t,e){i[e]={},r[e]||(r[e]={})}),r.accesskeys||(r.accesskeys={}),t.each(i.items,function(e,a){var o=t('<li class="context-menu-item"></li>').addClass(a.className||""),s=null,c=null;if(o.on("click",t.noop),"string"!=typeof a&&(a.$node=o.data({contextMenu:i,contextMenuRoot:r,contextMenuKey:e})),a.accesskey)for(var l,u=n(a.accesskey),h=0;l=u[h];h++)if(!r.accesskeys[l]){r.accesskeys[l]=a,a._name=a.name.replace(new RegExp("("+l+")","i"),'<span class="context-menu-accesskey">$1</span>');break}if("string"==typeof a)o.addClass("context-menu-separator not-selectable");else if(a.type&&d[a.type])d[a.type].call(o,a,i,r),t.each([i,r],function(n,i){i.commands[e]=a,t.isFunction(a.callback)&&(i.callbacks[e]=a.callback)});else{switch("html"==a.type?o.addClass("context-menu-html not-selectable"):a.type?(s=t("<label></label>").appendTo(o),t("<span></span>").html(a._name||a.name).appendTo(s),o.addClass("context-menu-input"),i.hasTypes=!0,t.each([i,r],function(t,n){n.commands[e]=a,n.inputs[e]=a})):a.items&&(a.type="sub"),a.type){case"text":c=t('<input type="text" value="1" name="" value="">').attr("name","context-menu-input-"+e).val(a.value||"").appendTo(s);break;case"textarea":c=t('<textarea name=""></textarea>').attr("name","context-menu-input-"+e).val(a.value||"").appendTo(s),a.height&&c.height(a.height);break;case"checkbox":c=t('<input type="checkbox" value="1" name="" value="">').attr("name","context-menu-input-"+e).val(a.value||"").prop("checked",!!a.selected).prependTo(s);break;case"radio":c=t('<input type="radio" value="1" name="" value="">').attr("name","context-menu-input-"+a.radio).val(a.value||"").prop("checked",!!a.selected).prependTo(s);break;case"select":c=t('<select name="">').attr("name","context-menu-input-"+e).appendTo(s),a.options&&(t.each(a.options,function(e,n){t("<option></option>").val(e).text(n).appendTo(c)}),c.val(a.selected));break;case"sub":t("<span></span>").html(a._name||a.name).appendTo(o),a.appendTo=a.$node,v.create(a,r),o.data("contextMenu",a).addClass("context-menu-submenu"),a.callback=null;break;case"html":t(a.html).appendTo(o);break;default:t.each([i,r],function(n,i){i.commands[e]=a,t.isFunction(a.callback)&&(i.callbacks[e]=a.callback)}),t("<span></span>").html(a._name||a.name||"").appendTo(o)}a.type&&"sub"!=a.type&&"html"!=a.type&&(c.on("focus",m.focusInput).on("blur",m.blurInput),a.events&&c.on(a.events,i)),a.icon&&o.addClass("icon icon-"+a.icon)}"string"!=typeof a&&(a.$input=c,a.$label=s),o.appendTo(i.$menu),!i.hasTypes&&t.support.eventSelectstart&&o.on("selectstart.disableTextSelect",m.abortevent)}),i.$node||i.$menu.css("display","none").addClass("context-menu-root"),i.$menu.appendTo(i.appendTo||document.body)},resize:function(e,n){e.css({position:"absolute",display:"block"}),e.data("width",Math.ceil(e.width())+1),e.css({position:"static",minWidth:"0px",maxWidth:"100000px"}),e.find("> li > ul").each(function(){v.resize(t(this),!0)}),n||e.find("ul").andSelf().css({position:"",display:"",minWidth:"",maxWidth:""}).width(function(){return t(this).data("width")})},update:function(n,i){var r=this;i===e&&(i=n,v.resize(n.$menu)),n.$menu.children().each(function(){var a=t(this),o=a.data("contextMenuKey"),s=n.items[o],c=s===e||"string"==typeof s||t.isFunction(s.disabled)&&s.disabled.call(r,o,i)||!0===s.disabled;if(a[c?"addClass":"removeClass"]("disabled"),s&&s.type)switch(a.find("input, select, textarea").prop("disabled",c),s.type){case"text":case"textarea":s.$input.val(s.value||"");break;case"checkbox":case"radio":s.$input.val(s.value||"").prop("checked",!!s.selected);break;case"select":s.$input.val(s.selected||"")}s&&s.$menu&&v.update.call(r,s,i)})},layer:function(e,n){var i=e.$layer=t('<div id="context-menu-layer" style="position:fixed; z-index:'+n+'; top:0; left:0; opacity: 0; filter: alpha(opacity=0); background-color: #000;"></div>').css({height:c.height(),width:c.width(),display:"block"}).data("contextMenuRoot",e).insertBefore(this).on("contextmenu",m.abortevent).on("mousedown",m.layerClick);return t.support.fixedPosition||i.css({position:"absolute",height:t(document).height()}),i}};t.fn.contextMenu=function(n){if(n===e)this.first().trigger("contextmenu");else if(n.x&&n.y)this.first().trigger(t.Event("contextmenu",{pageX:n.x,pageY:n.y}));else if("hide"===n){var i=this.data("contextMenu").$menu;i&&i.trigger("contextmenu:hide")}else"destroy"===n?t.contextMenu("destroy",{context:this}):t.isPlainObject(n)?(n.context=this,t.contextMenu("create",n)):n?this.removeClass("context-menu-disabled"):n||this.addClass("context-menu-disabled");return this},t.contextMenu=function(n,i){"string"!=typeof n&&(i=n,n="create"),"string"==typeof i?i={selector:i}:i===e&&(i={});var r=t.extend(!0,{},f,i||{}),a=t(document),o=a,c=!1;switch(r.context&&r.context.length?(o=t(r.context).first(),r.context=o.get(0),c=r.context!==document):r.context=document,n){case"create":if(!r.selector)throw new Error("No selector specified");if(r.selector.match(/.context-menu-(list|item|input)($|\s)/))throw new Error('Cannot bind to selector "'+r.selector+'" as it contains a reserved className');if(!r.build&&(!r.items||t.isEmptyObject(r.items)))throw new Error("No Items sepcified");switch(l++,r.ns=".contextMenu"+l,c||(u[r.selector]=r.ns),h[r.ns]=r,r.trigger||(r.trigger="right"),s||(a.on({"contextmenu:hide.contextMenu":m.hideMenu,"prevcommand.contextMenu":m.prevItem,"nextcommand.contextMenu":m.nextItem,"contextmenu.contextMenu":m.abortevent,"mouseenter.contextMenu":m.menuMouseenter,"mouseleave.contextMenu":m.menuMouseleave},".context-menu-list").on("mouseup.contextMenu",".context-menu-input",m.inputClick).on({"mouseup.contextMenu":m.itemClick,"contextmenu:focus.contextMenu":m.focusItem,"contextmenu:blur.contextMenu":m.blurItem,"contextmenu.contextMenu":m.abortevent,"mouseenter.contextMenu":m.itemMouseenter,"mouseleave.contextMenu":m.itemMouseleave},".context-menu-item"),s=!0),o.on("contextmenu"+r.ns,r.selector,r,m.contextmenu),c&&o.on("remove"+r.ns,function(){t(this).contextMenu("destroy")}),r.trigger){case"hover":o.on("mouseenter"+r.ns,r.selector,r,m.mouseenter).on("mouseleave"+r.ns,r.selector,r,m.mouseleave);break;case"left":o.on("click"+r.ns,r.selector,r,m.click)}r.build||v.create(r);break;case"destroy":var d;if(c){var p=r.context;t.each(h,function(e,n){if(n.context!==p)return!0;d=t(".context-menu-list").filter(":visible"),d.length&&d.data().contextMenuRoot.$trigger.is(t(n.context).find(n.selector))&&d.trigger("contextmenu:hide",{force:!0});try{h[n.ns].$menu&&h[n.ns].$menu.remove(),delete h[n.ns]}catch(t){h[n.ns]=null}return t(n.context).off(n.ns),!0})}else if(r.selector){if(u[r.selector]){d=t(".context-menu-list").filter(":visible"),d.length&&d.data().contextMenuRoot.$trigger.is(r.selector)&&d.trigger("contextmenu:hide",{force:!0});try{h[u[r.selector]].$menu&&h[u[r.selector]].$menu.remove(),delete h[u[r.selector]]}catch(t){h[u[r.selector]]=null}a.off(u[r.selector])}}else a.off(".contextMenu .contextMenuAutoHide"),t.each(h,function(e,n){t(n.context).off(n.ns)}),u={},h={},l=0,s=!1,t("#context-menu-layer, .context-menu-list").remove();break;case"html5":(!t.support.htmlCommand&&!t.support.htmlMenuitem||"boolean"==typeof i&&i)&&t('menu[type="context"]').each(function(){this.id&&t.contextMenu({selector:"[contextmenu="+this.id+"]",items:t.contextMenu.fromMenu(this)})}).css("display","none");break;default:throw new Error('Unknown operation "'+n+'"')}return this},t.contextMenu.setInputValues=function(n,i){i===e&&(i={}),t.each(n.inputs,function(t,e){switch(e.type){case"text":case"textarea":e.value=i[t]||"";break;case"checkbox":e.selected=!!i[t];break;case"radio":e.selected=(i[e.radio]||"")==e.value;break;case"select":e.selected=i[t]||""}})},t.contextMenu.getInputValues=function(n,i){return i===e&&(i={}),t.each(n.inputs,function(t,e){switch(e.type){case"text":case"textarea":case"select":i[t]=e.$input.val();break;case"checkbox":i[t]=e.$input.prop("checked");break;case"radio":e.$input.prop("checked")&&(i[e.radio]=e.value)}}),i},t.contextMenu.fromMenu=function(e){var n=t(e),i={};return r(i,n.children()),i},t.contextMenu.defaults=f,t.contextMenu.types=d,t.contextMenu.handle=m,t.contextMenu.op=v,t.contextMenu.menus=h}(jQuery)},function(t,e,n){var i=n(146);"string"==typeof i&&(i=[[t.i,i,""]]);var r={hmr:!0};r.transform=void 0,r.insertInto=void 0;n(148)(i,r);i.locals&&(t.exports=i.locals)},function(t,e,n){e=t.exports=n(147)(!1),e.push([t.i,'/*!\n * jQuery contextMenu - Plugin for simple contextMenu handling\n *\n * Version: 1.5.24\n *\n * Authors: Rodney Rehm, Addy Osmani (patches for FF)\n * Web: http://medialize.github.com/jQuery-contextMenu/\n *\n * Licensed under\n *   MIT License http://www.opensource.org/licenses/mit-license\n *   GPL v3 http://opensource.org/licenses/GPL-3.0\n *\n */\n\n.context-menu-list {\n    margin:0;\n    padding:0;\n\n    min-width: 120px;\n    max-width: 250px;\n    display: inline-block;\n    position: absolute;\n    list-style-type: none;\n\n    border: 1px solid #DDD;\n    background: #EEE;\n\n    -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);\n       -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);\n        -ms-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);\n         -o-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);\n            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);\n\n    font-family: Verdana, Arial, Helvetica, sans-serif;\n    font-size: 11px;\n}\n\n.context-menu-item {\n    padding: 2px 2px 2px 24px;\n    background-color: #EEE;\n    position: relative;\n    -webkit-user-select: none;\n       -moz-user-select: -moz-none;\n        -ms-user-select: none;\n            user-select: none;\n}\n\n.context-menu-separator {\n    padding-bottom:0;\n    border-bottom: 1px solid #DDD;\n}\n\n.context-menu-item > label > input,\n.context-menu-item > label > textarea {\n    -webkit-user-select: text;\n       -moz-user-select: text;\n        -ms-user-select: text;\n            user-select: text;\n}\n\n.context-menu-item.hover {\n    cursor: pointer;\n    background-color: #39F;\n}\n\n.context-menu-item.disabled {\n    color: #666;\n}\n\n.context-menu-input.hover,\n.context-menu-item.disabled.hover {\n    cursor: default;\n    background-color: #EEE;\n}\n\n.context-menu-submenu:after {\n    content: ">";\n    color: #666;\n    position: absolute;\n    top: 0;\n    right: 3px;\n    z-index: 1;\n}\n\n/* icons\n    #protip:\n    In case you want to use sprites for icons (which I would suggest you do) have a look at\n    http://css-tricks.com/13224-pseudo-spriting/ to get an idea of how to implement\n    .context-menu-item.icon:before {}\n */\n.context-menu-item.icon { min-height: 18px; background-repeat: no-repeat; background-position: 4px 2px; }\n\n/* vertically align inside labels */\n.context-menu-input > label > * { vertical-align: top; }\n\n/* position checkboxes and radios as icons */\n.context-menu-input > label > input[type="checkbox"],\n.context-menu-input > label > input[type="radio"] {\n    margin-left: -17px;\n}\n.context-menu-input > label > span {\n    margin-left: 5px;\n}\n\n.context-menu-input > label,\n.context-menu-input > label > input[type="text"],\n.context-menu-input > label > textarea,\n.context-menu-input > label > select {\n    display: block;\n    width: 100%;\n\n    -webkit-box-sizing: border-box;\n       -moz-box-sizing: border-box;\n        -ms-box-sizing: border-box;\n         -o-box-sizing: border-box;\n            box-sizing: border-box;\n}\n\n.context-menu-input > label > textarea {\n    height: 100px;\n}\n.context-menu-item > .context-menu-list {\n    display: none;\n    /* re-positioned by js */\n    right: -5px;\n    top: 5px;\n}\n\n.context-menu-item.hover > .context-menu-list {\n    display: block;\n}\n\n.context-menu-accesskey {\n    text-decoration: underline;\n}\n',""])},function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var a=i(r);return[n].concat(r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"})).concat([a]).join("\n")}return[n].join("\n")}function i(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var i=n(e,t);return e[2]?"@media "+e[2]+"{"+i+"}":i}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var i={},r=0;r<this.length;r++){var a=this[r][0];"number"==typeof a&&(i[a]=!0)}for(r=0;r<t.length;r++){var o=t[r];"number"==typeof o[0]&&i[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),e.push(o))}},e}},function(t,e,n){function i(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=p[i.id];if(r){r.refs++;for(var a=0;a<r.parts.length;a++)r.parts[a](i.parts[a]);for(;a<i.parts.length;a++)r.parts.push(u(i.parts[a],e))}else{for(var o=[],a=0;a<i.parts.length;a++)o.push(u(i.parts[a],e));p[i.id]={id:i.id,refs:1,parts:o}}}}function r(t,e){for(var n=[],i={},r=0;r<t.length;r++){var a=t[r],o=e.base?a[0]+e.base:a[0],s=a[1],c=a[2],l=a[3],u={css:s,media:c,sourceMap:l};i[o]?i[o].parts.push(u):n.push(i[o]={id:o,parts:[u]})}return n}function a(t,e){var n=v(t.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var i=b[b.length-1];if("top"===t.insertAt)i?i.nextSibling?n.insertBefore(e,i.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),b.push(e);else if("bottom"===t.insertAt)n.appendChild(e);else{if("object"!=typeof t.insertAt||!t.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var r=v(t.insertInto+" "+t.insertAt.before);n.insertBefore(e,r)}}function o(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=b.indexOf(t);e>=0&&b.splice(e,1)}function s(t){var e=document.createElement("style");return void 0===t.attrs.type&&(t.attrs.type="text/css"),l(e,t.attrs),a(t,e),e}function c(t){var e=document.createElement("link");return void 0===t.attrs.type&&(t.attrs.type="text/css"),t.attrs.rel="stylesheet",l(e,t.attrs),a(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,i,r,a;if(e.transform&&t.css){if(!(a=e.transform(t.css)))return function(){};t.css=a}if(e.singleton){var l=x++;n=y||(y=s(e)),i=h.bind(null,n,l,!1),r=h.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),i=f.bind(null,n,e),r=function(){o(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),i=d.bind(null,n),r=function(){o(n)});return i(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;i(t=e)}else r()}}function h(t,e,n,i){var r=n?"":i.css;if(t.styleSheet)t.styleSheet.cssText=C(e,r);else{var a=document.createTextNode(r),o=t.childNodes;o[e]&&t.removeChild(o[e]),o.length?t.insertBefore(a,o[e]):t.appendChild(a)}}function d(t,e){var n=e.css,i=e.media;if(i&&t.setAttribute("media",i),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function f(t,e,n){var i=n.css,r=n.sourceMap,a=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||a)&&(i=w(i)),r&&(i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([i],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(o),s&&URL.revokeObjectURL(s)}var p={},g=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),m=function(t){return document.querySelector(t)},v=function(t){var e={};return function(t){if("function"==typeof t)return t();if(void 0===e[t]){var n=m.call(this,t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}}(),y=null,x=0,b=[],w=n(149);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=g()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=r(t,e);return i(n,e),function(t){for(var a=[],o=0;o<n.length;o++){var s=n[o],c=p[s.id];c.refs--,a.push(c)}if(t){i(r(t,e),e)}for(var o=0;o<a.length;o++){var c=a[o];if(0===c.refs){for(var l=0;l<c.parts.length;l++)c.parts[l]();delete p[c.id]}}}};var C=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,i=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var r=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(r))return t;var a;return a=0===r.indexOf("//")?r:0===r.indexOf("/")?n+r:i+r.replace(/^\.\//,""),"url("+JSON.stringify(a)+")"})}},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.port.PortFeedbackPolicy=r.default.policy.figure.DragDropEditPolicy.extend({NAME:"draw2d.policy.port.PortFeedbackPolicy",init:function(t,e,n){this._super(t,e,n)},onHoverEnter:function(t,e,n){},onHoverLeave:function(t,e,n){}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.policy.port.ElasticStrapFeedbackPolicy=r.default.policy.port.PortFeedbackPolicy.extend({NAME:"draw2d.policy.port.ElasticStrapFeedbackPolicy",init:function(t,e,n){this._super(t,e,n),this.connectionLine=null},onDragStart:function(t,e,n,i,a,o){this.connectionLine=new r.default.shape.basic.Line,this.connectionLine.setCanvas(t),this.connectionLine.getShapeElement(),this.onDrag(t,e)},onDrag:function(t,e){var n=e.ox+e.getParent().getAbsoluteX(),i=e.oy+e.getParent().getAbsoluteY();this.connectionLine.setStartPoint(n,i),this.connectionLine.setEndPoint(e.getAbsoluteX(),e.getAbsoluteY())},onDragEnd:function(t,e,n,i,r,a){this.connectionLine.setCanvas(null),this.connectionLine=null},onHoverEnter:function(t,e,n){this.connectionLine.setGlow(!0),n.setGlow(!0)},onHoverLeave:function(t,e,n){n.setGlow(!1),this.connectionLine.setGlow(!1)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i),a=n(3);r.default.policy.port.IntrusivePortsFeedbackPolicy=r.default.policy.port.PortFeedbackPolicy.extend({NAME:"draw2d.policy.port.IntrusivePortsFeedbackPolicy",init:function(t,e,n){this._super(t,e,n),this.connectionLine=null,this.tweenable=null},onDragStart:function(t,e,n,i,o,s){var c=0,l=t.getAllPorts().clone();return l.each(function(t,e){void 0===e.__beforeInflate&&(e.__beforeInflate=e.getWidth()),c=e.__beforeInflate}),l.grep(function(t){return t.NAME!=e.NAME&&t.parent!==e.parent||t instanceof r.default.HybridPort||e instanceof r.default.HybridPort}),this.tweenable=new a.Tweenable,this.tweenable.tween({from:{size:c/2},to:{size:c},duration:200,easing:"easeOutSine",step:function(t){l.each(function(e,n){n.shape.attr({rx:t.size,ry:t.size}),n.width=n.height=2*t.size})}}),this.connectionLine=new r.default.shape.basic.Line,this.connectionLine.setCanvas(t),this.connectionLine.getShapeElement(),this.connectionLine.setDashArray("- "),this.connectionLine.setColor("#30c48a"),this.onDrag(t,e),!0},onDrag:function(t,e){var n=e.ox+e.getParent().getAbsoluteX(),i=e.oy+e.getParent().getAbsoluteY();this.connectionLine.setStartPoint(n,i),this.connectionLine.setEndPoint(e.getAbsoluteX(),e.getAbsoluteY())},onDragEnd:function(t,e,n,i,r,a){this.tweenable&&(this.tweenable.stop(!0),this.tweenable.dispose(),this.tweenable=null),t.getAllPorts().each(function(t,e){e.shape.attr({rx:e.__beforeInflate/2,ry:e.__beforeInflate/2}),e.width=e.height=e.__beforeInflate,delete e.__beforeInflate}),this.connectionLine.setCanvas(null),this.connectionLine=null},onHoverEnter:function(t,e,n){this.connectionLine.setGlow(!0),n.setGlow(!0)},onHoverLeave:function(t,e,n){n.setGlow(!1),this.connectionLine,this.connectionLine.setGlow(!1)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.Configuration={version:"@VERSION@",i18n:{command:{move:"Move Shape",assignShape:"Add Shapes to Composite",groupShapes:"Group Shapes",ungroupShapes:"Ungroup Shapes",deleteShape:"Delete Shape",moveShape:"Move Shape",moveLine:"Move Line",addShape:"Add Shape",moveVertex:"Move Vertex",moveVertices:"Move Vertices",deleteVertex:"Delete Vertex",resizeShape:"Resize Shape",collection:"Execute Commands",addVertex:"Add Vertex",changeAttributes:"Change Attributes",connectPorts:"Connect Ports"},menu:{deleteSegment:"Delete Segment",addSegment:"Add Segment"},dialog:{filenamePrompt:"Enter Filename:"}},factory:{createResizeHandle:function(t,e){return new r.default.ResizeHandle(t,e)},createConnection:function(t,e,n,i){return console.log("deprecated call factory.createConnection"),new r.default.Connection},createInputPort:function(t){return new r.default.InputPort},createOutputPort:function(t){return new r.default.OutputPort},createHybridPort:function(t){return new r.default.HybridPort}}}},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.HeadlessCanvas=Class.extend({NAME:"draw2d.HeadlessCanvas",init:function(){this.figures=new r.default.util.ArrayList,this.lines=new r.default.util.ArrayList,this.commonPorts=new r.default.util.ArrayList,this.dropTargets=new r.default.util.ArrayList,this.eventSubscriptions={},this.commandStack=new r.default.command.CommandStack},clear:function(){return this.figures=new r.default.util.ArrayList,this.lines=new r.default.util.ArrayList,this.commonPorts=new r.default.util.ArrayList,this.dropTargets=new r.default.util.ArrayList,this.commandStack.markSaveLocation(),this},calculateConnectionIntersection:function(){},hideDecoration:function(){},showDecoration:function(){},add:function(t,e,n){if(t.getCanvas()!==this)return t instanceof r.default.shape.basic.Line?this.lines.add(t):this.figures.add(t),t.canvas=this,this},getLines:function(){return this.lines},getFigures:function(){return this.figures},getLine:function(t){for(var e=this.lines.getSize(),n=0;n<e;n++){var i=this.lines.get(n);if(i.getId()===t)return i}return null},getFigure:function(t){var e=null;return this.figures.each(function(n,i){if(i.id===t)return e=i,!1}),e},registerPort:function(t){return this.commonPorts.contains(t)||this.commonPorts.add(t),this},getAllPorts:function(){return this.commonPorts},getCommandStack:function(){return this.commandStack},fireEvent:function(t,e){if(void 0!==this.eventSubscriptions[t])for(var n=this.eventSubscriptions[t],i=0;i<n.length;i++)try{n[i](this,e)}catch(t){console.log(t),console.log(n[i])}},on:function(t,e){for(var n=t.split(" "),i=0;i<n.length;i++)void 0===this.eventSubscriptions[n[i]]&&(this.eventSubscriptions[n[i]]=[]),this.eventSubscriptions[n[i]].push(e);return this},off:function(t){if(void 0===t)this.eventSubscriptions={};else if("string"==typeof t)this.eventSubscriptions[t]=[];else for(var e in this.eventSubscriptions)this.eventSubscriptions[e]=this.eventSubscriptions[e].filter(function(e){return e!==t});return this}})},function(t,e,n){"use strict";function i(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var r=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(r);a.default.Canvas=Class.extend({NAME:"draw2d.Canvas",init:function(t,e,n){var i=this;this.setScrollArea(document.body),this.canvasId=t,this.html=$("#"+t),this.html.css({cursor:"default"}),isNaN(parseFloat(e))||isNaN(parseFloat(n))?(this.initialWidth=this.getWidth(),this.initialHeight=this.getHeight()):(this.initialWidth=e,this.initialHeight=n),this.html.css({"-webkit-tap-highlight-color":"rgba(0,0,0,0)"}),$(this.html).droppable({accept:".draw2d_droppable",over:function(t,e){i.onDragEnter(e.draggable)},out:function(t,e){i.onDragLeave(e.draggable)},drop:function(t,e){t=i._getEvent(t);var n=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.onDrop(e.draggable,n.getX(),n.getY(),t.shiftKey,t.ctrlKey)}}),$(".draw2d_droppable").draggable({appendTo:"body",stack:"body",zIndex:27e3,helper:"clone",drag:function(t,e){t=i._getEvent(t);var n=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.onDrag(e.draggable,n.getX(),n.getY(),t.shiftKey,t.ctrlKey)},stop:function(t,e){},start:function(t,e){$(e.helper).addClass("shadow")}}),isNaN(parseFloat(n))?this.paper=Raphael(t,this.getWidth(),this.getHeight()):this.paper=Raphael(t,e,n),this.paper.canvas.style.position="absolute",this.zoomPolicy=null,this.zoomFactor=1,this.selection=new a.default.Selection,this.currentDropTarget=null,this.currentHoverFigure=null,this.regionDragDropConstraint=new a.default.policy.figure.RegionEditPolicy(0,0,this.getWidth(),this.getHeight()),this.eventSubscriptions={},this.editPolicy=new a.default.util.ArrayList,this.figures=new a.default.util.ArrayList,this.lines=new a.default.util.ArrayList,this.commonPorts=new a.default.util.ArrayList,this.dropTargets=new a.default.util.ArrayList,this.resizeHandles=new a.default.util.ArrayList,this.commandStack=new a.default.command.CommandStack,this.linesToRepaintAfterDragDrop=new a.default.util.ArrayList,this.lineIntersections=new a.default.util.ArrayList,this.installEditPolicy(new a.default.policy.canvas.WheelZoomPolicy),this.installEditPolicy(new a.default.policy.canvas.DefaultKeyboardPolicy),this.installEditPolicy(new a.default.policy.canvas.BoundingboxSelectionPolicy),this.installEditPolicy(new a.default.policy.canvas.DropInterceptorPolicy),this.installEditPolicy(new a.default.policy.connection.ComposedConnectionCreatePolicy([new a.default.policy.connection.DragConnectionCreatePolicy,new a.default.policy.connection.ClickConnectionCreatePolicy])),this.commandStack.addEventListener(function(t){!0===t.isPostChangeEvent()&&(i.calculateConnectionIntersection(),i.linesToRepaintAfterDragDrop.each(function(t,e){e.svgPathString=null,e.repaint()}),i.linesToRepaintAfterDragDrop=new a.default.util.ArrayList)}),this.mouseDown=!1,this.mouseDownX=0,this.mouseDownY=0,this.mouseDragDiffX=0,this.mouseDragDiffY=0,this.html.bind("mouseup touchend",function(t){if(!1!==i.mouseDown){t=i._getEvent(t),i.calculateConnectionIntersection(),i.mouseDown=!1;var e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.editPolicy.each(function(n,r){r.onMouseUp(i,e.x,e.y,t.shiftKey,t.ctrlKey)}),i.mouseDragDiffX=0,i.mouseDragDiffY=0}}),this.html.bind("mousemove touchmove",function(t){t=i._getEvent(t);var e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);if(!1===i.mouseDown){try{var n=i.getBestFigure(e.x,e.y);n!==i.currentHoverFigure&&null!==i.currentHoverFigure&&(i.currentHoverFigure.onMouseLeave(),i.currentHoverFigure.fireEvent("mouseleave"),i.fireEvent("mouseleave",{figure:i.currentHoverFigure})),n!==i.currentHoverFigure&&null!==n&&(n.onMouseEnter(),n.fireEvent("mouseenter"),i.fireEvent("mouseenter",{figure:n})),i.currentHoverFigure=n}catch(t){console.log(t)}i.editPolicy.each(function(n,r){r.onMouseMove(i,e.x,e.y,t.shiftKey,t.ctrlKey)}),i.fireEvent("mousemove",{x:e.x,y:e.y,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,hoverFigure:i.currentHoverFigure})}else{var r=(t.clientX-i.mouseDownX)*i.zoomFactor,a=(t.clientY-i.mouseDownY)*i.zoomFactor;i.editPolicy.each(function(e,n){n.onMouseDrag(i,r,a,r-i.mouseDragDiffX,a-i.mouseDragDiffY,t.shiftKey,t.ctrlKey)}),i.mouseDragDiffX=r,i.mouseDragDiffY=a,i.fireEvent("mousemove",{x:e.x,y:e.y,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,hoverFigure:i.currentHoverFigure})}}),this.html.bind("mousedown touchstart",function(t){try{var e=null;switch(t.which){case 1:case 0:try{t.preventDefault(),t=i._getEvent(t),i.mouseDownX=t.clientX,i.mouseDownY=t.clientY,i.mouseDragDiffX=0,i.mouseDragDiffY=0,e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY),i.mouseDown=!0,i.editPolicy.each(function(n,r){r.onMouseDown(i,e.x,e.y,t.shiftKey,t.ctrlKey)})}catch(t){console.log(t)}break;case 3:return t.preventDefault(),void 0!==t.stopPropagation&&t.stopPropagation(),t=i._getEvent(t),e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY),i.onRightMouseDown(e.x,e.y,t.shiftKey,t.ctrlKey),!1}}catch(t){console.log(t)}}),this.html.on("dblclick",function(t){t=i._getEvent(t),i.mouseDownX=t.clientX,i.mouseDownY=t.clientY;var e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.onDoubleClick(e.x,e.y,t.shiftKey,t.ctrlKey)}),this.html.on("click",function(t){if(t=i._getEvent(t),i.mouseDownX===t.clientX||i.mouseDownY===t.clientY){var e=i.fromDocumentToCanvasCoordinate(t.clientX,t.clientY);i.onClick(e.x,e.y,t.shiftKey,t.ctrlKey)}}),this.html.on("MozMousePixelScroll DOMMouseScroll mousewheel",function(t){var e=i._getEvent(t),n=i.fromDocumentToCanvasCoordinate(e.originalEvent.clientX,e.originalEvent.clientY),r=0;"mousewheel"==t.type?r=-1*t.originalEvent.wheelDelta:"DOMMouseScroll"==t.type&&(r=40*t.originalEvent.detail),!1===i.onMouseWheel(r,n.x,n.y,e.shiftKey,e.ctrlKey)&&t.preventDefault()}),this.keyupCallback=function(t){var e=$(t.target);e.is("input")||e.is("textarea")||i.editPolicy.each(function(e,n){n instanceof a.default.policy.canvas.KeyboardPolicy&&n.onKeyUp(i,t.keyCode,t.shiftKey,t.ctrlKey)})},$(document).bind("keyup",this.keyupCallback),this.keydownCallback=function(t){var e=$(t.target);e.is("input")||e.is("textarea")||i.editPolicy.each(function(e,n){n instanceof a.default.policy.canvas.KeyboardPolicy&&n.onKeyDown(i,t.keyCode,t.shiftKey,t.ctrlKey)})},$(document).bind("keydown",this.keydownCallback)},destroy:function(){this.clear(),$(document).unbind("keydown",this.keydownCallback),$(document).unbind("keyup",this.keyupCallback),this.eventSubscriptions={};try{this.paper.remove()}catch(t){}},clear:function(){this.fireEvent("clear");var t=this;return this.lines.clone().each(function(e,n){t.remove(n)}),this.figures.clone().each(function(e,n){t.remove(n)}),this.zoomFactor=1,this.selection.clear(),this.currentDropTarget=null,this.figures=new a.default.util.ArrayList,this.lines=new a.default.util.ArrayList,this.commonPorts=new a.default.util.ArrayList,this.dropTargets=new a.default.util.ArrayList,this.commandStack.markSaveLocation(),this.linesToRepaintAfterDragDrop=new a.default.util.ArrayList,this.lineIntersections=new a.default.util.ArrayList,this.fireEvent("select",{figure:null}),this},hideDecoration:function(){},showDecoration:function(){},calculateConnectionIntersection:function(){var t=this;this.lineIntersections=new a.default.util.ArrayList;for(var e=this.getLines().clone();e.getSize()>0;){var n=e.removeElementAt(0);e.each(function(e,i){var r=n.intersection(i);r.getSize()>0&&(t.lineIntersections.add({line:n,other:i,intersection:r}),t.lineIntersections.add({line:i,other:n,intersection:r}))})}return this},installEditPolicy:function(t){var e=this;return t instanceof a.default.policy.canvas.SelectionPolicy?(this.getSelection().getAll().each(function(t,e){e.unselect()}),this.editPolicy.grep(function(t){var n=!(t instanceof a.default.policy.canvas.SelectionPolicy);return!1===n&&t.onUninstall(e),n})):t instanceof a.default.policy.canvas.ZoomPolicy?(this.editPolicy.grep(function(t){var n=!(t instanceof a.default.policy.canvas.ZoomPolicy);return!1===n&&t.onUninstall(e),n}),this.zoomPolicy=t):t instanceof a.default.policy.connection.ConnectionCreatePolicy?this.editPolicy.grep(function(t){var n=!(t instanceof a.default.policy.connection.ConnectionCreatePolicy);return!1===n&&t.onUninstall(e),n}):a.default.policy.canvas.DropInterceptorPolicy,t.onInstall(this),this.editPolicy.add(t),this},uninstallEditPolicy:function(t){if(null!==t){var e=this.editPolicy.remove(t);if(null!==e)e.onUninstall(this),e instanceof a.default.policy.canvas.ZoomPolicy&&(this.zoomPolicy=null);else{var n=this,i="string"==typeof t?t:t.NAME;this.editPolicy.grep(function(t){return t.NAME!==i||(t.onUninstall(n),t instanceof a.default.policy.canvas.ZoomPolicy&&(n.zoomPolicy=null),!1)})}return this}},getDropInterceptorPolicies:function(){return this.editPolicy.clone().grep(function(t){return t instanceof a.default.policy.canvas.DropInterceptorPolicy})},setZoom:function(t,e){this.zoomPolicy&&this.zoomPolicy.setZoom(t,e)},getZoom:function(){return this.zoomFactor},getDimension:function(){return new a.default.geo.Rectangle(0,0,this.initialWidth,this.initialHeight)},setDimension:function(t,e){if(void 0===t){var n=this.getFigures().clone().map(function(t){return t.getAbsoluteX()+t.getWidth()}),r=this.getFigures().clone().map(function(t){return t.getAbsoluteY()+t.getHeight()});this.initialHeight=Math.max.apply(Math,i(r.asArray())),this.initialWidth=Math.max.apply(Math,i(n.asArray()))}else t instanceof a.default.geo.Rectangle?(this.initialWidth=t.w,this.initialHeight=t.h):"number"==typeof t.width&&"number"==typeof t.height?(this.initialWidth=t.width,this.initialHeight=t.height):"number"==typeof t&&"number"==typeof e&&(this.initialWidth=t,this.initialHeight=e);return this.html.css({width:this.initialWidth+"px",height:this.initialHeight+"px"}),this.paper.setSize(this.initialWidth,this.initialHeight),this.setZoom(this.zoomFactor,!1),this},fromDocumentToCanvasCoordinate:function(t,e){return new a.default.geo.Point((t-this.getAbsoluteX()+this.getScrollLeft())*this.zoomFactor,(e-this.getAbsoluteY()+this.getScrollTop())*this.zoomFactor)},fromCanvasToDocumentCoordinate:function(t,e){return new a.default.geo.Point(t*(1/this.zoomFactor)+this.getAbsoluteX()-this.getScrollLeft(),e*(1/this.zoomFactor)+this.getAbsoluteY()-this.getScrollTop())},getHtmlContainer:function(){return this.html},_getEvent:function(t){if(void 0!==t.originalEvent){if(t.originalEvent.touches&&t.originalEvent.touches.length)return t.originalEvent.touches[0];if(t.originalEvent.changedTouches&&t.originalEvent.changedTouches.length)return t.originalEvent.changedTouches[0]}return t},setScrollArea:function(t){return this.scrollArea=$(t),this},getScrollArea:function(){return this.scrollArea},getScrollLeft:function(){return this.getScrollArea().scrollLeft()},getScrollTop:function(){return this.getScrollArea().scrollTop()},setScrollLeft:function(t){return this.getScrollArea().scrollLeft(),this},setScrollTop:function(t){return this.getScrollArea().scrollTop(),this},scrollTo:function(t,e){return this.getScrollArea().scrollTop(t),this.getScrollArea().scrollLeft(e),this},getAbsoluteX:function(){return this.html.offset().left},getAbsoluteY:function(){return this.html.offset().top},getWidth:function(){return this.html.width()},getHeight:function(){return this.html.height()},add:function(t,e,n){if(t.getCanvas()!==this)return t instanceof a.default.shape.basic.Line?(this.lines.add(t),this.linesToRepaintAfterDragDrop=this.lines):(this.figures.add(t),void 0!==n?t.setPosition(e,n):void 0!==e&&t.setPosition(e)),t.setCanvas(this),t.installEditPolicy(this.regionDragDropConstraint),t.getShapeElement(),t.repaint(),this.fireEvent("figure:add",{figure:t,canvas:this}),t.fireEvent("added",{figure:t,canvas:this}),t.fireEvent("move",{figure:t,dx:0,dy:0}),t instanceof a.default.shape.basic.PolyLine&&(this.calculateConnectionIntersection(),this.linesToRepaintAfterDragDrop.each(function(t,e){e.svgPathString=null,e.repaint()}),this.linesToRepaintAfterDragDrop=new a.default.util.ArrayList),this},remove:function(t){if(t.getCanvas()!==this)return this;var e=this;return this.getSelection().contains(t)&&this.editPolicy.each(function(n,i){"function"==typeof i.unselect&&i.unselect(e,t)}),t instanceof a.default.shape.basic.Line?this.lines.remove(t):this.figures.remove(t),t.setCanvas(null),t instanceof a.default.Connection&&t.disconnect(),this.fireEvent("figure:remove",{figure:t}),t.fireEvent("removed",{figure:t,canvas:this}),this},getLines:function(){return this.lines},getFigures:function(){return this.figures},getLine:function(t){for(var e=this.lines.getSize(),n=0;n<e;n++){var i=this.lines.get(n);if(i.getId()===t)return i}return null},getFigure:function(t){var e=null;return this.figures.each(function(n,i){if(i.id===t)return e=i,!1}),e},getIntersection:function(t){var e=new a.default.util.ArrayList;return this.lineIntersections.each(function(n,i){i.line===t&&i.intersection.each(function(t,n){e.add({x:n.x,y:n.y,justTouching:n.justTouching,other:i.other})})}),e},snapToHelper:function(t,e){if(this.getSelection().getSize()>1)return e;var n=this,i=e.clone();return this.editPolicy.each(function(r,a){e=a.snap(n,t,e,i)}),e},registerPort:function(t){return this.commonPorts.contains(t)||this.commonPorts.add(t),this},unregisterPort:function(t){return this.commonPorts.remove(t),this},getAllPorts:function(){return this.commonPorts},getCommandStack:function(){return this.commandStack},getPrimarySelection:function(){return this.selection.getPrimary()},getSelection:function(){return this.selection},setCurrentSelection:function(t){var e=this;return this.selection.each(function(t,n){e.editPolicy.each(function(t,i){"function"==typeof i.unselect&&i.unselect(e,n)})}),this.addSelection(t),this},addSelection:function(t){var e=this,n=function(t,n){e.editPolicy.each(function(t,i){"function"==typeof i.select&&i.select(e,n)})};return t instanceof a.default.util.ArrayList?t.each(n):n(0,t),this},getBestFigure:function(t,e,n,i){Array.isArray(n)||(n=n?[n]:[]),Array.isArray(i)||(i=i?[i]:[]);for(var r=null,a=null,o=function(t,e){for(var n=0,i=e.length;n<i;n++){var r=e[n];if("function"==typeof r){if(t instanceof r)return!0}else if(r===t||r.contains(t))return!0}return!1},s=function(t){return o(t,n)},c=0===i.length?function(){return!0}:function(t){return o(t,i)},l=function n(i){i.each(function(i,a){var o=a.figure;return n(o.children),null===r&&o.isVisible()&&o.hitTest(t,e)&&!s(o)&&c(o)&&(r=o),null===r})},u=0,h=this.resizeHandles.getSize();u<h;u++)if(a=this.resizeHandles.get(u),a.isVisible()&&a.hitTest(t,e)&&!s(a)&&c(a))return a;for(var d=0,f=this.commonPorts.getSize();d<f;d++){var p=this.commonPorts.get(d);if(l(p.children),null===r&&p.isVisible()&&p.hitTest(t,e)&&!s(p)&&c(p)&&(r=p),null!==r)return r}for(var g=this.figures.getSize()-1;g>=0;g--){var m=this.figures.get(g);if(l(m.children),null===r&&m.isVisible()&&m.hitTest(t,e)&&!s(m)&&c(m)&&(r=m),null!==r){var v=this.getBestLine(t,e,r);if(null!==v){var y=$(v.shape.node).index();if($(r.shape.node).index()<y)return v}return r}}for(var x=this.lines.getSize(),b=0;b<x;b++){if(l(this.lines.get(b).children),null!==r)return r}return r=this.getBestLine(t,e,n,i)},getBestLine:function(t,e,n){Array.isArray(n)||(n=n instanceof a.default.Figure?[n]:[]);for(var i=this.lines.getSize(),r=0;r<i;r++){var o=this.lines.get(r);if(!0===o.isVisible()&&!0===o.hitTest(t,e)&&-1===$.inArray(o,n))return o}return null},onDragEnter:function(t){},onDrag:function(t,e,n){},onDragLeave:function(t){},onDrop:function(t,e,n,i,r){},onDoubleClick:function(t,e,n,i){var r=this.getBestFigure(t,e);null===r&&(r=this.getBestLine(t,e)),this.fireEvent("dblclick",{figure:r,x:t,y:e,shiftKey:n,ctrlKey:i}),this.editPolicy.each(function(a,o){o.onDoubleClick(r,t,e,n,i)})},onClick:function(t,e,n,i){var r=this.getBestFigure(t,e);this.fireEvent("click",{figure:r,x:t,y:e,relX:null!==r?t-r.getAbsoluteX():0,relY:null!==r?e-r.getAbsoluteY():0,shiftKey:n,ctrlKey:i}),this.editPolicy.each(function(a,o){o.onClick(r,t,e,n,i)})},onRightMouseDown:function(t,e,n,i){var r=this.getBestFigure(t,e);this.fireEvent("contextmenu",{figure:r,x:t,y:e,shiftKey:n,ctrlKey:i}),null!==r&&(r.fireEvent("contextmenu",{figure:r,x:t,y:e,shiftKey:n,ctrlKey:i}),r.onContextMenu(t,e),r.editPolicy.each(function(a,o){o.onRightMouseDown(r,t,e,n,i)})),this.editPolicy.each(function(a,o){o.onRightMouseDown(r,t,e,n,i)})},onMouseWheel:function(t,e,n,i,r){var a=!0;return this.fireEvent("wheel",{wheelDelta:t,x:e,y:n,shiftKey:i,ctrlKey:r}),this.editPolicy.each(function(o,s){a=s.onMouseWheel(t,e,n,i,r)&&a}),a},fireEvent:function(t,e){if(void 0!==this.eventSubscriptions[t])for(var n=this.eventSubscriptions[t],i=0;i<n.length;i++)try{n[i](this,e)}catch(t){console.log(t),console.log(n[i])}},on:function(t,e){for(var n=t.split(" "),i=0;i<n.length;i++)void 0===this.eventSubscriptions[n[i]]&&(this.eventSubscriptions[n[i]]=[]),this.eventSubscriptions[n[i]].push(e);return this},off:function(t){if(void 0===t)this.eventSubscriptions={};else if("string"==typeof t)this.eventSubscriptions[t]=[];else for(var e in this.eventSubscriptions)this.eventSubscriptions[e]=this.eventSubscriptions[e].filter(function(e){return e!==t});return this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.Selection=Class.extend({NAME:"draw2d.Selection",init:function(){this.primary=null,this.all=new r.default.util.ArrayList},clear:function(){return this.primary=null,this.all=new r.default.util.ArrayList,this},getPrimary:function(){return this.primary},setPrimary:function(t){return this.primary=t,this.add(t),this},remove:function(t){return this.all.remove(t),this.primary===t&&(this.primary=null),this},add:function(t){return null===t||this.all.contains(t)||this.all.add(t),this},contains:function(t,e){if(e){for(var n=0;n<this.all.getSize();n++){var i=this.all.get(n);if(i===t||i.contains(t))return!0}return!1}return this.all.contains(t)},getSize:function(){return this.all.getSize()},getAll:function(t){if(!0===t){var e=new r.default.util.ArrayList;return function t(n){e.addAll(n,!0),n.each(function(e,n){n instanceof r.default.shape.composite.StrongComposite&&t(n.getAssignedFigures())})}(this.all),e}return this.all.clone()},each:function(t,e){return this.all.each(t,e),this}})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _defineProperty(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var _packages=__webpack_require__(0),_packages2=_interopRequireDefault(_packages),_JSONUtil=__webpack_require__(2),_JSONUtil2=_interopRequireDefault(_JSONUtil),_UUID=__webpack_require__(158),_UUID2=_interopRequireDefault(_UUID),_extend=__webpack_require__(1),_extend2=_interopRequireDefault(_extend);_packages2.default.Figure=Class.extend({NAME:"draw2d.Figure",MIN_TIMER_INTERVAL:50,init:function(t,e,n){this.setterWhitelist=(0,_extend2.default)({id:this.setId,x:this.setX,y:this.setY,width:this.setWidth,height:this.setHeight,boundingBox:this.setBoundingBox,minWidth:this.setMinWidth,minHeight:this.setMinHeight,cssClass:this.setCssClass,userData:this.setUserData,resizeable:this.setResizeable,selectable:this.setSelectable,angle:this.setRotationAngle,alpha:this.setAlpha,opacity:this.setAlpha,glow:this.setGlow,visible:this.setVisible,keepAspectRatio:this.setKeepAspectRatio},e),this.getterWhitelist=(0,_extend2.default)({id:this.getId,visible:this.isVisible,angle:this.getRotationAngle,x:this.getX,y:this.getY,width:this.getWidth,height:this.getHeight,resizeable:this.isResizeable,selectable:this.isSelectable,alpha:this.getAlpha,opacity:this.getAlpha},n);var i=this;this.id=_UUID2.default.create(),this.isResizeHandle=!1,this.command=null,this.canvas=null,this.shape=null,this.children=new _packages2.default.util.ArrayList,this.selectable=!0,this.deleteable=!0,this.resizeable=!0,this.draggable=!0,this.visible=!0,this.keepAspectRatio=!1,this.canSnapToHelper=!0,this.snapToGridAnchor=new _packages2.default.geo.Point(0,0),this.editPolicy=new _packages2.default.util.ArrayList,this.timerId=-1,this.timerInterval=0,this.parent=null,this.composite=null,this.userData=null,this.x=0,this.y=0,this.minHeight=5,this.minWidth=5,this.rotationAngle=0,this.cssClass=this.NAME.replace(new RegExp("[.]","g"),"_"),this.width=this.getMinWidth(),this.height=this.getMinHeight(),this.alpha=1,this.isInDragDrop=!1,this.ox=0,this.oy=0,this.repaintBlocked=!1,this.lastAppliedAttributes={},this.selectionHandles=new _packages2.default.util.ArrayList,this.panningDelegate=null,this.eventSubscriptions={},this.relocateChildrenEventCallback=function(){i.children.each(function(t,e){e.locator.relocate(t,e.figure)})},this.defaultSelectionAdapter=this.selectionAdapter=function(){return i},this.installEditPolicy(new _packages2.default.policy.figure.RectangleSelectionFeedbackPolicy),this.attr(t)},attr:function(t,e){var n=this,i=this.repaintBlocked;try{if($.isPlainObject(t))for(var r in t)if("userData."===r.substring(0,9))null===this.userData&&(this.userData={}),_JSONUtil2.default.set({userData:this.userData},r,t[r]),this.fireEvent("change:"+r,{value:t[r]});else{var a=this.setterWhitelist[r],o=t[r];a&&void 0!==o?a.call(this,o):"funktion"==typeof t[r]&&(this[r]=o.bind(this))}else if("string"==typeof t){if(void 0===e){var s=this.getterWhitelist[t];if("function"==typeof s)return s.call(this);if("userData."===t.substring(0,9)){var c={userData:this.userData};return _JSONUtil2.default.get(c,t)}return}if("function"==typeof e&&(e=e()),"userData."===t.substring(0,9))null===this.userData&&(this.userData={}),_JSONUtil2.default.set({userData:this.userData},t,e),this.fireEvent("change:"+t,{value:e});else{var l=this.setterWhitelist[t];l&&l.call(this,e)}}else{if(Array.isArray(t))return result={},t.forEach(function(t,e){result[e]=n.attr(e)}),console.log(result),console.log(Object.assign.apply(Object,[{}].concat(_toConsumableArray(Object.keys(t).map(function(t){return _defineProperty({},t,n.attr(t))}))))),Object.assign.apply(Object,[{}].concat(_toConsumableArray(Object.keys(t).map(function(t){return _defineProperty({},t,n.attr(t))}))));if(void 0===t){var u={};for(var h in this.getterWhitelist)u[h]=this.getterWhitelist[h].call(this);return u}}}finally{this.repaintBlocked=i}return this},pick:function(t,e){var n="string"!=typeof arguments[1]?arguments[1]:Array.prototype.slice.call(arguments,1),i={},r=void 0;for(r in n)void 0!==t[r]&&(i[r]=t[r]);return i},select:function(t){void 0===t&&(t=!0);var e=this;return this.editPolicy.each(function(n,i){i instanceof _packages2.default.policy.figure.SelectionPolicy&&i.onSelect(e.canvas,e,t)}),null!==this.canvas&&this.canvas.getSelection().add(this),this},unselect:function(){var t=this;return this.editPolicy.each(function(e,n){n instanceof _packages2.default.policy.figure.SelectionPolicy&&n.onUnselect(t.canvas,t)}),null!==this.canvas&&this.canvas.getSelection().remove(this),this},setSelectionAdapter:function(t){return this.selectionAdapter=null==t?this.defaultSelectionAdapter:t,this},getSelectionAdapter:function(){return this.selectionAdapter},isSelected:function(){return null!==this.canvas&&this.canvas.getSelection().contains(this)},setUserData:function(t){return this.userData=t,this.fireEvent("change:userData",{value:t}),this},getUserData:function(){return this.userData},getId:function(){return this.id},setId:function(t){return this.id=t,this},getCssClass:function(){return this.cssClass},setCssClass:function(t){return this.cssClass=null===t?null:t.trim(),null===this.shape?this:(null===this.cssClass?this.shape.node.removeAttribute("class"):this.shape.node.setAttribute("class",this.cssClass),this.fireEvent("change:cssClass",{value:this.cssClass}),this)},hasCssClass:function(t){return null!==this.cssClass&&new RegExp(" "+t.trim()+" ").test(" "+this.cssClass+" ")},addCssClass:function(t){return t=t.trim(),this.hasCssClass(t)||(null===this.cssClass?this.setCssClass(t):this.setCssClass(this.cssClass+" "+t),this.fireEvent("change:cssClass",{value:this.cssClass})),this},removeCssClass:function(t){t=t.trim();var e=" "+this.cssClass.replace(/[\t\r\n]/g," ")+" ";if(this.hasCssClass(t)){for(;e.indexOf(" "+t+" ")>=0;)e=e.replace(" "+t+" "," ");this.setCssClass(e.replace(/^\s+|\s+$/g,"")),this.fireEvent("change:cssClass",{value:this.cssClass})}return this},toggleCssClass:function(t){t=t.trim();var e=" "+this.cssClass.replace(/[\t\r\n]/g," ")+" ";if(this.hasCssClass(t)){for(;e.indexOf(" "+t+" ")>=0;)e=e.replace(" "+t+" "," ");this.setCssClass(e.replace(/^\s+|\s+$/g,""))}else this.setCssClass(this.cssClass+" "+t);return this.fireEvent("change:cssClass",{value:this.cssClass}),this},setCanvas:function(t){return null===t&&null!==this.shape&&(this.isSelected()&&this.unselect(),this.shape.remove(),this.shape=null),this.canvas=t,null!==this.canvas&&this.getShapeElement(),this.lastAppliedAttributes={},null===t?this.stopTimer():this.timerInterval>=this.MIN_TIMER_INTERVAL&&this.startTimer(this.timerInterval),this.children.each(function(e,n){n.figure.setCanvas(t)}),this},getCanvas:function(){return this.canvas},startTimer:function(t){var e=this;return this.stopTimer(),this.timerInterval=Math.max(this.MIN_TIMER_INTERVAL,t),null!==this.canvas&&(this.timerId=window.setInterval(function(){e.onTimer(),e.fireEvent("timer")},this.timerInterval)),this},stopTimer:function(){return this.timerId>=0&&(window.clearInterval(this.timerId),this.timerId=-1),this},onTimer:function(){},toFront:function(t){if(this.composite instanceof _packages2.default.shape.composite.StrongComposite&&void 0!==t){t.getZOrder()<this.composite.getZOrder()&&(t=this.composite)}if(void 0===t){if(this.getShapeElement().toFront(),null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();null!==e.remove(this)?e.add(this):null!==n.remove(this)&&n.add(this)}}else if(this.getShapeElement().insertAfter(t.getTopLevelShapeElement()),null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();if(null!==e.remove(this)){var i=e.indexOf(t);e.insertElementAt(this,i+1)}else null!==n.remove(this)&&n.add(this)}var r=this;return this.children.each(function(t,e){e.figure.toFront(r)}),this.selectionHandles.each(function(t,e){e.toFront()}),this},toBack:function(t){if(this.composite instanceof _packages2.default.shape.composite.StrongComposite)return void this.toFront(this.composite);if(null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();null!==e.remove(this)?e.insertElementAt(this,0):null!==n.remove(this)&&n.insertElementAt(this,0),void 0!==t?this.getShapeElement().insertBefore(t.getShapeElement()):this.getShapeElement().toBack()}var i=this;return this.children.each(function(t,e){e.figure.toFront(i)},!0),this},installEditPolicy:function(t){if(t instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy){var e=this;this.editPolicy.grep(function(t){var n=!(t instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy);return n||t.onUninstall(e),n})}return t.onInstall(this),this.editPolicy.add(t),this},uninstallEditPolicy:function(t){var e=this.editPolicy.remove(t);if(null!==e)return void e.onUninstall(this);var n=this,i="string"==typeof t?t:t.NAME;this.editPolicy.grep(function(t){return t.NAME!==i||(t.onUninstall(n),!1)})},add:function(t,e,n){if(void 0===e||null===e)throw"Second parameter 'locator' is required for method 'Figure#add'";return t.setParent(this),e.bind(this,t),t.on("resize",this.relocateChildrenEventCallback),isNaN(parseInt(n))?this.children.add({figure:t,locator:e}):this.children.insertElementAt({figure:t,locator:e},n),null!==this.canvas&&t.setCanvas(this.canvas),this.repaint(),this},remove:function(t){if(void 0===t||null===t)return debug.warn("The parameter child is required for Figure.remove"),null;var e=null;return this.children.grep(function(n){var i=n.figure!==t;return i||(e=n),i}),null!==e?(t.setParent(null),t.setCanvas(null),e.locator.unbind(this,t),t.off(this.relocateChildrenEventCallback),this.repaint(),e):null},getChildren:function(){return this.children.clone().map(function(t){return t.figure})},resetChildren:function(){return this.children.each(function(t,e){e.figure.setCanvas(null)}),this.children=new _packages2.default.util.ArrayList,this.repaint(),this},getShapeElement:function(){return null!==this.shape?this.shape:(this.shape=this.createShapeElement(),this.isVisible()||this.shape.hide(),null!==this.cssClass&&this.shape.node.setAttribute("class",this.cssClass),this.shape)},getTopLevelShapeElement:function(){return this.getShapeElement()},createShapeElement:function(){throw"Inherited class ["+this.NAME+"] must override the abstract method createShapeElement"},repaint:function(t){if(!0===this.repaintBlocked||null===this.shape)return this;var e=this;return t=t||{},!0!==this.visible?(!0===this.shape.isVisible()&&(isNaN(parseFloat(t.visibleDuration))?this.shape.hide():$(this.shape.node).fadeOut(t.visibleDuration,function(){e.shape.hide()})),this):(!1===this.shape.isVisible()&&(isNaN(parseFloat(t.visibleDuration))?this.shape.show():$(this.shape.node).fadeIn(t.visibleDuration,function(){e.shape.show()})),t.opacity=this.alpha,t=_JSONUtil2.default.flatDiff(t,this.lastAppliedAttributes),this.lastAppliedAttributes=t,Object.getOwnPropertyNames(t).length>0&&this.shape.attr(t),this.applyTransformation(),this.children.each(function(t,e){e.locator.relocate(t,e.figure)}),this)},applyTransformation:function(){return this},setGlow:function(t){return this},getHandleBBox:function(){return null},onDragStart:function(t,e,n,i){this.isInDragDrop=!1;var r=this.getHandleBBox();if(null!==r&&!1===r.translate(this.getAbsolutePosition().scale(-1)).hitTest(t,e))return this.panningDelegate=this.getBestChild(this.getX()+t,this.getY()+e),null!==this.panningDelegate&&this.panningDelegate.onDragStart(t-this.panningDelegate.x,e-this.panningDelegate.y,n,i),!1;if(this.command=this.createCommand(new _packages2.default.command.CommandType(_packages2.default.command.CommandType.MOVE)),null!==this.command){this.ox=this.getX(),this.oy=this.getY(),this.isInDragDrop=!0;var a=this,o=!0;return this.editPolicy.each(function(r,s){s instanceof _packages2.default.policy.figure.DragDropEditPolicy&&(o=o&&s.onDragStart(a.canvas,a,t,e,n,i))}),o&&this.fireEvent("dragstart",{x:t,y:e,shiftKey:n,ctrlKey:i}),o}return!1},onDrag:function(t,e,n,i,r,a){var o=this;this.editPolicy.each(function(n,i){if(i instanceof _packages2.default.policy.figure.DragDropEditPolicy){var r=i.adjustPosition(o,o.ox+t,o.oy+e);r&&(t=r.x-o.ox,e=r.y-o.oy)}});var s=new _packages2.default.geo.Point(this.ox+t,this.oy+e);this.getCanSnapToHelper()&&(s=this.getCanvas().snapToHelper(this,s)),this.setPosition(s),this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.onDrag(o.canvas,o)}),this.fireEvent("drag",{dx:t,dy:e,dx2:n,dy2:i,shiftKey:r,ctrlKey:a})},onPanning:function(t,e,n,i,r,a){},onPanningEnd:function(){},onDragEnd:function(t,e,n,i){var r=this;null!==this.command&&(this.command.setPosition(this.x,this.y),this.canvas.getCommandStack().execute(this.command),this.command=null),this.isInDragDrop=!1,this.panningDelegate=null,this.editPolicy.each(function(a,o){o instanceof _packages2.default.policy.figure.DragDropEditPolicy&&o.onDragEnd(r.canvas,r,t,e,n,i)}),this.fireEvent("move",{figure:this,dx:0,dy:0}),this.fireEvent("change:x",{figure:this,dx:0}),this.fireEvent("change:y",{figure:this,dy:0}),this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i})},delegateTarget:function(t){var e=this,n=t;return this.getCanvas().getDropInterceptorPolicies().each(function(i,r){if(null!==(n=r.delegateTarget(t,e)))return!1}),n},onDragEnter:function(t){},onDragLeave:function(t){},onDrop:function(t,e,n,i,r){},onCatch:function(t,e,n,i,r){},onMouseEnter:function(){},onMouseLeave:function(){},onDoubleClick:function(){},onClick:function(){},onContextMenu:function(t,e){},setAlpha:function(t){if((t=Math.min(1,Math.max(0,parseFloat(t))))!==this.alpha)return this.alpha=t,this.repaint(),this.fireEvent("change:opacity",{value:this.alpha}),this},getAlpha:function(){return this.alpha},setRotationAngle:function(t){var e=this;return this.rotationAngle=t,this.editPolicy.each(function(t,n){n instanceof _packages2.default.policy.figure.DragDropEditPolicy&&n.moved(e.canvas,e)}),this.fireEvent("change:angle",{value:this.rotationAngle}),this.repaint(),this},getRotationAngle:function(){return this.rotationAngle},setVisible:function(t,e){if((t=!!t)!==this.visible)return this.visible=t,this.repaint({visibleDuration:e}),this.visible?this.fireEvent("show"):this.fireEvent("hide"),this.fireEvent("change:visibility",{value:this.visible}),this},isVisible:function(){return this.visible&&null!==this.shape},setKeepAspectRatio:function(t){return this.keepAspectRatio=t,this},getKeepAspectRatio:function(){return this.keepAspectRatio},getZOrder:function(){if(null===this.shape)return-1;for(var t=0,e=this.shape.node;null!==(e=e.previousSibling);)t++;return t},setCanSnapToHelper:function(t){return this.canSnapToHelper=!!t,this},getCanSnapToHelper:function(){return this.canSnapToHelper},getSnapToGridAnchor:function(){return this.snapToGridAnchor},setSnapToGridAnchor:function(t){return this.snapToGridAnchor=t,this},setWidth:function(t){return this.setDimension(parseFloat(t),this.getHeight()),this.fireEvent("change:width",{value:this.width}),this},getWidth:function(){return this.width},setHeight:function(t){return this.setDimension(this.getWidth(),parseFloat(t)),this.fireEvent("change:height",{value:this.height}),this},getHeight:function(){return this.height},getMinWidth:function(){return this.minWidth},setMinWidth:function(t){return this.minWidth=parseFloat(t),this.fireEvent("change:minWidth",{value:this.minWidth}),this.setWidth(this.getWidth()),this},getMinHeight:function(){return this.minHeight},setMinHeight:function(t){return this.minHeight=parseFloat(t),this.fireEvent("change:minHeight",{value:this.minHeight}),this.setHeight(this.getHeight()),this},setX:function(t){return this.setPosition(parseFloat(t),this.y),this.fireEvent("change:x",{value:this.x}),this},getX:function(){return this.x},setY:function(t){return this.setPosition(this.x,parseFloat(t)),this.fireEvent("change:y",{value:this.y}),this},getY:function(){return this.y},getAbsoluteX:function(){return this.parent?this.getX()+this.parent.getAbsoluteX():this.getX()},getAbsoluteY:function(){return this.parent?this.getY()+this.parent.getAbsoluteY():this.getY()},getAbsolutePosition:function(){return new _packages2.default.geo.Point(this.getAbsoluteX(),this.getAbsoluteY())},getAbsoluteBounds:function(){return new _packages2.default.geo.Rectangle(this.getAbsoluteX(),this.getAbsoluteY(),this.getWidth(),this.getHeight())},setPosition:function(t,e){var n={x:this.x,y:this.y};t instanceof _packages2.default.geo.Point?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e);var i=this;this.editPolicy.each(function(t,e){if(e instanceof _packages2.default.policy.figure.DragDropEditPolicy){var n=e.adjustPosition(i,i.x,i.y);i.x=n.x,i.y=n.y}}),this.repaint(),this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(i.canvas,i)});var r=this.x-n.x,a=this.y-n.y;return this.fireEvent("move",{figure:this,dx:r,dy:a}),this.fireEvent("change:x",{figure:this,dx:r}),this.fireEvent("change:y",{figure:this,dy:a}),this},getPosition:function(){return new _packages2.default.geo.Point(this.getX(),this.getY())},translate:function(t,e){return this.setPosition(this.getX()+t,this.getY()+e),this},setDimension:function(t,e){var n={width:this.width,height:this.height},i=this;return t=Math.max(this.getMinWidth(),t),e=Math.max(this.getMinHeight(),e),this.width===t&&this.height===e?(this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(i.canvas,i)}),this):(this.editPolicy.each(function(n,r){if(r instanceof _packages2.default.policy.figure.DragDropEditPolicy){var a=r.adjustDimension(i,t,e);t=a.w,e=a.h}}),!0===this.keepAspectRatio?t>=this.getMinWidth()&&(e=this.getHeight()*(t/this.getWidth()))>=this.getMinHeight()&&(this.width=t,this.height=e):(this.width=Math.max(this.getMinWidth(),t),this.height=Math.max(this.getMinHeight(),e)),this.repaint(),this.fireEvent("resize"),this.fireEvent("change:dimension",{value:{height:this.height,width:this.width,old:n}}),this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(i.canvas,i)}),this)},setBoundingBox:function(t){t=new _packages2.default.geo.Rectangle(t);var e=this.repaintBlocked;return this.repaintBlocked=!0,this.setPosition(t.x,t.y),this.repaintBlocked=e,this.setDimension(t.w,t.h),this},getBoundingBox:function(){return new _packages2.default.geo.Rectangle(this.getAbsoluteX(),this.getAbsoluteY(),this.getWidth(),this.getHeight())},hitTest:function(t,e,n){return"number"==typeof n?this.getBoundingBox().scale(n,n).hitTest(t,e):this.getBoundingBox().hitTest(t,e)},setDraggable:function(t){return this.draggable=!!t,this},isDraggable:function(){return null!==this.composite?this.composite.isMemberDraggable(this,this.draggable):this.draggable},isResizeable:function(){return this.resizeable},setResizeable:function(t){return this.resizeable=!!t,this.fireEvent("change:resizeable",{value:this.resizeable}),this},isSelectable:function(){return null!==this.composite?this.composite.isMemberSelectable(this,this.selectable):this.selectable},setSelectable:function(t){return this.selectable=!!t,this.fireEvent("change:selectable",{value:this.selectable}),this},isStrechable:function(){return!this.getKeepAspectRatio()},isDeleteable:function(){return this.deleteable},setDeleteable:function(t){return this.deleteable=!!t,this.fireEvent("change:deleteable",{value:this.deleteable}),this},setParent:function(t){return this.parent=t,null!==t?this.setSelectionAdapter(t.getSelectionAdapter()):this.setSelectionAdapter(null),this},getParent:function(){return this.parent},contains:function(t){if(t.getParent()===this)return!0;for(var e=0,n=this.children.getSize();e<n;e++){if(this.children.get(e).figure.contains(t))return!0}return!1},getRoot:function(){for(var t=this.parent;null!==t&&null!==t.parent;)t=t.parent;return t},setComposite:function(t){if(null!==t&&!(t instanceof _packages2.default.shape.composite.StrongComposite))throw"'composite must inherit from 'draw2d.shape.composite.StrongComposite'";return this.composite=t,this},getComposite:function(){return this.composite},fireEvent:function(t,e){try{if(void 0===this.eventSubscriptions[t])return;if(!0===this._inEvent)return;this._inEvent=!0;for(var n=this.eventSubscriptions[t],i=0;i<n.length;i++)n[i](this,e)}finally{this._inEvent=!1,"change:"===t.substring(0,7)&&this.fireEvent("change",t.substring(7))}},on:function(t,e,n){var i=t.split(" ");n&&(e=e.bind(n),e.___originalCallback=e);for(var r=0;r<i.length;r++)void 0===this.eventSubscriptions[i[r]]&&(this.eventSubscriptions[i[r]]=[]),-1!==$.inArray(e,this.eventSubscriptions[i[r]])||this.eventSubscriptions[i[r]].push(e);return this},off:function(t){if(void 0===t)this.eventSubscriptions={};else if("string"==typeof t)this.eventSubscriptions[t]=[];else for(var e in this.eventSubscriptions)this.eventSubscriptions[e]=this.eventSubscriptions[e].filter(function(e){return void 0!==e.___originalCallback?e.___originalCallback!==t:e!==t});return this},getBestChild:function(t,e,n){Array.isArray(n)||(n=n instanceof _packages2.default.Figure?[n]:[]);var i=null;return function r(a){a.each(function(a,o){var s=o.figure;return r(s.children),null===i&&!0===s.isVisible()&&!0===s.hitTest(t,e)&&-1===$.inArray(s,n)&&(i=s),null===i})}(this.children),i},createCommand:function(t){return null===t?null:t.getPolicy()===_packages2.default.command.CommandType.MOVE?this.isDraggable()?new _packages2.default.command.CommandMove(this):null:t.getPolicy()===_packages2.default.command.CommandType.DELETE?this.isDeleteable()?new _packages2.default.command.CommandDelete(this):null:t.getPolicy()===_packages2.default.command.CommandType.RESIZE&&this.isResizeable()?new _packages2.default.command.CommandResize(this):null},clone:function clone(cloneMetaData){cloneMetaData=(0,_extend2.default)({exludeChildren:!1},cloneMetaData);var clone=eval("new "+this.NAME+"();"),initialId=clone.id;return clone.setPersistentAttributes(this.getPersistentAttributes()),clone.id=initialId,!1===cloneMetaData.exludeChildren&&(clone.resetChildren(),this.children.each(function(i,entry){var child=entry.figure.clone(),locator=entry.locator.NAME?eval("new "+entry.locator.NAME+"();"):null;clone.add(child,locator)})),clone},getPersistentAttributes:function(){var t={type:this.NAME,id:this.id,x:this.getX(),y:this.getY(),width:this.width,height:this.height,alpha:this.alpha,angle:this.rotationAngle,userData:(0,_extend2.default)(!0,{},this.userData)};return null!==this.cssClass&&(t.cssClass=this.cssClass),null!==this.composite&&(t.composite=this.composite.getId()),t},setPersistentAttributes:function(t){return this.id=t.id,this.setPosition(parseFloat(t.x),parseFloat(t.y)),void 0!==t.width&&(this.width=parseFloat(t.width)),void 0!==t.height&&(this.height=parseFloat(t.height)),void 0!==t.userData&&(this.userData=t.userData),void 0!==t.cssClass&&this.setCssClass(t.cssClass),void 0!==t.alpha&&this.setAlpha(parseFloat(t.alpha)),void 0!==t.angle&&(this.rotationAngle=parseFloat(t.angle)),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.util.UUID=function(){},r.default.util.UUID.create=function(){var t=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},t.exports=r.default.util.UUID},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}var _packages=__webpack_require__(0),_packages2=_interopRequireDefault(_packages),_extend=__webpack_require__(1),_extend2=_interopRequireDefault(_extend);_packages2.default.shape.node.Node=_packages2.default.Figure.extend({NAME:"draw2d.shape.node.Node",init:function(t,e,n){this.inputPorts=new _packages2.default.util.ArrayList,this.outputPorts=new _packages2.default.util.ArrayList,this.hybridPorts=new _packages2.default.util.ArrayList,this.persistPorts=!0,this.portRelayoutRequired=!0,this.cachedPorts=null,this._super((0,_extend2.default)({width:50,height:50},t),(0,_extend2.default)({persistPorts:this.setPersistPorts},e),(0,_extend2.default)({persistPorts:this.getPersistPorts},n))},setPersistPorts:function(t){return this.persistPorts=t,this.fireEvent("change:persistPorts",{value:this.persistPorts}),this},getPersistPorts:function(){return this.persistPorts},toFront:function(t){this._super(t);var e=this;return this.getPorts().each(function(n,i){i.getConnections().each(function(e,n){n.toFront(t)}),i.toFront(e)}),this},toBack:function(t){return this.getPorts().each(function(e,n){n.getConnections().each(function(e,n){n.toBack(t)}),n.toBack(t)}),this._super(t),this},setVisible:function(t,e){t?this.getPorts().each(function(t,n){void 0!==n.__initialVisibilityState?n.setVisible(n.__initialVisibilityState,e):n.setVisible(!0,e),delete n.__initialVisibilityState}):this.getPorts().each(function(t,n){n.__initialVisibilityState=n.isVisible(),n.setVisible(!1,e)}),this._super(t,e)},getPorts:function(t){if("boolean"==typeof t&&!1===t){var e=new _packages2.default.util.ArrayList;return e.addAll(this.inputPorts),e.addAll(this.outputPorts),e.addAll(this.hybridPorts),e}if(null===this.cachedPorts){this.cachedPorts=new _packages2.default.util.ArrayList,this.cachedPorts.addAll(this.inputPorts),this.cachedPorts.addAll(this.outputPorts),this.cachedPorts.addAll(this.hybridPorts);var n=this;this.children.each(function(t,e){n.cachedPorts.addAll(e.figure.getPorts())})}return this.cachedPorts},getInputPorts:function(){return this.inputPorts.clone().addAll(this.hybridPorts)},getOutputPorts:function(){return this.outputPorts.clone().addAll(this.hybridPorts)},clone:function(t){t=(0,_extend2.default)({excludePorts:!1},t);var e=this._super(t);if(!1===t.excludePorts){e.resetPorts();this.getPorts(!1).each(function(t,n){var i=n.clone(),r=n.getLocator().clone();e.addPort(i,r)})}return e},getPort:function(t){var e=null;return this.getPorts().each(function(n,i){if(i.getName()===t)return e=i,!1}),e},getInputPort:function(t){if("number"==typeof t)return this.inputPorts.get(t);for(var e=0;e<this.inputPorts.getSize();e++){var n=this.inputPorts.get(e);if(n.getName()===t)return n}return null},getOutputPort:function(t){if("number"==typeof t)return this.outputPorts.get(t);for(var e=0;e<this.outputPorts.getSize();e++){var n=this.outputPorts.get(e);if(n.getName()===t)return n}return null},getHybridPort:function(t){if("number"==typeof t)return this.hybridPorts.get(t);for(var e=0;e<this.hybridPorts.getSize();e++){var n=this.hybridPorts.get(e);if(n.getName()===t)return n}return null},addPort:function(t,e){if(!(t instanceof _packages2.default.Port))throw"Argument is not typeof 'draw2d.Port'. \nFunction: draw2d.shape.node.Node#addPort";null!==this.cachedPorts&&this.cachedPorts.add(t),this.portRelayoutRequired=!0,t instanceof _packages2.default.InputPort?this.inputPorts.add(t):t instanceof _packages2.default.OutputPort?this.outputPorts.add(t):t instanceof _packages2.default.HybridPort&&this.hybridPorts.add(t),void 0!==e&&e instanceof _packages2.default.layout.locator.Locator&&t.setLocator(e),t.setParent(this),t.setCanvas(this.canvas),t.setDeleteable(!1),null!==this.canvas&&(t.getShapeElement(),this.canvas.registerPort(t))},resetPorts:function(){var t=this;return this.getPorts().each(function(e,n){t.removePort(n)}),this},removePort:function(t){if(this.portRelayoutRequired=!0,this.cachedPorts=null,this.inputPorts.remove(t),this.outputPorts.remove(t),this.hybridPorts.remove(t),null!==t.getCanvas()){t.getCanvas().unregisterPort(t);for(var e=t.getConnections(),n=0;n<e.getSize();++n)t.getCanvas().remove(e.get(n))}t.setCanvas(null)},createPort:function(t,e){var n=null,i=0;switch(t){case"input":n=_packages2.default.Configuration.factory.createInputPort(this),i=this.inputPorts.getSize();break;case"output":n=_packages2.default.Configuration.factory.createOutputPort(this),i=this.outputPorts.getSize();break;case"hybrid":n=_packages2.default.Configuration.factory.createHybridPort(this),i=this.hybridPorts.getSize();break;default:throw"Unknown type ["+t+"] of port requested"}return n.setName(t+i),this.addPort(n,e),this.setDimension(this.width,this.height),n},getConnections:function(){for(var t=new _packages2.default.util.ArrayList,e=this.getPorts(),n=0;n<e.getSize();n++)for(var i=e.get(n),r=0,a=i.getConnections().getSize();r<a;r++)t.contains(i.getConnections().get(r))||t.add(i.getConnections().get(r));return t},setCanvas:function(t){var e=this.canvas;this._super(t);var n=this.getPorts();null!==e&&n.each(function(t,n){e.unregisterPort(n)}),null!==t?(n.each(function(e,n){n.setCanvas(t),t.registerPort(n)}),this.setDimension(this.width,this.height)):n.each(function(t,e){e.setCanvas(null)})},setRotationAngle:function(t){this.portRelayoutRequired=!0,this._super(t),this.layoutPorts()},setDimension:function(t,e){this.portRelayoutRequired=!0,this._super(t,e)},onPortValueChanged:function(t){},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(this._super(t),this.layoutPorts())},layoutPorts:function(){!1!==this.portRelayoutRequired&&(this.portRelayoutRequired=!1,this.outputPorts.each(function(t,e){e.locator.relocate(t,e)}),this.inputPorts.each(function(t,e){e.locator.relocate(t,e)}),this.hybridPorts.each(function(t,e){e.locator.relocate(t,e)}))},createCommand:function(t){return null===t?null:t.getPolicy()===_packages2.default.command.CommandType.ROTATE?new _packages2.default.command.CommandRotate(this,(this.getRotationAngle()+90)%360):this._super(t)},getPersistentAttributes:function(){var t=this._super();return!0===this.persistPorts&&(t.ports=[],this.getPorts().each(function(e,n){t.ports.push((0,_extend2.default)(n.getPersistentAttributes(),{name:n.getName(),port:n.NAME,locator:n.getLocator().NAME}))})),t},setPersistentAttributes:function setPersistentAttributes(memento){var _this2=this;this._super(memento),void 0!==memento.ports&&(this.persistPorts=!0,this.resetPorts(),memento.ports.forEach(function(e){var port=eval("new "+e.port+"()"),locator=eval("new "+e.locator+"()");port.setPersistentAttributes(e),_this2.addPort(port,locator),port.setName(e.name)}))}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.basic.Rectangle=a.default.VectorFigure.extend({NAME:"draw2d.shape.basic.Rectangle",init:function(t,e,n){this.dasharray=null,this._super((0,s.default)({bgColor:"#a0a0a0",color:"#1B1B1B"},t),(0,s.default)({},{dash:this.setDashArray,dasharray:this.setDashArray},e),(0,s.default)({},{dash:this.getDashArray,dasharray:this.getDashArray},n)),this.lastAppliedTransformation=""},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape)return t=(0,s.default)({},{width:this.getWidth(),height:this.getHeight(),r:this.getRadius()},t),null!==this.dasharray&&(t["stroke-dasharray"]=this.dasharray),this._super(t),this},applyTransformation:function(){var t="R"+this.rotationAngle;if(90===this.getRotationAngle()||270===this.getRotationAngle()){var e=this.getHeight()/this.getWidth();t=t+"S"+e+","+1/e+","+(this.getAbsoluteX()+this.getWidth()/2)+","+(this.getAbsoluteY()+this.getHeight()/2)}return this.shape.transform(t),this.lastAppliedTransformation=t,this},createShapeElement:function(){return this.canvas.paper.rect(this.getAbsoluteX(),this.getAbsoluteY(),this.getWidth(),this.getHeight())},setDashArray:function(t){return this.dasharray=t,this.repaint(),this.fireEvent("change:dashArray",{value:this.dasharray}),this},getDashArray:function(t){return this.dasharray},getPersistentAttributes:function(){var t=this._super();return null!==this.dasharray&&(t.dasharray=this.dasharray),t},setPersistentAttributes:function(t){return this._super(t),"string"==typeof t.dasharray&&(this.dasharray=t.dasharray),this}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.SetFigure=a.default.shape.basic.Rectangle.extend({NAME:"draw2d.SetFigure",init:function(t,e,n){this.svgNodes=null,this.originalWidth=null,this.originalHeight=null,this.scaleX=1,this.scaleY=1,this.strokeScale=!0,this._super((0,s.default)({stroke:0,bgColor:null},t),e,n)},setCanvas:function(t){null===t&&null!==this.svgNodes&&(this.svgNodes.remove(),this.svgNodes=null),this._super(t)},setCssClass:function(t){return this._super(t),null===this.svgNodes?this:(null===this.cssClass?this.svgNodes.forEach(function(t){t.node.removeAttribute("class")}):this.svgNodes.forEach(function(e){e.node.setAttribute("class",t)}),this)},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null!==this.originalWidth&&(this.scaleX=this.width/this.originalWidth,this.scaleY=this.height/this.originalHeight),t=t||{},this.applyAlpha(),this._super(t))},setVisible:function(t,e){this._super(t,e),null!==this.svgNodes&&(e?!0===this.visible?this.svgNodes.forEach(function(t){$(t.node).fadeIn(e,function(){t.show()})}):this.svgNodes.forEach(function(t){$(t.node).fadeOut(e,function(){t.hide()})}):!0===this.visible?this.svgNodes.show():this.svgNodes.hide())},applyAlpha:function(){this.svgNodes.attr({opacity:this.alpha})},applyTransformation:function(){var t="S"+this.scaleX+","+this.scaleY+",0,0 R"+this.rotationAngle+","+(this.getWidth()/2|0)+","+(this.getHeight()/2|0)+"T"+this.getAbsoluteX()+","+this.getAbsoluteY();if(this.svgNodes.transform(t),90===this.rotationAngle||270===this.rotationAngle){var e=this.svgNodes.getBBox(!0),n=e.height/e.width,i=e.width/e.height,r="...S"+n+","+i+","+(this.getAbsoluteX()+this.getWidth()/2)+","+(this.getAbsoluteY()+this.getHeight()/2);this.svgNodes.transform(r)}},toFront:function(t){if(this.composite instanceof a.default.shape.composite.StrongComposite&&void 0!==t){t.getZOrder()<this.composite.getZOrder()&&(t=this.composite)}if(void 0===t){if(this.getShapeElement().toFront(),null!==this.svgNodes&&this.svgNodes.toFront(),null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();null!==e.remove(this)?e.add(this):null!==n.remove(this)&&n.add(this)}}else if(null!==this.svgNodes&&this.svgNodes.insertAfter(t.getTopLevelShapeElement()),this.getShapeElement().insertAfter(t.getTopLevelShapeElement()),null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();if(null!==e.remove(this)){var i=e.indexOf(t);e.insertElementAt(this,i+1)}else null!==n.remove(this)&&n.add(this)}this.children.each(function(e,n){n.figure.toFront(t)});var r=this;return this.getPorts().each(function(e,n){n.getConnections().each(function(e,n){n.toFront(t)}),n.toFront(r)}),this.selectionHandles.each(function(t,e){e.toFront()}),this},toBack:function(t){if(this.composite instanceof a.default.shape.composite.StrongComposite)return void this.toFront(this.composite);if(null!==this.canvas){var e=this.canvas.getFigures(),n=this.canvas.getLines();null!==e.remove(this)?e.insertElementAt(this,0):null!==n.remove(this)&&n.insertElementAt(this,0)}this.children.each(function(e,n){n.figure.toBack(t)},!0),null!==this.svgNodes&&(void 0!==t?this.svgNodes.insertBefore(t.getShapeElement()):this.svgNodes.toBack()),null!==this.canvas&&(void 0!==t?this.getShapeElement().insertBefore(t.getShapeElement()):this.getShapeElement().toBack());var i=this;return this.getPorts().each(function(t,e){e.getConnections().each(function(t,e){e.toFront(i)}),e.toFront(i)}),this},getTopLevelShapeElement:function(){return 0===this.svgNodes.length?this.shape:this.svgNodes},createShapeElement:function(){var t=this.canvas.paper.rect(this.getX(),this.getY(),this.getWidth(),this.getHeight());if(this.svgNodes=this.createSet(),void 0===this.svgNodes.forEach){var e=this.canvas.paper.set();e.push(this.svgNodes),this.svgNodes=e}this.svgNodes.attr({"stroke-scale":this.strokeScale}),this.setVisible(this.visible),this.setCssClass(this.cssClass);var n=this.svgNodes.getBBox();return this.originalWidth=n.width,this.originalHeight=n.height,t},createSet:function(){return this.canvas.paper.set()}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.SVGFigure=a.default.SetFigure.extend({NAME:"draw2d.SVGFigure",init:function(t,e,n){this.svg=null,this._super((0,s.default)({},t),(0,s.default)({svg:this.setSVG},e),(0,s.default)({svg:this.getSVG},n))},createSet:function(){return null===this.svg&&(this.svg=this.getSVG()),this.importSVG(this.canvas,this.svg)},getSVG:function(){return this.svg},setSVG:function(t,e){if(this.svg=t,null!==this.canvas&&null!==this.svgNodes){var n=this.createSet();if(isNaN(parseFloat(e)))n.insertAfter(this.svgNodes),this.svgNodes.remove(),this.svgNodes=n,this.applyTransformation();else{n.hide(),n.insertAfter(this.svgNodes);var i=this.svgNodes;this.svgNodes=n,this.applyTransformation(),i.forEach(function(t){$(t.node).fadeOut(e,function(){t.remove()})}),n.forEach(function(t){$(t.node).fadeIn(e)})}}return this},importSVG:function(t,e){var n=t.paper.set();try{if(void 0===e)throw"No data was provided.";var i=$(e);void 0===this._dimensionReadFromJSON&&(i.attr("width")&&i.attr("height")&&this.setDimension(parseFloat(i.attr("width")),parseFloat(i.attr("height"))),delete this._dimensionReadFromJSON);var r=new RegExp("([a-z0-9-]+) ?: ?([^ ;]+)[ ;]?","gi");i.children().each(function(e,i){var a=null,o=null,s={},c=i.tagName,l=c.indexOf(":");if(-1!=l&&(c=c.substr(l+1)),$(i.attributes).each(function(){switch(this.nodeName){case"stroke-dasharray":s[this.nodeName]="- ";break;case"style":o=this.nodeValue;break;case"id":case"xml:space":break;default:this.value?s[this.nodeName]=this.value:s[this.nodeName]=this.nodeValue}}),null!==o)for(;r.exec(o);)s[RegExp.$1]=RegExp.$2;switch(void 0===s["stroke-width"]&&(s["stroke-width"]=void 0===s.stroke?0:1.2),c){case"rect":a=t.paper.rect(),void 0!==s.rx&&(s.r=parseInt(s.rx),delete s.rx);break;case"circle":a=t.paper.circle();break;case"ellipse":a=t.paper.ellipse();break;case"path":s.fill="none",a=t.paper.path(s.d);break;case"line":s.d="M "+s.x1+" "+s.y1+"L"+s.x2+" "+s.y2,s.fill="none",a=t.paper.path(s.d);break;case"polyline":var u=s.points;s.d="M "+u.replace(" "," L"),a=t.paper.path(s.d);break;case"polygon":a=t.paper.polygon(s.points);break;case"image":a=t.paper.image();break;case"tspan":case"text":if(i.childNodes.length>0){var h=i.firstChild;do{switch(h.nodeType){case 2:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:return;case 3:h=i}var d=t.paper.text(0,0,$(h).text()),f={x:parseFloat(h.attributes.x.value),y:parseFloat(h.attributes.y.value)};f["text-anchor"]="start",void 0!==h.attributes["text-anchor"]?f["text-anchor"]=h.attributes["text-anchor"].value:void 0!==s["text-anchor"]&&(f["text-anchor"]=s["text-anchor"]),void 0!==h.attributes["font-size"]?f["font-size"]=parseInt(h.attributes["font-size"].value):void 0!==s["font-size"]&&(f["font-size"]=parseInt(s["font-size"])),void 0!==h.attributes["font-family"]?f["font-family"]=h.attributes["font-family"].value:void 0!==s["font-family"]&&(f["font-family"]=s["font-family"]),f.fill="#000000",void 0!==h.attributes.fill?f.fill=h.attributes.fill.value:void 0!==s.fill&&(f.fill=s.fill),f.y=f.y+d.getBBox().height/2,d.attr(f),n.push(d),h=h.nextSibling}while(h&&3===h.nodeType)}else a=t.paper.text(0,0,$(i).html()),void 0===s.fill&&(s.fill="#000000"),void 0===s["text-anchor"]&&(s["text-anchor"]="start"),void 0!==s["font-size"]&&(s["font-size"]=parseInt(s["font-size"])),void 0!==s["font-family"]&&(s["font-family"]=parseInt(s["font-family"])),s.y=parseFloat(s.y)+a.getBBox().height/2}null!==a&&(a.attr(s),n.push(a))})}catch(t){alert("The SVG data you entered was invalid! ("+t+")")}return n},setPersistentAttributes:function(t){return this._super(t),void 0!==t.width?this._dimensionReadFromJSON=!0:void 0!==t.height&&(this._dimensionReadFromJSON=!0),this}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(5),s=i(o);a.default.shape.node.Hub=a.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.node.Hub",DEFAULT_COLOR:new s.default("#4DF0FE"),BACKGROUND_COLOR:new s.default("#29AA77"),init:function(t,e,n){this.label=null,this._super(extend({color:this.DEFAULT_COLOR.darker(),bgColor:this.BACKGROUND_COLOR},t),extend({label:this.setLabel,text:this.setLabel},e),extend({label:this.getLabel,text:this.getLabel},n));var i=this.port=this.createPort("hybrid",new a.default.layout.locator.CenterLocator),r=a.default.geo.Rectangle;this.CONNECTION_DIR_STRATEGY=[function(t){return i.getParent().getBoundingBox().getDirection(t.getAbsolutePosition())},function(t){return i.getAbsoluteY()>t.getAbsoluteY()?r.DIRECTION_UP:r.DIRECTION_DOWN},function(t){return i.getAbsoluteX()>t.getAbsoluteX()?r.DIRECTION_LEFT:r.DIRECTION_RIGHT}],this.port.setGlow=this.setGlow.bind(this),this.port._orig_hitTest=this.port.hitTest,this.port.hitTest=this.hitTest.bind(this),this.port.setConnectionAnchor(new a.default.layout.anchor.ShortesPathConnectionAnchor(this.port)),this.port.setVisible(!1),this.port.setVisible=function(){},this.setConnectionDirStrategy(0)},delegateTarget:function(t){return this.getHybridPort(0).delegateTarget(t)},getMinWidth:function(){return null!==this.label?Math.max(this.label.getMinWidth(),this._super()):this._super()},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},void 0===t.fill&&(null!==this.bgColor?t.fill="90-"+this.bgColor.hash()+":5-"+this.bgColor.lighter(.3).hash()+":95":t.fill="none"),this._super(t))},setLabel:function(t){if(null===this.label){var e=this;this.label=new a.default.shape.basic.Label({text:t,color:"#0d0d0d",fontColor:"#0d0d0d",stroke:0}),this.add(this.label,new a.default.layout.locator.CenterLocator),this.label.setSelectionAdapter(function(){return e}),this.label.delegateTarget=function(){return e.port}}else this.label.setText(t)},setConnectionDirStrategy:function(t){switch(t){case 0:case 1:case 2:this.port.getConnectionDirection=this.CONNECTION_DIR_STRATEGY[t]}},getPersistentAttributes:function(){var t=this._super();return t.dirStrategy=this.CONNECTION_DIR_STRATEGY.indexOf(this.port.getConnectionDirection),null!==this.label&&(t.label=this.label.getText()),t},setPersistentAttributes:function(t){this._super(t),"number"==typeof t.dirStrategy&&this.setConnectionDirStrategy(t.dirStrategy),void 0!==t.label&&this.setLabel(t.label)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.node.HorizontalBus=r.default.shape.node.Hub.extend({NAME:"draw2d.shape.node.HorizontalBus",init:function(t,e,n){this._super(t,e,n),this.setConnectionDirStrategy(1),this.installEditPolicy(new r.default.policy.figure.HBusSelectionFeedbackPolicy)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.node.VerticalBus=r.default.shape.node.Hub.extend({NAME:"draw2d.shape.node.VerticalBus",init:function(t,e,n){this._super(t,e,n),this.setConnectionDirStrategy(2),this.installEditPolicy(new r.default.policy.figure.VBusSelectionFeedbackPolicy)},setLabel:function(t){var e=null===this.label;this._super(t),!0===e&&null!==this.label&&this.label.setRotationAngle(90)},getMinHeight:function(){return null===this.shape&&null===this.label?0:null!==this.label?this.label.getMinWidth():this._super()},getMinWidth:function(){return null===this.shape&&null===this.label?0:null!==this.label?this.label.getMinHeight():this._super()}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(2),s=i(o);a.default.shape.node.Fulcrum=a.default.shape.node.Hub.extend({NAME:"draw2d.shape.node.Fulcrum",init:function(t,e,n){this._super(extend({width:40,height:40},t),e,n),this.port.setConnectionAnchor(new a.default.layout.anchor.ConnectionAnchor(this.port)),this.port.setVisible(!0),this.port.hitTest=this.port._orig_hitTest,this.setConnectionDirStrategy(0),this.setColor(null),this.setRadius(10),this.setBackgroundColor(null),this.setStroke(0),this.installEditPolicy(new a.default.policy.figure.AntSelectionFeedbackPolicy)},repaint:function(t){return!0===this.repaintBlocked||null===this.shape?this:(t=t||{},s.default.ensureDefault(t,"fill",this.bgColor.hash()),this._super(t))}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.basic.Arc=a.default.SetFigure.extend({NAME:"draw2d.shape.basic.Arc",init:function(t,e,n){this.startAngle=180,this.endAngle=360,this._super((0,s.default)({width:80,height:50,bgColor:null,color:"#1B1B1B"},t),e,n),this.strokeScale=!1},createSet:function(){this.canvas.paper.setStart();var t=this.endAngle-this.startAngle>180,e=this.startAngle%360*Math.PI/180,n=this.endAngle%360*Math.PI/180,i=this.getWidth()/2,r=this.getHeight()/2;return this.canvas.paper.path([["M",i,r,"l",i*Math.cos(e),r*Math.sin(e),"A",i,r,0,+t,1,i+i*Math.cos(n),r+r*Math.sin(n),"z"]].join("")).attr({fill:"#fff0f0"}),this.canvas.paper.setFinish()}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.basic.Oval=a.default.VectorFigure.extend({NAME:"draw2d.shape.basic.Oval",init:function(t,e,n){this._super((0,s.default)({bgColor:"#C02B1D",color:"#1B1B1B"},t),(0,s.default)({center:this.setCenter},e),n)},createShapeElement:function(){var t=this.getWidth()/2,e=this.getHeight()/2;return this.canvas.paper.ellipse(this.getAbsoluteX()+t,this.getAbsoluteY()+e,t,e)},getCenter:function(){var t=this.getWidth()/2,e=this.getHeight()/2;return this.getPosition().translate(t,e)},setCenter:function(t,e){var n=new a.default.geo.Point(t,e),i=this.getWidth()/2,r=this.getHeight()/2;return n.translate(-i,-r),this.setPosition(n),this.fireEvent("change:center",{value:{x:t,y:e}}),this},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},void 0===t.rx&&(t.rx=this.width/2,t.ry=this.height/2),void 0===t.cx&&(t.cx=this.getAbsoluteX()+t.rx,t.cy=this.getAbsoluteY()+t.ry),this._super(t))},intersectionWithLine:function(t,e){var n=this.getWidth()/2,i=this.getHeight()/2,r=new a.default.util.ArrayList,o=new a.default.geo.Point(t.x,t.y),s=e.subtract(t),c=new a.default.geo.Point(this.getAbsoluteX()+n,this.getAbsoluteY()+i),l=o.subtract(c),u=new a.default.geo.Point(s.x/(n*n),s.y/(i*i)),h=new a.default.geo.Point(l.x/(n*n),l.y/(i*i)),d=s.dot(u),f=s.dot(h),p=l.dot(h)-1,g=f*f-d*p;if(g<0);else if(g>0){var m=Math.sqrt(g),v=(-f-m)/d,y=(-f+m)/d;(v<0||1<v)&&(y<0||1<y)||(0<=v&&v<=1&&r.add(t.lerp(e,v)),0<=y&&y<=1&&r.add(t.lerp(e,y)))}else{var x=-f/d;0<=x&&x<=1&&r.add(t.lerp(e,x))}return r}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.basic.Circle=a.default.shape.basic.Oval.extend({NAME:"draw2d.shape.basic.Circle",init:function(t,e,n){this._super(t,(0,s.default)({diameter:this.setDiameter,radius:this.setRadius},e),(0,s.default)({diameter:this.getDiameter,radius:this.getRadius},n)),this.setKeepAspectRatio(!0)},setDiameter:function(t){var e=this.getCenter();return this.setDimension(t,t),this.setCenter(e),this.fireEvent("change:diameter",{value:t}),this},getDiameter:function(){return this.getWidth()},setRadius:function(t){return this.setDiameter(2*t),this.fireEvent("change:radius",{value:t}),this},getPersistentAttributes:function(){var t=this._super();return delete t.radius,t}})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}var _packages=__webpack_require__(0),_packages2=_interopRequireDefault(_packages),_JSONUtil=__webpack_require__(2),_JSONUtil2=_interopRequireDefault(_JSONUtil),_extend=__webpack_require__(1),_extend2=_interopRequireDefault(_extend);_packages2.default.shape.basic.Label=_packages2.default.SetFigure.extend({NAME:"draw2d.shape.basic.Label",FONT_FALLBACK:{Georgia:"Georgia, serif","Palatino Linotype":'"Palatino Linotype", "Book Antiqua", Palatino, serif',"Times New Roman":'"Times New Roman", Times, serif',Arial:"Arial, Helvetica, sans-serif","Arial Black":'"Arial Black", Gadget, sans-serif',"Comic Sans MS":'"Comic Sans MS", cursive, sans-serif',Impact:"Impact, Charcoal, sans-serif","Lucida Sans Unicode":'"Lucida Sans Unicode", "Lucida Grande", sans-serif',"Tahoma, Geneva":"Tahoma, Geneva, sans-seri","Trebuchet MS":'"Trebuchet MS", Helvetica, sans-serif',Verdana:"Verdana, Geneva, sans-serif","Courier New":'"Courier New", Courier, monospace',"Lucida Console":'"Lucida Console", Monaco, monospace'},init:function(t,e,n){this.text="",this.cachedWidth=null,this.cachedHeight=null,this.cachedMinWidth=null,this.cachedMinHeight=null,this.fontSize=12,this.fontColor=new _packages2.default.util.Color("#080808"),this.fontFamily=null,this.padding={top:4,right:4,bottom:4,left:4},this.outlineStroke=0,this.outlineColor=new _packages2.default.util.Color(null),this.bold=!1,this.editor=null,this._super((0,_extend2.default)({stroke:1,width:1,height:1,resizeable:!1},t),(0,_extend2.default)({text:this.setText,editor:this.installEditor,outlineStroke:this.setOutlineStroke,outlineColor:this.setOutlineColor,fontFamily:this.setFontFamily,fontSize:this.setFontSize,fontColor:this.setFontColor,padding:this.setPadding,bold:this.setBold},e),(0,_extend2.default)({text:this.getText,outlineStroke:this.getOutlineStroke,outlineColor:this.getOutlineColor,fontFamily:this.getFontFamily,fontSize:this.getFontSize,fontColor:this.getFontColor,padding:this.getPadding,bold:this.isBold},n)),this.installEditPolicy(new _packages2.default.policy.figure.AntSelectionFeedbackPolicy),this.lastAppliedLabelRotation="",this.lastAppliedTextAttributes={}},createSet:function(){return this.canvas.paper.text(0,0,this.text)},setCanvas:function(t){this.clearCache(),this._super(t),this.clearCache()},repaint:function(t){if(!(!0===this.repaintBlocked||null===this.shape||this.parent&&!0===this.parent.repaintBlocked)){var e=this.calculateTextAttr();e.text=this.text;var n=_JSONUtil2.default.flatDiff(e,this.lastAppliedTextAttributes);this.lastAppliedTextAttributes=e,Object.getOwnPropertyNames(n).length>0&&(this.svgNodes.attr(e),this.svgNodes.attr({x:this.padding.left+this.stroke,y:this.svgNodes.getBBox(!0).height/2+this.padding.top+this.getStroke()})),this._super(t)}},calculateTextAttr:function(){var t={"text-anchor":"start","font-size":this.fontSize,"font-weight":!0===this.bold?"bold":"normal",fill:this.fontColor.hash(),stroke:this.outlineColor.hash(),"stroke-width":this.outlineStroke};return null!==this.fontFamily&&(t["font-family"]=this.fontFamily),t},applyTransformation:function(){var t="R"+this.rotationAngle;return this.shape.transform(t),this.lastAppliedLabelRotation=t,this.svgNodes.transform("R"+this.rotationAngle+"T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this},setFontSize:function(t){this.clearCache(),this.fontSize=t,this.repaint(),this.fireEvent("change:fontSize",{value:this.fontSize}),this.fireEvent("resize");var e=this;return this.editPolicy.each(function(t,n){n instanceof _packages2.default.policy.figure.DragDropEditPolicy&&n.moved(e.canvas,e)}),this},getFontSize:function(){return this.fontSize},setBold:function(t){this.clearCache(),this.bold=t,this.repaint(),this.fireEvent("change:bold",{value:this.bold}),this.fireEvent("resize");var e=this;return this.editPolicy.each(function(t,n){n instanceof _packages2.default.policy.figure.DragDropEditPolicy&&n.moved(e.canvas,e)}),this},isBold:function(){return this.bold},setOutlineColor:function(t){return this.outlineColor=new _packages2.default.util.Color(t),this.repaint(),this.fireEvent("change:outlineColor",{value:this.outlineColor}),this},getOutlineColor:function(){return this.outlineColor},setOutlineStroke:function(t){return this.outlineStroke=t,this.repaint(),this.fireEvent("change:outlineStroke",{value:this.outlineStroke}),this},getOutlineStroke:function(){return this.outlineStroke},setFontColor:function(t){return this.fontColor=new _packages2.default.util.Color(t),this.repaint(),this.fireEvent("change:fontColor",{value:this.fontColor}),this},getFontColor:function(){return this.fontColor},setPadding:function(t){return this.clearCache(),"number"==typeof t?this.padding={top:t,right:t,bottom:t,left:t}:(0,_extend2.default)(this.padding,t),this.repaint(),this.fireEvent("change:padding",{value:this.padding}),this},getPadding:function(){return this.padding},setFontFamily:function(t){return this.clearCache(),void 0!==t&&null!==t&&void 0!==this.FONT_FALLBACK[t]&&(t=this.FONT_FALLBACK[t]),this.fontFamily=t,this.repaint(),this.fireEvent("change:fontFamily",{value:this.fontFamily}),this},getFontFamily:function(){return this.fontFamily},setDimension:function(t,e){return this.clearCache(),this._super(t,e),this},clearCache:function(){return this.portRelayoutRequired=!0,this.cachedMinWidth=null,this.cachedMinHeight=null,this.cachedWidth=null,this.cachedHeight=null,this.lastAppliedTextAttributes={},this},getMinWidth:function(){return null===this.shape?0:(null===this.cachedMinWidth&&(this.cachedMinWidth=this.svgNodes.getBBox(!0).width+this.padding.left+this.padding.right+2*this.getStroke()),this.cachedMinWidth)},getMinHeight:function(){return null===this.shape?0:(null===this.cachedMinHeight&&(this.cachedMinHeight=this.svgNodes.getBBox(!0).height+this.padding.top+this.padding.bottom+2*this.getStroke()),this.cachedMinHeight)},getWidth:function(){return null===this.shape?0:(null===this.cachedWidth&&(!0===this.resizeable?this.cachedWidth=Math.max(this.width,this.getMinWidth()):this.cachedWidth=this.getMinWidth()),this.cachedWidth)},getHeight:function(){return null===this.shape?0:(null===this.cachedHeight&&(this.cachedHeight=Math.max(this.height,this.getMinHeight())),this.cachedHeight)},installEditor:function installEditor(editor){return"string"==typeof editor&&(editor=eval("new "+editor+"()")),this.editor=editor,this},onDoubleClick:function(){null!==this.editor&&this.editor.start(this)},getText:function(){return this.text},setText:function(t){this.clearCache(),this.text=t,this.repaint();var e=this;return this.editPolicy.each(function(t,n){n instanceof _packages2.default.policy.figure.DragDropEditPolicy&&n.moved(e.canvas,e)}),this.fireEvent("resize"),this.fireEvent("change:text",{value:this.text}),null!==this.parent&&this.parent.repaint(),this},hitTest:function(t,e){if(0===this.rotationAngle)return this._super(t,e);var n=this.shape.matrix,i=this.getBoundingBox().getVertices();i.each(function(t,e){var i=n.x(e.x,e.y),r=n.y(e.x,e.y);e.x=i,e.y=r});for(var r=3,a=!1,o=0;o<4;o++){var s=i.get(o),c=i.get(r);(s.y<e&&c.y>=e||c.y<e&&s.y>=e)&&(s.x<=t||c.x<=t)&&s.x+(e-s.y)/(c.y-s.y)*(c.x-s.x)<t&&(a=!a),r=o}return a},getPersistentAttributes:function(){var t=this._super();return t.text=this.text,t.outlineStroke=this.outlineStroke,t.outlineColor=this.outlineColor.hash(),t.fontSize=this.fontSize,t.fontColor=this.fontColor.hash(),t.fontFamily=this.fontFamily,null!==this.editor&&(t.editor=this.editor.NAME),t},setPersistentAttributes:function setPersistentAttributes(memento){this._super(memento),void 0!==memento.text&&this.setText(memento.text),void 0!==memento.outlineStroke&&this.setOutlineStroke(memento.outlineStroke),void 0!==memento.outlineColor&&this.setOutlineColor(memento.outlineColor),void 0!==memento.fontFamily&&this.setFontFamily(memento.fontFamily),void 0!==memento.fontSize&&this.setFontSize(memento.fontSize),void 0!==memento.fontColor&&this.setFontColor(memento.fontColor),"string"==typeof memento.editor&&this.installEditor(eval("new "+memento.editor+"()"))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.basic.Text=r.default.shape.basic.Label.extend({NAME:"draw2d.shape.basic.Text",init:function(t,e,n){this.cachedWrappedAttr=null,this._super(extend({width:100,height:50,resizeable:!0},t),e,n),this.installEditPolicy(new r.default.policy.figure.WidthSelectionFeedbackPolicy)},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(this.svgNodes.attr(extend({},this.calculateTextAttr(),this.wrappedTextAttr(this.text,this.getWidth()-this.padding.left-this.padding.right))),this.svgNodes.attr({x:this.padding.left,y:this.getHeight()/2}),r.default.SetFigure.prototype.repaint.call(this,t))},setDimension:function(t,e){this.clearCache();var n=this.wrappedTextAttr(this.text,t);return this.cachedMinWidth=Math.max(t,n.width),this.cachedMinHeight=n.height,r.default.shape.node.Node.prototype.setDimension.call(this,this.cachedMinWidth,this.cachedMinHeight),this.fireEvent("change:dimension",{value:{width:this.cachedMinWidth,height:this.cachedMinHeight}}),this},clearCache:function(){return this._super(),this.cachedWrappedAttr=null,this},getMinWidth:function(){if(null===this.shape)return 0;if(null===this.cachedMinWidth){var t=this.text.split(" ").reduce(function(t,e){return t.length>e.length?t:e}),e=this.canvas.paper.text(0,0,t).attr(extend({},this.calculateTextAttr(),{text:t}));this.cachedMinWidth=e.getBBox(!0).width+this.padding.left+this.padding.right+2*this.getStroke(),e.remove()}return this.cachedMinWidth},wrappedTextAttr:function(t,e){var n=t.split(" ");if(null===this.canvas||0===n.length)return{text:t,width:e,height:20};if(null===this.cachedWrappedAttr){for(var i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r=this.canvas.paper.text(0,0,"").attr(extend({},this.calculateTextAttr(),{text:i})),a=r.getBBox(!0).width/i.length,o=[n[0]],s=o[0].length*a,c=null,l=1;l<n.length;l++){c=n[l];var u=c.length*a;s+u>e?(o.push("\n"),s=u):(o.push(" "),s+=u),o.push(c)}r.attr({text:o.join("")});var h=r.getBBox(!0);r.remove(),this.cachedWrappedAttr={text:o.join(""),width:Math.max(e,h.width)+this.padding.left+this.padding.right,height:h.height+this.padding.top+this.padding.bottom}}return this.cachedWrappedAttr},getPersistentAttributes:function(){return this._super()},setPersistentAttributes:function(t){return this._super(t),this}})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var _packages=__webpack_require__(0),_packages2=_interopRequireDefault(_packages),_JSONUtil=__webpack_require__(2),_JSONUtil2=_interopRequireDefault(_JSONUtil),_extend=__webpack_require__(1),_extend2=_interopRequireDefault(_extend);_packages2.default.shape.basic.Line=_packages2.default.Figure.extend({NAME:"draw2d.shape.basic.Line",DEFAULT_COLOR:new _packages2.default.util.Color(0,0,0),init:function(t,e,n){this.corona=10,this.isGlowing=!1,this.lineColor=this.DEFAULT_COLOR,this.stroke=1,this.outlineStroke=0,this.outlineColor=new _packages2.default.util.Color(null),this.outlineVisible=!1,this.draggedSegment=null,this.dasharray=null,this.start=new _packages2.default.geo.Point(30,30),this.end=new _packages2.default.geo.Point(100,100),this.vertices=new _packages2.default.util.ArrayList,this.vertices.add(this.start.clone()),this.vertices.add(this.end.clone()),this._super((0,_extend2.default)({deleteable:!1,selectable:!0},t),(0,_extend2.default)({},{start:this.setStartPosition,startX:this.setStartX,startY:this.setStartY,end:this.setEndPosition,endX:this.setEndX,endY:this.setEndY,vertices:this.setVertices,outlineColor:this.setOutlineColor,outlineStroke:this.setOutlineStroke,color:this.setColor,stroke:this.setStroke,dasharray:this.setDashArray,glow:this.setGlow},e),(0,_extend2.default)({},{start:this.getStartPosition,end:this.getEndPosition,outlineColor:this.getOutlineColor,outlineStroke:this.getOutlineStroke,stroke:this.getStroke,color:this.getColor,dasharray:this.getDashArray,vertices:this.getVertices},n)),0===this.editPolicy.getSize()&&this.installEditPolicy(new _packages2.default.policy.line.LineSelectionFeedbackPolicy)},setOutlineColor:function(t){return this.outlineColor=new _packages2.default.util.Color(t),this.repaint(),this.fireEvent("change:outlineColor",{value:this.outlineColor}),this},getOutlineColor:function(){return this.outlineColor},setOutlineStroke:function(t){return this.outlineStroke=t,this.repaint(),this.fireEvent("change:outlineStroke",{value:this.outlineStroke}),this},getOutlineStroke:function(){return this.outlineStroke},onDragStart:function(t,e,n,i,r){var a=this._super(t,e,n,i);return!0===a&&!0!==r&&(this.draggedSegment={index:0,start:this.start,end:this.end}),a},onDrag:function(t,e,n,i){null!==this.command&&(this.vertices.each(function(t,e){e.translate(n,i)}),this.command.updateVertices(this.vertices.clone()),this.start.translate(n,i),this.end.translate(n,i),this.svgPathString=null,this._super(t,e,n,i))},onDragEnd:function(t,e,n,i){if(this.isInDragDrop=!1,this.draggedSegment=null,null!==this.command){var r=this;this.canvas.getCommandStack().execute(this.command),this.command=null,this.isMoving=!1,this.editPolicy.each(function(a,o){o instanceof _packages2.default.policy.figure.DragDropEditPolicy&&o.onDragEnd(r.canvas,r,t,e,n,i)}),this.fireEvent("move",{figure:this,dx:0,dy:0}),this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i})}},onClick:function(){},setDashArray:function(t){return this.dasharray=t,this.repaint(),this.fireEvent("change:dashArray",{value:this.dasharray}),this},getDashArray:function(){return this.dasharray},setCoronaWidth:function(t){return this.corona=t,this},createShapeElement:function(){var t=this.canvas.paper.set();return t.push(this.canvas.paper.path("M"+this.start.x+" "+this.start.y+"L"+this.end.x+" "+this.end.y)),t.push(this.canvas.paper.path("M"+this.start.x+" "+this.start.y+"L"+this.end.x+" "+this.end.y)),t.node=t.items[1].node,this.outlineVisible=!0,t},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(void 0===t?t={stroke:this.lineColor.hash(),"stroke-width":this.stroke,path:["M",this.start.x,this.start.y,"L",this.end.x,this.end.y].join(" ")}:(void 0===t.path&&(t.path=["M",this.start.x,this.start.y,"L",this.end.x,this.end.y].join(" ")),_JSONUtil2.default.ensureDefault(t,"stroke",this.lineColor.hash()),_JSONUtil2.default.ensureDefault(t,"stroke-width",this.stroke)),_JSONUtil2.default.ensureDefault(t,"stroke-dasharray",this.dasharray),this._super(t),this.outlineStroke>0?(this.shape.items[0].attr({"stroke-width":this.outlineStroke+this.stroke,stroke:this.outlineColor.hash()}),!1===this.outlineVisible&&this.shape.items[0].show(),this.outlineVisible=!0):!0===this.outlineVisible&&(this.shape.items[0].attr({"stroke-width":0,stroke:"none"}),this.shape.items[0].hide()))},toBack:function(t){return this._super(t),!0===this.outlineVisible&&this.shape.items[0].insertBefore(this.shape.items[1]),this},setGlow:function(t){if(this.isGlowing!==t)return!0===t?(this._lineColor=this.lineColor,this._stroke=this.stroke,this.setColor(new _packages2.default.util.Color("#3f72bf")),this.setStroke(4*this.stroke|0)):(this.setColor(this._lineColor),this.setStroke(this._stroke)),this.isGlowing=t,this},isResizeable:function(){return!0},setStroke:function(t){return this.stroke=parseFloat(t),this.repaint(),this.fireEvent("change:stroke",{value:this.stroke}),this},getStroke:function(){return this.stroke},setColor:function(t){return this.lineColor=new _packages2.default.util.Color(t),this.repaint(),this.fireEvent("change:color",{value:this.lineColor}),this},getColor:function(){return this.lineColor},translate:function(t,e){this.vertices.each(function(n,i){i.translate(t,e)}),this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone();var n=this;return this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)}),this.svgPathString=null,this.repaint(),this},getBoundingBox:function(){var t=Math.min.apply(Math,_toConsumableArray(this.vertices.asArray().map(function(t){return t.x}))),e=Math.min.apply(Math,_toConsumableArray(this.vertices.asArray().map(function(t){return t.y}))),n=Math.max.apply(Math,_toConsumableArray(this.vertices.asArray().map(function(t){return t.x}))),i=Math.max.apply(Math,_toConsumableArray(this.vertices.asArray().map(function(t){return t.y}))),r=n-t,a=i-e;return new _packages2.default.geo.Rectangle(t,e,r,a)},setStartPosition:function(t,e){var n=new _packages2.default.geo.Point(t,e);if(this.start.equals(n))return this;this.start.setPosition(n),this.vertices.first().setPosition(n),this.repaint();var i=this;return this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(i.canvas,i)}),this.fireEvent("change:start",{value:this.start}),this},setStartPoint:function(t,e){return this.setStartPosition(t,e)},setStartX:function(t){this.setStartPoint(t,this.start.y)},setStartY:function(t){this.setStartPoint(this.start.x,t)},setEndX:function(t){this.setEndPoint(t,this.end.y)},setEndY:function(t){this.setEndPoint(this.end.x,t)},setEndPosition:function(t,e){var n=new _packages2.default.geo.Point(t,e);if(this.end.equals(n))return this;this.end.setPosition(n),this.vertices.last().setPosition(n),this.repaint();var i=this;return this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(i.canvas,i)}),this.fireEvent("change:end",{value:this.end}),this},setEndPoint:function(t,e){return this.setEndPosition(t,e)},getStartX:function(){return this.start.x},getStartY:function(){return this.start.y},getStartPosition:function(){return this.start.clone()},getStartPoint:function(){return this.getStartPosition()},getEndX:function(){return this.end.x},getEndY:function(){return this.end.y},getEndPosition:function(){return this.end.clone()},getEndPoint:function(){return this.getEndPosition()},getX:function(){return this.getBoundingBox().x},getY:function(){return this.getBoundingBox().y},getVertex:function(t){return this.vertices.get(t)},setVertex:function(t,e,n){e instanceof _packages2.default.geo.Point&&(n=e.y,e=e.x);var i=this.vertices.get(t);if(null!==i&&(i.x!==e||i.y!==n)){i.x=parseFloat(e),i.y=parseFloat(n),this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone(),this.svgPathString=null,this.routingRequired=!0,this.repaint();var r=this;return this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(r.canvas,r)}),this.fireEvent("change:vertices",{value:this.vertices}),this}},getVertices:function(){return this.vertices},setVertices:function(t){var e=this,n=this;if(Array.isArray(t))this.vertices=new _packages2.default.util.ArrayList,t.forEach(function(t){e.vertices.add(new _packages2.default.geo.Point(t))});else{if(!(t instanceof _packages2.default.util.ArrayList))throw"invalid argument for Line.setVertices";this.vertices=t.clone(!0)}return this.vertices.getSize()>1&&(this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone()),this.svgPathString=null,this.repaint(),this.selectionHandles.isEmpty()||this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(n.canvas,n),e.onSelect(n.canvas,n))}),this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)}),this.fireEvent("change:vertices",{value:this.vertices}),this},getSegments:function(){var t=new _packages2.default.util.ArrayList;return t.add({start:this.getStartPosition(),end:this.getEndPosition()}),t},getLength:function(){return Math.sqrt((this.start.x-this.end.x)*(this.start.x-this.end.x)+(this.start.y-this.end.y)*(this.start.y-this.end.y))},getAngle:function(){var t=this.getLength(),e=-180/Math.PI*Math.asin((this.start.y-this.end.y)/t);return e<0?e=this.end.x<this.start.x?Math.abs(e)+180:360-Math.abs(e):this.end.x<this.start.x&&(e=180-e),e},createCommand:function(t){return t.getPolicy()===_packages2.default.command.CommandType.MOVE&&this.isDraggable()?new _packages2.default.command.CommandMoveVertices(this):t.getPolicy()===_packages2.default.command.CommandType.DELETE&&this.isDeleteable()?new _packages2.default.command.CommandDelete(this):t.getPolicy()===_packages2.default.command.CommandType.MOVE_BASEPOINT&&this.isDraggable()?new _packages2.default.command.CommandMoveVertex(this):null},installEditPolicy:function(t){!(t instanceof _packages2.default.policy.line.LineSelectionFeedbackPolicy)&&t instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy||this._super(t)},hitTest:function(t,e){return _packages2.default.shape.basic.Line.hit(this.corona+this.stroke,this.start.x,this.start.y,this.end.x,this.end.y,t,e)},pointProjection:function(t,e){var n=new _packages2.default.geo.Point(t,e),i=this.getStartPosition(),r=this.getEndPosition();return _packages2.default.geo.Line.pointProjection(i.x,i.y,r.x,r.y,n.x,n.y)},lerp:function(t){var e=this.getStartPosition(),n=this.getEndPosition();return t=Math.min(1,Math.max(0,t)),new _packages2.default.geo.Point(e.x+(n.x-e.x)*t,e.y+(n.y-e.y)*t)},intersection:function(t){var e=new _packages2.default.util.ArrayList;if(t===this)return e;var n=this.getSegments(),i=t.getSegments();return n.each(function(t,n){i.each(function(t,i){var r=_packages2.default.shape.basic.Line.intersection(n.start,n.end,i.start,i.end);null!==r&&e.add(r)})}),e},getPersistentAttributes:function(){var t=this._super();return delete t.x,delete t.y,delete t.width,delete t.height,t.stroke=this.stroke,t.color=this.getColor().hash(),t.outlineStroke=this.outlineStroke,t.outlineColor=this.outlineColor.hash(),null!==this.dasharray&&(t.dasharray=this.dasharray),this.editPolicy.getSize()>0&&(t.policy=this.editPolicy.first().NAME),t.vertex=[],this.getVertices().each(function(e,n){t.vertex.push({x:n.x,y:n.y})}),t},setPersistentAttributes:function setPersistentAttributes(memento){if(this._super(memento),"string"==typeof memento.dasharray&&(this.dasharray=memento.dasharray),void 0!==memento.stroke&&this.setStroke(parseFloat(memento.stroke)),void 0!==memento.color&&this.setColor(memento.color),void 0!==memento.outlineStroke&&this.setOutlineStroke(memento.outlineStroke),void 0!==memento.outlineColor&&this.setOutlineColor(memento.outlineColor),void 0!==memento.policy)try{this.installEditPolicy(eval("new "+memento.policy+"()"))}catch(t){debug.warn("Unable to install edit policy '"+memento.policy+"' forced by "+this.NAME+".setPersistendAttributes. Using default.")}Array.isArray(memento.vertex)&&memento.vertex.length>1&&this.setVertices(memento.vertex)}}),_packages2.default.shape.basic.Line.intersection=function(t,e,n,i){var r=null,a=(i.x-n.x)*(t.y-n.y)-(i.y-n.y)*(t.x-n.x),o=(e.x-t.x)*(t.y-n.y)-(e.y-t.y)*(t.x-n.x),s=(i.y-n.y)*(e.x-t.x)-(i.x-n.x)*(e.y-t.y);if(0!=s){var c=a/s,l=o/s;0<=c&&c<=1&&0<=l&&l<=1&&(r=new _packages2.default.geo.Point(t.x+c*(e.x-t.x)|0,t.y+c*(e.y-t.y)|0),r.justTouching=0==c||1==c||0==l||1==l)}return r},_packages2.default.shape.basic.Line.hit=function(t,e,n,i,r,a,o){return _packages2.default.geo.Line.distance(e,n,i,r,a,o)<t}},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}var _packages=__webpack_require__(0),_packages2=_interopRequireDefault(_packages),_JSONUtil=__webpack_require__(2),_JSONUtil2=_interopRequireDefault(_JSONUtil),_extend=__webpack_require__(1),_extend2=_interopRequireDefault(_extend);_packages2.default.shape.basic.PolyLine=_packages2.default.shape.basic.Line.extend({NAME:"draw2d.shape.basic.PolyLine",init:function(t,e,n){this.svgPathString=null,this.oldPoint=null,this.router=null,this.routingRequired=!0,this.lineSegments=new _packages2.default.util.ArrayList,this.radius="",this._super((0,_extend2.default)({router:new _packages2.default.layout.connection.VertexRouter},t),(0,_extend2.default)({},{router:this.setRouter,radius:this.setRadius},e),(0,_extend2.default)({},{router:this.getRouter,radius:this.getRadius},n))},setRadius:function(t){return this.radius=t,this.svgPathString=null,this.repaint(),this.fireEvent("change:radius",{value:this.radius}),this},getRadius:function(){return this.radius},setStartPoint:function(t,e){this.vertices.getSize()>0?this.vertices.first().setPosition(t,e):this.vertices.add(new _packages2.default.geo.Point(t,e)),this.start=this.vertices.first().clone(),this.calculatePath({startMoved:!0,endMoved:!1}),this.repaint();var n=this;return this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)}),this.fireEvent("change:start",{value:this.start}),this},setEndPoint:function(t,e){this.vertices.getSize()>1?this.vertices.last().setPosition(t,e):this.vertices.add(new _packages2.default.geo.Point(t,e)),this.end=this.vertices.last().clone(),!1===this.isInDragDrop&&this.calculatePath({startMoved:!1,endMoved:!0}),this.repaint();var n=this;return this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)}),this.fireEvent("change:end",{value:this.end}),this},addVertex:function(t,e){if(this.vertices.add(new _packages2.default.geo.Point(t,e)),this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone(),this.svgPathString=null,this.repaint(),!this.selectionHandles.isEmpty()){var n=this;this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(n.canvas,n),e.onSelect(n.canvas,n))})}return this.fireEvent("change:vertices",{value:this.vertices}),this},insertVertexAt:function(t,e,n){var i=new _packages2.default.geo.Point(e,n);if(this.vertices.insertElementAt(i,t),this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone(),this.svgPathString=null,this.repaint(),!this.selectionHandles.isEmpty()){var r=this;this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(r.canvas,r),e.onSelect(r.canvas,r))})}return this.fireEvent("change:vertices",{value:this.vertices}),this},removeVertexAt:function(t){var e=this.vertices.removeElementAt(t);if(this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone(),this.svgPathString=null,this.repaint(),!this.selectionHandles.isEmpty()){var n=this;this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(n.canvas,n),e.onSelect(n.canvas,n))})}return this.fireEvent("change:vertices",{value:this.vertices}),e},setRouter:function(t){return null!==this.router&&this.router.onUninstall(this),this.router=void 0===t||null===t?new _packages2.default.layout.connection.DirectRouter:t,this.router.onInstall(this),this.routingRequired=!0,this.repaint(),this.fireEvent("change:router",{value:this.router}),this},getRouter:function(){return this.router},calculatePath:function(t){t=t||{},null!==this.shape&&(this.svgPathString=null,t.oldVertices=this.vertices,this.oldPoint=null,this.lineSegments=new _packages2.default.util.ArrayList,this.vertices=new _packages2.default.util.ArrayList,this.router.route(this,t),this.routingRequired=!1,this.fireEvent("routed"),this.fireEvent("change:route",{}))},repaint:function(t){return!0===this.repaintBlocked||null===this.shape?this:(null!==this.svgPathString&&!0!==this.routingRequired||this.calculatePath(),void 0===t&&(t={}),t.path=this.svgPathString,_JSONUtil2.default.ensureDefault(t,"stroke-linecap","round"),_JSONUtil2.default.ensureDefault(t,"stroke-linejoin","round"),this._super(t))},getSegments:function(){return this.lineSegments},addPoint:function(t,e){void 0!==e&&(t=new _packages2.default.geo.Point(t,e)),this.vertices.add(t),null!==this.oldPoint&&this.lineSegments.add({start:this.oldPoint,end:t}),this.svgPathString=null,this.oldPoint=t},onDragStart:function(t,e,n,i,r){var a=this._super(t,e,n,i,r);return!0===a&&!0!==r&&(this.draggedSegment=this.hitSegment(t,e)),a},getLength:function(){for(var t=0,e=0;e<this.lineSegments.getSize();e++){var n=this.lineSegments.get(e),i=n.start,r=n.end;t+=Math.sqrt((i.x-r.x)*(i.x-r.x)+(i.y-r.y)*(i.y-r.y))}return t},setVertices:function(t){this.router.verticesSet(this),this._super(t)},pointProjection:function(t,e){for(var n=null,i=null,r=null,a=null,o=null,s=Number.MAX_SAFE_INTEGER,c=new _packages2.default.geo.Point(t,e),l=0;l<this.lineSegments.getSize();l++)if(o=this.lineSegments.get(l),r=o.start,a=o.end,null!==(i=_packages2.default.geo.Line.pointProjection(r.x,r.y,a.x,a.y,c.x,c.y))){var u=i.distance(c);(null==n||u<s)&&(n=i,n.index=l,s=u)}if(null!==n){for(var o,h=0,l=0;l<n.index;l++)o=this.lineSegments.get(l),h+=o.start.distance(o.end);o=this.lineSegments.get(n.index),r=o.start,a=o.end,h+=r.distance(a)*_packages2.default.geo.Line.inverseLerp(a.x,a.y,r.x,r.y,n.x,n.y),n.percentage=1/this.getLength()*h}return n},lerp:function(t){for(var e=this.getLength()*t,n=e,i=null,r=null,a=null,o=0;o<this.lineSegments.getSize();o++){if(i=this.lineSegments.get(o),r=i.start,a=i.end,(e-=r.distance(a))<=0)return t=1/r.distance(a)*n,new _packages2.default.geo.Point(r.x+(a.x-r.x)*t,r.y+(a.y-r.y)*t);n=e}return a},hitSegment:function(t,e){for(var n=0;n<this.lineSegments.getSize();n++){var i=this.lineSegments.get(n);if(_packages2.default.shape.basic.Line.hit(this.corona+this.stroke,i.start.x,i.start.y,i.end.x,i.end.y,t,e))return{index:n,start:i.start,end:i.end}}return null},hitTest:function(t,e){return null!==this.hitSegment(t,e)},createCommand:function(t){if(t.getPolicy()===_packages2.default.command.CommandType.DELETE){if(!0===this.isDeleteable())return new _packages2.default.command.CommandDelete(this)}else if(t.getPolicy()===_packages2.default.command.CommandType.MOVE_VERTEX){if(!0===this.isResizeable())return new _packages2.default.command.CommandMoveVertex(this)}else if(t.getPolicy()===_packages2.default.command.CommandType.MOVE_VERTICES&&!0===this.isResizeable())return new _packages2.default.command.CommandMoveVertices(this);return this._super(t)},getPersistentAttributes:function(){var t=(0,_extend2.default)(this._super(),{router:this.router.NAME,radius:this.radius});return t=this.router.getPersistentAttributes(this,t)},setPersistentAttributes:function setPersistentAttributes(memento){if(this._super(memento),void 0!==memento.router)try{this.setRouter(eval("new "+memento.router+"()"))}catch(t){debug.warn("Unable to install router '"+memento.router+"' forced by "+this.NAME+".setPersistendAttributes. Using default")}void 0!==memento.radius&&this.setRadius(memento.radius),this.router.setPersistentAttributes(this,memento),this.vertices.getSize()>1&&(this.start=this.vertices.first().clone(),this.end=this.vertices.last().clone())}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.basic.Image=a.default.shape.node.Node.extend({NAME:"draw2d.shape.basic.Image",init:function(t,e,n){this._super(t,(0,s.default)({path:this.setPath},e),(0,s.default)({path:this.getPath},n))},setPath:function(t){return this.path=t,null!==this.shape&&this.shape.attr({src:this.path}),this.fireEvent("change:path",{value:this.path}),this},getPath:function(){return this.path},repaint:function(t){return!0===this.repaintBlocked||null===this.shape?this:(t=t||{},t.x=this.getAbsoluteX(),t.y=this.getAbsoluteY(),t.width=this.getWidth(),t.height=this.getHeight(),t.src=this.path,$(this.shape.node).css({display:"inline-block",width:t.width,height:t.height}),this._super(t),this)},createShapeElement:function(){return this.canvas.paper.image(this.path,this.getX(),this.getY(),this.getWidth(),this.getHeight())},getPersistentAttributes:function(){return(0,s.default)(this._super(),{path:this.path})},setPersistentAttributes:function(t){this._super(t),void 0!==t.path&&this.setPath(t.path)}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var a=n(0),o=i(a),s=n(2),c=i(s);o.default.shape.basic.Polygon=o.default.VectorFigure.extend({NAME:"draw2d.shape.basic.Polygon",init:function(t,e,n){if(this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.vertices=new o.default.util.ArrayList,this._super(t,e,n),0===this.vertices.getSize()){var i=this.width,r=this.height,a=this.getPosition();this.addVertex(new o.default.geo.Point(0,0)),this.addVertex(new o.default.geo.Point(i,0)),this.addVertex(new o.default.geo.Point(i,r)),this.setPosition(a)}this.svgPathString=null,this.installEditPolicy(new o.default.policy.figure.VertexSelectionFeedbackPolicy)},setRadius:function(t){return this.svgPathString=null,this._super(t),this.fireEvent("change:radius",{value:t}),this},createShapeElement:function(){return this.canvas.paper.path("M0 10L100 100")},calculatePath:function(){var t=this.getRadius(),e=[];if(0===t){var n=this.vertices.getSize(),i=this.vertices.get(0);e.push("M",i.x," ",i.y);for(var r=1;r<n;r++)i=this.vertices.get(r),e.push("L",i.x," ",i.y);e.push("Z")}else{length=this.vertices.getSize();var a=this.vertices.first(),s=this.vertices.last();a.equals(s)&&(length-=1,s=this.vertices.get(length-1));var c=o.default.geo.Util.insetPoint(a,s,t);e.push("M",c.x,",",c.y);for(var r=0;r<length;r++){a=this.vertices.get(r),s=this.vertices.get((r+1)%length);var l=o.default.geo.Util.insetPoint(a,s,t),u=o.default.geo.Util.insetPoint(s,a,t);e.push("Q",a.x,",",a.y," ",l.x,", ",l.y),e.push("L",u.x,",",u.y)}}return this.svgPathString=e.join(""),this},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null===this.svgPathString&&this.calculatePath(),t=t||{},c.default.ensureDefault(t,"path",this.svgPathString),this._super(t))},translate:function(t,e){var n=this;return t=this.x+t,e=this.y+e,this.editPolicy.each(function(i,r){if(r instanceof o.default.policy.figure.DragDropEditPolicy){var a=r.adjustPosition(n,t,e);t=a.x,e=a.y}}),t-=this.x,e-=this.y,this.vertices.each(function(n,i){i.translate(t,e)}),this.svgPathString=null,this.updateBoundingBox(),this.repaint(),this.editPolicy.each(function(t,e){e instanceof o.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)}),this.fireEvent("move",{figure:this,dx:t,dy:e}),this.fireEvent("change:x",{value:this.x}),this.fireEvent("change:y",{value:this.y}),this},setPosition:function(t,e){t instanceof o.default.geo.Point&&(e=t.y,t=t.x),this.svgPathString=null;var n=t-this.minX,i=e-this.minY;return this.translate(n,i),this.x=t,this.y=e,this},setDimension:function(t,e){var n=this.width,i=this.height;this._super(t,e);var r=1/n*this.width,a=1/i*this.height,o=this.x,s=this.y;return this.vertices.each(function(t,e){var n=(e.getX()-o)*r,i=(e.getY()-s)*a;e.setPosition(o+n,s+i)}),this.svgPathString=null,this.repaint(),this.fireEvent("change:dimension",{value:{width:this.width,height:this.height}}),this},getVertices:function(){return this.vertices},getVertex:function(t){return this.vertices.get(t)},resetVertices:function(){this.vertices=new o.default.util.ArrayList,this.svgPathString=null,this.repaint(),this.updateBoundingBox();var t=this;this.editPolicy.each(function(e,n){n instanceof o.default.policy.figure.DragDropEditPolicy&&n.moved(t.canvas,t)})},setVertex:function(t,e,n){var i=this.vertices.get(t);if(null===i||i.x===e&&i.y===n)return this;i.x=parseFloat(e),i.y=parseFloat(n),this.svgPathString=null,this.repaint(),this.updateBoundingBox();var r=this;return this.editPolicy.each(function(t,e){e instanceof o.default.policy.figure.DragDropEditPolicy&&e.moved(r.canvas,r)}),this.fireEvent("change:vertices",{value:this.vertices}),this},addVertex:function(t,e){this.vertices.add(new o.default.geo.Point(t,e)),this.svgPathString=null,this.repaint(),this.updateBoundingBox();var n=this;return this.editPolicy.each(function(t,e){e instanceof o.default.policy.figure.DragDropEditPolicy&&e.moved(n.canvas,n)}),this.fireEvent("change:vertices",{value:this.vertices}),this},insertVertexAt:function(t,e,n){if(this.vertices.insertElementAt(new o.default.geo.Point(e,n),t),this.svgPathString=null,this.repaint(),this.updateBoundingBox(),!this.selectionHandles.isEmpty()){var i=this;this.editPolicy.each(function(t,e){e instanceof o.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(i.canvas,i),e.onSelect(i.canvas,i))})}return this.fireEvent("change:vertices",{value:this.vertices}),this},removeVertexAt:function(t){if(this.vertices.getSize()<=3)return null;var e=this.vertices.removeElementAt(t);if(this.svgPathString=null,this.repaint(),this.updateBoundingBox(),!this.selectionHandles.isEmpty()){var n=this;this.editPolicy.each(function(t,e){e instanceof o.default.policy.figure.SelectionFeedbackPolicy&&(e.onUnselect(n.canvas,n),e.onSelect(n.canvas,n))})}return this.fireEvent("change:vertices",{value:this.vertices}),e},setRotationAngle:function(t){this.rotationAngle=360%t;var e=t/(180/Math.PI),n=this.getBoundingBox().getCenter(),i=function(t,e,n,i,r){var a=Math.cos,o=Math.sin;return{x:(t-n)*a(r)-(e-i)*o(r)+n,y:(t-n)*o(r)+(e-i)*a(r)+i}};this.vertices.each(function(t,r){var a=i(r.x,r.y,n.x,n.y,e);r.setPosition(a.x,a.y)}),this.updateBoundingBox();var r=this;return this.editPolicy.each(function(t,e){e instanceof o.default.policy.figure.DragDropEditPolicy&&e.moved(r.canvas,r)}),this.repaint(),this.fireEvent("change:angle",{value:this.rotationAngle}),this},updateBoundingBox:function(){this.vertices.isEmpty()?(this.minX=this.x,this.minY=this.y,this.maxX=this.x+this.width,this.maxY=this.y+this.height):(this.minX=this.x=Math.min.apply(Math,r(this.vertices.asArray().map(function(t){return t.x}))),this.minY=this.y=Math.min.apply(Math,r(this.vertices.asArray().map(function(t){return t.y}))),this.maxX=Math.max.apply(Math,r(this.vertices.asArray().map(function(t){return t.x}))),this.maxY=Math.max.apply(Math,r(this.vertices.asArray().map(function(t){return t.y}))),this.width=this.maxX-this.minX,this.height=this.maxY-this.minY)},createCommand:function(t){return t.getPolicy()===o.default.command.CommandType.MOVE_VERTEX&&!0===this.isResizeable()?new o.default.command.CommandMoveVertex(this):this._super(t)},getPersistentAttributes:function(){var t=this._super();return t.vertices=[],this.vertices.each(function(e,n){t.vertices.push({x:n.x,y:n.y})}),t},setPersistentAttributes:function(t){var e=this;this._super(t),void 0!==t.vertices&&(this.vertices=new o.default.util.ArrayList,t.vertices.forEach(function(t){e.addVertex(t)}))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.basic.Diamond=r.default.shape.basic.Polygon.extend({NAME:"draw2d.shape.basic.Diamond",init:function(t,e,n){this._super(extend({bgColor:"#00a3f6",color:"#1B1B1B"},t),e,n);var i=this.getPosition();this.resetVertices();var a=this.getBoundingBox();this.addVertex(a.w/2,0),this.addVertex(a.w,a.h/2),this.addVertex(a.w/2,a.h),this.addVertex(0,a.h/2),this.installEditPolicy(new r.default.policy.figure.RectangleSelectionFeedbackPolicy),this.setPosition(i)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.composite.Composite=r.default.SetFigure.extend({NAME:"draw2d.shape.composite.Composite",init:function(t,e,n){this._super(extend({stroke:1,color:"#f0f0f0"},t),e,n)},onDoubleClick:function(){},isMemberSelectable:function(t,e){return e},isMemberDraggable:function(t,e){return e},setCanvas:function(t){this._super(t),null!==t&&this.toBack()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.composite.StrongComposite=r.default.shape.composite.Composite.extend({NAME:"draw2d.shape.composite.StrongComposite",init:function(t,e,n){this.assignedFigures=new r.default.util.ArrayList,this._super(t,e,n)},contains:function(t){for(var e=0,n=this.assignedFigures.getSize();e<n;e++){var i=this.assignedFigures.get(e);if(i===t||i.contains(t))return!0}return this._super(t)},assignFigure:function(t){return this},unassignFigure:function(t){return this},getAssignedFigures:function(){return this.assignedFigures},onDrop:function(t,e,n,i,r){},onCatch:function(t,e,n,i,r){},toFront:function(t){this._super(t);var e=this.getAssignedFigures().clone();e.sort(function(t,e){return t.getZOrder()>e.getZOrder()?-1:1});var n=this;return e.each(function(t,e){e.toFront(n)}),this},toBack:function(t){this._super(t);var e=this.getAssignedFigures().clone();e.sort(function(t,e){return t.getZOrder()>e.getZOrder()?-1:1});var n=this;return e.each(function(t,e){e.toBack(n)}),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.composite.Group=r.default.shape.composite.StrongComposite.extend({NAME:"draw2d.shape.composite.Group",init:function(t,e,n){this._super(extend({bgColor:null,color:null,resizeable:!1},t),e,n),this.stickFigures=!1},isMemberSelectable:function(t,e){return!1},isMemberDraggable:function(t,e){return!1},setPosition:function(t,e){var n=this.x,i=this.y;this._super(t,e);var r=this.x-n,a=this.y-i;return 0===r&&0===a?this:(!1===this.stickFigures&&this.assignedFigures.each(function(t,e){e.translate(r,a)}),this)},assignFigure:function(t){if(!this.assignedFigures.contains(t)){var e=this;this.stickFigures=!0,!0===this.assignedFigures.isEmpty()?this.setBoundingBox(t.getBoundingBox()):this.setBoundingBox(this.getBoundingBox().merge(t.getBoundingBox())),this.assignedFigures.add(t),t.setComposite(this),t.setSelectionAdapter(function(){return e}),this.stickFigures=!1}return this},unassignFigure:function(t){if(this.assignedFigures.contains(t)){if(this.stickFigures=!0,t.setComposite(null),t.setSelectionAdapter(null),this.assignedFigures.remove(t),!this.assignedFigures.isEmpty()){var e=this.assignedFigures.first().getBoundingBox();this.assignedFigures.each(function(t,n){e.merge(n.getBoundingBox())}),this.setBoundingBox(e)}this.stickFigures=!1}return this},createCommand:function(t){return null===t?null:t.getPolicy()===r.default.command.CommandType.DELETE?this.isDeleteable()?new r.default.command.CommandDeleteGroup(this):null:this._super(t)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.composite.Jailhouse=r.default.shape.composite.StrongComposite.extend({NAME:"draw2d.shape.composite.Jailhouse",init:function(t,e,n){this.policy=new r.default.policy.figure.RegionEditPolicy(0,0,10,10),this._super(extend({bgColor:"#f0f0f0",color:"#333333"},t),e,n),this.stickFigures=!1},setDimension:function(t,e){this._super(t,e),this.policy.setBoundingBox(this.getAbsoluteBounds())},setPosition:function(t,e){var n=this.x,i=this.y;this._super(t,e);var r=this.x-n,a=this.y-i;return 0===r&&0===a?this:(this.policy.setBoundingBox(this.getAbsoluteBounds()),!1===this.stickFigures&&this.assignedFigures.each(function(t,e){e.translate(r,a)}),this)},assignFigure:function(t){return this.assignedFigures.contains(t)||t===this||(this.stickFigures=!0,this.setBoundingBox(this.getBoundingBox().merge(t.getBoundingBox())),this.assignedFigures.add(t),t.setComposite(this),t.installEditPolicy(this.policy),t.toFront(this),this.stickFigures=!1),this},unassignFigure:function(t){if(this.assignedFigures.contains(t)){if(this.stickFigures=!0,t.setComposite(null),t.uninstallEditPolicy(this.policy),this.assignedFigures.remove(t),!this.assignedFigures.isEmpty()){var e=this.assignedFigures.first().getBoundingBox();this.assignedFigures.each(function(t,n){e.merge(n.getBoundingBox())}),this.setBoundingBox(e)}this.stickFigures=!1}return this},onCatch:function(t,e,n,i,a){this.getCanvas().getCommandStack().execute(new r.default.command.CommandAssignFigure(t,this))},getMinWidth:function(){var t=0;return this.assignedFigures.each(function(e,n){t=Math.max(t,n.getBoundingBox().getRight())}),t-this.getAbsoluteX()},getMinHeight:function(){var t=0;return this.assignedFigures.each(function(e,n){t=Math.max(t,n.getBoundingBox().getBottom())}),t-this.getAbsoluteY()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.composite.WeakComposite=r.default.shape.composite.Composite.extend({NAME:"draw2d.shape.composite.WeakComposite",init:function(t,e,n){this._super(t,e,n)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.composite.Raft=r.default.shape.composite.WeakComposite.extend({NAME:"draw2d.shape.composite.Raft",init:function(t,e,n){this.aboardFigures=new r.default.util.ArrayList,this._super(extend({bgColor:"#f0f0f0",color:"#1B1B1B"},t),e,n)},onDragStart:function(t,e,n,i){return this._super(t,e,n,i),this.aboardFigures=new r.default.util.ArrayList,this.getAboardFigures(this.isInDragDrop),!0},setPosition:function(t,e,n){var i=this.x,a=this.y,o=n?r.default.util.ArrayList.EMPTY_LIST:this.getAboardFigures(!1===this.isInDragDrop);this._super(t,e);var s=this.x-i,c=this.y-a;return 0===s&&0===c?this:(null!==this.canvas&&(o=o.clone(),this.canvas.getLines().each(function(t,e){e instanceof r.default.Connection&&o.contains(e.getSource().getRoot())&&o.contains(e.getTarget().getRoot())&&o.add(e)})),o.each(function(t,e){e.translate(s,c)}),this)},onDrag:function(t,e,n,i,a,o){var s=this;this.editPolicy.each(function(n,i){if(i instanceof r.default.policy.figure.DragDropEditPolicy){var a=i.adjustPosition(s,s.ox+t,s.oy+e);a&&(t=a.x-s.ox,e=a.y-s.oy)}});var c=new r.default.geo.Point(this.ox+t,this.oy+e);this.getCanSnapToHelper()&&(c=this.getCanvas().snapToHelper(this,c)),this.setPosition(c.x,c.y,a),this.editPolicy.each(function(t,e){e instanceof r.default.policy.figure.DragDropEditPolicy&&e.onDrag(s.canvas,s)}),this.fireEvent("drag",{dx:t,dy:e,dx2:n,dy2:i,shiftKey:a,ctrlKey:o})},getAboardFigures:function(t){if(!0===t&&null!==this.canvas){var e=this.getBoundingBox(),n=this.getZOrder();this.aboardFigures=new r.default.util.ArrayList;var i=this;this.getCanvas().getFigures().each(function(t,r){if(r!==i&&!0===r.isSelectable()&&r.getBoundingBox().isInside(e)){if(i.getNextComposite(r)!==i)return;r.getZOrder()>n&&i.aboardFigures.add(r)}})}return this.aboardFigures},getNextComposite:function(t){var e=null;return this.getCanvas().getFigures().each(function(n,i){if(t!==i&&i instanceof r.default.shape.composite.Composite){if(null!==e&&e.getZOrder()>i.getZOrder())return;i.getBoundingBox().contains(t.getBoundingBox())&&(e=i)}}),e}})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}var _packages=__webpack_require__(0),_packages2=_interopRequireDefault(_packages),_extend=__webpack_require__(1),_extend2=_interopRequireDefault(_extend);_packages2.default.Connection=_packages2.default.shape.basic.PolyLine.extend({NAME:"draw2d.Connection",init:function(t,e,n){this.sourcePort=null,this.targetPort=null,this.oldPoint=null,this.sourceDecorator=null,this.targetDecorator=null,this.sourceDecoratorNode=null,this.targetDecoratorNode=null,this.isMoving=!1;var i=this;this.moveListener=function(t){t===i.sourcePort?i.setStartPoint(i.sourcePort.getAbsoluteX(),i.sourcePort.getAbsoluteY()):i.setEndPoint(i.targetPort.getAbsoluteX(),i.targetPort.getAbsoluteY())},this._super((0,_extend2.default)({color:"#129CE4",stroke:2,radius:3},t),(0,_extend2.default)({sourceDecorator:this.setSourceDecorator,targetDecorator:this.setTargetDecorator,source:this.setSource,target:this.setTarget},e),(0,_extend2.default)({sourceDecorator:this.getSourceDecorator,targetDecorator:this.getTargetDecorator,source:this.getSource,target:this.getTarget},n))},disconnect:function(){null!==this.sourcePort&&(this.sourcePort.off(this.moveListener),this.sourcePort.connections.remove(this),this.sourcePort.fireEvent("disconnect",{port:this.sourcePort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("disconnect",{port:this.sourcePort,connection:this}),this.sourcePort.onDisconnect(this),this.fireSourcePortRouteEvent()),null!==this.targetPort&&(this.targetPort.off(this.moveListener),this.targetPort.connections.remove(this),this.targetPort.fireEvent("disconnect",{port:this.targetPort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("disconnect",{port:this.targetPort,connection:this}),this.targetPort.onDisconnect(this),this.fireTargetPortRouteEvent())},reconnect:function(){null!==this.sourcePort&&(this.sourcePort.on("move",this.moveListener),this.sourcePort.connections.add(this),this.sourcePort.fireEvent("connect",{port:this.sourcePort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("connect",{port:this.sourcePort,connection:this}),this.sourcePort.onConnect(this),this.fireSourcePortRouteEvent()),null!==this.targetPort&&(this.targetPort.on("move",this.moveListener),this.targetPort.connections.add(this),this.targetPort.fireEvent("connect",{port:this.targetPort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("connect",{port:this.targetPort,connection:this}),this.targetPort.onConnect(this),this.fireTargetPortRouteEvent()),this.routingRequired=!0,this.repaint()},isResizeable:function(){return this.isDraggable()},add:function(t,e,n){if(!(e instanceof _packages2.default.layout.locator.ConnectionLocator))throw"Locator must implement the class draw2d.layout.locator.ConnectionLocator";this._super(t,e,n)},setSourceDecorator:function(t){this.sourceDecorator=t,this.routingRequired=!0,null!==this.sourceDecoratorNode&&(this.sourceDecoratorNode.remove(),this.sourceDecoratorNode=null),this.repaint()},getSourceDecorator:function(){return this.sourceDecorator},setTargetDecorator:function(t){this.targetDecorator=t,this.routingRequired=!0,null!==this.targetDecoratorNode&&(this.targetDecoratorNode.remove(),this.targetDecoratorNode=null),this.repaint()},getTargetDecorator:function(){return this.targetDecorator},calculatePath:function(t){if(null===this.sourcePort||null===this.targetPort)return this;if(this._super(t),null!==this.shape){this.sourcePort.getZOrder()<this.targetPort.getZOrder()?this.toBack(this.sourcePort):this.toBack(this.targetPort)}return this},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape&&null!==this.sourcePort&&null!==this.targetPort){this._super(t),null!==this.targetDecorator&&null===this.targetDecoratorNode&&(this.targetDecoratorNode=this.targetDecorator.paint(this.getCanvas().paper)),null!==this.sourceDecorator&&null===this.sourceDecoratorNode&&(this.sourceDecoratorNode=this.sourceDecorator.paint(this.getCanvas().paper));var e=this;if(null!==this.sourceDecoratorNode){var n=this.getVertices().first();this.sourceDecoratorNode.transform("r"+this.getStartAngle()+","+n.x+","+n.y+" t"+n.x+","+n.y),this.sourceDecoratorNode.attr({stroke:"#"+this.lineColor.hex(),opacity:this.alpha}),this.sourceDecoratorNode.forEach(function(t){t.node.setAttribute("class",null!==e.cssClass?e.cssClass:"")})}if(null!==this.targetDecoratorNode){var i=this.getVertices().last();this.targetDecoratorNode.transform("r"+this.getEndAngle()+","+i.x+","+i.y+" t"+i.x+","+i.y),this.targetDecoratorNode.attr({stroke:"#"+this.lineColor.hex(),opacity:this.alpha}),this.targetDecoratorNode.forEach(function(t){t.node.setAttribute("class",null!==e.cssClass?e.cssClass:"")})}}},getAbsoluteX:function(){return 0},getAbsoluteY:function(){return 0},postProcess:function(t){this.router.postProcess(this,this.getCanvas(),t)},onDrag:function(t,e,n,i){if(null!==this.command){this.router.onDrag(this,t,e,n,i),this.command.updateVertices(this.getVertices().clone());var r=this;this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.onDrag(r.canvas,r)}),this.svgPathString=null,this.repaint(),this.editPolicy.each(function(t,e){e instanceof _packages2.default.policy.figure.DragDropEditPolicy&&e.moved(r.canvas,r)}),this.fireEvent("move",{figure:this,dx:t,dy:t})}},toFront:function(t){return this._super(t),null!==this.shape&&(null!==this.targetDecoratorNode&&this.targetDecoratorNode.insertAfter(this.shape),null!==this.sourceDecoratorNode&&this.sourceDecoratorNode.insertAfter(this.shape)),this},toBack:function(t){return this._super(t),null!==this.shape&&(null!==this.targetDecoratorNode&&this.targetDecoratorNode.insertAfter(this.shape),null!==this.sourceDecoratorNode&&this.sourceDecoratorNode.insertAfter(this.shape)),this},getStartPoint:function(t){return!1===this.isMoving?t?this.sourcePort.getConnectionAnchorLocation(t,this):this.sourcePort.getConnectionAnchorLocation(this.targetPort.getConnectionAnchorReferencePoint(this),this):this._super()},getEndPoint:function(t){return!1===this.isMoving?t?this.targetPort.getConnectionAnchorLocation(t,this):this.targetPort.getConnectionAnchorLocation(this.sourcePort.getConnectionAnchorReferencePoint(this),this):this._super()},setSource:function(t){null!==this.sourcePort&&(this.sourcePort.off(this.moveListener),this.sourcePort.connections.remove(this),this.sourcePort.fireEvent("disconnect",{port:this.sourcePort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("disconnect",{port:this.sourcePort,connection:this}),this.sourcePort.onDisconnect(this)),this.sourcePort=t,null!==this.sourcePort&&(this.routingRequired=!0,this.fireSourcePortRouteEvent(),this.sourcePort.connections.add(this),this.sourcePort.on("move",this.moveListener),null!==this.canvas&&this.canvas.fireEvent("connect",{port:this.sourcePort,connection:this}),this.sourcePort.fireEvent("connect",{port:this.sourcePort,connection:this}),this.sourcePort.onConnect(this),this.setStartPoint(t.getAbsoluteX(),t.getAbsoluteY()),this.fireEvent("connect",{port:this.sourcePort,connection:this}))},getSource:function(){return this.sourcePort},setTarget:function(t){null!==this.targetPort&&(this.targetPort.off(this.moveListener),this.targetPort.connections.remove(this),this.targetPort.fireEvent("disconnect",{port:this.targetPort,connection:this}),null!==this.canvas&&this.canvas.fireEvent("disconnect",{port:this.targetPort,connection:this}),this.targetPort.onDisconnect(this)),this.targetPort=t,null!==this.targetPort&&(this.routingRequired=!0,this.fireTargetPortRouteEvent(),this.targetPort.connections.add(this),this.targetPort.on("move",this.moveListener),null!==this.canvas&&this.canvas.fireEvent("connect",{port:this.targetPort,connection:this}),this.targetPort.fireEvent("connect",{port:this.targetPort,connection:this}),this.targetPort.onConnect(this),this.setEndPoint(t.getAbsoluteX(),t.getAbsoluteY()),this.fireEvent("connect",{port:this.targetPort,connection:this}))},getTarget:function(){return this.targetPort},sharingPorts:function(t){return this.sourcePort==t.sourcePort||this.sourcePort==t.targetPort||this.targetPort==t.sourcePort||this.targetPort==t.targetPort},setCanvas:function(t){if(this.canvas!==t){var e=null==this.canvas?t:this.canvas;this._super(t),null!==t&&null===_packages2.default.Connection.DROP_FILTER&&(_packages2.default.Connection.DROP_FILTER=t.paper.createFilter(),_packages2.default.Connection.DROP_FILTER.element.setAttribute("width","250%"),_packages2.default.Connection.DROP_FILTER.element.setAttribute("height","250%"),_packages2.default.Connection.DROP_FILTER.createShadow(1,1,2,.3)),null!==this.sourceDecoratorNode&&(this.sourceDecoratorNode.remove(),this.sourceDecoratorNode=null),null!==this.targetDecoratorNode&&(this.targetDecoratorNode.remove(),this.targetDecoratorNode=null),null===this.canvas?(null!==this.sourcePort&&(this.sourcePort.off(this.moveListener),e.fireEvent("disconnect",{port:this.sourcePort,connection:this}),this.sourcePort.onDisconnect(this)),null!==this.targetPort&&(this.targetPort.off(this.moveListener),e.fireEvent("disconnect",{port:this.targetPort,connection:this}),this.targetPort.onDisconnect(this))):(this.shape.items[0].filter(_packages2.default.Connection.DROP_FILTER),null!==this.sourcePort&&(this.sourcePort.on("move",this.moveListener),this.canvas.fireEvent("connect",{port:this.sourcePort,connection:this}),this.sourcePort.onConnect(this)),null!==this.targetPort&&(this.targetPort.on("move",this.moveListener),this.canvas.fireEvent("connect",{port:this.targetPort,connection:this}),this.targetPort.onConnect(this)))}},getStartAngle:function(){if(0===this.lineSegments.getSize())return 0;var t=this.lineSegments.get(0).start,e=this.lineSegments.get(0).end;this.router instanceof _packages2.default.layout.connection.SplineConnectionRouter&&(e=this.lineSegments.get(5).end);var n=Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y)),i=-180/Math.PI*Math.asin((t.y-e.y)/n);return i<0?i=e.x<t.x?Math.abs(i)+180:360-Math.abs(i):e.x<t.x&&(i=180-i),i},getEndAngle:function(){if(0===this.lineSegments.getSize())return 90;var t=this.lineSegments.get(this.lineSegments.getSize()-1).end,e=this.lineSegments.get(this.lineSegments.getSize()-1).start;this.router instanceof _packages2.default.layout.connection.SplineConnectionRouter&&(e=this.lineSegments.get(this.lineSegments.getSize()-5).end);var n=Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y)),i=-180/Math.PI*Math.asin((t.y-e.y)/n);return i<0?i=e.x<t.x?Math.abs(i)+180:360-Math.abs(i):e.x<t.x&&(i=180-i),i},fireSourcePortRouteEvent:function(){this.sourcePort.getConnections().each(function(t,e){e.routingRequired=!0,e.repaint()})},fireTargetPortRouteEvent:function(){this.targetPort.getConnections().each(function(t,e){e.routingRequired=!0,e.repaint()})},createCommand:function(t){return t.getPolicy()===_packages2.default.command.CommandType.MOVE&&this.isDraggable()?new _packages2.default.command.CommandMoveVertices(this):t.getPolicy()===_packages2.default.command.CommandType.MOVE_BASEPOINT?new _packages2.default.command.CommandReconnect(this):this._super(t)},getPersistentAttributes:function(){for(var t=this._super(),e=this.getSource().getParent();null!==e.getParent();)e=e.getParent();for(t.source={node:e.getId(),port:this.getSource().getName()},e=this.getTarget().getParent();null!==e.getParent();)e=e.getParent();return t.target={node:e.getId(),port:this.getTarget().getName()},null!==this.sourceDecorator&&(t.source.decoration=this.sourceDecorator.NAME),null!==this.targetDecorator&&(t.target.decoration=this.targetDecorator.NAME),t},setPersistentAttributes:function setPersistentAttributes(memento){this._super(memento),void 0!==memento.target.decoration&&null!=memento.target.decoration&&this.setTargetDecorator(eval("new "+memento.target.decoration)),void 0!==memento.source.decoration&&null!=memento.source.decoration&&this.setSourceDecorator(eval("new "+memento.source.decoration))}}),_packages2.default.Connection.DROP_FILTER=null},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.ResizeHandle=r.default.shape.basic.Rectangle.extend({NAME:"draw2d.ResizeHandle",init:function(t,e){this._super({bgColor:"#FDFDFD",stroke:.5,color:"#a0a0a0",radius:1}),this.isResizeHandle=!0,this.owner=t,this.type=e,this.command=null,this.commandMove=null,this.commandResize=null,this.useGradient=!0,this.setSelectable(!1),this.setDimension()},getSnapToDirection:function(){switch(this.type){case 1:return r.default.SnapToHelper.NORTH_WEST;case 2:return r.default.SnapToHelper.NORTH;case 3:return r.default.SnapToHelper.NORTH_EAST;case 4:return r.default.SnapToHelper.EAST;case 5:return r.default.SnapToHelper.SOUTH_EAST;case 6:return r.default.SnapToHelper.SOUTH;case 7:return r.default.SnapToHelper.SOUTH_WEST;case 8:return r.default.SnapToHelper.WEST;case 9:return r.default.SnapToHelper.NSEW;default:return r.default.SnapToHelper.EAST}},createShapeElement:function(){var t=this._super();return t.node.setAttribute("type",this.type),this.updateCursor(t),t},updateCursor:function(t){if(null===t)return this;if(!1===this.isDraggable())return t.attr({cursor:"default"}),this;switch(this.type){case 1:t.attr({cursor:"nw-resize"});break;case 2:t.attr({cursor:"n-resize"});break;case 3:t.attr({cursor:"ne-resize"});break;case 4:t.attr({cursor:"e-resize"});break;case 5:t.attr({cursor:"se-resize"});break;case 6:t.attr({cursor:"s-resize"});break;case 7:t.attr({cursor:"sw-resize"});break;case 8:t.attr({cursor:"w-resize"});break;default:t.attr({cursor:"move"})}return this},setDraggable:function(t){return this._super(t),this.updateCursor(this.shape),this},onDragStart:function(t,e,n,i){return!!this.isDraggable()&&(this.ox=this.getAbsoluteX(),this.oy=this.getAbsoluteY(),this.commandMove=this.owner.createCommand(new r.default.command.CommandType(r.default.command.CommandType.MOVE)),this.commandResize=this.owner.createCommand(new r.default.command.CommandType(r.default.command.CommandType.RESIZE)),!0)},onDrag:function(t,e,n,i){if(!1!==this.isDraggable()){var r=this.getAbsoluteX(),a=this.getAbsoluteY();this._super(t,e,n,i);var o=this.getAbsoluteX()-r,s=this.getAbsoluteY()-a,c=this.owner,l=c.getAbsoluteX(),u=c.getAbsoluteY(),h=c.getWidth(),d=c.getHeight(),f=null,p=null,g=null;switch(this.type){case 1:c.setDimension(h-o,d-s),f=l+(h-c.getWidth()),p=u+(d-c.getHeight()),c.setPosition(f,p);break;case 2:c.setDimension(h,d-s),f=l,p=u+(d-c.getHeight()),c.setPosition(f,p);break;case 3:c.setDimension(h+o,d-s),f=l,p=u+(d-c.getHeight()),c.setPosition(f,p);break;case 4:c.setDimension(h+o,d);break;case 5:c.setDimension(h+o,d+s);break;case 6:c.setDimension(h,d+s);break;case 7:c.setDimension(h-o,d+s),f=l+(h-c.getWidth()),p=u,c.setPosition(f,p);break;case 8:c.setDimension(h-o,d),f=l+(h-c.getWidth()),p=u,c.setPosition(f,p)}null!==f&&(g=c.getPosition(),g.x===f&&g.y===p||c.setDimension(c.getWidth()-(g.x-f),c.getHeight()-(g.y-p)))}},onDragEnd:function(t,e,n,i){this.isDraggable()&&(null!==this.commandMove&&(this.commandMove.setPosition(this.owner.getX(),this.owner.getY()),this.canvas.getCommandStack().execute(this.commandMove),this.commandMove=null),null!==this.commandResize&&(this.commandResize.setDimension(this.owner.getWidth(),this.owner.getHeight()),this.canvas.getCommandStack().execute(this.commandResize),this.commandResize=null))},setPosition:function(t,e){if(t instanceof r.default.geo.Point?(this.x=t.x,this.y=t.y):(this.x=t,this.y=e),!0===this.repaintBlocked||null===this.shape)return this;this.shape.attr({x:this.x,y:this.y})},setDimension:function(t,e){void 0!==e?this._super(t,e):r.default.isTouchDevice?this._super(15,15):this._super(8,8);var n=this.getWidth(),i=n/2;switch(this.type){case 1:this.setSnapToGridAnchor(new r.default.geo.Point(n,n));break;case 2:this.setSnapToGridAnchor(new r.default.geo.Point(i,n));break;case 3:this.setSnapToGridAnchor(new r.default.geo.Point(0,n));break;case 4:this.setSnapToGridAnchor(new r.default.geo.Point(0,i));break;case 5:this.setSnapToGridAnchor(new r.default.geo.Point(0,0));break;case 6:this.setSnapToGridAnchor(new r.default.geo.Point(i,0));break;case 7:this.setSnapToGridAnchor(new r.default.geo.Point(n,0));break;case 8:this.setSnapToGridAnchor(new r.default.geo.Point(n,i));break;case 9:this.setSnapToGridAnchor(new r.default.geo.Point(i,i))}return this},show:function(t){return this.setCanvas(t),null!==t&&null===r.default.ResizeHandle.DROP_FILTER&&(r.default.ResizeHandle.DROP_FILTER=t.paper.createFilter(),r.default.ResizeHandle.DROP_FILTER.element.setAttribute("width","250%"),r.default.ResizeHandle.DROP_FILTER.element.setAttribute("height","250%"),r.default.ResizeHandle.DROP_FILTER.createShadow(1,1,2,.3)),this.shape.filter(r.default.ResizeHandle.DROP_FILTER),this.canvas.resizeHandles.add(this),this.shape.insertAfter(this.owner.getShapeElement()),this.repaint(),this},hide:function(){if(null!==this.shape)return this.canvas.resizeHandles.remove(this),this.setCanvas(null),this},setBackgroundColor:function(t){return t=new r.default.util.Color(t),this.bgGradient="90-"+t.darker(.2).hash()+"-"+t.hash(),this._super(t),this},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},"none"===this.bgColor.hash()?t.fill="none":this.getAlpha()<.9||!1===this.useGradient?t.fill=this.bgColor.hash():t.fill=this.bgGradient,this._super(t))},supportsSnapToHelper:function(){return!0},onKeyDown:function(t,e){this.canvas.onKeyDown(t,e)},fireEvent:function(t,e){}}),r.default.ResizeHandle.DROP_FILTER=null},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.basic.LineResizeHandle=r.default.shape.basic.Circle.extend({NAME:"draw2d.shape.basic.LineResizeHandle",init:function(t,e){this._super(),this.owner=t,this.index=e,this.isResizeHandle=!0,r.default.isTouchDevice?this.setDimension(20,20):this.setDimension(10,10),this.setBackgroundColor("#5bcaff"),this.setStroke(1),this.setSelectable(!1),this.currentTarget=null},createShapeElement:function(){var t=this._super();return t.attr({cursor:"move"}),t},setBackgroundColor:function(t){return t=new r.default.util.Color(t),this.bgGradient="r(.4,.3)"+t.hash()+"-"+t.darker(.1).hash()+":60-"+t.darker(.2).hash(),this._super(t),this.setColor(t.darker(.3)),this},getRelatedPort:function(){return null},getOppositePort:function(){return null},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},"none"===this.bgColor.hash()?t.fill=this.bgColor.hash():this.getAlpha()<.9?t.fill=this.bgColor.hash():t.fill=this.bgGradient,this._super(t))},onDragStart:function(t,e,n,i){return this.command=this.owner.createCommand(new r.default.command.CommandType(r.default.command.CommandType.MOVE_BASEPOINT)),null!==this.command&&this.command.setIndex(this.index),this.setAlpha(.2),this.shape.attr({cursor:"crosshair"}),this.fireEvent("dragstart",{x:t,y:e,shiftKey:n,ctrlKey:i}),!0},onDrag:function(t,e,n,i){this.setPosition(this.x+n,this.y+i);var r=this.getOppositePort(),a=null!==r?r.getCanvas().getBestFigure(this.getX(),this.getY(),[this,this.owner]):null;return a!==this.currentTarget&&(null!==this.currentTarget&&(this.currentTarget.onDragLeave(r),this.currentTarget.setGlow(!1),this.currentTarget.fireEvent("dragLeave",{draggingElement:r})),null!==a&&(this.currentTarget=a.delegateTarget(r),null!==this.currentTarget&&(this.currentTarget.setGlow(!0),this.currentTarget.onDragEnter(r),this.currentTarget.fireEvent("dragEnter",{draggingElement:r})))),!0},onDragEnd:function(t,e,n,i){if(!this.isDraggable())return!1;this.shape.attr({cursor:"move"});var a=this.getOppositePort();null!==a&&null!==this.currentTarget&&(this.onDrop(this.currentTarget,t,e,n,i),this.currentTarget.onDragLeave(a),this.currentTarget.setGlow(!1),this.currentTarget.fireEvent("dragLeave",{draggingElement:a}),this.currentTarget.onCatch(this,t,e,n,i),this.currentTarget=null),this.owner.isMoving=!1,this.owner instanceof r.default.Connection?null!==this.command&&this.command.cancel():null!==this.command&&this.getCanvas().getCommandStack().execute(this.command),this.command=null,this.setAlpha(1),this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i})},relocate:function(){return this},supportsSnapToHelper:function(){return!(this.owner instanceof r.default.Connection)},show:function(t,e,n){this.setCanvas(t),this.shape.toFront(),this.canvas.resizeHandles.add(this)},hide:function(){null!==this.shape&&(this.canvas.resizeHandles.remove(this),this.setCanvas(null))},onKeyDown:function(t,e){this.canvas.onKeyDown(t,e)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.basic.LineStartResizeHandle=r.default.shape.basic.LineResizeHandle.extend({NAME:"draw2d.shape.basic.LineStartResizeHandle",init:function(t){this._super(t,0)},getRelatedPort:function(){return this.owner instanceof r.default.Connection?this.owner.getSource():null},getOppositePort:function(){return this.owner instanceof r.default.Connection?this.owner.getTarget():null},onDrag:function(t,e,n,i){this._super(t,e,n,i);var r=this.owner.getStartPoint();return r.translate(n,i),null!==this.command&&this.command.updatePosition(r),this.owner.setStartPoint(r),this.owner.isMoving=!0,!0},onDrop:function(t,e,n,i,a){this.owner.isMoving=!1,this.owner instanceof r.default.Connection&&null!==this.command&&(this.command.setNewPorts(t,this.owner.getTarget()),this.getCanvas().getCommandStack().execute(this.command)),this.command=null},relocate:function(){var t=this.getWidth()/2,e=this.getHeight()/2,n=this.owner.getStartPoint();return this.setPosition(n.x-t,n.y-e),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.basic.LineEndResizeHandle=r.default.shape.basic.LineResizeHandle.extend({NAME:"draw2d.shape.basic.LineEndResizeHandle",init:function(t){this._super(t,t.getVertices().getSize()-1)},getRelatedPort:function(){return this.owner instanceof r.default.Connection?this.owner.getTarget():null},getOppositePort:function(){return this.owner instanceof r.default.Connection?this.owner.getSource():null},onDrag:function(t,e,n,i){this._super(t,e,n,i);var r=this.owner.getEndPoint().clone();return r.translate(n,i),null!==this.command&&this.command.updatePosition(r),this.owner.setEndPoint(r),this.owner.isMoving=!0,!0},onDrop:function(t,e,n,i,a){this.owner.isMoving=!1,this.owner instanceof r.default.Connection&&null!==this.command&&(this.command.setNewPorts(this.owner.getSource(),t),this.getCanvas().getCommandStack().execute(this.command)),this.command=null},relocate:function(){var t=this.getWidth()/2,e=this.getHeight()/2,n=this.owner.getEndPoint();return this.setPosition(n.x-t,n.y-e),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.basic.VertexResizeHandle=r.default.ResizeHandle.extend({NAME:"draw2d.shape.basic.VertexResizeHandle",SNAP_THRESHOLD:3,LINE_COLOR:"#1387E6",FADEOUT_DURATION:300,init:function(t,e){this._super(t),this.index=e,this.isDead=!1},onDoubleClick:function(){var t=new r.default.command.CommandRemoveVertex(this.owner,this.index);this.getCanvas().getCommandStack().execute(t),this.isDead=!0},onDragStart:function(t,e,n,i){if(!0!==this.isDead)return this._super(),this.command=this.getCanvas().getPrimarySelection().createCommand(new r.default.command.CommandType(r.default.command.CommandType.MOVE_VERTEX)),null!=this.command&&(this.command.setIndex(this.index),this.setAlpha(.2),this.shape.attr({cursor:"crosshair"})),this.vertex=this.owner.getVertex(this.index).clone(),this.fireEvent("dragstart",{x:t,y:e,shiftKey:n,ctrlKey:i}),!0},onDrag:function(t,e,n,i){if(!0!==this.isDead&&null!=this.command){this.setPosition(this.x+n,this.y+i),this.vertex.translate(n,i);var r=this.vertex.clone();this.getCanSnapToHelper()&&(r=this.getCanvas().snapToHelper(this,r)),this.owner.setVertex(this.index,r.x,r.y),this.command.updatePosition(this.vertex.x,this.vertex.y)}},onDragEnd:function(t,e,n,i){if(!0!==this.isDead&&null!==this.command){this.shape.attr({cursor:"move"});var a=this.getCanvas().getCommandStack();a.startTransaction();try{a.execute(this.command),this.command=null;if(this.getEnclosingAngle()>178){var o=new r.default.command.CommandRemoveVertex(this.owner,this.index);a.execute(o)}}finally{a.commitTransaction()}this.setAlpha(1),this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i})}},relocate:function(){var t=this.getWidth()/2,e=this.getHeight()/2,n=this.owner.getVertex(this.index);this.setPosition(n.x-t,n.y-e)},getEnclosingAngle:function(){var t=this.owner.getVertices(),e=this.vertex.getScaled(-1),n=t.getSize(),i=t.get((this.index-1+n)%n).translated(e),r=t.get((this.index+1)%n).translated(e),a=i.dot(r);return 180*Math.acos(a/(i.length()*r.length()))/Math.PI}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.basic.GhostVertexResizeHandle=r.default.shape.basic.LineResizeHandle.extend({NAME:"draw2d.shape.basic.GhostVertexResizeHandle",init:function(t,e){this.maxOpacity=.35,this._super(t),this.precursorIndex=e,this.setAlpha(this.maxOpacity)},createShapeElement:function(){var t=this._super();return t.attr({cursor:"pointer"}),t},setAlpha:function(t){return t=Math.min(this.maxOpacity,Math.max(0,parseFloat(t))),this._super(t),this},onClick:function(){var t=new r.default.command.CommandAddVertex(this.owner,this.precursorIndex+1,this.getAbsoluteX()+this.getWidth()/2,this.getAbsoluteY()+this.getHeight()/2);this.getCanvas().getCommandStack().execute(t)},onDragStart:function(t,e,n,i){return!0},onDrag:function(t,e,n,i){return!0},onDragEnd:function(t,e,n,i){return this.fireEvent("dragend",{x:t,y:e,shiftKey:n,ctrlKey:i}),!0},relocate:function(){var t=this.owner.getVertices().get(this.precursorIndex),e=this.owner.getVertices().get(this.precursorIndex+1),n=(e.x-t.x)/2+t.x-this.getWidth()/2,i=(e.y-t.y)/2+t.y-this.getHeight()/2;this.setPosition(n,i)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.Port=r.default.shape.basic.Circle.extend({NAME:"draw2d.Port",DEFAULT_BORDER_COLOR:new r.default.util.Color("#1B1B1B"),MAX_SAFE_INTEGER:9007199254740991,init:function(t,e,n){var i=this;this.locator=null,this.lighterBgColor=null,this.name=null,this._super(extend({bgColor:"#4f6870",stroke:1,diameter:r.default.isTouchDevice?25:10,color:"#1B1B1B",selectable:!1},t),e,n),this.ox=this.x,this.oy=this.y,this.coronaWidth=5,this.corona=null,this.useGradient=!0,this.preferredConnectionDirection=null,this.connections=new r.default.util.ArrayList,this.moveListener=function(t,e){i.repaint(),i.fireEvent("move",{figure:i,dx:0,dy:0})},this.connectionAnchor=new r.default.layout.anchor.ConnectionAnchor(this),this.value=null,this.maxFanOut=this.MAX_SAFE_INTEGER,this.setCanSnapToHelper(!1),this.editPolicy.each(function(t,e){i.uninstallEditPolicy(e)}),this.installEditPolicy(new r.default.policy.port.IntrusivePortsFeedbackPolicy),this.portSelectionAdapter=function(){return i}},getSelectionAdapter:function(){return this.portSelectionAdapter},setMaxFanOut:function(t){return this.maxFanOut=Math.max(1,t),this.fireEvent("change:maxFanOut",{value:this.maxFanOut}),this},getMaxFanOut:function(){return this.maxFanOut},setConnectionAnchor:function(t){return void 0!==t&&null!==t||(t=new r.default.layout.anchor.ConnectionAnchor),this.connectionAnchor=t,this.connectionAnchor.setOwner(this),this.fireEvent("move",{figure:this,dx:0,dy:0}),this},getConnectionAnchorLocation:function(t,e){return this.connectionAnchor.getLocation(t,e)},getConnectionAnchorReferencePoint:function(t){return this.connectionAnchor.getReferencePoint(t)},getConnectionDirection:function(t){return void 0===this.preferredConnectionDirection||null===this.preferredConnectionDirection?this.getParent().getBoundingBox().getDirection(this.getAbsolutePosition()):this.preferredConnectionDirection},setConnectionDirection:function(t){return this.preferredConnectionDirection=t,this.fireEvent("move",{figure:this,dx:0,dy:0}),this},setLocator:function(t){return this.locator=t,this},getLocator:function(){return this.locator},setBackgroundColor:function(t){return this._super(t),this.lighterBgColor=this.bgColor.lighter(.3).hash(),this},setValue:function(t){return this.value=t,null!==this.getParent()&&this.getParent().onPortValueChanged(this),this.fireEvent("change:value",{value:this.value}),this},getValue:function(){return this.value},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},t.cx=this.getAbsoluteX(),t.cy=this.getAbsoluteY(),t.rx=this.width/2,t.ry=t.rx,t.cursor="move",this.getAlpha()<.9||!1===this.useGradient?t.fill=this.bgColor.hash():t.fill=["90",this.bgColor.hash(),this.lighterBgColor].join("-"),this._super(t))},onMouseEnter:function(){this._oldstroke=this.getStroke(),this.setStroke(2)},onMouseLeave:function(){this.setStroke(this._oldstroke)},getConnections:function(){return this.connections},setParent:function(t){null!==this.parent&&this.parent.off(this.moveListener),this._super(t),null!==this.parent&&this.parent.on("move",this.moveListener)},getCoronaWidth:function(){return this.coronaWidth},setCoronaWidth:function(t){this.coronaWidth=t},onDragStart:function(t,e,n,i){if(this.getConnections().getSize()>=this.maxFanOut)return!1;var a=this;this.ox=this.x,this.oy=this.y;var o=!0;return this.editPolicy.each(function(s,c){c instanceof r.default.policy.figure.DragDropEditPolicy&&(o=o&&c.onDragStart(a.canvas,a,t,e,n,i))}),o},onDrag:function(t,e,n,i,r,a){this._super(t,e)},onDragEnd:function(t,e,n,i){this.setAlpha(1),this.setPosition(this.ox,this.oy)},onDrop:function(t,e,n,i,r){},onConnect:function(t){},onDisconnect:function(t){},getName:function(){return this.name},setName:function(t){this.name=t},hitTest:function(t,e,n){var i=this.getAbsoluteX()-this.coronaWidth-this.getWidth()/2,r=this.getAbsoluteY()-this.coronaWidth-this.getHeight()/2,a=i+this.getWidth()+2*this.coronaWidth,o=r+this.getHeight()+2*this.coronaWidth;return t>=i&&t<=a&&e>=r&&e<=o},setGlow:function(t){return!0===t&&null===this.corona?(this.corona=new r.default.Corona,this.corona.setDimension(this.getWidth()+2*this.getCoronaWidth(),this.getWidth()+2*this.getCoronaWidth()),this.corona.setPosition(this.getAbsoluteX()-this.getCoronaWidth()-this.getWidth()/2,this.getAbsoluteY()-this.getCoronaWidth()-this.getHeight()/2),this.corona.setCanvas(this.getCanvas()),this.corona.getShapeElement(),this.corona.repaint()):!1===t&&null!==this.corona&&(this.corona.setCanvas(null),this.corona=null),this},createCommand:function(t){return t.getPolicy()===r.default.command.CommandType.MOVE&&this.isDraggable()?new r.default.command.CommandMovePort(this):null},fireEvent:function(t,e){!0===this.isInDragDrop&&"drag"!==t||this._super(t,e)},getPersistentAttributes:function(){var t=this._super();return t.maxFanOut=this.maxFanOut,t.name=this.name,delete t.x,delete t.y,delete t.ports,t},setPersistentAttributes:function(t){return this._super(t),void 0!==t.maxFanOut&&("number"==typeof t.maxFanOut?this.maxFanOut=t.maxFanOut:this.maxFanOut=Math.max(1,parseInt(t.maxFanOut))),void 0!==t.name&&this.setName(t.name),this}}),r.default.Corona=r.default.shape.basic.Circle.extend({init:function(){this._super(),this.setAlpha(.3),this.setBackgroundColor(new r.default.util.Color(178,225,255)),this.setColor(new r.default.util.Color(102,182,252))},setAlpha:function(t){return this._super(Math.min(.3,t)),this.setDeleteable(!1),this.setDraggable(!1),this.setResizeable(!1),this.setSelectable(!1),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.InputPort=r.default.Port.extend({NAME:"draw2d.InputPort",init:function(t,e,n){this._super(t,e,n),this.locator=new r.default.layout.locator.InputPortLocator},createCommand:function(t){return t.getPolicy()===r.default.command.CommandType.CONNECT?new r.default.command.CommandConnect(t.source,t.target,t.source,t.router):this._super(t)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.OutputPort=r.default.Port.extend({NAME:"draw2d.OutputPort",init:function(t,e,n){this._super(t,e,n),this.locator=new r.default.layout.locator.OutputPortLocator},createCommand:function(t){return t.getPolicy()===r.default.command.CommandType.CONNECT?new r.default.command.CommandConnect(t.target,t.source,t.source,t.router):this._super(t)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.HybridPort=r.default.Port.extend({NAME:"draw2d.HybridPort",init:function(t,e,n){this._super(t,e,n),this.locator=new r.default.layout.locator.InputPortLocator},createCommand:function(t){return t.getPolicy()===r.default.command.CommandType.CONNECT?t.source.getParent().getId()===t.target.getParent().getId()?null:t.source instanceof r.default.InputPort?new r.default.command.CommandConnect(t.target,t.source,t.source,t.router):t.source instanceof r.default.OutputPort?new r.default.command.CommandConnect(t.source,t.target,t.source,t.router):t.source instanceof r.default.HybridPort?new r.default.command.CommandConnect(t.target,t.source,t.source,t.router):null:this._super(t)}})},function(t,e,n){"use strict";var i=n(0);(function(t){return t&&t.__esModule?t:{default:t}})(i).default.layout.anchor.ConnectionAnchor=Class.extend({NAME:"draw2d.layout.anchor.ConnectionAnchor",init:function(t){this.owner=t},getLocation:function(t,e){return this.getReferencePoint(e)},getOwner:function(){return this.owner},setOwner:function(t){if(void 0===t)throw"Missing parameter for 'owner' in ConnectionAnchor.setOwner";this.owner=t},getBox:function(){return this.getOwner().getAbsoluteBounds()},getReferencePoint:function(t){return this.getOwner().getAbsolutePosition()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.anchor.ChopboxConnectionAnchor=r.default.layout.anchor.ConnectionAnchor.extend({NAME:"draw2d.layout.anchor.ChopboxConnectionAnchor",init:function(t){this._super(t)},getLocation:function(t,e){var n=new r.default.geo.Rectangle(0,0);n.setBounds(this.getBox()),n.translate(-1,-1),n.resize(1,1);var i=n.getCenter();if(n.isEmpty()||t.x===i.x&&t.y===i.y)return i;var a=t.x-i.x,o=t.y-i.y,s=.5/Math.max(Math.abs(a)/n.w,Math.abs(o)/n.h);return a*=s,o*=s,i.translate(a,o),i},getBox:function(){return this.getOwner().getParent().getBoundingBox()},getReferencePoint:function(t){return this.getBox().getCenter()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.anchor.FanConnectionAnchor=r.default.layout.anchor.ConnectionAnchor.extend({NAME:"draw2d.layout.anchor.FanConnectionAnchor",init:function(t,e){this._super(t),this.separation=e?parseInt(e):10},getLocation:function(t,e){var n=new r.default.geo.Rectangle(0,0);n.setBounds(this.getBox()),n.translate(-1,-1),n.resize(1,1);var i=n.getCenter();if(n.isEmpty()||t.x===i.x&&t.y===i.y)return i;var a=e.getSource(),o=e.getTarget(),s=this.getOwner().getConnections().clone();s.grep(function(t){return t.getTarget()===o&&t.getSource()===a||t.getTarget()===a&&t.getSource()===o});var c,l=s.indexOf(e)+1,u=i.getPosition(t);c=u==r.default.geo.PositionConstants.SOUTH||u==r.default.geo.PositionConstants.EAST?new r.default.geo.Point(t.x-i.x,t.y-i.y):new r.default.geo.Point(i.x-t.x,i.y-t.y);var h=Math.sqrt(c.x*c.x+c.y*c.y);l<=2&&(h*=1.5);var d=this.separation*c.x/h,f=this.separation*c.y/h;i=l%2==0?new r.default.geo.Point(i.x+l/2*(-1*f),i.y+l/2*d):new r.default.geo.Point(i.x+l/2*f,i.y+l/2*(-1*d));var p=this.getBox().intersectionWithLine(i,t);switch(p.getSize()){case 0:var g=this.getBox().getVertices(),m=g.first();return m.distance=t.getDistance(m),g.asArray().reduce(function(e,n){return n.distance=t.getDistance(n),n.distance<e.distance?n:e});case 1:return p.get(0);case 2:var v=p.get(0),y=p.get(1);return t.getDistance(v)<t.getDistance(y)?v:y}},getBox:function(){return this.getOwner().getParent().getBoundingBox()},getReferencePoint:function(t){return this.getBox().getCenter()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.anchor.ShortesPathConnectionAnchor=r.default.layout.anchor.ConnectionAnchor.extend({NAME:"draw2d.layout.anchor.ShortesPathConnectionAnchor",init:function(t){this._super(t)},getLocation:function(t,e){var n=this.getOwner().getParent().getBoundingBox(),i=n.getCenter();if(this.getOwner().getParent()instanceof r.default.shape.basic.Oval){var a=this.getOwner().getParent().intersectionWithLine(t,i);if(1==a.getSize())return a.get(0)}switch(n.determineOctant(new r.default.geo.Rectangle(t.x,t.y,2,2))){case 0:return n.getTopLeft();case 1:return new r.default.geo.Point(t.x,n.getTop());case 2:return n.getTopRight();case 3:return new r.default.geo.Point(n.getRight(),t.y);case 4:return n.getBottomRight();case 5:return new r.default.geo.Point(t.x,n.getBottom());case 6:return n.getBottomLeft();case 7:return new r.default.geo.Point(n.getLeft(),t.y)}return n.getTopLeft()},getBox:function(){return this.getOwner().getParent().getBoundingBox()},getReferencePoint:function(t){return this.getBox().getCenter()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.layout.anchor.CenterEdgeConnectionAnchor=r.default.layout.anchor.ConnectionAnchor.extend({NAME:"draw2d.layout.anchor.CenterEdgeConnectionAnchor",init:function(t){this._super(t)},getLocation:function(t,e){var n=this.getOwner().getParent().getBoundingBox(),i=n.getDirection(t),r=n.getCenter();switch(i){case 0:r.y=n.y;break;case 1:r.x=n.x+n.w;break;case 2:r.y=n.y+n.h;break;case 3:r.x=n.x}return r},getBox:function(){return this.getOwner().getParent().getBoundingBox()},getReferencePoint:function(t){return this.getBox().getCenter()}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.arrow.CalligrapherArrowLeft=r.default.SVGFigure.extend({NAME:"draw2d.shape.arrow.CalligrapherArrowLeft",init:function(t,e,n){this._super(t)},getSVG:function(){return'<svg width="230" height="60" xmlns="http://www.w3.org/2000/svg" version="1.1">  <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3024" d="m 218.87943,27.464763 c -1.21088,-0.0563 -2.42064,-0.14616 -3.63262,-0.16893 c -5.82495,-0.10948 -18.61676,-0.0226 -22.97385,0.0122 c -7.12848,0.057 -14.25673,0.14021 -21.38495,0.22333 c -9.03765,0.10539 -18.07511,0.22813 -27.11266,0.3422 c -10.2269,0.11878 -20.4538,0.23756 -30.6807,0.35634 c -35.488759,0.4089 -70.975849,0.82793 -106.4669238,0.95195 c 0,0 7.9718628,-5.70244 7.9718628,-5.70244 l 0,0 c 6.374241,0.28694 12.745594,0.64561 19.122722,0.86083 c 28.09499,0.94816 56.21338,0.92473 84.315959,0.32205 c 10.51273,-0.32805 21.0288,-0.56402 31.53819,-0.98412 c 27.47361,-1.09824 54.91405,-2.91665 82.28177,-5.53697 c 0,0 -12.9788,9.32351 -12.9788,9.32351 z" inkscape:connector-curvature="0" />  <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3026" d="m 100.75066,1.6309831 c -7.165239,3.9571 -14.284929,7.47866 -22.036659,10.2707299 c -5.00195,1.80163 -10.10374,3.31886 -15.2402,4.79424 c -8.25878,2.37815 -16.55626,4.65805 -24.9012,6.79479 c -2.89107,0.71593 -5.74687,1.56407 -8.66266,2.20424 c -3.211679,0.70512 -6.49468,1.17333 -9.752959,1.6747 c -5.447101,0.92112 -10.9044008,1.81762 -16.3983488,2.50082 c -1.608931,0.0814 -0.850754,0.10697 -2.275834,-0.0365 C 20.004071,21.041553 19.256899,21.517873 32.515691,19.216243 c 6.21537,-1.05913 12.34875,-2.37668 18.3945,-4.03234 c 8.12719,-2.02803 16.23765,-4.1157 24.26421,-6.4321199 c 5.23574,-1.55053 10.41682,-3.15473 15.46857,-5.12875 c 1.38953,-0.54295 2.7579,-1.12682 4.12253,-1.71603 c 0.98421,-0.42496 3.86537,-1.81801999 2.92296,-1.32600999 C 93.642191,2.6934931 89.529511,4.7073031 85.450031,6.7704531 l 15.300629,-5.1394 z" inkscape:connector-curvature="0" sodipodi:nodetypes="csccsccccccsssccc" />  <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3028" d="m 80.764281,58.068863 c -2.45498,-3.50762 -6.58178,-6.10525 -10.40324,-8.66732 c -4.30614,-2.72676 -7.93958,-6.28283 -12.6021,-8.28702 c -7.39912,-4.50257 -11.70055,-7.85592 -20.85866,-9.23429 c -4.9257,-0.85706 -17.294247,-1.32043 -22.226462,-2.15427 c -3.445882,-0.42869 -6.2035918,0.70541 -9.6845138,0.57715 c -1.496337,-0.0586 -2.99355,-0.0965 -4.491229,-0.12472 l 13.9525278,-6.24562 l 3.25,-1.17153 c 1.441459,0.0813 -1.116338,0.15309 0.325505,0.23016 c 3.574557,0.17902 7.211864,0.0695 10.712655,0.73822 c 4.723107,1.08097 9.443947,2.1624 14.234177,3.05317 c 2.76739,0.64203 3.92627,0.87082 6.64127,1.66289 c 4.42146,1.28993 8.60075,3.01513 12.86503,4.58129 c 1.90199,0.73446 5.05193,1.93181 6.89302,2.7216 c 4.92005,2.11061 9.5916,4.57045 13.9716,7.31023 c 4.16708,2.62011 8.48023,5.20033 11.72012,8.56863 z" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccccccccccscsccc" /></svg>'},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null!==this.svgNodes&&this.svgNodes.attr({fill:this.color.hash()}),this._super(t))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.arrow.CalligrapherArrowDownLeft=r.default.SVGFigure.extend({NAME:"draw2d.shape.arrow.CalligrapherArrowDownLeft",init:function(t,e,n){this._super(t)},getSVG:function(){return'<svg width="180" height="300" xmlns="http://www.w3.org/2000/svg" version="1.1">     <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3084" d="m 159.63578,17.846597 c 0.43137,9.44641 -0.0636,18.88035 -0.8284,28.30165 c -1.73211,18.38336 -4.05381,36.71698 -6.08253,55.075313 c -1.61738,13.7075 -3.03402,27.43467 -3.97611,41.19113 c -1.09101,11.16584 -1.31019,22.36559 -1.28541,33.56466 c -0.1328,4.82188 0.3218,9.6468 0.14332,14.46812 c -0.0888,2.39977 -0.28315,3.73625 -0.55012,6.12095 c -0.85848,4.73147 -2.27416,9.40019 -4.7769,13.68272 c -1.47003,2.51544 -3.78493,5.6647 -5.47739,8.05048 c -5.02888,6.66256 -11.08555,12.65652 -18.10552,17.75963 c -4.23302,3.07716 -7.74942,5.12065 -12.22081,7.86298 c -13.253319,6.72606 -25.889792,15.11686 -40.84124,18.60576 c -3.016829,0.7039 -4.431417,0.8157 -7.450859,1.2076 c -6.983246,0.5774 -14.009174,0.3375 -21.010676,0.2509 c -3.278795,-0.033 -6.55749,0.01 -9.835897,0.045 c 0,0 20.838833,-13.2364 20.838833,-13.2364 l 0,0 c 3.147056,0.093 6.294483,0.1852 9.443646,0.2007 c 6.966697,0.011 13.971433,0.1301 20.897176,-0.6344 c 3.732439,-0.5577 7.321215,-1.2431 10.881203,-2.4145 c 1.517208,-0.4992 5.830867,-2.43339 4.487902,-1.6386 c -6.098183,3.6088 -25.104875,12.8748 -9.52514,5.223 c 4.40875,-2.5927 8.262057,-4.7459 12.425175,-7.65986 c 6.839117,-4.78709 12.633657,-10.50427 17.500607,-16.86761 c 2.53518,-3.56692 5.24684,-7.12748 7.07617,-11.03446 c 1.42357,-3.0404 2.21532,-6.28727 2.91146,-9.50152 c 0.91919,-6.88822 1.03991,-13.81392 1.25118,-20.74151 c 0.47683,-11.27871 0.96259,-22.55877 1.61689,-33.83062 c 1.21127,-14.03392 3.64191,-27.94339 5.46543,-41.92167 c 2.26899,-18.186603 4.6835,-36.384373 5.4487,-54.679643 c 0.0788,-2.46092 0.23808,-4.92087 0.23618,-7.38276 c -0.005,-6.45916 -0.62194,-13.00218 -2.13821,-19.32664 c 0,0 23.48134,-10.73998 23.48134,-10.73998 z" inkscape:connector-curvature="0" />     <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3086" d="m 41.271518,252.40239 c 2.465518,-0.7264 4.879503,-1.7726 7.145328,-2.9859 c 0.955597,-0.5117 3.736822,-2.1986 2.791991,-1.6673 c -5.218817,2.9348 -10.409826,5.9187 -15.61474,8.878 c 5.366557,-3.4898 10.227818,-7.6685 14.119927,-12.75576 c 3.507157,-5.09382 4.097613,-11.17122 4.301158,-17.17644 c 0.02635,-3.95844 -0.31227,-7.90612 -0.635377,-11.84752 c 0,0 19.920693,-10.3059 19.920693,-10.3059 l 0,0 c 0.171761,4.05015 0.409899,8.09777 0.50079,12.15101 c -0.185739,6.23619 -0.347804,12.66862 -3.492579,18.24747 c -0.503375,0.75197 -0.961922,1.53596 -1.510126,2.25591 c -3.478528,4.56826 -8.226837,8.04586 -12.757403,11.47443 c -7.345206,4.3297 -14.671333,8.692 -22.035619,12.9891 c -3.551305,2.0723 -7.368692,3.8726 -11.394645,4.7773 c 0,0 18.660602,-14.0344 18.660602,-14.0344 z" inkscape:connector-curvature="0" />     <path style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path3088" d="m 37.815923,255.49919 c 3.41111,0.1581 6.814569,0.2213 10.182693,0.8184 c 6.92998,2.6928 13.533527,6.2357 20.043462,9.8162 c 3.912139,2.1362 7.91195,4.4644 10.690321,8.0298 c 1.039962,1.2802 1.510411,2.7604 1.893523,4.3313 c 0,0 -20.370847,10.9259 -20.370847,10.9259 l 0,0 c -0.225419,-1.2711 -0.55067,-2.4558 -1.329618,-3.5184 c -2.332229,-3.3633 -5.869056,-5.6279 -9.247191,-7.8233 c -6.335066,-3.7106 -12.98611,-7.1834 -20.232784,-8.6836 c -3.497247,-0.3814 -7.011372,-0.4307 -10.521829,-0.1703 c 0,0 18.89227,-13.726 18.89227,-13.726 z" inkscape:connector-curvature="0" /></svg>'},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(null!==this.svgNodes&&this.svgNodes.attr({fill:this.color.hash()}),this._super(t))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.node.Start=r.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.node.Start",DEFAULT_COLOR:new r.default.util.Color("#4D90FE"),init:function(t,e,n){this._super(extend({bgColor:this.DEFAULT_COLOR,color:this.DEFAULT_COLOR.darker(),width:50,height:50},t),e,n),this.createPort("output")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.node.End=r.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.node.End",DEFAULT_COLOR:new r.default.util.Color("#4D90FE"),init:function(t,e,n){this._super(extend({bgColor:this.DEFAULT_COLOR,color:this.DEFAULT_COLOR.darker(),width:50,height:50},t),e,n),this.createPort("input")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.node.Between=r.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.node.Between",DEFAULT_COLOR:new r.default.util.Color("#4D90FE"),init:function(t,e,n){this._super(extend({bgColor:this.DEFAULT_COLOR,color:this.DEFAULT_COLOR.darker(),width:50,height:50},t),e,n),this.createPort("output"),this.createPort("input")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.note.PostIt=r.default.shape.basic.Label.extend({NAME:"draw2d.shape.note.PostIt",init:function(t,e,n){this._super(t,e,n),this.setStroke(1),this.setBackgroundColor("#5b5b5b"),this.setColor("#FFFFFF"),this.setFontColor("#ffffff"),this.setFontSize(14),this.setPadding(5),this.setRadius(5)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.flowchart.Document=r.default.VectorFigure.extend({NAME:"draw2d.shape.flowchart.Document",init:function(t,e,n){this.amplitude=.08,this._super(extend({width:80,height:50,bgColor:"#2196f3",color:"#1B1B1B",stroke:1},t),e,n)},createShapeElement:function(){return this.canvas.paper.path(this.calcPath())},calcPath:function(){var t=this.getWidth(),e=this.getHeight(),n=t/2,i=t/4,r=e*this.amplitude|0;return["M",this.getAbsoluteX(),",",this.getAbsoluteY(),"l",t,",",0,"l",0,",",e-r,"q",-i,",",-r,-n,",",0,"q",-i,",",r,-n,",",0,"z"].join(" ")},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape)return t=extend({},{path:this.calcPath()},t),this._super(t),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.widget.Widget=r.default.SetFigure.extend({init:function(t,e,n){this._super(t,e,n)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i),a=n(3);r.default.shape.widget.Slider=r.default.shape.widget.Widget.extend({NAME:"draw2d.shape.widget.Slider",DEFAULT_COLOR_THUMB:new r.default.util.Color("#bddf69"),DEFAULT_COLOR_BG:new r.default.util.Color("#d3d3d3"),init:function(t,e,n){this.currentValue=0,this.slideBoundingBox=new r.default.geo.Rectangle(0,0,10,20),this.padding={top:4,right:4,bottom:4,left:4},this.panning=!1,this.thumbGrow=0,this._super(extend({width:150,height:15,stroke:1,radius:4,resizeable:!0,color:this.DEFAULT_COLOR_THUMB,bgColor:this.DEFAULT_COLOR_BG,value:50},t),extend({padding:this.setPadding,value:this.setValue},e),extend({padding:this.getPadding,value:this.getValue},n)),this.setMinHeight(15),this.setMinWidth(80)},createSet:function(){var t=this.canvas.paper.set(),e=this.canvas.paper.rect(0,0,10,20);return e.node.style.cursor="col-resize",t.push(e),t},setDimension:function(t,e){this._super(t,e),this.slideBoundingBox.setBoundary(this.padding.left,0,this.getWidth()-this.padding.right,this.getHeight()),this.slideBoundingBox.setHeight(this.getHeight()+1),this.repaint()},setPadding:function(t){return this.clearCache(),"number"==typeof t?this.padding={top:t,right:t,bottom:t,left:t}:extend(this.padding,t),this.repaint(),this.fireEvent("change:padding",{value:this.padding}),this},getPadding:function(){return this.padding},onValueChange:function(t){},onDragStart:function(t,e,n,i){if(this.slideBoundingBox.hitTest(t,e)){this.panningX=t,this.panningY=e,this.panning=!0;var r=new a.Tweenable;return r.tween({from:{grow:this.thumbGrow},to:{grow:10},duration:500,easing:"easeOutQuart",step:function(t){this.thumbGrow=t.grow,this.repaint()}.bind(this),finish:function(){r.dispose()}}),!1}return this._super(t,e,n,i)},onPanning:function(t,e,n,i){var r=this.slideBoundingBox.w/2,a=this.getWidth(),o=a-this.padding.left-this.padding.right,s=Math.min(a,Math.max(0,this.panningX+t)),c=Math.min(a-this.padding.left-this.padding.right,s-this.padding.left)-r;this.setValue(100/o*c)},onPanningEnd:function(){this.panning=!1;var t=new a.Tweenable;t.tween({from:{grow:this.thumbGrow},to:{grow:0},duration:300,easing:"easeOutQuart",step:function(t){this.thumbGrow=t.grow,this.repaint()}.bind(this),finish:function(){t.dispose()}}),this.thumbGrow=0,this.repaint()},setValue:function(t){return this.currentValue=Math.min(Math.max(0,0|t),100),this.repaint(),this.onValueChange(this.currentValue),this.fireEvent("change:value",{value:this.currentValue}),this},getValue:function(){return this.currentValue},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape){t=t||{};var e=(this.getWidth()-this.padding.left-this.padding.right)/100*this.currentValue+this.padding.left|0;if(this.slideBoundingBox.setX(e),null!==this.svgNodes){var n=this.slideBoundingBox.toJSON();n.y-=this.thumbGrow/2,n.height+=this.thumbGrow,n.fill=this.getColor().hash(),n.stroke=this.getColor().darker(.2).hash(),n.r=4,this.svgNodes.attr(n)}t.fill="90-"+this.bgColor.hash()+":5-"+this.bgColor.lighter(.3).hash()+":95",t.stroke=this.bgColor.darker(.1).hash(),this._super(t)}},applyTransformation:function(){this.svgNodes.transform("T"+this.getAbsoluteX()+","+this.getAbsoluteY())}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o),c=n(2),l=i(c);a.default.shape.diagram.Diagram=a.default.SetFigure.extend({init:function(t,e,n){this.data=[],this.cache={},this._super((0,s.default)({data:[],bgColor:"#8dabf2",stroke:1,color:"#f0f0f0",radius:2,resizeable:!0},t),(0,s.default)({},{data:this.setData},e),(0,s.default)({},{data:this.getData},n))},setData:function(t){this.data=t,this.cache={},null!==this.svgNodes&&(this.svgNodes.remove(),this.svgNodes=this.createSet()),this.repaint(),this.fireEvent("change:data",{value:t})},getData:function(){return this.data},setDimension:function(t,e){return this.cache={},this._super(t,e),this},getWidth:function(){return this.width},getHeight:function(){return this.height},repaint:function(t){return!0===this.repaintBlocked||null==this.shape?this:(t=t||{},l.default.ensureDefault(t,"fill","none"),this._super(t))},applyTransformation:function(){return!0===this.isResizeable()?this.svgNodes.transform("S"+this.scaleX+","+this.scaleY+","+this.getAbsoluteX()+","+this.getAbsoluteY()+"t"+this.getAbsoluteX()+","+this.getAbsoluteY()):this.svgNodes.transform("T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.diagram.Pie=a.default.shape.diagram.Diagram.extend({COLORS:["#00A8F0","#b9dd69","#f3546a","#4DA74D","#9440ED"],TWO_PI:2*Math.PI,init:function(t,e,n){this._super((0,s.default)({stroke:0},t),(0,s.default)({diameter:this.setDiameter,radius:this.setRadius},e),(0,s.default)({diameter:this.getDiameter,radius:this.getRadius},n))},setDiameter:function(t){var e=this.getCenter();return this.setDimension(t,t),this.setCenter(e),this.fireEvent("change:diameter",{value:this.width}),this},getDiameter:function(){return this.getWidth()},setRadius:function(t){return this.setDiameter(2*t),this.fireEvent("change:radius",{value:this.width/2}),this},getCenter:function(){var t=this.getDiameter()/2;return this.getPosition().translate(t,t)},setCenter:function(t,e){var n=new a.default.geo.Point(t,e),i=this.getDiameter()/2;return n.translate(-i,-i),this.setPosition(n),this.fireEvent("change:center",{value:{x:t,y:e}}),this},setData:function(t){var e=this;this.sum=0,t.forEach(function(t){e.sum+=t});var n=1/this.sum;return t.forEach(function(e,i){t[i]=n*e}),this._super(t),this.fireEvent("change:data",{value:t}),this},createSet:function(){for(var t=this.getWidth()/2,e=this.data.length,n=this.canvas.paper.set(),i=0,r=0;r<e;r++){var a=this.TWO_PI*this.data[r],o=this.COLORS[r%e],s=this.drawSegment(t,a,i,.1);s.attr({stroke:this.color.hash(),fill:o}),n.push(s),i+=a}return n},setDimension:function(t,e){return t>e?this._super(t,t):this._super(e,e),null!==this.svgNodes&&(this.svgNodes.remove(),this.svgNodes=this.createSet()),this.repaint(),this},polarPath:function(t,e,n){var i,r;return i=t*Math.cos(e+n)+t,r=t*Math.sin(e+n)+t,"L "+i+" "+r+" "},drawSegment:function(t,e,n,i){for(var r="M "+t+" "+t,a=0;a<e;a+=i)r+=this.polarPath(t,a,n);return r+=this.polarPath(t,e,n),r+="L "+t+" "+t,this.getCanvas().paper.path(r)},applyTransformation:function(){return this.svgNodes.transform("T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var a=n(0),o=i(a),s=n(1),c=i(s);o.default.shape.diagram.Sparkline=o.default.shape.diagram.Diagram.extend({init:function(t,e,n){this.min=0,this.max=10,this.padding=4,this._super((0,c.default)({width:180,height:50},t),e,n)},setData:function(t){return t.length>0?(this.min=Math.min.apply(Math,r(t)),this.max=Math.max.apply(Math,r(t))):(this.min=0,this.max=1),this.max==this.min&&(this.max=this.min+1),this._super(t),this.fireEvent("change:data",{value:t}),this},createSet:function(){return this.canvas.paper.path("M0 0 l0 0")},repaint:function(t){var e=this;if(!0!==this.repaintBlocked&&null!==this.shape){t=t||{},t.fill="90-#000:5-#4d4d4d:95";var n=this.padding,i=this.getWidth()-2*n,r=this.getHeight()-2*n,a=this.data.length,o=this.min,s=this.max,c=function(t,e){var c=1;return a>1&&(c=i/(a-1)),{y:-(t-o)/(s-o)*r+r+n,x:n+e*c}};if(null!==this.svgNodes&&void 0===this.cache.pathString){var l=null;this.data.forEach(function(t,n){var i=c(t,n);e.cache.pathString=null===l?["M",i.x,i.y].join(" "):[e.cache.pathString,"L",i.x,i.y].join(" "),l=i}),this.svgNodes.attr({path:this.cache.pathString,stroke:"#f0f0f0"})}return this._super(t),this}}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.analog.OpAmp=r.default.SVGFigure.extend({NAME:"draw2d.shape.analog.OpAmp",MyInputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent(),i=(8+18.5*t)*n.scaleY;this.applyConsiderRotation(e,1,i)}}),init:function(t,e,n){this._super(extend({stroke:0,bgColor:"#f0f0ff"},t),e,n),this.inputLocator=new this.MyInputPortLocator,this.createPort("input",this.inputLocator),this.createPort("input",this.inputLocator),this.createPort("output")},getSVG:function(){return'<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="50"  height="50"><path d="m8.2627,0l0,35.36035l31.23926,-17.76025l-31.23926,-17.60011l0,0l0,0.00001zm2.27832,27.36719l4.08105,0m-2.10449,-2.20703l0,4.27979m2.26367,-21.35938l-4.15918,0"  stroke="#1B1B1B" fill="none"/><line x1="0.53516"  y1="8"  x2="8.21191"  y2="8"  stroke="#010101"/><line x1="39.14941" y1="18" x2="45.81055" y2="18" stroke="#010101" /><line x1="0.53516"  y1="27" x2="8.21191"  y2="27" stroke="#010101" /></svg>'},repaint:function(t){if(!0!==this.repaintBlocked&&null!==this.shape)return t=t||{},t.fill="none",null!=this.bgColor&&this.svgNodes[0].attr({fill:this.bgColor.hash()}),this._super(t),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.analog.ResistorBridge=r.default.SVGFigure.extend({NAME:"draw2d.shape.analog.ResistorBridge",MyInputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n/2+1,i*t)}}),MyOutputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n*(t-2),i/2)}}),init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n),this.inputLocator=new this.MyInputPortLocator,this.outputLocator=new this.MyOutputPortLocator,this.createPort("hybrid",this.inputLocator),this.createPort("hybrid",this.inputLocator),this.createPort("hybrid",this.outputLocator),this.createPort("hybrid",this.outputLocator)},getSVG:function(){return'<svg  xmlns="http://www.w3.org/2000/svg" version="1.1"><path fill="#010101" stroke="#010101" stroke-miterlimit="14.3" id="path12322" d="m47.62207,22.71094l0,0c0.73145,0.73242 0.71777,1.93359 -0.03027,2.68164c-0.74805,0.74951 -1.94922,0.76123 -2.68073,0.0293c-0.73138,-0.73242 -0.71967,-1.93211 0.03033,-2.68115c0.74707,-0.74803 1.94727,-0.76219 2.68066,-0.02979l0,0z"/><path fill="#010101" stroke="#010101" stroke-miterlimit="14.3" id="path12324" d="m25.84082,0.93115l0,0c0.73145,0.73096 0.71875,1.93359 -0.02832,2.68066c-0.75,0.74951 -1.94922,0.76123 -2.68164,0.0293c-0.73242,-0.73241 -0.71973,-1.93164 0.0293,-2.68065c0.74805,-0.74756 1.94922,-0.76172 2.68066,-0.0293l0,0l0,-0.00002z"/><path fill="#010101" stroke="#010101" stroke-miterlimit="14.3" id="path12326" d="m25.75098,44.58203l0,0c0.73145,0.73193 0.71875,1.93311 -0.02832,2.68115c-0.75,0.74902 -1.94922,0.76074 -2.68262,0.0293c-0.73145,-0.73193 -0.71973,-1.93262 0.03033,-2.68164c0.74707,-0.74756 1.94922,-0.76123 2.68066,-0.02879l0,0l-0.00006,-0.00002z"/><path fill="#010101" stroke="#010101" stroke-miterlimit="14.3" id="path12328" d="m3.9707,22.80127l0,0c0.73242,0.73193 0.71777,1.93359 -0.0293,2.68115c-0.74902,0.74951 -1.94922,0.76172 -2.68164,0.0293c-0.73145,-0.73242 -0.71973,-1.93164 0.03027,-2.68115c0.74707,-0.74707 1.94922,-0.76074 2.68066,-0.0293l0,0z"/><polyline fill="none" stroke="#010101" id="polyline12334" points="24.908203125,45.49267578125 31.71875,38.68310546875 31.2119140625,36.98876953125 34.892578125,37.95703125 33.953125,34.22265625 37.6650390625,35.18359375 36.6767578125,31.52490234375 40.3759765625,32.47314453125 39.873046875,30.52783203125 45.884765625,24.51708984375 " stroke-miterlimit="14.3"/><polyline fill="#010101" id="polyline12338" points="36.3408203125,23.98876953125 38.146484375,29.55810546875 33.630859375,29.55810546875 35.435546875,23.98779296875 "/><line fill="none" stroke="#010101" id="line12340" y2="28.90967" x2="35.8877" y1="41.13428" x1="35.88867" stroke-miterlimit="14.3"/><polyline fill="none" stroke="#010101" id="polyline12346" points="3.2109375,23.79248046875 10.01953125,16.98388671875 9.513671875,15.2890625 13.193359375,16.25732421875 12.251953125,12.5234375 15.9658203125,13.48486328125 14.9775390625,9.82568359375 18.6767578125,10.7734375 18.173828125,8.82958984375 24.185546875,2.81787109375 " stroke-miterlimit="14.3"/><polyline fill="#010101" id="polyline12350" points="13.126953125,23.80419921875 11.3212890625,18.236328125 15.8369140625,18.236328125 14.0322265625,23.806640625 "/><line fill="none" stroke="#010101" id="line12352" y2="18.8833" x2="13.58008" y1="6.65967" x1="13.5791" stroke-miterlimit="14.3"/><polyline fill="none" stroke="#010101" id="polyline12358" points="46.65625,24.33642578125 39.84765625,17.52783203125 38.154296875,18.033203125 39.1220703125,14.353515625 35.3876953125,15.29345703125 36.34765625,11.58056640625 32.689453125,12.56884765625 33.6376953125,8.86865234375 31.6923828125,9.373046875 24.322265625,2.00341796875 " stroke-miterlimit="14.3"/><polyline fill="#010101" id="polyline12362" points="36.578125,1.87109375 38.3828125,7.439453125 33.8681640625,7.439453125 35.6728515625,1.869140625 "/><line fill="none" stroke="#010101" id="line12364" y2="6.7915" x2="36.125" y1="19.01758" x1="36.125" stroke-miterlimit="14.3"/><polyline fill="none" stroke="#010101" id="polyline12370" points="24.494140625,46.49951171875 17.685546875,39.69091796875 15.9921875,40.1953125 16.958984375,36.515625 13.2265625,37.45556640625 14.185546875,33.7421875 10.52734375,34.73193359375 11.474609375,31.03125 9.529296875,31.53515625 2.1611328125,24.166015625 " stroke-miterlimit="14.3"/><polyline fill="#010101" id="polyline12374" points="12.150390625,44.80029296875 10.34765625,39.23193359375 14.861328125,39.23095703125 13.0556640625,44.80224609375 "/><line fill="none" stroke="#010101" id="line12376" y2="39.87891" x2="12.60352" y1="27.6543" x1="12.60352" stroke-miterlimit="14.3"/></svg>'}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.analog.ResistorVertical=r.default.SetFigure.extend({NAME:"draw2d.shape.analog.ResistorVertical",MyInputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n/2,i)}}),MyOutputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth();this.applyConsiderRotation(e,n/2,0)}}),init:function(t,e,n){this._super(extend({width:30,height:50,bgColor:null},t),e,n),this.inputLocator=new this.MyInputPortLocator,this.outputLocator=new this.MyOutputPortLocator,this.createPort("hybrid",this.inputLocator),this.createPort("hybrid",this.outputLocator)},createSet:function(){var t=this._super();return t.push(this.canvas.paper.path("M15,0 L15,5 L0,7.5 L30,10 L0,15 L30,20 L0,25 L30,30 L15,32.5 L15,40")),t}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.analog.VoltageSupplyHorizontal=r.default.SVGFigure.extend({NAME:"draw2d.shape.analog.VoltageSupplyHorizontal",MyInputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getHeight();this.applyConsiderRotation(e,0,n/2)}}),MyOutputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n,i/2)}}),init:function(t,e,n){this._super(extend({width:50,height:30},t),e,n),this.createPort("hybrid",new this.MyInputPortLocator),this.createPort("hybrid",new this.MyOutputPortLocator)},getSVG:function(){return'<svg width="49" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1"><path d="m24.99933,18.95592l0,-9.54576m-5.78374,-9.40907l0,28.35939m-5.78718,-9.40457l0,-9.54576m-5.78374,-9.40907l0,28.35939" id="path10566" stroke-miterlimit="14.3" stroke="#010101" fill="none"/><path d="m26.79878,14.13039l6.90583,0m-33.22691,0l6.90583,0" id="path10568" stroke-miterlimit="14.3" stroke-linecap="square" stroke="#010101" fill="none"/></svg>'}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.analog.VoltageSupplyVertical=r.default.SVGFigure.extend({NAME:"draw2d.shape.analog.VoltageSupplyVertical",MyInputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth(),i=e.getParent().getHeight();this.applyConsiderRotation(e,n/2,i)}}),MyOutputPortLocator:r.default.layout.locator.PortLocator.extend({init:function(){this._super()},relocate:function(t,e){var n=e.getParent().getWidth();this.applyConsiderRotation(e,n/2,0)}}),init:function(t,e,n){this._super(extend({width:30,height:50},t),e,n),this.inputLocator=new this.MyInputPortLocator,this.outputLocator=new this.MyOutputPortLocator,this.createPort("hybrid",this.inputLocator),this.createPort("hybrid",this.outputLocator)},getSVG:function(){return'<svg  xmlns="http://www.w3.org/2000/svg" version="1.1"><path d="m19.62398,12.37594l-9.87926,0m-9.74355,8.22145l29.36289,0m-9.74007,8.22469l-9.87927,0m-9.74355,8.22145l29.36289,0" id="path10560" stroke-miterlimit="14.3" stroke="#010101" fill="none"/><path d="m14.63157,9.81646l0,-9.81646m0,47.2328l0,-9.81646" id="path10562" stroke-miterlimit="14.3" stroke-linecap="square" stroke="#010101" fill="none"/></svg>'}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.layout.Layout=a.default.shape.basic.Rectangle.extend({NAME:"draw2d.shape.layout.Layout",init:function(t,e,n){this.padding={top:0,right:0,bottom:0,left:0},this._super((0,s.default)({bgColor:null,radius:0,stroke:0},t),(0,s.default)({padding:this.setPadding},e),(0,s.default)({padding:this.getPadding},n));var i=this;this.resizeListener=function(t){i.getParent()instanceof a.default.shape.layout.Layout?i.fireEvent("resize"):(i.setDimension(1,1),i.fireEvent("resize"))},this.installEditPolicy(new a.default.policy.figure.AntSelectionFeedbackPolicy)},add:function(t,e,n){return this._super(t,e,n),t.on("resize",this.resizeListener),t.on("change:visibility",this.resizeListener),t.visible=t.visible&&this.visible,this},remove:function(t){var e=this._super(t);return t.off(this.resizeListener),this.setDimension(1,1),e},setPadding:function(t){return"number"==typeof t?this.padding={top:t,right:t,bottom:t,left:t}:(0,s.default)(this.padding,t),this.fireEvent("change:padding",{value:this.padding}),this.setDimension(1,1),this},getPadding:function(){return this.padding},setVisible:function(t){return this.children.each(function(e,n){n.figure.setVisible(t)}),this._super(t),this.setDimension(1,1),this},createCommand:function(t){return t.getPolicy()===a.default.command.CommandType.ROTATE?null:this._super(t)}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.layout.HorizontalLayout=a.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.HorizontalLayout",init:function(t,e,n){this.gap=0;var i=this;this.locator={translate:function(t,e){t.setPosition(t.x+e.x,t.y+e.y)},bind:function(){},unbind:function(){},relocate:function(t,e){for(var n=i.getStroke(),r=n+i.padding.top,a=n+i.padding.left,o=0;o<t;o++){var s=i.children.get(o).figure;s.isVisible()&&(a+=s.getWidth()+i.gap)}e.setPosition(a,r)}},this._super((0,s.default)({width:1,height:1,gap:0},t),(0,s.default)({gap:this.setGap},e),(0,s.default)({gap:this.getGap},n))},add:function(t,e,n){return this._super(t,this.locator,n),this.setDimension(1,1),this},setGap:function(t){return this.gap=t,this.setDimension(1,1),this},getGap:function(){return this.gap},getMinWidth:function(){var t=this,e=2*this.stroke+this.padding.left+this.padding.right,n=0;return this.children.each(function(i,r){r.figure.isVisible()&&(e+=r.figure.isResizeable()?r.figure.getMinWidth():r.figure.getWidth()+n,n=t.gap)}),e},getMinHeight:function(){var t=2*this.stroke+this.padding.top+this.padding.bottom,e=0;return this.children.each(function(t,n){e=Math.max(e,n.figure.isResizeable()?n.figure.getMinHeight():n.figure.getHeight())}),e+t},setDimension:function(t,e){this._super(t,e);var n=this.width-this.getMinWidth();if(n>0)n=n/this.children.getSize()|0,this.children.each(function(t,e){!0===e.figure.isResizeable()&&e.figure.setDimension(e.figure.getMinWidth()+n,e.figure.getHeight())});else{var i=this.getMinHeight();this.children.each(function(t,e){!0===e.figure.isResizeable()&&e.figure.setDimension(1,i)})}return this},getPersistentAttributes:function(){var t=this._super();return t.gap=this.gap,t},setPersistentAttributes:function(t){return this._super(t),"number"==typeof t.gap&&(this.gap=t.gap),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.layout.VerticalLayout=r.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.VerticalLayout",init:function(t,e,n){this.gap=0;var i=this;this.locator={translate:function(t,e){t.setPosition(t.x+e.x,t.y+e.y)},bind:function(){},unbind:function(){},relocate:function(t,e){for(var n=i.getStroke(),r=n+i.padding.top,a=i.padding.left,o=0;o<t;o++){var s=i.children.get(o).figure;s.isVisible()&&(r+=s.getHeight()+i.gap)}e.setPosition(a,r)}},this._super(extend({width:10,height:10},t),extend({gap:this.setGap},e),extend({gap:this.getGap},n))},add:function(t,e,n){return this._super(t,this.locator,n),this.setDimension(1,1),this},setGap:function(t){this.gap=t,this.setDimension(1,1)},getMinWidth:function(){var t=2*this.stroke+this.padding.left+this.padding.right,e=10;return this.children.each(function(t,n){n.figure.isVisible()&&(e=Math.max(e,n.figure.isResizeable()?n.figure.getMinWidth():n.figure.getWidth()))}),e+t},getMinHeight:function(){var t=this,e=0,n=2*this.stroke+this.padding.top+this.padding.bottom,i=0;return this.children.each(function(n,r){r.figure.isVisible()&&(i+=(r.figure.isResizeable()?r.figure.getMinHeight():r.figure.getHeight())+e,e=t.gap)}),i+n},setDimension:function(t,e){this._super(t,e);var n=this.width-this.padding.left-this.padding.right;return n===this._recursiveWidth?this:(this._recursiveWidth=n,this.children.each(function(t,e){e.figure.isResizeable()&&e.figure.isVisible()&&e.figure.setDimension(n,e.figure.getMinHeight())}),delete this._recursiveWidth,this)},getPersistentAttributes:function(){var t=this._super();return t.gap=this.gap,t},setPersistentAttributes:function(t){return this._super(t),"number"==typeof t.gap&&(this.gap=t.gap),this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.layout.TableLayout=r.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.TableLayout",DUMMY_CELL:{getMinHeight:function(){return 1},getMinWidth:function(){return 1},off:function(){}},init:function(t,e,n){var i=this;this.cellLocator={relocate:function(t,e){if(!0!==i.repaintBlocked){var n=e.__cell,r=i.getCellLayout(n.row,n.column),a=i.getWidth(),o=i.getMinWidth(),s=0;a!=o&&(s=(a-o)/i.layoutInfos[0].length*n.column);var c=e.getWidth(),l=e.getHeight(),u=r.x+i.padding.left+r.padding.left+s,h=r.y+i.padding.top+r.padding.top;if(e.isResizeable()){var d=Math.max(e.getMinWidth(),r.w-(r.padding.left+r.padding.right)+s),f=Math.max(e.getMinHeight(),r.h-(r.padding.top+r.padding.bottom));e.setDimension(d,f)}else{switch(r.valign){case"middle":h+=(r.h-(l+r.padding.top+r.padding.bottom))/2;break;case"bottom":h+=r.h-(l+r.padding.top+r.padding.bottom)}switch(r.align){case"center":u=u+(r.w-(c+r.padding.left+r.padding.right))/2+s/2;break;case"right":u=u+(r.w-(c+r.padding.left+r.padding.right))+s}}e.setPosition(u,h)}},bind:function(){},unbind:function(){},translate:function(t,e){t.setPosition(t.x+e.x,t.y+e.y)}},this.padding={top:4,right:4,bottom:4,left:4},this.grid=[],this.layoutInfos=[],this.layoutInfos[0]=[],this.layoutInfos[0][0]={x:0,y:0,w:1,h:1,valign:"top",align:"left"},this._super(extend({stroke:1,resizeable:!1},t),extend({padding:this.setPadding},e),extend({padding:this.getPadding},n))},setCellPadding:function(t,e,n){var i=this.getCellLayout(t,e);return null===i?this:("number"==typeof n?i.padding={top:n,right:n,bottom:n,left:n}:extend(i.padding,n),this.calculateLayout(),this.setDimension(1,1),this)},getCellPadding:function(t,e){var n=this.getCellLayout(t,e);return null===n||void 0===n.padding?{top:0,right:0,bottom:0,left:0}:n.padding},setPadding:function(t){return"number"==typeof t?this.padding={top:t,right:t,bottom:t,left:t}:extend(this.padding,t),this.calculateLayout(),this.setDimension(1,1),this.fireEvent("change:padding",{value:this.padding}),this},getPadding:function(){return this.padding},setCanvas:function(t){return this._super(t),this.calculateLayout(),this.setDimension(2,2),this},add:function(t,e,n){return this._super(t,e,n),this.setDimension(1,1),this},removeRow:function(t){var e=this,n=this.grid.splice(t,1);return n[0].forEach(function(t){e.remove(t)}),this.calculateLayout(),this.setDimension(2,2),n},addRow:function(){var t=[],e=this,n=Array.prototype.slice.call(arguments),i=(this.grid.length,this.grid.length>0?Math.max(this.grid[0].length,n.length):n.length),a=[];n.forEach(function(e,n){"string"==typeof e&&(e=new r.default.shape.basic.Label({text:e})),a.push(e),t.push(e)}),this.grid.push(a),this.grid.forEach(function(t,n){for(var r=i-t.length,a=0;a<r;a++)t.push(e.DUMMY_CELL)});var o=this.repaintBlocked;return this.repaintBlocked=!0,t.forEach(function(t){e.add(t,e.cellLocator)}),this.repaintBlocked=o,this.calculateLayout(),this.setDimension(1,1),this},getMinWidth:function(){if(null===this.canvas||0===this.layoutInfos.length)return 10;var t=this.layoutInfos[this.layoutInfos.length-1],e=t[t.length-1];return e.w+e.x+this.padding.left+this.padding.right},getMinHeight:function(){if(null===this.canvas||0===this.layoutInfos.length)return 10;var t=this.layoutInfos[this.layoutInfos.length-1],e=t[t.length-1];return e.h+e.y+this.padding.top+this.padding.bottom},setCellVerticalAlign:function(t,e,n){var i=this.getCellLayout(t,e);if(null!==i){switch(n){case"top":case"middle":case"bottom":i.valign=n,this.calculateLayout(),this.setDimension(1,1)}return this}},getCellVerticalAlign:function(t,e){var n=this.getCellLayout(t,e);return null===n?"top":n.valign},setCellAlign:function(t,e,n){var i=this.getCellLayout(t,e);if(null!==i){switch(n){case"left":case"center":case"right":i.align=n,this.calculateLayout(),this.setDimension(1,1)}return this}},getCellAlign:function(t,e){var n=this.getCellLayout(t,e);return null===n?"left":n.align},getCellLayout:function(t,e){if(t<0||e<0)return null;if(t>=this.layoutInfos.length)return null;var n=this.layoutInfos[t];return e>=n.length?null:n[e]},calculateLayout:function(){for(var t=this.grid.length,e=this.grid.length>0?this.grid[0].length:0,n=[],i=0;i<t;i++){n[i]=[];for(var r=0;r<e;r++)n[i][r]={width:0,height:0,x:0,y:0,valign:this.getCellVerticalAlign(i,r),align:this.getCellAlign(i,r),padding:this.getCellPadding(i,r)}}var a=new Array(e+1).join("0").split("").map(parseFloat),o=new Array(t+1).join("0").split("").map(parseFloat);this.grid.forEach(function(t,i){for(var r=0;r<e;r++){var s=n[i][r],c=t[r];c.__cell={row:i,column:r},o[i]=Math.max(o[i],c.getMinHeight()+s.padding.top+s.padding.bottom),a[r]=Math.max(a[r],c.getMinWidth()+s.padding.left+s.padding.right)}});var s=0,c=0;for(i=0;i<t;i++){for(r=0;r<e;r++){var l=n[i][r];l.w=a[r],l.h=o[i],l.x=s,l.y=c,s+=l.w}c+=o[i],s=0}return this.layoutInfos=n,this}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.layout.FlexGridLayout=a.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.FlexGridLayout",init:function(t,e,n){var i=this;this.cellLocator={relocate:function(t,e){!0===i.gridDef.layoutRequired&&i._layout();var n=e.__cellConstraint,r=n.x,a=n.y;if(e.isResizeable())e.setDimension(Math.max(e.getMinWidth(),n.width),Math.max(e.getMinHeight(),n.height));else{switch(n.valign){case"middle":a+=(n.height-e.getHeight())/2;break;case"bottom":a+=n.height-e.getHeight()}switch(n.align){case"center":r+=(n.width-e.getWidth())/2;break;case"right":r+=n.width-e.getWidth()}}e.setPosition(r,a)},bind:function(){},unbind:function(){},translate:function(t,e){t.setPosition(t.x+e.x,t.y+e.y)}},this.debug=!1,this.gridDef={debugLines:[],def_cols:[],def_rows:[],min_height:[],min_width:[],minGridWidth:10,minGridHeight:10,hResizeable:!1,vResizeable:!1,layoutRequired:!0},this._super((0,s.default)({stroke:2},t),(0,s.default)({},e),(0,s.default)({},n)),this.resizeListener=function(t){i.gridDef.layoutRequired=!0,i.getParent()instanceof a.default.shape.layout.Layout?i.fireEvent("resize"):i.setDimension(!0===i.gridDef.hResizeable?i.getWidth():1,!0===i.gridDef.vResizeable?i.getHeight():1)};for(var r=t.rows.split(","),o=t.columns.split(","),c=0;c<o.length;c++)this.gridDef.def_cols[c]=this.cellWidthFromDef(o[c]);for(var c=0;c<r.length;c++)this.gridDef.def_rows[c]=this.cellWidthFromDef(r[c]);this.installEditPolicy(new a.default.policy.figure.RectangleSelectionFeedbackPolicy)},add:function(t,e){t.__cellConstraint=(0,s.default)({},{row:0,col:0,rowspan:1,colspan:1,align:"left",valign:"top",width:1,height:1},e),this.gridDef.layoutRequired=!0,this._super(t,this.cellLocator),this._layout()},getMinWidth:function(){return this.gridDef.minGridWidth},getMinHeight:function(){return this.gridDef.minGridHeight},setCanvas:function(t){return this.gridDef.layoutRequired=!0,this._super(t),this},repaint:function(t){return!0===this.repaintBlocked||null===this.shape?this:(this._super(t),this.debug&&this.paintDebugGrid(),this)},setDimension:function(t,e){return!0===this.gridDef.layoutRequired&&this._layout(),this._super(t,e),this.gridDef.layoutRequired=!0,this.repaint(),this},_layout:function(){this.gridDef.layoutRequired=!1;var t=this.getChildren();this.gridDef.min_height=this.gridDef.def_rows.slice(0),this.gridDef.min_width=this.gridDef.def_cols.slice(0);for(var e=0;e<t.getSize();e++){var n=t.get(e),i=n.__cellConstraint;if(this.gridDef.min_width[i.col]=Math.max(this.gridDef.min_width[i.col],n.getMinWidth()),i.rowspan>1){var r=n.getMinHeight(),a=this.cellHeight(i.row,i.row+i.rowspan);if(a<r){var o=r-a;this.gridDef.min_height[i.row+i.rowspan-1]=this.gridDef.min_height[i.row+i.rowspan-1]+o}}else this.gridDef.min_height[i.row]=Math.max(this.gridDef.min_height[i.row],n.getMinHeight())}this.gridDef.minGridWidth=this._getGridWidth(),this.gridDef.minGridHeight=this._getGridHeight();for(var s=this._getGridHeight(),e=0;e<this.gridDef.def_rows.length;e++)if(-1===this.gridDef.def_rows[e]){this.gridDef.min_height[e]=this.gridDef.min_height[e]+Math.max(0,this.getHeight()-s),this.gridDef.vResizeable=!0;break}for(var c=this._getGridWidth(),e=0;e<this.gridDef.def_cols.length;e++)if(-1===this.gridDef.def_cols[e]){this.gridDef.min_width[e]=this.gridDef.min_width[e]+Math.max(0,this.getWidth()-c),this.gridDef.hResizeable=!0;break}for(var e=0;e<t.getSize();e++){var i=t.get(e).__cellConstraint;i.width=this.cellWidth(i.col,i.col+i.colspan),i.height=this.cellHeight(i.row,i.row+i.rowspan),i.x=this.cellX(i.col),i.y=this.cellY(i.row)}return this},cellX:function(t){for(var e=0,n=0;n<t;n++)e+=this.gridDef.min_width[n];return e},cellY:function(t){for(var e=0,n=0;n<t;n++)e+=this.gridDef.min_height[n];return e},cellWidth:function(t,e){for(var n=0,i=t;i<e;i++)n+=this.gridDef.min_width[i];return n},cellHeight:function(t,e){for(var n=0,i=t;i<e;i++)n+=this.gridDef.min_height[i];return n},paintDebugGrid:function(){for(var t=0;t<this.gridDef.debugLines.length;t++)this.gridDef.debugLines[t].remove();this.gridDef.debugLines=[];for(var e=this._getGridHeight(),n=this._getGridWidth(),i=this.getAbsoluteX(),r=this.getAbsoluteY(),a=i,t=0;t<=this.gridDef.min_width.length;t++){var o=this.canvas.paper.path("M "+a+" "+r+" l 0 "+e).attr({stroke:"#FF0000","stroke-width":1});this.gridDef.debugLines.push(o),t<this.gridDef.min_width.length&&(a+=this.gridDef.min_width[t])}for(var s=r,t=0;t<=this.gridDef.min_height.length;t++){var o=this.canvas.paper.path("M "+i+" "+s+" l "+n+" 0").attr({stroke:"#FF0000","stroke-width":1});this.gridDef.debugLines.push(o),t<this.gridDef.min_height.length&&(s+=this.gridDef.min_height[t])}},_getGridWidth:function(){for(var t=0,e=0;e<this.gridDef.min_width.length;e++)t+=this.gridDef.min_width[e];return t},_getGridHeight:function(){for(var t=0,e=0;e<this.gridDef.min_height.length;e++)t+=this.gridDef.min_height[e];return t},cellWidthFromDef:function(t){var e=new RegExp("(\\d+)(?:px)?"),n=t.match(e);return null!=n?parseInt(n[1]):(e=new RegExp("p(?:ref)?"),null!=(n=t.match(e))?0:(e=new RegExp("g(?:row)?"),n=t.match(e),null!=n?(this.autoResize=!1,-1):0))}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.layout.StackLayout=a.default.shape.layout.Layout.extend({NAME:"draw2d.shape.layout.StackLayout",init:function(t,e,n){this.visibleLayer=0,this.locator=new a.default.layout.locator.XYAbsPortLocator(0,0),this._super((0,s.default)({resizeable:!0,width:10,height:10},t),(0,s.default)({},e),(0,s.default)({},n)),this.resizeListener=function(t){},this.installEditPolicy(new a.default.policy.figure.RectangleSelectionFeedbackPolicy)},setVisibleLayer:function(t,e){return this.getChildren().get(this.visibleLayer).setVisible(!1,e),this.visibleLayer=Math.min(this.getChildren().getSize()-1,Math.max(0,t)),this.getChildren().get(this.visibleLayer).setVisible(!0,e),this},getVisibleLayer:function(){return this.visibleLayer},add:function(t,e,n){return t.hitTest=function(){return!1},this.getChildren().each(function(t,e){e.setVisible(!1)}),this.visibleLayer=this.getChildren().getSize(),this._super(t,this.locator,n)},setVisible:function(t){return a.default.shape.basic.Rectangle.prototype.setVisible.call(this,t),this},getMinWidth:function(){var t=2*this.stroke+this.padding.left+this.padding.right,e=10;return this.children.each(function(t,n){e=Math.max(e,n.figure.isResizeable()?n.figure.getMinWidth():n.figure.getWidth())}),e+t},getMinHeight:function(){var t=2*this.stroke+this.padding.top+this.padding.bottom,e=10;return this.children.each(function(t,n){e=Math.max(e,n.figure.isResizeable()?n.figure.getMinHeight():n.figure.getHeight())}),e+t},setDimension:function(t,e){this._super(t,e);var n=this.width-this.padding.left-this.padding.right,i=this.height-this.padding.top-this.padding.bottom;return n===this._recursiveWidth&&i===this._recursiveHeight?this:(this._recursiveHeight=i,this._recursiveWidth=n,this.children.each(function(t,e){e.figure.isResizeable()&&e.figure.setDimension(n,i)}),delete this._recursiveHeight,delete this._recursiveWidth,this)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Icon=r.default.SetFigure.extend({NAME:"draw2d.shape.icon.Icon",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n),this.setBackgroundColor("#333333"),this.keepAspectRatio=!1},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},t.fill="none",null!==this.svgNodes&&this.svgNodes.attr({fill:this.bgColor.hash(),stroke:"none"}),this._super(t))},applyTransformation:function(){var t=[];if(0!==this.rotationAngle&&t.push("R"+this.rotationAngle),90===this.getRotationAngle()||270===this.getRotationAngle()){var e=this.getHeight()/this.getWidth();t.push("T"+-this.offsetY+","+-this.offsetX),t.push("S"+e+","+1/e+",0,0")}else t.push("T"+-this.offsetX+","+-this.offsetY);!0===this.isResizeable()?t.push("T"+this.getAbsoluteX()+","+this.getAbsoluteY()+"S"+this.scaleX+","+this.scaleY+","+this.getAbsoluteX()+","+this.getAbsoluteY()):t.push("T"+this.getAbsoluteX()+","+this.getAbsoluteY()),this.svgNodes.transform(t.join(" "))},createShapeElement:function(){var t=this._super(),e=this.svgNodes.getBBox();return this.offsetX=e.x,this.offsetY=e.y,t}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Thunder=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Thunder",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h5.271l-2.166,3.398l1.977-0.411L10,30.875l9.138-10.102L17,21l2.167-2.023h4.269c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Snow=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Snow",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM16.667,24.09l1.119-1.119c0.389-0.391,0.389-1.025,0-1.416c-0.392-0.391-1.025-0.391-1.415,0l-1.119,1.119l-1.119-1.119c-0.391-0.391-1.025-0.391-1.415,0c-0.391,0.391-0.391,1.025,0,1.416l1.118,1.117l-1.12,1.121c-0.389,0.393-0.389,1.021,0,1.414c0.195,0.188,0.451,0.293,0.707,0.293c0.256,0,0.512-0.104,0.708-0.293l1.12-1.119l1.12,1.119c0.195,0.188,0.451,0.293,0.708,0.293c0.256,0,0.512-0.104,0.707-0.293c0.391-0.396,0.391-1.021,0-1.414L16.667,24.09zM25.119,21.817c-0.393-0.392-1.025-0.392-1.415,0l-1.12,1.121l-1.12-1.121c-0.391-0.392-1.022-0.392-1.414,0c-0.39,0.392-0.39,1.022,0,1.416l1.119,1.119l-1.119,1.119c-0.39,0.391-0.39,1.022,0,1.413c0.195,0.195,0.451,0.294,0.707,0.294c0.257,0,0.513-0.099,0.707-0.294l1.12-1.118l1.12,1.118c0.194,0.195,0.45,0.294,0.707,0.294c0.256,0,0.513-0.099,0.708-0.294c0.389-0.391,0.389-1.022,0-1.413l-1.12-1.119l1.12-1.119C25.507,22.842,25.507,22.209,25.119,21.817zM9.334,23.953l1.119-1.119c0.389-0.394,0.389-1.021,0-1.414c-0.391-0.394-1.025-0.394-1.415,0l-1.119,1.119l-1.12-1.121c-0.391-0.39-1.023-0.39-1.415,0c-0.391,0.396-0.391,1.024,0,1.418l1.119,1.117l-1.12,1.118c-0.391,0.394-0.391,1.025,0,1.414c0.196,0.195,0.452,0.293,0.708,0.293c0.256,0,0.511-0.098,0.707-0.293l1.12-1.119l1.121,1.121c0.195,0.195,0.451,0.293,0.707,0.293s0.513-0.098,0.708-0.293c0.389-0.391,0.389-1.022,0-1.416L9.334,23.953z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Hail=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Hail",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM11.503,23.709c-0.784-0.002-1.418-0.636-1.418-1.416c0-0.785,0.634-1.416,1.418-1.418c0.78,0.002,1.413,0.633,1.416,1.418C12.917,23.073,12.284,23.707,11.503,23.709zM19.002,23.709c-0.783-0.002-1.418-0.636-1.418-1.416c0-0.785,0.635-1.416,1.418-1.418c0.779,0.002,1.414,0.633,1.414,1.418C20.417,23.073,19.784,23.707,19.002,23.709zM7.503,28.771c-0.783-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.415,0.635,1.415,1.416C8.917,28.135,8.284,28.77,7.503,28.771zM15.001,28.771c-0.782-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.413,0.635,1.415,1.416C16.415,28.135,15.784,28.77,15.001,28.771zM22.5,28.771c-0.782-0.002-1.416-0.634-1.416-1.416c0-0.785,0.634-1.418,1.416-1.42c0.781,0.002,1.414,0.635,1.418,1.42C23.915,28.138,23.282,28.77,22.5,28.771z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Rain=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Rain",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.874c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979zM9.029,26.682c0-1.115,0.021-5.425,0.021-5.432c0.002-0.409-0.247-0.779-0.628-0.932c-0.38-0.152-0.815-0.059-1.099,0.24c-0.006,0.008-1.037,1.098-2.081,2.342c-0.523,0.627-1.048,1.287-1.463,1.896c-0.399,0.648-0.753,1.066-0.811,1.885C2.971,28.355,4.324,29.711,6,29.714C7.672,29.71,9.029,28.354,9.029,26.682zM4.971,26.727c0.091-0.349,1.081-1.719,1.993-2.764c0.025-0.029,0.051-0.061,0.076-0.089c-0.005,1.124-0.01,2.294-0.01,2.808c0,0.567-0.461,1.028-1.029,1.03C5.447,27.71,4.997,27.273,4.971,26.727zM16.425,26.682c0-1.115,0.021-5.424,0.021-5.43c0.002-0.41-0.247-0.779-0.628-0.934c-0.381-0.152-0.814-0.058-1.1,0.242c-0.006,0.008-1.035,1.094-2.08,2.342c-0.522,0.623-1.047,1.285-1.463,1.894c-0.399,0.649-0.753,1.068-0.809,1.888c0,1.672,1.354,3.028,3.029,3.028C15.068,29.711,16.425,28.354,16.425,26.682zM12.365,26.729c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.03,0.05-0.06,0.075-0.089c-0.005,1.123-0.011,2.294-0.011,2.807c-0.002,0.568-0.461,1.027-1.028,1.029C12.84,27.709,12.392,27.273,12.365,26.729zM23.271,20.317c-0.38-0.153-0.816-0.06-1.099,0.24c-0.009,0.008-1.037,1.097-2.08,2.342c-0.523,0.625-1.049,1.285-1.462,1.896c-0.402,0.649-0.754,1.067-0.812,1.886c0,1.672,1.354,3.029,3.03,3.029c1.673,0,3.027-1.357,3.027-3.029c0-1.115,0.022-5.425,0.022-5.431C23.9,20.84,23.651,20.47,23.271,20.317zM21.879,26.681c-0.004,0.568-0.463,1.027-1.031,1.029c-0.553-0.002-1.002-0.438-1.028-0.982c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.028,0.05-0.059,0.074-0.088C21.883,24.998,21.879,26.167,21.879,26.681z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Cloudy=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Cloudy",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.378,6.781c0.41,0.988,1.938,0.346,1.524-0.648C15.708,5.667,15.515,5.2,15.32,4.734c-0.289-0.695-0.875-3.233-2.042-2.747c-1.03,0.433-0.128,1.846,0.142,2.494C13.739,5.248,14.059,6.015,14.378,6.781M20.8,7.223c1.094,0.453,1.538-1.551,1.813-2.216c0.281-0.677,1.478-2.565,0.357-3.029c-1.092-0.453-1.537,1.548-1.813,2.216C20.876,4.872,19.68,6.757,20.8,7.223M18.137,6.692c1.183,0,0.829-2.019,0.829-2.742c0-0.732,0.383-2.935-0.829-2.935c-1.183,0-0.828,2.019-0.828,2.742C17.309,4.49,16.926,6.692,18.137,6.692M23.058,8.729c0.852,0.85,2.142-0.972,2.659-1.49c0.512-0.513,2.187-1.687,1.352-2.524c-0.834-0.836-2.013,0.843-2.522,1.353C24.028,6.585,22.198,7.874,23.058,8.729M24.565,10.986c0.448,1.091,2.183-0.01,2.849-0.286c0.676-0.28,2.858-0.771,2.394-1.89c-0.455-1.091-2.181,0.008-2.849,0.285C26.281,9.377,24.102,9.866,24.565,10.986M12.036,8.742c0.752,0.75,1.932-0.415,1.17-1.173c-0.253-0.347-0.646-0.645-0.949-0.946c-0.541-0.539-2.162-2.799-3.068-1.889c-0.79,0.791,0.586,1.755,1.083,2.25C10.859,7.57,11.447,8.156,12.036,8.742M29.365,17.397c-0.768-0.317-1.534-0.635-2.302-0.952c-0.646-0.268-2.07-1.169-2.495-0.135c-0.481,1.168,2.054,1.747,2.751,2.035c0.455,0.188,0.911,0.377,1.367,0.565C29.7,19.331,30.379,17.816,29.365,17.397M29.942,12.817c-0.83,0-1.66,0-2.49,0c-0.701,0-2.357-0.288-2.355,0.83c0,1.262,2.567,0.827,3.319,0.827c0.493,0,0.986,0,1.479-0.001C30.99,14.473,31.043,12.815,29.942,12.817M24.234,18.568c-0.673-0.673-1.773,0.189-1.281,1.007c-0.295-0.264-0.614-0.499-0.961-0.69c3.894-2.866,3.328-9.006-1.021-11.107c-2.024-0.978-4.481-0.828-6.368,0.394c-0.871,0.564-1.603,1.336-2.119,2.236c-0.262,0.456-0.468,0.943-0.612,1.449c-0.074,0.258-0.131,0.521-0.172,0.786c-0.083,0.534-0.109,0.553-0.553,0.871c-0.182-0.957-1.64-0.675-2.326-0.674c-0.815,0.001-1.963-0.217-2.752,0.046c-0.867,0.289-0.652,1.615,0.263,1.613c0.324,0.052,0.701-0.001,1.028-0.001c0.904-0.001,1.809-0.002,2.713-0.003c-0.308,0.352-0.496,0.969-0.94,0.77c-0.467-0.209-0.978-0.319-1.49-0.319c-0.951,0-1.877,0.375-2.561,1.036c-0.681,0.658-1.088,1.569-1.123,2.516c-0.944,0.31-1.791,0.891-2.421,1.658c-2.756,3.354-0.265,8.554,4.058,8.554v-0.002c3.597,0,7.194,0,10.792,0c1.341,0,2.843,0.167,4.168-0.113c3.652-0.772,5.361-5.21,3.133-8.229c0.548,0.547,1.096,1.094,1.644,1.641c0.183,0.183,0.364,0.424,0.575,0.574c0.552,0.552,1.524,0.066,1.403-0.713c-0.097-0.622-1.042-1.267-1.448-1.673C25.319,19.652,24.776,19.11,24.234,18.568M18.137,8.787c4.559,0.009,6.576,5.979,2.912,8.734c-0.637-3.505-4.161-5.824-7.629-5.03C13.943,10.367,15.852,8.792,18.137,8.787M22.895,24.08c-0.633,3.346-4.149,2.879-6.68,2.879c-3.017,0-6.033,0-9.049,0c-0.767,0-1.62,0.084-2.373-0.095c-2.274-0.538-3.416-3.242-2.172-5.235c0.678-1.087,1.568-1.19,2.626-1.67c0.604-0.273,0.456-0.807,0.456-1.331c0.002-0.597,0.284-1.169,0.756-1.533c0.787-0.608,1.943-0.497,2.611,0.234c1.098,1.205,1.96-1.346,2.507-1.893c2.025-2.025,5.475-1.708,7.068,0.684c0.344,0.516,0.581,1.102,0.693,1.712c0.097,0.529-0.115,1.341,0.188,1.796c0.291,0.47,0.943,0.463,1.397,0.68c0.508,0.23,0.963,0.591,1.304,1.034C22.834,22.125,23.064,23.107,22.895,24.08M6.906,9.917c0.881,0.364,1.763,0.727,2.644,1.091c0.353,0.146,0.707,0.292,1.06,0.437c0.997,0.412,1.637-1.119,0.642-1.526C10.47,9.441,9.456,9.177,8.609,8.828c-0.354-0.146-0.707-0.292-1.06-0.437C6.554,7.98,5.912,9.505,6.906,9.917")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Sun=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Sun",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.502,7.504c-4.35,0-7.873,3.523-7.873,7.873c0,4.347,3.523,7.872,7.873,7.872c4.346,0,7.871-3.525,7.871-7.872C23.374,11.027,19.85,7.504,15.502,7.504zM15.502,21.25c-3.244-0.008-5.866-2.63-5.874-5.872c0.007-3.243,2.63-5.866,5.874-5.874c3.242,0.008,5.864,2.631,5.871,5.874C21.366,18.62,18.744,21.242,15.502,21.25zM15.502,6.977c0.553,0,1-0.448,1-1.001V1.125c-0.002-0.553-0.448-1-1-1c-0.553,0-1.001,0.449-1,1.002v4.85C14.502,6.528,14.949,6.977,15.502,6.977zM18.715,7.615c0.125,0.053,0.255,0.076,0.382,0.077c0.394,0,0.765-0.233,0.925-0.618l1.856-4.483c0.21-0.511-0.031-1.095-0.541-1.306c-0.511-0.211-1.096,0.031-1.308,0.541L18.174,6.31C17.963,6.82,18.205,7.405,18.715,7.615zM21.44,9.436c0.195,0.194,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293l3.43-3.433c0.391-0.39,0.39-1.023,0-1.415c-0.392-0.39-1.025-0.39-1.415,0.002L21.44,8.021C21.049,8.412,21.049,9.045,21.44,9.436zM23.263,12.16c0.158,0.385,0.531,0.617,0.923,0.617c0.127,0,0.257-0.025,0.383-0.078l4.48-1.857c0.511-0.211,0.753-0.797,0.541-1.307s-0.796-0.752-1.307-0.54l-4.481,1.857C23.292,11.064,23.051,11.65,23.263,12.16zM29.752,14.371l-4.851,0.001c-0.552,0-1,0.448-0.998,1.001c0,0.553,0.447,0.999,0.998,0.999l4.852-0.002c0.553,0,0.999-0.449,0.999-1C30.752,14.817,30.304,14.369,29.752,14.371zM29.054,19.899l-4.482-1.854c-0.512-0.212-1.097,0.03-1.307,0.541c-0.211,0.511,0.031,1.096,0.541,1.308l4.482,1.854c0.126,0.051,0.256,0.075,0.383,0.075c0.393,0,0.765-0.232,0.925-0.617C29.806,20.695,29.563,20.109,29.054,19.899zM22.86,21.312c-0.391-0.391-1.023-0.391-1.414,0.001c-0.391,0.39-0.39,1.022,0,1.413l3.434,3.429c0.195,0.195,0.45,0.293,0.706,0.293s0.513-0.098,0.708-0.293c0.391-0.392,0.389-1.025,0-1.415L22.86,21.312zM20.029,23.675c-0.211-0.511-0.796-0.752-1.307-0.541c-0.51,0.212-0.752,0.797-0.54,1.308l1.86,4.48c0.159,0.385,0.531,0.617,0.925,0.617c0.128,0,0.258-0.024,0.383-0.076c0.511-0.211,0.752-0.797,0.54-1.309L20.029,23.675zM15.512,23.778c-0.553,0-1,0.448-1,1l0.004,4.851c0,0.553,0.449,0.999,1,0.999c0.553,0,1-0.448,0.998-1l-0.003-4.852C16.511,24.226,16.062,23.777,15.512,23.778zM12.296,23.142c-0.51-0.21-1.094,0.031-1.306,0.543l-1.852,4.483c-0.21,0.511,0.033,1.096,0.543,1.307c0.125,0.052,0.254,0.076,0.382,0.076c0.392,0,0.765-0.234,0.924-0.619l1.853-4.485C13.051,23.937,12.807,23.353,12.296,23.142zM9.57,21.325c-0.392-0.391-1.025-0.389-1.415,0.002L4.729,24.76c-0.391,0.392-0.389,1.023,0.002,1.415c0.195,0.194,0.45,0.292,0.706,0.292c0.257,0,0.513-0.098,0.708-0.293l3.427-3.434C9.961,22.349,9.961,21.716,9.57,21.325zM7.746,18.604c-0.213-0.509-0.797-0.751-1.307-0.54L1.96,19.925c-0.511,0.212-0.752,0.798-0.54,1.308c0.16,0.385,0.531,0.616,0.924,0.616c0.127,0,0.258-0.024,0.383-0.076l4.479-1.861C7.715,19.698,7.957,19.113,7.746,18.604zM7.1,15.392c0-0.553-0.447-0.999-1-0.999l-4.851,0.006c-0.553,0-1.001,0.448-0.999,1.001c0.001,0.551,0.449,1,1,0.998l4.852-0.006C6.654,16.392,7.102,15.942,7.1,15.392zM1.944,10.869l4.485,1.85c0.125,0.053,0.254,0.076,0.381,0.076c0.393,0,0.766-0.232,0.925-0.618c0.212-0.511-0.032-1.097-0.544-1.306L2.708,9.021c-0.511-0.21-1.095,0.032-1.306,0.542C1.19,10.074,1.435,10.657,1.944,10.869zM8.137,9.451c0.195,0.193,0.449,0.291,0.705,0.291s0.513-0.098,0.709-0.295c0.391-0.389,0.389-1.023-0.004-1.414L6.113,4.609C5.723,4.219,5.088,4.221,4.699,4.612c-0.391,0.39-0.389,1.024,0.002,1.414L8.137,9.451zM10.964,7.084c0.16,0.384,0.532,0.615,0.923,0.615c0.128,0,0.258-0.025,0.384-0.077c0.51-0.212,0.753-0.798,0.54-1.307l-1.864-4.479c-0.212-0.51-0.798-0.751-1.308-0.539C9.129,1.51,8.888,2.096,9.1,2.605L10.964,7.084z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Undo=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Undo",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M12.981,9.073V6.817l-12.106,6.99l12.106,6.99v-2.422c3.285-0.002,9.052,0.28,9.052,2.269c0,2.78-6.023,4.263-6.023,4.263v2.132c0,0,13.53,0.463,13.53-9.823C29.54,9.134,17.952,8.831,12.981,9.073z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Detour=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Detour",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M29.342,15.5l-7.556-4.363v2.614H18.75c-1.441-0.004-2.423,1.002-2.875,1.784c-0.735,1.222-1.056,2.561-1.441,3.522c-0.135,0.361-0.278,0.655-0.376,0.817c-1.626,0-0.998,0-2.768,0c-0.213-0.398-0.571-1.557-0.923-2.692c-0.237-0.676-0.5-1.381-1.013-2.071C8.878,14.43,7.89,13.726,6.75,13.75H2.812v3.499c0,0,0.358,0,1.031,0h2.741c0.008,0.013,0.018,0.028,0.029,0.046c0.291,0.401,0.634,1.663,1.031,2.888c0.218,0.623,0.455,1.262,0.92,1.897c0.417,0.614,1.319,1.293,2.383,1.293H11c2.25,0,1.249,0,3.374,0c0.696,0.01,1.371-0.286,1.809-0.657c1.439-1.338,1.608-2.886,2.13-4.127c0.218-0.608,0.453-1.115,0.605-1.314c0.006-0.01,0.012-0.018,0.018-0.025h2.85v2.614L29.342,15.5zM10.173,14.539c0.568,0.76,0.874,1.559,1.137,2.311c0.04,0.128,0.082,0.264,0.125,0.399h2.58c0.246-0.697,0.553-1.479,1.005-2.228c0.252-0.438,0.621-0.887,1.08-1.272H9.43C9.735,14.003,9.99,14.277,10.173,14.539z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Merge=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Merge",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M29.342,15.5l-7.556-4.363v2.613h-1.411c-0.788-0.01-1.331-0.241-2.019-0.743c-1.021-0.745-2.094-2.181-3.551-3.568C13.367,8.06,11.291,6.73,8.5,6.749H2.812v3.5H8.5c2.231,0.012,3.441,1.185,5.07,2.934c0.697,0.753,1.428,1.58,2.324,2.323c-1.396,1.165-2.412,2.516-3.484,3.501c-1.183,1.081-2.202,1.723-3.912,1.741H2.813v3.5h5.716c3.752,0.001,6.035-2.319,7.619-4.066c0.817-0.895,1.537-1.691,2.209-2.191c0.686-0.502,1.23-0.732,2.017-0.742h1.412v2.614L29.342,15.5z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Split=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Split",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.786,20.698c-1.792-0.237-2.912-1.331-4.358-2.886c-0.697-0.751-1.428-1.577-2.324-2.319c1.396-1.165,2.411-2.519,3.483-3.503c1.01-0.92,1.901-1.519,3.199-1.688v2.574l7.556-4.363L21.786,4.15v2.652c-3.34,0.266-5.45,2.378-6.934,4.013c-0.819,0.896-1.537,1.692-2.212,2.192c-0.685,0.501-1.227,0.731-2.013,0.742c-0.001,0-0.002,0-0.003,0H2.812v3.5h0.001v0.001c0,0,0.046-0.001,0.136-0.001h7.677c0.786,0.011,1.33,0.241,2.017,0.743c1.021,0.743,2.095,2.181,3.552,3.568c1.312,1.258,3.162,2.46,5.592,2.649v2.664l7.556-4.36l-7.556-4.361V20.698z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Fork=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Fork",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M13.741,10.249h8.045v2.627l7.556-4.363l-7.556-4.363v2.598H9.826C11.369,7.612,12.616,8.922,13.741,10.249zM21.786,20.654c-0.618-0.195-1.407-0.703-2.291-1.587c-1.79-1.756-3.712-4.675-5.731-7.227c-2.049-2.486-4.159-4.972-7.451-5.091h-3.5v3.5h3.5c0.656-0.027,1.683,0.486,2.879,1.683c1.788,1.753,3.712,4.674,5.731,7.226c1.921,2.331,3.907,4.639,6.863,5.016v2.702l7.556-4.362l-7.556-4.362V20.654z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ForkAlt=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ForkAlt",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.786,12.873l7.556-4.361l-7.556-4.362v2.701c-2.929,0.374-4.905,2.64-6.809,4.952c0.545,0.703,1.08,1.418,1.604,2.127c0.192,0.26,0.383,0.514,0.573,0.77c0.802-1.043,1.584-1.999,2.341-2.74c0.884-0.885,1.673-1.393,2.291-1.588V12.873zM17.661,17.006c-1.893-2.371-3.815-5.354-6.009-7.537c-1.461-1.428-3.155-2.664-5.34-2.693h-3.5v3.5h3.5c0.971-0.119,2.845,1.333,4.712,3.771c1.895,2.371,3.815,5.354,6.011,7.537c1.326,1.297,2.847,2.426,4.751,2.645v2.646l7.556-4.363l-7.556-4.362v2.535C20.746,20.346,19.205,19.022,17.661,17.006z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Exchange=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Exchange",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.786,12.876l7.556-4.363l-7.556-4.363v2.598H2.813v3.5h18.973V12.876zM10.368,18.124l-7.556,4.362l7.556,4.362V24.25h18.974v-3.501H10.368V18.124z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Shuffle=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Shuffle",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.786,20.654c-0.618-0.195-1.407-0.703-2.291-1.587c-0.757-0.742-1.539-1.698-2.34-2.741c-0.191,0.256-0.382,0.51-0.574,0.77c-0.524,0.709-1.059,1.424-1.604,2.127c1.904,2.31,3.88,4.578,6.809,4.952v2.701l7.556-4.362l-7.556-4.362V20.654zM9.192,11.933c0.756,0.741,1.538,1.697,2.339,2.739c0.195-0.262,0.39-0.521,0.587-0.788c0.52-0.703,1.051-1.412,1.592-2.11c-2.032-2.463-4.133-4.907-7.396-5.025h-3.5v3.5h3.5C6.969,10.223,7.996,10.735,9.192,11.933zM21.786,10.341v2.535l7.556-4.363l-7.556-4.363v2.647c-1.904,0.219-3.425,1.348-4.751,2.644c-2.196,2.183-4.116,5.167-6.011,7.538c-1.867,2.438-3.741,3.888-4.712,3.771h-3.5v3.5h3.5c2.185-0.029,3.879-1.266,5.34-2.693c2.194-2.184,4.116-5.167,6.009-7.538C19.205,12.003,20.746,10.679,21.786,10.341z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Refresh=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Refresh",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.083,15.5c-0.009,4.739-3.844,8.574-8.583,8.583c-4.741-0.009-8.577-3.844-8.585-8.583c0.008-4.741,3.844-8.577,8.585-8.585c1.913,0,3.665,0.629,5.09,1.686l-1.782,1.783l8.429,2.256l-2.26-8.427l-1.89,1.89c-2.072-1.677-4.717-2.688-7.587-2.688C8.826,3.418,3.418,8.826,3.416,15.5C3.418,22.175,8.826,27.583,15.5,27.583S27.583,22.175,27.583,15.5H24.083z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Ccw=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Ccw",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Acw=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Acw",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M19.275,3.849l1.695,8.56l1.875-1.642c2.311,3.59,1.72,8.415-1.584,11.317c-2.24,1.96-5.186,2.57-7.875,1.908l-0.84,3.396c3.75,0.931,7.891,0.066,11.02-2.672c4.768-4.173,5.521-11.219,1.94-16.279l2.028-1.775L19.275,3.849zM8.154,20.232c-2.312-3.589-1.721-8.416,1.582-11.317c2.239-1.959,5.186-2.572,7.875-1.909l0.842-3.398c-3.752-0.93-7.893-0.067-11.022,2.672c-4.765,4.174-5.519,11.223-1.939,16.283l-2.026,1.772l8.26,2.812l-1.693-8.559L8.154,20.232z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Contract=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Contract",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.083,18.895l-8.428-2.259l2.258,8.428l1.838-1.837l7.053,7.053l2.476-2.476l-7.053-7.053L25.083,18.895zM5.542,11.731l8.428,2.258l-2.258-8.428L9.874,7.398L3.196,0.72L0.72,3.196l6.678,6.678L5.542,11.731zM7.589,20.935l-6.87,6.869l2.476,2.476l6.869-6.869l1.858,1.857l2.258-8.428l-8.428,2.258L7.589,20.935zM23.412,10.064l6.867-6.87l-2.476-2.476l-6.868,6.869l-1.856-1.856l-2.258,8.428l8.428-2.259L23.412,10.064z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Expand=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Expand",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.545,23.328,17.918,15.623,25.534,8.007,27.391,9.864,29.649,1.436,21.222,3.694,23.058,5.53,15.455,13.134,7.942,5.543,9.809,3.696,1.393,1.394,3.608,9.833,5.456,8.005,12.98,15.608,5.465,23.123,3.609,21.268,1.351,29.695,9.779,27.438,7.941,25.6,15.443,18.098,23.057,25.791,21.19,27.638,29.606,29.939,27.393,21.5z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Stop=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Stop",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M5.5,5.5h20v20h-20z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.End=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.End",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.167,5.5,21.167,13.681,6.684,5.318,6.684,25.682,21.167,17.318,21.167,25.5,25.5,25.5,25.5,5.5z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Start=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Start",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Ff=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Ff",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.5,15.5,15.2,9.552,15.2,15.153,5.5,9.552,5.5,21.447,15.2,15.847,15.2,21.447z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Rw=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Rw",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M5.5,15.499,15.8,21.447,15.8,15.846,25.5,21.447,25.5,9.552,15.8,15.152,15.8,9.552z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ArrowRight=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ArrowRight",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M6.684,25.682L24.316,15.5L6.684,5.318V25.682z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ArrowLeft=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ArrowLeft",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.316,5.318L6.684,15.5l17.632,10.182V5.318L24.316,5.318z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ArrowUp=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ArrowUp",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.682,24.316L15.5,6.684L5.318,24.316H25.682z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ArrowDown=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ArrowDown",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M5.318,6.684L15.5,24.316L25.682,6.684H5.318z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ArrowLeft2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ArrowLeft2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.871,9.814 15.684,16.001 21.871,22.188 18.335,25.725 8.612,16.001 18.335,6.276z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ArrowRight2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ArrowRight2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M10.129,22.186 16.316,15.999 10.129,9.812 13.665,6.276 23.389,15.999 13.665,25.725z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Smile2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Smile2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,29.534C8.539,29.534,2.466,23.462,2.466,16C2.466,8.539,8.539,2.466,16,2.466c7.462,0,13.535,6.072,13.535,13.533C29.534,23.462,23.462,29.534,16,29.534zM11.104,14c0.932,0,1.688-1.483,1.688-3.312s-0.755-3.312-1.688-3.312s-1.688,1.483-1.688,3.312S10.172,14,11.104,14zM20.729,14c0.934,0,1.688-1.483,1.688-3.312s-0.756-3.312-1.688-3.312c-0.932,0-1.688,1.483-1.688,3.312S19.798,14,20.729,14zM8.143,21.189C10.458,24.243,13.148,26,16.021,26c2.969,0,5.745-1.868,8.11-5.109c-2.515,1.754-5.292,2.734-8.215,2.734C13.164,23.625,10.54,22.756,8.143,21.189z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Smile=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Smile",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM20.729,7.375c0.934,0,1.688,1.483,1.688,3.312S21.661,14,20.729,14c-0.932,0-1.688-1.483-1.688-3.312S19.798,7.375,20.729,7.375zM11.104,7.375c0.932,0,1.688,1.483,1.688,3.312S12.037,14,11.104,14s-1.688-1.483-1.688-3.312S10.172,7.375,11.104,7.375zM16.021,26c-2.873,0-5.563-1.757-7.879-4.811c2.397,1.564,5.021,2.436,7.774,2.436c2.923,0,5.701-0.98,8.215-2.734C21.766,24.132,18.99,26,16.021,26z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Alarm=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Alarm",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M8.179,20.115c-0.478,0.277-0.642,0.889-0.365,1.366c0.275,0.479,0.889,0.642,1.365,0.366c0.479-0.275,0.643-0.888,0.367-1.367C9.27,20.004,8.658,19.84,8.179,20.115zM9.18,12.239c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,13.126,9.657,12.516,9.18,12.239zM8.625,17.043c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,18.043,8.624,17.596,8.625,17.043zM16.312,3.957V3.031h1c0.275,0,0.5-0.225,0.5-0.5v-0.5c0-0.275-0.225-0.5-0.5-0.5h-3.625c-0.275,0-0.5,0.225-0.5,0.5v0.5c0,0.275,0.225,0.5,0.5,0.5h1v0.926C7.819,4.381,2.376,10.068,2.374,17.042C2.376,24.291,8.251,30.166,15.5,30.169c7.249-0.003,13.124-5.878,13.125-13.127C28.624,10.067,23.181,4.38,16.312,3.957zM15.5,27.166C9.909,27.157,5.385,22.633,5.375,17.042C5.385,11.451,9.909,6.927,15.5,6.917c5.59,0.01,10.115,4.535,10.124,10.125C25.615,22.633,21.091,27.157,15.5,27.166zM12.062,22.998c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,23.887,12.54,23.275,12.062,22.998zM12.062,11.088c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,11.2,11.584,11.364,12.062,11.088zM22.822,13.971c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,14.083,22.344,14.247,22.822,13.971zM15.501,23.92c-0.552,0-1,0.447-1,1c0,0.552,0.448,1,1,1s1-0.448,1-1C16.501,24.367,16.053,23.92,15.501,23.92zM19.938,9.355c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,10.245,20.418,9.632,19.938,9.355zM23.378,16.042c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,16.492,23.929,16.042,23.378,16.042zM22.823,20.115c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.091,0.367,1.367c0.477,0.275,1.089,0.112,1.365-0.366C23.464,21.004,23.3,20.391,22.823,20.115zM15.501,8.167c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.366c0.275,0.479,0.889,0.642,1.365,0.366l3.305-1.676c0.055,0.006,0.109,0.017,0.166,0.017c0.828,0,1.5-0.672,1.5-1.5l-0.5-7.876C16.501,8.614,16.053,8.167,15.501,8.167zM18.939,22.998c-0.479,0.276-0.643,0.888-0.366,1.367c0.275,0.477,0.888,0.642,1.366,0.365c0.478-0.276,0.642-0.889,0.366-1.365C20.028,22.886,19.417,22.723,18.939,22.998zM11.197,3.593c-0.836-1.04-2.103-1.718-3.541-1.718c-2.52,0-4.562,2.042-4.562,4.562c0,0.957,0.297,1.843,0.8,2.576C5.649,6.484,8.206,4.553,11.197,3.593zM27.106,9.014c0.503-0.733,0.8-1.619,0.8-2.576c0-2.52-2.043-4.562-4.562-4.562c-1.438,0-2.704,0.678-3.541,1.717C22.794,4.553,25.351,6.484,27.106,9.014z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Clock=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Clock",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.StopWatch=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.StopWatch",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.216,18.533c0-3.636-1.655-6.883-4.253-9.032l0.733-0.998l0.482,0.354c0.198,0.146,0.481,0.104,0.628-0.097l0.442-0.604c0.146-0.198,0.103-0.482-0.097-0.628l-2.052-1.506c-0.199-0.146-0.481-0.103-0.628,0.097L22.03,6.724c-0.146,0.199-0.104,0.482,0.096,0.628l0.483,0.354l-0.736,1.003c-1.28-0.834-2.734-1.419-4.296-1.699c0.847-0.635,1.402-1.638,1.403-2.778h-0.002c0-1.922-1.557-3.48-3.479-3.48c-1.925,0-3.48,1.559-3.48,3.48c0,1.141,0.556,2.144,1.401,2.778c-1.549,0.277-2.99,0.857-4.265,1.68L8.424,7.684l0.484-0.353c0.198-0.145,0.245-0.428,0.098-0.628l-0.44-0.604C8.42,5.899,8.136,5.855,7.937,6.001L5.881,7.5c-0.2,0.146-0.243,0.428-0.099,0.628l0.442,0.604c0.145,0.2,0.428,0.244,0.627,0.099l0.483-0.354l0.729,0.999c-2.615,2.149-4.282,5.407-4.282,9.057c0,6.471,5.245,11.716,11.718,11.716c6.47,0,11.716-5.243,11.718-11.716H27.216zM12.918,4.231c0.002-1.425,1.155-2.58,2.582-2.582c1.426,0.002,2.579,1.157,2.581,2.582c-0.002,1.192-0.812,2.184-1.908,2.482v-1.77h0.6c0.246,0,0.449-0.203,0.449-0.449V3.746c0-0.247-0.203-0.449-0.449-0.449h-2.545c-0.247,0-0.449,0.202-0.449,0.449v0.749c0,0.246,0.202,0.449,0.449,0.449h0.599v1.77C13.729,6.415,12.919,5.424,12.918,4.231zM15.5,27.554c-4.983-0.008-9.015-4.038-9.022-9.021c0.008-4.982,4.039-9.013,9.022-9.022c4.981,0.01,9.013,4.04,9.021,9.022C24.513,23.514,20.481,27.546,15.5,27.554zM15.5,12.138c0.476,0,0.861-0.385,0.861-0.86s-0.386-0.861-0.861-0.861s-0.861,0.386-0.861,0.861S15.024,12.138,15.5,12.138zM15.5,24.927c-0.476,0-0.861,0.386-0.861,0.861s0.386,0.861,0.861,0.861s0.861-0.386,0.861-0.861S15.976,24.927,15.5,24.927zM12.618,11.818c-0.237-0.412-0.764-0.553-1.176-0.315c-0.412,0.238-0.554,0.765-0.315,1.177l2.867,6.722c0.481,0.831,1.543,1.116,2.375,0.637c0.829-0.479,1.114-1.543,0.635-2.374L12.618,11.818zM18.698,24.07c-0.412,0.237-0.555,0.765-0.316,1.176c0.237,0.412,0.764,0.554,1.176,0.315c0.413-0.238,0.553-0.765,0.316-1.176C19.635,23.974,19.108,23.832,18.698,24.07zM8.787,15.65c0.412,0.238,0.938,0.097,1.176-0.315c0.237-0.413,0.097-0.938-0.314-1.176c-0.412-0.239-0.938-0.098-1.177,0.313C8.234,14.886,8.375,15.412,8.787,15.65zM22.215,21.413c-0.412-0.236-0.938-0.096-1.176,0.316c-0.238,0.412-0.099,0.938,0.314,1.176c0.41,0.238,0.937,0.098,1.176-0.314C22.768,22.178,22.625,21.652,22.215,21.413zM9.107,18.531c-0.002-0.476-0.387-0.86-0.861-0.86c-0.477,0-0.862,0.385-0.862,0.86c0.001,0.476,0.386,0.86,0.861,0.861C8.722,19.393,9.106,19.008,9.107,18.531zM21.896,18.531c0,0.477,0.384,0.862,0.859,0.86c0.476,0.002,0.862-0.382,0.862-0.859s-0.387-0.86-0.862-0.862C22.279,17.671,21.896,18.056,21.896,18.531zM8.787,21.413c-0.412,0.238-0.554,0.765-0.316,1.176c0.239,0.412,0.765,0.553,1.177,0.316c0.413-0.239,0.553-0.765,0.315-1.178C9.725,21.317,9.198,21.176,8.787,21.413zM21.352,14.157c-0.411,0.238-0.551,0.764-0.312,1.176c0.237,0.413,0.764,0.555,1.174,0.315c0.412-0.236,0.555-0.762,0.316-1.176C22.29,14.06,21.766,13.921,21.352,14.157zM12.304,24.067c-0.413-0.235-0.939-0.096-1.176,0.315c-0.238,0.413-0.098,0.939,0.312,1.178c0.413,0.236,0.939,0.096,1.178-0.315C12.857,24.832,12.715,24.308,12.304,24.067zM18.698,12.992c0.41,0.238,0.938,0.099,1.174-0.313c0.238-0.411,0.1-0.938-0.314-1.177c-0.414-0.238-0.937-0.097-1.177,0.315C18.144,12.229,18.286,12.755,18.698,12.992z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.History=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.History",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M10.666,18.292c0.275,0.479,0.889,0.644,1.365,0.367l3.305-1.677C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876c0-0.552-0.448-1-1-1c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96C10.553,17.204,10.389,17.816,10.666,18.292zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.888,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM6.624,15.5c0,0.553,0.449,1,1,1c0.552,0,1-0.447,1.001-1c-0.001-0.552-0.448-0.999-1.001-1C7.071,14.5,6.624,14.948,6.624,15.5zM14.501,23.377c0,0.553,0.448,1,1,1c0.552,0,1-0.447,1-1s-0.448-1-1-1C14.949,22.377,14.501,22.824,14.501,23.377zM10.696,21.822c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.276,1.091,0.11,1.365-0.365c0.277-0.479,0.113-1.09-0.365-1.367C11.584,21.18,10.973,21.344,10.696,21.822zM21.822,10.696c-0.479,0.278-0.643,0.89-0.366,1.367s0.888,0.642,1.366,0.365c0.478-0.275,0.643-0.888,0.365-1.366C22.913,10.584,22.298,10.42,21.822,10.696zM21.456,18.938c-0.274,0.479-0.112,1.092,0.367,1.367c0.477,0.274,1.089,0.112,1.364-0.365c0.276-0.479,0.112-1.092-0.364-1.367C22.343,18.297,21.73,18.461,21.456,18.938zM24.378,15.5c0-0.551-0.448-1-1-1c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1C23.93,16.5,24.378,16.053,24.378,15.5zM18.573,22.822c0.274,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.89,0.365-1.365c-0.277-0.479-0.888-0.643-1.365-0.367C18.46,21.732,18.296,22.344,18.573,22.822zM18.939,9.546c0.477,0.276,1.088,0.112,1.365-0.366c0.276-0.478,0.113-1.091-0.367-1.367c-0.477-0.276-1.09-0.111-1.364,0.366C18.298,8.659,18.462,9.27,18.939,9.546zM28.703,14.364C28.074,7.072,21.654,1.67,14.364,2.295c-3.254,0.281-6.118,1.726-8.25,3.877L4.341,4.681l-1.309,7.364l7.031-2.548L8.427,8.12c1.627-1.567,3.767-2.621,6.194-2.833c5.64-0.477,10.595,3.694,11.089,9.335c0.477,5.64-3.693,10.595-9.333,11.09c-5.643,0.476-10.599-3.694-11.092-9.333c-0.102-1.204,0.019-2.373,0.31-3.478l-3.27,1.186c-0.089,0.832-0.106,1.684-0.031,2.55c0.629,7.29,7.048,12.691,14.341,12.066C23.926,28.074,29.328,21.655,28.703,14.364z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Future=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Future",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M17.001,15.5l-0.5-7.876c0-0.552-0.448-1-1-1c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.89-0.365,1.365c0.275,0.479,0.889,0.644,1.365,0.367l3.305-1.677C15.39,16.99,15.444,17,15.501,17C16.329,17,17.001,16.329,17.001,15.5zM18.939,21.455c-0.479,0.277-0.644,0.889-0.366,1.367c0.274,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.89,0.365-1.365C20.027,21.344,19.417,21.18,18.939,21.455zM19.938,7.813c-0.477-0.276-1.09-0.111-1.364,0.366c-0.275,0.48-0.111,1.091,0.366,1.367c0.477,0.276,1.088,0.112,1.365-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM21.823,20.305c0.477,0.274,1.089,0.112,1.364-0.365c0.276-0.479,0.112-1.092-0.364-1.367c-0.48-0.275-1.093-0.111-1.367,0.365C21.182,19.416,21.344,20.029,21.823,20.305zM22.822,12.428c0.478-0.275,0.643-0.888,0.365-1.366c-0.274-0.478-0.89-0.642-1.365-0.366c-0.479,0.278-0.643,0.89-0.366,1.367S22.344,12.705,22.822,12.428zM24.378,15.5c0-0.551-0.448-1-1-1c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1C23.93,16.5,24.378,16.053,24.378,15.5zM9.546,12.062c0.275-0.478,0.111-1.089-0.366-1.366c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366C8.658,12.704,9.269,12.541,9.546,12.062zM6.624,15.5c0,0.553,0.449,1,1,1c0.552,0,1-0.447,1.001-1c-0.001-0.552-0.448-0.999-1.001-1C7.071,14.5,6.624,14.948,6.624,15.5zM9.179,20.305c0.479-0.275,0.643-0.888,0.367-1.367c-0.276-0.477-0.888-0.641-1.367-0.365c-0.478,0.277-0.642,0.889-0.365,1.367C8.089,20.418,8.703,20.58,9.179,20.305zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM14.501,23.377c0,0.553,0.448,1,1,1c0.552,0,1-0.447,1-1s-0.448-1-1-1C14.949,22.377,14.501,22.824,14.501,23.377zM10.696,21.822c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.276,1.091,0.11,1.365-0.365c0.277-0.479,0.113-1.09-0.365-1.367C11.584,21.18,10.973,21.344,10.696,21.822zM28.674,14.087l-3.27-1.186c0.291,1.105,0.41,2.274,0.309,3.478c-0.492,5.639-5.449,9.809-11.091,9.333c-5.639-0.495-9.809-5.45-9.333-11.09c0.494-5.641,5.449-9.812,11.089-9.335c2.428,0.212,4.567,1.266,6.194,2.833l-1.637,1.377l7.031,2.548l-1.309-7.364l-1.771,1.492c-2.133-2.151-4.996-3.597-8.25-3.877C9.346,1.67,2.926,7.072,2.297,14.364c-0.625,7.291,4.777,13.71,12.066,14.339c7.293,0.625,13.713-4.776,14.342-12.066C28.779,15.771,28.762,14.919,28.674,14.087z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.GlobeAlt2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.GlobeAlt2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM8.251,7.48c0.122,0.055,0.255,0.104,0.28,0.137C8.57,7.668,8.621,7.823,8.557,7.861C8.492,7.9,8.39,7.887,8.376,7.771c-0.013-0.115-0.026-0.128-0.18-0.18c-0.022-0.007-0.035-0.01-0.051-0.015C8.18,7.544,8.216,7.512,8.251,7.48zM7.733,7.974c0.031,0.087,0.113,0.125,0,0.17C7.673,8.168,7.611,8.172,7.559,8.165C7.617,8.102,7.672,8.035,7.733,7.974zM16,27.533C9.639,27.533,4.466,22.36,4.466,16c0-0.085,0.011-0.168,0.013-0.254c0.004-0.003,0.008-0.006,0.012-0.009c0.129-0.102,0.283-0.359,0.334-0.45c0.052-0.089,0.181-0.154,0.116-0.256c-0.059-0.096-0.292-0.23-0.407-0.261c0.01-0.099,0.032-0.195,0.045-0.294c0.063,0.077,0.137,0.17,0.208,0.194c0.115,0.038,0.501,0.052,0.566,0.052c0.063,0,0.334,0.014,0.386-0.064c0.051-0.077,0.09-0.077,0.154-0.077c0.064,0,0.18,0.231,0.271,0.257c0.089,0.026,0.257,0.013,0.244,0.181c-0.012,0.166,0.077,0.309,0.167,0.321c0.09,0.013,0.296-0.194,0.296-0.194s0,0.322-0.012,0.438C6.846,15.698,7,16.124,7,16.124s0.193,0.397,0.244,0.488c0.052,0.09,0.27,0.36,0.27,0.476c0,0.117,0.026,0.297,0.104,0.297s0.155-0.206,0.244-0.335c0.091-0.128,0.117-0.31,0.155-0.438c0.039-0.129,0.039-0.36,0.039-0.45c0-0.091,0.076-0.168,0.257-0.245c0.181-0.077,0.309-0.296,0.463-0.412c0.155-0.116,0.142-0.309,0.452-0.309c0.308,0,0.282,0,0.36-0.078c0.077-0.077,0.154-0.128,0.192,0.013c0.039,0.142,0.257,0.347,0.296,0.399c0.039,0.052,0.116,0.193,0.104,0.348c-0.013,0.153,0.012,0.334,0.077,0.334c0.064,0,0.193-0.219,0.193-0.219s0.283-0.192,0.27,0.014c-0.014,0.205,0.025,0.425,0.025,0.552c0,0.13,0.232,0.438,0.232,0.362c0-0.079,0.103-0.296,0.103-0.413c0-0.114,0.064-0.063,0.231,0.051c0.167,0.116,0.283,0.349,0.283,0.349s0.168,0.154,0.193,0.219c0.026,0.064,0.206-0.025,0.244-0.104c0.039-0.076,0.065-0.115,0.167-0.141c0.104-0.026,0.231-0.026,0.271-0.168c0.039-0.142,0.154-0.308,0-0.502c-0.154-0.193-0.232-0.321-0.347-0.412c-0.117-0.09-0.206-0.322-0.206-0.322s0.244-0.218,0.321-0.296c0.079-0.077,0.193-0.025,0.207,0.064c0.013,0.091-0.115,0.168-0.141,0.361c-0.026,0.192,0.154,0.257,0.206,0.192c0.051-0.065,0.18-0.219,0.18-0.257c0-0.039-0.089-0.026-0.102-0.167c-0.013-0.142,0.166-0.245,0.23-0.207c0.066,0.039,0.477-0.051,0.67-0.154s0.308-0.322,0.425-0.412c0.116-0.089,0.515-0.386,0.489-0.527c-0.026-0.142,0.012-0.334-0.09-0.515c-0.103-0.18-0.232-0.295-0.283-0.373c-0.051-0.077,0.219-0.09,0.347-0.206c0.129-0.116,0-0.219-0.064-0.206c-0.064,0.013-0.232,0.052-0.296,0.039c-0.064-0.013-0.103-0.077-0.206-0.155c-0.102-0.077,0.026-0.192,0.091-0.179c0.064,0.013,0.23-0.129,0.308-0.193c0.077-0.064,0.193-0.115,0.154-0.051c-0.038,0.064-0.128,0.296-0.026,0.309c0.104,0.013,0.348-0.193,0.388-0.18c0.038,0.013,0.102,0.18,0.064,0.257c-0.039,0.077-0.039,0.206,0.013,0.193c0.051-0.013,0.154-0.129,0.18-0.09c0.027,0.039,0.154,0.116,0.09,0.257c-0.063,0.142-0.193,0.193-0.039,0.284c0.154,0.089,0.206,0.012,0.322-0.052c0.115-0.064,0.193-0.347,0.128-0.438c-0.064-0.09-0.218-0.27-0.218-0.334c0-0.064,0.257-0.064,0.257-0.167s0.09-0.18,0.18-0.219c0.091-0.039,0.206-0.206,0.244-0.154c0.039,0.052,0.271,0.116,0.334,0.039c0.064-0.077,0.4-0.36,0.605-0.515c0.206-0.154,0.283-0.334,0.336-0.515c0.051-0.18,0.128-0.296,0.102-0.437v0c0.077,0.18,0.09,0.309,0.077,0.45c-0.013,0.142,0,0.438,0.026,0.476c0.025,0.039,0.129,0.128,0.192,0.103c0.064-0.025-0.025-0.283-0.025-0.334c0-0.052,0.09-0.129,0.142-0.142c0.052-0.013,0-0.231-0.065-0.322c-0.063-0.09-0.154-0.142-0.102-0.154c0.051-0.013,0.115-0.116,0.077-0.142c-0.039-0.025-0.014-0.116-0.103-0.09c-0.065,0.019-0.241-0.015-0.235,0.095c-0.037-0.11-0.116-0.183-0.216-0.172c-0.116,0.013-0.181,0.077-0.296,0.077s-0.025-0.18-0.077-0.18c-0.051,0-0.168,0.167-0.231,0.077c-0.064-0.09,0.18-0.206,0.373-0.27c0.192-0.064,0.514-0.438,0.644-0.451c0.128-0.013,0.45,0.026,0.733,0.013c0.283-0.013,0.373-0.129,0.463-0.064s0.283,0.142,0.399,0.129c0.116-0.014,0.064,0,0.244-0.129c0.18-0.129,0.348-0.193,0.438-0.296c0.09-0.103,0.335-0.18,0.348-0.077c0.014,0.103-0.026,0.206,0.077,0.206s0.258-0.103,0.386-0.154c0.129-0.051,0.231-0.116,0.231-0.116s-0.527,0.36-0.655,0.438c-0.129,0.077-0.438,0.129-0.567,0.283c-0.128,0.155-0.205,0.206-0.192,0.374c0.014,0.167,0.231,0.386,0.128,0.54c-0.103,0.154-0.141,0.373-0.141,0.373s0.154-0.219,0.373-0.36s0.348-0.334,0.425-0.412s0.309-0.091,0.309-0.181s0.064-0.206,0.104-0.309c0.038-0.103-0.077-0.078,0-0.206c0.076-0.129,0.064-0.232,0.45-0.232s0.257,0.026,0.566,0.013c0.309-0.013,0.424-0.167,0.72-0.245c0.296-0.077,0.527-0.128,0.618-0.089c0.09,0.038,0.232,0.012,0.141-0.078c-0.089-0.09-0.295-0.219-0.193-0.245c0.104-0.026,0.207-0.039,0.246-0.142c0.039-0.103-0.142-0.283-0.039-0.386c0.104-0.103-0.077-0.231-0.207-0.257c-0.128-0.025-0.63,0.026-0.731-0.025c-0.104-0.052-0.271-0.116-0.322-0.078c-0.052,0.039-0.168,0.245-0.168,0.245s-0.09,0.025-0.168-0.09c-0.076-0.116-0.5-0.103-0.629-0.103s-0.271,0.025-0.413,0.039c-0.141,0.013-0.219,0.052-0.322-0.039c-0.102-0.09-0.243-0.129-0.296-0.167c-0.051-0.039-0.334-0.039-0.553-0.012c-0.218,0.025-0.438,0.025-0.438,0.025s-0.104-0.039-0.257-0.129c-0.154-0.09-0.309-0.154-0.361-0.154c-0.051,0-0.449,0.064-0.539,0c-0.091-0.064-0.181-0.103-0.245-0.103s-0.115-0.103-0.038-0.103s0.437-0.103,0.437-0.103s-0.103-0.142-0.231-0.142c-0.128,0-0.359-0.064-0.424-0.064s-0.014,0.064-0.142,0.039c-0.13-0.026-0.258-0.078-0.335-0.026c-0.076,0.051-0.258,0.128-0.064,0.18c0.193,0.052,0.373,0,0.425,0.078c0.052,0.077,0,0.115,0,0.167s-0.103,0.193-0.167,0.219c-0.064,0.025-0.143-0.039-0.27,0.025c-0.129,0.064-0.451,0.013-0.49,0.052c-0.038,0.039-0.115-0.103-0.18-0.077c-0.064,0.025-0.232,0.193-0.322,0.18c-0.089-0.013-0.206-0.103-0.206-0.206s-0.038-0.232-0.077-0.258c-0.038-0.025-0.322-0.039-0.425-0.025c-0.103,0.013-0.424,0.038-0.477,0.09c-0.052,0.052-0.193,0.09-0.283,0.09s-0.167-0.09-0.36-0.116c-0.192-0.026-0.617-0.039-0.669-0.026s-0.218-0.025-0.155-0.077c0.065-0.051,0.257-0.219,0.143-0.295c-0.117-0.078-0.375-0.078-0.489-0.09c-0.117-0.013-0.232-0.039-0.413-0.013c-0.181,0.026-0.219,0.116-0.296,0.039c-0.077-0.077,0.193,0.039-0.077-0.077c-0.27-0.116-0.399-0.103-0.477-0.064c-0.077,0.039,0.013,0.025-0.192,0.103c-0.206,0.078-0.322,0.116-0.374,0.129c-0.051,0.012-0.372-0.065-0.411-0.091c-0.038-0.025-0.181,0.013-0.309,0.064S9.895,7.025,9.767,7C9.638,6.973,9.432,6.973,9.303,7.025C9.174,7.076,9.084,7.076,8.956,7.166c-0.13,0.09-0.373,0.142-0.373,0.142S8.522,7.305,8.448,7.301C10.474,5.541,13.111,4.466,16,4.466c6.361,0,11.534,5.173,11.534,11.534S22.36,27.533,16,27.533zM14.888,19.92c0,0,0.207-0.026,0.207-0.117c0-0.089-0.207-0.205-0.282-0.102c-0.078,0.102-0.219,0.205-0.207,0.296C14.625,20.138,14.888,19.92,14.888,19.92zM14.875,17.023c-0.181,0.233-0.167,0.182-0.296,0.128c-0.128-0.05-0.334,0.116-0.296,0.182c0.039,0.064,0.322-0.014,0.386,0.102c0.065,0.116,0.065,0.129,0.193,0.104c0.128-0.026,0.257-0.205,0.219-0.295C15.043,17.151,14.875,17.023,14.875,17.023zM14.837,18.245c-0.051,0-0.412,0.064-0.451,0.079c-0.039,0.013-0.27-0.025-0.27-0.025c-0.09,0.089-0.026,0.179,0.116,0.166s0.438-0.052,0.502-0.052C14.799,18.413,14.888,18.245,14.837,18.245zM14.284,14.668c-0.19,0.03-0.308,0.438-0.155,0.425C14.284,15.081,14.451,14.643,14.284,14.668zM14.734,16.959c-0.052-0.064-0.181-0.271-0.323-0.219c-0.042,0.017-0.153,0.245-0.012,0.245C14.541,16.985,14.786,17.023,14.734,16.959zM14.85,16.805c0.232-0.013,0.167-0.245-0.013-0.257C14.786,16.544,14.618,16.818,14.85,16.805zM17.591,18.928c-0.193-0.039-0.244-0.102-0.45-0.205c-0.207-0.103-0.67-0.103-0.682-0.039c-0.014,0.064,0,0-0.155-0.05c-0.153-0.054-0.271,0-0.309-0.091c-0.038-0.091-0.128-0.117-0.244-0.002c-0.097,0.097-0.142,0.104,0.078,0.143c0.218,0.039,0.283,0.039,0.192,0.141c-0.09,0.104-0.154,0.233-0.077,0.244c0.077,0.015,0.309-0.05,0.334,0c0.026,0.054-0.051,0.064,0.207,0.105c0.258,0.037,0.309,0.128,0.359,0.178c0.051,0.052,0.206,0.22,0.104,0.22c-0.104,0-0.219,0.128-0.142,0.143c0.077,0.013,0.309-0.039,0.321,0c0.014,0.037,0.143,0.283,0.271,0.271c0.129-0.013,0.206-0.244,0.27-0.31c0.065-0.064,0.322-0.104,0.349,0.012c0.026,0.116,0.104,0.233,0.257,0.311c0.154,0.076,0.335,0.154,0.348,0.089c0.013-0.064-0.077-0.309-0.181-0.346c-0.103-0.041-0.282-0.259-0.282-0.348c0-0.091-0.155-0.117-0.232-0.182C17.849,19.147,17.784,18.967,17.591,18.928zM8.042,17.023c-0.084,0.037-0.155,0.476,0,0.527c0.154,0.052,0.244-0.205,0.193-0.271C8.183,17.218,8.158,16.973,8.042,17.023zM15.429,18.117c-0.118-0.05-0.335,0.424-0.181,0.463C15.403,18.62,15.518,18.156,15.429,18.117zM15.687,13.703c0.077,0,0.18-0.051,0.18-0.193c0-0.142,0.18,0,0.27-0.013s0.141-0.103,0.18-0.206c0.005-0.013,0.008-0.021,0.009-0.027c-0.003,0.024-0.001,0.093,0.095,0.117c0.154,0.038,0.205-0.064,0.205-0.103s0.283-0.103,0.336-0.142c0.051-0.038,0.258-0.103,0.27-0.154c0.013-0.051,0-0.348,0.064-0.373c0.064-0.026,0.154-0.026,0.052-0.206c-0.104-0.181-0.104-0.348-0.232-0.271c-0.095,0.057-0.038,0.284-0.115,0.438s-0.142,0.296-0.193,0.296s-0.321,0.103-0.399,0.18c-0.076,0.077-0.45-0.064-0.501,0c-0.052,0.064-0.154,0.141-0.219,0.193c-0.065,0.051-0.245,0.013-0.207,0.167C15.518,13.562,15.609,13.703,15.687,13.703zM17.449,12.056c0.18-0.013,0.348-0.064,0.348-0.064s0.271,0.013,0.232-0.116c-0.04-0.128-0.322-0.141-0.375-0.128c-0.051,0.013-0.142-0.142-0.244-0.116c-0.096,0.023-0.128,0.155-0.128,0.193c0,0.039-0.36,0.115-0.245,0.219C17.153,12.146,17.27,12.069,17.449,12.056zM13.91,19.058c0.104,0.064,0.296-0.219,0.349-0.13c0.051,0.091-0.013,0.13,0.076,0.246c0.091,0.114,0.258,0.102,0.258,0.102s-0.013-0.309-0.155-0.387c-0.142-0.077-0.232-0.166-0.064-0.141c0.167,0.026,0.257-0.039,0.219-0.114c-0.039-0.078-0.283-0.039-0.361-0.026s-0.193-0.052-0.193-0.052c-0.077,0.024-0.063,0.089-0.09,0.219C13.923,18.902,13.807,18.992,13.91,19.058zM20.924,21.618c-0.231-0.052-0.077,0.039,0,0.154c0.077,0.116,0.232,0.176,0.258,0.05C21.193,21.759,21.155,21.67,20.924,21.618zM21.915,24.744c-0.077,0.064,0,0.091-0.219,0.22c-0.22,0.13-0.49,0.271-0.541,0.386c-0.052,0.116,0.051,0.181,0.258,0.192c0.206,0.013,0.154,0.053,0.296-0.103s0.271-0.244,0.438-0.373c0.168-0.128,0.168-0.322,0.168-0.322s-0.181-0.178-0.193-0.141C22.1,24.665,21.992,24.681,21.915,24.744zM18.504,21.618c0.014-0.116-0.219-0.116-0.334-0.207c-0.116-0.089-0.128-0.359-0.193-0.515c-0.064-0.153-0.192-0.257-0.322-0.397c-0.128-0.143-0.192-0.465-0.23-0.438c-0.039,0.025-0.154,0.399-0.064,0.515c0.09,0.116-0.039,0.348-0.103,0.503c-0.065,0.153-0.22-0.026-0.349-0.104c-0.129-0.078-0.308-0.128-0.398-0.219c-0.09-0.091,0.155-0.335,0.091-0.426c-0.065-0.09-0.412-0.013-0.45-0.013c-0.039,0-0.116-0.128-0.194-0.128c-0.077,0-0.064,0.258-0.064,0.258s-0.078-0.091-0.193-0.207c-0.117-0.115,0.012,0.077-0.103,0.193c-0.117,0.117-0.079,0.078-0.129,0.206c-0.051,0.129-0.167,0.077-0.283-0.052c-0.116-0.128-0.179-0.037-0.258,0c-0.077,0.039-0.141,0.259-0.18,0.309c-0.039,0.052-0.309,0.117-0.374,0.182c-0.064,0.062-0.09,0.27-0.09,0.322c0,0.05-0.271,0.023-0.361,0.089c-0.09,0.064-0.23,0.025-0.321,0.025c-0.09,0-0.399,0.244-0.502,0.308c-0.103,0.066-0.103,0.298-0.051,0.362c0.051,0.063,0.154,0.219,0.09,0.244c-0.064,0.026-0.104,0.206,0.051,0.359c0.154,0.155,0.103,0.194,0.115,0.271c0.014,0.077,0.078,0.104,0.181,0.232c0.102,0.128-0.181,0.231-0.219,0.31c-0.039,0.076,0.091,0.192,0.167,0.257c0.077,0.063,0.271,0.026,0.386-0.013c0.117-0.039,0.245-0.143,0.321-0.155c0.079-0.013,0.438-0.026,0.438-0.026s0.129-0.192,0.219-0.296c0.089-0.102,0.372-0.013,0.372-0.013s0.117-0.076,0.426-0.141c0.309-0.065,0.179,0.064,0.296,0.104c0.115,0.037,0.27,0.062,0.359,0.128c0.09,0.064,0,0.218-0.012,0.283c-0.014,0.064,0.219,0.038,0.23-0.026c0.014-0.064,0.077-0.128,0.207-0.205c0.128-0.078,0.025,0.114,0.076,0.231c0.052,0.116,0.129-0.157,0.129-0.026c0,0.039,0.039,0.078,0.051,0.116c0.014,0.039,0.181,0.052,0.181,0.18c0,0.13,0,0.207,0.039,0.231c0.038,0.026,0.244,0,0.335,0.155c0.089,0.154,0.154,0.013,0.205-0.052c0.052-0.064,0.231,0.026,0.283,0.078c0.052,0.05,0.193-0.104,0.387-0.155c0.192-0.051,0.167-0.039,0.219-0.115c0.051-0.078,0.09-0.283,0.205-0.438c0.115-0.153,0.271-0.424,0.271-0.631c0-0.206-0.014-0.682-0.155-0.899C18.761,21.953,18.492,21.733,18.504,21.618zM18.029,24.77c-0.065-0.013-0.207-0.062-0.207-0.062c-0.142,0.141,0.142,0.141,0.104,0.283c-0.039,0.141,0.193,0.089,0.257,0.064c0.063-0.027,0.22-0.323,0.193-0.399C18.351,24.577,18.093,24.783,18.029,24.77zM22.803,24.178c-0.052,0-0.077,0.064-0.192,0c-0.117-0.063-0.091-0.037-0.168-0.167c-0.077-0.127-0.091-0.296-0.219-0.23c-0.051,0.025,0,0.168,0.051,0.218c0.053,0.052,0.077,0.231,0.064,0.283c-0.012,0.052-0.231,0.116-0.129,0.18c0.104,0.064,0.297,0,0.271,0.078c-0.025,0.077-0.129,0.179-0.013,0.205c0.115,0.025,0.154-0.089,0.207-0.178c0.051-0.093,0.089-0.169,0.179-0.221C22.944,24.294,22.854,24.178,22.803,24.178zM22.815,21.18c0.168,0.064,0.464-0.231,0.347-0.27C23.047,20.871,22.815,21.18,22.815,21.18zM13.923,19.906c-0.029,0.115,0.193,0.167,0.206,0.039C14.141,19.816,13.949,19.803,13.923,19.906zM14.27,16.47c-0.064,0.065-0.257,0.193-0.283,0.31c-0.025,0.115,0.309-0.182,0.399-0.296c0.091-0.117,0.27-0.052,0.308-0.117c0.04-0.063,0.04-0.063,0.04-0.063s-0.142-0.025-0.257-0.063c-0.117-0.039-0.258,0.102-0.193-0.104c0.064-0.206,0.257-0.167,0.219-0.322c-0.039-0.154-0.168-0.193-0.207-0.193c-0.09,0,0.013,0.141-0.116,0.231c-0.128,0.09-0.271,0.128-0.193,0.283C14.064,16.29,14.334,16.405,14.27,16.47zM13.254,19.751c0.013-0.076-0.142-0.192-0.206-0.192c-0.065,0-0.386-0.077-0.386-0.077c-0.058,0.023-0.135,0.045-0.158,0.077c-0.007-0.011-0.022-0.024-0.049-0.039c-0.142-0.075-0.309,0-0.361-0.102c-0.05-0.104-0.127-0.104-0.179-0.039c-0.094,0.117,0.025,0.206,0.063,0.231c0.038,0.024,0.181,0.052,0.309,0.039c0.08-0.008,0.181-0.027,0.21-0.059c0.004,0.014,0.016,0.027,0.035,0.044c0.103,0.092,0.167,0.13,0.321,0.116C13.009,19.74,13.241,19.829,13.254,19.751zM12.881,18.992c0.065,0,0.193,0,0.283,0.026c0.09,0.025,0.386,0.05,0.373-0.064c-0.013-0.115-0.038-0.297,0.089-0.411c0.13-0.117,0.257-0.18,0.193-0.348c-0.063-0.167-0.193-0.271-0.103-0.349c0.09-0.076,0.192-0.102,0.192-0.166c0-0.065-0.217,0.18-0.244-0.246c-0.005-0.091-0.206,0.025-0.219,0.116c-0.012,0.091,0.142,0.167-0.103,0.167c-0.245,0-0.257,0.194-0.309,0.232c-0.052,0.039-0.103,0.051-0.207,0.076c-0.102,0.026-0.127,0.13-0.153,0.194c-0.025,0.063-0.206-0.116-0.257-0.064c-0.051,0.052-0.013,0.296,0.077,0.501C12.585,18.863,12.816,18.992,12.881,18.992zM11.979,18.928c0.065-0.077,0.038-0.192-0.063-0.18c-0.103,0.013-0.193-0.168-0.36-0.283c-0.168-0.114-0.296-0.194-0.451-0.36c-0.154-0.167-0.347-0.271-0.45-0.359c-0.104-0.091-0.257-0.13-0.322-0.116c-0.159,0.032,0.231,0.309,0.271,0.346c0.039,0.041,0.387,0.335,0.387,0.478s0.231,0.476,0.296,0.527c0.064,0.052,0.385,0.244,0.437,0.348c0.052,0.103,0.167,0.13,0.167-0.013C11.89,19.174,11.916,19.006,11.979,18.928zM11.002,17.474c0.064,0.232,0.193,0.464,0.244,0.555c0.052,0.089,0.271,0.217,0.348,0.281c0.077,0.064,0.192-0.024,0.143-0.102c-0.052-0.078-0.155-0.192-0.167-0.283c-0.013-0.091-0.078-0.233-0.181-0.387c-0.102-0.153-0.192-0.192-0.257-0.295c-0.064-0.104-0.296-0.297-0.296-0.297c-0.102,0.013-0.102,0.205-0.051,0.271C10.834,17.28,10.938,17.243,11.002,17.474z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.GlobeAlt=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.GlobeAlt",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM27.436,17.39c0.001,0.002,0.004,0.002,0.005,0.004c-0.022,0.187-0.054,0.37-0.085,0.554c-0.015-0.012-0.034-0.025-0.047-0.036c-0.103-0.09-0.254-0.128-0.318-0.115c-0.157,0.032,0.229,0.305,0.267,0.342c0.009,0.009,0.031,0.03,0.062,0.058c-1.029,5.312-5.709,9.338-11.319,9.338c-4.123,0-7.736-2.18-9.776-5.441c0.123-0.016,0.24-0.016,0.28-0.076c0.051-0.077,0.102-0.241,0.178-0.331c0.077-0.089,0.165-0.229,0.127-0.292c-0.039-0.064,0.101-0.344,0.088-0.419c-0.013-0.076-0.127-0.256,0.064-0.407s0.394-0.382,0.407-0.444c0.012-0.063,0.166-0.331,0.152-0.458c-0.012-0.127-0.152-0.28-0.24-0.318c-0.09-0.037-0.28-0.05-0.356-0.151c-0.077-0.103-0.292-0.203-0.368-0.178c-0.076,0.025-0.204,0.05-0.305-0.015c-0.102-0.062-0.267-0.139-0.33-0.189c-0.065-0.05-0.229-0.088-0.305-0.088c-0.077,0-0.065-0.052-0.178,0.101c-0.114,0.153,0,0.204-0.204,0.177c-0.204-0.023,0.025-0.036,0.141-0.189c0.113-0.152-0.013-0.242-0.141-0.203c-0.126,0.038-0.038,0.115-0.241,0.153c-0.203,0.036-0.203-0.09-0.076-0.115s0.355-0.139,0.355-0.19c0-0.051-0.025-0.191-0.127-0.191s-0.077-0.126-0.229-0.291c-0.092-0.101-0.196-0.164-0.299-0.204c-0.09-0.579-0.15-1.167-0.15-1.771c0-2.844,1.039-5.446,2.751-7.458c0.024-0.02,0.048-0.034,0.069-0.036c0.084-0.009,0.31-0.025,0.51-0.059c0.202-0.034,0.418-0.161,0.489-0.153c0.069,0.008,0.241,0.008,0.186-0.042C8.417,8.2,8.339,8.082,8.223,8.082S8.215,7.896,8.246,7.896c0.03,0,0.186,0.025,0.178,0.11C8.417,8.091,8.471,8.2,8.625,8.167c0.156-0.034,0.132-0.162,0.102-0.195C8.695,7.938,8.672,7.853,8.642,7.794c-0.031-0.06-0.023-0.136,0.14-0.153C8.944,7.625,9.168,7.708,9.16,7.573s0-0.28,0.046-0.356C9.253,7.142,9.354,7.09,9.299,7.065C9.246,7.04,9.176,7.099,9.121,6.972c-0.054-0.127,0.047-0.22,0.108-0.271c0.02-0.015,0.067-0.06,0.124-0.112C11.234,5.257,13.524,4.466,16,4.466c3.213,0,6.122,1.323,8.214,3.45c-0.008,0.022-0.01,0.052-0.031,0.056c-0.077,0.013-0.166,0.063-0.179-0.051c-0.013-0.114-0.013-0.331-0.102-0.203c-0.089,0.127-0.127,0.127-0.127,0.191c0,0.063,0.076,0.127,0.051,0.241C23.8,8.264,23.8,8.341,23.84,8.341c0.036,0,0.126-0.115,0.239-0.141c0.116-0.025,0.319-0.088,0.332,0.026c0.013,0.115,0.139,0.152,0.013,0.203c-0.128,0.051-0.267,0.026-0.293-0.051c-0.025-0.077-0.114-0.077-0.203-0.013c-0.088,0.063-0.279,0.292-0.279,0.292s-0.306,0.139-0.343,0.114c-0.04-0.025,0.101-0.165,0.203-0.228c0.102-0.064,0.178-0.204,0.14-0.242c-0.038-0.038-0.088-0.279-0.063-0.343c0.025-0.063,0.139-0.152,0.013-0.216c-0.127-0.063-0.217-0.14-0.318-0.178s-0.216,0.152-0.305,0.204c-0.089,0.051-0.076,0.114-0.191,0.127c-0.114,0.013-0.189,0.165,0,0.254c0.191,0.089,0.255,0.152,0.204,0.204c-0.051,0.051-0.267-0.025-0.267-0.025s-0.165-0.076-0.268-0.076c-0.101,0-0.229-0.063-0.33-0.076c-0.102-0.013-0.306-0.013-0.355,0.038c-0.051,0.051-0.179,0.203-0.28,0.152c-0.101-0.051-0.101-0.102-0.241-0.051c-0.14,0.051-0.279-0.038-0.355,0.038c-0.077,0.076-0.013,0.076-0.255,0c-0.241-0.076-0.189,0.051-0.419,0.089s-0.368-0.038-0.432,0.038c-0.064,0.077-0.153,0.217-0.19,0.127c-0.038-0.088,0.126-0.241,0.062-0.292c-0.062-0.051-0.33-0.025-0.367,0.013c-0.039,0.038-0.014,0.178,0.011,0.229c0.026,0.05,0.064,0.254-0.011,0.216c-0.077-0.038-0.064-0.166-0.141-0.152c-0.076,0.013-0.165,0.051-0.203,0.077c-0.038,0.025-0.191,0.025-0.229,0.076c-0.037,0.051,0.014,0.191-0.051,0.203c-0.063,0.013-0.114,0.064-0.254-0.025c-0.14-0.089-0.14-0.038-0.178-0.012c-0.038,0.025-0.216,0.127-0.229,0.012c-0.013-0.114,0.025-0.152-0.089-0.229c-0.115-0.076-0.026-0.076,0.127-0.025c0.152,0.05,0.343,0.075,0.622-0.013c0.28-0.089,0.395-0.127,0.28-0.178c-0.115-0.05-0.229-0.101-0.406-0.127c-0.179-0.025-0.42-0.025-0.7-0.127c-0.279-0.102-0.343-0.14-0.457-0.165c-0.115-0.026-0.813-0.14-1.132-0.089c-0.317,0.051-1.193,0.28-1.245,0.318s-0.128,0.19-0.292,0.318c-0.165,0.127-0.47,0.419-0.712,0.47c-0.241,0.051-0.521,0.254-0.521,0.305c0,0.051,0.101,0.242,0.076,0.28c-0.025,0.038,0.05,0.229,0.191,0.28c0.139,0.05,0.381,0.038,0.393-0.039c0.014-0.076,0.204-0.241,0.217-0.127c0.013,0.115,0.14,0.292,0.114,0.368c-0.025,0.077,0,0.153,0.09,0.14c0.088-0.012,0.559-0.114,0.559-0.114s0.153-0.064,0.127-0.166c-0.026-0.101,0.166-0.241,0.203-0.279c0.038-0.038,0.178-0.191,0.014-0.241c-0.167-0.051-0.293-0.064-0.115-0.216s0.292,0,0.521-0.229c0.229-0.229-0.051-0.292,0.191-0.305c0.241-0.013,0.496-0.025,0.444,0.051c-0.05,0.076-0.342,0.242-0.508,0.318c-0.166,0.077-0.14,0.216-0.076,0.292c0.063,0.076,0.09,0.254,0.204,0.229c0.113-0.025,0.254-0.114,0.38-0.101c0.128,0.012,0.383-0.013,0.42-0.013c0.039,0,0.216,0.178,0.114,0.203c-0.101,0.025-0.229,0.013-0.445,0.025c-0.215,0.013-0.456,0.013-0.456,0.051c0,0.039,0.292,0.127,0.19,0.191c-0.102,0.063-0.203-0.013-0.331-0.026c-0.127-0.012-0.203,0.166-0.241,0.267c-0.039,0.102,0.063,0.28-0.127,0.216c-0.191-0.063-0.331-0.063-0.381-0.038c-0.051,0.025-0.203,0.076-0.331,0.114c-0.126,0.038-0.076-0.063-0.242-0.063c-0.164,0-0.164,0-0.164,0l-0.103,0.013c0,0-0.101-0.063-0.114-0.165c-0.013-0.102,0.05-0.216-0.013-0.241c-0.064-0.026-0.292,0.012-0.33,0.088c-0.038,0.076-0.077,0.216-0.026,0.28c0.052,0.063,0.204,0.19,0.064,0.152c-0.14-0.038-0.317-0.051-0.419,0.026c-0.101,0.076-0.279,0.241-0.279,0.241s-0.318,0.025-0.318,0.102c0,0.077,0,0.178-0.114,0.191c-0.115,0.013-0.268,0.05-0.42,0.076c-0.153,0.025-0.139,0.088-0.317,0.102s-0.204,0.089-0.038,0.114c0.165,0.025,0.418,0.127,0.431,0.241c0.014,0.114-0.013,0.242-0.076,0.356c-0.043,0.079-0.305,0.026-0.458,0.026c-0.152,0-0.456-0.051-0.584,0c-0.127,0.051-0.102,0.305-0.064,0.419c0.039,0.114-0.012,0.178-0.063,0.216c-0.051,0.038-0.065,0.152,0,0.204c0.063,0.051,0.114,0.165,0.166,0.178c0.051,0.013,0.215-0.038,0.279,0.025c0.064,0.064,0.127,0.216,0.165,0.178c0.039-0.038,0.089-0.203,0.153-0.166c0.064,0.039,0.216-0.012,0.331-0.025s0.177-0.14,0.292-0.204c0.114-0.063,0.05-0.063,0.013-0.14c-0.038-0.076,0.114-0.165,0.204-0.254c0.088-0.089,0.253-0.013,0.292-0.115c0.038-0.102,0.051-0.279,0.151-0.267c0.103,0.013,0.243,0.076,0.331,0.076c0.089,0,0.279-0.14,0.332-0.165c0.05-0.025,0.241-0.013,0.267,0.102c0.025,0.114,0.241,0.254,0.292,0.279c0.051,0.025,0.381,0.127,0.433,0.165c0.05,0.038,0.126,0.153,0.152,0.254c0.025,0.102,0.114,0.102,0.128,0.013c0.012-0.089-0.065-0.254,0.025-0.242c0.088,0.013,0.191-0.026,0.191-0.026s-0.243-0.165-0.331-0.203c-0.088-0.038-0.255-0.114-0.331-0.241c-0.076-0.127-0.267-0.153-0.254-0.279c0.013-0.127,0.191-0.051,0.292,0.051c0.102,0.102,0.356,0.241,0.445,0.33c0.088,0.089,0.229,0.127,0.267,0.242c0.039,0.114,0.152,0.241,0.19,0.292c0.038,0.051,0.165,0.331,0.204,0.394c0.038,0.063,0.165-0.012,0.229-0.063c0.063-0.051,0.179-0.076,0.191-0.178c0.013-0.102-0.153-0.178-0.203-0.216c-0.051-0.038,0.127-0.076,0.191-0.127c0.063-0.05,0.177-0.14,0.228-0.063c0.051,0.077,0.026,0.381,0.051,0.432c0.025,0.051,0.279,0.127,0.331,0.191c0.05,0.063,0.267,0.089,0.304,0.051c0.039-0.038,0.242,0.026,0.294,0.038c0.049,0.013,0.202-0.025,0.304-0.05c0.103-0.025,0.204-0.102,0.191,0.063c-0.013,0.165-0.051,0.419-0.179,0.546c-0.127,0.127-0.076,0.191-0.202,0.191c-0.06,0-0.113,0-0.156,0.021c-0.041-0.065-0.098-0.117-0.175-0.097c-0.152,0.038-0.344,0.038-0.47,0.19c-0.128,0.153-0.178,0.165-0.204,0.114c-0.025-0.051,0.369-0.267,0.317-0.331c-0.05-0.063-0.355-0.038-0.521-0.038c-0.166,0-0.305-0.102-0.433-0.127c-0.126-0.025-0.292,0.127-0.418,0.254c-0.128,0.127-0.216,0.038-0.331,0.038c-0.115,0-0.331-0.165-0.331-0.165s-0.216-0.089-0.305-0.089c-0.088,0-0.267-0.165-0.318-0.165c-0.05,0-0.19-0.115-0.088-0.166c0.101-0.05,0.202,0.051,0.101-0.229c-0.101-0.279-0.33-0.216-0.419-0.178c-0.088,0.039-0.724,0.025-0.775,0.025c-0.051,0-0.419,0.127-0.533,0.178c-0.116,0.051-0.318,0.115-0.369,0.14c-0.051,0.025-0.318-0.051-0.433,0.013c-0.151,0.084-0.291,0.216-0.33,0.216c-0.038,0-0.153,0.089-0.229,0.28c-0.077,0.19,0.013,0.355-0.128,0.419c-0.139,0.063-0.394,0.204-0.495,0.305c-0.102,0.101-0.229,0.458-0.355,0.623c-0.127,0.165,0,0.317,0.025,0.419c0.025,0.101,0.114,0.292-0.025,0.471c-0.14,0.178-0.127,0.266-0.191,0.279c-0.063,0.013,0.063,0.063,0.088,0.19c0.025,0.128-0.114,0.255,0.128,0.369c0.241,0.113,0.355,0.217,0.418,0.367c0.064,0.153,0.382,0.407,0.382,0.407s0.229,0.205,0.344,0.293c0.114,0.089,0.152,0.038,0.177-0.05c0.025-0.09,0.178-0.104,0.355-0.104c0.178,0,0.305,0.04,0.483,0.014c0.178-0.025,0.356-0.141,0.42-0.166c0.063-0.025,0.279-0.164,0.443-0.063c0.166,0.103,0.141,0.241,0.23,0.332c0.088,0.088,0.24,0.037,0.355-0.051c0.114-0.09,0.064-0.052,0.203,0.025c0.14,0.075,0.204,0.151,0.077,0.267c-0.128,0.113-0.051,0.293-0.128,0.47c-0.076,0.178-0.063,0.203,0.077,0.278c0.14,0.076,0.394,0.548,0.47,0.638c0.077,0.088-0.025,0.342,0.064,0.495c0.089,0.151,0.178,0.254,0.077,0.331c-0.103,0.075-0.28,0.216-0.292,0.47s0.051,0.431,0.102,0.521s0.177,0.331,0.241,0.419c0.064,0.089,0.14,0.305,0.152,0.445c0.013,0.14-0.024,0.306,0.039,0.381c0.064,0.076,0.102,0.191,0.216,0.292c0.115,0.103,0.152,0.318,0.152,0.318s0.039,0.089,0.051,0.229c0.012,0.14,0.025,0.228,0.152,0.292c0.126,0.063,0.215,0.076,0.28,0.013c0.063-0.063,0.381-0.077,0.546-0.063c0.165,0.013,0.355-0.075,0.521-0.19s0.407-0.419,0.496-0.508c0.089-0.09,0.292-0.255,0.268-0.356c-0.025-0.101-0.077-0.203,0.024-0.254c0.102-0.052,0.344-0.152,0.356-0.229c0.013-0.077-0.09-0.395-0.115-0.457c-0.024-0.064,0.064-0.18,0.165-0.306c0.103-0.128,0.421-0.216,0.471-0.267c0.051-0.053,0.191-0.267,0.217-0.433c0.024-0.167-0.051-0.369,0-0.457c0.05-0.09,0.013-0.165-0.103-0.268c-0.114-0.102-0.089-0.407-0.127-0.457c-0.037-0.051-0.013-0.319,0.063-0.345c0.076-0.023,0.242-0.279,0.344-0.393c0.102-0.114,0.394-0.47,0.534-0.496c0.139-0.025,0.355-0.229,0.368-0.343c0.013-0.115,0.38-0.547,0.394-0.635c0.013-0.09,0.166-0.42,0.102-0.497c-0.062-0.076-0.559,0.115-0.622,0.141c-0.064,0.025-0.241,0.127-0.446,0.113c-0.202-0.013-0.114-0.177-0.127-0.254c-0.012-0.076-0.228-0.368-0.279-0.381c-0.051-0.012-0.203-0.166-0.267-0.317c-0.063-0.153-0.152-0.343-0.254-0.458c-0.102-0.114-0.165-0.38-0.268-0.559c-0.101-0.178-0.189-0.407-0.279-0.572c-0.021-0.041-0.045-0.079-0.067-0.117c0.118-0.029,0.289-0.082,0.31-0.009c0.024,0.088,0.165,0.279,0.19,0.419s0.165,0.089,0.178,0.216c0.014,0.128,0.14,0.433,0.19,0.47c0.052,0.038,0.28,0.242,0.318,0.318c0.038,0.076,0.089,0.178,0.127,0.369c0.038,0.19,0.076,0.444,0.179,0.482c0.102,0.038,0.444-0.064,0.508-0.102s0.482-0.242,0.635-0.255c0.153-0.012,0.179-0.115,0.368-0.152c0.191-0.038,0.331-0.177,0.458-0.28c0.127-0.101,0.28-0.355,0.33-0.444c0.052-0.088,0.179-0.152,0.115-0.253c-0.063-0.103-0.331-0.254-0.433-0.268c-0.102-0.012-0.089-0.178-0.152-0.178s-0.051,0.088-0.178,0.153c-0.127,0.063-0.255,0.19-0.344,0.165s0.026-0.089-0.113-0.203s-0.192-0.14-0.192-0.228c0-0.089-0.278-0.255-0.304-0.382c-0.026-0.127,0.19-0.305,0.254-0.19c0.063,0.114,0.115,0.292,0.279,0.368c0.165,0.076,0.318,0.204,0.395,0.229c0.076,0.025,0.267-0.14,0.33-0.114c0.063,0.024,0.191,0.253,0.306,0.292c0.113,0.038,0.495,0.051,0.559,0.051s0.33,0.013,0.381-0.063c0.051-0.076,0.089-0.076,0.153-0.076c0.062,0,0.177,0.229,0.267,0.254c0.089,0.025,0.254,0.013,0.241,0.179c-0.012,0.164,0.076,0.305,0.165,0.317c0.09,0.012,0.293-0.191,0.293-0.191s0,0.318-0.012,0.433c-0.014,0.113,0.139,0.534,0.139,0.534s0.19,0.393,0.241,0.482s0.267,0.355,0.267,0.47c0,0.115,0.025,0.293,0.103,0.293c0.076,0,0.152-0.203,0.24-0.331c0.091-0.126,0.116-0.305,0.153-0.432c0.038-0.127,0.038-0.356,0.038-0.444c0-0.09,0.075-0.166,0.255-0.242c0.178-0.076,0.304-0.292,0.456-0.407c0.153-0.115,0.141-0.305,0.446-0.305c0.305,0,0.278,0,0.355-0.077c0.076-0.076,0.151-0.127,0.19,0.013c0.038,0.14,0.254,0.343,0.292,0.394c0.038,0.052,0.114,0.191,0.103,0.344c-0.013,0.152,0.012,0.33,0.075,0.33s0.191-0.216,0.191-0.216s0.279-0.189,0.267,0.013c-0.014,0.203,0.025,0.419,0.025,0.545c0,0.053,0.042,0.135,0.088,0.21c-0.005,0.059-0.004,0.119-0.009,0.178C27.388,17.153,27.387,17.327,27.436,17.39zM20.382,12.064c0.076,0.05,0.102,0.127,0.152,0.203c0.052,0.076,0.14,0.05,0.203,0.114c0.063,0.064-0.178,0.14-0.075,0.216c0.101,0.077,0.151,0.381,0.165,0.458c0.013,0.076-0.279,0.114-0.369,0.102c-0.089-0.013-0.354-0.102-0.445-0.127c-0.089-0.026-0.139-0.343-0.025-0.331c0.116,0.013,0.141-0.025,0.267-0.139c0.128-0.115-0.189-0.166-0.278-0.191c-0.089-0.025-0.268-0.305-0.331-0.394c-0.062-0.089-0.014-0.228,0.141-0.331c0.076-0.051,0.279,0.063,0.381,0c0.101-0.063,0.203-0.14,0.241-0.165c0.039-0.025,0.293,0.038,0.33,0.114c0.039,0.076,0.191,0.191,0.141,0.229c-0.052,0.038-0.281,0.076-0.356,0c-0.075-0.077-0.255,0.012-0.268,0.152C20.242,12.115,20.307,12.013,20.382,12.064zM16.875,12.28c-0.077-0.025,0.025-0.178,0.102-0.229c0.075-0.051,0.164-0.178,0.241-0.305c0.076-0.127,0.178-0.14,0.241-0.127c0.063,0.013,0.203,0.241,0.241,0.318c0.038,0.076,0.165-0.026,0.217-0.051c0.05-0.025,0.127-0.102,0.14-0.165s0.127-0.102,0.254-0.102s0.013,0.102-0.076,0.127c-0.09,0.025-0.038,0.077,0.113,0.127c0.153,0.051,0.293,0.191,0.459,0.279c0.165,0.089,0.19,0.267,0.088,0.292c-0.101,0.025-0.406,0.051-0.521,0.038c-0.114-0.013-0.254-0.127-0.419-0.153c-0.165-0.025-0.369-0.013-0.433,0.077s-0.292,0.05-0.395,0.05c-0.102,0-0.228,0.127-0.253,0.077C16.875,12.534,16.951,12.306,16.875,12.28zM17.307,9.458c0.063-0.178,0.419,0.038,0.355,0.127C17.599,9.675,17.264,9.579,17.307,9.458zM17.802,18.584c0.063,0.102-0.14,0.431-0.254,0.407c-0.113-0.027-0.076-0.318-0.038-0.382C17.548,18.545,17.769,18.529,17.802,18.584zM13.189,12.674c0.025-0.051-0.039-0.153-0.127-0.013C13.032,12.71,13.164,12.725,13.189,12.674zM20.813,8.035c0.141,0.076,0.339,0.107,0.433,0.013c0.076-0.076,0.013-0.204-0.05-0.216c-0.064-0.013-0.104-0.115,0.062-0.203c0.165-0.089,0.343-0.204,0.534-0.229c0.19-0.025,0.622-0.038,0.774,0c0.152,0.039,0.382-0.166,0.445-0.254s-0.203-0.152-0.279-0.051c-0.077,0.102-0.444,0.076-0.521,0.051c-0.076-0.025-0.686,0.102-0.812,0.102c-0.128,0-0.179,0.152-0.356,0.229c-0.179,0.076-0.42,0.191-0.509,0.229c-0.088,0.038-0.177,0.19-0.101,0.216C20.509,7.947,20.674,7.959,20.813,8.035zM14.142,12.674c0.064-0.089-0.051-0.217-0.114-0.217c-0.12,0-0.178,0.191-0.103,0.254C14.002,12.776,14.078,12.763,14.142,12.674zM14.714,13.017c0.064,0.025,0.114,0.102,0.165,0.114c0.052,0.013,0.217,0,0.167-0.127s-0.167-0.127-0.204-0.127c-0.038,0-0.203-0.038-0.267,0C14.528,12.905,14.65,12.992,14.714,13.017zM11.308,10.958c0.101,0.013,0.217-0.063,0.305-0.101c0.088-0.038,0.216-0.114,0.216-0.229c0-0.114-0.025-0.216-0.077-0.267c-0.051-0.051-0.14-0.064-0.216-0.051c-0.115,0.02-0.127,0.14-0.203,0.14c-0.076,0-0.165,0.025-0.14,0.114s0.077,0.152,0,0.19C11.117,10.793,11.205,10.946,11.308,10.958zM11.931,10.412c0.127,0.051,0.394,0.102,0.292,0.153c-0.102,0.051-0.28,0.19-0.305,0.267s0.216,0.153,0.216,0.153s-0.077,0.089-0.013,0.114c0.063,0.025,0.102-0.089,0.203-0.089c0.101,0,0.304,0.063,0.406,0.063c0.103,0,0.267-0.14,0.254-0.229c-0.013-0.089-0.14-0.229-0.254-0.28c-0.113-0.051-0.241-0.28-0.317-0.331c-0.076-0.051,0.076-0.178-0.013-0.267c-0.09-0.089-0.153-0.076-0.255-0.14c-0.102-0.063-0.191,0.013-0.254,0.089c-0.063,0.076-0.14-0.013-0.217,0.012c-0.102,0.035-0.063,0.166-0.012,0.229C11.714,10.221,11.804,10.361,11.931,10.412zM24.729,17.198c-0.083,0.037-0.153,0.47,0,0.521c0.152,0.052,0.241-0.202,0.191-0.267C24.868,17.39,24.843,17.147,24.729,17.198zM20.114,20.464c-0.159-0.045-0.177,0.166-0.304,0.306c-0.128,0.141-0.267,0.254-0.317,0.241c-0.052-0.013-0.331,0.089-0.242,0.279c0.089,0.191,0.076,0.382-0.013,0.472c-0.089,0.088,0.076,0.342,0.052,0.482c-0.026,0.139,0.037,0.229,0.215,0.229s0.242-0.064,0.318-0.229c0.076-0.166,0.088-0.331,0.164-0.47c0.077-0.141,0.141-0.434,0.179-0.51c0.038-0.075,0.114-0.316,0.102-0.457C20.254,20.669,20.204,20.489,20.114,20.464zM10.391,8.802c-0.069-0.06-0.229-0.102-0.306-0.11c-0.076-0.008-0.152,0.06-0.321,0.06c-0.168,0-0.279,0.067-0.347,0C9.349,8.684,9.068,8.65,9.042,8.692C9.008,8.749,8.941,8.751,9.008,8.87c0.069,0.118,0.12,0.186,0.179,0.178s0.262-0.017,0.288,0.051C9.5,9.167,9.569,9.226,9.712,9.184c0.145-0.042,0.263-0.068,0.296-0.119c0.033-0.051,0.263-0.059,0.263-0.059S10.458,8.861,10.391,8.802z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Globe=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Globe",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM19.158,23.269c-0.079,0.064-0.183,0.13-0.105,0.207c0.078,0.078-0.09,0.131-0.09,0.17s0.104,0.246,0.052,0.336c-0.052,0.092-0.091,0.223-0.13,0.301c-0.039,0.077-0.131,0.155-0.104,0.272c0.025,0.116-0.104,0.077-0.104,0.194c0,0.116,0.116,0.065,0.09,0.208c-0.025,0.144-0.09,0.183-0.09,0.285c0,0.104,0.064,0.247,0.064,0.286s-0.064,0.17-0.155,0.272c-0.092,0.104-0.155,0.17-0.144,0.233c0.014,0.065,0.104,0.144,0.091,0.184c-0.013,0.037-0.129,0.168-0.116,0.259c0.014,0.09,0.129,0.053,0.155,0.116c0.026,0.065-0.155,0.118-0.078,0.183c0.078,0.064,0.183,0.051,0.156,0.208c-0.019,0.112,0.064,0.163,0.126,0.198c-0.891,0.221-1.818,0.352-2.777,0.352C9.639,27.533,4.466,22.36,4.466,16c0-2.073,0.557-4.015,1.518-5.697c0.079-0.042,0.137-0.069,0.171-0.062c0.065,0.013,0.079,0.104,0.183,0.13c0.104,0.026,0.195-0.078,0.26-0.117c0.064-0.039,0.116-0.195,0.051-0.182c-0.065,0.013-0.234,0-0.234,0s0.183-0.104,0.183-0.169s0.025-0.169,0.129-0.208C6.83,9.655,6.83,9.681,6.765,9.837C6.7,9.993,6.896,9.928,6.973,9.863s0.13-0.013,0.272-0.104c0.143-0.091,0.143-0.143,0.221-0.143c0.078,0,0.221,0.143,0.299,0.091c0.077-0.052,0.299,0.065,0.429,0.065c0.129,0,0.545,0.169,0.624,0.169c0.078,0,0.312,0.09,0.325,0.259c0.013,0.169,0.09,0.156,0.168,0.156s0.26,0.065,0.26,0.13c0,0.065-0.052,0.325,0.078,0.39c0.129,0.064,0.247,0.169,0.299,0.143c0.052-0.026,0-0.233-0.064-0.26c-0.065-0.026-0.027-0.117-0.052-0.169c-0.026-0.051,0.078-0.051,0.117,0.039c0.039,0.091,0.143,0.26,0.208,0.26c0.064,0,0.208,0.156,0.168,0.247c-0.039,0.091,0.039,0.221,0.156,0.221c0.116,0,0.26,0.182,0.312,0.195c0.052,0.013,0.117,0.078,0.117,0.117c0,0.04,0.065,0.26,0.065,0.351c0,0.09-0.04,0.454-0.053,0.597s0.104,0.39,0.234,0.52c0.129,0.13,0.246,0.377,0.324,0.429c0.079,0.052,0.13,0.195,0.247,0.182c0.117-0.013,0.195,0.078,0.299,0.26c0.104,0.182,0.208,0.48,0.286,0.506c0.078,0.026,0.208,0.117,0.142,0.182c-0.064,0.064-0.168,0.208-0.051,0.208c0.117,0,0.156-0.065,0.247,0.053c0.09,0.116,0.208,0.181,0.194,0.26c-0.013,0.077,0.104,0.103,0.156,0.116c0.052,0.013,0.169,0.247,0.286,0.143c0.117-0.104-0.155-0.259-0.234-0.326c-0.078-0.064,0-0.207-0.182-0.35c-0.182-0.143-0.156-0.247-0.286-0.351c-0.13-0.104-0.233-0.195-0.104-0.286c0.13-0.091,0.143,0.091,0.195,0.208c0.052,0.116,0.324,0.351,0.441,0.454c0.117,0.104,0.326,0.468,0.39,0.468s0.247,0.208,0.247,0.208s0.103,0.168,0.064,0.22c-0.039,0.052,0.053,0.247,0.144,0.299c0.09,0.052,0.455,0.22,0.507,0.247c0.052,0.027,0.155,0.221,0.299,0.221c0.142,0,0.247,0.014,0.286,0.053c0.039,0.038,0.155,0.194,0.234,0.104c0.078-0.092,0.09-0.131,0.208-0.131c0.117,0,0.168,0.091,0.233,0.156c0.065,0.065,0.247,0.235,0.338,0.222c0.091-0.013,0.208,0.104,0.273,0.064s0.169,0.025,0.22,0.052c0.054,0.026,0.234,0.118,0.222,0.272c-0.013,0.157,0.103,0.195,0.182,0.234c0.078,0.039,0.182,0.13,0.248,0.195c0.064,0.063,0.206,0.077,0.246,0.116c0.039,0.039,0.065,0.117,0.182,0.052c0.116-0.064,0.092-0.181,0.092-0.181s0.129-0.026,0.194,0.026c0.064,0.05,0.104,0.22,0.144,0.246c0.038,0.026,0.115,0.221,0.063,0.362c-0.051,0.145-0.038,0.286-0.091,0.286c-0.052,0-0.116,0.17-0.195,0.209c-0.076,0.039-0.285,0.221-0.272,0.286c0.013,0.063,0.131,0.258,0.104,0.35c-0.025,0.091-0.194,0.195-0.154,0.338c0.038,0.144,0.312,0.183,0.323,0.312c0.014,0.131,0.209,0.417,0.235,0.546c0.025,0.13,0.246,0.272,0.246,0.453c0,0.184,0.312,0.3,0.377,0.312c0.063,0.013,0.182,0.131,0.272,0.17s0.169,0.116,0.233,0.221s0.053,0.261,0.053,0.299c0,0.039-0.039,0.44-0.078,0.674C19.145,23.021,19.235,23.203,19.158,23.269zM10.766,11.188c0.039,0.013,0.117,0.091,0.156,0.091c0.04,0,0.234,0.156,0.286,0.208c0.053,0.052,0.053,0.195-0.013,0.208s-0.104-0.143-0.117-0.208c-0.013-0.065-0.143-0.065-0.208-0.104C10.805,11.344,10.66,11.152,10.766,11.188zM27.51,16.41c-0.144,0.182-0.13,0.272-0.195,0.286c-0.064,0.013,0.065,0.065,0.09,0.194c0.022,0.112-0.065,0.224,0.063,0.327c-0.486,4.619-3.71,8.434-8.016,9.787c-0.007-0.011-0.019-0.025-0.021-0.034c-0.027-0.078-0.027-0.233,0.064-0.285c0.091-0.053,0.312-0.233,0.363-0.272c0.052-0.04,0.13-0.221,0.091-0.247c-0.038-0.026-0.232,0-0.26-0.039c-0.026-0.039-0.026-0.092,0.104-0.182c0.13-0.091,0.195-0.222,0.247-0.26c0.052-0.039,0.155-0.117,0.195-0.209c0.038-0.09-0.041-0.039-0.118-0.039s-0.117-0.142-0.117-0.207s0.195,0.026,0.339,0.052c0.143,0.024,0.077-0.065,0.064-0.142c-0.013-0.078,0.026-0.209,0.105-0.17c0.076,0.039,0.479-0.013,0.531-0.026c0.052-0.013,0.194-0.246,0.246-0.312c0.053-0.065,0.064-0.129,0-0.168c-0.065-0.04-0.143-0.184-0.168-0.221c-0.026-0.041-0.039-0.274-0.013-0.34c0.025-0.063,0,0.377,0.181,0.43c0.183,0.052,0.286,0.078,0.455-0.078c0.169-0.155,0.298-0.26,0.312-0.363c0.013-0.104,0.052-0.209,0.117-0.246c0.065-0.039,0.104,0.103,0.182-0.065c0.078-0.17,0.156-0.157,0.234-0.299c0.077-0.144-0.13-0.325,0.024-0.43c0.157-0.103,0.43-0.233,0.43-0.233s0.078-0.039,0.234-0.078c0.155-0.038,0.324-0.014,0.376-0.09c0.052-0.079,0.104-0.247,0.182-0.338c0.079-0.092,0.169-0.234,0.13-0.299c-0.039-0.065,0.104-0.352,0.091-0.429c-0.013-0.078-0.13-0.261,0.065-0.416s0.402-0.391,0.416-0.454c0.012-0.065,0.169-0.338,0.154-0.469c-0.012-0.129-0.154-0.285-0.245-0.325c-0.092-0.037-0.286-0.05-0.364-0.154s-0.299-0.208-0.377-0.182c-0.077,0.026-0.208,0.051-0.312-0.015c-0.104-0.063-0.272-0.143-0.337-0.194c-0.066-0.051-0.234-0.09-0.312-0.09s-0.065-0.053-0.182,0.103c-0.117,0.157,0,0.209-0.208,0.182c-0.209-0.024,0.025-0.038,0.144-0.194c0.115-0.155-0.014-0.247-0.144-0.207c-0.13,0.039-0.039,0.117-0.247,0.156c-0.207,0.038-0.207-0.092-0.077-0.117c0.13-0.026,0.363-0.143,0.363-0.194c0-0.053-0.026-0.196-0.13-0.196s-0.078-0.129-0.233-0.297c-0.156-0.17-0.351-0.274-0.508-0.249c-0.154,0.026-0.272,0.065-0.35-0.076c-0.078-0.144-0.169-0.17-0.222-0.247c-0.051-0.078-0.182,0-0.221-0.039s-0.039-0.039-0.039-0.039s-0.169,0.039-0.077-0.078c0.09-0.117,0.129-0.338,0.09-0.325c-0.038,0.013-0.104,0.196-0.168,0.183c-0.064-0.013-0.014-0.04-0.144-0.117c-0.13-0.078-0.337-0.013-0.337,0.052c0,0.065-0.065,0.117-0.065,0.117s-0.039-0.038-0.078-0.117c-0.039-0.078-0.221-0.091-0.312-0.013c-0.09,0.078-0.142-0.196-0.207-0.196s-0.194,0.065-0.26,0.184c-0.064,0.116-0.038,0.285-0.092,0.272c-0.05-0.013-0.063-0.233-0.05-0.312c0.012-0.079,0.155-0.208,0.05-0.234c-0.103-0.026-0.259,0.13-0.323,0.143c-0.065,0.013-0.195,0.104-0.273,0.209c-0.077,0.103-0.116,0.168-0.195,0.207c-0.077,0.039-0.193,0-0.167-0.039c0.025-0.039-0.222-0.181-0.261-0.13c-0.04,0.052-0.155,0.091-0.272,0.144c-0.117,0.052-0.222-0.065-0.247-0.117s-0.079-0.064-0.091-0.234c-0.013-0.168,0.027-0.351,0.065-0.454c0.038-0.104-0.195-0.312-0.286-0.3c-0.091,0.015-0.182,0.105-0.272,0.091c-0.092-0.012-0.052-0.038-0.195-0.038c-0.143,0-0.026-0.025,0-0.143c0.025-0.116-0.052-0.273,0.092-0.377c0.142-0.104,0.091-0.351,0-0.363c-0.092-0.014-0.261,0.039-0.377,0.026c-0.116-0.014-0.208,0.091-0.169,0.207c0.039,0.117-0.065,0.195-0.104,0.183c-0.039-0.013-0.09-0.078-0.234,0.026c-0.142,0.103-0.194,0.064-0.337-0.052c-0.143-0.118-0.299-0.234-0.325-0.416c-0.026-0.182-0.04-0.364,0.013-0.468c0.051-0.104,0.051-0.285-0.026-0.312c-0.078-0.025,0.09-0.155,0.181-0.181c0.092-0.026,0.234-0.143,0.26-0.195c0.026-0.052,0.156-0.04,0.298-0.04c0.143,0,0.169,0,0.312,0.078c0.143,0.078,0.169-0.039,0.169-0.078c0-0.039,0.052-0.117,0.208-0.104c0.156,0.013,0.376-0.052,0.416-0.013s0.116,0.195,0.194,0.143c0.079-0.051,0.104-0.143,0.131,0.014c0.025,0.155,0.09,0.39,0.208,0.429c0.116,0.039,0.052,0.194,0.168,0.207c0.115,0.013,0.17-0.246,0.131-0.337c-0.04-0.09-0.118-0.363-0.183-0.428c-0.064-0.065-0.064-0.234,0.064-0.286c0.13-0.052,0.442-0.312,0.532-0.389c0.092-0.079,0.338-0.144,0.261-0.248c-0.078-0.104-0.104-0.168-0.104-0.247s0.078-0.052,0.117,0s0.194-0.078,0.155-0.143c-0.038-0.064-0.026-0.155,0.065-0.143c0.091,0.013,0.116-0.065,0.078-0.117c-0.039-0.052,0.091-0.117,0.182-0.091c0.092,0.026,0.325-0.013,0.364-0.065c0.038-0.052-0.078-0.104-0.078-0.208c0-0.104,0.155-0.195,0.247-0.208c0.091-0.013,0.207,0,0.221-0.039c0.012-0.039,0.143-0.143,0.155-0.052c0.014,0.091,0,0.247,0.104,0.247c0.104,0,0.232-0.117,0.272-0.129c0.038-0.013,0.286-0.065,0.338-0.078c0.052-0.013,0.363-0.039,0.325-0.13c-0.039-0.09-0.078-0.181-0.118-0.22c-0.039-0.039-0.077,0.013-0.13,0.078c-0.051,0.065-0.143,0.065-0.168,0.013c-0.026-0.051,0.012-0.207-0.078-0.156c-0.092,0.052-0.104,0.104-0.157,0.078c-0.052-0.026-0.103-0.117-0.103-0.117s0.129-0.064,0.038-0.182c-0.09-0.117-0.221-0.091-0.35-0.025c-0.13,0.064-0.118,0.051-0.273,0.09s-0.234,0.078-0.234,0.078s0.209-0.129,0.299-0.208c0.091-0.078,0.209-0.117,0.286-0.195c0.078-0.078,0.285,0.039,0.285,0.039s0.105-0.104,0.105-0.039s-0.027,0.234,0.051,0.234c0.079,0,0.299-0.104,0.21-0.131c-0.093-0.026,0.129,0,0.219-0.065c0.092-0.065,0.194-0.065,0.247-0.09c0.052-0.026,0.092-0.143,0.182-0.143c0.092,0,0.13,0.117,0,0.195s-0.143,0.273-0.208,0.325c-0.064,0.052-0.026,0.117,0.078,0.104c0.104-0.013,0.194,0.013,0.286-0.013s0.143,0.026,0.168,0.065c0.026,0.039,0.104-0.039,0.104-0.039s0.169-0.039,0.221,0.026c0.053,0.064,0.092-0.039,0.053-0.104c-0.039-0.064-0.092-0.129-0.13-0.208c-0.039-0.078-0.091-0.104-0.194-0.078c-0.104,0.026-0.13-0.026-0.195-0.064c-0.065-0.04-0.118,0.052-0.065-0.04c0.053-0.09,0.078-0.117,0.117-0.195c0.039-0.078,0.209-0.221,0.039-0.259c-0.169-0.04-0.222-0.065-0.247-0.143c-0.026-0.078-0.221-0.221-0.272-0.221c-0.053,0-0.233,0-0.247-0.065c-0.013-0.065-0.143-0.208-0.208-0.273c-0.064-0.065-0.312-0.351-0.351-0.377c-0.039-0.026-0.091-0.013-0.208,0.143c-0.116,0.157-0.22,0.183-0.312,0.144c-0.091-0.039-0.104-0.026-0.193-0.13c-0.093-0.104,0.09-0.117,0.051-0.182c-0.04-0.064-0.247-0.091-0.377-0.104c-0.13-0.013-0.221-0.156-0.416-0.169c-0.194-0.013-0.428,0.026-0.493,0.026c-0.064,0-0.064,0.091-0.09,0.234c-0.027,0.143,0.09,0.182-0.027,0.208c-0.116,0.026-0.169,0.039-0.052,0.091c0.117,0.052,0.273,0.26,0.273,0.26s0,0.117-0.092,0.182c-0.09,0.065-0.182,0.13-0.233,0.053c-0.053-0.079-0.195-0.065-0.155,0.013c0.038,0.078,0.116,0.117,0.116,0.195c0,0.077,0.117,0.272,0.039,0.337c-0.078,0.065-0.168,0.014-0.233,0.026s-0.131-0.104-0.078-0.13c0.051-0.026-0.014-0.221-0.014-0.221s-0.155,0.221-0.143,0.104c0.014-0.117-0.064-0.13-0.064-0.221c0-0.091-0.079-0.13-0.194-0.104c-0.118,0.026-0.26-0.04-0.482-0.079c-0.22-0.039-0.311-0.064-0.493-0.156c-0.182-0.091-0.247-0.026-0.338-0.013c-0.091,0.013-0.052-0.182-0.169-0.207c-0.116-0.027-0.181,0.025-0.207-0.144c-0.026-0.168,0.039-0.208,0.324-0.39c0.286-0.182,0.247-0.26,0.468-0.286c0.22-0.026,0.325,0.026,0.325-0.039s0.052-0.325,0.052-0.195S16.95,9.109,16.832,9.2c-0.116,0.091-0.052,0.104,0.04,0.104c0.091,0,0.259-0.091,0.259-0.091s0.208-0.091,0.26-0.013c0.053,0.078,0.053,0.156,0.144,0.156s0.285-0.104,0.116-0.195c-0.168-0.091-0.272-0.078-0.376-0.182s-0.078-0.065-0.195-0.039c-0.116,0.026-0.116-0.039-0.156-0.039s-0.104,0.026-0.13-0.026c-0.025-0.052,0.014-0.065,0.145-0.065c0.129,0,0.285,0.039,0.285,0.039s0.155-0.052,0.194-0.065c0.039-0.013,0.247-0.039,0.208-0.155c-0.04-0.117-0.169-0.117-0.208-0.156s0.078-0.09,0.143-0.117c0.065-0.026,0.247,0,0.247,0s0.117,0.013,0.117-0.039S17.897,8.2,17.976,8.239s0,0.156,0.117,0.13c0.116-0.026,0.143,0,0.207,0.039c0.065,0.039-0.013,0.195-0.077,0.221c-0.065,0.025-0.169,0.077-0.026,0.09c0.144,0.014,0.246,0.014,0.246,0.014s0.092-0.091,0.131-0.169c0.038-0.078,0.104-0.026,0.155,0c0.052,0.025,0.247,0.065,0.065,0.117c-0.183,0.052-0.221,0.117-0.26,0.182c-0.038,0.065-0.053,0.104-0.221,0.065c-0.17-0.039-0.26-0.026-0.299,0.039c-0.039,0.064-0.013,0.273,0.053,0.247c0.063-0.026,0.129-0.026,0.207-0.052c0.078-0.026,0.39,0.026,0.467,0.013c0.078-0.013,0.209,0.13,0.248,0.104c0.039-0.026,0.117,0.052,0.194,0.104c0.078,0.052,0.052-0.117,0.194-0.013c0.144,0.104,0.065,0.104,0.144,0.104c0.076,0,0.246,0.013,0.246,0.013s0.014-0.129,0.144-0.104c0.13,0.026,0.245,0.169,0.232,0.064c-0.012-0.103,0.013-0.181-0.09-0.259c-0.104-0.078-0.272-0.13-0.299-0.169c-0.026-0.039-0.052-0.091-0.013-0.117c0.039-0.025,0.221,0.013,0.324,0.079c0.104,0.065,0.195,0.13,0.273,0.078c0.077-0.052,0.17-0.078,0.208-0.117c0.038-0.04,0.13-0.156,0.13-0.156s-0.391-0.051-0.441-0.117c-0.053-0.065-0.235-0.156-0.287-0.156s-0.194,0.091-0.246-0.039s-0.052-0.286-0.105-0.299c-0.05-0.013-0.597-0.091-0.674-0.13c-0.078-0.039-0.39-0.13-0.507-0.195s-0.286-0.156-0.389-0.156c-0.104,0-0.533,0.052-0.611,0.039c-0.078-0.013-0.312,0.026-0.403,0.039c-0.091,0.013,0.117,0.182-0.077,0.221c-0.195,0.039-0.169,0.065-0.13-0.13c0.038-0.195-0.131-0.247-0.299-0.169c-0.169,0.078-0.442,0.13-0.377,0.221c0.065,0.091-0.012,0.157,0.117,0.247c0.13,0.091,0.183,0.117,0.35,0.104c0.17-0.013,0.339,0.025,0.339,0.025s0,0.157-0.064,0.182c-0.065,0.026-0.169,0.026-0.196,0.104c-0.025,0.078-0.155,0.117-0.155,0.078s0.065-0.169-0.026-0.234c-0.09-0.065-0.117-0.078-0.221-0.013c-0.104,0.065-0.116,0.091-0.169-0.013C16.053,8.291,15.897,8.2,15.897,8.2s-0.104-0.129-0.182-0.194c-0.077-0.065-0.22-0.052-0.234,0.013c-0.013,0.064,0.026,0.129,0.078,0.247c0.052,0.117,0.104,0.337,0.013,0.351c-0.091,0.013-0.104,0.026-0.195,0.052c-0.091,0.026-0.13-0.039-0.13-0.143s-0.04-0.195-0.013-0.234c0.026-0.039-0.104,0.027-0.234,0c-0.13-0.025-0.233,0.052-0.104,0.092c0.13,0.039,0.157,0.194,0.039,0.233c-0.117,0.039-0.559,0-0.702,0s-0.35,0.039-0.39-0.039c-0.039-0.078,0.118-0.129,0.208-0.129c0.091,0,0.363,0.012,0.467-0.13c0.104-0.143-0.13-0.169-0.233-0.169c-0.104,0-0.183-0.039-0.299-0.155c-0.118-0.117,0.078-0.195,0.052-0.247c-0.026-0.052-0.156-0.014-0.272-0.014c-0.117,0-0.299-0.09-0.299,0.014c0,0.104,0.143,0.402,0.052,0.337c-0.091-0.064-0.078-0.156-0.143-0.234c-0.065-0.078-0.168-0.065-0.299-0.052c-0.129,0.013-0.35,0.052-0.415,0.039c-0.064-0.013-0.013-0.013-0.156-0.078c-0.142-0.065-0.208-0.052-0.312-0.117C12.091,7.576,12.182,7.551,12,7.538c-0.181-0.013-0.168,0.09-0.35,0.065c-0.182-0.026-0.234,0.013-0.416,0c-0.182-0.013-0.272-0.026-0.299,0.065c-0.025,0.091-0.078,0.247-0.156,0.247c-0.077,0-0.169,0.091,0.078,0.104c0.247,0.013,0.105,0.129,0.325,0.117c0.221-0.013,0.416-0.013,0.468-0.117c0.052-0.104,0.091-0.104,0.117-0.065c0.025,0.039,0.22,0.272,0.22,0.272s0.131,0.104,0.183,0.13c0.051,0.026-0.052,0.143-0.156,0.078c-0.104-0.065-0.299-0.051-0.377-0.116c-0.078-0.065-0.429-0.065-0.52-0.052c-0.09,0.013-0.247-0.039-0.299-0.039c-0.051,0-0.221,0.13-0.221,0.13S10.532,8.252,10.494,8.2c-0.039-0.052-0.104,0.052-0.156,0.065c-0.052,0.013-0.208-0.104-0.364-0.052C9.818,8.265,9.87,8.317,9.649,8.304s-0.272-0.052-0.35-0.039C9.22,8.278,9.22,8.278,9.22,8.278S9.233,8.33,9.143,8.382C9.052,8.434,8.986,8.499,8.921,8.421C8.857,8.343,8.818,8.343,8.779,8.33c-0.04-0.013-0.118-0.078-0.286-0.04C8.324,8.33,8.064,8.239,8.013,8.239c-0.04,0-0.313-0.015-0.491-0.033c2.109-2.292,5.124-3.74,8.478-3.74c2.128,0,4.117,0.589,5.83,1.598c-0.117,0.072-0.319,0.06-0.388,0.023c-0.078-0.043-0.158-0.078-0.475-0.061c-0.317,0.018-0.665,0.122-0.595,0.226c0.072,0.104-0.142,0.165-0.197,0.113c-0.055-0.052-0.309,0.06-0.293,0.165c0.016,0.104-0.039,0.225-0.175,0.199c-0.134-0.027-0.229,0.06-0.237,0.146c-0.007,0.087-0.309,0.147-0.332,0.147c-0.024,0-0.412-0.008-0.27,0.095c0.097,0.069,0.15,0.027,0.27,0.052c0.119,0.026,0.214,0.217,0.277,0.243c0.062,0.026,0.15,0,0.189-0.052c0.04-0.052,0.095-0.234,0.095-0.234s0,0.173,0.097,0.208c0.095,0.035,0.331-0.026,0.395-0.017c0.064,0.008,0.437,0.061,0.538,0.112c0.104,0.052,0.356,0.087,0.428,0.199c0.071,0.113,0.08,0.503,0.119,0.546c0.04,0.043,0.174-0.139,0.205-0.182c0.031-0.044,0.198-0.018,0.254,0.042c0.056,0.061,0.182,0.208,0.175,0.269C21.9,8.365,21.877,8.459,21.83,8.425c-0.048-0.034-0.127-0.025-0.096-0.095c0.032-0.069,0.048-0.217-0.015-0.217c-0.064,0-0.119,0-0.119,0s-0.12-0.035-0.199,0.095s-0.015,0.26,0.04,0.26s0.184,0,0.184,0.034c0,0.035-0.136,0.139-0.128,0.2c0.009,0.061,0.11,0.268,0.144,0.312c0.031,0.043,0.197,0.086,0.244,0.096c0.049,0.008-0.111,0.017-0.07,0.077c0.04,0.061,0.102,0.208,0.189,0.243c0.087,0.035,0.333,0.19,0.363,0.26c0.032,0.069,0.222-0.052,0.262-0.061c0.04-0.008,0.032,0.182,0.143,0.191c0.11,0.008,0.15-0.018,0.245-0.096s0.072-0.182,0.079-0.26c0.009-0.078,0-0.138,0.104-0.113c0.104,0.026,0.158-0.018,0.15-0.104c-0.008-0.087-0.095-0.191,0.07-0.217c0.167-0.026,0.254-0.138,0.357-0.138c0.103,0,0.389,0.043,0.419,0c0.032-0.043,0.167-0.243,0.254-0.251c0.067-0.007,0.224-0.021,0.385-0.042c1.582,1.885,2.561,4.284,2.673,6.905c-0.118,0.159-0.012,0.305,0.021,0.408c0.001,0.03,0.005,0.058,0.005,0.088c0,0.136-0.016,0.269-0.021,0.404C27.512,16.406,27.512,16.408,27.51,16.41zM17.794,12.084c-0.064,0.013-0.169-0.052-0.169-0.143s-0.091,0.169-0.04,0.247c0.053,0.078-0.104,0.169-0.155,0.169s-0.091-0.116-0.078-0.233c0.014-0.117-0.077-0.221-0.221-0.208c-0.143,0.014-0.208,0.13-0.259,0.169c-0.053,0.039-0.053,0.259-0.04,0.312s0.013,0.235-0.116,0.221c-0.118-0.013-0.092-0.233-0.079-0.312c0.014-0.078-0.039-0.273,0.014-0.376c0.053-0.104,0.207-0.143,0.312-0.156s0.324,0.065,0.363,0.052c0.04-0.014,0.222-0.014,0.312,0C17.729,11.837,17.858,12.071,17.794,12.084zM18.027,12.123c0.04,0.026,0.311-0.039,0.364,0.026c0.051,0.065-0.054,0.078-0.183,0.13c-0.129,0.052-0.169,0.039-0.221,0.104s-0.221,0.09-0.299,0.168c-0.078,0.079-0.217,0.125-0.246,0.065c-0.04-0.078,0.013-0.039,0.025-0.078c0.013-0.039,0.245-0.129,0.245-0.129S17.988,12.097,18.027,12.123zM16.988,11.668c-0.038,0.013-0.182-0.026-0.3-0.026c-0.116,0-0.091-0.078-0.143-0.064c-0.051,0.013-0.168,0.039-0.247,0.078c-0.078,0.039-0.208,0.03-0.208-0.04c0-0.104,0.052-0.078,0.221-0.143c0.169-0.065,0.352-0.247,0.429-0.169c0.078,0.078,0.221,0.169,0.312,0.182C17.144,11.5,17.026,11.655,16.988,11.668zM15.659,7.637c-0.079,0.026-0.347,0.139-0.321,0.199c0.01,0.023,0.078,0.069,0.19,0.052c0.113-0.018,0.276-0.035,0.355-0.043c0.078-0.009,0.095-0.139,0.009-0.147C15.805,7.689,15.736,7.611,15.659,7.637zM14.698,7.741c-0.061,0.026-0.243-0.043-0.338,0.018c-0.061,0.038-0.026,0.164,0.07,0.172c0.095,0.009,0.259-0.06,0.276-0.008c0.018,0.052,0.078,0.286,0.234,0.208c0.156-0.078,0.147-0.147,0.19-0.156c0.043-0.009-0.008-0.199-0.078-0.243C14.983,7.689,14.758,7.715,14.698,7.741zM14.385,7.005c0.017,0.044-0.008,0.078,0.113,0.095c0.121,0.018,0.173,0.035,0.243,0.035c0.069,0,0.042-0.113-0.018-0.19c-0.061-0.078-0.043-0.069-0.199-0.113c-0.156-0.043-0.312-0.043-0.416-0.035c-0.104,0.009-0.217-0.017-0.243,0.104c-0.013,0.062,0.07,0.112,0.174,0.112S14.368,6.962,14.385,7.005zM14.611,7.481c0.043,0.095,0.043,0.051,0.165,0.061C14.896,7.551,14.991,7.421,15,7.378c0.009-0.044-0.061-0.13-0.225-0.113c-0.165,0.017-0.667-0.026-0.736,0.034c-0.066,0.058,0,0.233-0.026,0.251c-0.026,0.017,0.009,0.095,0.077,0.078c0.069-0.017,0.104-0.182,0.157-0.182C14.299,7.447,14.568,7.386,14.611,7.481zM12.982,7.126c0.052,0.043,0.183,0.008,0.173-0.035c-0.008-0.043,0.053-0.217-0.051-0.225C13,6.858,12.854,6.962,12.697,7.014c-0.101,0.033-0.078,0.13-0.009,0.13S12.931,7.083,12.982,7.126zM13.72,7.282c-0.087,0.043-0.114,0.069-0.191,0.052c-0.078-0.017-0.078-0.156-0.217-0.13c-0.138,0.026-0.164,0.104-0.207,0.139s-0.139,0.061-0.173,0.043c-0.034-0.017-0.234-0.129-0.234-0.129s-0.416-0.018-0.433-0.07c-0.017-0.052-0.086-0.138-0.277-0.121s-0.52,0.13-0.572,0.13c-0.052,0,0.062,0.104-0.009,0.104c-0.069,0-0.155-0.008-0.181,0.069c-0.018,0.053,0.078,0.052,0.189,0.052c0.112,0,0.295,0,0.347-0.026c0.052-0.026,0.312-0.087,0.303-0.009c-0.009,0.079,0.104,0.199,0.164,0.182c0.061-0.017,0.183-0.13,0.243-0.086c0.061,0.043,0.07,0.146,0.13,0.173c0.061,0.025,0.226,0.025,0.304,0c0.077-0.027,0.294-0.027,0.389-0.009c0.095,0.018,0.373,0.069,0.399,0.018c0.026-0.053,0.104-0.061,0.112-0.113s0.051-0.216,0.051-0.216S13.806,7.239,13.72,7.282zM18.105,16.239c-0.119,0.021-0.091,0.252,0.052,0.21C18.3,16.407,18.223,16.217,18.105,16.239zM19.235,15.929c-0.104-0.026-0.221,0-0.299,0.013c-0.078,0.013-0.299,0.208-0.299,0.208s0.143,0.026,0.233,0.026c0.092,0,0.144,0.051,0.221,0.09c0.078,0.04,0.221-0.052,0.272-0.052c0.053,0,0.118,0.156,0.131-0.013C19.508,16.032,19.339,15.955,19.235,15.929zM15.616,7.507c-0.043-0.104-0.259-0.139-0.304-0.035C15.274,7.563,15.659,7.611,15.616,7.507zM18.093,15.292c0.143-0.026,0.064-0.144-0.053-0.13C17.922,15.175,17.949,15.318,18.093,15.292zM19.82,16.095c-0.119,0.022-0.092,0.253,0.051,0.211C20.015,16.264,19.937,16.074,19.82,16.095zM18.247,15.708c-0.09,0.013-0.285-0.09-0.389-0.182c-0.104-0.091-0.299-0.091-0.377-0.091c-0.077,0-0.39,0.091-0.39,0.091c-0.013,0.13,0.117,0.091,0.273,0.091s0.429-0.026,0.479,0.039c0.053,0.064,0.286,0.168,0.352,0.221c0.064,0.052,0.272,0.065,0.285,0.013S18.338,15.695,18.247,15.708zM16.698,7.412c-0.13-0.009-0.295-0.009-0.399,0c-0.104,0.008-0.182-0.069-0.26-0.113c-0.077-0.043-0.251-0.182-0.354-0.199c-0.104-0.017-0.086-0.017-0.303-0.069c-0.11-0.027-0.294-0.061-0.294-0.086c0-0.026-0.052,0.121,0.043,0.165c0.095,0.043,0.251,0.121,0.363,0.164c0.114,0.043,0.329,0.052,0.399,0.139c0.069,0.086,0.303,0.156,0.303,0.156l0.277,0.026c0,0,0.191-0.043,0.39-0.026c0.199,0.017,0.493,0.043,0.659,0.035c0.163-0.008,0.189-0.061,0.208-0.095c0.016-0.035-0.304-0.104-0.383-0.095C17.271,7.42,16.827,7.42,16.698,7.412zM17.182,9.404c-0.034,0.039,0.157,0.095,0.191,0.043C17.407,9.396,17.271,9.309,17.182,9.404zM17.764,9.585c0.086-0.035,0.043-0.139-0.079-0.104C17.547,9.521,17.676,9.62,17.764,9.585z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Warning=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Warning",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M29.225,23.567l-3.778-6.542c-1.139-1.972-3.002-5.2-4.141-7.172l-3.778-6.542c-1.14-1.973-3.003-1.973-4.142,0L9.609,9.853c-1.139,1.972-3.003,5.201-4.142,7.172L1.69,23.567c-1.139,1.974-0.207,3.587,2.071,3.587h23.391C29.432,27.154,30.363,25.541,29.225,23.567zM16.536,24.58h-2.241v-2.151h2.241V24.58zM16.428,20.844h-2.023l-0.201-9.204h2.407L16.428,20.844z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Code=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Code",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M8.982,7.107L0.322,15.77l8.661,8.662l3.15-3.15L6.621,15.77l5.511-5.511L8.982,7.107zM21.657,7.107l-3.148,3.151l5.511,5.511l-5.511,5.511l3.148,3.15l8.662-8.662L21.657,7.107z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Pensil=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Pensil",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.31,2.872l-3.384-2.127c-0.854-0.536-1.979-0.278-2.517,0.576l-1.334,2.123l6.474,4.066l1.335-2.122C26.42,4.533,26.164,3.407,25.31,2.872zM6.555,21.786l6.474,4.066L23.581,9.054l-6.477-4.067L6.555,21.786zM5.566,26.952l-0.143,3.819l3.379-1.787l3.14-1.658l-6.246-3.925L5.566,26.952z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Pen=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Pen",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M13.587,12.074c-0.049-0.074-0.11-0.147-0.188-0.202c-0.333-0.243-0.803-0.169-1.047,0.166c-0.244,0.336-0.167,0.805,0.167,1.048c0.303,0.22,0.708,0.167,0.966-0.091l-7.086,9.768l-2.203,7.997l6.917-4.577L26.865,4.468l-4.716-3.42l-1.52,2.096c-0.087-0.349-0.281-0.676-0.596-0.907c-0.73-0.529-1.751-0.369-2.28,0.363C14.721,6.782,16.402,7.896,13.587,12.074zM10.118,25.148L6.56,27.503l1.133-4.117L10.118,25.148zM14.309,11.861c2.183-3.225,1.975-4.099,3.843-6.962c0.309,0.212,0.664,0.287,1.012,0.269L14.309,11.861z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Plus=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Plus",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.979,12.896 19.312,12.896 19.312,6.229 12.647,6.229 12.647,12.896 5.979,12.896 5.979,19.562 12.647,19.562 12.647,26.229 19.312,26.229 19.312,19.562 25.979,19.562z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Minus=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Minus",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.979,12.896,5.979,12.896,5.979,19.562,25.979,19.562z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.TShirt=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.TShirt",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.1,4.039c-0.681,1.677-2.32,2.862-4.24,2.862c-1.921,0-3.56-1.185-4.24-2.862L1.238,8.442l2.921,6.884l3.208-1.361V28h17.099V14.015l3.093,1.312l2.922-6.884L20.1,4.039z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Sticker=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Sticker",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.5,1.999c-1.042,0-1.916,0.377-2.57,1.088L2.895,13.138C2.302,13.784,1.999,14.58,1.999,15.5C1.999,22.943,8.057,29,15.5,29S29,22.943,29,15.5S22.943,1.999,15.5,1.999zM15.5,28C8.596,28,3,22.404,3,15.5c0-3.452,5.239-2.737,7.501-4.999C12.762,8.239,12.048,3,15.5,3C22.404,3,28,8.597,28,15.5S22.404,28,15.5,28z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Page2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Page2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM22.157,6.545c0.805,0.786,1.529,1.676,2.069,2.534c-0.468-0.185-0.959-0.322-1.42-0.431c-1.015-0.228-2.008-0.32-2.625-0.357c0.003-0.133,0.004-0.283,0.004-0.446c0-0.869-0.055-2.108-0.356-3.2c-0.003-0.01-0.005-0.02-0.009-0.03C20.584,5.119,21.416,5.788,22.157,6.545zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Page=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Page",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Landscape1=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Landscape1",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M19.883,5.71H2.746c-0.163,0-0.319,0.071-0.435,0.188c-0.118,0.117-0.18,0.272-0.18,0.435v18.364c0,0.164,0.063,0.318,0.18,0.436c0.123,0.117,0.287,0.18,0.435,0.18h25.75c0.164,0,0.324-0.066,0.438-0.18c0.118-0.114,0.182-0.273,0.182-0.436V14.551c-0.002-0.102-0.01-0.188-0.021-0.271c-0.186-1.543-1.543-3.424-3.236-5.168C24.039,7.31,21.869,5.753,19.883,5.71zM26.914,12.314c-0.008-0.005-0.019-0.007-0.029-0.01c-1.092-0.293-2.33-0.355-3.199-0.355c-0.162,0-0.312,0.002-0.445,0.004c-0.037-0.604-0.129-1.604-0.356-2.625c-0.11-0.461-0.246-0.94-0.433-1.42c0.857,0.541,1.748,1.264,2.535,2.068C25.74,10.718,26.41,11.551,26.914,12.314zM3.365,6.947h16.517c0.058,0,0.12,0,0.183,0.004c0.694,0.105,1.307,1.221,1.616,2.646c0.335,1.484,0.354,2.997,0.354,3l0.007,0.656l0.651-0.051c0,0,0.398-0.027,0.99-0.025c0.809,0,1.977,0.062,2.871,0.312c0.939,0.275,1.352,0.635,1.326,1.051h0.002v9.542H3.365V6.951V6.947z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Landscape2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Landscape2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M19.883,5.71H2.746c-0.163,0-0.319,0.071-0.435,0.188c-0.118,0.117-0.18,0.272-0.18,0.435v18.364c0,0.164,0.063,0.318,0.18,0.436c0.123,0.117,0.287,0.18,0.435,0.18h25.75c0.164,0,0.324-0.066,0.438-0.18c0.118-0.114,0.182-0.273,0.182-0.436V14.551c-0.002-0.102-0.01-0.188-0.021-0.271c-0.186-1.543-1.543-3.424-3.236-5.168C24.039,7.31,21.869,5.753,19.883,5.71zM3.365,6.947h16.517c0.058,0,0.12,0,0.183,0.004c0.694,0.105,1.307,1.221,1.616,2.646c0.335,1.484,0.354,2.997,0.354,3l0.007,0.656l0.651-0.051c0,0,0.398-0.027,0.99-0.025c0.809,0,1.977,0.062,2.871,0.312c0.939,0.275,1.352,0.635,1.326,1.051h0.002v9.542H3.365V6.951V6.947z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Plugin=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Plugin",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M26.33,15.836l-3.893-1.545l3.136-7.9c0.28-0.705-0.064-1.505-0.771-1.785c-0.707-0.28-1.506,0.065-1.785,0.771l-3.136,7.9l-4.88-1.937l3.135-7.9c0.281-0.706-0.064-1.506-0.77-1.786c-0.706-0.279-1.506,0.065-1.785,0.771l-3.136,7.9L8.554,8.781l-1.614,4.066l2.15,0.854l-2.537,6.391c-0.61,1.54,0.143,3.283,1.683,3.895l1.626,0.646L8.985,26.84c-0.407,1.025,0.095,2.188,1.122,2.596l0.93,0.369c1.026,0.408,2.188-0.095,2.596-1.121l0.877-2.207l1.858,0.737c1.54,0.611,3.284-0.142,3.896-1.682l2.535-6.391l1.918,0.761L26.33,15.836z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Bookmark=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Bookmark",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M17.396,1.841L6.076,25.986l7.341-4.566l1.186,8.564l11.32-24.146L17.396,1.841zM19.131,9.234c-0.562-0.264-0.805-0.933-0.541-1.495c0.265-0.562,0.934-0.805,1.496-0.541s0.805,0.934,0.541,1.496S19.694,9.498,19.131,9.234z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Hammer=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Hammer",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M7.831,29.354c0.685,0.353,1.62,1.178,2.344,0.876c0.475-0.195,0.753-1.301,1.048-1.883c2.221-4.376,4.635-9.353,6.392-13.611c0-0.19,0.101-0.337-0.049-0.595c0.983-1.6,1.65-3.358,2.724-5.138c0.34-0.566,0.686-1.351,1.163-1.577l0.881-0.368c1.12-0.288,1.938-0.278,2.719,0.473c0.396,0.383,0.578,1.015,0.961,1.395c0.259,0.26,1.246,0.899,1.613,0.8c0.285-0.077,0.52-0.364,0.72-0.728l0.696-1.286c0.195-0.366,0.306-0.718,0.215-0.999c-0.117-0.362-1.192-0.84-1.552-0.915c-0.528-0.113-1.154,0.081-1.692-0.041c-1.057-0.243-1.513-0.922-1.883-2.02c-2.608-1.533-6.119-2.53-10.207-1.244c-1.109,0.349-2.172,0.614-2.901,1.323c-0.146,0.412,0.143,0.494,0.446,0.489c-0.237,0.216-0.62,0.341-0.399,0.848c2.495-1.146,7.34-1.542,7.669,0.804c0.072,0.522-0.395,1.241-0.682,1.835c-0.905,1.874-2.011,3.394-2.813,5.091c-0.298,0.017-0.366,0.18-0.525,0.287c-2.604,3.8-5.451,8.541-7.9,12.794c-0.326,0.566-1.098,1.402-1.002,1.906C5.961,28.641,7.146,29,7.831,29.354z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Users=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Users",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.053,20.8c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68h-0.34c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888C28.469,23.686,22.185,21.252,21.053,20.8zM8.583,20.628c-0.099-0.18-0.148-0.31-0.148-0.31s-0.432,0.239-0.432-0.432s0.432,0.432,0.864-2.159c0,0,1.199-0.336,0.959-3.119H9.538c0,0,0.143-0.591,0.237-1.334c-0.004-0.308,0.006-0.636,0.037-0.996l0.038-0.426c-0.021-0.492-0.107-0.939-0.312-1.226C8.818,9.619,8.53,8.947,6.947,8.467c-1.583-0.48-1.008-0.385-2.159-0.336C3.636,8.179,2.676,8.802,2.676,9.139c0,0-0.72,0.048-1.008,0.336c-0.271,0.271-0.705,1.462-0.757,1.885v0.281c0.047,0.653,0.258,2.449,0.469,2.872l-0.286,0.096c-0.239,2.783,0.959,3.119,0.959,3.119c0.432,2.591,0.864,1.488,0.864,2.159s-0.432,0.432-0.432,0.432s-0.383,1.057-1.343,1.439c-0.061,0.024-0.139,0.056-0.232,0.092v5.234h0.575c-0.029-1.278,0.077-2.927,0.746-3.594C2.587,23.135,3.754,22.551,8.583,20.628zM30.913,11.572c-0.04-0.378-0.127-0.715-0.292-0.946c-0.719-1.008-1.008-1.679-2.59-2.159c-1.584-0.48-1.008-0.385-2.16-0.336C24.72,8.179,23.76,8.802,23.76,9.139c0,0-0.719,0.048-1.008,0.336c-0.271,0.272-0.709,1.472-0.758,1.891h0.033l0.08,0.913c0.02,0.231,0.022,0.436,0.027,0.645c0.09,0.666,0.21,1.35,0.33,1.589l-0.286,0.096c-0.239,2.783,0.96,3.119,0.96,3.119c0.432,2.591,0.863,1.488,0.863,2.159s-0.432,0.432-0.432,0.432s-0.053,0.142-0.163,0.338c4.77,1.9,5.927,2.48,6.279,2.834c0.67,0.667,0.775,2.315,0.746,3.594h0.48v-5.306c-0.016-0.006-0.038-0.015-0.052-0.021c-0.959-0.383-1.343-1.439-1.343-1.439s-0.433,0.239-0.433-0.432s0.433,0.432,0.864-2.159c0,0,0.804-0.229,0.963-1.841v-1.227c-0.001-0.018-0.001-0.033-0.003-0.051h-0.289c0,0,0.215-0.89,0.292-1.861V11.572z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.User=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.User",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.771,12.364c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888c-0.512-0.511-6.796-2.944-7.928-3.396c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68H20.771z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Customer=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Customer",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h12.036l0.878-3.459l-0.781-0.781l1.344-1.344l1.344,1.344l-0.781,0.781l0.879,3.459h12.035C28.977,26.709,29.039,24.332,28.523,23.813z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Employee=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Employee",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h26.954C28.977,26.709,29.039,24.332,28.523,23.813zM22.188,26.062h-4.562v-1.25h4.562V26.062z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Anonymous=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Anonymous",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.523,23.813c-0.518-0.51-6.795-2.938-7.934-3.396c-1.132-0.451-1.584-1.697-1.584-1.697s-0.51,0.282-0.51-0.51c0-0.793,0.51,0.51,1.021-2.548c0,0,1.414-0.397,1.133-3.68l-0.338,0.001c0,0,0.85-3.511,0-4.699c-0.854-1.188-1.188-1.981-3.062-2.548c-1.869-0.567-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.793-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.32s0.283,3.059,0.566,3.624l-0.337,0.112c-0.283,3.283,1.132,3.681,1.132,3.681c0.509,3.058,1.019,1.755,1.019,2.548c0,0.792-0.51,0.51-0.51,0.51s-0.452,1.246-1.584,1.697c-1.132,0.453-7.416,2.887-7.927,3.396c-0.511,0.521-0.453,2.896-0.453,2.896h26.954C28.977,26.709,29.039,24.332,28.523,23.813zM16.618,13.693c-0.398-0.251-0.783-1.211-0.783-1.64c0-0.133,0-0.236,0-0.236c-0.105-0.106-0.574-0.096-0.67,0c0,0,0,0.104,0,0.236c0,0.429-0.385,1.389-0.783,1.64c-0.399,0.251-1.611,0.237-2.084-0.236c-0.473-0.473-0.524-1.663-0.643-1.78c-0.118-0.119-0.185-0.185-0.185-0.185l0.029-0.414c0,0,0.842-0.207,1.699-0.207s1.803,0.502,1.803,0.502c0.231-0.074,0.784-0.083,0.996,0c0,0,0.945-0.502,1.803-0.502s1.699,0.207,1.699,0.207l0.029,0.414c0,0-0.066,0.066-0.185,0.185c-0.118,0.118-0.169,1.308-0.643,1.78C18.229,13.93,17.018,13.944,16.618,13.693z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Skull=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Skull",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.947,11.14c0-5.174-3.979-9.406-10.613-9.406c-6.633,0-10.282,4.232-10.282,9.406c0,5.174,1.459,4.511,1.459,7.43c0,1.095-1.061,0.564-1.061,2.919c0,2.587,3.615,2.223,4.677,3.283c1.061,1.062,0.961,3.019,0.961,3.019s0.199,0.796,0.564,0.563c0,0,0.232,0.564,0.498,0.232c0,0,0.265,0.563,0.531,0.1c0,0,0.265,0.631,0.696,0.166c0,0,0.431,0.63,0.929,0.133c0,0,0.564,0.53,1.194,0.133c0.63,0.397,1.194-0.133,1.194-0.133c0.497,0.497,0.929-0.133,0.929-0.133c0.432,0.465,0.695-0.166,0.695-0.166c0.268,0.464,0.531-0.1,0.531-0.1c0.266,0.332,0.498-0.232,0.498-0.232c0.365,0.232,0.564-0.563,0.564-0.563s-0.1-1.957,0.961-3.019c1.062-1.061,4.676-0.696,4.676-3.283c0-2.354-1.061-1.824-1.061-2.919C24.488,15.651,25.947,16.314,25.947,11.14zM10.333,20.992c-1.783,0.285-2.59-0.215-2.785-1.492c-0.508-3.328,2.555-3.866,4.079-3.683c0.731,0.088,1.99,0.862,1.99,1.825C13.617,20.229,11.992,20.727,10.333,20.992zM16.461,25.303c-0.331,0-0.862-0.431-0.895-1.227c-0.033,0.796-0.63,1.227-0.961,1.227c-0.332,0-0.83-0.331-0.863-1.127c-0.033-0.796,1.028-4.013,1.792-4.013c0.762,0,1.824,3.217,1.791,4.013S16.794,25.303,16.461,25.303zM23.361,19.5c-0.195,1.277-1.004,1.777-2.787,1.492c-1.658-0.266-3.283-0.763-3.283-3.35c0-0.963,1.258-1.737,1.99-1.825C20.805,15.634,23.869,16.172,23.361,19.5z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Mail=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Mail",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.516,7.167H3.482l12.517,7.108L28.516,7.167zM16.74,17.303C16.51,17.434,16.255,17.5,16,17.5s-0.51-0.066-0.741-0.197L2.5,10.06v14.773h27V10.06L16.74,17.303z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Picture=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Picture",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M2.5,4.833v22.334h27V4.833H2.5zM25.25,25.25H6.75V6.75h18.5V25.25zM11.25,14c1.426,0,2.583-1.157,2.583-2.583c0-1.427-1.157-2.583-2.583-2.583c-1.427,0-2.583,1.157-2.583,2.583C8.667,12.843,9.823,14,11.25,14zM24.251,16.25l-4.917-4.917l-6.917,6.917L10.5,16.333l-2.752,2.752v5.165h16.503V16.25z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Bubble=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Bubble",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,5.333c-7.732,0-14,4.701-14,10.5c0,1.982,0.741,3.833,2.016,5.414L2,25.667l5.613-1.441c2.339,1.317,5.237,2.107,8.387,2.107c7.732,0,14-4.701,14-10.5C30,10.034,23.732,5.333,16,5.333z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.CodeTalk=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.CodeTalk",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM13.704,19.47l-2.338,2.336l-6.43-6.431l6.429-6.432l2.339,2.341l-4.091,4.091L13.704,19.47zM20.775,21.803l-2.337-2.339l4.092-4.09l-4.092-4.092l2.337-2.339l6.43,6.426L20.775,21.803z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Talkq=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Talkq",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.868,21.375h-1.969v-1.889h1.969V21.375zM16.772,18.094h-1.777l-0.176-8.083h2.113L16.772,18.094z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Talke=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Talke",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.982,21.375h-1.969v-1.889h1.969V21.375zM16.982,17.469v0.625h-1.969v-0.769c0-2.321,2.641-2.689,2.641-4.337c0-0.752-0.672-1.329-1.553-1.329c-0.912,0-1.713,0.672-1.713,0.672l-1.12-1.393c0,0,1.104-1.153,3.009-1.153c1.81,0,3.49,1.121,3.49,3.009C19.768,15.437,16.982,15.741,16.982,17.469z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Home=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Home",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.812,16l-3.062-3.062V5.625h-2.625v4.688L16,4.188L4.188,16L7,15.933v11.942h17.875V16H27.812zM16,26.167h-5.833v-7H16V26.167zM21.667,23.167h-3.833v-4.042h3.833V23.167z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Lock=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Lock",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.335,12.833V9.999h-0.001C22.333,6.501,19.498,3.666,16,3.666S9.666,6.502,9.666,10h0v2.833H7.375V25h17.25V12.833H22.335zM11.667,10C11.667,10,11.667,10,11.667,10c0-2.39,1.944-4.334,4.333-4.334c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h-8.668V10z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Clip=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Clip",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M23.898,6.135c-1.571-1.125-3.758-0.764-4.884,0.808l-8.832,12.331c-0.804,1.122-0.546,2.684,0.577,3.488c1.123,0.803,2.684,0.545,3.488-0.578l6.236-8.706l-0.813-0.583l-6.235,8.707h0c-0.483,0.672-1.42,0.828-2.092,0.347c-0.673-0.481-0.827-1.419-0.345-2.093h0l8.831-12.33l0.001-0.001l-0.002-0.001c0.803-1.119,2.369-1.378,3.489-0.576c1.12,0.803,1.379,2.369,0.577,3.489v-0.001l-9.68,13.516l0.001,0.001c-1.124,1.569-3.316,1.931-4.885,0.808c-1.569-1.125-1.93-3.315-0.807-4.885l7.035-9.822l-0.813-0.582l-7.035,9.822c-1.447,2.02-0.982,4.83,1.039,6.277c2.021,1.448,4.831,0.982,6.278-1.037l9.68-13.516C25.83,9.447,25.47,7.261,23.898,6.135z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Star=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Star",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,22.375L7.116,28.83l3.396-10.438l-8.883-6.458l10.979,0.002L16.002,1.5l3.391,10.434h10.981l-8.886,6.457l3.396,10.439L16,22.375L16,22.375z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.StarOff=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.StarOff",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,22.375L7.116,28.83l3.396-10.438l-8.883-6.458l10.979,0.002L16.002,1.5l3.391,10.434h10.981l-8.886,6.457l3.396,10.439L16,22.375L16,22.375zM22.979,26.209l-2.664-8.205l6.979-5.062h-8.627L16,4.729l-2.666,8.206H4.708l6.979,5.07l-2.666,8.203L16,21.146L22.979,26.209L22.979,26.209z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Star2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Star2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.615,4.928c0.487-0.986,1.284-0.986,1.771,0l2.249,4.554c0.486,0.986,1.775,1.923,2.864,2.081l5.024,0.73c1.089,0.158,1.335,0.916,0.547,1.684l-3.636,3.544c-0.788,0.769-1.28,2.283-1.095,3.368l0.859,5.004c0.186,1.085-0.459,1.553-1.433,1.041l-4.495-2.363c-0.974-0.512-2.567-0.512-3.541,0l-4.495,2.363c-0.974,0.512-1.618,0.044-1.432-1.041l0.858-5.004c0.186-1.085-0.307-2.6-1.094-3.368L3.93,13.977c-0.788-0.768-0.542-1.525,0.547-1.684l5.026-0.73c1.088-0.158,2.377-1.095,2.864-2.081L14.615,4.928z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Star2Off=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Star2Off",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M26.522,12.293l-5.024-0.73c-1.089-0.158-2.378-1.095-2.864-2.081l-2.249-4.554c-0.487-0.986-1.284-0.986-1.771,0l-2.247,4.554c-0.487,0.986-1.776,1.923-2.864,2.081l-5.026,0.73c-1.088,0.158-1.334,0.916-0.547,1.684l3.637,3.544c0.788,0.769,1.28,2.283,1.094,3.368l-0.858,5.004c-0.186,1.085,0.458,1.553,1.432,1.041l4.495-2.363c0.974-0.512,2.566-0.512,3.541,0l4.495,2.363c0.974,0.512,1.618,0.044,1.433-1.041l-0.859-5.004c-0.186-1.085,0.307-2.6,1.095-3.368l3.636-3.544C27.857,13.209,27.611,12.452,26.522,12.293zM22.037,16.089c-1.266,1.232-1.966,3.394-1.67,5.137l0.514,2.984l-2.679-1.409c-0.757-0.396-1.715-0.612-2.702-0.612s-1.945,0.216-2.7,0.61l-2.679,1.409l0.511-2.982c0.297-1.743-0.404-3.905-1.671-5.137l-2.166-2.112l2.995-0.435c1.754-0.255,3.592-1.591,4.373-3.175L15.5,7.652l1.342,2.716c0.781,1.583,2.617,2.92,4.369,3.173l2.992,0.435L22.037,16.089z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Star3=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Star3",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.441,28.181c-0.419,0-0.835-0.132-1.189-0.392l-5.751-4.247L9.75,27.789c-0.354,0.26-0.771,0.392-1.189,0.392c-0.412,0-0.824-0.128-1.175-0.384c-0.707-0.511-1-1.422-0.723-2.25l2.26-6.783l-5.815-4.158c-0.71-0.509-1.009-1.416-0.74-2.246c0.268-0.826,1.037-1.382,1.904-1.382c0.004,0,0.01,0,0.014,0l7.15,0.056l2.157-6.816c0.262-0.831,1.035-1.397,1.906-1.397s1.645,0.566,1.906,1.397l2.155,6.816l7.15-0.056c0.004,0,0.01,0,0.015,0c0.867,0,1.636,0.556,1.903,1.382c0.271,0.831-0.028,1.737-0.739,2.246l-5.815,4.158l2.263,6.783c0.276,0.826-0.017,1.737-0.721,2.25C23.268,28.053,22.854,28.181,22.441,28.181L22.441,28.181z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Star3Off=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Star3Off",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.631,12.359c-0.268-0.826-1.036-1.382-1.903-1.382h-0.015l-7.15,0.056l-2.155-6.816c-0.262-0.831-1.035-1.397-1.906-1.397s-1.645,0.566-1.906,1.397l-2.157,6.816l-7.15-0.056H4.273c-0.868,0-1.636,0.556-1.904,1.382c-0.27,0.831,0.029,1.737,0.74,2.246l5.815,4.158l-2.26,6.783c-0.276,0.828,0.017,1.739,0.723,2.25c0.351,0.256,0.763,0.384,1.175,0.384c0.418,0,0.834-0.132,1.189-0.392l5.751-4.247l5.751,4.247c0.354,0.26,0.771,0.392,1.189,0.392c0.412,0,0.826-0.128,1.177-0.384c0.704-0.513,0.997-1.424,0.721-2.25l-2.263-6.783l5.815-4.158C28.603,14.097,28.901,13.19,28.631,12.359zM19.712,17.996l2.729,8.184l-6.94-5.125L8.56,26.18l2.729-8.184l-7.019-5.018l8.627,0.066L15.5,4.82l2.603,8.225l8.627-0.066L19.712,17.996z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Chat=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Chat",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.985,5.972c-7.563,0-13.695,4.077-13.695,9.106c0,2.877,2.013,5.44,5.147,7.108c-0.446,1.479-1.336,3.117-3.056,4.566c0,0,4.015-0.266,6.851-3.143c0.163,0.04,0.332,0.07,0.497,0.107c-0.155-0.462-0.246-0.943-0.246-1.443c0-3.393,3.776-6.05,8.599-6.05c3.464,0,6.379,1.376,7.751,3.406c1.168-1.34,1.847-2.892,1.847-4.552C29.68,10.049,23.548,5.972,15.985,5.972zM27.68,22.274c0-2.79-3.401-5.053-7.599-5.053c-4.196,0-7.599,2.263-7.599,5.053c0,2.791,3.403,5.053,7.599,5.053c0.929,0,1.814-0.116,2.637-0.319c1.573,1.597,3.801,1.744,3.801,1.744c-0.954-0.804-1.447-1.713-1.695-2.534C26.562,25.293,27.68,23.871,27.68,22.274z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Quote=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Quote",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.505,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.128,0,2.07,0.411,2.826,1.229c0.756,0.82,1.134,1.832,1.134,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.259,0.443-4.327,1.332-6.203c0.888-1.875,2.243-3.57,4.067-5.085c1.824-1.514,2.988-2.272,3.492-2.272c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L14.505,5.873zM27.465,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.104,0,2.04,0.411,2.808,1.229c0.769,0.82,1.152,1.832,1.152,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.284,0.449-4.369,1.35-6.256c0.9-1.887,2.256-3.577,4.068-5.067c1.812-1.49,2.97-2.236,3.474-2.236c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L27.465,5.873z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Gear2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Gear2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M17.047,27.945c-0.34,0.032-0.688,0.054-1.046,0.054l0,0c-0.32,0-0.631-0.017-0.934-0.043l0,0l-2.626,3.375l-0.646-0.183c-0.758-0.213-1.494-0.48-2.202-0.8l0,0L8.979,30.07l0.158-4.24c-0.558-0.39-1.079-0.825-1.561-1.302l0,0L3.424,25.42l-0.379-0.557c-0.445-0.654-0.824-1.339-1.16-2.032l0,0l-0.292-0.605l2.819-3.12c-0.176-0.661-0.293-1.343-0.353-2.038l0,0l-3.736-1.975l0.068-0.669c0.08-0.801,0.235-1.567,0.42-2.303l0,0l0.165-0.653l4.167-0.577c0.297-0.627,0.647-1.221,1.041-1.78l0,0l-1.59-3.914l0.48-0.47c0.564-0.55,1.168-1.048,1.798-1.503l0,0l0.546-0.394l3.597,2.259c0.606-0.279,1.24-0.509,1.897-0.685l0,0l1.304-4.046l0.672-0.051c0.362-0.027,0.751-0.058,1.174-0.058l0,0c0.422,0,0.81,0.031,1.172,0.058l0,0l0.672,0.051l1.318,4.088c0.632,0.176,1.244,0.401,1.831,0.674l0,0l3.647-2.291l0.548,0.394c0.63,0.455,1.235,0.954,1.798,1.501l0,0l0.482,0.47l-1.639,4.031c0.357,0.519,0.679,1.068,0.954,1.646l0,0l4.297,0.595l0.167,0.653c0.188,0.735,0.342,1.501,0.42,2.303l0,0l0.068,0.669l-3.866,2.044c-0.058,0.634-0.161,1.258-0.315,1.866l0,0l2.913,3.218l-0.293,0.608c-0.335,0.695-0.712,1.382-1.159,2.034l0,0l-0.379,0.555l-4.255-0.912c-0.451,0.451-0.939,0.866-1.461,1.241l0,0l0.162,4.323l-0.615,0.278c-0.709,0.319-1.444,0.587-2.202,0.8l0,0l-0.648,0.183L17.047,27.945L17.047,27.945zM20.424,29.028c0.227-0.076,0.45-0.157,0.671-0.244l0,0l-0.152-4.083l0.479-0.307c0.717-0.466,1.37-1.024,1.95-1.658l0,0l0.386-0.423l4.026,0.862c0.121-0.202,0.238-0.409,0.351-0.62l0,0l-2.754-3.045l0.171-0.544c0.243-0.783,0.381-1.623,0.422-2.5l0,0l0.025-0.571l3.658-1.933c-0.038-0.234-0.082-0.467-0.132-0.7l0,0l-4.07-0.563l-0.219-0.527c-0.327-0.787-0.76-1.524-1.277-2.204l0,0l-0.342-0.453l1.548-3.808c-0.179-0.157-0.363-0.31-0.552-0.458l0,0l-3.455,2.169L20.649,7.15c-0.754-0.397-1.569-0.698-2.429-0.894l0,0l-0.556-0.127l-1.248-3.87c-0.121-0.006-0.239-0.009-0.354-0.009l0,0c-0.117,0-0.235,0.003-0.357,0.009l0,0l-1.239,3.845l-0.564,0.12c-0.875,0.188-1.709,0.494-2.486,0.896l0,0l-0.508,0.264L7.509,5.249c-0.188,0.148-0.372,0.301-0.55,0.458l0,0l1.507,3.708L8.112,9.869c-0.552,0.709-1.011,1.485-1.355,2.319l0,0l-0.218,0.529l-3.939,0.545c-0.05,0.233-0.094,0.466-0.131,0.7l0,0l3.531,1.867l0.022,0.575c0.037,0.929,0.192,1.82,0.459,2.653l0,0l0.175,0.548l-2.667,2.95c0.112,0.212,0.229,0.419,0.351,0.621l0,0l3.916-0.843l0.39,0.423c0.601,0.657,1.287,1.229,2.043,1.703l0,0l0.488,0.305l-0.149,4.02c0.221,0.087,0.445,0.168,0.672,0.244l0,0l2.479-3.188l0.566,0.07c0.427,0.054,0.843,0.089,1.257,0.089l0,0c0.445,0,0.894-0.039,1.353-0.104l0,0l0.571-0.08L20.424,29.028L20.424,29.028zM21.554,20.75l0.546,0.839l-3.463,2.253l-1.229-1.891l0,0c-0.447,0.109-0.917,0.173-1.406,0.173l0,0c-3.384,0-6.126-2.743-6.126-6.123l0,0c0-3.384,2.742-6.126,6.126-6.126l0,0c3.38,0,6.123,2.742,6.123,6.126l0,0c0,1.389-0.467,2.676-1.25,3.704l0,0L21.554,20.75M19.224,21.073l0.108-0.069l-0.987-1.519l0.572-0.572c0.748-0.75,1.207-1.773,1.207-2.912l0,0c-0.004-2.278-1.848-4.122-4.123-4.126l0,0c-2.28,0.004-4.122,1.846-4.126,4.126l0,0c0.004,2.275,1.848,4.119,4.126,4.123l0,0c0.509,0,0.999-0.104,1.473-0.286l0,0l0.756-0.29L19.224,21.073L19.224,21.073z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Gear=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Gear",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M26.974,16.514l3.765-1.991c-0.074-0.738-0.217-1.454-0.396-2.157l-4.182-0.579c-0.362-0.872-0.84-1.681-1.402-2.423l1.594-3.921c-0.524-0.511-1.09-0.977-1.686-1.406l-3.551,2.229c-0.833-0.438-1.73-0.77-2.672-0.984l-1.283-3.976c-0.364-0.027-0.728-0.056-1.099-0.056s-0.734,0.028-1.099,0.056l-1.271,3.941c-0.967,0.207-1.884,0.543-2.738,0.986L7.458,4.037C6.863,4.466,6.297,4.932,5.773,5.443l1.55,3.812c-0.604,0.775-1.11,1.629-1.49,2.55l-4.05,0.56c-0.178,0.703-0.322,1.418-0.395,2.157l3.635,1.923c0.041,1.013,0.209,1.994,0.506,2.918l-2.742,3.032c0.319,0.661,0.674,1.303,1.085,1.905l4.037-0.867c0.662,0.72,1.416,1.351,2.248,1.873l-0.153,4.131c0.663,0.299,1.352,0.549,2.062,0.749l2.554-3.283C15.073,26.961,15.532,27,16,27c0.507,0,1.003-0.046,1.491-0.113l2.567,3.301c0.711-0.2,1.399-0.45,2.062-0.749l-0.156-4.205c0.793-0.513,1.512-1.127,2.146-1.821l4.142,0.889c0.411-0.602,0.766-1.243,1.085-1.905l-2.831-3.131C26.778,18.391,26.93,17.467,26.974,16.514zM20.717,21.297l-1.785,1.162l-1.098-1.687c-0.571,0.22-1.186,0.353-1.834,0.353c-2.831,0-5.125-2.295-5.125-5.125c0-2.831,2.294-5.125,5.125-5.125c2.83,0,5.125,2.294,5.125,5.125c0,1.414-0.573,2.693-1.499,3.621L20.717,21.297z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Wrench=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Wrench",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M26.834,14.693c1.816-2.088,2.181-4.938,1.193-7.334l-3.646,4.252l-3.594-0.699L19.596,7.45l3.637-4.242c-2.502-0.63-5.258,0.13-7.066,2.21c-1.907,2.193-2.219,5.229-1.039,7.693L5.624,24.04c-1.011,1.162-0.888,2.924,0.274,3.935c1.162,1.01,2.924,0.888,3.935-0.274l9.493-10.918C21.939,17.625,24.918,16.896,26.834,14.693z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Wrench2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Wrench2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.946,9.721l-2.872-0.768l-0.771-2.874l3.188-3.231c-1.992-0.653-4.268-0.192-5.848,1.391c-1.668,1.668-2.095,4.111-1.279,6.172l-3.476,3.478l-3.478,3.478c-2.062-0.816-4.504-0.391-6.173,1.277c-1.583,1.581-2.043,3.856-1.39,5.849l3.231-3.188l2.874,0.77l0.769,2.872l-3.239,3.197c1.998,0.665,4.288,0.207,5.876-1.384c1.678-1.678,2.1-4.133,1.271-6.202l3.463-3.464l3.464-3.463c2.069,0.828,4.523,0.406,6.202-1.272c1.592-1.589,2.049-3.878,1.384-5.876L24.946,9.721z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Wrench3=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Wrench3",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.839,6.775l-3.197,3.239L21.77,9.246l-0.771-2.874l3.188-3.231c-1.992-0.653-4.268-0.192-5.848,1.391c-1.668,1.668-2.095,4.111-1.279,6.172L7.42,20.344c-0.204-0.032-0.408-0.062-0.621-0.062c-2.173,0-3.933,1.759-3.933,3.933c0,2.173,1.76,3.933,3.933,3.933c2.171,0,3.931-1.76,3.933-3.933c0-0.24-0.03-0.473-0.071-0.7l9.592-9.59c2.069,0.828,4.523,0.406,6.202-1.272C28.047,11.062,28.504,8.772,27.839,6.775zM6.799,25.146c-0.517,0-0.933-0.418-0.935-0.933c0.002-0.515,0.418-0.933,0.935-0.933c0.514,0,0.932,0.418,0.932,0.933S7.313,25.146,6.799,25.146z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ScrewDriver=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ScrewDriver",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M19.387,14.373c2.119-2.619,5.322-6.77,5.149-7.75c-0.128-0.729-0.882-1.547-1.763-2.171c-0.883-0.625-1.916-1.044-2.645-0.915c-0.98,0.173-3.786,4.603-5.521,7.49c-0.208,0.344,0.328,1.177,0.156,1.468c-0.172,0.292-1.052,0.042-1.18,0.261c-0.263,0.451-0.417,0.722-0.417,0.722s-0.553,0.823,1.163,2.163l-5.233,7.473c-0.267,0.381-1.456,0.459-1.456,0.459l-1.184,3.312l0.859,0.602l2.708-2.246c0,0-0.334-1.143-0.068-1.523l5.242-7.489c1.719,1,2.377,0.336,2.377,0.336s0.201-0.238,0.536-0.639c0.161-0.194-0.374-0.936-0.159-1.197C18.169,14.467,19.133,14.685,19.387,14.373z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.HammerAndScrewDriver=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.HammerAndScrewDriver",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.537,9.859c-0.473-0.259-1.127-0.252-1.609-0.523c-0.943-0.534-1.186-1.316-1.226-2.475c-2.059-2.215-5.138-4.176-9.424-4.114c-1.162,0.017-2.256-0.035-3.158,0.435c-0.258,0.354-0.004,0.516,0.288,0.599c-0.29,0.138-0.692,0.147-0.626,0.697c2.72-0.383,7.475,0.624,7.116,2.966c-0.08,0.521-0.735,1.076-1.179,1.563c-1.263,1.382-2.599,2.45-3.761,3.667l0.336,0.336c0.742-0.521,1.446-0.785,2.104-0.785c0.707,0,1.121,0.297,1.276,0.433c0.575-0.618,1.166-1.244,1.839-1.853c0.488-0.444,1.047-1.099,1.566-1.178l0.949-0.101c1.156,0.047,1.937,0.29,2.471,1.232c0.27,0.481,0.262,1.139,0.521,1.613c0.175,0.324,0.937,1.218,1.316,1.228c0.294,0.009,0.603-0.199,0.899-0.49l1.033-1.034c0.291-0.294,0.501-0.6,0.492-0.896C29.754,10.801,28.861,10.035,28.537,9.859zM13.021,15.353l-0.741-0.741c-3.139,2.643-6.52,5.738-9.531,8.589c-0.473,0.443-1.452,1.021-1.506,1.539c-0.083,0.781,0.95,1.465,1.506,2c0.556,0.533,1.212,1.602,1.994,1.51c0.509-0.043,1.095-1.029,1.544-1.502c2.255-2.374,4.664-4.976,6.883-7.509c-0.312-0.371-0.498-0.596-0.498-0.596C12.535,18.451,11.779,17.272,13.021,15.353zM20.64,15.643c-0.366-0.318-1.466,0.143-1.777-0.122c-0.311-0.266,0.171-1.259-0.061-1.455c-0.482-0.406-0.77-0.646-0.77-0.646s-0.862-0.829-2.812,0.928L7.44,6.569C7.045,6.173,7.203,4.746,7.203,4.746L3.517,2.646L2.623,3.541l2.1,3.686c0,0,1.428-0.158,1.824,0.237l7.792,7.793c-1.548,1.831-0.895,2.752-0.895,2.752s0.238,0.288,0.646,0.771c0.196,0.23,1.188-0.249,1.455,0.061c0.264,0.312-0.196,1.41,0.12,1.777c2.666,3.064,6.926,7.736,8.125,7.736c0.892,0,2.021-0.724,2.948-1.64c0.925-0.917,1.639-2.055,1.639-2.947C28.377,22.567,23.704,18.309,20.64,15.643z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Magic=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Magic",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M23.043,4.649l-0.404-2.312l-1.59,1.727l-2.323-0.33l1.151,2.045l-1.032,2.108l2.302-0.463l1.686,1.633l0.271-2.332l2.074-1.099L23.043,4.649zM26.217,18.198l-0.182-1.25l-0.882,0.905l-1.245-0.214l0.588,1.118l-0.588,1.118l1.245-0.214l0.882,0.905l0.182-1.25l1.133-0.56L26.217,18.198zM4.92,7.672L5.868,7.3l0.844,0.569L6.65,6.853l0.802-0.627L6.467,5.97L6.118,5.013L5.571,5.872L4.553,5.908l0.647,0.786L4.92,7.672zM10.439,10.505l1.021-1.096l1.481,0.219l-0.727-1.31l0.667-1.341l-1.47,0.287l-1.069-1.048L10.16,7.703L8.832,8.396l1.358,0.632L10.439,10.505zM17.234,12.721c-0.588-0.368-1.172-0.618-1.692-0.729c-0.492-0.089-1.039-0.149-1.425,0.374L2.562,30.788h6.68l9.669-15.416c0.303-0.576,0.012-1.041-0.283-1.447C18.303,13.508,17.822,13.09,17.234,12.721zM13.613,21.936c-0.254-0.396-0.74-0.857-1.373-1.254c-0.632-0.396-1.258-0.634-1.726-0.69l4.421-7.052c0.064-0.013,0.262-0.021,0.543,0.066c0.346,0.092,0.785,0.285,1.225,0.562c0.504,0.313,0.908,0.677,1.133,0.97c0.113,0.145,0.178,0.271,0.195,0.335c0.002,0.006,0.004,0.011,0.004,0.015L13.613,21.936z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Download=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Download",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,28.792c-1.549,0-2.806-1.256-2.806-2.806s1.256-2.806,2.806-2.806c1.55,0,2.806,1.256,2.806,2.806S17.55,28.792,16,28.792zM16,21.087l-7.858-6.562h3.469V5.747h8.779v8.778h3.468L16,21.087z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.View=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.View",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,8.286C8.454,8.286,2.5,16,2.5,16s5.954,7.715,13.5,7.715c5.771,0,13.5-7.715,13.5-7.715S21.771,8.286,16,8.286zM16,20.807c-2.649,0-4.807-2.157-4.807-4.807s2.158-4.807,4.807-4.807s4.807,2.158,4.807,4.807S18.649,20.807,16,20.807zM16,13.194c-1.549,0-2.806,1.256-2.806,2.806c0,1.55,1.256,2.806,2.806,2.806c1.55,0,2.806-1.256,2.806-2.806C18.806,14.451,17.55,13.194,16,13.194z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Noview=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Noview",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M11.478,17.568c-0.172-0.494-0.285-1.017-0.285-1.568c0-2.65,2.158-4.807,4.807-4.807c0.552,0,1.074,0.113,1.568,0.285l2.283-2.283C18.541,8.647,17.227,8.286,16,8.286C8.454,8.286,2.5,16,2.5,16s2.167,2.791,5.53,5.017L11.478,17.568zM23.518,11.185l-3.056,3.056c0.217,0.546,0.345,1.138,0.345,1.76c0,2.648-2.158,4.807-4.807,4.807c-0.622,0-1.213-0.128-1.76-0.345l-2.469,2.47c1.327,0.479,2.745,0.783,4.229,0.783c5.771,0,13.5-7.715,13.5-7.715S26.859,13.374,23.518,11.185zM25.542,4.917L4.855,25.604L6.27,27.02L26.956,6.332L25.542,4.917z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Cloud=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Cloud",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h15.875c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Cloud2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Cloud2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M7.562,24.812c-3.313,0-6-2.687-6-6l0,0c0.002-2.659,1.734-4.899,4.127-5.684l0,0c0.083-2.26,1.937-4.064,4.216-4.066l0,0c0.73,0,1.415,0.19,2.01,0.517l0,0c1.266-2.105,3.57-3.516,6.208-3.517l0,0c3.947,0.002,7.157,3.155,7.248,7.079l0,0c2.362,0.804,4.062,3.034,4.064,5.671l0,0c0,3.313-2.687,6-6,6l0,0H7.562L7.562,24.812zM24.163,14.887c-0.511-0.095-0.864-0.562-0.815-1.079l0,0c0.017-0.171,0.027-0.336,0.027-0.497l0,0c-0.007-2.899-2.352-5.245-5.251-5.249l0,0c-2.249-0.002-4.162,1.418-4.911,3.41l0,0c-0.122,0.323-0.406,0.564-0.748,0.63l0,0c-0.34,0.066-0.694-0.052-0.927-0.309l0,0c-0.416-0.453-0.986-0.731-1.633-0.731l0,0c-1.225,0.002-2.216,0.993-2.22,2.218l0,0c0,0.136,0.017,0.276,0.045,0.424l0,0c0.049,0.266-0.008,0.54-0.163,0.762l0,0c-0.155,0.223-0.392,0.371-0.657,0.414l0,0c-1.9,0.313-3.352,1.949-3.35,3.931l0,0c0.004,2.209,1.792,3.995,4.001,4.001l0,0h15.874c2.209-0.006,3.994-1.792,3.999-4.001l0,0C27.438,16.854,26.024,15.231,24.163,14.887L24.163,14.887")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.CloudDown=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.CloudDown",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h3.404l-0.707-0.707c-0.377-0.377-0.585-0.879-0.585-1.413c0-0.533,0.208-1.035,0.585-1.412l0.556-0.557c0.4-0.399,0.937-0.628,1.471-0.628c0.027,0,0.054,0,0.08,0.002v-0.472c0-1.104,0.898-2.002,2-2.002h3.266c1.103,0,2,0.898,2,2.002v0.472c0.027-0.002,0.054-0.002,0.081-0.002c0.533,0,1.07,0.229,1.47,0.63l0.557,0.552c0.78,0.781,0.78,2.05,0,2.828l-0.706,0.707h2.403c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M21.033,20.986l-0.556-0.555c-0.39-0.389-0.964-0.45-1.276-0.137c-0.312,0.312-0.568,0.118-0.568-0.432v-1.238c0-0.55-0.451-1-1-1h-3.265c-0.55,0-1,0.45-1,1v1.238c0,0.55-0.256,0.744-0.569,0.432c-0.312-0.313-0.887-0.252-1.276,0.137l-0.556,0.555c-0.39,0.389-0.39,1.024-0.001,1.413l4.328,4.331c0.194,0.194,0.451,0.291,0.707,0.291s0.512-0.097,0.707-0.291l4.327-4.331C21.424,22.011,21.423,21.375,21.033,20.986z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.CloudUp=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.CloudUp",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h2.312c-0.126-0.266-0.2-0.556-0.2-0.859c0-0.535,0.208-1.04,0.587-1.415l4.325-4.329c0.375-0.377,0.877-0.585,1.413-0.585c0.54,0,1.042,0.21,1.417,0.587l4.323,4.329c0.377,0.373,0.585,0.878,0.585,1.413c0,0.304-0.073,0.594-0.2,0.859h1.312c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M16.706,17.916c-0.193-0.195-0.45-0.291-0.706-0.291s-0.512,0.096-0.707,0.291l-4.327,4.33c-0.39,0.389-0.389,1.025,0.001,1.414l0.556,0.555c0.39,0.389,0.964,0.449,1.276,0.137s0.568-0.119,0.568,0.432v1.238c0,0.549,0.451,1,1,1h3.265c0.551,0,1-0.451,1-1v-1.238c0-0.551,0.256-0.744,0.569-0.432c0.312,0.312,0.887,0.252,1.276-0.137l0.556-0.555c0.39-0.389,0.39-1.025,0.001-1.414L16.706,17.916z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Location=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Location",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,3.5c-4.142,0-7.5,3.358-7.5,7.5c0,4.143,7.5,18.121,7.5,18.121S23.5,15.143,23.5,11C23.5,6.858,20.143,3.5,16,3.5z M16,14.584c-1.979,0-3.584-1.604-3.584-3.584S14.021,7.416,16,7.416S19.584,9.021,19.584,11S17.979,14.584,16,14.584z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Volume0=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Volume0",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Volume1=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Volume1",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Volume2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Volume2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Volume3=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Volume3",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z M23.28,6.746c-0.393-0.391-1.025-0.389-1.414,0.002c-0.391,0.389-0.391,1.023,0.002,1.413h-0.002c2.009,2.009,3.248,4.773,3.248,7.839c0,3.063-1.239,5.828-3.246,7.838c-0.391,0.39-0.391,1.023,0.002,1.415c0.194,0.194,0.45,0.291,0.706,0.291s0.513-0.098,0.708-0.293c2.363-2.366,3.831-5.643,3.829-9.251C27.115,12.389,25.647,9.111,23.28,6.746z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Key=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Key",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M18.386,16.009l0.009-0.006l-0.58-0.912c1.654-2.226,1.876-5.319,0.3-7.8c-2.043-3.213-6.303-4.161-9.516-2.118c-3.212,2.042-4.163,6.302-2.12,9.517c1.528,2.402,4.3,3.537,6.944,3.102l0.424,0.669l0.206,0.045l0.779-0.447l-0.305,1.377l2.483,0.552l-0.296,1.325l1.903,0.424l-0.68,3.06l1.406,0.313l-0.424,1.906l4.135,0.918l0.758-3.392L18.386,16.009z M10.996,8.944c-0.685,0.436-1.593,0.233-2.029-0.452C8.532,7.807,8.733,6.898,9.418,6.463s1.594-0.233,2.028,0.452C11.883,7.6,11.68,8.509,10.996,8.944z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Ruler=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Ruler",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M6.63,21.796l-5.122,5.121h25.743V1.175L6.63,21.796zM18.702,10.48c0.186-0.183,0.48-0.183,0.664,0l1.16,1.159c0.184,0.183,0.186,0.48,0.002,0.663c-0.092,0.091-0.213,0.137-0.332,0.137c-0.121,0-0.24-0.046-0.33-0.137l-1.164-1.159C18.519,10.96,18.519,10.664,18.702,10.48zM17.101,12.084c0.184-0.183,0.48-0.183,0.662,0l2.156,2.154c0.184,0.183,0.184,0.48,0.002,0.661c-0.092,0.092-0.213,0.139-0.334,0.139s-0.24-0.046-0.33-0.137l-2.156-2.154C16.917,12.564,16.917,12.267,17.101,12.084zM15.497,13.685c0.184-0.183,0.48-0.183,0.664,0l1.16,1.161c0.184,0.183,0.182,0.48-0.002,0.663c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.24-0.046-0.332-0.138l-1.16-1.16C15.314,14.166,15.314,13.868,15.497,13.685zM13.896,15.288c0.184-0.183,0.48-0.181,0.664,0.002l1.158,1.159c0.183,0.184,0.183,0.48,0,0.663c-0.092,0.092-0.212,0.138-0.332,0.138c-0.119,0-0.24-0.046-0.332-0.138l-1.158-1.161C13.713,15.767,13.713,15.471,13.896,15.288zM12.293,16.892c0.183-0.184,0.479-0.184,0.663,0l2.154,2.153c0.184,0.184,0.184,0.481,0,0.665c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-2.153-2.155C12.11,17.371,12.11,17.075,12.293,16.892zM10.302,24.515c-0.091,0.093-0.212,0.139-0.332,0.139c-0.119,0-0.238-0.045-0.33-0.137l-2.154-2.153c-0.184-0.183-0.184-0.479,0-0.663s0.479-0.184,0.662,0l2.154,2.153C10.485,24.036,10.485,24.332,10.302,24.515zM10.912,21.918c-0.093,0.093-0.214,0.139-0.333,0.139c-0.12,0-0.24-0.045-0.33-0.137l-1.162-1.161c-0.184-0.183-0.184-0.479,0-0.66c0.184-0.185,0.48-0.187,0.664-0.003l1.161,1.162C11.095,21.438,11.095,21.735,10.912,21.918zM12.513,20.316c-0.092,0.092-0.211,0.138-0.332,0.138c-0.119,0-0.239-0.046-0.331-0.138l-1.159-1.16c-0.184-0.184-0.184-0.48,0-0.664s0.48-0.182,0.663,0.002l1.159,1.161C12.696,19.838,12.696,20.135,12.513,20.316zM22.25,21.917h-8.67l8.67-8.67V21.917zM22.13,10.7c-0.09,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-1.16-1.159c-0.184-0.183-0.184-0.479,0-0.663c0.182-0.183,0.479-0.183,0.662,0l1.16,1.159C22.312,10.221,22.313,10.517,22.13,10.7zM24.726,10.092c-0.092,0.092-0.213,0.137-0.332,0.137s-0.24-0.045-0.33-0.137l-2.154-2.154c-0.184-0.183-0.184-0.481,0-0.664s0.482-0.181,0.664,0.002l2.154,2.154C24.911,9.613,24.909,9.91,24.726,10.092z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Power=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Power",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.542,8.354c-1.47-1.766-2.896-2.617-3.025-2.695c-0.954-0.565-2.181-0.241-2.739,0.724c-0.556,0.961-0.24,2.194,0.705,2.763c0,0,0.001,0,0.002,0.001c0.001,0,0.002,0.001,0.003,0.002c0.001,0,0.003,0.001,0.004,0.001c0.102,0.062,1.124,0.729,2.08,1.925c1.003,1.261,1.933,3.017,1.937,5.438c-0.001,2.519-1.005,4.783-2.64,6.438c-1.637,1.652-3.877,2.668-6.368,2.669c-2.491-0.001-4.731-1.017-6.369-2.669c-1.635-1.654-2.639-3.919-2.64-6.438c0.005-2.499,0.995-4.292,2.035-5.558c0.517-0.625,1.043-1.098,1.425-1.401c0.191-0.152,0.346-0.263,0.445-0.329c0.049-0.034,0.085-0.058,0.104-0.069c0.005-0.004,0.009-0.006,0.012-0.008s0.004-0.002,0.004-0.002l0,0c0.946-0.567,1.262-1.802,0.705-2.763c-0.559-0.965-1.785-1.288-2.739-0.724c-0.128,0.079-1.555,0.93-3.024,2.696c-1.462,1.751-2.974,4.511-2.97,8.157C2.49,23.775,8.315,29.664,15.5,29.667c7.186-0.003,13.01-5.892,13.012-13.155C28.516,12.864,27.005,10.105,25.542,8.354zM15.5,17.523c1.105,0,2.002-0.907,2.002-2.023h-0.001V3.357c0-1.118-0.896-2.024-2.001-2.024s-2.002,0.906-2.002,2.024V15.5C13.498,16.616,14.395,17.523,15.5,17.523z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Unlock=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Unlock",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.375,12.833h-2.209V10c0,0,0,0,0-0.001c0-2.389,1.945-4.333,4.334-4.333c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h2V9.999h-0.001c-0.001-3.498-2.836-6.333-6.334-6.333S16.166,6.502,16.166,10v2.833H3.125V25h17.25V12.833z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Flag=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Flag",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M26.04,9.508c0.138-0.533,0.15-1.407,0.028-1.943l-0.404-1.771c-0.122-0.536-0.665-1.052-1.207-1.146l-3.723-0.643c-0.542-0.094-1.429-0.091-1.97,0.007l-4.033,0.726c-0.542,0.098-1.429,0.108-1.973,0.023L8.812,4.146C8.817,4.165,8.826,4.182,8.83,4.201l2.701,12.831l1.236,0.214c0.542,0.094,1.428,0.09,1.97-0.007l4.032-0.727c0.541-0.097,1.429-0.107,1.973-0.022l4.329,0.675c0.544,0.085,0.906-0.288,0.807-0.829l-0.485-2.625c-0.1-0.541-0.069-1.419,0.068-1.952L26.04,9.508zM6.667,3.636C6.126,3.75,5.78,4.279,5.894,4.819l5.763,27.378H13.7L7.852,4.409C7.736,3.867,7.207,3.521,6.667,3.636z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Tag=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Tag",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.263,2.826H7.904L2.702,8.028v6.359L18.405,30.09l11.561-11.562L14.263,2.826zM6.495,8.859c-0.619-0.619-0.619-1.622,0-2.24C7.114,6,8.117,6,8.736,6.619c0.62,0.62,0.619,1.621,0,2.241C8.117,9.479,7.114,9.479,6.495,8.859z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Search=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Search",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ZoomOut=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ZoomOut",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM8.854,11.884v4.001l9.665-0.001v-3.999L8.854,11.884z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ZoomIn=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ZoomIn",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM15.687,9.051h-4v2.833H8.854v4.001h2.833v2.833h4v-2.834h2.832v-3.999h-2.833V9.051z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Cross=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Cross",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Check=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Check",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M2.379,14.729 5.208,11.899 12.958,19.648 25.877,6.733 28.707,9.561 12.958,25.308z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Settings=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Settings",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16.015,12.03c-2.156,0-3.903,1.747-3.903,3.903c0,2.155,1.747,3.903,3.903,3.903c0.494,0,0.962-0.102,1.397-0.27l0.836,1.285l1.359-0.885l-0.831-1.276c0.705-0.706,1.142-1.681,1.142-2.757C19.918,13.777,18.171,12.03,16.015,12.03zM16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM26.174,20.809c-0.241,0.504-0.513,0.99-0.826,1.45L22.19,21.58c-0.481,0.526-1.029,0.994-1.634,1.385l0.119,3.202c-0.507,0.23-1.028,0.421-1.569,0.57l-1.955-2.514c-0.372,0.051-0.75,0.086-1.136,0.086c-0.356,0-0.706-0.029-1.051-0.074l-1.945,2.5c-0.541-0.151-1.065-0.342-1.57-0.569l0.117-3.146c-0.634-0.398-1.208-0.88-1.712-1.427L6.78,22.251c-0.313-0.456-0.583-0.944-0.826-1.448l2.088-2.309c-0.226-0.703-0.354-1.451-0.385-2.223l-2.768-1.464c0.055-0.563,0.165-1.107,0.301-1.643l3.084-0.427c0.29-0.702,0.675-1.352,1.135-1.942L8.227,7.894c0.399-0.389,0.83-0.744,1.283-1.07l2.663,1.672c0.65-0.337,1.349-0.593,2.085-0.75l0.968-3.001c0.278-0.021,0.555-0.042,0.837-0.042c0.282,0,0.56,0.022,0.837,0.042l0.976,3.028c0.72,0.163,1.401,0.416,2.036,0.75l2.704-1.697c0.455,0.326,0.887,0.681,1.285,1.07l-1.216,2.986c0.428,0.564,0.793,1.181,1.068,1.845l3.185,0.441c0.135,0.535,0.247,1.081,0.302,1.643l-2.867,1.516c-0.034,0.726-0.15,1.43-0.355,2.1L26.174,20.809z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.SettingsAlt=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.SettingsAlt",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM24.386,14.968c-1.451,1.669-3.706,2.221-5.685,1.586l-7.188,8.266c-0.766,0.88-2.099,0.97-2.979,0.205s-0.973-2.099-0.208-2.979l7.198-8.275c-0.893-1.865-0.657-4.164,0.787-5.824c1.367-1.575,3.453-2.151,5.348-1.674l-2.754,3.212l0.901,2.621l2.722,0.529l2.761-3.22C26.037,11.229,25.762,13.387,24.386,14.968z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Feed=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Feed",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.135,16.762c3.078,0,5.972,1.205,8.146,3.391c2.179,2.187,3.377,5.101,3.377,8.202h4.745c0-9.008-7.299-16.335-16.269-16.335V16.762zM4.141,8.354c10.973,0,19.898,8.975,19.898,20.006h4.743c0-13.646-11.054-24.749-24.642-24.749V8.354zM10.701,25.045c0,1.815-1.471,3.287-3.285,3.287s-3.285-1.472-3.285-3.287c0-1.813,1.471-3.285,3.285-3.285S10.701,23.231,10.701,25.045z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Bug=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Bug",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.589,10.903l-5.828,1.612c-0.534-1.419-1.338-2.649-2.311-3.628l3.082-5.44c0.271-0.48,0.104-1.092-0.38-1.365c-0.479-0.271-1.09-0.102-1.36,0.377l-2.924,5.162c-0.604-0.383-1.24-0.689-1.9-0.896c-0.416-1.437-1.652-2.411-3.058-2.562c-0.001-0.004-0.002-0.008-0.003-0.012c-0.061-0.242-0.093-0.46-0.098-0.65c-0.005-0.189,0.012-0.351,0.046-0.479c0.037-0.13,0.079-0.235,0.125-0.317c0.146-0.26,0.34-0.43,0.577-0.509c0.023,0.281,0.142,0.482,0.352,0.601c0.155,0.088,0.336,0.115,0.546,0.086c0.211-0.031,0.376-0.152,0.496-0.363c0.105-0.186,0.127-0.389,0.064-0.607c-0.064-0.219-0.203-0.388-0.414-0.507c-0.154-0.087-0.314-0.131-0.482-0.129c-0.167,0.001-0.327,0.034-0.481,0.097c-0.153,0.063-0.296,0.16-0.429,0.289c-0.132,0.129-0.241,0.271-0.33,0.426c-0.132,0.234-0.216,0.496-0.25,0.783c-0.033,0.286-0.037,0.565-0.009,0.84c0.017,0.16,0.061,0.301,0.094,0.449c-0.375-0.021-0.758,0.002-1.14,0.108c-0.482,0.133-0.913,0.36-1.28,0.653c-0.052-0.172-0.098-0.344-0.18-0.518c-0.116-0.249-0.263-0.486-0.438-0.716c-0.178-0.229-0.384-0.41-0.618-0.543C9.904,3.059,9.737,2.994,9.557,2.951c-0.18-0.043-0.352-0.052-0.516-0.027s-0.318,0.08-0.463,0.164C8.432,3.172,8.318,3.293,8.23,3.445C8.111,3.656,8.08,3.873,8.136,4.092c0.058,0.221,0.181,0.384,0.367,0.49c0.21,0.119,0.415,0.138,0.611,0.056C9.31,4.556,9.451,4.439,9.539,4.283c0.119-0.21,0.118-0.443-0.007-0.695c0.244-0.055,0.497-0.008,0.757,0.141c0.081,0.045,0.171,0.115,0.27,0.208c0.097,0.092,0.193,0.222,0.286,0.388c0.094,0.166,0.179,0.368,0.251,0.608c0.013,0.044,0.023,0.098,0.035,0.146c-0.911,0.828-1.357,2.088-1.098,3.357c-0.582,0.584-1.072,1.27-1.457,2.035l-5.16-2.926c-0.48-0.271-1.092-0.102-1.364,0.377C1.781,8.404,1.95,9.016,2.43,9.289l5.441,3.082c-0.331,1.34-0.387,2.807-0.117,4.297l-5.828,1.613c-0.534,0.147-0.846,0.699-0.698,1.231c0.147,0.53,0.697,0.843,1.231,0.694l5.879-1.627c0.503,1.057,1.363,2.28,2.371,3.443l-3.194,5.639c-0.272,0.481-0.104,1.092,0.378,1.363c0.239,0.137,0.512,0.162,0.758,0.094c0.248-0.068,0.469-0.229,0.604-0.471l2.895-5.109c2.7,2.594,5.684,4.123,5.778,1.053c1.598,2.56,3.451-0.338,4.502-3.976l5.203,2.947c0.24,0.138,0.514,0.162,0.762,0.094c0.246-0.067,0.467-0.229,0.603-0.471c0.272-0.479,0.104-1.091-0.377-1.362l-5.701-3.229c0.291-1.505,0.422-2.983,0.319-4.138l5.886-1.627c0.53-0.147,0.847-0.697,0.696-1.229C29.673,11.068,29.121,10.756,28.589,10.903z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Link=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Link",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16.45,18.085l-2.47,2.471c0.054,1.023-0.297,2.062-1.078,2.846c-1.465,1.459-3.837,1.459-5.302-0.002c-1.461-1.465-1.46-3.836-0.001-5.301c0.783-0.781,1.824-1.131,2.847-1.078l2.469-2.469c-2.463-1.057-5.425-0.586-7.438,1.426c-2.634,2.637-2.636,6.907,0,9.545c2.638,2.637,6.909,2.635,9.545,0l0.001,0.002C17.033,23.511,17.506,20.548,16.45,18.085zM14.552,12.915l2.467-2.469c-0.053-1.023,0.297-2.062,1.078-2.848C19.564,6.139,21.934,6.137,23.4,7.6c1.462,1.465,1.462,3.837,0,5.301c-0.783,0.783-1.822,1.132-2.846,1.079l-2.469,2.468c2.463,1.057,5.424,0.584,7.438-1.424c2.634-2.639,2.633-6.91,0-9.546c-2.639-2.636-6.91-2.637-9.545-0.001C13.967,7.489,13.495,10.451,14.552,12.915zM18.152,10.727l-7.424,7.426c-0.585,0.584-0.587,1.535,0,2.121c0.585,0.584,1.536,0.584,2.121-0.002l7.425-7.424c0.584-0.586,0.584-1.535,0-2.121C19.687,10.141,18.736,10.142,18.152,10.727z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Calendar=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Calendar",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M11.758,15.318c0.312-0.3,0.408-0.492,0.408-0.492h0.024c0,0-0.012,0.264-0.012,0.528v5.469h-1.871v1.031h4.87v-1.031H13.33v-7.436h-1.055l-2.027,1.967l0.719,0.744L11.758,15.318zM16.163,21.207c0,0.205,0.024,0.42,0.06,0.647h5.457v-1.031h-4.197c0.023-1.931,4.065-2.362,4.065-5.146c0-1.463-1.114-2.436-2.674-2.436c-1.907,0-2.675,1.607-2.675,1.607l0.875,0.587c0,0,0.6-1.08,1.716-1.08c0.887,0,1.522,0.563,1.522,1.403C20.312,17.754,16.163,18.186,16.163,21.207zM12,3.604h-2v3.335h2V3.604zM23,4.77v3.17h-4V4.77h-6v3.168H9.002V4.77H6.583v21.669h18.833V4.77H23zM24.417,25.438H7.584V10.522h16.833V25.438zM22,3.604h-2v3.335h2V3.604z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Picker=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Picker",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.221,10.853c-0.111-0.414-0.261-0.412,0.221-1.539l1.66-3.519c0.021-0.051,0.2-0.412,0.192-0.946c0.015-0.529-0.313-1.289-1.119-1.642c-1.172-0.555-1.17-0.557-2.344-1.107c-0.784-0.396-1.581-0.171-1.979,0.179c-0.42,0.333-0.584,0.7-0.609,0.75L16.58,6.545c-0.564,1.084-0.655,0.97-1.048,1.147c-0.469,0.129-1.244,0.558-1.785,1.815c-1.108,2.346-1.108,2.346-1.108,2.346l-0.276,0.586l1.17,0.553l-3.599,7.623c-0.38,0.828-0.166,1.436-0.166,2.032c0.01,0.627-0.077,1.509-0.876,3.21l-0.276,0.586l3.517,1.661l0.276-0.585c0.808-1.699,1.431-2.326,1.922-2.717c0.46-0.381,1.066-0.6,1.465-1.42l3.599-7.618l1.172,0.554l0.279-0.589c0,0,0,0,1.105-2.345C22.578,12.166,22.419,11.301,22.221,10.853zM14.623,22.83c-0.156,0.353-0.413,0.439-1.091,0.955c-0.577,0.448-1.264,1.172-2.009,2.6l-1.191-0.562c0.628-1.48,0.75-2.474,0.73-3.203c-0.031-0.851-0.128-1.104,0.045-1.449l3.599-7.621l3.517,1.662L14.623,22.83z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.No=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.No",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16,2.939C9.006,2.942,3.338,8.61,3.335,15.605C3.335,22.6,9.005,28.268,16,28.27c6.994-0.002,12.662-5.67,12.664-12.664C28.663,8.61,22.995,2.939,16,2.939zM25.663,15.605c-0.003,1.943-0.583,3.748-1.569,5.264L10.736,7.513c1.515-0.988,3.32-1.569,5.265-1.573C21.337,5.951,25.654,10.269,25.663,15.605zM6.335,15.605c0.004-1.943,0.584-3.75,1.573-5.266l13.355,13.357c-1.516,0.986-3.32,1.566-5.264,1.569C10.664,25.26,6.346,20.941,6.335,15.605z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.CommandLine=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.CommandLine",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M2.021,9.748L2.021,9.748V9.746V9.748zM2.022,9.746l5.771,5.773l-5.772,5.771l2.122,2.123l7.894-7.895L4.143,7.623L2.022,9.746zM12.248,23.269h14.419V20.27H12.248V23.269zM16.583,17.019h10.084V14.02H16.583V17.019zM12.248,7.769v3.001h14.419V7.769H12.248z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Photo=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Photo",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.25,10.25H20.5v-1.5h-9.375v1.5h-3.75c-1.104,0-2,0.896-2,2v10.375c0,1.104,0.896,2,2,2H24.25c1.104,0,2-0.896,2-2V12.25C26.25,11.146,25.354,10.25,24.25,10.25zM15.812,23.499c-3.342,0-6.06-2.719-6.06-6.061c0-3.342,2.718-6.062,6.06-6.062s6.062,2.72,6.062,6.062C21.874,20.78,19.153,23.499,15.812,23.499zM15.812,13.375c-2.244,0-4.062,1.819-4.062,4.062c0,2.244,1.819,4.062,4.062,4.062c2.244,0,4.062-1.818,4.062-4.062C19.875,15.194,18.057,13.375,15.812,13.375z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Printer=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Printer",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.569,12.125h-2.12c-0.207-1.34-1.247-2.759-2.444-3.967c-1.277-1.24-2.654-2.234-3.784-2.37c-0.062-0.008-0.124-0.014-0.198-0.015H8.594c-0.119,0-0.235,0.047-0.319,0.132c-0.083,0.083-0.132,0.2-0.132,0.32v5.9H6.069c-1.104,0-2,0.896-2,2V23h4.074v2.079c0,0.118,0.046,0.23,0.132,0.318c0.086,0.085,0.199,0.131,0.319,0.131h13.445c0.118,0,0.232-0.046,0.318-0.131s0.138-0.199,0.138-0.318V23h4.074v-8.875C26.569,13.021,25.674,12.125,24.569,12.125zM21.589,24.626H9.043V21.5h12.546V24.626zM21.589,13.921c0-0.03,0-0.063-0.003-0.096c-0.015-0.068-0.062-0.135-0.124-0.2H9.043v-6.95h6.987v0.001c0.305-0.019,0.567,0.282,0.769,0.971c0.183,0.655,0.229,1.509,0.229,2.102c0.001,0.433-0.019,0.725-0.019,0.725l-0.037,0.478l0.48,0.005c0.002,0,1.109,0.014,2.196,0.26c1.044,0.226,1.86,0.675,1.938,1.184c0.003,0.045,0.003,0.091,0.003,0.133V13.921z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Export=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Export",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.086,20.904c-1.805,3.113-5.163,5.212-9.023,5.219c-5.766-0.01-10.427-4.672-10.438-10.435C4.636,9.922,9.297,5.261,15.063,5.25c3.859,0.007,7.216,2.105,9.022,5.218l3.962,2.284l0.143,0.082C26.879,6.784,21.504,2.25,15.063,2.248C7.64,2.25,1.625,8.265,1.624,15.688c0.002,7.42,6.017,13.435,13.439,13.437c6.442-0.002,11.819-4.538,13.127-10.589l-0.141,0.081L24.086,20.904zM28.4,15.688l-7.15-4.129v2.297H10.275v3.661H21.25v2.297L28.4,15.688z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Import=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Import",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.067,2.25c-5.979,0-11.035,3.91-12.778,9.309h3.213c1.602-3.705,5.271-6.301,9.565-6.309c5.764,0.01,10.428,4.674,10.437,10.437c-0.009,5.764-4.673,10.428-10.437,10.438c-4.294-0.007-7.964-2.605-9.566-6.311H2.289c1.744,5.399,6.799,9.31,12.779,9.312c7.419-0.002,13.437-6.016,13.438-13.438C28.504,8.265,22.486,2.252,15.067,2.25zM10.918,19.813l7.15-4.126l-7.15-4.129v2.297H-0.057v3.661h10.975V19.813z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Run=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Run",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M17.41,20.395l-0.778-2.723c0.228-0.2,0.442-0.414,0.644-0.643l2.721,0.778c0.287-0.418,0.534-0.862,0.755-1.323l-2.025-1.96c0.097-0.288,0.181-0.581,0.241-0.883l2.729-0.684c0.02-0.252,0.039-0.505,0.039-0.763s-0.02-0.51-0.039-0.762l-2.729-0.684c-0.061-0.302-0.145-0.595-0.241-0.883l2.026-1.96c-0.222-0.46-0.469-0.905-0.756-1.323l-2.721,0.777c-0.201-0.228-0.416-0.442-0.644-0.643l0.778-2.722c-0.418-0.286-0.863-0.534-1.324-0.755l-1.96,2.026c-0.287-0.097-0.581-0.18-0.883-0.241l-0.683-2.73c-0.253-0.019-0.505-0.039-0.763-0.039s-0.51,0.02-0.762,0.039l-0.684,2.73c-0.302,0.061-0.595,0.144-0.883,0.241l-1.96-2.026C7.048,3.463,6.604,3.71,6.186,3.997l0.778,2.722C6.736,6.919,6.521,7.134,6.321,7.361L3.599,6.583C3.312,7.001,3.065,7.446,2.844,7.907l2.026,1.96c-0.096,0.288-0.18,0.581-0.241,0.883l-2.73,0.684c-0.019,0.252-0.039,0.505-0.039,0.762s0.02,0.51,0.039,0.763l2.73,0.684c0.061,0.302,0.145,0.595,0.241,0.883l-2.026,1.96c0.221,0.46,0.468,0.905,0.755,1.323l2.722-0.778c0.2,0.229,0.415,0.442,0.643,0.643l-0.778,2.723c0.418,0.286,0.863,0.533,1.323,0.755l1.96-2.026c0.288,0.097,0.581,0.181,0.883,0.241l0.684,2.729c0.252,0.02,0.505,0.039,0.763,0.039s0.51-0.02,0.763-0.039l0.683-2.729c0.302-0.061,0.596-0.145,0.883-0.241l1.96,2.026C16.547,20.928,16.992,20.681,17.41,20.395zM11.798,15.594c-1.877,0-3.399-1.522-3.399-3.399s1.522-3.398,3.399-3.398s3.398,1.521,3.398,3.398S13.675,15.594,11.798,15.594zM27.29,22.699c0.019-0.547-0.06-1.104-0.23-1.654l1.244-1.773c-0.188-0.35-0.4-0.682-0.641-0.984l-2.122,0.445c-0.428-0.364-0.915-0.648-1.436-0.851l-0.611-2.079c-0.386-0.068-0.777-0.105-1.173-0.106l-0.974,1.936c-0.279,0.054-0.558,0.128-0.832,0.233c-0.257,0.098-0.497,0.22-0.727,0.353L17.782,17.4c-0.297,0.262-0.568,0.545-0.813,0.852l0.907,1.968c-0.259,0.495-0.437,1.028-0.519,1.585l-1.891,1.06c0.019,0.388,0.076,0.776,0.164,1.165l2.104,0.519c0.231,0.524,0.541,0.993,0.916,1.393l-0.352,2.138c0.32,0.23,0.66,0.428,1.013,0.6l1.715-1.32c0.536,0.141,1.097,0.195,1.662,0.15l1.452,1.607c0.2-0.057,0.399-0.118,0.596-0.193c0.175-0.066,0.34-0.144,0.505-0.223l0.037-2.165c0.455-0.339,0.843-0.747,1.152-1.206l2.161-0.134c0.152-0.359,0.279-0.732,0.368-1.115L27.29,22.699zM23.127,24.706c-1.201,0.458-2.545-0.144-3.004-1.345s0.143-2.546,1.344-3.005c1.201-0.458,2.547,0.144,3.006,1.345C24.931,22.902,24.328,24.247,23.127,24.706z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Magnet=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Magnet",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.812,19.5h5.002v-6.867c-0.028-1.706-0.61-3.807-2.172-5.841c-1.539-2.014-4.315-3.72-7.939-3.687C12.076,3.073,9.3,4.779,7.762,6.792C6.2,8.826,5.617,10.928,5.588,12.634V19.5h5v-6.866c-0.027-0.377,0.303-1.789,1.099-2.748c0.819-0.979,1.848-1.747,4.014-1.778c2.165,0.032,3.195,0.799,4.013,1.778c0.798,0.959,1.126,2.372,1.099,2.748V19.5L20.812,19.5zM25.814,25.579c0,0,0-2.354,0-5.079h-5.002c0,2.727,0,5.08,0,5.08l5.004-0.001H25.814zM5.588,25.58h5c0,0,0-2.354,0-5.08h-5C5.588,23.227,5.588,25.58,5.588,25.58z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.NoMagnet=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.NoMagnet",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M10.59,17.857v-5.225c-0.027-0.376,0.303-1.789,1.099-2.748c0.819-0.979,1.849-1.748,4.014-1.778c1.704,0.026,2.699,0.508,3.447,1.189l3.539-3.539c-1.616-1.526-4.01-2.679-6.986-2.652C12.077,3.073,9.3,4.779,7.762,6.793C6.2,8.826,5.617,10.928,5.59,12.634V19.5h3.357L10.59,17.857zM5.59,20.5v2.357L7.947,20.5H5.59zM20.812,13.29v6.21h5.002v-6.866c-0.021-1.064-0.252-2.283-0.803-3.542L20.812,13.29zM25.339,4.522L4.652,25.209l1.415,1.416L26.753,5.937L25.339,4.522zM20.812,25.58h5.002c0,0,0-2.354,0-5.08h-5.002C20.812,23.227,20.812,25.58,20.812,25.58zM10.59,25.58c0,0,0-0.827,0-2.064L8.525,25.58H10.59z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ReflectH=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ReflectH",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.57,20.273h0.854v-1.705H15.57V20.273zM15.57,23.686h0.854V21.98H15.57V23.686zM15.57,27.096h0.854v-1.705H15.57V27.096zM15.57,29.689h0.854V28.8H15.57V29.689zM15.57,16.865h0.854V15.16H15.57V16.865zM15.57,3.225h0.854V1.52H15.57V3.225zM15.57,6.635h0.854V4.93H15.57V6.635zM15.57,10.045h0.854V8.34H15.57V10.045zM15.57,13.455h0.854V11.75H15.57V13.455zM18.41,3.327V25.46h12.015L18.41,3.327zM19.264,6.68l9.729,17.93h-9.729V6.68zM13.535,25.46V3.327L1.521,25.46H13.535z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.ReflectV=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.ReflectV",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.643,16.008v-0.854h-1.705v0.854H20.643zM24.053,16.008v-0.854h-1.705v0.854H24.053zM27.463,16.008v-0.854h-1.705v0.854H27.463zM30.059,16.008v-0.854h-0.891v0.854H30.059zM17.232,16.008v-0.854h-1.709v0.854H17.232zM3.593,16.008v-0.854H1.888v0.854H3.593zM7.003,16.008v-0.854H5.298v0.854H7.003zM10.414,16.008v-0.854H8.709v0.854H10.414zM13.824,16.008v-0.854h-1.705v0.854H13.824zM3.694,13.167h22.134V1.152L3.694,13.167zM7.048,12.314l17.929-9.729v9.729H7.048zM25.828,18.042H3.694l22.134,12.015V18.042z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Resize2=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Resize2",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M1.999,2.332v26.499H28.5V2.332H1.999zM26.499,26.832H4V12.5h8.167V4.332h14.332V26.832zM15.631,17.649l5.468,5.469l-1.208,1.206l5.482,1.469l-1.47-5.481l-1.195,1.195l-5.467-5.466l1.209-1.208l-5.482-1.469l1.468,5.48L15.631,17.649z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Rotate=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Rotate",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.5,5.27c1.914,0,3.666,0.629,5.089,1.686l-1.781,1.783l8.428,2.256l-2.26-8.427l-1.889,1.89C21.016,2.781,18.371,1.77,15.5,1.77C8.827,1.773,3.418,7.181,3.417,13.855c0.001,4.063,2.012,7.647,5.084,9.838v-4.887c-0.993-1.4-1.583-3.105-1.585-4.952C6.923,9.114,10.759,5.278,15.5,5.27zM9.5,29.23h12V12.355h-12V29.23z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Connect=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Connect",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.06,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h4.69v-3.999H25.06zM20.375,15.719c0-3.435-2.784-6.219-6.219-6.219c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h6.834c0.833,2.452,3.15,4.219,5.884,4.219C17.591,21.938,20.375,19.153,20.375,15.719z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Disconnect=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Disconnect",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M9.219,9.5c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h1.897c0.833,2.452,3.15,4.219,5.884,4.219c3.435,0,6.219-2.784,6.219-6.219S12.653,9.5,9.219,9.5zM27.685,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h2.065v-3.999H27.685z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Folder=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Folder",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.625,26.75h-26.5V8.375h1.124c1.751,0,0.748-3.125,3-3.125c3.215,0,1.912,0,5.126,0c2.251,0,1.251,3.125,3.001,3.125h14.25V26.75z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Man=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Man",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.021,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.103,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.463,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.602,21.541,22.443,18.912,21.021,16.349zM15.808,13.757c2.362,0,4.278-1.916,4.278-4.279s-1.916-4.279-4.278-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Woman=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Woman",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.022,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.104,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.579,5.192-0.351,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.167,1.213-0.167,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.464,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.603,21.541,22.444,18.912,21.022,16.349zM15.808,13.757c2.363,0,4.279-1.916,4.279-4.279s-1.916-4.279-4.279-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757zM18.731,4.974c1.235,0.455,0.492-0.725,0.492-1.531s0.762-1.792-0.492-1.391c-1.316,0.422-2.383,0.654-2.383,1.461S17.415,4.489,18.731,4.974zM15.816,4.4c0.782,0,0.345-0.396,0.345-0.884c0-0.488,0.438-0.883-0.345-0.883s-0.374,0.396-0.374,0.883C15.442,4.005,15.034,4.4,15.816,4.4zM12.884,4.974c1.316-0.484,2.383-0.654,2.383-1.461S14.2,2.474,12.884,2.052c-1.254-0.402-0.492,0.584-0.492,1.391S11.648,5.428,12.884,4.974z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.People=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.People",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.066,20.667c1.227-0.682,1.068-3.311-0.354-5.874c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.102,1.031c-1.164,0-2.231-0.391-3.104-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.549,0.312,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.938,1.139,5.312,2.543,5.312c0.846,0,1.265-0.865,1.466-2.188c0.2,1.314,0.62,2.188,1.461,2.188c1.396,0,2.545-2.375,2.545-5.312c0-0.66-0.062-1.291-0.168-1.873C19.939,20.745,20.516,20.983,21.066,20.667zM15.5,12.201c2.361,0,4.277-1.916,4.277-4.279S17.861,3.644,15.5,3.644c-2.363,0-4.28,1.916-4.28,4.279S13.137,12.201,15.5,12.201zM24.094,14.914c1.938,0,3.512-1.573,3.512-3.513c0-1.939-1.573-3.513-3.512-3.513c-1.94,0-3.513,1.573-3.513,3.513C20.581,13.341,22.153,14.914,24.094,14.914zM28.374,17.043c-0.502-0.907-1.116-1.641-1.732-2.154c-0.718,0.526-1.594,0.846-2.546,0.846c-0.756,0-1.459-0.207-2.076-0.55c0.496,1.093,0.803,2.2,0.861,3.19c0.093,1.516-0.381,2.641-1.329,3.165c-0.204,0.117-0.426,0.183-0.653,0.224c-0.056,0.392-0.095,0.801-0.095,1.231c0,2.412,0.935,4.361,2.088,4.361c0.694,0,1.039-0.71,1.204-1.796c0.163,1.079,0.508,1.796,1.199,1.796c1.146,0,2.09-1.95,2.09-4.361c0-0.542-0.052-1.06-0.139-1.538c0.492,0.472,0.966,0.667,1.418,0.407C29.671,21.305,29.541,19.146,28.374,17.043zM6.906,14.914c1.939,0,3.512-1.573,3.512-3.513c0-1.939-1.573-3.513-3.512-3.513c-1.94,0-3.514,1.573-3.514,3.513C3.392,13.341,4.966,14.914,6.906,14.914zM9.441,21.536c-1.593-0.885-1.739-3.524-0.457-6.354c-0.619,0.346-1.322,0.553-2.078,0.553c-0.956,0-1.832-0.321-2.549-0.846c-0.616,0.513-1.229,1.247-1.733,2.154c-1.167,2.104-1.295,4.262-0.287,4.821c0.451,0.257,0.925,0.064,1.414-0.407c-0.086,0.479-0.136,0.996-0.136,1.538c0,2.412,0.935,4.361,2.088,4.361c0.694,0,1.039-0.71,1.204-1.796c0.165,1.079,0.509,1.796,1.201,1.796c1.146,0,2.089-1.95,2.089-4.361c0-0.432-0.04-0.841-0.097-1.233C9.874,21.721,9.651,21.656,9.441,21.536z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Parent=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Parent",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.423,12.17c-0.875,0.641-1.941,1.031-3.102,1.031c-1.164,0-2.231-0.391-3.104-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.549,0.312,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.938,1.139,5.312,2.543,5.312c0.846,0,1.265-0.865,1.466-2.188c0.2,1.314,0.62,2.188,1.461,2.188c1.396,0,2.545-2.375,2.545-5.312c0-0.66-0.062-1.291-0.168-1.873c0.6,0.574,1.176,0.812,1.726,0.496c1.227-0.682,1.068-3.311-0.354-5.874C15.921,13.689,15.173,12.795,14.423,12.17zM11.32,12.201c2.361,0,4.277-1.916,4.277-4.279s-1.916-4.279-4.277-4.279c-2.363,0-4.28,1.916-4.28,4.279S8.957,12.201,11.32,12.201zM21.987,17.671c1.508,0,2.732-1.225,2.732-2.735c0-1.51-1.225-2.735-2.732-2.735c-1.511,0-2.736,1.225-2.736,2.735C19.251,16.446,20.477,17.671,21.987,17.671zM25.318,19.327c-0.391-0.705-0.869-1.277-1.349-1.677c-0.56,0.41-1.24,0.659-1.982,0.659c-0.744,0-1.426-0.25-1.983-0.659c-0.479,0.399-0.958,0.972-1.35,1.677c-0.909,1.638-1.009,3.318-0.224,3.754c0.351,0.2,0.721,0.05,1.101-0.317c-0.067,0.372-0.105,0.775-0.105,1.197c0,1.878,0.728,3.396,1.625,3.396c0.54,0,0.808-0.553,0.937-1.398c0.128,0.841,0.396,1.398,0.934,1.398c0.893,0,1.627-1.518,1.627-3.396c0-0.422-0.04-0.825-0.107-1.197c0.383,0.367,0.752,0.52,1.104,0.317C26.328,22.646,26.227,20.965,25.318,19.327z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Notebook=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Notebook",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.875,1.375H8c-1.033,0-1.874,0.787-1.979,1.792h1.604c1.102,0,2,0.898,2,2c0,1.102-0.898,2-2,2H6v0.999h1.625c1.104,0,2.002,0.898,2.002,2.002c0,1.104-0.898,2.001-2.002,2.001H6v0.997h1.625c1.102,0,2,0.898,2,2c0,1.104-0.898,2.004-2,2.004H6v0.994h1.625c1.102,0,2,0.898,2,2.002s-0.898,2.002-2,2.002H6v0.997h1.624c1.104,0,2.002,0.897,2.002,2.001c0,1.104-0.898,2.002-2.002,2.002H6.004C6.027,28.252,6.91,29.125,8,29.125h16.875c1.104,0,2-0.896,2-2V3.375C26.875,2.271,25.979,1.375,24.875,1.375zM25.25,8.375c0,0.552-0.447,1-1,1H14c-0.553,0-1-0.448-1-1V4c0-0.552,0.447-1,1-1h10.25c0.553,0,1,0.448,1,1V8.375zM8.625,25.166c0-0.554-0.449-1.001-1-1.001h-3.25c-0.552,0-1,0.447-1,1.001c0,0.552,0.449,1,1,1h3.25C8.176,26.166,8.625,25.718,8.625,25.166zM4.375,6.166h3.251c0.551,0,0.999-0.448,0.999-0.999c0-0.555-0.448-1-0.999-1H4.375c-0.553,0-1,0.445-1,1C3.374,5.718,3.822,6.166,4.375,6.166zM4.375,11.167h3.25c0.553,0,1-0.448,1-1s-0.448-1-1-1h-3.25c-0.553,0-1,0.448-1,1S3.822,11.167,4.375,11.167zM4.375,16.167h3.25c0.551,0,1-0.448,1-1.001s-0.448-0.999-1-0.999h-3.25c-0.553,0-1.001,0.446-1.001,0.999S3.822,16.167,4.375,16.167zM3.375,20.165c0,0.553,0.446,1.002,1,1.002h3.25c0.551,0,1-0.449,1-1.002c0-0.552-0.448-1-1-1h-3.25C3.821,19.165,3.375,19.613,3.375,20.165z")}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(1),s=i(o);a.default.shape.icon.Diagram=a.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Diagram",init:function(t,e,n){this._super((0,s.default)({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M6.812,17.202l7.396-3.665v-2.164h-0.834c-0.414,0-0.808-0.084-1.167-0.237v1.159l-7.396,3.667v2.912h2V17.202zM26.561,18.875v-2.913l-7.396-3.666v-1.158c-0.358,0.152-0.753,0.236-1.166,0.236h-0.832l-0.001,2.164l7.396,3.666v1.672H26.561zM16.688,18.875v-7.501h-2v7.501H16.688zM27.875,19.875H23.25c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C29.875,20.771,28.979,19.875,27.875,19.875zM8.125,19.875H3.5c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C10.125,20.771,9.229,19.875,8.125,19.875zM13.375,10.375H18c1.104,0,2-0.896,2-2V3.75c0-1.104-0.896-2-2-2h-4.625c-1.104,0-2,0.896-2,2v4.625C11.375,9.479,12.271,10.375,13.375,10.375zM18,19.875h-4.625c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2H18c1.104,0,2-0.896,2-2v-4.625C20,20.771,19.104,19.875,18,19.875z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.BarChart=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.BarChart",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.25,8.375V28h6.5V8.375H21.25zM12.25,28h6.5V4.125h-6.5V28zM3.25,28h6.5V12.625h-6.5V28z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.PieChart=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.PieChart",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.583,15.917l1.648-10.779C16.692,5.056,16.145,5,15.583,5C9.554,5,4.666,9.888,4.666,15.917c0,6.029,4.888,10.917,10.917,10.917S26.5,21.946,26.5,15.917c0-0.256-0.021-0.507-0.038-0.759L15.583,15.917zM19.437,3.127l-1.648,10.779l10.879-0.759C28.313,8.026,24.436,3.886,19.437,3.127z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.LineChart=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.LineChart",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M3.625,25.062c-0.539-0.115-0.885-0.646-0.77-1.187l0,0L6.51,6.584l2.267,9.259l1.923-5.188l3.581,3.741l3.883-13.103l2.934,11.734l1.96-1.509l5.271,11.74c0.226,0.504,0,1.095-0.505,1.321l0,0c-0.505,0.227-1.096,0-1.322-0.504l0,0l-4.23-9.428l-2.374,1.826l-1.896-7.596l-2.783,9.393l-3.754-3.924L8.386,22.66l-1.731-7.083l-1.843,8.711c-0.101,0.472-0.515,0.794-0.979,0.794l0,0C3.765,25.083,3.695,25.076,3.625,25.062L3.625,25.062z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Apps=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Apps",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.359,18.424l-2.326,1.215c0.708,1.174,1.384,2.281,1.844,3.033l2.043-1.066C25.538,20.822,24.966,19.652,24.359,18.424zM19.143,14.688c0.445,0.84,1.342,2.367,2.274,3.926l2.414-1.261c-0.872-1.769-1.72-3.458-2.087-4.122c-0.896-1.621-1.982-3.108-3.454-5.417c-1.673-2.625-3.462-5.492-4.052-4.947c-1.194,0.384,1.237,4.094,1.876,5.715C16.73,10.147,17.991,12.512,19.143,14.688zM26.457,22.673l-1.961,1.022l1.982,4.598c0,0,0.811,0.684,1.92,0.213c1.104-0.469,0.81-1.706,0.81-1.706L26.457,22.673zM24.35,15.711c0.168,0.339,2.924,5.93,2.924,5.93h1.983v-5.93H24.35zM18.34,15.704h-4.726l-3.424,5.935h11.66C21.559,21.159,18.771,16.479,18.34,15.704zM3.231,21.613l3.437-5.902H2.083v5.93h1.133L3.231,21.613zM15.048,10.145c0-0.93-0.754-1.685-1.685-1.685c-0.661,0-1.231,0.381-1.507,0.936l2.976,1.572C14.97,10.725,15.048,10.444,15.048,10.145zM14.343,12.06l-3.188-1.684L9.62,13.012l3.197,1.689L14.343,12.06zM3.192,26.886l-0.384,1.108v0.299l0.298-0.128l0.725-0.896l2.997-2.354l-3.137-1.651L3.192,26.886zM9.02,14.044l-4.757,8.17l3.23,1.706l4.728-8.186L9.02,14.044z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Locked=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Locked",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M26.711,14.085L16.914,4.29c-0.778-0.778-2.051-0.778-2.829,0L4.29,14.086c-0.778,0.778-0.778,2.05,0,2.829l9.796,9.796c0.778,0.777,2.051,0.777,2.829,0l9.797-9.797C27.488,16.136,27.488,14.863,26.711,14.085zM8.218,16.424c-0.4-0.153-0.687-0.533-0.687-0.987s0.287-0.834,0.687-0.987V16.424zM8.969,16.424v-1.974c0.4,0.152,0.687,0.533,0.687,0.987S9.369,16.272,8.969,16.424zM13.5,19.188l1.203-3.609c-0.689-0.306-1.172-0.994-1.172-1.797c0-1.087,0.881-1.969,1.969-1.969c1.087,0,1.969,0.881,1.969,1.969c0,0.803-0.482,1.491-1.172,1.797l1.203,3.609H13.5zM22.03,16.549c-0.399-0.152-0.687-0.533-0.687-0.986s0.287-0.834,0.687-0.987V16.549zM22.781,16.549v-1.973c0.4,0.152,0.688,0.533,0.688,0.987S23.182,16.397,22.781,16.549z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Ppt=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Ppt",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16.604,1.914c0-0.575-0.466-1.041-1.041-1.041s-1.041,0.466-1.041,1.041v1.04h2.082V1.914zM16.604,22.717h-2.082v3.207c0,0.574-4.225,4.031-4.225,4.031l2.468-0.003l2.807-2.673l3.013,2.693l2.272-0.039l-4.254-4.011V22.717L16.604,22.717zM28.566,7.113c0.86,0,1.56-0.698,1.56-1.56c0-0.861-0.698-1.56-1.56-1.56H2.561c-0.861,0-1.56,0.699-1.56,1.56c0,0.862,0.699,1.56,1.56,1.56h1.583v12.505l-0.932-0.022c-0.861,0-1.213,0.467-1.213,1.04c0,0.576,0.352,1.041,1.213,1.041h24.597c0.86,0,1.299-0.465,1.299-1.041c0-1.094-1.299-1.04-1.299-1.04l-0.804,0.109V7.113H28.566zM11.435,17.516c-3.771,0-4.194-4.191-4.194-4.191c0-4.096,4.162-4.161,4.162-4.161v4.161h4.193C15.596,17.516,11.435,17.516,11.435,17.516zM18.716,13.388h-1.071v-1.073h1.071V13.388zM18.716,10.267h-1.071V9.194h1.071V10.267zM23.314,13.388H20.26c-0.296,0-0.535-0.24-0.535-0.536c0-0.297,0.239-0.537,0.535-0.537h3.057c0.297,0,0.535,0.24,0.535,0.537C23.852,13.147,23.611,13.388,23.314,13.388zM23.314,10.267H20.26c-0.296,0-0.535-0.239-0.535-0.535c0-0.297,0.239-0.537,0.535-0.537h3.057c0.297,0,0.535,0.24,0.535,0.537C23.852,10.027,23.611,10.267,23.314,10.267z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Lab=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Lab",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.121,24.438l-3.362-7.847c-0.329-0.769-0.599-2.081-0.599-2.917s0.513-1.521,1.14-1.521s1.141-0.513,1.141-1.14s-0.685-1.14-1.521-1.14h-6.84c-0.836,0-1.52,0.513-1.52,1.14s0.513,1.14,1.14,1.14s1.14,0.685,1.14,1.521s-0.269,2.148-0.599,2.917l-3.362,7.847C8.55,25.206,8.28,26.177,8.28,26.595s0.342,1.103,0.76,1.521s1.444,0.76,2.28,0.76h8.359c0.836,0,1.862-0.342,2.28-0.76s0.76-1.103,0.76-1.521S22.45,25.206,22.121,24.438zM16.582,7.625c0,0.599,0.484,1.083,1.083,1.083s1.083-0.484,1.083-1.083s-0.484-1.084-1.083-1.084S16.582,7.026,16.582,7.625zM13.667,7.792c0.276,0,0.5-0.224,0.5-0.5s-0.224-0.5-0.5-0.5s-0.5,0.224-0.5,0.5S13.391,7.792,13.667,7.792zM15.584,5.292c0.874,0,1.583-0.709,1.583-1.583c0-0.875-0.709-1.584-1.583-1.584C14.709,2.125,14,2.834,14,3.709C14,4.583,14.709,5.292,15.584,5.292z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Umbrella=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Umbrella",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.784,26.991c0,1.238-1.329,1.696-1.835,1.696c-0.504,0-1.536-0.413-1.65-1.812c0-0.354-0.288-0.642-0.644-0.642c-0.354,0-0.641,0.287-0.641,0.642c0.045,1.056,0.756,3.052,2.935,3.052c2.432,0,3.166-1.882,3.166-3.144v-8.176l-1.328-0.024C14.787,18.584,14.784,25.889,14.784,26.991zM15.584,9.804c-6.807,0-11.084,4.859-11.587,8.326c0.636-0.913,1.694-1.51,2.89-1.51c1.197,0,2.22,0.582,2.855,1.495c0.638-0.904,1.69-1.495,2.88-1.495c1.2,0,2.26,0.6,2.896,1.517c0.635-0.917,1.83-1.517,3.03-1.517c1.19,0,2.241,0.591,2.879,1.495c0.636-0.913,1.659-1.495,2.855-1.495c1.197,0,2.254,0.597,2.89,1.51C26.669,14.663,22.393,9.804,15.584,9.804zM14.733,7.125v2.081h1.323V7.125c0-0.365-0.296-0.661-0.661-0.661C15.029,6.464,14.733,6.76,14.733,7.125z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Dry=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Dry",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.784,26.991c0,1.238-1.329,1.696-1.835,1.696c-0.504,0-1.536-0.413-1.65-1.812c0-0.354-0.288-0.642-0.644-0.642c-0.354,0-0.641,0.287-0.641,0.642c0.045,1.056,0.756,3.052,2.935,3.052c2.432,0,3.166-1.882,3.166-3.144v-8.176l-1.328-0.024C14.787,18.584,14.784,25.889,14.784,26.991zM15.584,9.804c-6.807,0-11.084,4.859-11.587,8.326c0.636-0.913,1.694-1.51,2.89-1.51c1.197,0,2.22,0.582,2.855,1.495c0.638-0.904,1.69-1.495,2.88-1.495c1.2,0,2.26,0.6,2.896,1.517c0.635-0.917,1.83-1.517,3.03-1.517c1.19,0,2.241,0.591,2.879,1.495c0.636-0.913,1.659-1.495,2.855-1.495c1.197,0,2.254,0.597,2.89,1.51C26.669,14.663,22.393,9.804,15.584,9.804zM14.733,7.125v2.081h1.323V7.125c0-0.365-0.296-0.661-0.661-0.661C15.029,6.464,14.733,6.76,14.733,7.125zM7.562,6.015c0.54,0.312,1.229,0.128,1.54-0.412c0.109-0.189,0.157-0.398,0.15-0.602L9.251,3.09L7.59,4.047c-0.178,0.095-0.333,0.24-0.441,0.428C6.837,5.015,7.022,5.703,7.562,6.015zM5.572,11.717c0.109-0.19,0.158-0.398,0.151-0.602L5.721,9.203l-1.66,0.957c-0.178,0.096-0.333,0.241-0.441,0.429c-0.311,0.539-0.127,1.229,0.413,1.539C4.571,12.44,5.26,12.256,5.572,11.717zM10.523,9.355c0.539,0.312,1.229,0.126,1.541-0.412c0.109-0.189,0.156-0.398,0.15-0.603L12.214,6.43l-1.662,0.956c-0.177,0.097-0.332,0.241-0.441,0.43C9.799,8.354,9.984,9.044,10.523,9.355zM15.251,3.998c0.539,0.312,1.229,0.126,1.54-0.412c0.11-0.19,0.157-0.398,0.15-0.603L16.94,1.072l-1.661,0.956c-0.178,0.097-0.332,0.242-0.441,0.43C14.526,2.998,14.711,3.687,15.251,3.998zM19.348,8.914c0.539,0.312,1.228,0.128,1.541-0.412c0.109-0.189,0.156-0.398,0.149-0.602h-0.001V5.988l-1.661,0.957c-0.178,0.096-0.332,0.241-0.441,0.429C18.623,7.914,18.809,8.603,19.348,8.914zM23.633,5.196c0.54,0.312,1.23,0.126,1.542-0.413c0.109-0.189,0.156-0.398,0.149-0.602h-0.001V2.27l-1.662,0.957c-0.177,0.096-0.331,0.24-0.44,0.43C22.909,4.195,23.094,4.885,23.633,5.196zM27.528,8.51l-1.659,0.956c-0.18,0.097-0.334,0.242-0.443,0.43c-0.312,0.539-0.127,1.229,0.413,1.54c0.539,0.312,1.229,0.127,1.541-0.412c0.109-0.19,0.158-0.398,0.151-0.603L27.528,8.51z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Ipad=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Ipad",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.221,1.417H6.11c-0.865,0-1.566,0.702-1.566,1.566v25.313c0,0.865,0.701,1.565,1.566,1.565h19.111c0.865,0,1.565-0.7,1.565-1.565V2.984C26.787,2.119,26.087,1.417,25.221,1.417zM15.666,29.299c-0.346,0-0.626-0.279-0.626-0.625s0.281-0.627,0.626-0.627c0.346,0,0.627,0.281,0.627,0.627S16.012,29.299,15.666,29.299zM24.376,26.855c0,0.174-0.142,0.312-0.313,0.312H7.27c-0.173,0-0.313-0.142-0.313-0.312V4.3c0-0.173,0.14-0.313,0.313-0.313h16.792c0.172,0,0.312,0.14,0.312,0.313L24.376,26.855L24.376,26.855z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Iphone=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Iphone",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.755,1H10.62C9.484,1,8.562,1.921,8.562,3.058v24.385c0,1.136,0.921,2.058,2.058,2.058h10.135c1.136,0,2.058-0.922,2.058-2.058V3.058C22.812,1.921,21.891,1,20.755,1zM14.659,3.264h2.057c0.101,0,0.183,0.081,0.183,0.18c0,0.1-0.082,0.18-0.183,0.18h-2.057c-0.1,0-0.181-0.081-0.181-0.18C14.478,3.344,14.559,3.264,14.659,3.264zM13.225,3.058c0.199,0,0.359,0.162,0.359,0.36c0,0.198-0.161,0.36-0.359,0.36c-0.2,0-0.36-0.161-0.36-0.36S13.025,3.058,13.225,3.058zM15.688,28.473c-0.796,0-1.44-0.646-1.44-1.438c0-0.799,0.645-1.439,1.44-1.439s1.44,0.646,1.44,1.439S16.483,28.473,15.688,28.473zM22.041,24.355c0,0.17-0.139,0.309-0.309,0.309H9.642c-0.17,0-0.308-0.139-0.308-0.309V6.042c0-0.17,0.138-0.309,0.308-0.309h12.09c0.17,0,0.309,0.138,0.309,0.309V24.355z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Jigsaw=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Jigsaw",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M3.739,13.619c0,0,3.516-4.669,5.592-3.642c2.077,1.027-0.414,2.795,1.598,3.719c2.011,0.924,5.048-0.229,4.376-2.899c-0.672-2.67-1.866-0.776-2.798-2.208c-0.934-1.432,4.586-4.59,4.586-4.59s3.361,6.651,4.316,4.911c1.157-2.105,3.193-4.265,5.305-1.025c0,0,1.814,2.412,0.246,3.434s-2.917,0.443-3.506,1.553c-0.586,1.112,3.784,4.093,3.784,4.093s-2.987,4.81-4.926,3.548c-1.939-1.262,0.356-3.364-2.599-3.989c-1.288-0.23-3.438,0.538-3.818,2.34c-0.13,2.709,1.604,2.016,2.797,3.475c1.191,1.457-4.484,4.522-4.484,4.522s-1.584-3.923-3.811-4.657c-2.227-0.735-0.893,2.135-2.917,2.531c-2.024,0.396-4.816-2.399-3.46-4.789c1.358-2.391,3.275-0.044,3.441-1.951C7.629,16.087,3.739,13.619,3.739,13.619z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Lamp=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Lamp",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.5,2.833c-3.866,0-7,3.134-7,7c0,3.859,3.945,4.937,4.223,9.499h5.553c0.278-4.562,4.224-5.639,4.224-9.499C22.5,5.968,19.366,2.833,15.5,2.833zM15.5,28.166c1.894,0,2.483-1.027,2.667-1.666h-5.334C13.017,27.139,13.606,28.166,15.5,28.166zM12.75,25.498h5.5v-5.164h-5.5V25.498z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Lamp_alt=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Lamp_alt",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M12.75,25.498h5.5v-5.164h-5.5V25.498zM15.5,28.166c1.894,0,2.483-1.027,2.667-1.666h-5.334C13.017,27.139,13.606,28.166,15.5,28.166zM15.5,2.833c-3.866,0-7,3.134-7,7c0,3.859,3.945,4.937,4.223,9.499h1.271c-0.009-0.025-0.024-0.049-0.029-0.078L11.965,8.256c-0.043-0.245,0.099-0.485,0.335-0.563c0.237-0.078,0.494,0.026,0.605,0.25l0.553,1.106l0.553-1.106c0.084-0.17,0.257-0.277,0.446-0.277c0.189,0,0.362,0.107,0.446,0.277l0.553,1.106l0.553-1.106c0.084-0.17,0.257-0.277,0.448-0.277c0.189,0,0.36,0.107,0.446,0.277l0.554,1.106l0.553-1.106c0.111-0.224,0.368-0.329,0.604-0.25s0.377,0.318,0.333,0.563l-1.999,10.998c-0.005,0.029-0.02,0.053-0.029,0.078h1.356c0.278-4.562,4.224-5.639,4.224-9.499C22.5,5.968,19.366,2.833,15.5,2.833zM17.458,10.666c-0.191,0-0.364-0.107-0.446-0.275l-0.554-1.106l-0.553,1.106c-0.086,0.168-0.257,0.275-0.446,0.275c-0.191,0-0.364-0.107-0.449-0.275l-0.553-1.106l-0.553,1.106c-0.084,0.168-0.257,0.275-0.446,0.275c-0.012,0-0.025,0-0.037-0.001l1.454,8.001h1.167l1.454-8.001C17.482,10.666,17.47,10.666,17.458,10.666z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Video=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Video",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.188,4.875v1.094h-4.5V4.875H8.062v1.094h-4.5V4.875h-1v21.25h1v-1.094h4.5v1.094h14.625v-1.094h4.5v1.094h1.25V4.875H27.188zM8.062,23.719h-4.5v-3.125h4.5V23.719zM8.062,19.281h-4.5v-3.125h4.5V19.281zM8.062,14.844h-4.5v-3.125h4.5V14.844zM8.062,10.406h-4.5V7.281h4.5V10.406zM11.247,20.59V9.754l9.382,5.418L11.247,20.59zM27.188,23.719h-4.5v-3.125h4.5V23.719zM27.188,19.281h-4.5v-3.125h4.5V19.281zM27.188,14.844h-4.5v-3.125h4.5V14.844zM27.188,10.406h-4.5V7.281h4.5V10.406z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Palm=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Palm",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.296,27.885v-2.013c0,0-0.402-1.408-1.073-2.013c-0.671-0.604-1.274-1.274-1.409-1.61c0,0-0.268,0.135-0.737-0.335s-1.812-2.616-1.812-2.616l-0.671-0.872c0,0-0.47-0.671-1.275-1.342c-0.805-0.672-0.938-0.067-1.476-0.738s0.604-1.275,1.006-1.409c0.403-0.134,1.946,0.134,2.684,0.872c0.738,0.738,0.738,0.738,0.738,0.738l1.073,1.141l0.537,0.201l0.671-1.073l-0.269-2.281c0,0-0.604-2.55-0.737-4.764c-0.135-2.214-0.47-5.703,1.006-5.837s1.007,2.55,1.073,3.489c0.067,0.938,0.806,5.232,1.208,5.568c0.402,0.335,0.671,0.066,0.671,0.066l0.402-7.514c0,0-0.479-2.438,1.073-2.549c0.939-0.067,0.872,1.543,0.872,2.147c0,0.604,0.269,7.514,0.269,7.514l0.537,0.135c0,0,0.402-2.214,0.604-3.153s0.604-2.416,0.537-3.087c-0.067-0.671-0.135-2.348,1.006-2.348s0.872,1.812,0.939,2.415s-0.134,3.153-0.134,3.757c0,0.604-0.738,3.623-0.537,3.824s2.08-2.817,2.349-3.958c0.268-1.141,0.201-3.02,1.408-2.885c1.208,0.134,0.47,2.817,0.402,3.086c-0.066,0.269-0.671,2.349-0.872,2.952s-0.805,1.476-1.006,2.013s0.402,2.349,0,4.629c-0.402,2.281-1.61,5.166-1.61,5.166l0.604,2.08c0,0-1.744,0.671-3.824,0.805C16.443,28.221,14.296,27.885,14.296,27.885z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Fave=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Fave",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.132,7.971c-2.203-2.205-5.916-2.098-8.25,0.235L15.5,8.588l-0.382-0.382c-2.334-2.333-6.047-2.44-8.25-0.235c-2.204,2.203-2.098,5.916,0.235,8.249l8.396,8.396l8.396-8.396C26.229,13.887,26.336,10.174,24.132,7.971z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Help=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Help",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.834,4.834L4.833,4.833c-5.889,5.892-5.89,15.443,0.001,21.334s15.44,5.888,21.33-0.002c5.891-5.891,5.893-15.44,0.002-21.33C20.275-1.056,10.725-1.056,4.834,4.834zM25.459,5.542c0.833,0.836,1.523,1.757,2.104,2.726l-4.08,4.08c-0.418-1.062-1.053-2.06-1.912-2.918c-0.859-0.859-1.857-1.494-2.92-1.913l4.08-4.08C23.7,4.018,24.622,4.709,25.459,5.542zM10.139,20.862c-2.958-2.968-2.959-7.758-0.001-10.725c2.966-2.957,7.756-2.957,10.725,0c2.954,2.965,2.955,7.757-0.001,10.724C17.896,23.819,13.104,23.817,10.139,20.862zM5.542,25.459c-0.833-0.837-1.524-1.759-2.105-2.728l4.081-4.081c0.418,1.063,1.055,2.06,1.914,2.919c0.858,0.859,1.855,1.494,2.917,1.913l-4.081,4.081C7.299,26.982,6.379,26.292,5.542,25.459zM8.268,3.435l4.082,4.082C11.288,7.935,10.29,8.571,9.43,9.43c-0.858,0.859-1.494,1.855-1.912,2.918L3.436,8.267c0.58-0.969,1.271-1.89,2.105-2.727C6.377,4.707,7.299,4.016,8.268,3.435zM22.732,27.563l-4.082-4.082c1.062-0.418,2.061-1.053,2.919-1.912c0.859-0.859,1.495-1.857,1.913-2.92l4.082,4.082c-0.58,0.969-1.271,1.891-2.105,2.728C24.623,26.292,23.701,26.983,22.732,27.563z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Crop=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Crop",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.303,21.707V8.275l4.48-4.421l-2.021-2.048l-4.126,4.07H8.761V2.083H5.882v3.793H1.8v2.877h4.083v15.832h15.542v4.609h2.878v-4.609H29.2v-2.878H24.303zM19.72,8.753L8.761,19.565V8.753H19.72zM10.688,21.706l10.735-10.591l0.001,10.592L10.688,21.706z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.BioHazard=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.BioHazard",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M26.154,13.988c-0.96-0.554-1.982-0.892-3.019-1.032c0.396-0.966,0.616-2.023,0.616-3.131c0-4.399-3.438-8.001-7.772-8.264c3.245,0.258,5.803,2.979,5.803,6.292c0,3.373-2.653,6.123-5.983,6.294v1.292c0.908,0.144,1.605,0.934,1.605,1.883c0,0.232-0.043,0.454-0.118,0.66l1.181,0.683c1.826-2.758,5.509-3.658,8.41-1.981c2.896,1.672,3.965,5.299,2.506,8.254C31.386,21.038,29.992,16.204,26.154,13.988zM4.122,16.587c2.92-1.686,6.628-0.764,8.442,2.034l1.141-0.657c-0.072-0.2-0.109-0.417-0.109-0.642c0-0.909,0.638-1.67,1.489-1.859v-1.319c-3.3-0.202-5.92-2.94-5.92-6.292c0-3.297,2.532-6.007,5.757-6.286c-4.312,0.285-7.729,3.875-7.729,8.258c0,1.078,0.206,2.106,0.581,3.05c-1.004,0.147-1.999,0.481-2.931,1.02c-3.812,2.201-5.209,6.985-3.264,10.87C0.174,21.823,1.251,18.244,4.122,16.587zM11.15,11.452c0.114,0.139,0.235,0.271,0.362,0.398c0.126,0.126,0.259,0.247,0.397,0.361c0.102,0.084,0.211,0.16,0.318,0.236c0.93-0.611,2.045-0.969,3.244-0.969c1.201,0,2.312,0.357,3.242,0.969c0.107-0.077,0.217-0.152,0.318-0.236c0.139-0.114,0.271-0.235,0.397-0.361c0.127-0.127,0.248-0.259,0.362-0.398c0.113-0.138,0.222-0.283,0.323-0.431c-1.307-0.956-2.908-1.528-4.643-1.528c-0.042,0-0.083-0.001-0.124,0c-0.019,0-0.04-0.001-0.06,0c-1.666,0.038-3.201,0.605-4.462,1.528C10.929,11.17,11.037,11.314,11.15,11.452zM9.269,16.787c-0.168-0.062-0.338-0.117-0.512-0.164c-0.173-0.047-0.348-0.083-0.525-0.113c-0.177-0.03-0.355-0.053-0.535-0.065c-0.175,1.609,0.13,3.282,0.998,4.786c0.868,1.503,2.164,2.606,3.645,3.259c0.079-0.162,0.15-0.328,0.212-0.496c0.063-0.169,0.118-0.338,0.164-0.512c0.047-0.173,0.087-0.349,0.115-0.525c0.022-0.13,0.034-0.262,0.046-0.394c-0.993-0.5-1.86-1.286-2.461-2.325c-0.6-1.04-0.847-2.182-0.783-3.294C9.512,16.889,9.392,16.833,9.269,16.787zM18.122,22.657c0.014,0.132,0.024,0.263,0.046,0.394c0.03,0.177,0.067,0.352,0.113,0.524c0.047,0.174,0.102,0.346,0.165,0.514c0.062,0.169,0.132,0.333,0.212,0.495c1.48-0.653,2.777-1.755,3.644-3.257c0.868-1.504,1.176-3.179,1.001-4.788c-0.18,0.013-0.358,0.035-0.535,0.065c-0.177,0.029-0.353,0.067-0.525,0.113s-0.345,0.101-0.513,0.163c-0.124,0.047-0.241,0.105-0.362,0.16c0.063,1.11-0.183,2.253-0.784,3.292C19.984,21.373,19.116,22.157,18.122,22.657zM20.569,27.611c-2.92-1.687-3.977-5.358-2.46-8.329l-1.192-0.689c-0.349,0.389-0.854,0.634-1.417,0.634c-0.571,0-1.086-0.254-1.436-0.653l-1.146,0.666c1.475,2.96,0.414,6.598-2.488,8.272c-2.888,1.668-6.552,0.791-8.386-1.935c2.38,3.667,7.249,4.87,11.079,2.658c0.929-0.535,1.711-1.227,2.339-2.018c0.64,0.832,1.45,1.554,2.416,2.112c3.835,2.213,8.709,1.006,11.086-2.671C27.132,28.396,23.463,29.282,20.569,27.611z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.WheelChair=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.WheelChair",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.373,19.85c0,4.079-3.318,7.397-7.398,7.397c-4.079,0-7.398-3.318-7.398-7.397c0-2.466,1.213-4.652,3.073-5.997l-0.251-2.21c-2.875,1.609-4.825,4.684-4.825,8.207c0,5.184,4.217,9.4,9.401,9.4c4.395,0,8.093-3.031,9.117-7.111L20.37,19.73C20.37,19.771,20.373,19.81,20.373,19.85zM11.768,6.534c1.321,0,2.392-1.071,2.392-2.392c0-1.321-1.071-2.392-2.392-2.392c-1.321,0-2.392,1.071-2.392,2.392C9.375,5.463,10.446,6.534,11.768,6.534zM27.188,22.677l-5.367-7.505c-0.28-0.393-0.749-0.579-1.226-0.538c-0.035-0.003-0.071-0.006-0.106-0.006h-6.132l-0.152-1.335h4.557c0.53,0,0.96-0.429,0.96-0.959c0-0.53-0.43-0.959-0.96-0.959h-4.776l-0.25-2.192c-0.146-1.282-1.303-2.203-2.585-2.057C9.869,7.271,8.948,8.428,9.094,9.71l0.705,6.19c0.136,1.197,1.154,2.078,2.332,2.071c0.004,0,0.007,0.001,0.012,0.001h8.023l4.603,6.436c0.439,0.615,1.338,0.727,2.007,0.248C27.442,24.178,27.628,23.292,27.188,22.677z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Mic=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Mic",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.5,21.125c2.682,0,4.875-2.25,4.875-5V5.875c0-2.75-2.193-5-4.875-5s-4.875,2.25-4.875,5v10.25C10.625,18.875,12.818,21.125,15.5,21.125zM21.376,11v5.125c0,3.308-2.636,6-5.876,6s-5.875-2.691-5.875-6V11H6.626v5.125c0,4.443,3.194,8.132,7.372,8.861v2.139h-3.372v3h9.749v-3h-3.376v-2.139c4.181-0.727,7.375-4.418,7.375-8.861V11H21.376z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.MicMute=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.MicMute",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M10.121,18.529c-0.317-0.736-0.496-1.549-0.496-2.404V11H6.626v5.125c0,1.693,0.466,3.275,1.272,4.627L10.121,18.529zM20.375,8.276V5.875c0-2.75-2.193-5-4.875-5s-4.875,2.25-4.875,5v10.25c0,0.568,0.113,1.105,0.285,1.615L20.375,8.276zM21.376,12.931v3.195c0,3.308-2.636,6-5.876,6c-0.958,0-1.861-0.24-2.661-0.657l-2.179,2.179c0.995,0.659,2.123,1.128,3.338,1.34v2.139h-3.372v3h9.749v-3h-3.376v-2.139c4.181-0.727,7.375-4.418,7.375-8.861V11h-1.068L21.376,12.931zM20.375,16.125v-2.194l-6.788,6.788c0.588,0.26,1.234,0.405,1.913,0.405C18.182,21.125,20.375,18.875,20.375,16.125zM25.542,4.522L4.855,25.209l1.415,1.416L26.956,5.937L25.542,4.522z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.IMac=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.IMac",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.936,2.099H2.046c-0.506,0-0.919,0.414-0.919,0.92v21.097c0,0.506,0.413,0.919,0.919,0.919h17.062v-0.003h9.828c0.506,0,0.92-0.413,0.92-0.921V3.019C29.854,2.513,29.439,2.099,28.936,2.099zM28.562,20.062c0,0.412-0.338,0.75-0.75,0.75H3.062c-0.413,0-0.75-0.338-0.75-0.75v-16c0-0.413,0.337-0.75,0.75-0.75h24.75c0.412,0,0.75,0.337,0.75,0.75V20.062zM20.518,28.4c-0.033-0.035-0.062-0.055-0.068-0.062l-0.01-0.004l-0.008-0.004c0,0-0.046-0.021-0.119-0.062c-0.108-0.056-0.283-0.144-0.445-0.237c-0.162-0.097-0.32-0.199-0.393-0.271c-0.008-0.014-0.035-0.079-0.058-0.17c-0.083-0.32-0.161-0.95-0.22-1.539h-7.5c-0.023,0.23-0.048,0.467-0.076,0.691c-0.035,0.272-0.073,0.524-0.113,0.716c-0.02,0.096-0.039,0.175-0.059,0.23c-0.009,0.025-0.018,0.05-0.024,0.062c-0.003,0.006-0.005,0.01-0.007,0.013c-0.094,0.096-0.34,0.246-0.553,0.36c-0.107,0.062-0.209,0.11-0.283,0.146c-0.074,0.037-0.119,0.062-0.119,0.062l-0.007,0.004l-0.008,0.004c-0.01,0.009-0.038,0.022-0.07,0.062c-0.031,0.037-0.067,0.103-0.067,0.185c0.002,0.002-0.004,0.037-0.006,0.088c0,0.043,0.007,0.118,0.068,0.185c0.061,0.062,0.143,0.08,0.217,0.08h9.716c0.073,0,0.153-0.021,0.215-0.08c0.062-0.063,0.068-0.142,0.068-0.185c-0.001-0.051-0.008-0.086-0.007-0.088C20.583,28.503,20.548,28.439,20.518,28.4z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Pc=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Pc",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M29.249,3.14h-9.188l-0.459,0.459v18.225l0.33,2.389H19.57v0.245h-0.307v-0.306h-0.611v0.244h-0.311v-0.367h-0.486v0.307h-1.104l-2.022-0.367v-0.92h0.858l0.302-1.47h2.728c0.188,0,0.339-0.152,0.339-0.339V7.828c0-0.187-0.149-0.338-0.339-0.338H1.591c-0.187,0-0.339,0.152-0.339,0.338V21.24c0,0.187,0.152,0.339,0.339,0.339h3.016l0.199,1.47h1.409l-3.4,3.4L2.11,27.951c0,0,2.941,1.102,6.678,1.102c3.737,0,9.679-0.857,10.476-0.857s4.84,0,4.84,0v-1.225l-0.137-1.068h1.744c-0.2,0.106-0.322,0.244-0.322,0.396v0.979c0,0.341,0.604,0.613,1.352,0.613c0.742,0,1.348-0.272,1.348-0.613v-0.979c0-0.339-0.604-0.611-1.348-0.611c-0.188,0-0.364,0.019-0.525,0.049v-0.17h-2.29l-0.055-0.432h5.382L29.249,3.14L29.249,3.14zM2.478,20.17V8.714h15.07V20.17H2.478z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Cube=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Cube",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.5,3.029l-10.8,6.235L4.7,21.735L15.5,27.971l10.8-6.235V9.265L15.5,3.029zM24.988,10.599L16,15.789v10.378c0,0.275-0.225,0.5-0.5,0.5s-0.5-0.225-0.5-0.5V15.786l-8.987-5.188c-0.239-0.138-0.321-0.444-0.183-0.683c0.138-0.238,0.444-0.321,0.683-0.183l8.988,5.189l8.988-5.189c0.238-0.138,0.545-0.055,0.684,0.184C25.309,10.155,25.227,10.461,24.988,10.599z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.FullCube=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.FullCube",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.5,3.029l-10.8,6.235L4.7,21.735L15.5,27.971l10.8-6.235V9.265L15.5,3.029zM15.5,7.029l6.327,3.652L15.5,14.334l-6.326-3.652L15.5,7.029zM24.988,10.599L16,15.789v10.378c0,0.275-0.225,0.5-0.5,0.5s-0.5-0.225-0.5-0.5V15.786l-8.987-5.188c-0.239-0.138-0.321-0.444-0.183-0.683c0.138-0.238,0.444-0.321,0.683-0.183l8.988,5.189l8.988-5.189c0.238-0.138,0.545-0.055,0.684,0.184C25.309,10.155,25.227,10.461,24.988,10.599z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Font=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Font",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.255,19.327l-1.017,0.131c-0.609,0.081-1.067,0.208-1.375,0.382c-0.521,0.293-0.779,0.76-0.779,1.398c0,0.484,0.178,0.867,0.532,1.146c0.354,0.28,0.774,0.421,1.262,0.421c0.593,0,1.164-0.138,1.72-0.412c0.938-0.453,1.4-1.188,1.4-2.229v-1.354c-0.205,0.131-0.469,0.229-0.792,0.328C22.883,19.229,22.564,19.29,22.255,19.327zM8.036,18.273h4.309l-2.113-6.063L8.036,18.273zM28.167,7.75H3.168c-0.552,0-1,0.448-1,1v16.583c0,0.553,0.448,1,1,1h24.999c0.554,0,1-0.447,1-1V8.75C29.167,8.198,28.721,7.75,28.167,7.75zM14.305,23.896l-1.433-4.109H7.488L6,23.896H4.094L9.262,10.17h2.099l4.981,13.727H14.305L14.305,23.896zM26.792,23.943c-0.263,0.074-0.461,0.121-0.599,0.141c-0.137,0.02-0.323,0.027-0.562,0.027c-0.579,0-0.999-0.204-1.261-0.615c-0.138-0.219-0.231-0.525-0.29-0.926c-0.344,0.449-0.834,0.839-1.477,1.169c-0.646,0.329-1.354,0.493-2.121,0.493c-0.928,0-1.688-0.28-2.273-0.844c-0.589-0.562-0.884-1.271-0.884-2.113c0-0.928,0.29-1.646,0.868-2.155c0.578-0.511,1.34-0.824,2.279-0.942l2.682-0.336c0.388-0.05,0.646-0.211,0.775-0.484c0.063-0.146,0.104-0.354,0.104-0.646c0-0.575-0.203-0.993-0.604-1.252c-0.408-0.26-0.99-0.389-1.748-0.389c-0.877,0-1.5,0.238-1.865,0.713c-0.205,0.263-0.34,0.654-0.399,1.174H17.85c0.031-1.237,0.438-2.097,1.199-2.582c0.77-0.484,1.659-0.726,2.674-0.726c1.176,0,2.131,0.225,2.864,0.673c0.729,0.448,1.093,1.146,1.093,2.093v5.766c0,0.176,0.035,0.313,0.106,0.422c0.071,0.104,0.223,0.156,0.452,0.156c0.076,0,0.16-0.005,0.254-0.015c0.093-0.011,0.191-0.021,0.299-0.041L26.792,23.943L26.792,23.943z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Trash=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Trash",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.826,5.75l0.396,1.188c1.54,0.575,2.589,1.44,2.589,2.626c0,2.405-4.308,3.498-8.312,3.498c-4.003,0-8.311-1.093-8.311-3.498c0-1.272,1.21-2.174,2.938-2.746l0.388-1.165c-2.443,0.648-4.327,1.876-4.327,3.91v2.264c0,1.224,0.685,2.155,1.759,2.845l0.396,9.265c0,1.381,3.274,2.5,7.312,2.5c4.038,0,7.313-1.119,7.313-2.5l0.405-9.493c0.885-0.664,1.438-1.521,1.438-2.617V9.562C24.812,7.625,23.101,6.42,20.826,5.75zM11.093,24.127c-0.476-0.286-1.022-0.846-1.166-1.237c-1.007-2.76-0.73-4.921-0.529-7.509c0.747,0.28,1.58,0.491,2.45,0.642c-0.216,2.658-0.43,4.923,0.003,7.828C11.916,24.278,11.567,24.411,11.093,24.127zM17.219,24.329c-0.019,0.445-0.691,0.856-1.517,0.856c-0.828,0-1.498-0.413-1.517-0.858c-0.126-2.996-0.032-5.322,0.068-8.039c0.418,0.022,0.835,0.037,1.246,0.037c0.543,0,1.097-0.02,1.651-0.059C17.251,18.994,17.346,21.325,17.219,24.329zM21.476,22.892c-0.143,0.392-0.69,0.95-1.165,1.235c-0.474,0.284-0.817,0.151-0.754-0.276c0.437-2.93,0.214-5.209-0.005-7.897c0.881-0.174,1.708-0.417,2.44-0.731C22.194,17.883,22.503,20.076,21.476,22.892zM11.338,9.512c0.525,0.173,1.092-0.109,1.268-0.633h-0.002l0.771-2.316h4.56l0.771,2.316c0.14,0.419,0.53,0.685,0.949,0.685c0.104,0,0.211-0.017,0.316-0.052c0.524-0.175,0.808-0.742,0.633-1.265l-1.002-3.001c-0.136-0.407-0.518-0.683-0.945-0.683h-6.002c-0.428,0-0.812,0.275-0.948,0.683l-1,2.999C10.532,8.77,10.815,9.337,11.338,9.512z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.NewWindow=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.NewWindow",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M5.896,5.333V21.25h23.417V5.333H5.896zM26.312,18.25H8.896V8.334h17.417V18.25L26.312,18.25zM4.896,9.542H1.687v15.917h23.417V22.25H4.896V9.542z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.DockRight=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.DockRight",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M3.083,7.333v16.334h24.833V7.333H3.083z M19.333,20.668H6.083V10.332h13.25V20.668z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.DockLeft=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.DockLeft",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M3.084,7.333v16.334h24.832V7.333H3.084z M11.667,10.332h13.251v10.336H11.667V10.332z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.DockBottom=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.DockBottom",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M3.083,7.333v16.334h24.833V7.333H3.083zM24.915,16.833H6.083v-6.501h18.833L24.915,16.833L24.915,16.833z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.DockTop=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.DockTop",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.916,23.667V7.333H3.083v16.334H27.916zM24.915,20.668H6.083v-6.501h18.833L24.915,20.668L24.915,20.668z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Pallete=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Pallete",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.653,7.25c-3.417,0-8.577,0.983-8.577,3.282c0,1.91,2.704,3.229,1.691,3.889c-1.02,0.666-2.684-1.848-4.048-1.848c-1.653,0-2.815,1.434-2.815,2.926c0,4.558,6.326,8.25,13.749,8.25c7.424,0,13.443-3.692,13.443-8.25C29.096,10.944,23.077,7.25,15.653,7.25zM10.308,13.521c0-0.645,0.887-1.166,1.98-1.166c1.093,0,1.979,0.521,1.979,1.166c0,0.644-0.886,1.166-1.979,1.166C11.195,14.687,10.308,14.164,10.308,13.521zM14.289,22.299c-1.058,0-1.914-0.68-1.914-1.518s0.856-1.518,1.914-1.518c1.057,0,1.914,0.68,1.914,1.518S15.346,22.299,14.289,22.299zM19.611,21.771c-1.057,0-1.913-0.681-1.913-1.519c0-0.84,0.856-1.521,1.913-1.521c1.059,0,1.914,0.681,1.914,1.521C21.525,21.092,20.67,21.771,19.611,21.771zM20.075,10.66c0-0.838,0.856-1.518,1.914-1.518s1.913,0.68,1.913,1.518c0,0.839-0.855,1.518-1.913,1.518C20.934,12.178,20.075,11.499,20.075,10.66zM24.275,19.482c-1.057,0-1.914-0.681-1.914-1.519s0.857-1.518,1.914-1.518c1.059,0,1.914,0.68,1.914,1.518S25.334,19.482,24.275,19.482zM25.286,15.475c-1.058,0-1.914-0.68-1.914-1.519c0-0.838,0.856-1.518,1.914-1.518c1.057,0,1.913,0.68,1.913,1.518C27.199,14.795,26.343,15.475,25.286,15.475z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Cart=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Cart",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M29.02,11.754L8.416,9.473L7.16,4.716C7.071,4.389,6.772,4.158,6.433,4.158H3.341C3.114,3.866,2.775,3.667,2.377,3.667c-0.686,0-1.242,0.556-1.242,1.242c0,0.686,0.556,1.242,1.242,1.242c0.399,0,0.738-0.201,0.965-0.493h2.512l5.23,19.8c-0.548,0.589-0.891,1.373-0.891,2.242c0,1.821,1.473,3.293,3.293,3.293c1.82,0,3.294-1.472,3.297-3.293c0-0.257-0.036-0.504-0.093-0.743h5.533c-0.056,0.239-0.092,0.486-0.092,0.743c0,1.821,1.475,3.293,3.295,3.293s3.295-1.472,3.295-3.293c0-1.82-1.473-3.295-3.295-3.297c-0.951,0.001-1.801,0.409-2.402,1.053h-7.136c-0.601-0.644-1.451-1.052-2.402-1.053c-0.379,0-0.738,0.078-1.077,0.196l-0.181-0.685H26.81c1.157-0.027,2.138-0.83,2.391-1.959l1.574-7.799c0.028-0.145,0.041-0.282,0.039-0.414C30.823,12.733,30.051,11.86,29.02,11.754zM25.428,27.994c-0.163,0-0.295-0.132-0.297-0.295c0.002-0.165,0.134-0.297,0.297-0.297s0.295,0.132,0.297,0.297C25.723,27.862,25.591,27.994,25.428,27.994zM27.208,20.499l0.948-0.948l-0.318,1.578L27.208,20.499zM12.755,11.463l1.036,1.036l-1.292,1.292l-1.292-1.292l1.087-1.087L12.755,11.463zM17.253,11.961l0.538,0.538l-1.292,1.292l-1.292-1.292l0.688-0.688L17.253,11.961zM9.631,14.075l0.868-0.868l1.292,1.292l-1.292,1.292l-0.564-0.564L9.631,14.075zM9.335,12.956l-0.328-1.24L9.792,12.5L9.335,12.956zM21.791,16.499l-1.292,1.292l-1.292-1.292l1.292-1.292L21.791,16.499zM21.207,14.5l1.292-1.292l1.292,1.292l-1.292,1.292L21.207,14.5zM18.5,15.791l-1.293-1.292l1.292-1.292l1.292,1.292L18.5,15.791zM17.791,16.499L16.5,17.791l-1.292-1.292l1.292-1.292L17.791,16.499zM14.499,15.791l-1.292-1.292l1.292-1.292l1.292,1.292L14.499,15.791zM13.791,16.499l-1.292,1.291l-1.292-1.291l1.292-1.292L13.791,16.499zM10.499,17.207l1.292,1.292l-0.785,0.784l-0.54-2.044L10.499,17.207zM11.302,20.404l1.197-1.197l1.292,1.292L12.5,21.791l-1.131-1.13L11.302,20.404zM13.208,18.499l1.291-1.292l1.292,1.292L14.5,19.791L13.208,18.499zM16.5,19.207l1.292,1.292L16.5,21.79l-1.292-1.291L16.5,19.207zM17.208,18.499l1.292-1.292l1.291,1.292L18.5,19.79L17.208,18.499zM20.499,19.207l1.292,1.292L20.5,21.79l-1.292-1.292L20.499,19.207zM21.207,18.499l1.292-1.292l1.292,1.292l-1.292,1.292L21.207,18.499zM23.207,16.499l1.292-1.292l1.292,1.292l-1.292,1.292L23.207,16.499zM25.207,14.499l1.292-1.292L27.79,14.5l-1.291,1.292L25.207,14.499zM24.499,13.792l-1.156-1.156l2.082,0.23L24.499,13.792zM21.791,12.5l-1.292,1.292L19.207,12.5l0.29-0.29l2.253,0.25L21.791,12.5zM14.5,11.791l-0.152-0.152l0.273,0.03L14.5,11.791zM10.5,11.792l-0.65-0.65l1.171,0.129L10.5,11.792zM14.5,21.207l1.205,1.205h-2.409L14.5,21.207zM18.499,21.207l1.206,1.206h-2.412L18.499,21.207zM22.499,21.207l1.208,1.207l-2.414-0.001L22.499,21.207zM23.207,20.499l1.292-1.292l1.292,1.292l-1.292,1.292L23.207,20.499zM25.207,18.499l1.292-1.291l1.291,1.291l-1.291,1.292L25.207,18.499zM28.499,17.791l-1.291-1.292l1.291-1.291l0.444,0.444l-0.429,2.124L28.499,17.791zM29.001,13.289l-0.502,0.502l-0.658-0.658l1.016,0.112C28.911,13.253,28.956,13.271,29.001,13.289zM13.487,27.994c-0.161,0-0.295-0.132-0.295-0.295c0-0.165,0.134-0.297,0.295-0.297c0.163,0,0.296,0.132,0.296,0.297C13.783,27.862,13.651,27.994,13.487,27.994zM26.81,22.414h-1.517l1.207-1.207l0.93,0.93C27.243,22.306,27.007,22.428,26.81,22.414z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Glasses=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Glasses",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.075,9.531c0,0-2.705-1.438-5.158-1.438c-2.453,0-4.862,0.593-4.862,0.593L3.971,9.869c0,0,0.19,0.19,0.528,0.53c0.338,0.336,0.486,3.741,1.838,5.094c1.353,1.354,4.82,1.396,5.963,0.676c1.14-0.718,2.241-3.466,2.241-4.693c0-0.38,0-0.676,0-0.676c0.274-0.275,1.615-0.303,1.917,0c0,0,0,0.296,0,0.676c0,1.227,1.101,3.975,2.241,4.693c1.144,0.72,4.611,0.678,5.963-0.676c1.355-1.353,1.501-4.757,1.839-5.094c0.338-0.34,0.528-0.53,0.528-0.53l-0.084-1.183c0,0-2.408-0.593-4.862-0.593c-2.453,0-5.158,1.438-5.158,1.438C16.319,9.292,14.737,9.32,14.075,9.531z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Package=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Package",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M17.078,22.004l-1.758-4.129l-2.007,4.752l-7.519-3.289l0.174,3.905l9.437,4.374l10.909-5.365l-0.149-4.989L17.078,22.004zM29.454,6.619L18.521,3.383l-3.006,2.671l-3.091-2.359L1.546,8.199l3.795,3.048l-3.433,5.302l10.879,4.757l2.53-5.998l2.257,5.308l11.393-5.942l-3.105-4.709L29.454,6.619zM15.277,14.579l-9.059-3.83l9.275-4.101l9.608,3.255L15.277,14.579z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Book=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Book",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.754,4.626c-0.233-0.161-0.536-0.198-0.802-0.097L12.16,9.409c-0.557,0.213-1.253,0.316-1.968,0.316c-0.997,0.002-2.029-0.202-2.747-0.48C7.188,9.148,6.972,9.04,6.821,8.943c0.056-0.024,0.12-0.05,0.193-0.075L18.648,4.43l1.733,0.654V3.172c0-0.284-0.14-0.554-0.374-0.714c-0.233-0.161-0.538-0.198-0.802-0.097L6.414,7.241c-0.395,0.142-0.732,0.312-1.02,0.564C5.111,8.049,4.868,8.45,4.872,8.896c0,0.012,0.004,0.031,0.004,0.031v17.186c0,0.008-0.003,0.015-0.003,0.021c0,0.006,0.003,0.01,0.003,0.016v0.017h0.002c0.028,0.601,0.371,0.983,0.699,1.255c1.034,0.803,2.769,1.252,4.614,1.274c0.874,0,1.761-0.116,2.583-0.427l12.796-4.881c0.337-0.128,0.558-0.448,0.558-0.809V5.341C26.128,5.057,25.988,4.787,25.754,4.626zM5.672,11.736c0.035,0.086,0.064,0.176,0.069,0.273l0.004,0.054c0.016,0.264,0.13,0.406,0.363,0.611c0.783,0.626,2.382,1.08,4.083,1.093c0.669,0,1.326-0.083,1.931-0.264v1.791c-0.647,0.143-1.301,0.206-1.942,0.206c-1.674-0.026-3.266-0.353-4.509-1.053V11.736zM10.181,24.588c-1.674-0.028-3.266-0.354-4.508-1.055v-2.712c0.035,0.086,0.065,0.176,0.07,0.275l0.002,0.053c0.018,0.267,0.13,0.408,0.364,0.613c0.783,0.625,2.381,1.079,4.083,1.091c0.67,0,1.327-0.082,1.932-0.262v1.789C11.476,24.525,10.821,24.588,10.181,24.588z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Books=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Books",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M26.679,7.858c-0.176-0.138-0.404-0.17-0.606-0.083l-9.66,4.183c-0.42,0.183-0.946,0.271-1.486,0.271c-0.753,0.002-1.532-0.173-2.075-0.412c-0.194-0.083-0.356-0.176-0.471-0.259c0.042-0.021,0.09-0.042,0.146-0.064l8.786-3.804l1.31,0.561V6.612c0-0.244-0.106-0.475-0.283-0.612c-0.176-0.138-0.406-0.17-0.605-0.083l-9.66,4.183c-0.298,0.121-0.554,0.268-0.771,0.483c-0.213,0.208-0.397,0.552-0.394,0.934c0,0.01,0.003,0.027,0.003,0.027v14.73c0,0.006-0.002,0.012-0.002,0.019c0,0.005,0.002,0.007,0.002,0.012v0.015h0.002c0.021,0.515,0.28,0.843,0.528,1.075c0.781,0.688,2.091,1.073,3.484,1.093c0.66,0,1.33-0.1,1.951-0.366l9.662-4.184c0.255-0.109,0.422-0.383,0.422-0.692V8.471C26.961,8.227,26.855,7.996,26.679,7.858zM20.553,5.058c-0.017-0.221-0.108-0.429-0.271-0.556c-0.176-0.138-0.404-0.17-0.606-0.083l-9.66,4.183C9.596,8.784,9.069,8.873,8.53,8.873C7.777,8.874,6.998,8.699,6.455,8.46C6.262,8.378,6.099,8.285,5.984,8.202C6.026,8.181,6.075,8.16,6.13,8.138l8.787-3.804l1.309,0.561V3.256c0-0.244-0.106-0.475-0.283-0.612c-0.176-0.138-0.407-0.17-0.606-0.083l-9.66,4.183C5.379,6.864,5.124,7.011,4.907,7.227C4.693,7.435,4.51,7.779,4.513,8.161c0,0.011,0.003,0.027,0.003,0.027v14.73c0,0.006-0.001,0.013-0.001,0.019c0,0.005,0.001,0.007,0.001,0.012v0.016h0.002c0.021,0.515,0.28,0.843,0.528,1.075c0.781,0.688,2.091,1.072,3.485,1.092c0.376,0,0.754-0.045,1.126-0.122V11.544c-0.01-0.7,0.27-1.372,0.762-1.856c0.319-0.315,0.708-0.564,1.19-0.756L20.553,5.058z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Icons=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Icons",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.083,14H14V4.083H4.083V14zM17,4.083V14h9.917V4.083H17zM17,26.917h9.917v-9.918H17V26.917zM4.083,26.917H14v-9.918H4.083V26.917z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.List=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.List",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.082,4.083v2.999h22.835V4.083H4.082zM4.082,20.306h22.835v-2.999H4.082V20.306zM4.082,13.694h22.835v-2.999H4.082V13.694zM4.082,26.917h22.835v-2.999H4.082V26.917z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Db=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Db",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.499,23.438c-3.846,0-7.708-0.987-9.534-3.117c-0.054,0.236-0.09,0.48-0.09,0.737v3.877c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998v-3.877c0-0.258-0.036-0.501-0.09-0.737C23.209,22.451,19.347,23.438,15.499,23.438zM15.499,15.943c-3.846,0-7.708-0.987-9.533-3.117c-0.054,0.236-0.091,0.479-0.091,0.736v3.877c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998v-3.877c0-0.257-0.036-0.501-0.09-0.737C23.209,14.956,19.347,15.943,15.499,15.943zM15.5,1.066c-4.637,0-9.625,1.565-9.625,5.001v3.876c0,3.435,4.988,4.998,9.625,4.998s9.625-1.563,9.625-4.998V6.067C25.125,2.632,20.137,1.066,15.5,1.066zM15.5,9.066c-4.211,0-7.625-1.343-7.625-3c0-1.656,3.414-3,7.625-3s7.625,1.344,7.625,3C23.125,7.724,19.711,9.066,15.5,9.066z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Paper=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Paper",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.916,8.009L15.953,1.888c-0.251-0.119-0.548-0.115-0.798,0.008c-0.25,0.125-0.433,0.357-0.491,0.629c-0.002,0.01-1.04,4.83-2.578,9.636c-0.526,1.646-1.114,3.274-1.728,4.704l1.665,0.786c2-4.643,3.584-11.052,4.181-13.614l11.264,5.316c-0.346,1.513-1.233,5.223-2.42,8.927c-0.767,2.399-1.665,4.797-2.585,6.532c-0.889,1.79-1.958,2.669-2.197,2.552c-1.419,0.03-2.418-1.262-3.09-2.918c-0.32-0.803-0.53-1.63-0.657-2.246c-0.127-0.618-0.166-1.006-0.168-1.006c-0.034-0.317-0.232-0.597-0.52-0.731l-12.962-6.12c-0.301-0.142-0.654-0.11-0.925,0.081c-0.27,0.193-0.416,0.518-0.38,0.847c0.008,0.045,0.195,1.848,0.947,3.736c0.521,1.321,1.406,2.818,2.845,3.575l12.956,6.131l0.006-0.013c0.562,0.295,1.201,0.487,1.947,0.496c1.797-0.117,2.777-1.668,3.818-3.525c3-5.69,5.32-16.602,5.338-16.642C29.512,8.615,29.302,8.19,28.916,8.009z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.TakeOff=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.TakeOff",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M10.27,19.267c0,0,9.375-1.981,16.074-8.681c0,0,1.395-1.339-1.338-1.339c-2.305,0-5.6,2.438-5.6,2.438l-9.137-1.42l-1.769,1.769l4.983,2.411l-3.001,2.035l-2.571-1.285L6.09,16.052C6.09,16.052,8.02,18.062,10.27,19.267zM3.251,23.106v1.998h24.498v-1.998H3.251z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Landing=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Landing",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M23.322,19.491c0,0,1.903,0.342,0.299-1.869c-1.353-1.866-5.261-3.104-5.261-3.104l-4.213-8.229l-2.47-0.394l0.973,5.449L9.241,10.11L8.772,7.273L7.008,6.302c0,0-0.496,2.742-0.149,5.271C6.859,11.573,13.965,17.999,23.322,19.491zM3.251,23.106v1.998h24.498v-1.998H3.251zM14,17.94c0,0.414,0.336,0.75,0.75,0.75s0.75-0.336,0.75-0.75s-0.336-0.75-0.75-0.75S14,17.526,14,17.94z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Plane=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Plane",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M19.671,8.11l-2.777,2.777l-3.837-0.861c0.362-0.505,0.916-1.683,0.464-2.135c-0.518-0.517-1.979,0.278-2.305,0.604l-0.913,0.913L7.614,8.804l-2.021,2.021l2.232,1.061l-0.082,0.082l1.701,1.701l0.688-0.687l3.164,1.504L9.571,18.21H6.413l-1.137,1.138l3.6,0.948l1.83,1.83l0.947,3.598l1.137-1.137V21.43l3.725-3.725l1.504,3.164l-0.687,0.687l1.702,1.701l0.081-0.081l1.062,2.231l2.02-2.02l-0.604-2.689l0.912-0.912c0.326-0.326,1.121-1.789,0.604-2.306c-0.452-0.452-1.63,0.101-2.135,0.464l-0.861-3.838l2.777-2.777c0.947-0.947,3.599-4.862,2.62-5.839C24.533,4.512,20.618,7.163,19.671,8.11z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Phone=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Phone",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.065,18.53c-0.467-0.29-1.167-0.21-1.556,0.179l-3.093,3.092c-0.389,0.389-1.025,0.389-1.414,0L9.05,14.848c-0.389-0.389-0.389-1.025,0-1.414l2.913-2.912c0.389-0.389,0.447-1.075,0.131-1.524L6.792,1.485C6.476,1.036,5.863,0.948,5.433,1.29c0,0-4.134,3.281-4.134,6.295c0,12.335,10,22.334,22.334,22.334c3.015,0,5.948-5.533,5.948-5.533c0.258-0.486,0.087-1.122-0.38-1.412L22.065,18.53z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.HangUp=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.HangUp",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.563,10.494c-7.35-7.349-19.265-7.348-26.612,0.001c-1.796,1.796-0.247,6.84-0.247,6.84c0.135,0.443,0.616,0.72,1.067,0.614l6.898-1.604c0.451-0.105,0.82-0.57,0.82-1.033l0.001-3.685c0-0.463,0.379-0.842,0.842-0.842h8.285c0.464,0,0.843,0.379,0.843,0.842l-0.001,3.471c0.001,0.462,0.375,0.907,0.83,0.986l7.635,1.316c0.456,0.08,0.873-0.232,0.926-0.692C29.851,16.708,30.359,12.29,28.563,10.494zM17.264,14.072h-3.501v4.39h-2.625l4.363,7.556l4.363-7.556h-2.6V14.072z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.SlideShare=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.SlideShare",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.952,12.795c-0.956,1.062-5.073,2.409-5.604,2.409h-4.513c-0.749,0-1.877,0.147-2.408,0.484c0.061,0.054,0.122,0.108,0.181,0.163c0.408,0.379,1.362,0.913,2.206,0.913c0.397,0,0.723-0.115,1-0.354c1.178-1.007,1.79-1.125,2.145-1.125c0.421,0,0.783,0.193,0.996,0.531c0.4,0.626,0.106,1.445-0.194,2.087c-0.718,1.524-3.058,3.171-5.595,3.171c-0.002,0-0.002,0-0.004,0c-0.354,0-0.701-0.033-1.033-0.099v3.251c0,0.742,1.033,2.533,4.167,2.533s3.955-3.701,3.955-4.338v-4.512c2.23-1.169,4.512-1.805,5.604-3.895C30.882,12.05,29.907,11.733,28.952,12.795zM21.942,17.521c0.796-1.699-0.053-1.699-1.54-0.425s-3.665,0.105-4.408-0.585c-0.743-0.689-1.486-1.22-2.814-1.167c-1.328,0.053-4.46-0.161-6.267-0.585c-1.805-0.425-4.895-3-5.15-2.335c-0.266,0.69,0.211,1.168,1.168,2.335c0.955,1.169,5.075,2.778,5.075,2.778s0,3.453,0,4.886c0,1.435,2.973,3.61,4.512,3.61s2.708-1.062,2.708-1.806v-4.512C17.775,21.045,21.146,19.221,21.942,17.521zM20.342,13.73c1.744,0,3.159-1.414,3.159-3.158c0-1.745-1.415-3.159-3.159-3.159s-3.158,1.414-3.158,3.159C17.184,12.316,18.598,13.73,20.342,13.73zM12.019,13.73c1.744,0,3.158-1.414,3.158-3.158c0-1.745-1.414-3.159-3.158-3.159c-1.745,0-3.159,1.414-3.159,3.159C8.86,12.316,10.273,13.73,12.019,13.73z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Twitter=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Twitter",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M23.295,22.567h-7.213c-2.125,0-4.103-2.215-4.103-4.736v-1.829h11.232c1.817,0,3.291-1.469,3.291-3.281c0-1.813-1.474-3.282-3.291-3.282H11.979V6.198c0-1.835-1.375-3.323-3.192-3.323c-1.816,0-3.29,1.488-3.29,3.323v11.633c0,6.23,4.685,11.274,10.476,11.274h7.211c1.818,0,3.318-1.463,3.318-3.298S25.112,22.567,23.295,22.567z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.TwitterBird=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.TwitterBird",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.605,13.11c0.913-2.851,2.029-4.698,3.313-6.038c0.959-1,1.453-1.316,0.891-0.216c0.25-0.199,0.606-0.464,0.885-0.605c1.555-0.733,1.442-0.119,0.373,0.54c2.923-1.045,2.82,0.286-0.271,0.949c2.527,0.047,5.214,1.656,5.987,5.077c0.105,0.474-0.021,0.428,0.464,0.514c1.047,0.186,2.03,0.174,2.991-0.13c-0.104,0.708-1.039,1.167-2.497,1.471c-0.541,0.112-0.651,0.083-0.005,0.229c0.799,0.179,1.69,0.226,2.634,0.182c-0.734,0.846-1.905,1.278-3.354,1.296c-0.904,3.309-2.976,5.678-5.596,7.164c-6.152,3.492-15.108,2.984-19.599-3.359c2.947,2.312,7.312,2.821,10.555-0.401c-2.125,0-2.674-1.591-0.99-2.449c-1.595-0.017-2.608-0.521-3.203-1.434c-0.226-0.347-0.229-0.374,0.14-0.64c0.405-0.293,0.958-0.423,1.528-0.467c-1.651-0.473-2.66-1.335-3.009-2.491c-0.116-0.382-0.134-0.363,0.256-0.462c0.38-0.097,0.87-0.148,1.309-0.17C6.11,10.88,5.336,9.917,5.139,8.852c-0.186-1.006,0.005-0.748,0.758-0.46C9.263,9.68,12.619,11.062,14.605,13.11L14.605,13.11z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Skype=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Skype",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.777,18.438c0.209-0.948,0.318-1.934,0.318-2.944c0-7.578-6.144-13.722-13.724-13.722c-0.799,0-1.584,0.069-2.346,0.2C11.801,1.199,10.35,0.75,8.793,0.75c-4.395,0-7.958,3.562-7.958,7.958c0,1.47,0.399,2.845,1.094,4.024c-0.183,0.893-0.277,1.814-0.277,2.76c0,7.58,6.144,13.723,13.722,13.723c0.859,0,1.699-0.078,2.515-0.23c1.119,0.604,2.399,0.945,3.762,0.945c4.395,0,7.957-3.562,7.957-7.959C29.605,20.701,29.309,19.502,28.777,18.438zM22.412,22.051c-0.635,0.898-1.573,1.609-2.789,2.115c-1.203,0.5-2.646,0.754-4.287,0.754c-1.971,0-3.624-0.346-4.914-1.031C9.5,23.391,8.74,22.717,8.163,21.885c-0.583-0.842-0.879-1.676-0.879-2.479c0-0.503,0.192-0.939,0.573-1.296c0.375-0.354,0.857-0.532,1.432-0.532c0.471,0,0.878,0.141,1.209,0.422c0.315,0.269,0.586,0.662,0.805,1.174c0.242,0.558,0.508,1.027,0.788,1.397c0.269,0.355,0.656,0.656,1.151,0.89c0.497,0.235,1.168,0.354,1.992,0.354c1.135,0,2.064-0.241,2.764-0.721c0.684-0.465,1.016-1.025,1.016-1.711c0-0.543-0.173-0.969-0.529-1.303c-0.373-0.348-0.865-0.621-1.465-0.807c-0.623-0.195-1.47-0.404-2.518-0.623c-1.424-0.306-2.634-0.668-3.596-1.076c-0.984-0.419-1.777-1-2.357-1.727c-0.59-0.736-0.889-1.662-0.889-2.75c0-1.036,0.314-1.971,0.933-2.776c0.613-0.8,1.51-1.423,2.663-1.849c1.139-0.422,2.494-0.635,4.027-0.635c1.225,0,2.303,0.141,3.201,0.421c0.904,0.282,1.668,0.662,2.267,1.13c0.604,0.472,1.054,0.977,1.335,1.5c0.284,0.529,0.43,1.057,0.43,1.565c0,0.49-0.189,0.937-0.563,1.324c-0.375,0.391-0.851,0.589-1.408,0.589c-0.509,0-0.905-0.124-1.183-0.369c-0.258-0.227-0.523-0.58-0.819-1.09c-0.342-0.65-0.756-1.162-1.229-1.523c-0.463-0.351-1.232-0.529-2.292-0.529c-0.984,0-1.784,0.197-2.379,0.588c-0.572,0.375-0.85,0.805-0.85,1.314c0,0.312,0.09,0.574,0.273,0.799c0.195,0.238,0.471,0.447,0.818,0.621c0.36,0.182,0.732,0.326,1.104,0.429c0.382,0.106,1.021,0.263,1.899,0.466c1.11,0.238,2.131,0.506,3.034,0.793c0.913,0.293,1.703,0.654,2.348,1.072c0.656,0.429,1.178,0.979,1.547,1.635c0.369,0.658,0.558,1.471,0.558,2.416C23.371,20.119,23.049,21.148,22.412,22.051z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Windows=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Windows",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.023,17.484c-1.732-0.205-3.022-0.908-4.212-1.701l0,0l-0.559,0.279l-2.578,8.924l0,0c1.217,0.805,2.905,1.707,4.682,1.914c2.686,0.312,5.56-0.744,6.391-1.195l2.617-9.061l-0.559-0.279C25.805,16.365,23.193,17.857,20.023,17.484zM14.424,14.825c-1.267-0.87-2.578-1.652-4.375-1.816c-0.318-0.029-0.627-0.042-0.925-0.042c-3.011,0-4.948,1.347-4.948,1.347l-2.565,8.877l0,0l0.526,0.281c0.981-0.476,2.78-1.145,5.09-0.984c1.665,0.113,2.92,0.781,4.117,1.531l0.507-0.26l0,0L14.424,14.825zM10.201,12.094c1.664,0.114,2.921,0.78,4.117,1.533l0.509-0.26l0,0L17.4,4.431c-1.27-0.87-2.579-1.653-4.377-1.816c-0.318-0.029-0.626-0.042-0.924-0.042C9.088,2.573,7.15,3.92,7.15,3.92l-2.566,8.878L5.11,13.08C6.092,12.604,7.891,11.936,10.201,12.094zM28.779,5.971L28.779,5.971c0,0.001-2.609,1.492-5.779,1.119c-1.734-0.204-3.023-0.907-4.213-1.701L18.227,5.67l-2.576,8.923l0,0c1.215,0.803,2.906,1.709,4.68,1.915c2.687,0.312,5.558-0.745,6.392-1.197l2.615-9.059L28.779,5.971z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Apple=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Apple",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M24.32,10.85c-1.743,1.233-2.615,2.719-2.615,4.455c0,2.079,1.078,3.673,3.232,4.786c-0.578,1.677-1.416,3.134-2.514,4.375c-1.097,1.241-2.098,1.862-3.004,1.862c-0.427,0-1.009-0.143-1.748-0.423l-0.354-0.138c-0.725-0.281-1.363-0.423-1.92-0.423c-0.525,0-1.1,0.11-1.725,0.331l-0.445,0.16l-0.56,0.229c-0.441,0.176-0.888,0.264-1.337,0.264c-1.059,0-2.228-0.872-3.507-2.616c-1.843-2.498-2.764-5.221-2.764-8.167c0-2.095,0.574-3.781,1.725-5.061c1.149-1.279,2.673-1.92,4.568-1.92c0.709,0,1.371,0.13,1.988,0.389l0.423,0.172l0.445,0.183c0.396,0.167,0.716,0.251,0.959,0.251c0.312,0,0.659-0.072,1.04-0.217l0.582-0.229l0.435-0.16c0.693-0.251,1.459-0.377,2.297-0.377C21.512,8.576,23.109,9.334,24.32,10.85zM19.615,3.287c0.021,0.267,0.033,0.473,0.033,0.617c0,1.317-0.479,2.473-1.438,3.467s-2.075,1.49-3.347,1.49c-0.038-0.297-0.058-0.51-0.058-0.639c0-1.12,0.445-2.171,1.337-3.153c0.891-0.982,1.922-1.558,3.096-1.725C19.32,3.329,19.447,3.311,19.615,3.287z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Linux=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Linux",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M11.791,25.229c1.027-0.104,1.162-1.191,0.68-1.666c-0.398-0.392-2.598-2.022-3.171-2.664C9.033,20.6,8.673,20.454,8.52,20.12c-0.352-0.771-0.598-1.869-0.151-2.658c0.081-0.144,0.133-0.078,0.071,0.22c-0.351,1.684,0.746,3.059,0.986,2.354c0.167-0.487,0.013-1.358,0.102-2.051c0.158-1.226,1.273-3.577,1.763-3.712c-0.755-1.398,0.886-2.494,0.866-3.723c-0.014-0.798,0.701,0.982,1.419,1.359c0.802,0.422,1.684-0.794,2.936-1.41c0.354-0.176,0.809-0.376,0.776-0.524c-0.146-0.718-1.644,0.886-2.979,0.939c-0.61,0.024-0.837-0.12-1.072-0.347c-0.712-0.689,0.073-0.115,1.132-0.307c0.471-0.085,0.629-0.163,1.128-0.365c0.5-0.201,1.069-0.5,1.636-0.654c0.395-0.106,0.361-0.402,0.208-0.491c-0.088-0.051-0.219-0.046-0.321,0.133c-0.244,0.419-1.383,0.661-1.74,0.771c-0.457,0.14-0.962,0.271-1.634,0.243c-1.021-0.042-0.782-0.509-1.513-0.928c-0.213-0.122-0.156-0.444,0.129-0.729c0.148-0.148,0.557-0.232,0.76-0.572c0.028-0.047,0.289-0.32,0.494-0.461c0.07-0.049,0.076-1.295-0.562-1.32c-0.543-0.021-0.697,0.398-0.675,0.818c0.022,0.419,0.245,0.765,0.393,0.764c0.285-0.004,0.019,0.311-0.138,0.361c-0.237,0.078-0.562-0.934-0.525-1.418c0.039-0.506,0.303-1.4,0.942-1.383c0.576,0.016,0.993,0.737,0.973,1.983c-0.003,0.211,0.935-0.101,1.247,0.229c0.224,0.236-0.767-2.207,1.438-2.375c0.582,0.111,1.14,0.305,1.371,1.641c-0.086,0.139,0.146,1.07-0.215,1.182c-0.438,0.135-0.707-0.02-0.453-0.438c0.172-0.418,0.004-1.483-0.882-1.42c-0.887,0.064-0.769,1.637-0.526,1.668c0.243,0.031,0.854,0.465,1.282,0.549c1.401,0.271,0.371,1.075,0.555,2.048c0.205,1.099,0.929,0.809,1.578,3.717c0.137,0.177,0.676,0.345,1.199,2.579c0.473,2.011-0.195,3.473,0.938,3.353c0.256-0.026,0.629-0.1,0.792-0.668c0.425-1.489-0.213-3.263-0.855-4.46c-0.375-0.698-0.729-1.174-0.916-1.337c0.738,0.436,1.683,1.829,1.898,2.862c0.286,1.358,0.49,1.934,0.059,3.37c0.25,0.125,0.871,0.39,0.871,0.685c-0.647-0.53-2.629-0.625-2.68,0.646c-0.338,0.008-0.594,0.034-0.811,0.293c-0.797,0.944-0.059,2.842-0.139,3.859c-0.07,0.896-0.318,1.783-0.46,2.683c-0.474-0.019-0.428-0.364-0.274-0.852c0.135-0.431,0.351-0.968,0.365-1.484c0.012-0.467-0.039-0.759-0.156-0.831c-0.118-0.072-0.303,0.074-0.559,0.485c-0.543,0.875-1.722,1.261-2.821,1.397c-1.099,0.138-2.123,0.028-2.664-0.578c-0.186-0.207-0.492,0.058-0.529,0.111c-0.049,0.074,0.18,0.219,0.352,0.533c0.251,0.461,0.49,1.159-0.105,1.479C12.83,26.314,12.316,26.221,11.791,25.229L11.791,25.229zM11.398,25.188c0.395,0.621,1.783,3.232-0.652,3.571c-0.814,0.114-2.125-0.474-3.396-0.784c-1.142-0.279-2.301-0.444-2.949-0.627c-0.391-0.108-0.554-0.25-0.588-0.414c-0.091-0.434,0.474-1.041,0.503-1.555c0.028-0.514-0.188-0.779-0.364-1.199c-0.177-0.42-0.224-0.734-0.081-0.914c0.109-0.141,0.334-0.199,0.698-0.164c0.462,0.047,1.02-0.049,1.319-0.23c0.505-0.309,0.742-0.939,0.516-1.699c0,0.744-0.244,1.025-0.855,1.366c-0.577,0.319-1.467,0.062-1.875,0.416c-0.492,0.427,0.175,1.528,0.12,2.338c-0.042,0.622-0.69,1.322-0.401,1.946c0.291,0.627,1.648,0.695,3.064,0.99c2.012,0.422,3.184,1.153,4.113,1.188c1.356,0.05,1.564-1.342,3.693-1.36c0.621-0.033,1.229-0.052,1.835-0.06c0.688-0.009,1.375-0.003,2.079,0.014c1.417,0.034,0.931,0.773,1.851,1.246c0.774,0.397,2.17,0.241,2.504-0.077c0.451-0.431,1.662-1.467,2.592-1.935c1.156-0.583,3.876-1.588,1.902-2.812c-0.461-0.285-1.547-0.588-1.639-2.676c-0.412,0.366-0.365,2.312,0.784,2.697c1.283,0.431,2.085,1.152-0.301,1.969c-1.58,0.54-1.849,0.706-3.099,1.747c-1.267,1.054-3.145,0.636-2.815-1.582c0.171-1.155,0.269-2.11-0.019-3.114c-0.142-0.49-0.211-1.119-0.114-1.562c0.187-0.858,0.651-1.117,1.106-0.293c0.285,0.519,0.385,1.122,1.408,1.171c1.607,0.077,1.926-1.553,2.439-1.627c0.343-0.05,0.686-1.02,0.425-2.589c-0.28-1.681-1.269-4.332-2.536-5.677c-1.053-1.118-1.717-2.098-2.135-3.497c-0.352-1.175-0.547-2.318-0.475-3.412c0.094-1.417-0.691-3.389-1.943-4.316c-0.782-0.581-2.011-0.893-3.122-0.88c-0.623,0.007-1.21,0.099-1.661,0.343c-1.855,1.008-2.113,2.445-2.086,4.088c0.025,1.543,0.078,3.303,0.254,4.977c-0.208,0.77-1.288,2.227-1.979,3.114C8.59,14.233,8.121,16.01,7.52,17.561c-0.321,0.828-0.862,1.2-0.908,2.265C6.6,20.122,6.61,20.891,6.894,20.672C7.98,19.829,9.343,21.95,11.398,25.188L11.398,25.188zM17.044,2.953c-0.06,0.176-0.3,0.321-0.146,0.443c0.152,0.123,0.24-0.171,0.549-0.281c0.08-0.028,0.449,0.012,0.519-0.164c0.03-0.077-0.19-0.164-0.321-0.291c-0.133-0.125-0.262-0.236-0.386-0.229C16.938,2.451,17.096,2.798,17.044,2.953L17.044,2.953zM18.934,9.35c0.115-0.121,0.174,0.207,0.483,0.402c0.244,0.154,0.481,0.04,0.545,0.354c0.044,0.225-0.097,0.467-0.284,0.436C19.35,10.486,18.596,9.705,18.934,9.35L18.934,9.35zM13.832,7.375c-0.508-0.037-0.543,0.33-0.375,0.324C13.629,7.693,13.523,7.408,13.832,7.375L13.832,7.375zM12.96,6.436c0.06-0.013,0.146,0.09,0.119,0.233c-0.037,0.199-0.021,0.324,0.117,0.325c0.022,0,0.048-0.005,0.056-0.057c0.066-0.396-0.14-0.688-0.225-0.711C12.834,6.178,12.857,6.458,12.96,6.436L12.96,6.436zM16.663,6.268c0.129,0.039,0.253,0.262,0.28,0.504c0.002,0.021,0.168-0.035,0.17-0.088c0.011-0.389-0.321-0.571-0.408-0.562C16.506,6.139,16.562,6.238,16.663,6.268L16.663,6.268zM14.765,7.423c0.463-0.214,0.625,0.118,0.465,0.171C15.066,7.648,15.065,7.345,14.765,7.423L14.765,7.423zM9.178,15.304c-0.219-0.026,0.063-0.19,0.184-0.397c0.131-0.227,0.105-0.511,0.244-0.469s0.061,0.2-0.033,0.461C9.491,15.121,9.258,15.313,9.178,15.304L9.178,15.304z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.NodeJs=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.NodeJs",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M4.783,4.458L2.59,3.196C2.553,3.174,2.511,3.163,2.469,3.161H2.447C2.405,3.163,2.363,3.174,2.326,3.196L0.133,4.458C0.051,4.505,0,4.593,0,4.688l0.005,3.398c0,0.047,0.024,0.092,0.066,0.114c0.041,0.024,0.091,0.024,0.132,0l1.303-0.746c0.083-0.049,0.132-0.136,0.132-0.229V5.637c0-0.095,0.05-0.183,0.132-0.229l0.555-0.32c0.041-0.023,0.086-0.035,0.132-0.035c0.045,0,0.092,0.012,0.132,0.035l0.555,0.32c0.082,0.047,0.133,0.135,0.133,0.229v1.588c0,0.094,0.051,0.182,0.132,0.229l1.303,0.746c0.041,0.024,0.092,0.024,0.132,0c0.041-0.022,0.066-0.067,0.066-0.114l0.004-3.398C4.915,4.593,4.865,4.505,4.783,4.458zM17.93,0.745l-1.305-0.729c-0.042-0.023-0.091-0.022-0.132,0.001c-0.041,0.024-0.065,0.067-0.065,0.114v3.365c0,0.033-0.018,0.064-0.046,0.081s-0.064,0.017-0.093,0l-0.549-0.316c-0.082-0.047-0.183-0.047-0.265,0l-2.193,1.266c-0.082,0.047-0.133,0.135-0.133,0.229V7.29c0,0.095,0.051,0.182,0.132,0.229l2.194,1.267c0.082,0.048,0.183,0.048,0.265,0l2.194-1.267c0.082-0.048,0.133-0.135,0.133-0.229V0.977C18.066,0.88,18.014,0.792,17.93,0.745zM16.421,6.458c0,0.023-0.013,0.045-0.033,0.057l-0.753,0.435c-0.021,0.012-0.045,0.012-0.066,0l-0.753-0.435c-0.021-0.012-0.033-0.034-0.033-0.057v-0.87c0-0.023,0.013-0.045,0.033-0.058l0.753-0.435c0.021-0.012,0.045-0.012,0.066,0l0.753,0.435c0.021,0.012,0.033,0.034,0.033,0.058V6.458zM24.473,4.493l-2.18-1.266c-0.082-0.047-0.183-0.048-0.265,0l-2.193,1.266c-0.082,0.047-0.132,0.135-0.132,0.229v2.532c0,0.096,0.051,0.184,0.133,0.23l2.18,1.242c0.08,0.045,0.179,0.046,0.26,0.001l1.318-0.732c0.042-0.023,0.067-0.067,0.068-0.115c0-0.048-0.025-0.092-0.066-0.116l-2.207-1.266c-0.041-0.023-0.066-0.067-0.066-0.115V5.59c0-0.047,0.025-0.091,0.065-0.115l0.688-0.396c0.041-0.024,0.091-0.024,0.132,0l0.688,0.396c0.041,0.023,0.066,0.067,0.066,0.115v0.625c0,0.047,0.025,0.091,0.066,0.114c0.041,0.024,0.092,0.024,0.132,0l1.314-0.764c0.081-0.047,0.132-0.135,0.132-0.229V4.722C24.605,4.628,24.555,4.541,24.473,4.493zM11.363,4.48L9.169,3.214c-0.082-0.047-0.183-0.047-0.265,0L6.711,4.48C6.629,4.527,6.579,4.615,6.579,4.709v2.534c0,0.095,0.051,0.182,0.133,0.229l2.193,1.267c0.082,0.048,0.183,0.048,0.265,0l2.193-1.267c0.082-0.048,0.132-0.135,0.132-0.229V4.709C11.495,4.615,11.445,4.527,11.363,4.48zM31.019,4.382L28.95,3.187c-0.13-0.074-0.304-0.074-0.435,0l-2.068,1.195c-0.135,0.077-0.218,0.222-0.218,0.377v2.386c0,0.156,0.083,0.301,0.218,0.378l0.542,0.312c0.263,0.13,0.356,0.13,0.477,0.13c0.389,0,0.612-0.236,0.612-0.646V4.962c0-0.033-0.027-0.06-0.06-0.06h-0.263c-0.033,0-0.061,0.026-0.061,0.06v2.356c0,0.182-0.188,0.363-0.495,0.209l-0.566-0.326c-0.021-0.012-0.033-0.033-0.033-0.057V4.759c0-0.023,0.013-0.045,0.033-0.057l2.067-1.193c0.019-0.011,0.044-0.011,0.063,0l2.067,1.193c0.02,0.012,0.032,0.034,0.032,0.057v2.386c0,0.023-0.013,0.046-0.032,0.057l-2.068,1.193c-0.018,0.012-0.045,0.012-0.063,0l-0.53-0.314c-0.017-0.01-0.036-0.013-0.052-0.004c-0.146,0.083-0.175,0.094-0.312,0.143c-0.034,0.012-0.084,0.031,0.019,0.09l0.691,0.408c0.065,0.038,0.141,0.059,0.217,0.059s0.151-0.021,0.218-0.059l2.068-1.194c0.134-0.078,0.217-0.222,0.217-0.378V4.759C31.235,4.604,31.152,4.459,31.019,4.382zM29.371,6.768c-0.548,0-0.668-0.138-0.708-0.41c-0.005-0.029-0.029-0.051-0.06-0.051h-0.268c-0.033,0-0.06,0.026-0.06,0.06c0,0.349,0.189,0.765,1.095,0.765c0.655,0,1.031-0.259,1.031-0.709c0-0.447-0.302-0.566-0.938-0.65c-0.643-0.085-0.708-0.128-0.708-0.279c0-0.125,0.056-0.29,0.531-0.29c0.425,0,0.581,0.091,0.646,0.378c0.006,0.027,0.03,0.047,0.059,0.047h0.269c0.017,0,0.032-0.007,0.044-0.019c0.011-0.013,0.017-0.029,0.016-0.046c-0.042-0.493-0.37-0.723-1.032-0.723c-0.59,0-0.941,0.249-0.941,0.666c0,0.453,0.35,0.578,0.916,0.634c0.677,0.066,0.729,0.166,0.729,0.298C29.992,6.669,29.807,6.768,29.371,6.768zM22.128,5.446l-0.42,0.243c-0.016,0.009-0.025,0.026-0.025,0.044v0.486c0,0.019,0.01,0.035,0.025,0.044l0.42,0.243c0.016,0.009,0.035,0.009,0.052,0l0.421-0.243c0.016-0.009,0.025-0.025,0.025-0.044V5.733c0-0.018-0.01-0.035-0.025-0.044L22.18,5.446C22.163,5.438,22.144,5.438,22.128,5.446z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.JQuery=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.JQuery",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M10.322,23.041C4.579,18.723,2.777,11.07,5.494,4.583c-0.254,0.291-0.502,0.59-0.739,0.904c-5.177,6.887-4.008,16.505,2.613,21.482c6.62,4.979,16.184,3.432,21.362-3.455c0.237-0.314,0.454-0.635,0.663-0.959C23.915,26.963,16.064,27.357,10.322,23.041zM13.662,18.598c4.765,3.582,11.604,2.564,15.567-2.198c-3.609,2.641-9.09,2.475-13.361-0.736S9.916,7.231,11.451,3.03C7.976,8.161,8.897,15.015,13.662,18.598zM18.642,11.976c3.254,2.447,8.146,1.438,10.967-2.242c-2.604,1.921-6.341,1.955-9.157-0.164c-2.819-2.118-3.826-5.718-2.701-8.754C14.998,4.549,15.387,9.528,18.642,11.976z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Sencha=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Sencha",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M18.265,22.734c1.365,0.662,2.309,2.062,2.309,3.682c0,1.566-0.881,2.928-2.176,3.615l1.922-0.98c3.16-1.58,5.332-4.846,5.332-8.617c0-3.719-2.109-6.945-5.195-8.547l-6.272-3.144c-1.366-0.662-2.308-2.062-2.308-3.682c0-1.567,0.881-2.928,2.175-3.614L12.13,2.428c-3.161,1.578-5.332,4.843-5.332,8.616c0,3.718,2.108,6.944,5.195,8.546L18.265,22.734z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Vim=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Vim",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M25.012,10.44l4.571-4.645c0.11-0.113,0.173-0.264,0.173-0.423V3.134c0-0.159-0.064-0.314-0.177-0.427l-0.604-0.602c-0.111-0.112-0.261-0.176-0.42-0.177l-9.646-0.086C18.71,1.84,18.523,1.935,18.41,2.099L17.807,2.96c-0.033,0.047-0.059,0.099-0.076,0.154l-2.144-2.156l0,0l-1.646,1.666l-0.447-0.497c-0.112-0.125-0.27-0.197-0.438-0.199L3.324,1.756c-0.163-0.003-0.322,0.06-0.437,0.176L2.284,2.535C2.171,2.647,2.107,2.803,2.107,2.962v2.325c0,0.164,0.066,0.32,0.183,0.434l0.657,0.635C3.056,6.461,3.2,6.521,3.352,6.525l0.285,0.007l0.007,6.512l-2.527,2.557l2.533,2.533l0.008,8.084c0,0.159,0.065,0.314,0.177,0.427l0.861,0.861c0.112,0.111,0.268,0.176,0.427,0.176h2.67c0.161,0,0.317-0.064,0.43-0.181l2.378-2.417l4.9,4.9l14.47-14.558L25.012,10.44zM9.747,24.232l-2.208,2.242H5.372l-0.509-0.509L4.856,19.34l-0.008-7.515L4.842,5.943c0-0.328-0.261-0.594-0.588-0.603L3.617,5.326L3.313,5.031v-1.82l0.245-0.245l9.215,0.163l0.319,0.354l0.126,0.141v1.419l-0.352,0.362H12.26c-0.331,0-0.6,0.266-0.603,0.597l-0.076,7.203c-0.002,0.244,0.141,0.463,0.365,0.56c0.224,0.096,0.482,0.049,0.657-0.12l7.495-7.235c0.174-0.171,0.23-0.432,0.139-0.66c-0.09-0.228-0.312-0.377-0.56-0.377h-0.479l-0.296-0.379V3.496l0.312-0.445l9.083,0.081l0.252,0.252v1.743l-4.388,4.458L9.747,24.232z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.InkScape=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.InkScape",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M20.402,17.626c0.84-0.772,2.468-0.381,5.979-1.853c1.716-0.72,1.572-1.265,1.566-1.928c-0.001-0.014,0-0.027,0-0.041h-0.005c-0.012-0.667-0.291-1.332-0.846-1.845L17.049,2.684c-0.566-0.522-1.304-0.782-2.042-0.782V1.898c-0.738,0-1.475,0.261-2.04,0.783l-10.05,9.276c-0.554,0.512-0.832,1.176-0.843,1.844H2.07c0,0,0.003,0.011,0.004,0.011c0,0.012-0.004,0.024-0.004,0.034h0.017c0.193,0.676,5.164,1.536,5.718,2.049c0.838,0.774-3.211,1.339-2.374,2.114c0.838,0.773,5.062,1.496,5.898,2.271c0.838,0.771-1.711,1.596-0.874,2.366c0.837,0.773,3.651-0.191,3.142,1.822c1.13,1.045,3.49,0.547,5.071-0.498c0.837-0.771-1.607-0.703-0.77-1.477c0.836-0.774,2.949-0.777,4.73-2.627C21.913,18.838,19.566,18.398,20.402,17.626zM10.973,16.868l-0.42-0.504c1.497,0.358,3.162,0.827,4.498,0.837l0.058,0.554C13.964,17.646,11.544,17.137,10.973,16.868zM18.161,8.58l-1.396-0.74L14.53,9.594l-1.067-3.192l-1.177,2.545L8.998,9.25l0.036-1.352c0-0.324,1.895-2.596,3.05-3.136l2.112-1.401c0.312-0.186,0.53-0.261,0.727-0.257c0.327,0.011,0.593,0.239,1.112,0.55l4.748,3.25c0.357,0.215,0.619,0.522,0.626,0.898l-2.813-1.254L18.161,8.58zM26.434,19.594c-0.313-0.07-1.688-0.691-2.035,0.165c0.968,0.981,2.645,2.181,3.316,1.482C28.391,20.543,27.102,19.745,26.434,19.594zM4.663,21.566c-0.315,0.074-1.842,0.115-1.719,1.021c1.351,0.451,3.438,0.792,3.684-0.113C6.873,21.566,5.33,21.414,4.663,21.566zM17.877,26.396c-0.232,0.209-1.53,0.953-0.929,1.681c1.413-0.236,3.403-0.914,3.12-1.812C19.786,25.369,18.37,25.953,17.877,26.396z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Aumade=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Aumade",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M14.513,24.52c-0.131-0.217-0.14-0.481-0.022-0.711l1.987-3.844l0,0c0.186-0.357,0.625-0.497,0.981-0.312c0.357,0.188,0.498,0.625,0.312,0.982l-1.801,3.48l2.228,3.699h12.269l-14.8-25.631L6.433,18.178c0.434,0.242,0.909,0.479,1.391,0.654c0.571,0.211,1.148,0.342,1.658,0.342c0.276,0,0.579-0.078,0.916-0.238c0.337-0.158,0.7-0.396,1.073-0.688c0.749-0.582,1.527-1.354,2.334-2.021c0.539-0.442,1.091-0.844,1.706-1.099c0.352-0.145,0.729-0.239,1.128-0.239c0.622,0,1.174,0.214,1.622,0.5c0.449,0.287,0.813,0.646,1.11,0.995c0.59,0.697,0.902,1.359,0.924,1.394l0,0c0.18,0.361,0.021,0.801-0.341,0.977c-0.356,0.176-0.798,0.021-0.978-0.34c0-0.002-0.002-0.004-0.004-0.007c-0.002-0.011-0.008-0.021-0.018-0.034c-0.018-0.033-0.043-0.082-0.078-0.146c-0.07-0.125-0.179-0.305-0.312-0.496c-0.271-0.391-0.668-0.845-1.092-1.104c-0.281-0.178-0.561-0.272-0.844-0.272c-0.216,0-0.479,0.069-0.788,0.229c-0.309,0.153-0.653,0.396-1.016,0.688c-0.727,0.584-1.511,1.362-2.351,2.033c-0.562,0.445-1.15,0.853-1.809,1.103c-0.375,0.143-0.776,0.229-1.195,0.229c-0.749,0-1.48-0.181-2.164-0.433c-0.58-0.219-1.125-0.482-1.613-0.764L0.86,27.816h15.63L14.513,24.52zM18.214,22.242c0.222-0.557,0.537-1.217,0.963-1.848c0.427-0.627,0.957-1.232,1.646-1.646c0.379-0.229,0.812-0.391,1.282-0.438l-0.604-0.934l0,0c-0.22-0.339-0.123-0.789,0.215-1.009c0.341-0.219,0.789-0.123,1.013,0.216l1.545,2.391c0.184,0.274,0.147,0.646-0.075,0.893c-0.228,0.247-0.591,0.305-0.886,0.145c-0.354-0.191-0.646-0.258-0.901-0.258c-0.291,0-0.562,0.084-0.845,0.25c-0.277,0.164-0.562,0.414-0.813,0.719c-0.519,0.607-0.937,1.422-1.185,2.055c-0.111,0.285-0.387,0.466-0.678,0.466c-0.092,0-0.183-0.021-0.271-0.056C18.249,23.039,18.064,22.615,18.214,22.242z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Firefox=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Firefox",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.4,22.469c0.479-0.964,0.851-1.991,1.095-3.066c0.953-3.661,0.666-6.854,0.666-6.854l-0.327,2.104c0,0-0.469-3.896-1.044-5.353c-0.881-2.231-1.273-2.214-1.274-2.21c0.542,1.379,0.494,2.169,0.483,2.288c-0.01-0.016-0.019-0.032-0.027-0.047c-0.131-0.324-0.797-1.819-2.225-2.878c-2.502-2.481-5.943-4.014-9.745-4.015c-4.056,0-7.705,1.745-10.238,4.525C5.444,6.5,5.183,5.938,5.159,5.317c0,0-0.002,0.002-0.006,0.005c0-0.011-0.003-0.021-0.003-0.031c0,0-1.61,1.247-1.436,4.612c-0.299,0.574-0.56,1.172-0.777,1.791c-0.375,0.817-0.75,2.004-1.059,3.746c0,0,0.133-0.422,0.399-0.988c-0.064,0.482-0.103,0.971-0.116,1.467c-0.09,0.845-0.118,1.865-0.039,3.088c0,0,0.032-0.406,0.136-1.021c0.834,6.854,6.667,12.165,13.743,12.165l0,0c1.86,0,3.636-0.37,5.256-1.036C24.938,27.771,27.116,25.196,28.4,22.469zM16.002,3.356c2.446,0,4.73,0.68,6.68,1.86c-2.274-0.528-3.433-0.261-3.423-0.248c0.013,0.015,3.384,0.589,3.981,1.411c0,0-1.431,0-2.856,0.41c-0.065,0.019,5.242,0.663,6.327,5.966c0,0-0.582-1.213-1.301-1.42c0.473,1.439,0.351,4.17-0.1,5.528c-0.058,0.174-0.118-0.755-1.004-1.155c0.284,2.037-0.018,5.268-1.432,6.158c-0.109,0.07,0.887-3.189,0.201-1.93c-4.093,6.276-8.959,2.539-10.934,1.208c1.585,0.388,3.267,0.108,4.242-0.559c0.982-0.672,1.564-1.162,2.087-1.047c0.522,0.117,0.87-0.407,0.464-0.872c-0.405-0.466-1.392-1.105-2.725-0.757c-0.94,0.247-2.107,1.287-3.886,0.233c-1.518-0.899-1.507-1.63-1.507-2.095c0-0.366,0.257-0.88,0.734-1.028c0.58,0.062,1.044,0.214,1.537,0.466c0.005-0.135,0.006-0.315-0.001-0.519c0.039-0.077,0.015-0.311-0.047-0.596c-0.036-0.287-0.097-0.582-0.19-0.851c0.01-0.002,0.017-0.007,0.021-0.021c0.076-0.344,2.147-1.544,2.299-1.659c0.153-0.114,0.55-0.378,0.506-1.183c-0.015-0.265-0.058-0.294-2.232-0.286c-0.917,0.003-1.425-0.894-1.589-1.245c0.222-1.231,0.863-2.11,1.919-2.704c0.02-0.011,0.015-0.021-0.008-0.027c0.219-0.127-2.524-0.006-3.76,1.604C9.674,8.045,9.219,7.95,8.71,7.95c-0.638,0-1.139,0.07-1.603,0.187c-0.05,0.013-0.122,0.011-0.208-0.001C6.769,8.04,6.575,7.88,6.365,7.672c0.161-0.18,0.324-0.356,0.495-0.526C9.201,4.804,12.43,3.357,16.002,3.356z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Ie=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Ie",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.998,2.266c-2.12-1.91-6.925,0.382-9.575,1.93c-0.76-0.12-1.557-0.185-2.388-0.185c-3.349,0-6.052,0.985-8.106,2.843c-2.336,2.139-3.631,4.94-3.631,8.177c0,0.028,0.001,0.056,0.001,0.084c3.287-5.15,8.342-7.79,9.682-8.487c0.212-0.099,0.338,0.155,0.141,0.253c-0.015,0.042-0.015,0,0,0c-2.254,1.35-6.434,5.259-9.146,10.886l-0.003-0.007c-1.717,3.547-3.167,8.529-0.267,10.358c2.197,1.382,6.13-0.248,9.295-2.318c0.764,0.108,1.567,0.165,2.415,0.165c5.84,0,9.937-3.223,11.399-7.924l-8.022-0.014c-0.337,1.661-1.464,2.548-3.223,2.548c-2.21,0-3.729-1.211-3.828-4.012l15.228-0.014c0.028-0.578-0.042-0.985-0.042-1.436c0-5.251-3.143-9.355-8.255-10.663c2.081-1.294,5.974-3.209,7.848-1.681c1.407,1.14,0.633,3.533,0.295,4.518c-0.056,0.254,0.24,0.296,0.296,0.057C28.814,5.573,29.026,3.194,27.998,2.266zM13.272,25.676c-2.469,1.475-5.873,2.539-7.539,1.289c-1.243-0.935-0.696-3.468,0.398-5.938c0.664,0.992,1.495,1.886,2.473,2.63C9.926,24.651,11.479,25.324,13.272,25.676zM12.714,13.046c0.042-2.435,1.787-3.49,3.617-3.49c1.928,0,3.49,1.112,3.49,3.49H12.714z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Ie9=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Ie9",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.751,17.887c0.054-0.434,0.081-0.876,0.081-1.324c0-1.744-0.413-3.393-1.146-4.854c1.133-2.885,1.155-5.369-0.201-6.777c-1.756-1.822-5.391-1.406-9.433,0.721c-0.069-0.001-0.138-0.003-0.206-0.003c-6.069,0-10.988,4.888-10.988,10.917c0,0.183,0.005,0.354,0.014,0.529c-2.688,4.071-3.491,7.967-1.688,9.838c1.557,1.613,4.691,1.344,8.2-0.392c1.363,0.604,2.873,0.938,4.462,0.938c4.793,0,8.867-3.049,10.369-7.299H21.26c-0.814,1.483-2.438,2.504-4.307,2.504c-2.688,0-4.867-2.104-4.867-4.688c0-0.036,0.002-0.071,0.003-0.106h15.662V17.887zM26.337,6.099c0.903,0.937,0.806,2.684-0.087,4.818c-1.27-2.083-3.221-3.71-5.546-4.576C23.244,5.217,25.324,5.047,26.337,6.099zM16.917,10.372c2.522,0,4.585,1.991,4.748,4.509h-9.496C12.333,12.363,14.396,10.372,16.917,10.372zM5.687,26.501c-1.103-1.146-0.712-3.502,0.799-6.298c0.907,2.546,2.736,4.658,5.09,5.938C8.92,27.368,6.733,27.587,5.687,26.501z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Opera=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Opera",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.954,2.046c-7.489,0-12.872,5.432-12.872,13.581c0,7.25,5.234,13.835,12.873,13.835c7.712,0,12.974-6.583,12.974-13.835C28.929,7.413,23.375,2.046,15.954,2.046zM15.952,26.548L15.952,26.548c-2.289,0-3.49-1.611-4.121-3.796c-0.284-1.037-0.458-2.185-0.563-3.341c-0.114-1.374-0.129-2.773-0.129-4.028c0-0.993,0.018-1.979,0.074-2.926c0.124-1.728,0.386-3.431,0.89-4.833c0.694-1.718,1.871-2.822,3.849-2.822c2.5,0,3.763,1.782,4.385,4.322c0.429,1.894,0.56,4.124,0.56,6.274c0,2.299-0.103,5.153-0.763,7.442C19.473,24.979,18.242,26.548,15.952,26.548z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Chrome=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Chrome",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.318,7.677c0.071-0.029,0.148-0.046,0.229-0.046h11.949c-2.533-3.915-6.938-6.506-11.949-6.506c-5.017,0-9.428,2.598-11.959,6.522l4.291,7.431C8.018,11.041,11.274,7.796,15.318,7.677zM28.196,8.84h-8.579c2.165,1.357,3.605,3.763,3.605,6.506c0,1.321-0.334,2.564-0.921,3.649c-0.012,0.071-0.035,0.142-0.073,0.209l-5.973,10.347c7.526-0.368,13.514-6.587,13.514-14.205C29.77,13.002,29.201,10.791,28.196,8.84zM15.547,23.022c-2.761,0-5.181-1.458-6.533-3.646c-0.058-0.046-0.109-0.103-0.149-0.171L2.89,8.855c-1,1.946-1.565,4.153-1.565,6.492c0,7.624,5.999,13.846,13.534,14.205l4.287-7.425C18.073,22.698,16.848,23.022,15.547,23.022zM9.08,15.347c0,1.788,0.723,3.401,1.894,4.573c1.172,1.172,2.785,1.895,4.573,1.895c1.788,0,3.401-0.723,4.573-1.895s1.895-2.785,1.895-4.573c0-1.788-0.723-3.4-1.895-4.573c-1.172-1.171-2.785-1.894-4.573-1.894c-1.788,0-3.401,0.723-4.573,1.894C9.803,11.946,9.081,13.559,9.08,15.347z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Safari=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Safari",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M16.154,5.135c-0.504,0-1,0.031-1.488,0.089l-0.036-0.18c-0.021-0.104-0.06-0.198-0.112-0.283c0.381-0.308,0.625-0.778,0.625-1.306c0-0.927-0.751-1.678-1.678-1.678s-1.678,0.751-1.678,1.678c0,0.745,0.485,1.376,1.157,1.595c-0.021,0.105-0.021,0.216,0,0.328l0.033,0.167C7.645,6.95,3.712,11.804,3.712,17.578c0,6.871,5.571,12.441,12.442,12.441c6.871,0,12.441-5.57,12.441-12.441C28.596,10.706,23.025,5.135,16.154,5.135zM16.369,8.1c4.455,0,8.183,3.116,9.123,7.287l-0.576,0.234c-0.148-0.681-0.755-1.191-1.48-1.191c-0.837,0-1.516,0.679-1.516,1.516c0,0.075,0.008,0.148,0.018,0.221l-2.771-0.028c-0.054-0.115-0.114-0.226-0.182-0.333l3.399-5.11l0.055-0.083l-4.766,4.059c-0.352-0.157-0.74-0.248-1.148-0.256l0.086-0.018l-1.177-2.585c0.64-0.177,1.111-0.763,1.111-1.459c0-0.837-0.678-1.515-1.516-1.515c-0.075,0-0.147,0.007-0.219,0.018l0.058-0.634C15.357,8.141,15.858,8.1,16.369,8.1zM12.146,3.455c0-0.727,0.591-1.318,1.318-1.318c0.727,0,1.318,0.591,1.318,1.318c0,0.425-0.203,0.802-0.516,1.043c-0.183-0.123-0.413-0.176-0.647-0.13c-0.226,0.045-0.413,0.174-0.535,0.349C12.542,4.553,12.146,4.049,12.146,3.455zM7.017,17.452c0-4.443,3.098-8.163,7.252-9.116l0.297,0.573c-0.61,0.196-1.051,0.768-1.051,1.442c0,0.837,0.678,1.516,1.515,1.516c0.068,0,0.135-0.006,0.2-0.015l-0.058,2.845l0.052-0.011c-0.442,0.204-0.824,0.513-1.116,0.895l0.093-0.147l-1.574-0.603l1.172,1.239l0.026-0.042c-0.19,0.371-0.306,0.788-0.324,1.229l-0.003-0.016l-2.623,1.209c-0.199-0.604-0.767-1.041-1.438-1.041c-0.837,0-1.516,0.678-1.516,1.516c0,0.064,0.005,0.128,0.013,0.191l-0.783-0.076C7.063,18.524,7.017,17.994,7.017,17.452zM16.369,26.805c-4.429,0-8.138-3.078-9.106-7.211l0.691-0.353c0.146,0.686,0.753,1.2,1.482,1.2c0.837,0,1.515-0.679,1.515-1.516c0-0.105-0.011-0.207-0.031-0.307l2.858,0.03c0.045,0.095,0.096,0.187,0.15,0.276l-3.45,5.277l0.227-0.195l4.529-3.92c0.336,0.153,0.705,0.248,1.094,0.266l-0.019,0.004l1.226,2.627c-0.655,0.166-1.142,0.76-1.142,1.468c0,0.837,0.678,1.515,1.516,1.515c0.076,0,0.151-0.007,0.225-0.018l0.004,0.688C17.566,26.746,16.975,26.805,16.369,26.805zM18.662,26.521l-0.389-0.6c0.661-0.164,1.152-0.759,1.152-1.47c0-0.837-0.68-1.516-1.516-1.516c-0.066,0-0.13,0.005-0.193,0.014v-2.86l-0.025,0.004c0.409-0.185,0.77-0.459,1.055-0.798l1.516,0.659l-1.104-1.304c0.158-0.335,0.256-0.704,0.278-1.095l2.552-1.164c0.19,0.618,0.766,1.068,1.447,1.068c0.838,0,1.516-0.679,1.516-1.516c0-0.069-0.006-0.137-0.016-0.204l0.65,0.12c0.089,0.517,0.136,1.049,0.136,1.591C25.722,21.826,22.719,25.499,18.662,26.521z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.LinkedIn=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.LinkedIn",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.25,3.125h-22c-1.104,0-2,0.896-2,2v22c0,1.104,0.896,2,2,2h22c1.104,0,2-0.896,2-2v-22C29.25,4.021,28.354,3.125,27.25,3.125zM11.219,26.781h-4v-14h4V26.781zM9.219,11.281c-1.383,0-2.5-1.119-2.5-2.5s1.117-2.5,2.5-2.5s2.5,1.119,2.5,2.5S10.602,11.281,9.219,11.281zM25.219,26.781h-4v-8.5c0-0.4-0.403-1.055-0.687-1.213c-0.375-0.211-1.261-0.229-1.665-0.034l-1.648,0.793v8.954h-4v-14h4v0.614c1.583-0.723,3.78-0.652,5.27,0.184c1.582,0.886,2.73,2.864,2.73,4.702V26.781z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Flickr=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Flickr",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M21.77,8.895c-2.379,0-4.479,1.174-5.77,2.969c-1.289-1.795-3.39-2.969-5.77-2.969c-3.924,0-7.105,3.181-7.105,7.105c0,3.924,3.181,7.105,7.105,7.105c2.379,0,4.48-1.175,5.77-2.97c1.29,1.795,3.391,2.97,5.77,2.97c3.925,0,7.105-3.182,7.105-7.105C28.875,12.075,25.694,8.895,21.77,8.895zM21.769,21.822c-3.211,0-5.821-2.61-5.821-5.821c0-3.213,2.61-5.824,5.821-5.824c3.213,0,5.824,2.611,5.824,5.824C27.593,19.212,24.981,21.822,21.769,21.822z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.GitHub=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.GitHub",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.436,15.099c-1.201-0.202-2.451-0.335-3.466-0.371l-0.179-0.006c0.041-0.09,0.072-0.151,0.082-0.16c0.022-0.018,0.04-0.094,0.042-0.168c0-0.041,0.018-0.174,0.046-0.35c0.275,0.01,0.64,0.018,1.038,0.021c1.537,0.012,3.145,0.136,4.248,0.331c0.657,0.116,0.874,0.112,0.389-0.006c-0.491-0.119-1.947-0.294-3.107-0.37c-0.779-0.053-1.896-0.073-2.554-0.062c0.019-0.114,0.041-0.241,0.064-0.371c0.093-0.503,0.124-1.009,0.126-2.016c0.002-1.562-0.082-1.992-0.591-3.025c-0.207-0.422-0.441-0.78-0.724-1.104c0.247-0.729,0.241-1.858-0.015-2.848c-0.211-0.812-0.285-0.864-1.021-0.708C22.19,4.019,21.69,4.2,21.049,4.523c-0.303,0.153-0.721,0.391-1.024,0.578c-0.79-0.278-1.607-0.462-2.479-0.561c-0.884-0.1-3.051-0.044-3.82,0.098c-0.752,0.139-1.429,0.309-2.042,0.511c-0.306-0.189-0.75-0.444-1.067-0.604C9.973,4.221,9.473,4.041,8.847,3.908c-0.734-0.157-0.81-0.104-1.02,0.708c-0.26,1.003-0.262,2.151-0.005,2.878C7.852,7.577,7.87,7.636,7.877,7.682c-1.042,1.312-1.382,2.78-1.156,4.829c0.059,0.534,0.15,1.024,0.277,1.473c-0.665-0.004-1.611,0.02-2.294,0.064c-1.162,0.077-2.618,0.25-3.109,0.369c-0.484,0.118-0.269,0.122,0.389,0.007c1.103-0.194,2.712-0.32,4.248-0.331c0.29-0.001,0.561-0.007,0.794-0.013c0.07,0.237,0.15,0.463,0.241,0.678L7.26,14.759c-1.015,0.035-2.264,0.168-3.465,0.37c-0.901,0.151-2.231,0.453-2.386,0.54c-0.163,0.091-0.03,0.071,0.668-0.106c1.273-0.322,2.928-0.569,4.978-0.741l0.229-0.02c0.44,1.022,1.118,1.802,2.076,2.41c0.586,0.373,1.525,0.756,1.998,0.816c0.13,0.016,0.508,0.094,0.84,0.172c0.333,0.078,0.984,0.195,1.446,0.262h0.011c-0.009,0.006-0.017,0.01-0.025,0.016c-0.56,0.291-0.924,0.744-1.169,1.457c-0.11,0.033-0.247,0.078-0.395,0.129c-0.529,0.18-0.735,0.217-1.271,0.221c-0.556,0.004-0.688-0.02-1.02-0.176c-0.483-0.225-0.933-0.639-1.233-1.133c-0.501-0.826-1.367-1.41-2.089-1.41c-0.617,0-0.734,0.25-0.288,0.615c0.672,0.549,1.174,1.109,1.38,1.537c0.116,0.24,0.294,0.611,0.397,0.824c0.109,0.227,0.342,0.535,0.564,0.748c0.522,0.498,1.026,0.736,1.778,0.848c0.504,0.074,0.628,0.074,1.223-0.002c0.287-0.035,0.529-0.076,0.746-0.127c0,0.244,0,0.525,0,0.855c0,1.766-0.021,2.334-0.091,2.5c-0.132,0.316-0.428,0.641-0.716,0.787c-0.287,0.146-0.376,0.307-0.255,0.455c0.067,0.08,0.196,0.094,0.629,0.066c0.822-0.051,1.403-0.355,1.699-0.891c0.095-0.172,0.117-0.518,0.147-2.318c0.032-1.953,0.046-2.141,0.173-2.42c0.077-0.166,0.188-0.346,0.25-0.395c0.104-0.086,0.111,0.084,0.111,2.42c-0.001,2.578-0.027,2.889-0.285,3.385c-0.058,0.113-0.168,0.26-0.245,0.33c-0.135,0.123-0.192,0.438-0.098,0.533c0.155,0.154,0.932-0.088,1.356-0.422c0.722-0.572,0.808-1.045,0.814-4.461l0.003-2.004l0.219,0.021l0.219,0.02l0.036,2.621c0.041,2.951,0.047,2.994,0.549,3.564c0.285,0.322,0.572,0.5,1.039,0.639c0.625,0.188,0.813-0.102,0.393-0.605c-0.457-0.547-0.479-0.756-0.454-3.994c0.017-2.076,0.017-2.076,0.151-1.955c0.282,0.256,0.336,0.676,0.336,2.623c0,2.418,0.069,2.648,0.923,3.07c0.399,0.195,0.511,0.219,1.022,0.221c0.544,0.002,0.577-0.006,0.597-0.148c0.017-0.115-0.05-0.193-0.304-0.348c-0.333-0.205-0.564-0.467-0.709-0.797c-0.055-0.127-0.092-0.959-0.117-2.672c-0.036-2.393-0.044-2.502-0.193-2.877c-0.201-0.504-0.508-0.902-0.897-1.166c-0.101-0.066-0.202-0.121-0.333-0.162c0.161-0.016,0.317-0.033,0.468-0.055c1.572-0.209,2.403-0.383,3.07-0.641c1.411-0.543,2.365-1.445,2.882-2.724c0.046-0.114,0.092-0.222,0.131-0.309l0.398,0.033c2.051,0.173,3.706,0.42,4.979,0.743c0.698,0.177,0.831,0.198,0.668,0.105C30.666,15.551,29.336,15.25,28.436,15.099zM22.422,15.068c-0.233,0.512-0.883,1.17-1.408,1.428c-0.518,0.256-1.33,0.451-2.25,0.544c-0.629,0.064-4.137,0.083-4.716,0.026c-1.917-0.188-2.991-0.557-3.783-1.296c-0.75-0.702-1.1-1.655-1.039-2.828c0.039-0.734,0.216-1.195,0.679-1.755c0.421-0.51,0.864-0.825,1.386-0.985c0.437-0.134,1.778-0.146,3.581-0.03c0.797,0.051,1.456,0.051,2.252,0c1.886-0.119,3.145-0.106,3.61,0.038c0.731,0.226,1.397,0.834,1.797,1.644c0.18,0.362,0.215,0.516,0.241,1.075C22.808,13.699,22.675,14.517,22.422,15.068zM12.912,11.762c-1.073-0.188-1.686,1.649-0.863,2.587c0.391,0.445,0.738,0.518,1.172,0.248c0.402-0.251,0.62-0.72,0.62-1.328C13.841,12.458,13.472,11.862,12.912,11.762zM19.425,11.872c-1.073-0.188-1.687,1.647-0.864,2.586c0.392,0.445,0.738,0.519,1.173,0.247c0.401-0.25,0.62-0.72,0.62-1.328C20.354,12.569,19.985,11.971,19.425,11.872zM16.539,15.484c-0.023,0.074-0.135,0.184-0.248,0.243c-0.286,0.147-0.492,0.096-0.794-0.179c-0.187-0.169-0.272-0.258-0.329-0.081c-0.053,0.164,0.28,0.493,0.537,0.594c0.236,0.094,0.405,0.097,0.661-0.01c0.254-0.106,0.476-0.391,0.476-0.576C16.842,15.303,16.595,15.311,16.539,15.484zM16.222,14.909c0.163-0.144,0.2-0.44,0.044-0.597s-0.473-0.133-0.597,0.043c-0.144,0.206-0.067,0.363,0.036,0.53C15.865,15.009,16.08,15.034,16.222,14.909z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.GitHubAlt=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.GitHubAlt",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M23.356,17.485c-0.004,0.007-0.007,0.013-0.01,0.021l0.162,0.005c0.107,0.004,0.218,0.01,0.33,0.016c-0.046-0.004-0.09-0.009-0.136-0.013L23.356,17.485zM15.5,1.249C7.629,1.25,1.25,7.629,1.249,15.5C1.25,23.371,7.629,29.75,15.5,29.751c7.871-0.001,14.25-6.38,14.251-14.251C29.75,7.629,23.371,1.25,15.5,1.249zM3.771,17.093c0.849-0.092,1.833-0.148,2.791-0.156c0.262,0,0.507-0.006,0.717-0.012c0.063,0.213,0.136,0.419,0.219,0.613H7.492c-0.918,0.031-2.047,0.152-3.134,0.335c-0.138,0.023-0.288,0.051-0.441,0.08C3.857,17.67,3.81,17.383,3.771,17.093zM12.196,22.224c-0.1,0.028-0.224,0.07-0.357,0.117c-0.479,0.169-0.665,0.206-1.15,0.206c-0.502,0.015-0.621-0.019-0.921-0.17C9.33,22.171,8.923,21.8,8.651,21.353c-0.453-0.746-1.236-1.275-1.889-1.275c-0.559,0-0.664,0.227-0.261,0.557c0.608,0.496,1.062,0.998,1.248,1.385c0.105,0.215,0.266,0.546,0.358,0.744c0.099,0.206,0.311,0.474,0.511,0.676c0.472,0.441,0.928,0.659,1.608,0.772c0.455,0.06,0.567,0.06,1.105-0.004c0.26-0.03,0.479-0.067,0.675-0.118v0.771c0,1.049-0.008,1.628-0.031,1.945c-1.852-0.576-3.507-1.595-4.848-2.934c-1.576-1.578-2.706-3.592-3.195-5.848c0.952-0.176,2.073-0.32,3.373-0.43l0.208-0.018c0.398,0.925,1.011,1.631,1.876,2.179c0.53,0.337,1.38,0.685,1.808,0.733c0.118,0.02,0.46,0.09,0.76,0.16c0.302,0.066,0.89,0.172,1.309,0.236h0.009c-0.007,0.018-0.014,0.02-0.022,0.02C12.747,21.169,12.418,21.579,12.196,22.224zM13.732,27.207c-0.168-0.025-0.335-0.056-0.5-0.087c0.024-0.286,0.038-0.785,0.054-1.723c0.028-1.767,0.041-1.94,0.156-2.189c0.069-0.15,0.17-0.32,0.226-0.357c0.095-0.078,0.101,0.076,0.101,2.188C13.769,26.143,13.763,26.786,13.732,27.207zM15.5,27.339c-0.148,0-0.296-0.006-0.443-0.012c0.086-0.562,0.104-1.428,0.106-2.871l0.003-1.82l0.197,0.019l0.199,0.02l0.032,2.365c0.017,1.21,0.027,1.878,0.075,2.296C15.613,27.335,15.558,27.339,15.5,27.339zM17.006,27.24c-0.039-0.485-0.037-1.243-0.027-2.553c0.019-1.866,0.019-1.866,0.131-1.769c0.246,0.246,0.305,0.623,0.305,2.373c0,0.928,0.011,1.497,0.082,1.876C17.334,27.196,17.17,27.22,17.006,27.24zM27.089,17.927c-0.155-0.029-0.307-0.057-0.446-0.08c-0.96-0.162-1.953-0.275-2.804-0.32c1.25,0.108,2.327,0.248,3.246,0.418c-0.479,2.289-1.618,4.33-3.214,5.928c-1.402,1.4-3.15,2.448-5.106,3.008c-0.034-0.335-0.058-1.048-0.066-2.212c-0.03-2.167-0.039-2.263-0.17-2.602c-0.181-0.458-0.47-0.811-0.811-1.055c-0.094-0.057-0.181-0.103-0.301-0.14c0.145-0.02,0.282-0.021,0.427-0.057c1.418-0.188,2.168-0.357,2.772-0.584c1.263-0.492,2.129-1.301,2.606-2.468c0.044-0.103,0.088-0.2,0.123-0.279l0.011,0.001c0.032-0.07,0.057-0.118,0.064-0.125c0.02-0.017,0.036-0.085,0.038-0.151c0-0.037,0.017-0.157,0.041-0.317c0.249,0.01,0.58,0.018,0.938,0.02c0.959,0.008,1.945,0.064,2.794,0.156C27.194,17.356,27.148,17.644,27.089,17.927zM25.823,16.87c-0.697-0.049-1.715-0.064-2.311-0.057c0.02-0.103,0.037-0.218,0.059-0.336c0.083-0.454,0.111-0.912,0.113-1.823c0.002-1.413-0.074-1.801-0.534-2.735c-0.188-0.381-0.399-0.705-0.655-0.998c0.225-0.659,0.207-1.68-0.02-2.575c-0.19-0.734-0.258-0.781-0.924-0.64c-0.563,0.12-1.016,0.283-1.598,0.576c-0.274,0.138-0.652,0.354-0.923,0.522c-0.715-0.251-1.451-0.419-2.242-0.508c-0.799-0.092-2.759-0.04-3.454,0.089c-0.681,0.126-1.293,0.28-1.848,0.462c-0.276-0.171-0.678-0.4-0.964-0.547C9.944,8.008,9.491,7.846,8.925,7.727c-0.664-0.144-0.732-0.095-0.922,0.64c-0.235,0.907-0.237,1.945-0.004,2.603c0.026,0.075,0.043,0.129,0.05,0.17c-0.942,1.187-1.25,2.515-1.046,4.367c0.053,0.482,0.136,0.926,0.251,1.333c-0.602-0.004-1.457,0.018-2.074,0.057c-0.454,0.031-0.957,0.076-1.418,0.129c-0.063-0.5-0.101-1.008-0.101-1.524c0-3.273,1.323-6.225,3.468-8.372c2.146-2.144,5.099-3.467,8.371-3.467c3.273,0,6.226,1.323,8.371,3.467c2.145,2.147,3.468,5.099,3.468,8.372c0,0.508-0.036,1.008-0.098,1.499C26.78,16.946,26.276,16.899,25.823,16.87z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Raphael=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Raphael",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M27.777,18.941c0.584-0.881,0.896-1.914,0.896-2.998c0-1.457-0.567-2.826-1.598-3.854l-6.91-6.911l-0.003,0.002c-0.985-0.988-2.35-1.6-3.851-1.6c-1.502,0-2.864,0.612-3.85,1.6H12.46l-6.911,6.911c-1.031,1.029-1.598,2.398-1.598,3.854c0,1.457,0.567,2.826,1.598,3.854l6.231,6.229c0.25,0.281,0.512,0.544,0.789,0.785c1.016,0.961,2.338,1.49,3.743,1.49c1.456,0,2.825-0.565,3.854-1.598l6.723-6.725c0.021-0.019,0.034-0.032,0.051-0.051l0.14-0.138c0.26-0.26,0.487-0.54,0.688-0.838c0.004-0.008,0.01-0.015,0.014-0.021L27.777,18.941zM26.658,15.946c0,0.678-0.197,1.326-0.561,1.879c-0.222,0.298-0.447,0.559-0.684,0.784L25.4,18.625c-1.105,1.052-2.354,1.35-3.414,1.35c-0.584,0-1.109-0.09-1.523-0.195c-2.422-0.608-5.056-2.692-6.261-5.732c0.649,0.274,1.362,0.426,2.11,0.426c2.811,0,5.129-2.141,5.415-4.877l3.924,3.925C26.301,14.167,26.658,15.029,26.658,15.946zM16.312,5.6c1.89,0,3.426,1.538,3.426,3.427c0,1.89-1.536,3.427-3.426,3.427c-1.889,0-3.426-1.537-3.426-3.427C12.886,7.138,14.423,5.6,16.312,5.6zM6.974,18.375c-0.649-0.648-1.007-1.512-1.007-2.429c0-0.917,0.357-1.78,1.007-2.428l2.655-2.656c-0.693,2.359-0.991,4.842-0.831,7.221c0.057,0.854,0.175,1.677,0.345,2.46L6.974,18.375zM11.514,11.592c0.583,4.562,4.195,9.066,8.455,10.143c0.693,0.179,1.375,0.265,2.033,0.265c0.01,0,0.02,0,0.027,0l-3.289,3.289c-0.648,0.646-1.512,1.006-2.428,1.006c-0.638,0-1.248-0.177-1.779-0.5l0.001-0.002c-0.209-0.142-0.408-0.295-0.603-0.461c-0.015-0.019-0.031-0.026-0.046-0.043l-0.665-0.664c-1.367-1.567-2.227-3.903-2.412-6.671C10.669,15.856,10.921,13.673,11.514,11.592")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.GRaphael=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.GRaphael",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M28.833,15.709c0-1.477-0.574-2.862-1.617-3.904l-7.002-7.001l-0.003,0.002c-1.027-1.03-2.445-1.62-3.9-1.62c-1.455,0-2.871,0.59-3.9,1.621l-0.002-0.002l-7,7C4.376,12.836,3.79,14.25,3.79,15.709s0.586,2.873,1.619,3.902l6.312,6.312c0.253,0.285,0.519,0.556,0.8,0.8c1.049,0.989,2.463,1.534,3.908,1.51c1.417-0.021,2.783-0.604,3.785-1.604l6.812-6.812c0.021-0.021,0.035-0.029,0.062-0.062l0.143-0.146c0.271-0.271,0.484-0.562,0.725-0.86l-0.012-0.002C28.516,17.85,28.833,16.805,28.833,15.709zM18.77,25.17c-1.121,1.119-2.917,1.336-4.271,0.514l0.002-0.002c-0.213-0.145-0.414-0.303-0.61-0.471c-0.016-0.016-7.04-7.041-7.04-7.041c-1.34-1.34-1.342-3.584,0-4.92l7-6.998c1.121-1.121,2.908-1.338,4.259-0.512v0.002c0.213,0.141,0.414,0.299,0.604,0.467c0.021,0.016,7.053,7.043,7.053,7.043c0.396,0.388,0.655,0.852,0.818,1.348l-2.607,0.006c-0.537-3.754-3.769-6.641-7.667-6.641c-4.277,0-7.744,3.468-7.745,7.746c0.001,4.277,3.468,7.744,7.745,7.744c3.917,0,7.156-2.91,7.668-6.688l2.638-0.021c-0.16,0.521-0.441,1.02-0.849,1.412L18.77,25.17zM16.312,16.789c0.002,0,0.002,0,0.004,0l5.476-0.02c-0.5,2.562-2.76,4.518-5.48,4.521c-3.084-0.004-5.578-2.5-5.584-5.582c0.006-3.084,2.5-5.58,5.584-5.584c2.708,0.004,4.959,1.929,5.472,4.484l-5.476,0.018c-0.596,0.002-1.078,0.488-1.076,1.084C15.233,16.308,15.715,16.789,16.312,16.789z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Svg=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Svg",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M31.274,15.989c0-2.473-2.005-4.478-4.478-4.478l0,0c0.81-0.811,1.312-1.93,1.312-3.167c0-2.474-2.005-4.479-4.479-4.479c-1.236,0-2.356,0.501-3.167,1.312c0-2.473-2.005-4.478-4.478-4.478c-2.474,0-4.479,2.005-4.479,4.478c-0.811-0.81-1.93-1.312-3.167-1.312c-2.474,0-4.479,2.005-4.479,4.479c0,1.236,0.501,2.356,1.312,3.166c-2.474,0-4.479,2.005-4.479,4.479c0,2.474,2.005,4.479,4.479,4.479c-0.811,0.81-1.312,1.93-1.312,3.167c0,2.473,2.005,4.478,4.479,4.478c1.236,0,2.356-0.501,3.167-1.312c0,2.473,2.005,4.479,4.479,4.479c2.473,0,4.478-2.006,4.478-4.479l0,0c0.811,0.811,1.931,1.312,3.167,1.312c2.474,0,4.478-2.005,4.478-4.478c0-1.237-0.501-2.357-1.312-3.168c0.001,0,0.001,0,0.001,0C29.27,20.467,31.274,18.463,31.274,15.989zM23.583,21.211c0.016,0,0.031-0.001,0.047-0.001c1.339,0,2.424,1.085,2.424,2.425c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-0.017,0.001-0.031,0.001-0.047l-3.541-3.542v5.009c0.457,0.44,0.743,1.06,0.743,1.746c0,1.339-1.086,2.424-2.424,2.424c-1.339,0-2.425-1.085-2.425-2.424c0-0.687,0.286-1.306,0.743-1.746v-5.009l-3.541,3.542c0,0.016,0.001,0.031,0.001,0.047c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-1.34,1.085-2.425,2.424-2.425c0.015,0,0.031,0.001,0.046,0.001l3.542-3.541H6.919c-0.44,0.458-1.06,0.743-1.746,0.743c-1.339,0-2.424-1.085-2.424-2.424s1.085-2.424,2.424-2.424c0.686,0,1.305,0.285,1.746,0.744h5.008l-3.542-3.542c-0.015,0-0.031,0.001-0.046,0.001c-1.339,0-2.424-1.085-2.424-2.424S7.001,5.92,8.34,5.92s2.424,1.085,2.424,2.424c0,0.015-0.001,0.031-0.001,0.046l3.541,3.542V6.924c-0.457-0.441-0.743-1.06-0.743-1.746c0-1.339,1.086-2.425,2.425-2.425c1.338,0,2.424,1.085,2.424,2.425c0,0.686-0.286,1.305-0.743,1.746v5.008l3.541-3.542c0-0.015-0.001-0.031-0.001-0.046c0-1.339,1.085-2.424,2.424-2.424s2.424,1.085,2.424,2.424c0,1.339-1.085,2.424-2.424,2.424c-0.016,0-0.031-0.001-0.047-0.001l-3.541,3.542h5.008c0.441-0.458,1.061-0.744,1.747-0.744c1.338,0,2.423,1.085,2.423,2.424s-1.085,2.424-2.423,2.424c-0.687,0-1.306-0.285-1.747-0.743h-5.008L23.583,21.211z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Usb=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Usb",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M15.5,1.667L13.745,4.74h1.252v15.709L11.8,17.391c-0.205-0.26-0.351-0.601-0.358-0.952c0-1.417-0.001-2.258-0.001-2.568c0.592-0.21,1.02-0.774,1.02-1.444c0-0.849-0.682-1.538-1.521-1.538c-0.84,0-1.521,0.689-1.521,1.538c0,0.67,0.427,1.234,1.019,1.444l-0.001,2.539c0,0.688,0.373,1.409,0.812,1.868c-0.013-0.013-0.027-0.025,0,0c0.011,0.01,3.392,3.245,3.392,3.245c0.205,0.26,0.35,0.6,0.357,0.951v1.776c-1.161,0.236-2.036,1.272-2.036,2.517c0,1.418,1.137,2.566,2.539,2.566c1.403,0,2.54-1.148,2.54-2.566c0-1.244-0.875-2.28-2.038-2.517v-1.746c0-0.005,0-0.009,0-0.014v-3.861c0.008-0.35,0.152-0.689,0.358-0.949c0,0,3.38-3.234,3.392-3.245c0.027-0.026,0.012-0.013,0,0c0.438-0.459,0.811-1.181,0.811-1.869V10.12h1.02V7.046h-3.041v3.075h1.018c0,0-0.002,0.644-0.002,2.476c-0.008,0.351-0.152,0.692-0.357,0.952l-3.198,3.06V4.74h1.254L15.5,1.667z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.icon.Ethernet=r.default.shape.icon.Icon.extend({NAME:"draw2d.shape.icon.Ethernet",init:function(t,e,n){this._super(extend({width:50,height:50},t),e,n)},createSet:function(){return this.canvas.paper.path("M22.5,8.5v3.168l3.832,3.832L22.5,19.332V22.5l7-7L22.5,8.5zM8.5,22.5v-3.168L4.667,15.5L8.5,11.668V8.5l-7,7L8.5,22.5zM15.5,14.101c-0.928,0-1.68,0.751-1.68,1.68c0,0.927,0.752,1.681,1.68,1.681c0.927,0,1.68-0.754,1.68-1.681C17.18,14.852,16.427,14.101,15.5,14.101zM10.46,14.101c-0.928,0-1.68,0.751-1.68,1.68c0,0.927,0.752,1.681,1.68,1.681s1.68-0.754,1.68-1.681C12.14,14.852,11.388,14.101,10.46,14.101zM20.541,14.101c-0.928,0-1.682,0.751-1.682,1.68c0,0.927,0.754,1.681,1.682,1.681s1.68-0.754,1.68-1.681C22.221,14.852,21.469,14.101,20.541,14.101z")}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.pert.Activity=r.default.shape.layout.VerticalLayout.extend({NAME:"draw2d.shape.pert.Activity",init:function(t,e,n){var i=this;this.mementoValues={duration:null},this.bgColor=new r.default.util.Color("#f3f3f3"),this.lighterBgColor=this.bgColor.lighter(.2).hash(),this.darkerBgColor=this.bgColor.darker(.2).hash(),this._super(extend({bgColor:this.bgColor,stroke:2,radius:2,color:this.darkerBgColor},t),e,n);var a=new r.default.shape.layout.HorizontalLayout({stroke:0});this.earlyStartLabel=this.createLabel("Early Start").setStroke(0),this.durationLabel=new r.default.shape.basic.Label({text:"Duration",stroke:1,color:this.darkerBgColor,radius:0,bgColor:null,padding:5}),this.durationLabel.installEditor(new r.default.ui.LabelEditor({onCommit:function(t){i.setDuration(parseFloat(t))}})),this.earlyEndLabel=this.createLabel({text:"Early End",stroke:0}),a.add(this.earlyStartLabel),a.add(this.durationLabel),a.add(this.earlyEndLabel),this.activityLabel=new r.default.shape.basic.Label({text:"Activity Name",radius:0,padding:10,color:this.darkerBgColor,bgColor:null}),this.activityLabel.installEditor(new r.default.ui.LabelInplaceEditor),this.inputPort=this.activityLabel.createPort("input"),this.inputPort.getActivity=function(){return i},this.inputPort.onConnect=function(){i.setDuration(i.mementoValues.duration)},this.inputPort.onDisconnect=function(){i.setDuration(i.mementoValues.duration)},this.inputPort.setValue=function(t){i.setDuration(i.mementoValues.duration)},this.outputPort=this.activityLabel.createPort("output"),this.outputPort.getActivity=function(){return i},this.outputPort.onConnect=function(){i.setDuration(i.mementoValues.duration)},this.outputPort.onDisconnect=function(){i.setDuration(i.mementoValues.duration)};var o=new r.default.shape.layout.HorizontalLayout({stroke:0});this.lateStartLabel=this.createLabel("Late Start").setStroke(0),this.stackLabel=this.createLabel("Stack"),this.lateEndLabel=this.createLabel("Late End").setStroke(0),o.add(this.lateStartLabel),o.add(this.stackLabel),o.add(this.lateEndLabel),this.add(a),this.add(this.activityLabel),this.add(o),this.setDuration(1)},setDuration:function(t){this.mementoValues.duration!==t&&(this.mementoValues.duration=t,this.durationLabel.setText(this.mementoValues.duration));var e=this.getEarlyStart();this.earlyStartLabel.setText(e),this.earlyEndLabel.setText(e+this.mementoValues.duration);var n=this.outputPort.getConnections();if(n.each(function(t,e){e.getTarget().setValue()}),0===n.getSize()){var i=parseFloat(this.earlyEndLabel.getText());this.setLateFinish(i)}},getEarlyEnd:function(){return this.getEarlyStart()+this.mementoValues.duration},getEarlyStart:function(){var t=0;return this.inputPort.getConnections().each(function(e,n){var i=n.getSource().getActivity();t=Math.max(t,i.getEarlyEnd())}),t},setLateFinish:function(t){var e=t-this.mementoValues.duration;this.lateEndLabel.setText(t),this.lateStartLabel.setText(e),this.stackLabel.setText(e-parseFloat(this.earlyStartLabel.getText())),this.inputPort.getConnections().each(function(t,n){n.getSource().getActivity().setLateFinish(e)})},createLabel:function(t){var e=new r.default.shape.basic.Label({text:t});return e.setStroke(1),e.setColor(this.darkerBgColor),e.setRadius(0),e.setBackgroundColor(null),e.setPadding(5),e.setColor(this.bgColor.darker(.2)),e.onDoubleClick=function(t){},e},setBackgroundColor:function(t){this._super(t),this.lighterBgColor=this.bgColor.lighter(.2).hash(),this.darkerBgColor=this.bgColor.darker(.2).hash()},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},this.getAlpha()<.9?t.fill=this.bgColor.hash():t.fill=["90",this.bgColor.hash(),this.lighterBgColor].join("-"),this._super(t))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.pert.Start=r.default.shape.layout.VerticalLayout.extend({NAME:"draw2d.shape.pert.Start",init:function(t,e,n){var i=this;this.mementoValues={duration:null},this.bgColor=new r.default.util.Color("#f3f3f3"),this.lighterBgColor=this.bgColor.lighter(.2).hash(),this.darkerBgColor=this.bgColor.darker(.2).hash(),this._super(extend({bgColor:this.bgColor,stroke:2,radius:2,color:this.darkerBgColor},t),e,n);var a=new r.default.shape.layout.HorizontalLayout({stroke:0});this.durationLabel=new r.default.shape.basic.Label({text:"Duration",stroke:1,color:this.darkerBgColor,radius:0,bgColor:null,padding:5}),this.durationLabel.installEditor(new r.default.ui.LabelEditor({text:"Enter new duration",onCommit:function(t){i.setDuration(parseFloat(t))}})),this.earlyEndLabel=this.createLabel({text:"Early End",stroke:0}),a.add(this.durationLabel),a.add(this.earlyEndLabel),this.activityLabel=new r.default.shape.basic.Label({text:"Start",radius:0,padding:10,color:this.darkerBgColor,bgColor:null}),this.activityLabel.installEditor(new r.default.ui.LabelInplaceEditor),this.outputPort=this.activityLabel.createPort("output"),this.outputPort.getActivity=function(){return i},this.outputPort.onConnect=function(){i.setDuration(i.mementoValues.duration)},this.outputPort.onDisconnect=function(){i.setDuration(i.mementoValues.duration)};var o=this.createLabel(" ");o.setPadding(10),o.setStroke(0),this.lateEndLabel=o,this.add(a),this.add(this.activityLabel),this.add(o),this.setDuration(1)},setDuration:function(t){this.mementoValues.duration!==t&&(this.mementoValues.duration=t,this.durationLabel.setText(this.mementoValues.duration)),this.earlyEndLabel.setText(this.mementoValues.duration);var e=this.outputPort.getConnections();if(e.each(function(t,e){e.getTarget().setValue()}),0===e.getSize()){var n=parseFloat(this.earlyEndLabel.getText());this.setLateFinish(n)}},getEarlyEnd:function(){return this.mementoValues.duration},setLateFinish:function(t){this.mementoValues.duration;this.lateEndLabel.setText(t)},createLabel:function(t){var e=new r.default.shape.basic.Label({text:t});return e.setStroke(1),e.setColor(this.darkerBgColor),e.setRadius(0),e.setBackgroundColor(null),e.setPadding(5),e.setColor(this.bgColor.darker(.2)),e.onDoubleClick=function(t){},e},setBackgroundColor:function(t){this._super(t),this.lighterBgColor=this.bgColor.lighter(.2).hash(),this.darkerBgColor=this.bgColor.darker(.2).hash()},repaint:function(t){!0!==this.repaintBlocked&&null!==this.shape&&(t=t||{},this.getAlpha()<.9?t.fill=this.bgColor.hash():t.fill=["90",this.bgColor.hash(),this.lighterBgColor].join("-"),this._super(t))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.state.Start=r.default.shape.basic.Circle.extend({NAME:"draw2d.shape.state.Start",DEFAULT_COLOR:new r.default.util.Color("#3369E8"),init:function(t,e,n){this._super(t,e,n),this.port=this.createPort("output",new r.default.layout.locator.BottomLocator),this.port.setConnectionAnchor(new r.default.layout.anchor.ShortesPathConnectionAnchor(this.port)),this.setDimension(50,50),this.setBackgroundColor(this.DEFAULT_COLOR),this.installEditPolicy(new r.default.policy.figure.AntSelectionFeedbackPolicy),this.setStroke(0);var i=new r.default.shape.basic.Label({text:"START"});i.setStroke(0),i.setFontColor("#ffffff"),i.setFontFamily('"Open Sans",sans-serif'),this.add(i,new r.default.layout.locator.CenterLocator)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.state.End=r.default.shape.basic.Circle.extend({NAME:"draw2d.shape.state.End",DEFAULT_COLOR:new r.default.util.Color("#4D90FE"),init:function(t,e,n){this.innerCircle=new r.default.shape.basic.Circle(20),this._super(t,e,n),this.port=this.createPort("input",new r.default.layout.locator.TopLocator),this.port.setConnectionAnchor(new r.default.layout.anchor.ShortesPathConnectionAnchor(this.port)),this.setDimension(50,50),this.setBackgroundColor(this.DEFAULT_COLOR),this.installEditPolicy(new r.default.policy.figure.AntSelectionFeedbackPolicy),this.innerCircle.setStroke(2),this.innerCircle.setBackgroundColor(null),this.add(this.innerCircle,new r.default.layout.locator.CenterLocator),this.setStroke(0)},setDimension:function(t,e){this._super(t,e),this.innerCircle.setDimension(this.getWidth()-10,this.getHeight()-10)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.state.State=r.default.shape.layout.VerticalLayout.extend({NAME:"draw2d.shape.state.State",init:function(t,e,n){this._super(t,e,n),this.port=this.createPort("hybrid",new r.default.layout.locator.BottomLocator),this.port.setConnectionAnchor(new r.default.layout.anchor.ChopboxConnectionAnchor(this.port)),this.setBackgroundColor("#f3f3f3"),this.setStroke(1),this.setColor("#e0e0e0"),this.setRadius(5);var i=this.createLabel("State").setStroke(0);this.label=i;var a=new r.default.shape.basic.Rectangle;a.getHeight=function(){return 1},a.setMinWidth(90),a.setColor("#e0e0e0");var o=new r.default.shape.basic.Rectangle;o.setMinHeight(30),o.setStroke(0),o.setBackgroundColor(null),this.add(i),this.add(a),this.add(o)},setLabel:function(t){return this.label.setText(t),this.fireEvent("change:label",{value:t}),this},getLabel:function(){return this.label.getText()},createLabel:function(t){var e=new r.default.shape.basic.Label(t);return e.setStroke(1),e.setColor(this.darkerBgColor),e.setRadius(0),e.setBackgroundColor(null),e.setPadding(5),e.setColor(this.bgColor.darker(.2)),e.onDoubleClick=function(t){},e},getPersistentAttributes:function(){return extend(this._super(),{label:this.getLabel()})},setPersistentAttributes:function(t){this._super(t),void 0!==t.label&&this.setLabel(t.label)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.shape.state.Connection=r.default.Connection.extend({NAME:"draw2d.shape.state.Connection",DEFAULT_COLOR:new r.default.util.Color("#4D90FE"),init:function(t,e,n){this._super(extend({router:null,stroke:2},t),e,n),this.setTargetDecorator(new r.default.decoration.connection.ArrowDecorator(17,8)),this.label=new r.default.shape.basic.Label({text:"label"}),this.label.setStroke(1),this.label.setPadding(2),this.label.setBackgroundColor("#f0f0f0"),this.add(this.label,new r.default.layout.locator.ParallelMidpointLocator)},setLabel:function(t){return this.label.setText(t),this.label.setVisible(!(null===t||""===t)),this.fireEvent("change:label",{value:t}),this},getLabel:function(){return this.label.getText()},getPersistentAttributes:function(){return extend(this._super(),{label:this.getLabel()})},setPersistentAttributes:function(t){this._super(t),void 0!==t.label&&this.setLabel(t.label)}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.ui.LabelEditor=Class.extend({NAME:"draw2d.ui.LabelEditor",init:function(t){this.configuration=extend({onCommit:function(){},onCancel:function(){},text:"Value"},t)},start:function(t){var e=prompt(this.configuration.text,t.getText());if(e){var n=new r.default.command.CommandAttr(t,{text:e});t.getCanvas().getCommandStack().execute(n),this.configuration.onCommit(t.getText())}else this.configuration.onCancel()}})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(446);i(o);a.default.ui.LabelInplaceEditor=a.default.ui.LabelEditor.extend({NAME:"draw2d.ui.LabelInplaceEditor",init:function(t){this._super(),this.listener=extend({onCommit:function(){},onCancel:function(){}},t)},start:function(t){var e=this;this.label=t,this.commitCallback=this.commit.bind(this),$("body").bind("click",this.commitCallback),this.html=$('<input id="inplaceeditor">'),this.html.val(t.getText()),this.html.hide(),$("body").append(this.html),this.html.autoResize(),this.html.bind("keyup",function(t){switch(t.which){case 13:this.commit();break;case 27:this.cancel()}}.bind(this)),this.html.bind("blur",this.commitCallback),this.html.bind("click",function(t){t.stopPropagation(),t.preventDefault()});var n=this.label.getCanvas(),i=this.label.getBoundingBox();i.setPosition(n.fromCanvasToDocumentCoordinate(i.x,i.y)),n.getScrollArea().is($("body"))&&i.translate(n.getScrollLeft(),n.getScrollTop()),i.translate(-1,-1),i.resize(2,2),this.html.css({position:"absolute",top:i.y,left:i.x,"min-width":i.w*(1/n.getZoom()),height:Math.max(25,i.h*(1/n.getZoom()))}),this.html.fadeIn(function(){e.html.focus()})},commit:function(){var t=this;this.html.unbind("blur",this.commitCallback),$("body").unbind("click",this.commitCallback);var e=this.html.val(),n=new a.default.command.CommandAttr(this.label,{text:e});this.label.getCanvas().getCommandStack().execute(n),this.html.fadeOut(function(){t.html.remove(),t.html=null,t.listener.onCommit(t.label.getText())})},cancel:function(){var t=this;this.html.unbind("blur",this.commitCallback),$("body").unbind("click",this.commitCallback),this.html.fadeOut(function(){t.html.remove(),t.html=null,t.listener.onCancel()})}})},function(t,e,n){"use strict";!function(t){function e(i){return this.filter(e.resizableFilterSelector).each(function(){new n(t(this),i)}),this}function n(n,i){n.data("AutoResizer")&&n.data("AutoResizer").destroy(),i=this.config=t.extend({},e.defaults,i),this.el=n,this.nodeName=n[0].nodeName.toLowerCase(),this.originalHeight=n.height(),this.previousScrollTop=null,this.value=n.val(),"original"===i.maxWidth&&(i.maxWidth=n.width()),"original"===i.minWidth&&(i.minWidth=n.width()),"original"===i.maxHeight&&(i.maxHeight=n.height()),"original"===i.minHeight&&(i.minHeight=n.height()),"textarea"===this.nodeName&&n.css({resize:"none",overflowY:"hidden"}),n.data("AutoResizer",this),i.animate.complete=function(t){return function(){return i.onAfterResize.call(n),t.apply(this,arguments)}}(i.animate.complete),this.bind()}var i="ar"+ +new Date;e.defaults={onResize:function(){},onBeforeResize:function(){return 123},onAfterResize:function(){return 555},animate:{duration:200,complete:function(){}},extraSpace:50,minHeight:"original",maxHeight:500,minWidth:"original",maxWidth:500};e.cloneCSSProperties=["lineHeight","textDecoration","letterSpacing","fontSize","fontFamily","fontStyle","fontWeight","textTransform","textAlign","direction","wordSpacing","fontSizeAdjust","paddingTop","paddingLeft","paddingBottom","paddingRight","width"],e.cloneCSSValues={position:"absolute",top:-9999,left:-9999,opacity:0,overflow:"hidden"},e.resizableFilterSelector=["textarea:not(textarea."+i+")","input:not(input[type])","input[type=text]","input[type=password]","input[type=email]","input[type=url]"].join(","),e.AutoResizer=n,t.fn.autoResize=e,n.prototype={bind:function(){var e=t.proxy(function(){return this.check(),!0},this);this.unbind(),this.el.bind("keyup.autoResize",e).bind("change.autoResize",e).bind("paste.autoResize",function(){setTimeout(function(){e()},0)}),this.el.is(":hidden")||this.check(null,!0)},unbind:function(){this.el.unbind(".autoResize")},createClone:function(){var n=this.el,r="textarea"===this.nodeName?n.clone():t("<span/>");this.clone=r,t.each(e.cloneCSSProperties,function(t,e){r[0].style[e]=n.css(e)}),r.removeAttr("name").removeAttr("id").addClass(i).attr("tabIndex",-1).css(e.cloneCSSValues),"textarea"===this.nodeName?r.height("auto"):r.width("auto").css({whiteSpace:"nowrap"})},check:function(t,e){this.clone||(this.createClone(),this.injectClone());var n=this.config,i=this.clone,r=this.el,a=r.val();if(a===this.prevValue)return!0;if(this.prevValue=a,"input"===this.nodeName){i.text(a);var o=i.width(),s=o+n.extraSpace>=n.minWidth?o+n.extraSpace:n.minWidth,c=r.width();return void(((s=Math.min(s,n.maxWidth))<c&&s>=n.minWidth||s>=n.minWidth&&s<=n.maxWidth)&&(n.onBeforeResize.call(r),n.onResize.call(r),r.scrollLeft(0),n.animate&&!e?r.stop(1,1).animate({width:s},n.animate):(r.width(s),n.onAfterResize.call(r))))}i.width(r.width()).height(0).val(a).scrollTop(1e4);var l=i[0].scrollTop;if(a){if(this.previousScrollTop===l)return;this.previousScrollTop=l,l+n.extraSpace>=n.maxHeight?(r.css("overflowY",""),l=n.maxHeight,e=!0):l+n.extraSpace<=n.minHeight?l=n.minHeight:(r.css("overflowY","hidden"),l+=n.extraSpace)}else l=n.minHeight,this.previousScrollTop=null;n.onBeforeResize.call(r),n.onResize.call(r),n.animate&&!e?r.stop(1,1).animate({height:l},n.animate):(r.height(l),n.onAfterResize.call(r))},destroy:function(){this.unbind(),this.el.removeData("AutoResizer"),this.clone.remove(),delete this.el,delete this.clone},injectClone:function(){(e.cloneContainer||(e.cloneContainer=t("<arclones/>").appendTo("body"))).append(this.clone)}}}(jQuery)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),a=i(r),o=n(5),s=i(o);a.default.decoration.connection.Decorator=Class.extend({NAME:"draw2d.decoration.connection.Decorator",init:function(t,e){this.width=void 0===t||t<1?20:t,this.height=void 0===e||e<1?15:e,this.color=new s.default(0,0,0),this.backgroundColor=new s.default(250,250,250)},paint:function(t){},setColor:function(t){return this.color=new s.default(t),this},setBackgroundColor:function(t){return this.backgroundColor=new s.default(t),this},setDimension:function(t,e){return this.width=t,this.height=e,this}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.decoration.connection.ArrowDecorator=r.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.ArrowDecorator",init:function(t,e){this._super(t,e)},paint:function(t){var e=t.set();return e.push(t.path(["M0 0","L",this.width," ",-this.height/2,"L",this.width," ",this.height/2,"L0 0"].join(""))),e.attr({fill:this.backgroundColor.hash(),stroke:this.color.hash()}),e}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.decoration.connection.DiamondDecorator=r.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.DiamondDecorator",init:function(t,e){this._super(t,e)},paint:function(t){var e=t.set();return e.push(t.path(["M",this.width/2," ",-this.height/2,"L",this.width," ",0,"L",this.width/2," ",this.height/2,"L",0," ",0,"L",this.width/2," ",-this.height/2,"Z"].join(""))),e.attr({fill:this.backgroundColor.hash(),stroke:this.color.hash()}),e}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.decoration.connection.CircleDecorator=r.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.CircleDecorator",init:function(t,e){this._super(t,e)},paint:function(t){var e=t.set();return e.push(t.circle(0,0,this.width/2)),e.attr({fill:this.backgroundColor.hash(),stroke:this.color.hash()}),e}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.decoration.connection.BarDecorator=r.default.decoration.connection.Decorator.extend({NAME:"draw2d.decoration.connection.BarDecorator",init:function(t,e){this._super(t,e)},paint:function(t){var e=t.set(),n=["M",this.width/2," ",-this.height/2];return n.push("L",this.width/2," ",this.height/2),e.push(t.path(n.join(""))),e.attr({fill:this.backgroundColor.hash(),stroke:this.color.hash()}),e}})},function(t,e,n){"use strict";var i=n(0);(function(t){return t&&t.__esModule?t:{default:t}})(i).default.io.Reader=Class.extend({init:function(){},unmarshal:function(t,e){}})},function(t,e,n){"use strict";var i=n(0);(function(t){return t&&t.__esModule?t:{default:t}})(i).default.io.Writer=Class.extend({init:function(){},marshal:function(t,e){if("function"!=typeof e)throw"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.";e("","")},formatXml:function(t){var e="",n=new RegExp("(>)(<)(/*)","g");t=t.replace(n,"$1\r\n$2$3");var i=0;return t.split("\r\n").forEach(function(t){var n=0;t.match(new RegExp(".+</w[^>]*>$"))?n=0:t.match(new RegExp("^</w"))?0!=i&&(i-=1):n=t.match(new RegExp("^<w[^>]*[^/]>.*$"))?1:0;for(var r="",a=0;a<i;a++)r+="  ";e+=r+t+"\r\n",i+=n}),e}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.io.svg.Writer=r.default.io.Writer.extend({init:function(){this._super()},marshal:function(t,e){if("function"!=typeof e)throw"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.";var n=t.getPrimarySelection();t.setCurrentSelection(null);var i=t.getHtmlContainer().html().replace(/>\s+/g,">").replace(/\s+</g,"<");i=this.formatXml(i),i=i.replace(/<desc>.*<\/desc>/g,"<desc>Create with draw2d JS graph library and RaphaelJS</desc>"),t.setCurrentSelection(n),e(i,r.default.util.Base64.encode(i))}})},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i),a=n(456);r.default.io.png.Writer=r.default.io.Writer.extend({init:function(){this._super()},marshal:function(t,e,n){if("function"!=typeof e)throw"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.";var i="";if(t instanceof r.default.Figure){var o=t.getPosition();t.setPosition(1,1),i='<svg xmlns:xlink="http://www.w3.org/1999/xlink" >'+t.shape.node.outerHTML+"</svg>",t.setPosition(o),t.initialWidth=t.getWidth()+2,t.initialHeight=t.getHeight()+2}else t.hideDecoration(),i=t.getHtmlContainer().html().replace(/>\s+/g,">").replace(/\s+</g,"<"),-1===i.indexOf("http://www.w3.org/1999/xlink")&&(i=i.replace("<svg ",'<svg xmlns:xlink="http://www.w3.org/1999/xlink" '));document.all&&(i=i.replace(/xmlns=\"http:\/\/www\.w3\.org\/2000\/svg\"/,""));var s=$('<canvas id="canvas_png_export_for_draw2d" style="display:none"></canvas>');$("body").append(s);var c=$("#canvas_png_export_for_draw2d")[0];c.width=t.initialWidth,c.height=t.initialHeight,a("canvas_png_export_for_draw2d",i,{ignoreMouse:!0,ignoreAnimation:!0,renderCallback:function(){try{if(t instanceof r.default.Canvas&&t.showDecoration(),void 0!==n){var i=n.x,a=n.y,o=n.w,l=n.h,u=document.createElement("canvas");u.width=o,u.height=l,u.getContext("2d").drawImage(c,i,a,o,l,0,0,o,l);var h=u.toDataURL("image/png"),d=h.replace("data:image/png;base64,","");e(h,d)}else{var f=c.toDataURL("image/png");e(f,f.replace("data:image/png;base64,",""))}}finally{s.remove()}}})}})},function(t,e,n){"use strict";function i(t,e,n){if(null!=t||null!=e||null!=n){"string"==typeof t&&(t=document.getElementById(t)),null!=t.svg&&t.svg.stop();var r=o(n||{});1==t.childNodes.length&&"OBJECT"==t.childNodes[0].nodeName||(t.svg=r);var a=t.getContext("2d");void 0!==e.documentElement?r.loadXmlDoc(a,e):"<"==e.substr(0,1)?r.loadXml(a,e):r.load(a,e)}else for(var s=document.querySelectorAll("svg"),c=0;c<s.length;c++){var l=s[c],u=document.createElement("canvas");u.width=l.clientWidth,u.height=l.clientHeight,l.parentNode.insertBefore(u,l),l.parentNode.removeChild(l);var h=document.createElement("div");h.appendChild(l),i(u,h.innerHTML)}}function r(){var t;return void 0!==Element.prototype.matches?t=function(t,e){return t.matches(e)}:void 0!==Element.prototype.webkitMatchesSelector?t=function(t,e){return t.webkitMatchesSelector(e)}:void 0!==Element.prototype.mozMatchesSelector?t=function(t,e){return t.mozMatchesSelector(e)}:void 0!==Element.prototype.msMatchesSelector?t=function(t,e){return t.msMatchesSelector(e)}:void 0!==Element.prototype.oMatchesSelector?t=function(t,e){return t.oMatchesSelector(e)}:("function"!=typeof jQuery&&"function"!=typeof Zepto||(t=function(t,e){return $(t).is(e)}),void 0===t&&(t=Sizzle.matchesSelector)),t}function a(t){var e=[0,0,0],n=/(\[[^\]]+\])/g,i=/(#[^\s\+>~\.\[:]+)/g,r=/(\.[^\s\+>~\.\[:]+)/g,a=/(::[^\s\+>~\.\[:]+|:first-line|:first-letter|:before|:after)/gi,o=/(:[\w-]+\([^\)]*\))/gi,s=/(:[^\s\+>~\.\[:]+)/g,c=/([^\s\+>~\.\[:]+)/g,l=function(n,i){var r=t.match(n);null!=r&&(e[i]+=r.length,t=t.replace(n," "))};return t=t.replace(/:not\(([^\)]*)\)/g,"     $1 "),t=t.replace(/{[^]*/gm," "),l(n,1),l(i,0),l(r,1),l(a,2),l(o,1),l(s,1),t=t.replace(/[\*\s\+>~]/g," "),t=t.replace(/[#\.]/g," "),l(c,2),e.join("")}function o(t){var e={opts:t},n=r();"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.drawSvg=function(t,e,n,r,a,o){var s={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:e,offsetY:n,scaleWidth:r,scaleHeight:a};for(var c in o)o.hasOwnProperty(c)&&(s[c]=o[c]);i(this.canvas,t,s)}),e.FRAMERATE=30,e.MAX_VIRTUAL_PIXELS=3e4,e.log=function(t){},1==e.opts.log&&"undefined"!=typeof console&&(e.log=function(t){console.log(t)}),e.init=function(t){var n=0;e.UniqueId=function(){return"canvg"+ ++n},e.Definitions={},e.Styles={},e.StylesSpecificity={},e.Animations=[],e.Images=[],e.ctx=t,e.ViewPort=new function(){this.viewPorts=[],this.Clear=function(){this.viewPorts=[]},this.SetCurrent=function(t,e){this.viewPorts.push({width:t,height:e})},this.RemoveCurrent=function(){this.viewPorts.pop()},this.Current=function(){return this.viewPorts[this.viewPorts.length-1]},this.width=function(){return this.Current().width},this.height=function(){return this.Current().height},this.ComputeSize=function(t){return null!=t&&"number"==typeof t?t:"x"==t?this.width():"y"==t?this.height():Math.sqrt(Math.pow(this.width(),2)+Math.pow(this.height(),2))/Math.sqrt(2)}}},e.init(),e.ImagesLoaded=function(){for(var t=0;t<e.Images.length;t++)if(!e.Images[t].loaded)return!1;return!0},e.trim=function(t){return t.replace(/^\s+|\s+$/g,"")},e.compressSpaces=function(t){return t.replace(/[\s\r\t\n]+/gm," ")},e.ajax=function(t){var e;return e=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),e?(e.open("GET",t,!1),e.send(null),e.responseText):null},e.parseXml=function(t){if("undefined"!=typeof Windows&&void 0!==Windows.Data&&void 0!==Windows.Data.Xml){var e=new Windows.Data.Xml.Dom.XmlDocument,n=new Windows.Data.Xml.Dom.XmlLoadSettings;return n.prohibitDtd=!1,e.loadXml(t,n),e}if(window.DOMParser){return(new DOMParser).parseFromString(t,"text/xml")}t=t.replace(/<!DOCTYPE svg[^>]*>/,"");var e=new ActiveXObject("Microsoft.XMLDOM");return e.async="false",e.loadXML(t),e},e.Property=function(t,e){this.name=t,this.value=e},e.Property.prototype.getValue=function(){return this.value},e.Property.prototype.hasValue=function(){return null!=this.value&&""!=this.value},e.Property.prototype.numValue=function(){if(!this.hasValue())return 0;var t=parseFloat(this.value);return(this.value+"").match(/%$/)&&(t/=100),t},e.Property.prototype.valueOrDefault=function(t){return this.hasValue()?this.value:t},e.Property.prototype.numValueOrDefault=function(t){return this.hasValue()?this.numValue():t},e.Property.prototype.addOpacity=function(t){var n=this.value;if(null!=t.value&&""!=t.value&&"string"==typeof this.value){var i=new s(this.value);i.ok&&(n="rgba("+i.r+", "+i.g+", "+i.b+", "+t.numValue()+")")}return new e.Property(this.name,n)},e.Property.prototype.getDefinition=function(){var t=this.value.match(/#([^\)'"]+)/);return t&&(t=t[1]),t||(t=this.value),e.Definitions[t]},e.Property.prototype.isUrlDefinition=function(){return 0==this.value.indexOf("url(")},e.Property.prototype.getFillStyleDefinition=function(t,n){var i=this.getDefinition();if(null!=i&&i.createGradient)return i.createGradient(e.ctx,t,n);if(null!=i&&i.createPattern){if(i.getHrefAttribute().hasValue()){var r=i.attribute("patternTransform");i=i.getHrefAttribute().getDefinition(),r.hasValue()&&(i.attribute("patternTransform",!0).value=r.value)}return i.createPattern(e.ctx,t)}return null},e.Property.prototype.getDPI=function(t){return 96},e.Property.prototype.getEM=function(t){var n=12,i=new e.Property("fontSize",e.Font.Parse(e.ctx.font).fontSize);return i.hasValue()&&(n=i.toPixels(t)),n},e.Property.prototype.getUnits=function(){return(this.value+"").replace(/[0-9\.\-]/g,"")},e.Property.prototype.toPixels=function(t,n){if(!this.hasValue())return 0;var i=this.value+"";if(i.match(/em$/))return this.numValue()*this.getEM(t);if(i.match(/ex$/))return this.numValue()*this.getEM(t)/2;if(i.match(/px$/))return this.numValue();if(i.match(/pt$/))return this.numValue()*this.getDPI(t)*(1/72);if(i.match(/pc$/))return 15*this.numValue();if(i.match(/cm$/))return this.numValue()*this.getDPI(t)/2.54;if(i.match(/mm$/))return this.numValue()*this.getDPI(t)/25.4;if(i.match(/in$/))return this.numValue()*this.getDPI(t);if(i.match(/%$/))return this.numValue()*e.ViewPort.ComputeSize(t);var r=this.numValue();return n&&r<1?r*e.ViewPort.ComputeSize(t):r},e.Property.prototype.toMilliseconds=function(){if(!this.hasValue())return 0;var t=this.value+"";return t.match(/s$/)?1e3*this.numValue():(t.match(/ms$/),this.numValue())},e.Property.prototype.toRadians=function(){if(!this.hasValue())return 0;var t=this.value+"";return t.match(/deg$/)?this.numValue()*(Math.PI/180):t.match(/grad$/)?this.numValue()*(Math.PI/200):t.match(/rad$/)?this.numValue():this.numValue()*(Math.PI/180)};var o={baseline:"alphabetic","before-edge":"top","text-before-edge":"top",middle:"middle",central:"middle","after-edge":"bottom","text-after-edge":"bottom",ideographic:"ideographic",alphabetic:"alphabetic",hanging:"hanging",mathematical:"alphabetic"};return e.Property.prototype.toTextBaseline=function(){return this.hasValue()?o[this.value]:null},e.Font=new function(){this.Styles="normal|italic|oblique|inherit",this.Variants="normal|small-caps|inherit",this.Weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit",this.CreateFont=function(t,n,i,r,a,o){var s=null!=o?this.Parse(o):this.CreateFont("","","","","",e.ctx.font);return{fontFamily:a||s.fontFamily,fontSize:r||s.fontSize,fontStyle:t||s.fontStyle,fontWeight:i||s.fontWeight,fontVariant:n||s.fontVariant,toString:function(){return[this.fontStyle,this.fontVariant,this.fontWeight,this.fontSize,this.fontFamily].join(" ")}}};var t=this;this.Parse=function(n){for(var i={},r=e.trim(e.compressSpaces(n||"")).split(" "),a={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1},o="",s=0;s<r.length;s++)a.fontStyle||-1==t.Styles.indexOf(r[s])?a.fontVariant||-1==t.Variants.indexOf(r[s])?a.fontWeight||-1==t.Weights.indexOf(r[s])?a.fontSize?"inherit"!=r[s]&&(o+=r[s]):("inherit"!=r[s]&&(i.fontSize=r[s].split("/")[0]),a.fontStyle=a.fontVariant=a.fontWeight=a.fontSize=!0):("inherit"!=r[s]&&(i.fontWeight=r[s]),a.fontStyle=a.fontVariant=a.fontWeight=!0):("inherit"!=r[s]&&(i.fontVariant=r[s]),a.fontStyle=a.fontVariant=!0):("inherit"!=r[s]&&(i.fontStyle=r[s]),a.fontStyle=!0);return""!=o&&(i.fontFamily=o),i}},e.ToNumberArray=function(t){for(var n=e.trim(e.compressSpaces((t||"").replace(/,/g," "))).split(" "),i=0;i<n.length;i++)n[i]=parseFloat(n[i]);return n},e.Point=function(t,e){this.x=t,this.y=e},e.Point.prototype.angleTo=function(t){return Math.atan2(t.y-this.y,t.x-this.x)},e.Point.prototype.applyTransform=function(t){var e=this.x*t[0]+this.y*t[2]+t[4],n=this.x*t[1]+this.y*t[3]+t[5];this.x=e,this.y=n},e.CreatePoint=function(t){var n=e.ToNumberArray(t);return new e.Point(n[0],n[1])},e.CreatePath=function(t){for(var n=e.ToNumberArray(t),i=[],r=0;r<n.length;r+=2)i.push(new e.Point(n[r],n[r+1]));return i},e.BoundingBox=function(t,e,n,i){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN,this.x=function(){return this.x1},this.y=function(){return this.y1},this.width=function(){return this.x2-this.x1},this.height=function(){return this.y2-this.y1},this.addPoint=function(t,e){null!=t&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=t,this.x2=t),t<this.x1&&(this.x1=t),t>this.x2&&(this.x2=t)),null!=e&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=e,this.y2=e),e<this.y1&&(this.y1=e),e>this.y2&&(this.y2=e))},this.addX=function(t){this.addPoint(t,null)},this.addY=function(t){this.addPoint(null,t)},this.addBoundingBox=function(t){this.addPoint(t.x1,t.y1),this.addPoint(t.x2,t.y2)},this.addQuadraticCurve=function(t,e,n,i,r,a){var o=t+2/3*(n-t),s=e+2/3*(i-e),c=o+1/3*(r-t),l=s+1/3*(a-e);this.addBezierCurve(t,e,o,c,s,l,r,a)},this.addBezierCurve=function(t,e,n,i,r,a,o,s){var c=[t,e],l=[n,i],u=[r,a],h=[o,s];this.addPoint(c[0],c[1]),this.addPoint(h[0],h[1]);for(var d=0;d<=1;d++){var f=function(t){return Math.pow(1-t,3)*c[d]+3*Math.pow(1-t,2)*t*l[d]+3*(1-t)*Math.pow(t,2)*u[d]+Math.pow(t,3)*h[d]},p=6*c[d]-12*l[d]+6*u[d],g=-3*c[d]+9*l[d]-9*u[d]+3*h[d],m=3*l[d]-3*c[d];if(0!=g){var v=Math.pow(p,2)-4*m*g;if(!(v<0)){var y=(-p+Math.sqrt(v))/(2*g);0<y&&y<1&&(0==d&&this.addX(f(y)),1==d&&this.addY(f(y)));var x=(-p-Math.sqrt(v))/(2*g);0<x&&x<1&&(0==d&&this.addX(f(x)),1==d&&this.addY(f(x)))}}else{if(0==p)continue;var b=-m/p;0<b&&b<1&&(0==d&&this.addX(f(b)),1==d&&this.addY(f(b)))}}},this.isPointInBox=function(t,e){return this.x1<=t&&t<=this.x2&&this.y1<=e&&e<=this.y2},this.addPoint(t,e),this.addPoint(n,i)},e.Transform=function(t){var n=this;this.Type={},this.Type.translate=function(t){this.p=e.CreatePoint(t),this.apply=function(t){t.translate(this.p.x||0,this.p.y||0)},this.unapply=function(t){t.translate(-1*this.p.x||0,-1*this.p.y||0)},this.applyToPoint=function(t){t.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0])}},this.Type.rotate=function(t){var n=e.ToNumberArray(t);this.angle=new e.Property("angle",n[0]),this.cx=n[1]||0,this.cy=n[2]||0,this.apply=function(t){t.translate(this.cx,this.cy),t.rotate(this.angle.toRadians()),t.translate(-this.cx,-this.cy)},this.unapply=function(t){t.translate(this.cx,this.cy),t.rotate(-1*this.angle.toRadians()),t.translate(-this.cx,-this.cy)},this.applyToPoint=function(t){var e=this.angle.toRadians();t.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0]),t.applyTransform([Math.cos(e),Math.sin(e),-Math.sin(e),Math.cos(e),0,0]),t.applyTransform([1,0,0,1,-this.p.x||0,-this.p.y||0])}},this.Type.scale=function(t){this.p=e.CreatePoint(t),this.apply=function(t){t.scale(this.p.x||1,this.p.y||this.p.x||1)},this.unapply=function(t){t.scale(1/this.p.x||1,1/this.p.y||this.p.x||1)},this.applyToPoint=function(t){t.applyTransform([this.p.x||0,0,0,this.p.y||0,0,0])}},this.Type.matrix=function(t){this.m=e.ToNumberArray(t),this.apply=function(t){t.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},this.unapply=function(t){var e=this.m[0],n=this.m[2],i=this.m[4],r=this.m[1],a=this.m[3],o=this.m[5],s=1/(e*(1*a-0*o)-n*(1*r-0*o)+i*(0*r-0*a));t.transform(s*(1*a-0*o),s*(0*o-1*r),s*(0*i-1*n),s*(1*e-0*i),s*(n*o-i*a),s*(i*r-e*o))},this.applyToPoint=function(t){t.applyTransform(this.m)}},this.Type.SkewBase=function(t){this.base=n.Type.matrix,this.base(t),this.angle=new e.Property("angle",t)},this.Type.SkewBase.prototype=new this.Type.matrix,this.Type.skewX=function(t){this.base=n.Type.SkewBase,this.base(t),this.m=[1,0,Math.tan(this.angle.toRadians()),1,0,0]},this.Type.skewX.prototype=new this.Type.SkewBase,this.Type.skewY=function(t){this.base=n.Type.SkewBase,this.base(t),this.m=[1,Math.tan(this.angle.toRadians()),0,1,0,0]},this.Type.skewY.prototype=new this.Type.SkewBase,this.transforms=[],this.apply=function(t){for(var e=0;e<this.transforms.length;e++)this.transforms[e].apply(t)},this.unapply=function(t){for(var e=this.transforms.length-1;e>=0;e--)this.transforms[e].unapply(t)},this.applyToPoint=function(t){for(var e=0;e<this.transforms.length;e++)this.transforms[e].applyToPoint(t)};for(var i=e.trim(e.compressSpaces(t)).replace(/\)([a-zA-Z])/g,") $1").replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/),r=0;r<i.length;r++){var a=e.trim(i[r].split("(")[0]),o=i[r].split("(")[1].replace(")",""),s=this.Type[a];if(void 0!==s){var c=new s(o);c.type=a,this.transforms.push(c)}}},e.AspectRatio=function(t,n,i,r,a,o,s,c,l,u){n=e.compressSpaces(n),n=n.replace(/^defer\s/,"");var h=n.split(" ")[0]||"xMidYMid",d=n.split(" ")[1]||"meet",f=i/r,p=a/o,g=Math.min(f,p),m=Math.max(f,p);"meet"==d&&(r*=g,o*=g),"slice"==d&&(r*=m,o*=m),l=new e.Property("refX",l),u=new e.Property("refY",u),l.hasValue()&&u.hasValue()?t.translate(-g*l.toPixels("x"),-g*u.toPixels("y")):(h.match(/^xMid/)&&("meet"==d&&g==p||"slice"==d&&m==p)&&t.translate(i/2-r/2,0),h.match(/YMid$/)&&("meet"==d&&g==f||"slice"==d&&m==f)&&t.translate(0,a/2-o/2),h.match(/^xMax/)&&("meet"==d&&g==p||"slice"==d&&m==p)&&t.translate(i-r,0),h.match(/YMax$/)&&("meet"==d&&g==f||"slice"==d&&m==f)&&t.translate(0,a-o)),"none"==h?t.scale(f,p):"meet"==d?t.scale(g,g):"slice"==d&&t.scale(m,m),t.translate(null==s?0:-s,null==c?0:-c)},e.Element={},e.EmptyProperty=new e.Property("EMPTY",""),e.Element.ElementBase=function(t){if(this.attributes={},this.styles={},this.stylesSpecificity={},this.children=[],this.attribute=function(t,n){var i=this.attributes[t];return null!=i?i:(1==n&&(i=new e.Property(t,""),this.attributes[t]=i),i||e.EmptyProperty)},this.getHrefAttribute=function(){for(var t in this.attributes)if("href"==t||t.match(/:href$/))return this.attributes[t];return e.EmptyProperty},this.style=function(t,n,i){var r=this.styles[t];if(null!=r)return r;var a=this.attribute(t);if(null!=a&&a.hasValue())return this.styles[t]=a,a;if(1!=i){var o=this.parent;if(null!=o){var s=o.style(t);if(null!=s&&s.hasValue())return s}}return 1==n&&(r=new e.Property(t,""),this.styles[t]=r),r||e.EmptyProperty},this.render=function(t){if("none"!=this.style("display").value&&"hidden"!=this.style("visibility").value){if(t.save(),this.style("mask").hasValue()){var e=this.style("mask").getDefinition();null!=e&&e.apply(t,this)}else if(this.style("filter").hasValue()){var n=this.style("filter").getDefinition();null!=n&&n.apply(t,this)}else this.setContext(t),this.renderChildren(t),this.clearContext(t);t.restore()}},this.setContext=function(t){},this.clearContext=function(t){},this.renderChildren=function(t){for(var e=0;e<this.children.length;e++)this.children[e].render(t)},this.addChild=function(t,n){var i=t;n&&(i=e.CreateElement(t)),i.parent=this,"title"!=i.type&&this.children.push(i)},this.addStylesFromStyleDefinition=function(){for(var i in e.Styles)if("@"!=i[0]&&n(t,i)){var r=e.Styles[i],a=e.StylesSpecificity[i];if(null!=r)for(var o in r){var s=this.stylesSpecificity[o];void 0===s&&(s="000"),a>s&&(this.styles[o]=r[o],this.stylesSpecificity[o]=a)}}},null!=t&&1==t.nodeType){for(var i=0;i<t.attributes.length;i++){var r=t.attributes[i];this.attributes[r.nodeName]=new e.Property(r.nodeName,r.value)}if(this.addStylesFromStyleDefinition(),this.attribute("style").hasValue())for(var a=this.attribute("style").value.split(";"),i=0;i<a.length;i++)if(""!=e.trim(a[i])){var o=a[i].split(":"),s=e.trim(o[0]),c=e.trim(o[1]);this.styles[s]=new e.Property(s,c)}this.attribute("id").hasValue()&&null==e.Definitions[this.attribute("id").value]&&(e.Definitions[this.attribute("id").value]=this);for(var i=0;i<t.childNodes.length;i++){var l=t.childNodes[i];if(1==l.nodeType&&this.addChild(l,!0),this.captureTextNodes&&(3==l.nodeType||4==l.nodeType)){var u=l.value||l.text||l.textContent||"";""!=e.compressSpaces(u)&&this.addChild(new e.Element.tspan(l),!1)}}}},e.Element.RenderedElementBase=function(t){this.base=e.Element.ElementBase,this.base(t),this.setContext=function(t){if(this.style("fill").isUrlDefinition()){var n=this.style("fill").getFillStyleDefinition(this,this.style("fill-opacity"));null!=n&&(t.fillStyle=n)}else if(this.style("fill").hasValue()){var i=this.style("fill");"currentColor"==i.value&&(i.value=this.style("color").value),"inherit"!=i.value&&(t.fillStyle="none"==i.value?"rgba(0,0,0,0)":i.value)}if(this.style("fill-opacity").hasValue()){var i=new e.Property("fill",t.fillStyle);i=i.addOpacity(this.style("fill-opacity")),t.fillStyle=i.value}if(this.style("stroke").isUrlDefinition()){var n=this.style("stroke").getFillStyleDefinition(this,this.style("stroke-opacity"));null!=n&&(t.strokeStyle=n)}else if(this.style("stroke").hasValue()){var r=this.style("stroke");"currentColor"==r.value&&(r.value=this.style("color").value),"inherit"!=r.value&&(t.strokeStyle="none"==r.value?"rgba(0,0,0,0)":r.value)}if(this.style("stroke-opacity").hasValue()){var r=new e.Property("stroke",t.strokeStyle);r=r.addOpacity(this.style("stroke-opacity")),t.strokeStyle=r.value}if(this.style("stroke-width").hasValue()){var a=this.style("stroke-width").toPixels();t.lineWidth=0==a?.001:a}if(this.style("stroke-linecap").hasValue()&&(t.lineCap=this.style("stroke-linecap").value),this.style("stroke-linejoin").hasValue()&&(t.lineJoin=this.style("stroke-linejoin").value),this.style("stroke-miterlimit").hasValue()&&(t.miterLimit=this.style("stroke-miterlimit").value),this.style("stroke-dasharray").hasValue()&&"none"!=this.style("stroke-dasharray").value){var o=e.ToNumberArray(this.style("stroke-dasharray").value);void 0!==t.setLineDash?t.setLineDash(o):void 0!==t.webkitLineDash?t.webkitLineDash=o:void 0===t.mozDash||1==o.length&&0==o[0]||(t.mozDash=o);var s=this.style("stroke-dashoffset").numValueOrDefault(1);void 0!==t.lineDashOffset?t.lineDashOffset=s:void 0!==t.webkitLineDashOffset?t.webkitLineDashOffset=s:void 0!==t.mozDashOffset&&(t.mozDashOffset=s)}if(void 0!==t.font&&(t.font=e.Font.CreateFont(this.style("font-style").value,this.style("font-variant").value,this.style("font-weight").value,this.style("font-size").hasValue()?this.style("font-size").toPixels()+"px":"",this.style("font-family").value).toString()),this.style("transform",!1,!0).hasValue()){new e.Transform(this.style("transform",!1,!0).value).apply(t)}if(this.style("clip-path",!1,!0).hasValue()){var c=this.style("clip-path",!1,!0).getDefinition();null!=c&&c.apply(t)}this.style("opacity").hasValue()&&(t.globalAlpha=this.style("opacity").numValue())}},e.Element.RenderedElementBase.prototype=new e.Element.ElementBase,e.Element.PathElementBase=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.path=function(t){return null!=t&&t.beginPath(),new e.BoundingBox},this.renderChildren=function(t){this.path(t),e.Mouse.checkPath(this,t),""!=t.fillStyle&&("inherit"!=this.style("fill-rule").valueOrDefault("inherit")?t.fill(this.style("fill-rule").value):t.fill()),""!=t.strokeStyle&&t.stroke();var n=this.getMarkers();if(null!=n){if(this.style("marker-start").isUrlDefinition()){var i=this.style("marker-start").getDefinition();i.render(t,n[0][0],n[0][1])}if(this.style("marker-mid").isUrlDefinition())for(var i=this.style("marker-mid").getDefinition(),r=1;r<n.length-1;r++)i.render(t,n[r][0],n[r][1]);if(this.style("marker-end").isUrlDefinition()){var i=this.style("marker-end").getDefinition();i.render(t,n[n.length-1][0],n[n.length-1][1])}}},this.getBoundingBox=function(){return this.path()},this.getMarkers=function(){return null}},e.Element.PathElementBase.prototype=new e.Element.RenderedElementBase,e.Element.svg=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.baseClearContext=this.clearContext,this.clearContext=function(t){this.baseClearContext(t),e.ViewPort.RemoveCurrent()},this.baseSetContext=this.setContext,this.setContext=function(t){t.strokeStyle="rgba(0,0,0,0)",t.lineCap="butt",t.lineJoin="miter",t.miterLimit=4,void 0!==t.font&&void 0!==window.getComputedStyle&&(t.font=window.getComputedStyle(t.canvas).getPropertyValue("font")),this.baseSetContext(t),this.attribute("x").hasValue()||(this.attribute("x",!0).value=0),this.attribute("y").hasValue()||(this.attribute("y",!0).value=0),t.translate(this.attribute("x").toPixels("x"),this.attribute("y").toPixels("y"));var n=e.ViewPort.width(),i=e.ViewPort.height();if(this.attribute("width").hasValue()||(this.attribute("width",!0).value="100%"),this.attribute("height").hasValue()||(this.attribute("height",!0).value="100%"),void 0===this.root){n=this.attribute("width").toPixels("x"),i=this.attribute("height").toPixels("y");var r=0,a=0;this.attribute("refX").hasValue()&&this.attribute("refY").hasValue()&&(r=-this.attribute("refX").toPixels("x"),a=-this.attribute("refY").toPixels("y")),"visible"!=this.attribute("overflow").valueOrDefault("hidden")&&(t.beginPath(),t.moveTo(r,a),t.lineTo(n,a),t.lineTo(n,i),t.lineTo(r,i),t.closePath(),t.clip())}if(e.ViewPort.SetCurrent(n,i),this.attribute("viewBox").hasValue()){var o=e.ToNumberArray(this.attribute("viewBox").value),s=o[0],c=o[1];n=o[2],i=o[3],e.AspectRatio(t,this.attribute("preserveAspectRatio").value,e.ViewPort.width(),n,e.ViewPort.height(),i,s,c,this.attribute("refX").value,this.attribute("refY").value),e.ViewPort.RemoveCurrent(),e.ViewPort.SetCurrent(o[2],o[3])}}},e.Element.svg.prototype=new e.Element.RenderedElementBase,e.Element.rect=function(t){this.base=e.Element.PathElementBase,this.base(t),this.path=function(t){var n=this.attribute("x").toPixels("x"),i=this.attribute("y").toPixels("y"),r=this.attribute("width").toPixels("x"),a=this.attribute("height").toPixels("y"),o=this.attribute("rx").toPixels("x"),s=this.attribute("ry").toPixels("y");return this.attribute("rx").hasValue()&&!this.attribute("ry").hasValue()&&(s=o),this.attribute("ry").hasValue()&&!this.attribute("rx").hasValue()&&(o=s),o=Math.min(o,r/2),s=Math.min(s,a/2),null!=t&&(t.beginPath(),t.moveTo(n+o,i),t.lineTo(n+r-o,i),t.quadraticCurveTo(n+r,i,n+r,i+s),t.lineTo(n+r,i+a-s),t.quadraticCurveTo(n+r,i+a,n+r-o,i+a),t.lineTo(n+o,i+a),t.quadraticCurveTo(n,i+a,n,i+a-s),t.lineTo(n,i+s),t.quadraticCurveTo(n,i,n+o,i),t.closePath()),new e.BoundingBox(n,i,n+r,i+a)}},e.Element.rect.prototype=new e.Element.PathElementBase,e.Element.circle=function(t){this.base=e.Element.PathElementBase,this.base(t),this.path=function(t){var n=this.attribute("cx").toPixels("x"),i=this.attribute("cy").toPixels("y"),r=this.attribute("r").toPixels();return null!=t&&(t.beginPath(),t.arc(n,i,r,0,2*Math.PI,!0),t.closePath()),new e.BoundingBox(n-r,i-r,n+r,i+r)}},e.Element.circle.prototype=new e.Element.PathElementBase,e.Element.ellipse=function(t){this.base=e.Element.PathElementBase,this.base(t),this.path=function(t){var n=(Math.sqrt(2)-1)/3*4,i=this.attribute("rx").toPixels("x"),r=this.attribute("ry").toPixels("y"),a=this.attribute("cx").toPixels("x"),o=this.attribute("cy").toPixels("y");return null!=t&&(t.beginPath(),t.moveTo(a,o-r),t.bezierCurveTo(a+n*i,o-r,a+i,o-n*r,a+i,o),t.bezierCurveTo(a+i,o+n*r,a+n*i,o+r,a,o+r),t.bezierCurveTo(a-n*i,o+r,a-i,o+n*r,a-i,o),t.bezierCurveTo(a-i,o-n*r,a-n*i,o-r,a,o-r),t.closePath()),new e.BoundingBox(a-i,o-r,a+i,o+r)}},e.Element.ellipse.prototype=new e.Element.PathElementBase,e.Element.line=function(t){this.base=e.Element.PathElementBase,this.base(t),this.getPoints=function(){return[new e.Point(this.attribute("x1").toPixels("x"),this.attribute("y1").toPixels("y")),new e.Point(this.attribute("x2").toPixels("x"),this.attribute("y2").toPixels("y"))]},this.path=function(t){var n=this.getPoints();return null!=t&&(t.beginPath(),t.moveTo(n[0].x,n[0].y),t.lineTo(n[1].x,n[1].y)),new e.BoundingBox(n[0].x,n[0].y,n[1].x,n[1].y)},this.getMarkers=function(){var t=this.getPoints(),e=t[0].angleTo(t[1]);return[[t[0],e],[t[1],e]]}},e.Element.line.prototype=new e.Element.PathElementBase,e.Element.polyline=function(t){this.base=e.Element.PathElementBase,this.base(t),this.points=e.CreatePath(this.attribute("points").value),this.path=function(t){var n=new e.BoundingBox(this.points[0].x,this.points[0].y);null!=t&&(t.beginPath(),t.moveTo(this.points[0].x,this.points[0].y));for(var i=1;i<this.points.length;i++)n.addPoint(this.points[i].x,this.points[i].y),null!=t&&t.lineTo(this.points[i].x,this.points[i].y);return n},this.getMarkers=function(){for(var t=[],e=0;e<this.points.length-1;e++)t.push([this.points[e],this.points[e].angleTo(this.points[e+1])]);return t.length>0&&t.push([this.points[this.points.length-1],t[t.length-1][1]]),t}},e.Element.polyline.prototype=new e.Element.PathElementBase,e.Element.polygon=function(t){this.base=e.Element.polyline,this.base(t),this.basePath=this.path,this.path=function(t){var e=this.basePath(t);return null!=t&&(t.lineTo(this.points[0].x,this.points[0].y),t.closePath()),e}},e.Element.polygon.prototype=new e.Element.polyline,e.Element.path=function(t){this.base=e.Element.PathElementBase,this.base(t);var n=this.attribute("d").value;n=n.replace(/,/gm," ");for(var i=0;i<2;i++)n=n.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm,"$1 $2");n=n.replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2"),n=n.replace(/([0-9])([+\-])/gm,"$1 $2");for(var i=0;i<2;i++)n=n.replace(/(\.[0-9]*)(\.)/gm,"$1 $2");n=n.replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm,"$1 $3 $4 "),n=e.compressSpaces(n),n=e.trim(n),this.PathParser=new function(t){this.tokens=t.split(" "),this.reset=function(){this.i=-1,this.command="",this.previousCommand="",this.start=new e.Point(0,0),this.control=new e.Point(0,0),this.current=new e.Point(0,0),this.points=[],this.angles=[]},this.isEnd=function(){return this.i>=this.tokens.length-1},this.isCommandOrEnd=function(){return!!this.isEnd()||null!=this.tokens[this.i+1].match(/^[A-Za-z]$/)},this.isRelativeCommand=function(){switch(this.command){case"m":case"l":case"h":case"v":case"c":case"s":case"q":case"t":case"a":case"z":return!0}return!1},this.getToken=function(){return this.i++,this.tokens[this.i]},this.getScalar=function(){return parseFloat(this.getToken())},this.nextCommand=function(){this.previousCommand=this.command,this.command=this.getToken()},this.getPoint=function(){var t=new e.Point(this.getScalar(),this.getScalar());return this.makeAbsolute(t)},this.getAsControlPoint=function(){var t=this.getPoint();return this.control=t,t},this.getAsCurrentPoint=function(){var t=this.getPoint();return this.current=t,t},this.getReflectedControlPoint=function(){return"c"!=this.previousCommand.toLowerCase()&&"s"!=this.previousCommand.toLowerCase()&&"q"!=this.previousCommand.toLowerCase()&&"t"!=this.previousCommand.toLowerCase()?this.current:new e.Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)},this.makeAbsolute=function(t){return this.isRelativeCommand()&&(t.x+=this.current.x,t.y+=this.current.y),t},this.addMarker=function(t,e,n){null!=n&&this.angles.length>0&&null==this.angles[this.angles.length-1]&&(this.angles[this.angles.length-1]=this.points[this.points.length-1].angleTo(n)),this.addMarkerAngle(t,null==e?null:e.angleTo(t))},this.addMarkerAngle=function(t,e){this.points.push(t),this.angles.push(e)},this.getMarkerPoints=function(){return this.points},this.getMarkerAngles=function(){for(var t=0;t<this.angles.length;t++)if(null==this.angles[t])for(var e=t+1;e<this.angles.length;e++)if(null!=this.angles[e]){this.angles[t]=this.angles[e];break}return this.angles}}(n),this.path=function(t){var n=this.PathParser;n.reset();var i=new e.BoundingBox;for(null!=t&&t.beginPath();!n.isEnd();)switch(n.nextCommand(),n.command){case"M":case"m":var r=n.getAsCurrentPoint();for(n.addMarker(r),i.addPoint(r.x,r.y),null!=t&&t.moveTo(r.x,r.y),n.start=n.current;!n.isCommandOrEnd();){var r=n.getAsCurrentPoint();n.addMarker(r,n.start),i.addPoint(r.x,r.y),null!=t&&t.lineTo(r.x,r.y)}break;case"L":case"l":for(;!n.isCommandOrEnd();){var a=n.current,r=n.getAsCurrentPoint();n.addMarker(r,a),i.addPoint(r.x,r.y),null!=t&&t.lineTo(r.x,r.y)}break;case"H":case"h":for(;!n.isCommandOrEnd();){var o=new e.Point((n.isRelativeCommand()?n.current.x:0)+n.getScalar(),n.current.y);n.addMarker(o,n.current),n.current=o,i.addPoint(n.current.x,n.current.y),null!=t&&t.lineTo(n.current.x,n.current.y)}break;case"V":case"v":for(;!n.isCommandOrEnd();){var o=new e.Point(n.current.x,(n.isRelativeCommand()?n.current.y:0)+n.getScalar());n.addMarker(o,n.current),n.current=o,i.addPoint(n.current.x,n.current.y),null!=t&&t.lineTo(n.current.x,n.current.y)}break;case"C":case"c":for(;!n.isCommandOrEnd();){var s=n.current,c=n.getPoint(),l=n.getAsControlPoint(),u=n.getAsCurrentPoint();n.addMarker(u,l,c),i.addBezierCurve(s.x,s.y,c.x,c.y,l.x,l.y,u.x,u.y),null!=t&&t.bezierCurveTo(c.x,c.y,l.x,l.y,u.x,u.y)}break;case"S":case"s":for(;!n.isCommandOrEnd();){var s=n.current,c=n.getReflectedControlPoint(),l=n.getAsControlPoint(),u=n.getAsCurrentPoint();n.addMarker(u,l,c),i.addBezierCurve(s.x,s.y,c.x,c.y,l.x,l.y,u.x,u.y),null!=t&&t.bezierCurveTo(c.x,c.y,l.x,l.y,u.x,u.y)}break;case"Q":case"q":for(;!n.isCommandOrEnd();){var s=n.current,l=n.getAsControlPoint(),u=n.getAsCurrentPoint();n.addMarker(u,l,l),i.addQuadraticCurve(s.x,s.y,l.x,l.y,u.x,u.y),null!=t&&t.quadraticCurveTo(l.x,l.y,u.x,u.y)}break;case"T":case"t":for(;!n.isCommandOrEnd();){var s=n.current,l=n.getReflectedControlPoint();n.control=l;var u=n.getAsCurrentPoint();n.addMarker(u,l,l),i.addQuadraticCurve(s.x,s.y,l.x,l.y,u.x,u.y),null!=t&&t.quadraticCurveTo(l.x,l.y,u.x,u.y)}break;case"A":case"a":for(;!n.isCommandOrEnd();){var s=n.current,h=n.getScalar(),d=n.getScalar(),f=n.getScalar()*(Math.PI/180),p=n.getScalar(),g=n.getScalar(),u=n.getAsCurrentPoint(),m=new e.Point(Math.cos(f)*(s.x-u.x)/2+Math.sin(f)*(s.y-u.y)/2,-Math.sin(f)*(s.x-u.x)/2+Math.cos(f)*(s.y-u.y)/2),v=Math.pow(m.x,2)/Math.pow(h,2)+Math.pow(m.y,2)/Math.pow(d,2);v>1&&(h*=Math.sqrt(v),d*=Math.sqrt(v));var y=(p==g?-1:1)*Math.sqrt((Math.pow(h,2)*Math.pow(d,2)-Math.pow(h,2)*Math.pow(m.y,2)-Math.pow(d,2)*Math.pow(m.x,2))/(Math.pow(h,2)*Math.pow(m.y,2)+Math.pow(d,2)*Math.pow(m.x,2)));isNaN(y)&&(y=0);var x=new e.Point(y*h*m.y/d,y*-d*m.x/h),b=new e.Point((s.x+u.x)/2+Math.cos(f)*x.x-Math.sin(f)*x.y,(s.y+u.y)/2+Math.sin(f)*x.x+Math.cos(f)*x.y),w=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2))},C=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(w(t)*w(e))},_=function(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(C(t,e))},M=_([1,0],[(m.x-x.x)/h,(m.y-x.y)/d]),S=[(m.x-x.x)/h,(m.y-x.y)/d],E=[(-m.x-x.x)/h,(-m.y-x.y)/d],P=_(S,E);C(S,E)<=-1&&(P=Math.PI),C(S,E)>=1&&(P=0);var k=1-g?1:-1,A=M+k*(P/2),R=new e.Point(b.x+h*Math.cos(A),b.y+d*Math.sin(A));if(n.addMarkerAngle(R,A-k*Math.PI/2),n.addMarkerAngle(u,A-k*Math.PI),i.addPoint(u.x,u.y),null!=t){var C=h>d?h:d,D=h>d?1:h/d,T=h>d?d/h:1;t.translate(b.x,b.y),t.rotate(f),t.scale(D,T),t.arc(0,0,C,M,M+P,1-g),t.scale(1/D,1/T),t.rotate(-f),t.translate(-b.x,-b.y)}}break;case"Z":case"z":null!=t&&t.closePath(),n.current=n.start}return i},this.getMarkers=function(){for(var t=this.PathParser.getMarkerPoints(),e=this.PathParser.getMarkerAngles(),n=[],i=0;i<t.length;i++)n.push([t[i],e[i]]);return n}},e.Element.path.prototype=new e.Element.PathElementBase,e.Element.pattern=function(t){this.base=e.Element.ElementBase,this.base(t),this.createPattern=function(t,n){var i=this.attribute("width").toPixels("x",!0),r=this.attribute("height").toPixels("y",!0),a=new e.Element.svg;a.attributes.viewBox=new e.Property("viewBox",this.attribute("viewBox").value),a.attributes.width=new e.Property("width",i+"px"),a.attributes.height=new e.Property("height",r+"px"),a.attributes.transform=new e.Property("transform",this.attribute("patternTransform").value),a.children=this.children;var o=document.createElement("canvas");o.width=i,o.height=r;var s=o.getContext("2d");this.attribute("x").hasValue()&&this.attribute("y").hasValue()&&s.translate(this.attribute("x").toPixels("x",!0),this.attribute("y").toPixels("y",!0));for(var c=-1;c<=1;c++)for(var l=-1;l<=1;l++)s.save(),a.attributes.x=new e.Property("x",c*o.width),a.attributes.y=new e.Property("y",l*o.height),a.render(s),s.restore();return t.createPattern(o,"repeat")}},e.Element.pattern.prototype=new e.Element.ElementBase,e.Element.marker=function(t){this.base=e.Element.ElementBase,this.base(t),this.baseRender=this.render,this.render=function(t,n,i){t.translate(n.x,n.y),"auto"==this.attribute("orient").valueOrDefault("auto")&&t.rotate(i),"strokeWidth"==this.attribute("markerUnits").valueOrDefault("strokeWidth")&&t.scale(t.lineWidth,t.lineWidth),t.save();var r=new e.Element.svg;r.attributes.viewBox=new e.Property("viewBox",this.attribute("viewBox").value),r.attributes.refX=new e.Property("refX",this.attribute("refX").value),r.attributes.refY=new e.Property("refY",this.attribute("refY").value),r.attributes.width=new e.Property("width",this.attribute("markerWidth").value),r.attributes.height=new e.Property("height",this.attribute("markerHeight").value),r.attributes.fill=new e.Property("fill",this.attribute("fill").valueOrDefault("black")),r.attributes.stroke=new e.Property("stroke",this.attribute("stroke").valueOrDefault("none")),r.children=this.children,r.render(t),t.restore(),"strokeWidth"==this.attribute("markerUnits").valueOrDefault("strokeWidth")&&t.scale(1/t.lineWidth,1/t.lineWidth),"auto"==this.attribute("orient").valueOrDefault("auto")&&t.rotate(-i),t.translate(-n.x,-n.y)}},e.Element.marker.prototype=new e.Element.ElementBase,e.Element.defs=function(t){this.base=e.Element.ElementBase,this.base(t),this.render=function(t){}},e.Element.defs.prototype=new e.Element.ElementBase,e.Element.GradientBase=function(t){this.base=e.Element.ElementBase,this.base(t),this.stops=[];for(var n=0;n<this.children.length;n++){var i=this.children[n];"stop"==i.type&&this.stops.push(i)}this.getGradient=function(){},this.gradientUnits=function(){return this.attribute("gradientUnits").valueOrDefault("objectBoundingBox")},this.attributesToInherit=["gradientUnits"],this.inheritStopContainer=function(t){for(var e=0;e<this.attributesToInherit.length;e++){var n=this.attributesToInherit[e];!this.attribute(n).hasValue()&&t.attribute(n).hasValue()&&(this.attribute(n,!0).value=t.attribute(n).value)}},this.createGradient=function(t,n,i){var r=this;this.getHrefAttribute().hasValue()&&(r=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(r));var a=function(t){if(i.hasValue()){return new e.Property("color",t).addOpacity(i).value}return t},o=this.getGradient(t,n);if(null==o)return a(r.stops[r.stops.length-1].color);for(var s=0;s<r.stops.length;s++)o.addColorStop(r.stops[s].offset,a(r.stops[s].color));if(this.attribute("gradientTransform").hasValue()){var c=e.ViewPort.viewPorts[0],l=new e.Element.rect;l.attributes.x=new e.Property("x",-e.MAX_VIRTUAL_PIXELS/3),l.attributes.y=new e.Property("y",-e.MAX_VIRTUAL_PIXELS/3),l.attributes.width=new e.Property("width",e.MAX_VIRTUAL_PIXELS),l.attributes.height=new e.Property("height",e.MAX_VIRTUAL_PIXELS);var u=new e.Element.g;u.attributes.transform=new e.Property("transform",this.attribute("gradientTransform").value),u.children=[l];var h=new e.Element.svg;h.attributes.x=new e.Property("x",0),h.attributes.y=new e.Property("y",0),h.attributes.width=new e.Property("width",c.width),h.attributes.height=new e.Property("height",c.height),h.children=[u];var d=document.createElement("canvas");d.width=c.width,d.height=c.height;var f=d.getContext("2d");return f.fillStyle=o,h.render(f),f.createPattern(d,"no-repeat")}return o}},e.Element.GradientBase.prototype=new e.Element.ElementBase,e.Element.linearGradient=function(t){this.base=e.Element.GradientBase,this.base(t),this.attributesToInherit.push("x1"),this.attributesToInherit.push("y1"),this.attributesToInherit.push("x2"),this.attributesToInherit.push("y2"),this.getGradient=function(t,e){var n="objectBoundingBox"==this.gradientUnits()?e.getBoundingBox():null;this.attribute("x1").hasValue()||this.attribute("y1").hasValue()||this.attribute("x2").hasValue()||this.attribute("y2").hasValue()||(this.attribute("x1",!0).value=0,this.attribute("y1",!0).value=0,this.attribute("x2",!0).value=1,this.attribute("y2",!0).value=0);var i="objectBoundingBox"==this.gradientUnits()?n.x()+n.width()*this.attribute("x1").numValue():this.attribute("x1").toPixels("x"),r="objectBoundingBox"==this.gradientUnits()?n.y()+n.height()*this.attribute("y1").numValue():this.attribute("y1").toPixels("y"),a="objectBoundingBox"==this.gradientUnits()?n.x()+n.width()*this.attribute("x2").numValue():this.attribute("x2").toPixels("x"),o="objectBoundingBox"==this.gradientUnits()?n.y()+n.height()*this.attribute("y2").numValue():this.attribute("y2").toPixels("y");return i==a&&r==o?null:t.createLinearGradient(i,r,a,o)}},e.Element.linearGradient.prototype=new e.Element.GradientBase,e.Element.radialGradient=function(t){this.base=e.Element.GradientBase,this.base(t),this.attributesToInherit.push("cx"),this.attributesToInherit.push("cy"),this.attributesToInherit.push("r"),this.attributesToInherit.push("fx"),this.attributesToInherit.push("fy"),this.getGradient=function(t,e){var n=e.getBoundingBox();this.attribute("cx").hasValue()||(this.attribute("cx",!0).value="50%"),this.attribute("cy").hasValue()||(this.attribute("cy",!0).value="50%"),this.attribute("r").hasValue()||(this.attribute("r",!0).value="50%");var i="objectBoundingBox"==this.gradientUnits()?n.x()+n.width()*this.attribute("cx").numValue():this.attribute("cx").toPixels("x"),r="objectBoundingBox"==this.gradientUnits()?n.y()+n.height()*this.attribute("cy").numValue():this.attribute("cy").toPixels("y"),a=i,o=r;this.attribute("fx").hasValue()&&(a="objectBoundingBox"==this.gradientUnits()?n.x()+n.width()*this.attribute("fx").numValue():this.attribute("fx").toPixels("x")),this.attribute("fy").hasValue()&&(o="objectBoundingBox"==this.gradientUnits()?n.y()+n.height()*this.attribute("fy").numValue():this.attribute("fy").toPixels("y"));var s="objectBoundingBox"==this.gradientUnits()?(n.width()+n.height())/2*this.attribute("r").numValue():this.attribute("r").toPixels();return t.createRadialGradient(a,o,0,i,r,s)}},e.Element.radialGradient.prototype=new e.Element.GradientBase,e.Element.stop=function(t){this.base=e.Element.ElementBase,this.base(t),this.offset=this.attribute("offset").numValue(),this.offset<0&&(this.offset=0),this.offset>1&&(this.offset=1);var n=this.style("stop-color",!0);""==n.value&&(n.value="#000"),this.style("stop-opacity").hasValue()&&(n=n.addOpacity(this.style("stop-opacity"))),this.color=n.value},e.Element.stop.prototype=new e.Element.ElementBase,e.Element.AnimateBase=function(t){this.base=e.Element.ElementBase,this.base(t),e.Animations.push(this),this.duration=0,this.begin=this.attribute("begin").toMilliseconds(),this.maxDuration=this.begin+this.attribute("dur").toMilliseconds(),this.getProperty=function(){var t=this.attribute("attributeType").value,e=this.attribute("attributeName").value;return"CSS"==t?this.parent.style(e,!0):this.parent.attribute(e,!0)},this.initialValue=null,this.initialUnits="",this.removed=!1,this.calcValue=function(){return""},this.update=function(t){if(null==this.initialValue&&(this.initialValue=this.getProperty().value,this.initialUnits=this.getProperty().getUnits()),this.duration>this.maxDuration){if("indefinite"==this.attribute("repeatCount").value||"indefinite"==this.attribute("repeatDur").value)this.duration=0;else if("freeze"!=this.attribute("fill").valueOrDefault("remove")||this.frozen){if("remove"==this.attribute("fill").valueOrDefault("remove")&&!this.removed)return this.removed=!0,this.getProperty().value=this.parent.animationFrozen?this.parent.animationFrozenValue:this.initialValue,!0}else this.frozen=!0,this.parent.animationFrozen=!0,this.parent.animationFrozenValue=this.getProperty().value;return!1}this.duration=this.duration+t;var e=!1;if(this.begin<this.duration){var n=this.calcValue();if(this.attribute("type").hasValue()){n=this.attribute("type").value+"("+n+")"}this.getProperty().value=n,e=!0}return e},this.from=this.attribute("from"),this.to=this.attribute("to"),this.values=this.attribute("values"),this.values.hasValue()&&(this.values.value=this.values.value.split(";")),this.progress=function(){var t={progress:(this.duration-this.begin)/(this.maxDuration-this.begin)};if(this.values.hasValue()){var n=t.progress*(this.values.value.length-1),i=Math.floor(n),r=Math.ceil(n);t.from=new e.Property("from",parseFloat(this.values.value[i])),t.to=new e.Property("to",parseFloat(this.values.value[r])),t.progress=(n-i)/(r-i)}else t.from=this.from,t.to=this.to;return t}},e.Element.AnimateBase.prototype=new e.Element.ElementBase,e.Element.animate=function(t){this.base=e.Element.AnimateBase,this.base(t),this.calcValue=function(){var t=this.progress();return t.from.numValue()+(t.to.numValue()-t.from.numValue())*t.progress+this.initialUnits}},e.Element.animate.prototype=new e.Element.AnimateBase,e.Element.animateColor=function(t){this.base=e.Element.AnimateBase,this.base(t),this.calcValue=function(){var t=this.progress(),e=new s(t.from.value),n=new s(t.to.value);if(e.ok&&n.ok){var i=e.r+(n.r-e.r)*t.progress,r=e.g+(n.g-e.g)*t.progress,a=e.b+(n.b-e.b)*t.progress;return"rgb("+parseInt(i,10)+","+parseInt(r,10)+","+parseInt(a,10)+")"}return this.attribute("from").value}},e.Element.animateColor.prototype=new e.Element.AnimateBase,e.Element.animateTransform=function(t){this.base=e.Element.AnimateBase,this.base(t),this.calcValue=function(){for(var t=this.progress(),n=e.ToNumberArray(t.from.value),i=e.ToNumberArray(t.to.value),r="",a=0;a<n.length;a++)r+=n[a]+(i[a]-n[a])*t.progress+" ";return r}},e.Element.animateTransform.prototype=new e.Element.animate,e.Element.font=function(t){this.base=e.Element.ElementBase,this.base(t),this.horizAdvX=this.attribute("horiz-adv-x").numValue(),this.isRTL=!1,this.isArabic=!1,this.fontFace=null,this.missingGlyph=null,this.glyphs=[];for(var n=0;n<this.children.length;n++){var i=this.children[n];"font-face"==i.type?(this.fontFace=i,i.style("font-family").hasValue()&&(e.Definitions[i.style("font-family").value]=this)):"missing-glyph"==i.type?this.missingGlyph=i:"glyph"==i.type&&(""!=i.arabicForm?(this.isRTL=!0,this.isArabic=!0,void 0===this.glyphs[i.unicode]&&(this.glyphs[i.unicode]=[]),this.glyphs[i.unicode][i.arabicForm]=i):this.glyphs[i.unicode]=i)}},e.Element.font.prototype=new e.Element.ElementBase,e.Element.fontface=function(t){this.base=e.Element.ElementBase,this.base(t),this.ascent=this.attribute("ascent").value,this.descent=this.attribute("descent").value,this.unitsPerEm=this.attribute("units-per-em").numValue()},e.Element.fontface.prototype=new e.Element.ElementBase,e.Element.missingglyph=function(t){this.base=e.Element.path,this.base(t),this.horizAdvX=0},e.Element.missingglyph.prototype=new e.Element.path,e.Element.glyph=function(t){this.base=e.Element.path,this.base(t),this.horizAdvX=this.attribute("horiz-adv-x").numValue(),this.unicode=this.attribute("unicode").value,this.arabicForm=this.attribute("arabic-form").value},e.Element.glyph.prototype=new e.Element.path,e.Element.text=function(t){this.captureTextNodes=!0,this.base=e.Element.RenderedElementBase,this.base(t),this.baseSetContext=this.setContext,this.setContext=function(t){this.baseSetContext(t);var e=this.style("dominant-baseline").toTextBaseline();null==e&&(e=this.style("alignment-baseline").toTextBaseline()),null!=e&&(t.textBaseline=e)},this.getBoundingBox=function(){var t=this.attribute("x").toPixels("x"),n=this.attribute("y").toPixels("y"),i=this.parent.style("font-size").numValueOrDefault(e.Font.Parse(e.ctx.font).fontSize);return new e.BoundingBox(t,n-i,t+Math.floor(2*i/3)*this.children[0].getText().length,n)},this.renderChildren=function(t){this.x=this.attribute("x").toPixels("x"),this.y=this.attribute("y").toPixels("y"),this.attribute("dx").hasValue()&&(this.x+=this.attribute("dx").toPixels("x")),this.attribute("dy").hasValue()&&(this.y+=this.attribute("dy").toPixels("y")),this.x+=this.getAnchorDelta(t,this,0);for(var e=0;e<this.children.length;e++)this.renderChild(t,this,this,e)},this.getAnchorDelta=function(t,e,n){var i=this.style("text-anchor").valueOrDefault("start");if("start"!=i){for(var r=0,a=n;a<e.children.length;a++){var o=e.children[a];if(a>n&&o.attribute("x").hasValue())break;r+=o.measureTextRecursive(t)}return-1*("end"==i?r:r/2)}return 0},this.renderChild=function(t,e,n,i){var r=n.children[i];r.attribute("x").hasValue()?(r.x=r.attribute("x").toPixels("x")+e.getAnchorDelta(t,n,i),r.attribute("dx").hasValue()&&(r.x+=r.attribute("dx").toPixels("x"))):(r.attribute("dx").hasValue()&&(e.x+=r.attribute("dx").toPixels("x")),r.x=e.x),e.x=r.x+r.measureText(t),r.attribute("y").hasValue()?(r.y=r.attribute("y").toPixels("y"),r.attribute("dy").hasValue()&&(r.y+=r.attribute("dy").toPixels("y"))):(r.attribute("dy").hasValue()&&(e.y+=r.attribute("dy").toPixels("y")),r.y=e.y),e.y=r.y,r.render(t);for(var i=0;i<r.children.length;i++)e.renderChild(t,e,r,i)}},e.Element.text.prototype=new e.Element.RenderedElementBase,e.Element.TextElementBase=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.getGlyph=function(t,e,n){var i=e[n],r=null;if(t.isArabic){var a="isolated";(0==n||" "==e[n-1])&&n<e.length-2&&" "!=e[n+1]&&(a="terminal"),n>0&&" "!=e[n-1]&&n<e.length-2&&" "!=e[n+1]&&(a="medial"),n>0&&" "!=e[n-1]&&(n==e.length-1||" "==e[n+1])&&(a="initial"),void 0!==t.glyphs[i]&&null==(r=t.glyphs[i][a])&&"glyph"==t.glyphs[i].type&&(r=t.glyphs[i])}else r=t.glyphs[i];return null==r&&(r=t.missingGlyph),r},this.renderChildren=function(t){var n=this.parent.style("font-family").getDefinition();if(null==n)""!=t.fillStyle&&t.fillText(e.compressSpaces(this.getText()),this.x,this.y),""!=t.strokeStyle&&t.strokeText(e.compressSpaces(this.getText()),this.x,this.y);else{var i=this.parent.style("font-size").numValueOrDefault(e.Font.Parse(e.ctx.font).fontSize),r=this.parent.style("font-style").valueOrDefault(e.Font.Parse(e.ctx.font).fontStyle),a=this.getText();n.isRTL&&(a=a.split("").reverse().join(""));for(var o=e.ToNumberArray(this.parent.attribute("dx").value),s=0;s<a.length;s++){var c=this.getGlyph(n,a,s),l=i/n.fontFace.unitsPerEm;t.translate(this.x,this.y),t.scale(l,-l);var u=t.lineWidth;t.lineWidth=t.lineWidth*n.fontFace.unitsPerEm/i,"italic"==r&&t.transform(1,0,.4,1,0,0),c.render(t),"italic"==r&&t.transform(1,0,-.4,1,0,0),t.lineWidth=u,t.scale(1/l,-1/l),t.translate(-this.x,-this.y),this.x+=i*(c.horizAdvX||n.horizAdvX)/n.fontFace.unitsPerEm,void 0===o[s]||isNaN(o[s])||(this.x+=o[s])}}},this.getText=function(){},this.measureTextRecursive=function(t){for(var e=this.measureText(t),n=0;n<this.children.length;n++)e+=this.children[n].measureTextRecursive(t);return e},this.measureText=function(t){var n=this.parent.style("font-family").getDefinition();if(null!=n){var i=this.parent.style("font-size").numValueOrDefault(e.Font.Parse(e.ctx.font).fontSize),r=0,a=this.getText();n.isRTL&&(a=a.split("").reverse().join(""));for(var o=e.ToNumberArray(this.parent.attribute("dx").value),s=0;s<a.length;s++){r+=(this.getGlyph(n,a,s).horizAdvX||n.horizAdvX)*i/n.fontFace.unitsPerEm,void 0===o[s]||isNaN(o[s])||(r+=o[s])}return r}var c=e.compressSpaces(this.getText());if(!t.measureText)return 10*c.length;t.save(),this.setContext(t);var l=t.measureText(c).width;return t.restore(),l}},e.Element.TextElementBase.prototype=new e.Element.RenderedElementBase,e.Element.tspan=function(t){this.captureTextNodes=!0,this.base=e.Element.TextElementBase,this.base(t),this.text=e.compressSpaces(t.value||t.text||t.textContent||""),this.getText=function(){return this.children.length>0?"":this.text}},e.Element.tspan.prototype=new e.Element.TextElementBase,e.Element.tref=function(t){this.base=e.Element.TextElementBase,this.base(t),this.getText=function(){var t=this.getHrefAttribute().getDefinition();if(null!=t)return t.children[0].getText()}},e.Element.tref.prototype=new e.Element.TextElementBase,e.Element.a=function(t){this.base=e.Element.TextElementBase,this.base(t),this.hasText=t.childNodes.length>0;for(var n=0;n<t.childNodes.length;n++)3!=t.childNodes[n].nodeType&&(this.hasText=!1);this.text=this.hasText?t.childNodes[0].value:"",this.getText=function(){return this.text},this.baseRenderChildren=this.renderChildren,this.renderChildren=function(t){if(this.hasText){this.baseRenderChildren(t);var n=new e.Property("fontSize",e.Font.Parse(e.ctx.font).fontSize);e.Mouse.checkBoundingBox(this,new e.BoundingBox(this.x,this.y-n.toPixels("y"),this.x+this.measureText(t),this.y))}else if(this.children.length>0){var i=new e.Element.g;i.children=this.children,i.parent=this,i.render(t)}},this.onclick=function(){window.open(this.getHrefAttribute().value)},this.onmousemove=function(){e.ctx.canvas.style.cursor="pointer"}},e.Element.a.prototype=new e.Element.TextElementBase,e.Element.image=function(t){this.base=e.Element.RenderedElementBase,this.base(t);var n=this.getHrefAttribute().value;if(""!=n){var i=n.match(/\.svg$/);if(e.Images.push(this),this.loaded=!1,i)this.img=e.ajax(n),this.loaded=!0;else{this.img=document.createElement("img"),1==e.opts.useCORS&&(this.img.crossOrigin="Anonymous");var r=this;this.img.onload=function(){r.loaded=!0},this.img.onerror=function(){e.log('ERROR: image "'+n+'" not found'),r.loaded=!0},this.img.src=n}this.renderChildren=function(t){var n=this.attribute("x").toPixels("x"),r=this.attribute("y").toPixels("y"),a=this.attribute("width").toPixels("x"),o=this.attribute("height").toPixels("y");0!=a&&0!=o&&(t.save(),i?t.drawSvg(this.img,n,r,a,o):(t.translate(n,r),e.AspectRatio(t,this.attribute("preserveAspectRatio").value,a,this.img.width,o,this.img.height,0,0),t.drawImage(this.img,0,0)),t.restore())},this.getBoundingBox=function(){var t=this.attribute("x").toPixels("x"),n=this.attribute("y").toPixels("y"),i=this.attribute("width").toPixels("x"),r=this.attribute("height").toPixels("y");return new e.BoundingBox(t,n,t+i,n+r)}}},e.Element.image.prototype=new e.Element.RenderedElementBase,e.Element.g=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.getBoundingBox=function(){for(var t=new e.BoundingBox,n=0;n<this.children.length;n++)t.addBoundingBox(this.children[n].getBoundingBox());return t}},e.Element.g.prototype=new e.Element.RenderedElementBase,e.Element.symbol=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.render=function(t){}},e.Element.symbol.prototype=new e.Element.RenderedElementBase,e.Element.style=function(t){this.base=e.Element.ElementBase,this.base(t);for(var n="",i=0;i<t.childNodes.length;i++)n+=t.childNodes[i].data;n=n.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,""),n=e.compressSpaces(n);for(var r=n.split("}"),i=0;i<r.length;i++)if(""!=e.trim(r[i]))for(var o=r[i].split("{"),s=o[0].split(","),c=o[1].split(";"),l=0;l<s.length;l++){var u=e.trim(s[l]);if(""!=u){for(var h=e.Styles[u]||{},d=0;d<c.length;d++){var f=c[d].indexOf(":"),p=c[d].substr(0,f),g=c[d].substr(f+1,c[d].length-f);null!=p&&null!=g&&(h[e.trim(p)]=new e.Property(e.trim(p),e.trim(g)))}if(e.Styles[u]=h,e.StylesSpecificity[u]=a(u),"@font-face"==u)for(var m=h["font-family"].value.replace(/"/g,""),v=h.src.value.split(","),y=0;y<v.length;y++)if(v[y].indexOf('format("svg")')>0)for(var x=v[y].indexOf("url"),b=v[y].indexOf(")",x),w=v[y].substr(x+5,b-x-6),C=e.parseXml(e.ajax(w)),_=C.getElementsByTagName("font"),M=0;M<_.length;M++){var S=e.CreateElement(_[M]);e.Definitions[m]=S}}}},e.Element.style.prototype=new e.Element.ElementBase,e.Element.use=function(t){this.base=e.Element.RenderedElementBase,this.base(t),this.baseSetContext=this.setContext,this.setContext=function(t){this.baseSetContext(t),this.attribute("x").hasValue()&&t.translate(this.attribute("x").toPixels("x"),0),this.attribute("y").hasValue()&&t.translate(0,this.attribute("y").toPixels("y"))};var n=this.getHrefAttribute().getDefinition();this.path=function(t){null!=n&&n.path(t)},this.getBoundingBox=function(){if(null!=n)return n.getBoundingBox()},this.renderChildren=function(t){if(null!=n){var i=n;"symbol"==n.type&&(i=new e.Element.svg,i.type="svg",i.attributes.viewBox=new e.Property("viewBox",n.attribute("viewBox").value),i.attributes.preserveAspectRatio=new e.Property("preserveAspectRatio",n.attribute("preserveAspectRatio").value),i.attributes.overflow=new e.Property("overflow",n.attribute("overflow").value),i.children=n.children),"svg"==i.type&&(this.attribute("width").hasValue()&&(i.attributes.width=new e.Property("width",this.attribute("width").value)),this.attribute("height").hasValue()&&(i.attributes.height=new e.Property("height",this.attribute("height").value)));var r=i.parent;i.parent=null,i.render(t),i.parent=r}}},e.Element.use.prototype=new e.Element.RenderedElementBase,e.Element.mask=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t,n){var i=this.attribute("x").toPixels("x"),r=this.attribute("y").toPixels("y"),a=this.attribute("width").toPixels("x"),o=this.attribute("height").toPixels("y");if(0==a&&0==o){for(var s=new e.BoundingBox,c=0;c<this.children.length;c++)s.addBoundingBox(this.children[c].getBoundingBox());var i=Math.floor(s.x1),r=Math.floor(s.y1),a=Math.floor(s.width()),o=Math.floor(s.height())}var l=n.attribute("mask").value;n.attribute("mask").value="";var u=document.createElement("canvas");u.width=i+a,u.height=r+o;var h=u.getContext("2d");this.renderChildren(h);var d=document.createElement("canvas");d.width=i+a,d.height=r+o;var f=d.getContext("2d");n.render(f),f.globalCompositeOperation="destination-in",f.fillStyle=h.createPattern(u,"no-repeat"),f.fillRect(0,0,i+a,r+o),t.fillStyle=f.createPattern(d,"no-repeat"),t.fillRect(0,0,i+a,r+o),n.attribute("mask").value=l},this.render=function(t){}},e.Element.mask.prototype=new e.Element.ElementBase,e.Element.clipPath=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t){var n=CanvasRenderingContext2D.prototype.beginPath;CanvasRenderingContext2D.prototype.beginPath=function(){};var i=CanvasRenderingContext2D.prototype.closePath;CanvasRenderingContext2D.prototype.closePath=function(){},n.call(t);for(var r=0;r<this.children.length;r++){var a=this.children[r];if(void 0!==a.path){var o=null;a.style("transform",!1,!0).hasValue()&&(o=new e.Transform(a.style("transform",!1,!0).value),o.apply(t)),a.path(t),CanvasRenderingContext2D.prototype.closePath=i,o&&o.unapply(t)}}i.call(t),t.clip(),CanvasRenderingContext2D.prototype.beginPath=n,CanvasRenderingContext2D.prototype.closePath=i},this.render=function(t){}},e.Element.clipPath.prototype=new e.Element.ElementBase,e.Element.filter=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t,e){var n=e.getBoundingBox(),i=Math.floor(n.x1),r=Math.floor(n.y1),a=Math.floor(n.width()),o=Math.floor(n.height()),s=e.style("filter").value;e.style("filter").value="";for(var c=0,l=0,u=0;u<this.children.length;u++){var h=this.children[u].extraFilterDistance||0;c=Math.max(c,h),l=Math.max(l,h)}var d=document.createElement("canvas");d.width=a+2*c,d.height=o+2*l;var f=d.getContext("2d");f.translate(-i+c,-r+l),e.render(f);for(var u=0;u<this.children.length;u++)"function"==typeof this.children[u].apply&&this.children[u].apply(f,0,0,a+2*c,o+2*l);t.drawImage(d,0,0,a+2*c,o+2*l,i-c,r-l,a+2*c,o+2*l),e.style("filter",!0).value=s},this.render=function(t){}},e.Element.filter.prototype=new e.Element.ElementBase,e.Element.feMorphology=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t,e,n,i,r){}},e.Element.feMorphology.prototype=new e.Element.ElementBase,e.Element.feComposite=function(t){this.base=e.Element.ElementBase,this.base(t),this.apply=function(t,e,n,i,r){}},e.Element.feComposite.prototype=new e.Element.ElementBase,e.Element.feColorMatrix=function(t){function n(t,e,n,i,r,a){return t[n*i*4+4*e+a]}function i(t,e,n,i,r,a,o){t[n*i*4+4*e+a]=o}function r(t,e){var n=a[t];return n*(n<0?e-255:e)}this.base=e.Element.ElementBase,this.base(t);var a=e.ToNumberArray(this.attribute("values").value);switch(this.attribute("type").valueOrDefault("matrix")){case"saturate":var o=a[0];a=[.213+.787*o,.715-.715*o,.072-.072*o,0,0,.213-.213*o,.715+.285*o,.072-.072*o,0,0,.213-.213*o,.715-.715*o,.072+.928*o,0,0,0,0,0,1,0,0,0,0,0,1];break;case"hueRotate":var s=a[0]*Math.PI/180,c=function(t,e,n){return t+Math.cos(s)*e+Math.sin(s)*n};a=[c(.213,.787,-.213),c(.715,-.715,-.715),c(.072,-.072,.928),0,0,c(.213,-.213,.143),c(.715,.285,.14),c(.072,-.072,-.283),0,0,c(.213,-.213,-.787),c(.715,-.715,.715),c(.072,.928,.072),0,0,0,0,0,1,0,0,0,0,0,1];break;case"luminanceToAlpha":a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2125,.7154,.0721,0,0,0,0,0,0,1]}this.apply=function(t,e,a,o,s){for(var c=t.getImageData(0,0,o,s),a=0;a<s;a++)for(var e=0;e<o;e++){var l=n(c.data,e,a,o,s,0),u=n(c.data,e,a,o,s,1),h=n(c.data,e,a,o,s,2),d=n(c.data,e,a,o,s,3);i(c.data,e,a,o,s,0,r(0,l)+r(1,u)+r(2,h)+r(3,d)+r(4,1)),i(c.data,e,a,o,s,1,r(5,l)+r(6,u)+r(7,h)+r(8,d)+r(9,1)),i(c.data,e,a,o,s,2,r(10,l)+r(11,u)+r(12,h)+r(13,d)+r(14,1)),i(c.data,e,a,o,s,3,r(15,l)+r(16,u)+r(17,h)+r(18,d)+r(19,1))}t.clearRect(0,0,o,s),t.putImageData(c,0,0)}},e.Element.feColorMatrix.prototype=new e.Element.ElementBase,e.Element.feGaussianBlur=function(t){this.base=e.Element.ElementBase,this.base(t),this.blurRadius=Math.floor(this.attribute("stdDeviation").numValue()),this.extraFilterDistance=this.blurRadius,this.apply=function(t,n,i,r,a){if(void 0===c.canvasRGBA)return void e.log("ERROR: StackBlur.js must be included for blur to work");t.canvas.id=e.UniqueId(),t.canvas.style.display="none",document.body.appendChild(t.canvas),c.canvasRGBA(t.canvas.id,n,i,r,a,this.blurRadius),document.body.removeChild(t.canvas)}},e.Element.feGaussianBlur.prototype=new e.Element.ElementBase,e.Element.title=function(t){},e.Element.title.prototype=new e.Element.ElementBase,e.Element.desc=function(t){},e.Element.desc.prototype=new e.Element.ElementBase,e.Element.MISSING=function(t){e.log("ERROR: Element '"+t.nodeName+"' not yet implemented.")},e.Element.MISSING.prototype=new e.Element.ElementBase,e.CreateElement=function(t){var n=t.nodeName.replace(/^[^:]+:/,"");n=n.replace(/\-/g,"");var i=null;return i=void 0!==e.Element[n]?new e.Element[n](t):new e.Element.MISSING(t),i.type=t.nodeName,i},e.load=function(t,n){e.loadXml(t,e.ajax(n))},e.loadXml=function(t,n){e.loadXmlDoc(t,e.parseXml(n))},e.loadXmlDoc=function(t,n){e.init(t);var i=function(e){for(var n=t.canvas;n;)e.x-=n.offsetLeft,e.y-=n.offsetTop,n=n.offsetParent;return window.scrollX&&(e.x+=window.scrollX),window.scrollY&&(e.y+=window.scrollY),e};1!=e.opts.ignoreMouse&&(t.canvas.onclick=function(t){var n=i(new e.Point(null!=t?t.clientX:event.clientX,null!=t?t.clientY:event.clientY));e.Mouse.onclick(n.x,n.y)},t.canvas.onmousemove=function(t){var n=i(new e.Point(null!=t?t.clientX:event.clientX,null!=t?t.clientY:event.clientY));e.Mouse.onmousemove(n.x,n.y)});var r=e.CreateElement(n.documentElement);r.root=!0,r.addStylesFromStyleDefinition();var a=!0,o=function(){e.ViewPort.Clear(),t.canvas.parentNode&&e.ViewPort.SetCurrent(t.canvas.parentNode.clientWidth,t.canvas.parentNode.clientHeight),1!=e.opts.ignoreDimensions&&(r.style("width").hasValue()&&(t.canvas.width=r.style("width").toPixels("x"),t.canvas.style.width=t.canvas.width+"px"),r.style("height").hasValue()&&(t.canvas.height=r.style("height").toPixels("y"),t.canvas.style.height=t.canvas.height+"px"));var i=t.canvas.clientWidth||t.canvas.width,o=t.canvas.clientHeight||t.canvas.height;if(1==e.opts.ignoreDimensions&&r.style("width").hasValue()&&r.style("height").hasValue()&&(i=r.style("width").toPixels("x"),o=r.style("height").toPixels("y")),e.ViewPort.SetCurrent(i,o),null!=e.opts.offsetX&&(r.attribute("x",!0).value=e.opts.offsetX),null!=e.opts.offsetY&&(r.attribute("y",!0).value=e.opts.offsetY),null!=e.opts.scaleWidth||null!=e.opts.scaleHeight){var s=null,c=null,l=e.ToNumberArray(r.attribute("viewBox").value);null!=e.opts.scaleWidth&&(r.attribute("width").hasValue()?s=r.attribute("width").toPixels("x")/e.opts.scaleWidth:isNaN(l[2])||(s=l[2]/e.opts.scaleWidth)),null!=e.opts.scaleHeight&&(r.attribute("height").hasValue()?c=r.attribute("height").toPixels("y")/e.opts.scaleHeight:isNaN(l[3])||(c=l[3]/e.opts.scaleHeight)),null==s&&(s=c),null==c&&(c=s),r.attribute("width",!0).value=e.opts.scaleWidth,r.attribute("height",!0).value=e.opts.scaleHeight,r.style("transform",!0,!0).value+=" scale("+1/s+","+1/c+")"}1!=e.opts.ignoreClear&&t.clearRect(0,0,i,o),r.render(t),a&&(a=!1,"function"==typeof e.opts.renderCallback&&e.opts.renderCallback(n))},s=!0;e.ImagesLoaded()&&(s=!1,o()),e.intervalID=setInterval(function(){var t=!1;if(s&&e.ImagesLoaded()&&(s=!1,t=!0),1!=e.opts.ignoreMouse&&(t|=e.Mouse.hasEvents()),1!=e.opts.ignoreAnimation)for(var n=0;n<e.Animations.length;n++)t|=e.Animations[n].update(1e3/e.FRAMERATE);"function"==typeof e.opts.forceRedraw&&1==e.opts.forceRedraw()&&(t=!0),t&&(o(),e.Mouse.runEvents())},1e3/e.FRAMERATE)},e.stop=function(){e.intervalID&&clearInterval(e.intervalID)},e.Mouse=new function(){this.events=[],this.hasEvents=function(){return 0!=this.events.length},this.onclick=function(t,e){this.events.push({type:"onclick",x:t,y:e,run:function(t){t.onclick&&t.onclick()}})},this.onmousemove=function(t,e){this.events.push({type:"onmousemove",x:t,y:e,run:function(t){t.onmousemove&&t.onmousemove()}})},this.eventElements=[],this.checkPath=function(t,e){for(var n=0;n<this.events.length;n++){var i=this.events[n];e.isPointInPath&&e.isPointInPath(i.x,i.y)&&(this.eventElements[n]=t)}},this.checkBoundingBox=function(t,e){for(var n=0;n<this.events.length;n++){var i=this.events[n];e.isPointInBox(i.x,i.y)&&(this.eventElements[n]=t)}},this.runEvents=function(){e.ctx.canvas.style.cursor="";for(var t=0;t<this.events.length;t++)for(var n=this.events[t],i=this.eventElements[t];i;)n.run(i),i=i.parent;this.events=[],this.eventElements=[]}},e}var s=n(457),c=n(458);n(459);t.exports=i},function(t,e){t.exports=function(t){this.ok=!1,this.alpha=1,"#"==t.charAt(0)&&(t=t.substr(1,6)),t=t.replace(/ /g,""),t=t.toLowerCase();var e={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",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",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",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",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};t=e[t]||t;for(var n=[{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,example:["rgba(123, 234, 45, 0.8)","rgba(255,234,245,1.0)"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3]),parseFloat(t[4])]}},{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\w{2})(\w{2})(\w{2})$/,example:["#00ff00","336699"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],i=0;i<n.length;i++){var r=n[i].re,a=n[i].process,o=r.exec(t);if(o){var s=a(o);this.r=s[0],this.g=s[1],this.b=s[2],s.length>3&&(this.alpha=s[3]),this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.alpha=this.alpha<0?0:this.alpha>1||isNaN(this.alpha)?1:this.alpha,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toRGBA=function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.alpha+")"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),n=this.b.toString(16);return 1==t.length&&(t="0"+t),1==e.length&&(e="0"+e),1==n.length&&(n="0"+n),"#"+t+e+n},this.getHelpXML=function(){for(var t=new Array,i=0;i<n.length;i++)for(var r=n[i].example,a=0;a<r.length;a++)t[t.length]=r[a];for(var o in e)t[t.length]=o;var s=document.createElement("ul");s.setAttribute("id","rgbcolor-examples");for(var i=0;i<t.length;i++)try{var c=document.createElement("li"),l=new RGBColor(t[i]),u=document.createElement("div");u.style.cssText="margin: 3px; border: 1px solid black; background:"+l.toHex()+"; color:"+l.toHex(),u.appendChild(document.createTextNode("test"));var h=document.createTextNode(" "+t[i]+" -> "+l.toRGB()+" -> "+l.toHex());c.appendChild(u),c.appendChild(h),s.appendChild(c)}catch(t){}return s}}},function(t,e){function n(t,e,n,o){if(!(isNaN(o)||o<1)){o|=0;var s,c,l,u,h,d,f,p,g,m,v,y,x,b,w,C,_,M,S,E,P,k,A,R,D=o+o+1,T=e-1,L=n-1,z=o+1,N=z*(z+1)/2,I=new i,B=I;for(l=1;l<D;l++)if(B=B.next=new i,l==z)var F=B;B.next=I;var V=null,H=null;f=d=0;var O=r[o],j=a[o];for(c=0;c<n;c++){for(C=_=M=S=p=g=m=v=0,y=z*(E=t[d]),x=z*(P=t[d+1]),b=z*(k=t[d+2]),w=z*(A=t[d+3]),p+=N*E,g+=N*P,m+=N*k,v+=N*A,B=I,l=0;l<z;l++)B.r=E,B.g=P,B.b=k,B.a=A,B=B.next;for(l=1;l<z;l++)u=d+((T<l?T:l)<<2),p+=(B.r=E=t[u])*(R=z-l),g+=(B.g=P=t[u+1])*R,m+=(B.b=k=t[u+2])*R,v+=(B.a=A=t[u+3])*R,C+=E,_+=P,M+=k,S+=A,B=B.next;for(V=I,H=F,s=0;s<e;s++)t[d+3]=A=v*O>>j,0!=A?(A=255/A,t[d]=(p*O>>j)*A,t[d+1]=(g*O>>j)*A,t[d+2]=(m*O>>j)*A):t[d]=t[d+1]=t[d+2]=0,p-=y,g-=x,m-=b,v-=w,y-=V.r,x-=V.g,b-=V.b,w-=V.a,u=f+((u=s+o+1)<T?u:T)<<2,C+=V.r=t[u],_+=V.g=t[u+1],M+=V.b=t[u+2],S+=V.a=t[u+3],p+=C,g+=_,m+=M,v+=S,V=V.next,y+=E=H.r,x+=P=H.g,b+=k=H.b,w+=A=H.a,C-=E,_-=P,M-=k,S-=A,H=H.next,d+=4;f+=e}for(s=0;s<e;s++){for(_=M=S=C=g=m=v=p=0,d=s<<2,y=z*(E=t[d]),x=z*(P=t[d+1]),b=z*(k=t[d+2]),w=z*(A=t[d+3]),p+=N*E,g+=N*P,m+=N*k,v+=N*A,B=I,l=0;l<z;l++)B.r=E,B.g=P,B.b=k,B.a=A,B=B.next;for(h=e,l=1;l<=o;l++)d=h+s<<2,p+=(B.r=E=t[d])*(R=z-l),g+=(B.g=P=t[d+1])*R,m+=(B.b=k=t[d+2])*R,v+=(B.a=A=t[d+3])*R,C+=E,_+=P,M+=k,S+=A,B=B.next,l<L&&(h+=e);for(d=s,V=I,H=F,c=0;c<n;c++)u=d<<2,t[u+3]=A=v*O>>j,A>0?(A=255/A,t[u]=(p*O>>j)*A,t[u+1]=(g*O>>j)*A,t[u+2]=(m*O>>j)*A):t[u]=t[u+1]=t[u+2]=0,p-=y,g-=x,m-=b,v-=w,y-=V.r,x-=V.g,b-=V.b,w-=V.a,u=s+((u=c+z)<L?u:L)*e<<2,p+=C+=V.r=t[u],g+=_+=V.g=t[u+1],m+=M+=V.b=t[u+2],v+=S+=V.a=t[u+3],V=V.next,y+=E=H.r,x+=P=H.g,b+=k=H.b,w+=A=H.a,C-=E,_-=P,M-=k,S-=A,H=H.next,d+=e}}}function i(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var r=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],a=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];t.exports=n},function(t,e,n){function i(t){this.options=t||{locator:{}}}function r(t,e,n){function i(e){var i=t[e];!i&&o&&(i=2==t.length?function(n){t(e,n)}:t),r[e]=i&&function(t){i("[xmldom "+e+"]\t"+t+s(n))}||function(){}}if(!t){if(e instanceof a)return e;t=e}var r={},o=t instanceof Function;return n=n||{},i("warning"),i("error"),i("fatalError"),r}function a(){this.cdata=!1}function o(t,e){e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber}function s(t){if(t)return"\n@"+(t.systemId||"")+"#[line:"+t.lineNumber+",col:"+t.columnNumber+"]"}function c(t,e,n){return"string"==typeof t?t.substr(e,n):t.length>=e+n||e?new java.lang.String(t,e,n)+"":t}function l(t,e){t.currentElement?t.currentElement.appendChild(e):t.doc.appendChild(e)}i.prototype.parseFromString=function(t,e){var n=this.options,i=new u,o=n.domBuilder||new a,s=n.errorHandler,c=n.locator,l=n.xmlns||{},h={lt:"<",gt:">",amp:"&",quot:'"',apos:"'"};return c&&o.setDocumentLocator(c),i.errorHandler=r(s,o,c),i.domBuilder=n.domBuilder||o,/\/x?html?$/.test(e)&&(h.nbsp=" ",h.copy="©",l[""]="http://www.w3.org/1999/xhtml"),l.xml=l.xml||"http://www.w3.org/XML/1998/namespace",t?i.parse(t,l,h):i.errorHandler.error("invalid doc source"),o.doc},a.prototype={startDocument:function(){this.doc=(new h).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(t,e,n,i){var r=this.doc,a=r.createElementNS(t,n||e),s=i.length;l(this,a),this.currentElement=a,this.locator&&o(this.locator,a);for(var c=0;c<s;c++){var t=i.getURI(c),u=i.getValue(c),n=i.getQName(c),h=r.createAttributeNS(t,n);this.locator&&o(i.getLocator(c),h),h.value=h.nodeValue=u,a.setAttributeNode(h)}},endElement:function(t,e,n){var i=this.currentElement;i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(t,e){},endPrefixMapping:function(t){},processingInstruction:function(t,e){var n=this.doc.createProcessingInstruction(t,e);this.locator&&o(this.locator,n),l(this,n)},ignorableWhitespace:function(t,e,n){},characters:function(t,e,n){if(t=c.apply(this,arguments)){if(this.cdata)var i=this.doc.createCDATASection(t);else var i=this.doc.createTextNode(t);this.currentElement?this.currentElement.appendChild(i):/^\s*$/.test(t)&&this.doc.appendChild(i),this.locator&&o(this.locator,i)}},skippedEntity:function(t){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(t){(this.locator=t)&&(t.lineNumber=0)},comment:function(t,e,n){t=c.apply(this,arguments);var i=this.doc.createComment(t);this.locator&&o(this.locator,i),l(this,i)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(t,e,n){var i=this.doc.implementation;if(i&&i.createDocumentType){var r=i.createDocumentType(t,e,n);this.locator&&o(this.locator,r),l(this,r)}},warning:function(t){console.warn("[xmldom warning]\t"+t,s(this.locator))},error:function(t){console.error("[xmldom error]\t"+t,s(this.locator))},fatalError:function(t){throw console.error("[xmldom fatalError]\t"+t,s(this.locator)),t}},"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(t){a.prototype[t]=function(){return null}});var u=n(460).XMLReader,h=e.DOMImplementation=n(7).DOMImplementation;e.XMLSerializer=n(7).XMLSerializer,e.DOMParser=i},function(t,e){function n(){}function i(t,e,n,i,l){function f(t){if(t>65535){t-=65536;var e=55296+(t>>10),n=56320+(1023&t);return String.fromCharCode(e,n)}return String.fromCharCode(t)}function p(t){var e=t.slice(1,-1);return e in n?n[e]:"#"===e.charAt(0)?f(parseInt(e.substr(1).replace("x","0x"))):(l.error("entity not found:"+t),t)}function g(e){if(e>_){var n=t.substring(_,e).replace(/&#?\w+;/g,p);b&&m(_),i.characters(n,0,e-_),_=e}}function m(e,n){for(;e>=y&&(n=x.exec(t));)v=n.index,y=v+n[0].length,b.lineNumber++;b.columnNumber=e-v+1}for(var v=0,y=0,x=/.*(?:\r\n?|\n)|.*$/g,b=i.locator,w=[{currentNSMap:e}],C={},_=0;;){try{var M=t.indexOf("<",_);if(M<0){if(!t.substr(_).match(/^\s*$/)){var S=i.doc,E=S.createTextNode(t.substr(_));S.appendChild(E),i.currentElement=E}return}switch(M>_&&g(M),t.charAt(M+1)){case"/":var P=t.indexOf(">",M+3),k=t.substring(M+2,P),A=w.pop();P<0?(k=t.substring(M+2).replace(/[\s<].*/,""),l.error("end tag name: "+k+" is not complete:"+A.tagName),P=M+1+k.length):k.match(/\s</)&&(k=k.replace(/[\s<].*/,""),l.error("end tag name: "+k+" maybe not complete"),P=M+1+k.length);var R=A.localNSMap,D=A.tagName==k;if(D||A.tagName&&A.tagName.toLowerCase()==k.toLowerCase()){if(i.endElement(A.uri,A.localName,k),R)for(var T in R)i.endPrefixMapping(T);D||l.fatalError("end tag name: "+k+" is not match the current start tagName:"+A.tagName)}else w.push(A);P++;break;case"?":b&&m(M),P=h(t,M,i);break;case"!":b&&m(M),P=u(t,M,i,l);break;default:b&&m(M);var L=new d,z=w[w.length-1].currentNSMap,P=a(t,M,L,z,p,l),N=L.length;if(!L.closed&&c(t,P,L.tagName,C)&&(L.closed=!0,n.nbsp||l.warning("unclosed xml attribute")),b&&N){for(var I=r(b,{}),B=0;B<N;B++){var F=L[B];m(F.offset),F.locator=r(b,{})}i.locator=I,o(L,i,z)&&w.push(L),i.locator=b}else o(L,i,z)&&w.push(L);"http://www.w3.org/1999/xhtml"!==L.uri||L.closed?P++:P=s(t,P,L.tagName,p,i)}}catch(t){l.error("element parse error: "+t),P=-1}P>_?_=P:g(Math.max(M,_)+1)}}function r(t,e){return e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber,e}function a(t,e,n,i,r,a){for(var o,s,c=++e,l=y;;){var u=t.charAt(c);switch(u){case"=":if(l===x)o=t.slice(e,c),l=w;else{if(l!==b)throw new Error("attribute equal must after attrName");l=w}break;case"'":case'"':if(l===w||l===x){if(l===x&&(a.warning('attribute value must after "="'),o=t.slice(e,c)),e=c+1,!((c=t.indexOf(u,e))>0))throw new Error("attribute value no end '"+u+"' match");s=t.slice(e,c).replace(/&#?\w+;/g,r),n.add(o,s,e-1),l=_}else{if(l!=C)throw new Error('attribute value must after "="');s=t.slice(e,c).replace(/&#?\w+;/g,r),n.add(o,s,e),a.warning('attribute "'+o+'" missed start quot('+u+")!!"),e=c+1,l=_}break;case"/":switch(l){case y:n.setTagName(t.slice(e,c));case _:case M:case S:l=S,n.closed=!0;case C:case x:case b:break;default:throw new Error("attribute invalid close char('/')")}break;case"":return a.error("unexpected end of input"),l==y&&n.setTagName(t.slice(e,c)),c;case">":switch(l){case y:n.setTagName(t.slice(e,c));case _:case M:case S:break;case C:case x:s=t.slice(e,c),"/"===s.slice(-1)&&(n.closed=!0,s=s.slice(0,-1));case b:l===b&&(s=o),l==C?(a.warning('attribute "'+s+'" missed quot(")!!'),n.add(o,s.replace(/&#?\w+;/g,r),e)):("http://www.w3.org/1999/xhtml"===i[""]&&s.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+s+'" missed value!! "'+s+'" instead!!'),n.add(s,s,e));break;case w:throw new Error("attribute value missed!!")}return c;case"":u=" ";default:if(u<=" ")switch(l){case y:n.setTagName(t.slice(e,c)),l=M;break;case x:o=t.slice(e,c),l=b;break;case C:var s=t.slice(e,c).replace(/&#?\w+;/g,r);a.warning('attribute "'+s+'" missed quot(")!!'),n.add(o,s,e);case _:l=M}else switch(l){case b:n.tagName;"http://www.w3.org/1999/xhtml"===i[""]&&o.match(/^(?:disabled|checked|selected)$/i)||a.warning('attribute "'+o+'" missed value!! "'+o+'" instead2!!'),n.add(o,o,e),e=c,l=x;break;case _:a.warning('attribute space is required"'+o+'"!!');case M:l=x,e=c;break;case w:l=C,e=c;break;case S:throw new Error("elements closed character '/' and '>' must be connected to")}}c++}}function o(t,e,n){for(var i=t.tagName,r=null,a=t.length;a--;){var o=t[a],s=o.qName,c=o.value,u=s.indexOf(":");if(u>0)var h=o.prefix=s.slice(0,u),d=s.slice(u+1),f="xmlns"===h&&d;else d=s,h=null,f="xmlns"===s&&"";o.localName=d,!1!==f&&(null==r&&(r={},l(n,n={})),n[f]=r[f]=c,o.uri="http://www.w3.org/2000/xmlns/",e.startPrefixMapping(f,c))}for(var a=t.length;a--;){o=t[a];var h=o.prefix;h&&("xml"===h&&(o.uri="http://www.w3.org/XML/1998/namespace"),"xmlns"!==h&&(o.uri=n[h||""]))}var u=i.indexOf(":");u>0?(h=t.prefix=i.slice(0,u),d=t.localName=i.slice(u+1)):(h=null,d=t.localName=i);var p=t.uri=n[h||""];if(e.startElement(p,d,i,t),!t.closed)return t.currentNSMap=n,t.localNSMap=r,!0;if(e.endElement(p,d,i),r)for(h in r)e.endPrefixMapping(h)}function s(t,e,n,i,r){if(/^(?:script|textarea)$/i.test(n)){var a=t.indexOf("</"+n+">",e),o=t.substring(e+1,a);if(/[&<]/.test(o))return/^script$/i.test(n)?(r.characters(o,0,o.length),a):(o=o.replace(/&#?\w+;/g,i),r.characters(o,0,o.length),a)}return e+1}function c(t,e,n,i){var r=i[n];return null==r&&(r=t.lastIndexOf("</"+n+">"),r<e&&(r=t.lastIndexOf("</"+n)),i[n]=r),r<e}function l(t,e){for(var n in t)e[n]=t[n]}function u(t,e,n,i){switch(t.charAt(e+2)){case"-":if("-"===t.charAt(e+3)){var r=t.indexOf("--\x3e",e+4);return r>e?(n.comment(t,e+4,r-e-4),r+3):(i.error("Unclosed comment"),-1)}return-1;default:if("CDATA["==t.substr(e+3,6)){var r=t.indexOf("]]>",e+9);return n.startCDATA(),n.characters(t,e+9,r-e-9),n.endCDATA(),r+3}var a=p(t,e),o=a.length;if(o>1&&/!doctype/i.test(a[0][0])){var s=a[1][0],c=o>3&&/^public$/i.test(a[2][0])&&a[3][0],l=o>4&&a[4][0],u=a[o-1];return n.startDTD(s,c&&c.replace(/^(['"])(.*?)\1$/,"$2"),l&&l.replace(/^(['"])(.*?)\1$/,"$2")),n.endDTD(),u.index+u[0].length}}return-1}function h(t,e,n){var i=t.indexOf("?>",e);if(i){var r=t.substring(e,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(r){r[0].length;return n.processingInstruction(r[1],r[2]),i+2}return-1}return-1}function d(t){}function f(t,e){return t.__proto__=e,t}function p(t,e){var n,i=[],r=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(r.lastIndex=e,r.exec(t);n=r.exec(t);)if(i.push(n),n[1])return i}var g=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,m=new RegExp("[\\-\\.0-9"+g.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),v=new RegExp("^"+g.source+m.source+"*(?::"+g.source+m.source+"*)?$"),y=0,x=1,b=2,w=3,C=4,_=5,M=6,S=7;n.prototype={parse:function(t,e,n){var r=this.domBuilder;r.startDocument(),l(e,e={}),i(t,e,n,r,this.errorHandler),r.endDocument()}},d.prototype={setTagName:function(t){if(!v.test(t))throw new Error("invalid tagName:"+t);this.tagName=t},add:function(t,e,n){if(!v.test(t))throw new Error("invalid attribute:"+t);this[this.length++]={qName:t,value:e,offset:n}},length:0,getLocalName:function(t){return this[t].localName},getLocator:function(t){return this[t].locator},getQName:function(t){return this[t].qName},getURI:function(t){return this[t].uri},getValue:function(t){return this[t].value}},f({},f.prototype)instanceof f||(f=function(t,e){function n(){}n.prototype=e,n=new n;for(e in t)n[e]=t[e];return n}),e.XMLReader=n},function(t,e,n){"use strict";var i=n(0),r=function(t){return t&&t.__esModule?t:{default:t}}(i);r.default.io.json.Writer=r.default.io.Writer.extend({init:function(){this._super()},marshal:function(t,e){if("function"!=typeof e)throw"Writer.marshal method signature has been change from version 2.10.1 to version 3.0.0. Please consult the API documentation about this issue.";var n=[];t.getFigures().each(function(t,e){n.push(e.getPersistentAttributes())}),t.getLines().each(function(t,e){n.push(e.getPersistentAttributes())});var i=r.default.util.Base64.encode(JSON.stringify(n,null,2));e(n,i)}})},function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}var _packages=__webpack_require__(0),_packages2=_interopRequireDefault(_packages);_packages2.default.io.json.Reader=_packages2.default.io.Reader.extend({NAME:"draw2d.io.json.Reader",init:function(){this._super()},unmarshal:function(t,e){var n=this,i=this,r=new _packages2.default.util.ArrayList;"string"==typeof e&&(e=JSON.parse(e));var a=null;return e.forEach(function(e){try{var o=i.createFigureFromType(e.type),s=null,c=null;for(var l in e){var u=e[l];if("source"===l){if(null===(a=t.getFigure(u.node)))throw"Source figure with id '"+u.node+"' not found";if(null===(s=a.getPort(u.port)))throw"Unable to find source port '"+u.port+"' at figure '"+u.node+"' to unmarschal '"+e.type+"'"}else if("target"===l){if(null===(a=t.getFigure(u.node)))throw"Target figure with id '"+u.node+"' not found";if(null===(c=a.getPort(u.port)))throw"Unable to find target port '"+u.port+"' at figure '"+u.node+"' to unmarschal '"+e.type+"'"}}null!==s&&null!==c&&(o.setSource(s),o.setTarget(c)),o.setPersistentAttributes(e),t.add(o),r.add(o)}catch(t){debug.error(e,"Unable to instantiate figure type '"+e.type+"' with id '"+e.id+"' during unmarshal by "+n.NAME+". Skipping figure.."),debug.error(t),debug.warn(e)}}),e.forEach(function(e){if(void 0!==e.composite){var n=t.getFigure(e.id);null===n&&(n=t.getLine(e.id));t.getFigure(e.composite).assignFigure(n)}}),t.calculateConnectionIntersection(),t.getLines().each(function(t,e){e.svgPathString=null,e.repaint()}),t.linesToRepaintAfterDragDrop=t.getLines().clone(),t.showDecoration(),r},createFigureFromType:function createFigureFromType(type){return eval("new "+type+"()")}})}])});