2019-12-13 10:17:15 -05:00
/ * !
2019-12-15 16:00:11 -05:00
* Paper . js v0 . 12.4 - develop - The Swiss Army Knife of Vector Graphics Scripting .
2019-12-13 10:17:15 -05:00
* http : //paperjs.org/
*
* Copyright ( c ) 2011 - 2019 , Juerg Lehni & Jonathan Puckey
* http : //scratchdisk.com/ & https://puckey.studio/
*
* Distributed under the MIT license . See LICENSE file for details .
*
* All rights reserved .
*
2020-05-23 08:12:25 -04:00
* Date : Sat May 23 14 : 08 : 18 2020 + 0200
2019-12-13 10:17:15 -05:00
*
* * *
*
* Straps . js - Class inheritance library with support for bean - style accessors
*
* Copyright ( c ) 2006 - 2019 Juerg Lehni
* http : //scratchdisk.com/
*
* Distributed under the MIT license .
*
* * *
*
* Acorn . js
* https : //marijnhaverbeke.nl/acorn/
*
* Acorn is a tiny , fast JavaScript parser written in JavaScript ,
* created by Marijn Haverbeke and released under an MIT license .
*
* /
2019-12-15 16:00:11 -05:00
var paper = function ( t , e ) { t = t || require ( "./node/self.js" ) ; var n = t . window , i = t . document , r = new function ( ) { function t ( t , e , r , s , a ) { function u ( i , u ) { u = u || ( u = o ( e , i ) ) && ( u . get ? u : u . value ) , "string" == typeof u && "#" === u [ 0 ] && ( u = t [ u . substring ( 1 ) ] || u ) ; var c , f = "function" == typeof u , d = u , _ = a || f && ! u . base ? u && u . get ? i in t : t [ i ] : null ; a && _ || ( f && _ && ( u . base = _ ) , f && s !== ! 1 && ( c = i . match ( /^([gs]et|is)(([A-Z])(.*))$/ ) ) && ( l [ c [ 3 ] . toLowerCase ( ) + c [ 4 ] ] = c [ 2 ] ) , d && ! f && d . get && "function" == typeof d . get && n . isPlainObject ( d ) || ( d = { value : d , writable : ! 0 } ) , ( o ( t , i ) || { configurable : ! 0 } ) . configurable && ( d . configurable = ! 0 , d . enumerable = null != r ? r : ! c ) , h ( t , i , d ) ) } var l = { } ; if ( e ) { for ( var c in e ) e . hasOwnProperty ( c ) && ! i . test ( c ) && u ( c ) ; for ( var c in l ) { var f = l [ c ] , d = t [ "set" + f ] , _ = t [ "get" + f ] || d && t [ "is" + f ] ; ! _ || s !== ! 0 && 0 !== _ . length || u ( c , { get : _ , set : d } ) } } return t } function n ( ) { for ( var t = 0 , e = arguments . length ; t < e ; t ++ ) { var n = arguments [ t ] ; n && c ( this , n ) } return this } var i = /^(statics|enumerable|beans|preserve)$/ , r = [ ] , s = r . slice , a = Object . create , o = Object . getOwnPropertyDescriptor , h = Object . defineProperty , u = r . forEach || function ( t , e ) { for ( var n = 0 , i = this . length ; n < i ; n ++ ) t . call ( e , this [ n ] , n , this ) } , l = function ( t , e ) { for ( var n in this ) this . hasOwnProperty ( n ) && t . call ( e , this [ n ] , n , this ) } , c = Object . assign || function ( t ) { for ( var e = 1 , n = arguments . length ; e < n ; e ++ ) { var i = arguments [ e ] ; for ( var r in i ) i . hasOwnProperty ( r ) && ( t [ r ] = i [ r ] ) } return t } , f = function ( t , e , n ) { if ( t ) { var i = o ( t , "length" ) ; ( i && "number" == typeof i . value ? u : l ) . call ( t , e , n = n || t ) } return n } ; return t ( n , { inject : function ( e ) { if ( e ) { var n = e . statics === ! 0 ? e : e . statics , i = e . beans , r = e . preserve ; n !== e && t ( this . prototype , e , e . enumerable , i , r ) , t ( this , n , null , i , r ) } for ( var s = 1 , a = arguments . length ; s < a ; s ++ ) this . inject ( arguments [ s ] ) ; return this } , extend : function ( ) { for ( var e , n , i , r = this , s = 0 , o = arguments . length ; s < o && ( ! e || ! n ) ; s ++ ) i = arguments [ s ] , e = e || i . initialize , n = n || i . prototype ; return e = e || function ( ) { r . apply ( this , arguments ) } , n = e . prototype = n || a ( this . prototype ) , h ( n , "constructor" , { value : e , writable : ! 0 , configurable : ! 0 } ) , t ( e , this ) , arguments . length && this . inject . apply ( e , arguments ) , e . base = r , e } } ) . inject ( { enumerable : ! 1 , initialize : n , set : n , inject : function ( ) { for ( var e = 0 , n = arguments . length ; e < n ; e ++ ) { var i = arguments [ e ] ; i && t ( this , i , i . enumerable , i . beans , i . preserve ) } return this } , extend : function ( ) { var t = a ( this ) ; return t . inject . apply ( t , arguments ) } , each : function ( t , e ) { return f ( this , t , e ) } , clone : function ( ) { return new this . constructor ( this ) } , statics : { set : c , each : f , create : a , define : h , describe : o , clone : function ( t ) { return c ( new t . constructor , t ) } , isPlainObject : function ( t ) { var e = null != t && t . constructor ; return e && ( e === Object || e === n || "Object" === e . name ) } , pick : function ( t , n ) { return t !== e ? t : n } , slice : function ( t , e , n ) { return s . call ( t , e , n ) } } } ) } ; "undefined" != typeof module && ( module . exports = r ) , r . inject ( { enumerable : ! 1 , toString : function ( ) { return null != this . _id ? ( this . _class || "Object" ) + ( this . _name ? " '" + this . _name + "'" : " @" + this . _id ) : "{ " + r . each ( this , function ( t , e ) { if ( ! /^_/ . test ( e ) ) { var n = typeof t ; this . push ( e + ": " + ( "number" === n ? u . instance . number ( t ) : "string" === n ? "'" + t + "'" : t ) ) } } , [ ] ) . join ( ", " ) + " }" } , getClassName : function ( ) { return this . _class || "" } , importJSON : function ( t ) { return r . importJSON ( t , this ) } , exportJSON : function ( t ) { return r . exportJSON ( this , t ) } , toJSON : function ( ) { return r . serialize ( this ) } , set : function ( t , e ) { return t && r . filter ( this , t , e , this . _prioritize ) , this } } , { beans : ! 1 , statics : { exports : { } , extend : function ot ( ) { var t = ot . base . apply ( this , arguments ) , e = t . prototype . _class ; return e && ! r . exports [ e ] && ( r . exports [ e ] = t ) , t } , equals : function ( t , e ) { if ( t === e ) return ! 0 ; if ( t && t . equals ) return t . equals ( e ) ; if ( e && e . equals ) return e . equals ( t ) ; if ( t && e && "object" == typeof t && "object" == typeof e ) { if ( Array . isArray ( t ) && Array . isArray ( e ) ) { var n = t . length ; if ( n !== e . length ) return ! 1 ; for ( ; n -- ; ) if ( ! r . equals ( t [ n ] , e [ n ] ) ) return ! 1 } else { var i = Object . keys ( t ) , n = i . length ; if ( n !== Object . keys ( e ) . length ) return ! 1 ; for ( ; n -- ; ) { var s = i [ n ] ; if ( ! e . hasOwnProperty ( s ) || ! r . equals ( t [ s ] , e [ s ] ) ) return ! 1 } } return ! 0 } return ! 1 } , read : function ( t , n , i , s ) { if ( this === r ) { var a = this . peek ( t , n ) ; return t . _ _index ++ , a } var o = this . prototype , h = o . _readIndex , u = n || h && t . _ _index || 0 , l = t . length , c = t [ u ] ; if ( s = s || l - u , c instanceof this || i && i . readNull && null == c && s <= 1 ) return h && ( t . _ _
2019-12-15 13:44:31 -05:00
var n = "set" + e ; this [ n ] = function ( ) { this . _dontNotify = ! 0 , t [ n ] . apply ( this , arguments ) , this . _dontNotify = ! 1 , this . _owner [ this . _setter ] ( this ) } } , { isSelected : function ( ) { return ! ! ( 2 & this . _owner . _selection ) } , setSelected : function ( t ) { var e = this . _owner ; e . _changeSelection && e . _changeSelection ( 2 , t ) } } ) ) } ) , m = r . extend ( { _class : "Matrix" , initialize : function lt ( t , e ) { var n = arguments , i = n . length , r = ! 0 ; if ( i >= 6 ? this . _set . apply ( this , n ) : 1 === i || 2 === i ? t instanceof lt ? this . _set ( t . _a , t . _b , t . _c , t . _d , t . _tx , t . _ty , e ) : Array . isArray ( t ) ? this . _set . apply ( this , e ? t . concat ( [ e ] ) : t ) : r = ! 1 : i ? r = ! 1 : this . reset ( ) , ! r ) throw new Error ( "Unsupported matrix parameters" ) ; return this } , set : "#initialize" , _set : function ( t , e , n , i , r , s , a ) { return this . _a = t , this . _b = e , this . _c = n , this . _d = i , this . _tx = r , this . _ty = s , a || this . _changed ( ) , this } , _serialize : function ( t , e ) { return r . serialize ( this . getValues ( ) , t , ! 0 , e ) } , _changed : function ( ) { var t = this . _owner ; t && ( t . _applyMatrix ? t . transform ( null , ! 0 ) : t . _changed ( 25 ) ) } , clone : function ( ) { return new m ( this . _a , this . _b , this . _c , this . _d , this . _tx , this . _ty ) } , equals : function ( t ) { return t === this || t && this . _a === t . _a && this . _b === t . _b && this . _c === t . _c && this . _d === t . _d && this . _tx === t . _tx && this . _ty === t . _ty } , toString : function ( ) { var t = u . instance ; return "[[" + [ t . number ( this . _a ) , t . number ( this . _c ) , t . number ( this . _tx ) ] . join ( ", " ) + "], [" + [ t . number ( this . _b ) , t . number ( this . _d ) , t . number ( this . _ty ) ] . join ( ", " ) + "]]" } , reset : function ( t ) { return this . _a = this . _d = 1 , this . _b = this . _c = this . _tx = this . _ty = 0 , t || this . _changed ( ) , this } , apply : function ( t , e ) { var n = this . _owner ; return ! ! n && ( n . transform ( null , r . pick ( t , ! 0 ) , e ) , this . isIdentity ( ) ) } , translate : function ( ) { var t = f . read ( arguments ) , e = t . x , n = t . y ; return this . _tx += e * this . _a + n * this . _c , this . _ty += e * this . _b + n * this . _d , this . _changed ( ) , this } , scale : function ( ) { var t = arguments , e = f . read ( t ) , n = f . read ( t , 0 , { readNull : ! 0 } ) ; return n && this . translate ( n ) , this . _a *= e . x , this . _b *= e . x , this . _c *= e . y , this . _d *= e . y , n && this . translate ( n . negate ( ) ) , this . _changed ( ) , this } , rotate : function ( t ) { t *= Math . PI / 180 ; var e = f . read ( arguments , 1 ) , n = e . x , i = e . y , r = Math . cos ( t ) , s = Math . sin ( t ) , a = n - n * r + i * s , o = i - n * s - i * r , h = this . _a , u = this . _b , l = this . _c , c = this . _d ; return this . _a = r * h + s * l , this . _b = r * u + s * c , this . _c = - s * h + r * l , this . _d = - s * u + r * c , this . _tx += a * h + o * l , this . _ty += a * u + o * c , this . _changed ( ) , this } , shear : function ( ) { var t = arguments , e = f . read ( t ) , n = f . read ( t , 0 , { readNull : ! 0 } ) ; n && this . translate ( n ) ; var i = this . _a , r = this . _b ; return this . _a += e . y * this . _c , this . _b += e . y * this . _d , this . _c += e . x * i , this . _d += e . x * r , n && this . translate ( n . negate ( ) ) , this . _changed ( ) , this } , skew : function ( ) { var t = arguments , e = f . read ( t ) , n = f . read ( t , 0 , { readNull : ! 0 } ) , i = Math . PI / 180 , r = new f ( Math . tan ( e . x * i ) , Math . tan ( e . y * i ) ) ; return this . shear ( r , n ) } , append : function ( t , e ) { if ( t ) { var n = this . _a , i = this . _b , r = this . _c , s = this . _d , a = t . _a , o = t . _c , h = t . _b , u = t . _d , l = t . _tx , c = t . _ty ; this . _a = a * n + h * r , this . _c = o * n + u * r , this . _b = a * i + h * s , this . _d = o * i + u * s , this . _tx += l * n + c * r , this . _ty += l * i + c * s , e || this . _changed ( ) } return this } , prepend : function ( t , e ) { if ( t ) { var n = this . _a , i = this . _b , r = this . _c , s = this . _d , a = this . _tx , o = this . _ty , h = t . _a , u = t . _c , l = t . _b , c = t . _d , f = t . _tx , d = t . _ty ; this . _a = h * n + u * i , this . _c = h * r + u * s , this . _b = l * n + c * i , this . _d = l * r + c * s , this . _tx = h * a + u * o + f , this . _ty = l * a + c * o + d , e || this . _changed ( ) } return this } , appended : function ( t ) { return this . clone ( ) . append ( t ) } , prepended : function ( t ) { return this . clone ( ) . prepend ( t ) } , invert : function ( ) { var t = this . _a , e = this . _b , n = this . _c , i = this . _d , r = this . _tx , s = this . _ty , a = t * i - e * n , o = null ; return a && ! isNaN ( a ) && isFinite ( r ) && isFinite ( s ) && ( this . _a = i / a , this . _b = - e / a , this . _c = - n / a , this . _d = t / a , this . _tx = ( n * s - i * r ) / a , this . _ty = ( e * r - t * s ) / a , o = this ) , o } , inverted : function ( ) { return this . clone ( ) . invert ( ) } , concatenate : "#append" , preConcatenate : "#prepend" , chain : "#appended" , _shiftless : function ( ) { return new m ( this . _a , this . _b , this . _c , this . _d , 0 , 0 ) } , _orNullIfIdentity : function ( ) { return this . isIdentity ( ) ? null : this } , isIdentity : function ( ) { return 1 === this . _a && 0 === this . _b && 0 === this . _c && 1 === this . _d && 0 === this . _tx && 0 === this . _ty } , isInvertible : function ( ) { var t = this . _a * this . _d - this . _c * this . _b ; return t && ! isNaN ( t ) && isFinite ( this . _tx ) && isFinite ( this . _ty ) } , isSingular : function ( ) { return ! this . isInvertible ( ) } , transform : function ( t , e , n ) { return arguments . length < 3 ? this . _transformPoint ( f . read
2019-12-18 05:47:57 -05:00
} , localToGlobal : function ( ) { return this . getGlobalMatrix ( ! 0 ) . _transformPoint ( f . read ( arguments ) ) } , parentToLocal : function ( ) { return this . _matrix . _inverseTransform ( f . read ( arguments ) ) } , localToParent : function ( ) { return this . _matrix . _transformPoint ( f . read ( arguments ) ) } , fitBounds : function ( t , e ) { t = v . read ( arguments ) ; var n = this . getBounds ( ) , i = n . height / n . width , r = t . height / t . width , s = ( e ? i > r : i < r ) ? t . width / n . width : t . height / n . height , a = new v ( new f , new _ ( n . width * s , n . height * s ) ) ; a . setCenter ( t . getCenter ( ) ) , this . setBounds ( a ) } } ) , { _setStyles : function ( t , e , n ) { var i = this . _style , r = this . _matrix ; if ( i . hasFill ( ) && ( t . fillStyle = i . getFillColor ( ) . toCanvasStyle ( t , r ) ) , i . hasStroke ( ) ) { t . strokeStyle = i . getStrokeColor ( ) . toCanvasStyle ( t , r ) , t . lineWidth = i . getStrokeWidth ( ) ; var s = i . getStrokeJoin ( ) , a = i . getStrokeCap ( ) , o = i . getMiterLimit ( ) ; if ( s && ( t . lineJoin = s ) , a && ( t . lineCap = a ) , o && ( t . miterLimit = o ) , at . support . nativeDash ) { var h = i . getDashArray ( ) , u = i . getDashOffset ( ) ; h && h . length && ( "setLineDash" in t ? ( t . setLineDash ( h ) , t . lineDashOffset = u ) : ( t . mozDash = h , t . mozDashOffset = u ) ) } } if ( i . hasShadow ( ) ) { var l = e . pixelRatio || 1 , c = n . _shiftless ( ) . prepend ( ( new m ) . scale ( l , l ) ) , d = c . transform ( new f ( i . getShadowBlur ( ) , 0 ) ) , _ = c . transform ( this . getShadowOffset ( ) ) ; t . shadowColor = i . getShadowColor ( ) . toCanvasStyle ( t ) , t . shadowBlur = d . getLength ( ) , t . shadowOffsetX = _ . x , t . shadowOffsetY = _ . y } } , draw : function ( t , e , n ) { this . _updateVersion = this . _project . _updateVersion ; if ( this . _visible && 0 !== this . _opacity ) { var i = e . matrices , r = e . viewMatrix , s = this . _matrix , a = i [ i . length - 1 ] . appended ( s ) ; if ( a . isInvertible ( ) ) { r = r ? r . appended ( a ) : a , i . push ( a ) , e . updateMatrix && ( this . _globalMatrix = a ) ; var o , h , u , l = this . _blendMode , c = this . _opacity , f = "normal" === l , d = it . nativeModes [ l ] , _ = f && 1 === c || e . dontStart || e . clip || ( d || f && c < 1 ) && this . _canComposite ( ) , g = e . pixelRatio || 1 ; if ( ! _ ) { var v = this . getStrokeBounds ( r ) ; if ( ! v . width || ! v . height ) return void i . pop ( ) ; u = e . offset , h = e . offset = v . getTopLeft ( ) . floor ( ) , o = t , t = nt . getContext ( v . getSize ( ) . ceil ( ) . add ( 1 ) . multiply ( g ) ) , 1 !== g && t . scale ( g , g ) } t . save ( ) ; var p = n ? n . appended ( s ) : this . _canScaleStroke && ! this . getStrokeScaling ( ! 0 ) && r , m = ! _ && e . clipItem , y = ! p || m ; if ( _ ? ( t . globalAlpha = c , d && ( t . globalCompositeOperation = l ) ) : y && t . translate ( - h . x , - h . y ) , y && ( _ ? s : r ) . applyToContext ( t ) , m && e . clipItem . draw ( t , e . extend ( { clip : ! 0 } ) ) , p ) { t . setTransform ( g , 0 , 0 , g , 0 , 0 ) ; var w = e . offset ; w && t . translate ( - w . x , - w . y ) } this . _draw ( t , e , r , p ) , t . restore ( ) , i . pop ( ) , e . clip && ! e . dontFinish && t . clip ( this . getFillRule ( ) ) , _ || ( it . process ( l , t , o , c , h . subtract ( u ) . multiply ( g ) ) , nt . release ( t ) , e . offset = u ) } } } , _isUpdated : function ( t ) { var e = this . _parent ; if ( e instanceof N ) return e . _isUpdated ( t ) ; var n = this . _updateVersion === t ; return ! n && e && e . _visible && e . _isUpdated ( t ) && ( this . _updateVersion = t , n = ! 0 ) , n } , _drawSelection : function ( t , e , n , i , r ) { var s = this . _selection , a = 1 & s , o = 2 & s || a && this . _selectBounds , h = 4 & s ; if ( this . _drawSelected || ( a = ! 1 ) , ( a || o || h ) && this . _isUpdated ( r ) ) { var u , l = this . getSelectedColor ( ! 0 ) || ( u = this . getLayer ( ) ) && u . getSelectedColor ( ! 0 ) , c = e . appended ( this . getGlobalMatrix ( ! 0 ) ) , f = n / 2 ; if ( t . strokeStyle = t . fillStyle = l ? l . toCanvasStyle ( t ) : "#009dec" , a && this . _drawSelected ( t , c , i ) , h ) { var d = this . getPosition ( ! 0 ) , _ = this . _parent , g = _ ? _ . localToGlobal ( d ) : d , v = g . x , p = g . y ; t . beginPath ( ) , t . arc ( v , p , f , 0 , 2 * Math . PI , ! 0 ) , t . stroke ( ) ; for ( var m = [ [ 0 , - 1 ] , [ 1 , 0 ] , [ 0 , 1 ] , [ - 1 , 0 ] ] , y = f , w = n + 1 , x = 0 ; x < 4 ; x ++ ) { var b = m [ x ] , C = b [ 0 ] , S = b [ 1 ] ; t . moveTo ( v + C * y , p + S * y ) , t . lineTo ( v + C * w , p + S * w ) , t . stroke ( ) } } if ( o ) { var k = c . _transformCorners ( this . getInternalBounds ( ) ) ; t . beginPath ( ) ; for ( var x = 0 ; x < 8 ; x ++ ) t [ x ? "lineTo" : "moveTo" ] ( k [ x ] , k [ ++ x ] ) ; t . closePath ( ) , t . stroke ( ) ; for ( var x = 0 ; x < 8 ; x ++ ) t . fillRect ( k [ x ] - f , k [ ++ x ] - f , n , n ) } } } , _canComposite : function ( ) { return ! 1 } } , r . each ( [ "down" , "drag" , "up" , "move" ] , function ( t ) { this [ "removeOn" + r . capitalize ( t ) ] = function ( ) { var e = { } ; return e [ t ] = ! 0 , this . removeOn ( e ) } } , { removeOn : function ( t ) { for ( var e in t ) if ( t [ e ] ) { var n = "mouse" + e , i = this . _project , r = i . _removeSets = i . _removeSets || { } ; r [ n ] = r [ n ] || { } , r [ n ] [ this . _id ] = this } return this } } ) , { tween : function ( t , e , n ) { function i ( t ) { o . _handleFrame ( 1e3 * t . time ) , o . running || this . off ( "frame" , i ) } n || ( n = e , e = t , t = null , n || ( n = e , e = null ) ) ; var r = n && n . easing , s = n && n . start , a = null != n && ( "number" == typeof n ? n : n . duration ) , o = new tt ( this , t , e , a , r , s ) ; return a && this . on ( "frame" , i ) , o } , tweenTo : fu
2020-02-10 17:53:17 -05:00
return h >= 0 && h <= 1 && u <= 0 && u >= - 1 } } return ! 1 } , isLinear : function ( t , e , n , i ) { var r = i . subtract ( t ) . divide ( 3 ) ; return e . equals ( r ) && n . negate ( ) . equals ( r ) } } , function ( t , e ) { this [ e ] = function ( e ) { var n = this . _segment1 , i = this . _segment2 ; return t ( n . _point , n . _handleOut , i . _handleIn , i . _point , e ) } , this . statics [ e ] = function ( e , n ) { var i = e [ 0 ] , r = e [ 1 ] , s = e [ 6 ] , a = e [ 7 ] ; return t ( new f ( i , r ) , new f ( e [ 2 ] - i , e [ 3 ] - r ) , new f ( e [ 4 ] - s , e [ 5 ] - a ) , new f ( s , a ) , n ) } } , { statics : { } , hasHandles : function ( ) { return ! this . _segment1 . _handleOut . isZero ( ) || ! this . _segment2 . _handleIn . isZero ( ) } , hasLength : function ( t ) { return ( ! this . getPoint1 ( ) . equals ( this . getPoint2 ( ) ) || this . hasHandles ( ) ) && this . getLength ( ) > ( t || 0 ) } , isCollinear : function ( t ) { return t && this . isStraight ( ) && t . isStraight ( ) && this . getLine ( ) . isCollinear ( t . getLine ( ) ) } , isHorizontal : function ( ) { return this . isStraight ( ) && Math . abs ( this . getTangentAtTime ( . 5 ) . y ) < 1e-8 } , isVertical : function ( ) { return this . isStraight ( ) && Math . abs ( this . getTangentAtTime ( . 5 ) . x ) < 1e-8 } } ) , { beans : ! 1 , getLocationAt : function ( t , e ) { return this . getLocationAtTime ( e ? t : this . getTimeAt ( t ) ) } , getLocationAtTime : function ( t ) { return null != t && t >= 0 && t <= 1 ? new z ( this , t ) : null } , getTimeAt : function ( t , e ) { return O . getTimeAt ( this . getValues ( ) , t , e ) } , getParameterAt : "#getTimeAt" , getTimesWithTangent : function ( ) { var t = f . read ( arguments ) ; return t . isZero ( ) ? [ ] : O . getTimesWithTangent ( this . getValues ( ) , t ) } , getOffsetAtTime : function ( t ) { return this . getPartLength ( 0 , t ) } , getLocationOf : function ( ) { return this . getLocationAtTime ( this . getTimeOf ( f . read ( arguments ) ) ) } , getOffsetOf : function ( ) { var t = this . getLocationOf . apply ( this , arguments ) ; return t ? t . getOffset ( ) : null } , getTimeOf : function ( ) { return O . getTimeOf ( this . getValues ( ) , f . read ( arguments ) ) } , getParameterOf : "#getTimeOf" , getNearestLocation : function ( ) { var t = f . read ( arguments ) , e = this . getValues ( ) , n = O . getNearestTime ( e , t ) , i = O . getPoint ( e , n ) ; return new z ( this , n , i , null , t . getDistance ( i ) ) } , getNearestPoint : function ( ) { var t = this . getNearestLocation . apply ( this , arguments ) ; return t ? t . getPoint ( ) : t } } , new function ( ) { var t = [ "getPoint" , "getTangent" , "getNormal" , "getWeightedTangent" , "getWeightedNormal" , "getCurvature" ] ; return r . each ( t , function ( t ) { this [ t + "At" ] = function ( e , n ) { var i = this . getValues ( ) ; return O [ t ] ( i , n ? e : O . getTimeAt ( i , e ) ) } , this [ t + "AtTime" ] = function ( e ) { return O [ t ] ( this . getValues ( ) , e ) } } , { statics : { _evaluateMethods : t } } ) } , new function ( ) { function t ( t ) { var e = t [ 0 ] , n = t [ 1 ] , i = t [ 2 ] , r = t [ 3 ] , s = t [ 4 ] , a = t [ 5 ] , o = t [ 6 ] , h = t [ 7 ] , u = 9 * ( i - s ) + 3 * ( o - e ) , l = 6 * ( e + s ) - 12 * i , c = 3 * ( i - e ) , f = 9 * ( r - a ) + 3 * ( h - n ) , d = 6 * ( n + a ) - 12 * r , _ = 3 * ( r - n ) ; return function ( t ) { var e = ( u * t + l ) * t + c , n = ( f * t + d ) * t + _ ; return Math . sqrt ( e * e + n * n ) } } function n ( t , e ) { return Math . max ( 2 , Math . min ( 16 , Math . ceil ( 32 * Math . abs ( e - t ) ) ) ) } function i ( t , e , n , i ) { if ( null == e || e < 0 || e > 1 ) return null ; var r = t [ 0 ] , s = t [ 1 ] , a = t [ 2 ] , o = t [ 3 ] , h = t [ 4 ] , u = t [ 5 ] , c = t [ 6 ] , d = t [ 7 ] , _ = l . isZero ; _ ( a - r ) && _ ( o - s ) && ( a = r , o = s ) , _ ( h - c ) && _ ( u - d ) && ( h = c , u = d ) ; var g , v , p = 3 * ( a - r ) , m = 3 * ( h - a ) - p , y = c - r - p - m , w = 3 * ( o - s ) , x = 3 * ( u - o ) - w , b = d - s - w - x ; if ( 0 === n ) g = 0 === e ? r : 1 === e ? c : ( ( y * e + m ) * e + p ) * e + r , v = 0 === e ? s : 1 === e ? d : ( ( b * e + x ) * e + w ) * e + s ; else { var C = 1e-8 , S = 1 - C ; if ( e < C ? ( g = p , v = w ) : e > S ? ( g = 3 * ( c - h ) , v = 3 * ( d - u ) ) : ( g = ( 3 * y * e + 2 * m ) * e + p , v = ( 3 * b * e + 2 * x ) * e + w ) , i ) { 0 === g && 0 === v && ( e < C || e > S ) && ( g = h - a , v = u - o ) ; var k = Math . sqrt ( g * g + v * v ) ; k && ( g /= k , v /= k ) } if ( 3 === n ) { var h = 6 * y * e + 2 * m , u = 6 * b * e + 2 * x , I = Math . pow ( g * g + v * v , 1.5 ) ; g = 0 !== I ? ( g * u - v * h ) / I : 0 , v = 0 } } return 2 === n ? new f ( v , ( - g ) ) : new f ( g , v ) } return { statics : { classify : function ( t ) { function n ( t , n , i ) { var r = n !== e , s = r && n > 0 && n < 1 , a = r && i > 0 && i < 1 ; return ! r || ( s || a ) && ( "loop" !== t || s && a ) || ( t = "arch" , s = a = ! 1 ) , { type : t , roots : s || a ? s && a ? n < i ? [ n , i ] : [ i , n ] : [ s ? n : i ] : null } } var i = t [ 0 ] , r = t [ 1 ] , s = t [ 2 ] , a = t [ 3 ] , o = t [ 4 ] , h = t [ 5 ] , u = t [ 6 ] , c = t [ 7 ] , f = i * ( c - h ) + r * ( o - u ) + u * h - c * o , d = s * ( r - c ) + a * ( u - i ) + i * c - r * u , _ = o * ( a - r ) + h * ( i - s ) + s * r - a * i , g = 3 * _ , v = g - d , p = v - d + f , m = Math . sqrt ( p * p + v * v + g * g ) , y = 0 !== m ? 1 / m : 0 , w = l . isZero , x = "serpentine" ; if ( p *= y , v *= y , g *= y , w ( p ) ) return w ( v ) ? n ( w ( g ) ? "line" : "quadratic" ) : n ( x , g / ( 3 * v ) ) ; var b = 3 * v * v - 4 * p * g ; if ( w ( b ) ) return n ( "cusp" , v / ( 2 * p ) ) ; var C = b > 0 ? Math . sqrt ( b / 3 ) : Math . sqrt ( - b ) , S = 2 * p ; return n ( b > 0 ? x : "loop" , ( v + C ) / S , ( v - C ) / S ) } , getLength : function ( i , r , s , a ) { if ( r === e && ( r = 0 ) , s === e && ( s = 1 ) , O . isStraight ( i ) ) { var o = i ; s < 1 && ( o = O . subdivide ( o , s ) [ 0 ] , r /= s ) , r > 0 && ( o = O . subdivide ( o , r ) [ 1 ] ) ; var h = o [ 6 ] - o [ 0 ] , u = o [ 7 ] - o [ 1 ] ; return Math . sqrt ( h * h + u * u ) } return l . integrate
2020-02-11 16:56:41 -05:00
} n += a . length } return e } } ) , new function ( ) { function t ( t , e , n , i ) { function r ( e ) { var n = l [ e ] , i = l [ e + 1 ] ; s == n && a == i || ( t . beginPath ( ) , t . moveTo ( s , a ) , t . lineTo ( n , i ) , t . stroke ( ) , t . beginPath ( ) , t . arc ( n , i , o , 0 , 2 * Math . PI , ! 0 ) , t . fill ( ) ) } if ( ! ( i <= 0 ) ) for ( var s , a , o = i / 2 , h = i - 2 , u = o - 1 , l = new Array ( 6 ) , c = 0 , f = e . length ; c < f ; c ++ ) { var d = e [ c ] , _ = d . _selection ; if ( d . _transformCoordinates ( n , l ) , s = l [ 0 ] , a = l [ 1 ] , 2 & _ && r ( 2 ) , 4 & _ && r ( 4 ) , t . fillRect ( s - o , a - o , i , i ) , h > 0 && ! ( 1 & _ ) ) { var g = t . fillStyle ; t . fillStyle = "#ffffff" , t . fillRect ( s - u , a - u , h , h ) , t . fillStyle = g } } } function e ( t , e , n ) { function i ( e ) { if ( n ) e . _transformCoordinates ( n , _ ) , r = _ [ 0 ] , s = _ [ 1 ] ; else { var i = e . _point ; r = i . _x , s = i . _y } if ( g ) t . moveTo ( r , s ) , g = ! 1 ; else { if ( n ) h = _ [ 2 ] , u = _ [ 3 ] ; else { var f = e . _handleIn ; h = r + f . _x , u = s + f . _y } h === r && u === s && l === a && c === o ? t . lineTo ( r , s ) : t . bezierCurveTo ( l , c , h , u , r , s ) } if ( a = r , o = s , n ) l = _ [ 4 ] , c = _ [ 5 ] ; else { var f = e . _handleOut ; l = a + f . _x , c = o + f . _y } } for ( var r , s , a , o , h , u , l , c , f = e . _segments , d = f . length , _ = new Array ( 6 ) , g = ! 0 , v = 0 ; v < d ; v ++ ) i ( f [ v ] ) ; e . _closed && d > 0 && i ( f [ 0 ] ) } return { _draw : function ( t , n , i , r ) { function s ( t ) { return c [ ( t % f + f ) % f ] } var a = n . dontStart , o = n . dontFinish || n . clip , h = this . getStyle ( ) , u = h . hasFill ( ) , l = h . hasStroke ( ) , c = h . getDashArray ( ) , f = ! at . support . nativeDash && l && c && c . length ; if ( a || t . beginPath ( ) , ( u || l && ! f || o ) && ( e ( t , this , r ) , this . _closed && t . closePath ( ) ) , ! o && ( u || l ) && ( this . _setStyles ( t , n , i ) , u && ( t . fill ( h . getFillRule ( ) ) , t . shadowColor = "rgba(0,0,0,0)" ) , l ) ) { if ( f ) { a || t . beginPath ( ) ; var d , _ = new B ( this , . 25 , 32 , ( ! 1 ) , r ) , g = _ . length , v = - h . getDashOffset ( ) , p = 0 ; for ( v %= g ; v > 0 ; ) v -= s ( p -- ) + s ( p -- ) ; for ( ; v < g ; ) d = v + s ( p ++ ) , ( v > 0 || d > 0 ) && _ . drawPart ( t , Math . max ( v , 0 ) , Math . max ( d , 0 ) ) , v = d + s ( p ++ ) } t . stroke ( ) } } , _drawSelected : function ( n , i ) { n . beginPath ( ) , e ( n , this , i ) , n . stroke ( ) , t ( n , this . _segments , i , at . settings . handleSize ) } } } , new function ( ) { function t ( t ) { var e = t . _segments ; if ( ! e . length ) throw new Error ( "Use a moveTo() command first" ) ; return e [ e . length - 1 ] } return { moveTo : function ( ) { var t = this . _segments ; 1 === t . length && this . removeSegment ( 0 ) , t . length || this . _add ( [ new A ( f . read ( arguments ) ) ] ) } , moveBy : function ( ) { throw new Error ( "moveBy() is unsupported on Path items." ) } , lineTo : function ( ) { this . _add ( [ new A ( f . read ( arguments ) ) ] ) } , cubicCurveTo : function ( ) { var e = arguments , n = f . read ( e ) , i = f . read ( e ) , r = f . read ( e ) , s = t ( this ) ; s . setHandleOut ( n . subtract ( s . _point ) ) , this . _add ( [ new A ( r , i . subtract ( r ) ) ] ) } , quadraticCurveTo : function ( ) { var e = arguments , n = f . read ( e ) , i = f . read ( e ) , r = t ( this ) . _point ; this . cubicCurveTo ( n . add ( r . subtract ( n ) . multiply ( 1 / 3 ) ) , n . add ( i . subtract ( n ) . multiply ( 1 / 3 ) ) , i ) } , curveTo : function ( ) { var e = arguments , n = f . read ( e ) , i = f . read ( e ) , s = r . pick ( r . read ( e ) , . 5 ) , a = 1 - s , o = t ( this ) . _point , h = n . subtract ( o . multiply ( a * a ) ) . subtract ( i . multiply ( s * s ) ) . divide ( 2 * s * a ) ; if ( h . isNaN ( ) ) throw new Error ( "Cannot put a curve through points with parameter = " + s ) ; this . quadraticCurveTo ( h , i ) } , arcTo : function ( ) { var e , n , i , s , a , o = arguments , h = Math . abs , u = Math . sqrt , c = t ( this ) , d = c . _point , g = f . read ( o ) , v = r . peek ( o ) , p = r . pick ( v , ! 0 ) ; if ( "boolean" == typeof p ) var w = d . add ( g ) . divide ( 2 ) , e = w . add ( w . subtract ( d ) . rotate ( p ? - 90 : 90 ) ) ; else if ( r . remain ( o ) <= 2 ) e = g , g = f . read ( o ) ; else if ( ! d . equals ( g ) ) { var x = _ . read ( o ) , b = l . isZero ; if ( b ( x . width ) || b ( x . height ) ) return this . lineTo ( g ) ; var C = r . read ( o ) , p = ! ! r . read ( o ) , S = ! ! r . read ( o ) , w = d . add ( g ) . divide ( 2 ) , k = d . subtract ( w ) . rotate ( - C ) , I = k . x , P = k . y , M = h ( x . width ) , T = h ( x . height ) , O = M * M , z = T * T , L = I * I , E = P * P , N = u ( L / O + E / z ) ; if ( N > 1 && ( M *= N , T *= N , O = M * M , z = T * T ) , N = ( O * z - O * E - z * L ) / ( O * E + z * L ) , h ( N ) < 1e-12 && ( N = 0 ) , N < 0 ) throw new Error ( "Cannot create an arc with the given arguments" ) ; n = new f ( M * P / T , - T * I / M ) . multiply ( ( S === p ? - 1 : 1 ) * u ( N ) ) . rotate ( C ) . add ( w ) , a = ( new m ) . translate ( n ) . rotate ( C ) . scale ( M , T ) , s = a . _inverseTransform ( d ) , i = s . getDirectedAngle ( a . _inverseTransform ( g ) ) , ! p && i > 0 ? i -= 360 : p && i < 0 && ( i += 360 ) } if ( e ) { var B = new y ( d . add ( e ) . divide ( 2 ) , e . subtract ( d ) . rotate ( 90 ) , ( ! 0 ) ) , F = new y ( e . add ( g ) . divide ( 2 ) , g . subtract ( e ) . rotate ( 90 ) , ( ! 0 ) ) , j = new y ( d , g ) , R = j . getSide ( e ) ; if ( n = B . intersect ( F , ! 0 ) , ! n ) { if ( ! R ) return this . lineTo ( g ) ; throw new Error ( "Cannot create an arc with the given arguments" ) } s = d . subtract ( n ) , i = s . getDirectedAngle ( g . subtract ( n ) ) ; var D = j . getSide ( n , ! 0 ) ; 0 === D ? i = R * h ( i ) : R === D && ( i += i < 0 ? 360 : - 360 ) } if ( i ) { for ( var q = 1e-7 , V = h ( i ) , U = V >= 360 ? 4 : Math . ceil ( ( V - q ) / 90 ) , H = i / U , Z = H * Math . PI / 360 , W = 4 / 3 * Math . sin ( Z ) / ( 1 + Math . cos ( Z ) ) , $ = [ ] , G = 0 ; G <=
2020-05-23 07:44:20 -04:00
if ( "string" === d && e in i && ( n = e , e = u [ 1 ] , Array . isArray ( e ) ? ( a = e , o = u [ 2 ] ) : ( c && ( f = 1 ) , u = r . slice ( u , 1 ) , d = typeof e ) ) , ! a ) { if ( h = "number" === d ? u : "object" === d && null != e . length ? e : null ) { n || ( n = h . length >= 3 ? "rgb" : "gray" ) ; var _ = i [ n ] . length ; o = h [ _ ] , c && ( f += h === arguments ? _ + ( null != o ? 1 : 0 ) : 1 ) , h . length > _ && ( h = r . slice ( h , 0 , _ ) ) } else if ( "string" === d ) { var g = t ( e ) ; n = g [ 0 ] , a = g [ 1 ] , 4 === a . length && ( o = a [ 3 ] , a . length -- ) } else if ( "object" === d ) if ( e . constructor === l ) { if ( n = e . _type , a = e . _components . slice ( ) , o = e . _alpha , "gradient" === n ) for ( var v = 1 , p = a . length ; v < p ; v ++ ) { var m = a [ v ] ; m && ( a [ v ] = m . clone ( ) ) } } else if ( e . constructor === q ) n = "gradient" , h = u ; else { n = "hue" in e ? "lightness" in e ? "hsl" : "hsb" : "gradient" in e || "stops" in e || "radial" in e ? "gradient" : "gray" in e ? "gray" : "rgb" ; var y = i [ n ] , w = s [ n ] ; this . _components = a = [ ] ; for ( var v = 0 , p = y . length ; v < p ; v ++ ) { var x = e [ y [ v ] ] ; null == x && ! v && "gradient" === n && "stops" in e && ( x = { stops : e . stops , radial : e . radial } ) , x = w [ v ] . call ( this , x ) , null != x && ( a [ v ] = x ) } o = e . alpha } c && n && ( f = 1 ) } if ( this . _type = n || "rgb" , ! a ) { this . _components = a = [ ] ; for ( var w = s [ this . _type ] , v = 0 , p = w . length ; v < p ; v ++ ) { var x = w [ v ] . call ( this , h && h [ v ] ) ; null != x && ( a [ v ] = x ) } } return this . _components = a , this . _properties = i [ this . _type ] , this . _alpha = o , c && ( this . _ _read = f ) , this } , set : "#initialize" , _serialize : function ( t , e ) { var n = this . getComponents ( ) ; return r . serialize ( /^(gray|rgb)$/ . test ( this . _type ) ? n : [ this . _type ] . concat ( n ) , t , ! 0 , e ) } , _changed : function ( ) { this . _canvasStyle = null , this . _owner && ( this . _setter ? this . _owner [ this . _setter ] ( this ) : this . _owner . _changed ( 129 ) ) } , _convert : function ( t ) { var e ; return this . _type === t ? this . _components . slice ( ) : ( e = h [ this . _type + "-" + t ] ) ? e . apply ( this , this . _components ) : h [ "rgb-" + t ] . apply ( this , h [ this . _type + "-rgb" ] . apply ( this , this . _components ) ) } , convert : function ( t ) { return new D ( t , this . _convert ( t ) , this . _alpha ) } , getType : function ( ) { return this . _type } , setType : function ( t ) { this . _components = this . _convert ( t ) , this . _properties = i [ t ] , this . _type = t } , getComponents : function ( ) { var t = this . _components . slice ( ) ; return null != this . _alpha && t . push ( this . _alpha ) , t } , getAlpha : function ( ) { return null != this . _alpha ? this . _alpha : 1 } , setAlpha : function ( t ) { this . _alpha = null == t ? null : Math . min ( Math . max ( t , 0 ) , 1 ) , this . _changed ( ) } , hasAlpha : function ( ) { return null != this . _alpha } , equals : function ( t ) { var e = r . isPlainValue ( t , ! 0 ) ? D . read ( arguments ) : t ; return e === this || e && this . _class === e . _class && this . _type === e . _type && this . getAlpha ( ) === e . getAlpha ( ) && r . equals ( this . _components , e . _components ) || ! 1 } , toString : function ( ) { for ( var t = this . _properties , e = [ ] , n = "gradient" === this . _type , i = u . instance , r = 0 , s = t . length ; r < s ; r ++ ) { var a = this . _components [ r ] ; null != a && e . push ( t [ r ] + ": " + ( n ? a : i . number ( a ) ) ) } return null != this . _alpha && e . push ( "alpha: " + i . number ( this . _alpha ) ) , "{ " + e . join ( ", " ) + " }" } , toCSS : function ( t ) { function e ( t ) { return Math . round ( 255 * ( t < 0 ? 0 : t > 1 ? 1 : t ) ) } var n = this . _convert ( "rgb" ) , i = t || null == this . _alpha ? 1 : this . _alpha ; return n = [ e ( n [ 0 ] ) , e ( n [ 1 ] ) , e ( n [ 2 ] ) ] , i < 1 && n . push ( i < 0 ? 0 : i ) , t ? "#" + ( ( 1 << 24 ) + ( n [ 0 ] << 16 ) + ( n [ 1 ] << 8 ) + n [ 2 ] ) . toString ( 16 ) . slice ( 1 ) : ( 4 == n . length ? "rgba(" : "rgb(" ) + n . join ( "," ) + ")" } , toCanvasStyle : function ( t , e ) { if ( this . _canvasStyle ) return this . _canvasStyle ; if ( "gradient" !== this . _type ) return this . _canvasStyle = this . toCSS ( ) ; var n , i = this . _components , r = i [ 0 ] , s = r . _stops , a = i [ 1 ] , o = i [ 2 ] , h = i [ 3 ] , u = e && e . inverted ( ) ; if ( u && ( a = u . _transformPoint ( a ) , o = u . _transformPoint ( o ) , h && ( h = u . _transformPoint ( h ) ) ) , r . _radial ) { var l = o . getDistance ( a ) ; if ( h ) { var c = h . subtract ( a ) ; c . getLength ( ) > l && ( h = a . add ( c . normalize ( l - . 1 ) ) ) } var f = h || a ; n = t . createRadialGradient ( f . x , f . y , 0 , a . x , a . y , l ) } else n = t . createLinearGradient ( a . x , a . y , o . x , o . y ) ; for ( var d = 0 , _ = s . length ; d < _ ; d ++ ) { var g = s [ d ] , v = g . _offset ; n . addColorStop ( null == v ? d / ( _ - 1 ) : v , g . _color . toCanvasStyle ( ) ) } return this . _canvasStyle = n } , transform : function ( t ) { if ( "gradient" === this . _type ) { for ( var e = this . _components , n = 1 , i = e . length ; n < i ; n ++ ) { var r = e [ n ] ; t . _transformPoint ( r , r , ! 0 ) } this . _changed ( ) } } , statics : { _types : i , random : function ( ) { var t = Math . random ; return new D ( t ( ) , t ( ) , t ( ) ) } , _setOwner : function ( t , e , n ) { return t && ( t . _owner && e && t . _owner !== e && ( t = t . clone ( ) ) , ! t . _owner ^ ! e && ( t . _owner = e || null , t . _setter = n || null ) ) , t } } } ) } , new function ( ) { var t = { add : function ( t , e ) { return t + e } , subtract : function ( t , e ) { return t - e } , multiply : function ( t , e ) { return t * e
2020-05-23 08:12:25 -04:00
return r . width === t && r . height === e ? s && a . clearRect ( 0 , 0 , t + 1 , e + 1 ) : ( r . width = t , r . height = e ) , a . save ( ) , r } , getContext : function ( t , e ) { var n = this . getCanvas ( t , e ) ; return n ? n . getContext ( "2d" ) : null } , release : function ( t ) { var e = t && t . canvas ? t . canvas : t ; e && e . getContext && ( e . getContext ( "2d" ) . restore ( ) , this . canvases . push ( e ) ) } } , it = new function ( ) { function t ( t , e , n ) { return . 2989 * t + . 587 * e + . 114 * n } function e ( e , n , i , r ) { var s = r - t ( e , n , i ) ; d = e + s , _ = n + s , g = i + s ; var r = t ( d , _ , g ) , a = v ( d , _ , g ) , o = p ( d , _ , g ) ; if ( a < 0 ) { var h = r - a ; d = r + ( d - r ) * r / h , _ = r + ( _ - r ) * r / h , g = r + ( g - r ) * r / h } if ( o > 255 ) { var u = 255 - r , l = o - r ; d = r + ( d - r ) * u / l , _ = r + ( _ - r ) * u / l , g = r + ( g - r ) * u / l } } function n ( t , e , n ) { return p ( t , e , n ) - v ( t , e , n ) } function i ( t , e , n , i ) { var r , s = [ t , e , n ] , a = p ( t , e , n ) , o = v ( t , e , n ) ; o = o === t ? 0 : o === e ? 1 : 2 , a = a === t ? 0 : a === e ? 1 : 2 , r = 0 === v ( o , a ) ? 1 === p ( o , a ) ? 2 : 1 : 0 , s [ a ] > s [ o ] ? ( s [ r ] = ( s [ r ] - s [ o ] ) * i / ( s [ a ] - s [ o ] ) , s [ a ] = i ) : s [ r ] = s [ a ] = 0 , s [ o ] = 0 , d = s [ 0 ] , _ = s [ 1 ] , g = s [ 2 ] } var s , a , o , h , u , l , c , f , d , _ , g , v = Math . min , p = Math . max , m = Math . abs , y = { multiply : function ( ) { d = u * s / 255 , _ = l * a / 255 , g = c * o / 255 } , screen : function ( ) { d = u + s - u * s / 255 , _ = l + a - l * a / 255 , g = c + o - c * o / 255 } , overlay : function ( ) { d = u < 128 ? 2 * u * s / 255 : 255 - 2 * ( 255 - u ) * ( 255 - s ) / 255 , _ = l < 128 ? 2 * l * a / 255 : 255 - 2 * ( 255 - l ) * ( 255 - a ) / 255 , g = c < 128 ? 2 * c * o / 255 : 255 - 2 * ( 255 - c ) * ( 255 - o ) / 255 } , "soft-light" : function ( ) { var t = s * u / 255 ; d = t + u * ( 255 - ( 255 - u ) * ( 255 - s ) / 255 - t ) / 255 , t = a * l / 255 , _ = t + l * ( 255 - ( 255 - l ) * ( 255 - a ) / 255 - t ) / 255 , t = o * c / 255 , g = t + c * ( 255 - ( 255 - c ) * ( 255 - o ) / 255 - t ) / 255 } , "hard-light" : function ( ) { d = s < 128 ? 2 * s * u / 255 : 255 - 2 * ( 255 - s ) * ( 255 - u ) / 255 , _ = a < 128 ? 2 * a * l / 255 : 255 - 2 * ( 255 - a ) * ( 255 - l ) / 255 , g = o < 128 ? 2 * o * c / 255 : 255 - 2 * ( 255 - o ) * ( 255 - c ) / 255 } , "color-dodge" : function ( ) { d = 0 === u ? 0 : 255 === s ? 255 : v ( 255 , 255 * u / ( 255 - s ) ) , _ = 0 === l ? 0 : 255 === a ? 255 : v ( 255 , 255 * l / ( 255 - a ) ) , g = 0 === c ? 0 : 255 === o ? 255 : v ( 255 , 255 * c / ( 255 - o ) ) } , "color-burn" : function ( ) { d = 255 === u ? 255 : 0 === s ? 0 : p ( 0 , 255 - 255 * ( 255 - u ) / s ) , _ = 255 === l ? 255 : 0 === a ? 0 : p ( 0 , 255 - 255 * ( 255 - l ) / a ) , g = 255 === c ? 255 : 0 === o ? 0 : p ( 0 , 255 - 255 * ( 255 - c ) / o ) } , darken : function ( ) { d = u < s ? u : s , _ = l < a ? l : a , g = c < o ? c : o } , lighten : function ( ) { d = u > s ? u : s , _ = l > a ? l : a , g = c > o ? c : o } , difference : function ( ) { d = u - s , d < 0 && ( d = - d ) , _ = l - a , _ < 0 && ( _ = - _ ) , g = c - o , g < 0 && ( g = - g ) } , exclusion : function ( ) { d = u + s * ( 255 - u - u ) / 255 , _ = l + a * ( 255 - l - l ) / 255 , g = c + o * ( 255 - c - c ) / 255 } , hue : function ( ) { i ( s , a , o , n ( u , l , c ) ) , e ( d , _ , g , t ( u , l , c ) ) } , saturation : function ( ) { i ( u , l , c , n ( s , a , o ) ) , e ( d , _ , g , t ( u , l , c ) ) } , luminosity : function ( ) { e ( u , l , c , t ( s , a , o ) ) } , color : function ( ) { e ( s , a , o , t ( u , l , c ) ) } , add : function ( ) { d = v ( u + s , 255 ) , _ = v ( l + a , 255 ) , g = v ( c + o , 255 ) } , subtract : function ( ) { d = p ( u - s , 0 ) , _ = p ( l - a , 0 ) , g = p ( c - o , 0 ) } , average : function ( ) { d = ( u + s ) / 2 , _ = ( l + a ) / 2 , g = ( c + o ) / 2 } , negation : function ( ) { d = 255 - m ( 255 - s - u ) , _ = 255 - m ( 255 - a - l ) , g = 255 - m ( 255 - o - c ) } } , w = this . nativeModes = r . each ( [ "source-over" , "source-in" , "source-out" , "source-atop" , "destination-over" , "destination-in" , "destination-out" , "destination-atop" , "lighter" , "darker" , "copy" , "xor" ] , function ( t ) { this [ t ] = ! 0 } , { } ) , x = nt . getContext ( 1 , 1 ) ; x && ( r . each ( y , function ( t , e ) { var n = "darken" === e , i = ! 1 ; x . save ( ) ; try { x . fillStyle = n ? "#300" : "#a00" , x . fillRect ( 0 , 0 , 1 , 1 ) , x . globalCompositeOperation = e , x . globalCompositeOperation === e && ( x . fillStyle = n ? "#a00" : "#300" , x . fillRect ( 0 , 0 , 1 , 1 ) , i = x . getImageData ( 0 , 0 , 1 , 1 ) . data [ 0 ] !== n ? 170 : 51 ) } catch ( r ) { } x . restore ( ) , w [ e ] = i } ) , nt . release ( x ) ) , this . process = function ( t , e , n , i , r ) { var v = e . canvas , p = "normal" === t ; if ( p || w [ t ] ) n . save ( ) , n . setTransform ( 1 , 0 , 0 , 1 , 0 , 0 ) , n . globalAlpha = i , p || ( n . globalCompositeOperation = t ) , n . drawImage ( v , r . x , r . y ) , n . restore ( ) ; else { var m = y [ t ] ; if ( ! m ) return ; for ( var x = n . getImageData ( r . x , r . y , v . width , v . height ) , b = x . data , C = e . getImageData ( 0 , 0 , v . width , v . height ) . data , S = 0 , k = b . length ; S < k ; S += 4 ) { s = C [ S ] , u = b [ S ] , a = C [ S + 1 ] , l = b [ S + 1 ] , o = C [ S + 2 ] , c = b [ S + 2 ] , h = C [ S + 3 ] , f = b [ S + 3 ] , m ( ) ; var I = h * i / 255 , P = 1 - I ; b [ S ] = I * d + P * u , b [ S + 1 ] = I * _ + P * l , b [ S + 2 ] = I * g + P * c , b [ S + 3 ] = h * i + P * f } n . putImageData ( x , r . x , r . y ) } } } , rt = new function ( ) { function t ( t , e , s ) { return n ( i . createElementNS ( r , t ) , e , s ) } function e ( t , e ) { var n = o [ e ] , i = n ? t . getAttributeNS ( n , e ) : t . getAttribute ( e ) ; return "null" === i ? null : i } function n ( t , e , n ) { for ( var i in e ) { var r = e [ i ] , s = o [ i ] ; "number" == typeof r && n && ( r = n . number ( r ) ) , s ? t . setAttributeNS ( s , i , r ) : t . setAttribute ( i , r ) } return t } var r = "http://www.w3.org/2000/svg" , s = "http://www.w3.org/2000/xmlns" , a = "http://www.w3.org/1999/xlink" , o = { href : a , xlink : s , xmlns : s + "/" , "xmlns:xlink" : s + "/" } ; return { svg : r , xmlns : s , xlink : a , create : t , get : e , set :
N ( e , "ThrowStatement" ) ; case te : if ( A ( ) , e . block = W ( ) , e . handler = null , bt === qt ) { var l = L ( ) ; A ( ) , D ( ge ) , l . param = lt ( ) , zt && Ve ( l . param . name ) && n ( l . param . start , "Binding " + l . param . name + " in strict mode" ) , D ( ve ) , l . guard = null , l . body = W ( ) , e . handler = N ( l , "CatchClause" ) } return e . guardedHandlers = Lt , e . finalizer = F ( $t ) ? W ( ) : null , e . handler || e . finalizer || n ( e . start , "Missing catch or finally clause" ) , N ( e , "TryStatement" ) ; case ee : return A ( ) , J ( e ) , R ( ) , N ( e , "VariableDeclaration" ) ; case ne : return A ( ) , e . test = Z ( ) , Ot . push ( Ye ) , e . body = H ( ) , Ot . pop ( ) , N ( e , "WhileStatement" ) ; case ie : return zt && n ( mt , "'with' in strict mode" ) , A ( ) , e . object = Z ( ) , e . body = H ( ) , N ( e , "WithStatement" ) ; case de : return W ( ) ; case me : return A ( ) , N ( e , "EmptyStatement" ) ; default : var c = Ct , f = X ( ) ; if ( t === Ft && "Identifier" === f . type && F ( ye ) ) { for ( var r = 0 ; r < Ot . length ; ++ r ) Ot [ r ] . name === c && n ( f . start , "Label '" + c + "' is already declared" ) ; var d = bt . isLoop ? "loop" : bt === Qt ? "switch" : null ; return Ot . push ( { name : c , kind : d } ) , e . body = H ( ) , Ot . pop ( ) , e . label = f , N ( e , "LabeledStatement" ) } return e . expression = f , R ( ) , N ( e , "ExpressionStatement" ) } } function Z ( ) { D ( ge ) ; var t = X ( ) ; return D ( ve ) , t } function W ( t ) { var e , n = L ( ) , i = ! 0 , r = ! 1 ; for ( n . body = [ ] , D ( de ) ; ! F ( _e ) ; ) { var s = H ( ) ; n . body . push ( s ) , i && t && B ( s ) && ( e = r , T ( r = ! 0 ) ) , i = ! 1 } return r && ! e && T ( ! 1 ) , N ( n , "BlockStatement" ) } function $ ( t , e ) { return t . init = e , D ( me ) , t . test = bt === me ? null : X ( ) , D ( me ) , t . update = bt === ve ? null : X ( ) , D ( ve ) , t . body = H ( ) , Ot . pop ( ) , N ( t , "ForStatement" ) } function G ( t , e ) { return t . left = e , t . right = X ( ) , D ( ve ) , t . body = H ( ) , Ot . pop ( ) , N ( t , "ForInStatement" ) } function J ( t , e ) { for ( t . declarations = [ ] , t . kind = "var" ; ; ) { var i = L ( ) ; if ( i . id = lt ( ) , zt && Ve ( i . id . name ) && n ( i . id . start , "Binding " + i . id . name + " in strict mode" ) , i . init = F ( Ce ) ? X ( ! 0 , e ) : null , t . declarations . push ( N ( i , "VariableDeclarator" ) ) , ! F ( pe ) ) break } return t } function X ( t , e ) { var n = K ( e ) ; if ( ! t && bt === pe ) { var i = E ( n ) ; for ( i . expressions = [ n ] ; F ( pe ) ; ) i . expressions . push ( K ( e ) ) ; return N ( i , "SequenceExpression" ) } return n } function K ( t ) { var e = Q ( t ) ; if ( bt . isAssign ) { var n = E ( e ) ; return n . operator = Ct , n . left = e , A ( ) , n . right = K ( t ) , V ( e ) , N ( n , "AssignmentExpression" ) } return e } function Q ( t ) { var e = Y ( t ) ; if ( F ( xe ) ) { var n = E ( e ) ; return n . test = e , n . consequent = X ( ! 0 ) , D ( ye ) , n . alternate = X ( ! 0 , t ) , N ( n , "ConditionalExpression" ) } return e } function Y ( t ) { return tt ( et ( ) , - 1 , t ) } function tt ( t , e , n ) { var i = bt . binop ; if ( null != i && ( ! n || bt !== ue ) && i > e ) { var r = E ( t ) ; r . left = t , r . operator = Ct ; var s = bt ; A ( ) , r . right = tt ( et ( ) , i , n ) ; var a = N ( r , s === Pe || s === Me ? "LogicalExpression" : "BinaryExpression" ) ; return tt ( a , e , n ) } return t } function et ( ) { if ( bt . prefix ) { var t = L ( ) , e = bt . isUpdate ; return t . operator = Ct , t . prefix = ! 0 , St = ! 0 , A ( ) , t . argument = et ( ) , e ? V ( t . argument ) : zt && "delete" === t . operator && "Identifier" === t . argument . type && n ( t . start , "Deleting local variable in strict mode" ) , N ( t , e ? "UpdateExpression" : "UnaryExpression" ) } for ( var i = nt ( ) ; bt . postfix && ! j ( ) ; ) { var t = E ( i ) ; t . operator = Ct , t . prefix = ! 1 , t . argument = i , V ( i ) , A ( ) , i = N ( t , "UpdateExpression" ) } return i } function nt ( ) { return it ( rt ( ) ) } function it ( t , e ) { if ( F ( we ) ) { var n = E ( t ) ; return n . object = t , n . property = lt ( ! 0 ) , n . computed = ! 1 , it ( N ( n , "MemberExpression" ) , e ) } if ( F ( ce ) ) { var n = E ( t ) ; return n . object = t , n . property = X ( ) , n . computed = ! 0 , D ( fe ) , it ( N ( n , "MemberExpression" ) , e ) } if ( ! e && F ( ge ) ) { var n = E ( t ) ; return n . callee = t , n . arguments = ut ( ve , ! 1 ) , it ( N ( n , "CallExpression" ) , e ) } return t } function rt ( ) { switch ( bt ) { case se : var t = L ( ) ; return A ( ) , N ( t , "ThisExpression" ) ; case Ft : return lt ( ) ; case Et : case Bt : case Nt : var t = L ( ) ; return t . value = Ct , t . raw = ft . slice ( mt , yt ) , A ( ) , N ( t , "Literal" ) ; case ae : case oe : case he : var t = L ( ) ; return t . value = bt . atomValue , t . raw = bt . keyword , A ( ) , N ( t , "Literal" ) ; case ge : var e = wt , n = mt ; A ( ) ; var i = X ( ) ; return i . start = n , i . end = yt , ct . locations && ( i . loc . start = e , i . loc . end = xt ) , ct . ranges && ( i . range = [ n , yt ] ) , D ( ve ) , i ; case ce : var t = L ( ) ; return A ( ) , t . elements = ut ( fe , ! 0 , ! 0 ) , N ( t , "ArrayExpression" ) ; case de : return at ( ) ; case Jt : var t = L ( ) ; return A ( ) , ht ( t , ! 1 ) ; case re : return st ( ) ; default : q ( ) } } function st ( ) { var t = L ( ) ; return A ( ) , t . callee = it ( rt ( ) , ! 0 ) , F ( ge ) ? t . arguments = ut ( ve , ! 1 ) : t . arguments = Lt , N ( t , "NewExpression" ) } function at ( ) { var t = L ( ) , e = ! 0 , i = ! 1 ; for ( t . properties = [ ] , A ( ) ; ! F ( _e ) ; ) { if ( e ) e = ! 1 ; else if ( D ( pe ) , ct . allowTrailingCommas && F ( _e ) ) break ; var r , s = { key : ot ( ) } , a = ! 1 ; if ( F ( ye ) ? ( s . value = X ( ! 0 ) , r = s . kind = "init" ) : ct . ecmaVersion >= 5 &