2014-09-16 17:33:15 +00:00
( function ( ) { var a = function ( a ) { "use strict" ; a = a ? a : { } ; var b = { bgColor : "#d00" , textColor : "#fff" , fontFamily : "sans-serif" , fontStyle : "bold" , type : "circle" , position : "down" , animation : "slide" , elementId : false } ; var c , d , e , f , g , h , i , j , k , l , m , n , o ; o = { } ; o . ff = /firefox/i . test ( navigator . userAgent . toLowerCase ( ) ) ; o . chrome = /chrome/i . test ( navigator . userAgent . toLowerCase ( ) ) ; o . opera = /opera/i . test ( navigator . userAgent . toLowerCase ( ) ) ; o . ie = /msie/i . test ( navigator . userAgent . toLowerCase ( ) ) || /trident/i . test ( navigator . userAgent . toLowerCase ( ) ) ; o . supported = o . chrome || o . ff || o . opera ; var p = [ ] ; m = function ( ) { } ; j = n = false ; var q = function ( ) { c = B ( b , a ) ; c . bgColor = A ( c . bgColor ) ; c . textColor = A ( c . textColor ) ; c . position = c . position . toLowerCase ( ) ; c . animation = D . types [ "" + c . animation ] ? c . animation : b . animation ; var j = c . position . indexOf ( "up" ) > - 1 ; var k = c . position . indexOf ( "left" ) > - 1 ; if ( j || k ) { for ( var l = 0 ; l < D . types [ "" + c . animation ] . length ; l ++ ) { var m = D . types [ "" + c . animation ] [ l ] ; if ( j ) { if ( m . y < . 6 ) { m . y = m . y - . 4 } else { m . y = m . y - 2 * m . y + ( 1 - m . w ) } } if ( k ) { if ( m . x < . 6 ) { m . x = m . x - . 4 } else { m . x = m . x - 2 * m . x + ( 1 - m . h ) } } D . types [ "" + c . animation ] [ l ] = m } } c . type = s [ "" + c . type ] ? c . type : b . type ; try { d = z . getIcon ( ) ; g = document . createElement ( "canvas" ) ; i = document . createElement ( "img" ) ; if ( d . hasAttribute ( "href" ) ) { i . setAttribute ( "src" , d . getAttribute ( "href" ) ) ; i . onload = function ( ) { e = i . height > 0 ? i . height : 32 ; f = i . width > 0 ? i . width : 32 ; g . height = e ; g . width = f ; h = g . getContext ( "2d" ) ; r . ready ( ) } } else { i . setAttribute ( "src" , "" ) ; e = 32 ; f = 32 ; i . height = e ; i . width = f ; g . height = e ; g . width = f ; h = g . getContext ( "2d" ) ; r . ready ( ) } } catch ( n ) { throw "Error initializing favico. Message: " + n . message } } ; var r = { } ; r . ready = function ( ) { j = true ; r . reset ( ) ; m ( ) } ; r . reset = function ( ) { p = [ ] ; k = false ; h . clearRect ( 0 , 0 , f , e ) ; h . drawImage ( i , 0 , 0 , f , e ) ; z . setIcon ( g ) } ; r . start = function ( ) { if ( ! j || l ) { return } var a = function ( ) { k = p [ 0 ] ; l = false ; if ( p . length > 0 ) { p . shift ( ) ; r . start ( ) } else { } } ; if ( p . length > 0 ) { l = true ; if ( k ) { D . run ( k . options , function ( ) { D . run ( p [ 0 ] . options , function ( ) { a ( ) } , false ) } , true ) } else { D . run ( p [ 0 ] . options , function ( ) { a ( ) } , false ) } } } ; var s = { } ; var t = function ( a ) { a . n = typeof a . n === "number" ? Math . abs ( a . n | 0 ) : a . n ; a . x = f * a . x ; a . y = e * a . y ; a . w = f * a . w ; a . h = e * a . h ; a . len = ( "" + a . n ) . length ; return a } ; s . circle = function ( a ) { a = t ( a ) ; var b = false ; if ( a . len === 2 ) { a . x = a . x - a . w * . 4 ; a . w = a . w * 1.4 ; b = true } else if ( a . len >= 3 ) { a . x = a . x - a . w * . 65 ; a . w = a . w * 1.65 ; b = true } h . clearRect ( 0 , 0 , f , e ) ; h . drawImage ( i , 0 , 0 , f , e ) ; h . beginPath ( ) ; h . font = c . fontStyle + " " + Math . floor ( a . h * ( a . n > 99 ? . 85 : 1 ) ) + "px " + c . fontFamily ; h . textAlign = "center" ; if ( b ) { h . moveTo ( a . x + a . w / 2 , a . y ) ; h . lineTo ( a . x + a . w - a . h / 2 , a . y ) ; h . quadraticCurveTo ( a . x + a . w , a . y , a . x + a . w , a . y + a . h / 2 ) ; h . lineTo ( a . x + a . w , a . y + a . h - a . h / 2 ) ; h . quadraticCurveTo ( a . x + a . w , a . y + a . h , a . x + a . w - a . h / 2 , a . y + a . h ) ; h . lineTo ( a . x + a . h / 2 , a . y + a . h ) ; h . quadraticCurveTo ( a . x , a . y + a . h , a . x , a . y + a . h - a . h / 2 ) ; h . lineTo ( a . x , a . y + a . h / 2 ) ; h . quadraticCurveTo ( a . x , a . y , a . x + a . h / 2 , a . y ) } else { h . arc ( a . x + a . w / 2 , a . y + a . h / 2 , a . h / 2 , 0 , 2 * Math . PI ) } h . fillStyle = "rgba(" + c . bgColor . r + "," + c . bgColor . g + "," + c . bgColor . b + "," + a . o + ")" ; h . fill ( ) ; h . closePath ( ) ; h . beginPath ( ) ; h . stroke ( ) ; h . fillStyle = "rgba(" + c . textColor . r + "," + c . textColor . g + "," + c . textColor . b + "," + a . o + ")" ; if ( typeof a . n === "number" && a . n > 999 ) { h . fillText ( ( a . n > 9999 ? 9 : Math . floor ( a . n / 1e3 ) ) + "k+" , Math . floor ( a . x + a . w / 2 ) , Math . floor ( a . y + a . h - a . h * . 2 ) ) } else { h . fillText ( a . n , Math . floor ( a . x + a . w / 2 ) , Math . floor ( a . y + a . h - a . h * . 15 ) ) } h . closePath ( ) } ; s . rectangle = function ( a ) { a = t ( a ) ; var b = false ; if ( a . len === 2 ) { a . x = a . x - a . w * . 4 ; a . w = a . w * 1.4 ; b = true } else if ( a . len >= 3 ) { a . x = a . x - a . w * . 65 ; a . w = a . w * 1.65 ; b = true } h . clearRect ( 0 , 0 , f , e ) ; h . drawImage ( i , 0 , 0 , f , e ) ; h . beginPath ( ) ; h . font = "bold " + Math . floor ( a . h * ( a . n > 99 ? . 9 : 1 ) ) + "px sans-serif" ; h . textAlign = "center" ; h . fillStyle = "rgba(" + c . bgColor . r + "," + c . bgColor . g + "," + c . bgColor . b + "," + a . o + ")" ; h . fillRect ( a . x , a . y , a . w , a . h ) ; h . fillStyle = "rgba(" + c . textColor . r + "," + c . textColor . g + "," + c . textColor . b + "," + a . o + ")" ; if ( typeof a . n === "number" && a . len > 3 ) { h . fillText ( ( a . n > 9999 ? 9 : Math . floor ( a . n / 1e3 ) ) + "k+" , Math . floor ( a . x + a . w / 2 ) , Math . floor ( a . y + a . h - a . h * . 2 ) ) } else { h . fillText ( a . n , Math . floor ( a . x + a . w / 2 ) , Math . floor ( a . y + a . h - a . h * . 15 ) ) } h . closePath ( ) } ; var u = function ( a , b ) { m = function ( ) { try { if ( typeof a === "number" ? a > 0 : a !== "" ) { if ( D . types [ "" + b ] ) { c . animation = b } p . push ( { type : "badge" , options : { n : a } } ) ; if ( p . length > 100 ) { throw " Too many badges requests in queu
2014-09-10 16:50:59 +00:00
} ) } , ATTR : function ( a , b , c ) { return function ( d ) { var e = fb . attr ( d , a ) ; if ( e == null ) { return b === "!=" } if ( ! b ) { return true } e += "" ; return b === "=" ? e === c : b === "!=" ? e !== c : b === "^=" ? c && e . indexOf ( c ) === 0 : b === "*=" ? c && e . indexOf ( c ) > - 1 : b === "$=" ? c && e . slice ( - c . length ) === c : b === "~=" ? ( " " + e + " " ) . indexOf ( c ) > - 1 : b === "|=" ? e === c || e . slice ( 0 , c . length + 1 ) === c + "-" : false } } , CHILD : function ( a , b , c , d , e ) { var f = a . slice ( 0 , 3 ) !== "nth" , g = a . slice ( - 4 ) !== "last" , h = b === "of-type" ; return d === 1 && e === 0 ? function ( a ) { return ! ! a . parentNode } : function ( b , c , i ) { var j , k , l , m , n , o , p = f !== g ? "nextSibling" : "previousSibling" , q = b . parentNode , r = h && b . nodeName . toLowerCase ( ) , s = ! i && ! h ; if ( q ) { if ( f ) { while ( p ) { l = b ; while ( l = l [ p ] ) { if ( h ? l . nodeName . toLowerCase ( ) === r : l . nodeType === 1 ) { return false } } o = p = a === "only" && ! o && "nextSibling" } return true } o = [ g ? q . firstChild : q . lastChild ] ; if ( g && s ) { k = q [ u ] || ( q [ u ] = { } ) ; j = k [ a ] || [ ] ; n = j [ 0 ] === w && j [ 1 ] ; m = j [ 0 ] === w && j [ 2 ] ; l = n && q . childNodes [ n ] ; while ( l = ++ n && l && l [ p ] || ( m = n = 0 ) || o . pop ( ) ) { if ( l . nodeType === 1 && ++ m && l === b ) { k [ a ] = [ w , n , m ] ; break } } } else if ( s && ( j = ( b [ u ] || ( b [ u ] = { } ) ) [ a ] ) && j [ 0 ] === w ) { m = j [ 1 ] } else { while ( l = ++ n && l && l [ p ] || ( m = n = 0 ) || o . pop ( ) ) { if ( ( h ? l . nodeName . toLowerCase ( ) === r : l . nodeType === 1 ) && ++ m ) { if ( s ) { ( l [ u ] || ( l [ u ] = { } ) ) [ a ] = [ w , m ] } if ( l === b ) { break } } } } m -= e ; return m === d || m % d === 0 && m / d >= 0 } } } , PSEUDO : function ( a , b ) { var c , e = d . pseudos [ a ] || d . setFilters [ a . toLowerCase ( ) ] || fb . error ( "unsupported pseudo: " + a ) ; if ( e [ u ] ) { return e ( b ) } if ( e . length > 1 ) { c = [ a , a , "" , b ] ; return d . setFilters . hasOwnProperty ( a . toLowerCase ( ) ) ? hb ( function ( a , c ) { var d , f = e ( a , b ) , g = f . length ; while ( g -- ) { d = K . call ( a , f [ g ] ) ; a [ d ] = ! ( c [ d ] = f [ g ] ) } } ) : function ( a ) { return e ( a , 0 , c ) } } return e } } , pseudos : { not : hb ( function ( a ) { var b = [ ] , c = [ ] , d = h ( a . replace ( R , "$1" ) ) ; return d [ u ] ? hb ( function ( a , b , c , e ) { var f , g = d ( a , null , e , [ ] ) , h = a . length ; while ( h -- ) { if ( f = g [ h ] ) { a [ h ] = ! ( b [ h ] = f ) } } } ) : function ( a , e , f ) { b [ 0 ] = a ; d ( b , null , f , c ) ; return ! c . pop ( ) } } ) , has : hb ( function ( a ) { return function ( b ) { return fb ( a , b ) . length > 0 } } ) , contains : hb ( function ( a ) { return function ( b ) { return ( b . textContent || b . innerText || e ( b ) ) . indexOf ( a ) > - 1 } } ) , lang : hb ( function ( a ) { if ( ! W . test ( a || "" ) ) { fb . error ( "unsupported lang: " + a ) } a = a . replace ( cb , db ) . toLowerCase ( ) ; return function ( b ) { var c ; do { if ( c = p ? b . lang : b . getAttribute ( "xml:lang" ) || b . getAttribute ( "lang" ) ) { c = c . toLowerCase ( ) ; return c === a || c . indexOf ( a + "-" ) === 0 } } while ( ( b = b . parentNode ) && b . nodeType === 1 ) ; return false } } ) , target : function ( b ) { var c = a . location && a . location . hash ; return c && c . slice ( 1 ) === b . id } , root : function ( a ) { return a === o } , focus : function ( a ) { return a === n . activeElement && ( ! n . hasFocus || n . hasFocus ( ) ) && ! ! ( a . type || a . href || ~ a . tabIndex ) } , enabled : function ( a ) { return a . disabled === false } , disabled : function ( a ) { return a . disabled === true } , checked : function ( a ) { var b = a . nodeName . toLowerCase ( ) ; return b === "input" && ! ! a . checked || b === "option" && ! ! a . selected } , selected : function ( a ) { if ( a . parentNode ) { a . parentNode . selectedIndex } return a . selected === true } , empty : function ( a ) { for ( a = a . firstChild ; a ; a = a . nextSibling ) { if ( a . nodeType < 6 ) { return false } } return true } , parent : function ( a ) { return ! d . pseudos [ "empty" ] ( a ) } , header : function ( a ) { return Z . test ( a . nodeName ) } , input : function ( a ) { return Y . test ( a . nodeName ) } , button : function ( a ) { var b = a . nodeName . toLowerCase ( ) ; return b === "input" && a . type === "button" || b === "button" } , text : function ( a ) { var b ; return a . nodeName . toLowerCase ( ) === "input" && a . type === "text" && ( ( b = a . getAttribute ( "type" ) ) == null || b . toLowerCase ( ) === "text" ) } , first : nb ( function ( ) { return [ 0 ] } ) , last : nb ( function ( a , b ) { return [ b - 1 ] } ) , eq : nb ( function ( a , b , c ) { return [ c < 0 ? c + b : c ] } ) , even : nb ( function ( a , b ) { var c = 0 ; for ( ; c < b ; c += 2 ) { a . push ( c ) } return a } ) , odd : nb ( function ( a , b ) { var c = 1 ; for ( ; c < b ; c += 2 ) { a . push ( c ) } return a } ) , lt : nb ( function ( a , b , c ) { var d = c < 0 ? c + b : c ; for ( ; -- d >= 0 ; ) { a . push ( d ) } return a } ) , gt : nb ( function ( a , b , c ) { var d = c < 0 ? c + b : c ; for ( ; ++ d < b ; ) { a . push ( d ) } return a } ) } } ; d . pseudos [ "nth" ] = d . pseudos [ "eq" ] ; for ( b in { radio : true , checkbox : true , file : true , password : true , image : true } ) { d . pseudos [ b ] = lb ( b ) } for ( b in { submit : true , reset : true } ) { d . pseudos [ b ] = mb ( b ) } function pb ( ) { } pb . prototype = d . filters = d . pseudos ; d . setFilters = new pb ; g = fb . tokenize = function ( a , b ) { var c , e , f , g , h , i , j , k = z [ a + " " ] ; if ( k ) { return b ? 0 : k . slice ( 0 ) } h = a ; i = [ ] ; j = d . preFilter ; while ( h ) { if ( ! c || ( e = S . exec ( h ) ) ) { if ( e ) { h = h . slice ( e [ 0 ] . length ) || h } i . push ( f = [ ] ) } c = false ; if ( e
g . events = { } ; for ( e in j ) { for ( c = 0 , d = j [ e ] . length ; c < d ; c ++ ) { n . event . add ( b , e , j [ e ] [ c ] ) } } } } if ( M . hasData ( a ) ) { h = M . access ( a ) ; i = n . extend ( { } , h ) ; M . set ( b , i ) } } function ob ( a , b ) { var c = a . getElementsByTagName ? a . getElementsByTagName ( b || "*" ) : a . querySelectorAll ? a . querySelectorAll ( b || "*" ) : [ ] ; return b === undefined || b && n . nodeName ( a , b ) ? n . merge ( [ a ] , c ) : c } function pb ( a , b ) { var c = b . nodeName . toLowerCase ( ) ; if ( c === "input" && T . test ( a . type ) ) { b . checked = a . checked } else if ( c === "input" || c === "textarea" ) { b . defaultValue = a . defaultValue } } n . extend ( { clone : function ( a , b , c ) { var d , e , f , g , h = a . cloneNode ( true ) , i = n . contains ( a . ownerDocument , a ) ; if ( ! k . noCloneChecked && ( a . nodeType === 1 || a . nodeType === 11 ) && ! n . isXMLDoc ( a ) ) { g = ob ( h ) ; f = ob ( a ) ; for ( d = 0 , e = f . length ; d < e ; d ++ ) { pb ( f [ d ] , g [ d ] ) } } if ( b ) { if ( c ) { f = f || ob ( a ) ; g = g || ob ( h ) ; for ( d = 0 , e = f . length ; d < e ; d ++ ) { nb ( f [ d ] , g [ d ] ) } } else { nb ( a , h ) } } g = ob ( h , "script" ) ; if ( g . length > 0 ) { mb ( g , ! i && ob ( a , "script" ) ) } return h } , buildFragment : function ( a , b , c , d ) { var e , f , g , h , i , j , k = b . createDocumentFragment ( ) , l = [ ] , m = 0 , o = a . length ; for ( ; m < o ; m ++ ) { e = a [ m ] ; if ( e || e === 0 ) { if ( n . type ( e ) === "object" ) { n . merge ( l , e . nodeType ? [ e ] : e ) } else if ( ! cb . test ( e ) ) { l . push ( b . createTextNode ( e ) ) } else { f = f || k . appendChild ( b . createElement ( "div" ) ) ; g = ( bb . exec ( e ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ; h = ib [ g ] || ib . _default ; f . innerHTML = h [ 1 ] + e . replace ( ab , "<$1></$2>" ) + h [ 2 ] ; j = h [ 0 ] ; while ( j -- ) { f = f . lastChild } n . merge ( l , f . childNodes ) ; f = k . firstChild ; f . textContent = "" } } } k . textContent = "" ; m = 0 ; while ( e = l [ m ++ ] ) { if ( d && n . inArray ( e , d ) !== - 1 ) { continue } i = n . contains ( e . ownerDocument , e ) ; f = ob ( k . appendChild ( e ) , "script" ) ; if ( i ) { mb ( f ) } if ( c ) { j = 0 ; while ( e = f [ j ++ ] ) { if ( fb . test ( e . type || "" ) ) { c . push ( e ) } } } } return k } , cleanData : function ( a ) { var b , c , d , e , f = n . event . special , g = 0 ; for ( ; ( c = a [ g ] ) !== undefined ; g ++ ) { if ( n . acceptData ( c ) ) { e = c [ L . expando ] ; if ( e && ( b = L . cache [ e ] ) ) { if ( b . events ) { for ( d in b . events ) { if ( f [ d ] ) { n . event . remove ( c , d ) } else { n . removeEvent ( c , d , b . handle ) } } } if ( L . cache [ e ] ) { delete L . cache [ e ] } } } delete M . cache [ c [ M . expando ] ] } } } ) ; n . fn . extend ( { text : function ( a ) { return J ( this , function ( a ) { return a === undefined ? n . text ( this ) : this . empty ( ) . each ( function ( ) { if ( this . nodeType === 1 || this . nodeType === 11 || this . nodeType === 9 ) { this . textContent = a } } ) } , null , a , arguments . length ) } , append : function ( ) { return this . domManip ( arguments , function ( a ) { if ( this . nodeType === 1 || this . nodeType === 11 || this . nodeType === 9 ) { var b = jb ( this , a ) ; b . appendChild ( a ) } } ) } , prepend : function ( ) { return this . domManip ( arguments , function ( a ) { if ( this . nodeType === 1 || this . nodeType === 11 || this . nodeType === 9 ) { var b = jb ( this , a ) ; b . insertBefore ( a , b . firstChild ) } } ) } , before : function ( ) { return this . domManip ( arguments , function ( a ) { if ( this . parentNode ) { this . parentNode . insertBefore ( a , this ) } } ) } , after : function ( ) { return this . domManip ( arguments , function ( a ) { if ( this . parentNode ) { this . parentNode . insertBefore ( a , this . nextSibling ) } } ) } , remove : function ( a , b ) { var c , d = a ? n . filter ( a , this ) : this , e = 0 ; for ( ; ( c = d [ e ] ) != null ; e ++ ) { if ( ! b && c . nodeType === 1 ) { n . cleanData ( ob ( c ) ) } if ( c . parentNode ) { if ( b && n . contains ( c . ownerDocument , c ) ) { mb ( ob ( c , "script" ) ) } c . parentNode . removeChild ( c ) } } return this } , empty : function ( ) { var a , b = 0 ; for ( ; ( a = this [ b ] ) != null ; b ++ ) { if ( a . nodeType === 1 ) { n . cleanData ( ob ( a , false ) ) ; a . textContent = "" } } return this } , clone : function ( a , b ) { a = a == null ? false : a ; b = b == null ? a : b ; return this . map ( function ( ) { return n . clone ( this , a , b ) } ) } , html : function ( a ) { return J ( this , function ( a ) { var b = this [ 0 ] || { } , c = 0 , d = this . length ; if ( a === undefined && b . nodeType === 1 ) { return b . innerHTML } if ( typeof a === "string" && ! db . test ( a ) && ! ib [ ( bb . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { a = a . replace ( ab , "<$1></$2>" ) ; try { for ( ; c < d ; c ++ ) { b = this [ c ] || { } ; if ( b . nodeType === 1 ) { n . cleanData ( ob ( b , false ) ) ; b . innerHTML = a } } b = 0 } catch ( e ) { } } if ( b ) { this . empty ( ) . append ( a ) } } , null , a , arguments . length ) } , replaceWith : function ( ) { var a = arguments [ 0 ] ; this . domManip ( arguments , function ( b ) { a = this . parentNode ; n . cleanData ( ob ( this ) ) ; if ( a ) { a . replaceChild ( b , this ) } } ) ; return a && ( a . length || a . nodeType ) ? this : this . remove ( ) } , detach : function ( a ) { return this . remove ( a , true ) } , domManip : function ( a , b ) { a = e . apply ( [ ] , a ) ; var c , d , f , g , h , i , j = 0 , l = this . length , m = this , o = l - 1 , p = a [ 0 ] , q = n . isFunction ( p ) ; if ( q || l > 1 && typeof p === "string" && ! k . checkClone && eb . test ( p ) ) { return this . each ( function ( c ) { var d = m . eq ( c ) ; if ( q ) { a [ 0 ] = p . call ( this , c , d . html ( ) ) } d . dom
2014-09-19 23:12:17 +00:00
} , getScript : function ( a , b ) { return n . get ( a , undefined , b , "script" ) } } ) ; n . each ( [ "get" , "post" ] , function ( a , b ) { n [ b ] = function ( a , c , d , e ) { if ( n . isFunction ( c ) ) { e = e || d ; d = c ; c = undefined } return n . ajax ( { url : a , type : b , dataType : e , data : c , success : d } ) } } ) ; n . each ( [ "ajaxStart" , "ajaxStop" , "ajaxComplete" , "ajaxError" , "ajaxSuccess" , "ajaxSend" ] , function ( a , b ) { n . fn [ b ] = function ( a ) { return this . on ( b , a ) } } ) ; n . _evalUrl = function ( a ) { return n . ajax ( { url : a , type : "GET" , dataType : "script" , async : false , global : false , "throws" : true } ) } ; n . fn . extend ( { wrapAll : function ( a ) { var b ; if ( n . isFunction ( a ) ) { return this . each ( function ( b ) { n ( this ) . wrapAll ( a . call ( this , b ) ) } ) } if ( this [ 0 ] ) { b = n ( a , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( true ) ; if ( this [ 0 ] . parentNode ) { b . insertBefore ( this [ 0 ] ) } b . map ( function ( ) { var a = this ; while ( a . firstElementChild ) { a = a . firstElementChild } return a } ) . append ( this ) } return this } , wrapInner : function ( a ) { if ( n . isFunction ( a ) ) { return this . each ( function ( b ) { n ( this ) . wrapInner ( a . call ( this , b ) ) } ) } return this . each ( function ( ) { var b = n ( this ) , c = b . contents ( ) ; if ( c . length ) { c . wrapAll ( a ) } else { b . append ( a ) } } ) } , wrap : function ( a ) { var b = n . isFunction ( a ) ; return this . each ( function ( c ) { n ( this ) . wrapAll ( b ? a . call ( this , c ) : a ) } ) } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { if ( ! n . nodeName ( this , "body" ) ) { n ( this ) . replaceWith ( this . childNodes ) } } ) . end ( ) } } ) ; n . expr . filters . hidden = function ( a ) { return a . offsetWidth <= 0 && a . offsetHeight <= 0 } ; n . expr . filters . visible = function ( a ) { return ! n . expr . filters . hidden ( a ) } ; var wc = /%20/g , xc = /\[\]$/ , yc = /\r?\n/g , zc = /^(?:submit|button|image|reset|file)$/i , Ac = /^(?:input|select|textarea|keygen)/i ; function Bc ( a , b , c , d ) { var e ; if ( n . isArray ( b ) ) { n . each ( b , function ( b , e ) { if ( c || xc . test ( a ) ) { d ( a , e ) } else { Bc ( a + "[" + ( typeof e === "object" ? b : "" ) + "]" , e , c , d ) } } ) } else if ( ! c && n . type ( b ) === "object" ) { for ( e in b ) { Bc ( a + "[" + e + "]" , b [ e ] , c , d ) } } else { d ( a , b ) } } n . param = function ( a , b ) { var c , d = [ ] , e = function ( a , b ) { b = n . isFunction ( b ) ? b ( ) : b == null ? "" : b ; d [ d . length ] = encodeURIComponent ( a ) + "=" + encodeURIComponent ( b ) } ; if ( b === undefined ) { b = n . ajaxSettings && n . ajaxSettings . traditional } if ( n . isArray ( a ) || a . jquery && ! n . isPlainObject ( a ) ) { n . each ( a , function ( ) { e ( this . name , this . value ) } ) } else { for ( c in a ) { Bc ( c , a [ c ] , b , e ) } } return d . join ( "&" ) . replace ( wc , "+" ) } ; n . fn . extend ( { serialize : function ( ) { return n . param ( this . serializeArray ( ) ) } , serializeArray : function ( ) { return this . map ( function ( ) { var a = n . prop ( this , "elements" ) ; return a ? n . makeArray ( a ) : this } ) . filter ( function ( ) { var a = this . type ; return this . name && ! n ( this ) . is ( ":disabled" ) && Ac . test ( this . nodeName ) && ! zc . test ( a ) && ( this . checked || ! T . test ( a ) ) } ) . map ( function ( a , b ) { var c = n ( this ) . val ( ) ; return c == null ? null : n . isArray ( c ) ? n . map ( c , function ( a ) { return { name : b . name , value : a . replace ( yc , "\r\n" ) } } ) : { name : b . name , value : c . replace ( yc , "\r\n" ) } } ) . get ( ) } } ) ; n . ajaxSettings . xhr = function ( ) { try { return new XMLHttpRequest } catch ( a ) { } } ; var Cc = 0 , Dc = { } , Ec = { 0 : 200 , 1223 : 204 } , Fc = n . ajaxSettings . xhr ( ) ; if ( a . ActiveXObject ) { n ( a ) . on ( "unload" , function ( ) { for ( var a in Dc ) { Dc [ a ] ( ) } } ) } k . cors = ! ! Fc && "withCredentials" in Fc ; k . ajax = Fc = ! ! Fc ; n . ajaxTransport ( function ( a ) { var b ; if ( k . cors || Fc && ! a . crossDomain ) { return { send : function ( c , d ) { var e , f = a . xhr ( ) , g = ++ Cc ; f . open ( a . type , a . url , a . async , a . username , a . password ) ; if ( a . xhrFields ) { for ( e in a . xhrFields ) { f [ e ] = a . xhrFields [ e ] } } if ( a . mimeType && f . overrideMimeType ) { f . overrideMimeType ( a . mimeType ) } if ( ! a . crossDomain && ! c [ "X-Requested-With" ] ) { c [ "X-Requested-With" ] = "XMLHttpRequest" } for ( e in c ) { f . setRequestHeader ( e , c [ e ] ) } b = function ( a ) { return function ( ) { if ( b ) { delete Dc [ g ] ; b = f . onload = f . onerror = null ; if ( a === "abort" ) { f . abort ( ) } else if ( a === "error" ) { d ( f . status , f . statusText ) } else { d ( Ec [ f . status ] || f . status , f . statusText , typeof f . responseText === "string" ? { text : f . responseText } : undefined , f . getAllResponseHeaders ( ) ) } } } } ; f . onload = b ( ) ; f . onerror = b ( "error" ) ; b = Dc [ g ] = b ( "abort" ) ; try { f . send ( a . hasContent && a . data || null ) } catch ( h ) { if ( b ) { throw h } } } , abort : function ( ) { if ( b ) { b ( ) } } } } } ) ; n . ajaxSetup ( { accepts : { script : "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" } , contents : { script : /(?:java|ecma)script/ } , converters : { "text script" : function ( a ) { n . globalEval ( a ) ; return a } } } ) ; n . ajaxPrefilter ( "script" , function ( a ) { if ( a . cache === undefined ) { a . cache = false } if ( a . crossDom
} , MMM : function ( a ) { return this . lang ( ) . monthsShort ( this , a ) } , MMMM : function ( a ) { return this . lang ( ) . months ( this , a ) } , D : function ( ) { return this . date ( ) } , DDD : function ( ) { return this . dayOfYear ( ) } , d : function ( ) { return this . day ( ) } , dd : function ( a ) { return this . lang ( ) . weekdaysMin ( this , a ) } , ddd : function ( a ) { return this . lang ( ) . weekdaysShort ( this , a ) } , dddd : function ( a ) { return this . lang ( ) . weekdays ( this , a ) } , w : function ( ) { return this . week ( ) } , W : function ( ) { return this . isoWeek ( ) } , YY : function ( ) { return kb ( this . year ( ) % 100 , 2 ) } , YYYY : function ( ) { return kb ( this . year ( ) , 4 ) } , YYYYY : function ( ) { return kb ( this . year ( ) , 5 ) } , YYYYYY : function ( ) { var a = this . year ( ) , b = a >= 0 ? "+" : "-" ; return b + kb ( Math . abs ( a ) , 6 ) } , gg : function ( ) { return kb ( this . weekYear ( ) % 100 , 2 ) } , gggg : function ( ) { return kb ( this . weekYear ( ) , 4 ) } , ggggg : function ( ) { return kb ( this . weekYear ( ) , 5 ) } , GG : function ( ) { return kb ( this . isoWeekYear ( ) % 100 , 2 ) } , GGGG : function ( ) { return kb ( this . isoWeekYear ( ) , 4 ) } , GGGGG : function ( ) { return kb ( this . isoWeekYear ( ) , 5 ) } , e : function ( ) { return this . weekday ( ) } , E : function ( ) { return this . isoWeekday ( ) } , a : function ( ) { return this . lang ( ) . meridiem ( this . hours ( ) , this . minutes ( ) , true ) } , A : function ( ) { return this . lang ( ) . meridiem ( this . hours ( ) , this . minutes ( ) , false ) } , H : function ( ) { return this . hours ( ) } , h : function ( ) { return this . hours ( ) % 12 || 12 } , m : function ( ) { return this . minutes ( ) } , s : function ( ) { return this . seconds ( ) } , S : function ( ) { return sb ( this . milliseconds ( ) / 100 ) } , SS : function ( ) { return kb ( sb ( this . milliseconds ( ) / 10 ) , 2 ) } , SSS : function ( ) { return kb ( this . milliseconds ( ) , 3 ) } , SSSS : function ( ) { return kb ( this . milliseconds ( ) , 3 ) } , Z : function ( ) { var a = - this . zone ( ) , b = "+" ; if ( a < 0 ) { a = - a ; b = "-" } return b + kb ( sb ( a / 60 ) , 2 ) + ":" + kb ( sb ( a ) % 60 , 2 ) } , ZZ : function ( ) { var a = - this . zone ( ) , b = "+" ; if ( a < 0 ) { a = - a ; b = "-" } return b + kb ( sb ( a / 60 ) , 2 ) + kb ( sb ( a ) % 60 , 2 ) } , z : function ( ) { return this . zoneAbbr ( ) } , zz : function ( ) { return this . zoneName ( ) } , X : function ( ) { return this . unix ( ) } , Q : function ( ) { return this . quarter ( ) } } , $ = [ "months" , "monthsShort" , "weekdays" , "weekdaysShort" , "weekdaysMin" ] ; function _ ( a , b , c ) { switch ( arguments . length ) { case 2 : return a != null ? a : b ; case 3 : return a != null ? a : b != null ? b : c ; default : throw new Error ( "Implement me" ) } } function ab ( ) { return { empty : false , unusedTokens : [ ] , unusedInput : [ ] , overflow : - 2 , charsLeftOver : 0 , nullInput : false , invalidMonth : null , invalidFormat : false , userInvalidated : false , iso : false } } function bb ( a , c ) { var d = true ; function e ( ) { if ( b . suppressDeprecationWarnings === false && typeof console !== "undefined" && console . warn ) { console . warn ( "Deprecation warning: " + a ) } } return hb ( function ( ) { if ( d ) { e ( ) ; d = false } return c . apply ( this , arguments ) } , c ) } function cb ( a , b ) { return function ( c ) { return kb ( a . call ( this , c ) , b ) } } function db ( a , b ) { return function ( c ) { return this . lang ( ) . ordinal ( a . call ( this , c ) , b ) } } while ( X . length ) { g = X . pop ( ) ; Z [ g + "o" ] = db ( Z [ g ] , g ) } while ( Y . length ) { g = Y . pop ( ) ; Z [ g + g ] = cb ( Z [ g ] , 2 ) } Z . DDDD = cb ( Z . DDD , 3 ) ; function eb ( ) { } function fb ( a ) { xb ( a ) ; hb ( this , a ) } function gb ( a ) { var b = qb ( a ) , c = b . year || 0 , d = b . quarter || 0 , e = b . month || 0 , f = b . week || 0 , g = b . day || 0 , h = b . hour || 0 , i = b . minute || 0 , j = b . second || 0 , k = b . millisecond || 0 ; this . _milliseconds = + k + j * 1e3 + i * 6e4 + h * 36e5 ; this . _days = + g + f * 7 ; this . _months = + e + d * 3 + c * 12 ; this . _data = { } ; this . _bubble ( ) } function hb ( a , b ) { for ( var c in b ) { if ( b . hasOwnProperty ( c ) ) { a [ c ] = b [ c ] } } if ( b . hasOwnProperty ( "toString" ) ) { a . toString = b . toString } if ( b . hasOwnProperty ( "valueOf" ) ) { a . valueOf = b . valueOf } return a } function ib ( a ) { var b = { } , c ; for ( c in a ) { if ( a . hasOwnProperty ( c ) && p . hasOwnProperty ( c ) ) { b [ c ] = a [ c ] } } return b } function jb ( a ) { if ( a < 0 ) { return Math . ceil ( a ) } else { return Math . floor ( a ) } } function kb ( a , b , c ) { var d = "" + Math . abs ( a ) , e = a >= 0 ; while ( d . length < b ) { d = "0" + d } return ( e ? c ? "+" : "" : "-" ) + d } function lb ( a , c , d , e ) { var f = c . _milliseconds , g = c . _days , h = c . _months ; e = e == null ? true : e ; if ( f ) { a . _d . setTime ( + a . _d + f * d ) } if ( g ) { fc ( a , "Date" , ec ( a , "Date" ) + g * d ) } if ( h ) { dc ( a , ec ( a , "Month" ) + h * d ) } if ( e ) { b . updateOffset ( a , g || h ) } } function mb ( a ) { return Object . prototype . toString . call ( a ) === "[object Array]" } function nb ( a ) { return Object . prototype . toString . call ( a ) === "[object Date]" || a instanceof Date } function ob ( a , b , c ) { var d = Math . min ( a . length , b . length ) , e = Math . abs ( a . length - b . length ) , f = 0 , g ; for ( g = 0 ; g < d ; g ++ ) { if ( c && a [ g ] !== b [ g ] || ! c && sb ( a [ g ] ) !== sb ( b [ g ] ) ) { f ++ } } return f + e } function pb ( a ) { if ( a ) { var b
this . _reconnection = ! ! a ; return this } ; m . prototype . reconnectionAttempts = function ( a ) { if ( ! arguments . length ) return this . _reconnectionAttempts ; this . _reconnectionAttempts = a ; return this } ; m . prototype . reconnectionDelay = function ( a ) { if ( ! arguments . length ) return this . _reconnectionDelay ; this . _reconnectionDelay = a ; return this } ; m . prototype . reconnectionDelayMax = function ( a ) { if ( ! arguments . length ) return this . _reconnectionDelayMax ; this . _reconnectionDelayMax = a ; return this } ; m . prototype . timeout = function ( a ) { if ( ! arguments . length ) return this . _timeout ; this . _timeout = a ; return this } ; m . prototype . maybeReconnectOnOpen = function ( ) { if ( ! this . openReconnect && ! this . reconnecting && this . _reconnection ) { this . openReconnect = true ; this . reconnect ( ) } } ; m . prototype . open = m . prototype . connect = function ( a ) { l ( "readyState %s" , this . readyState ) ; if ( ~ this . readyState . indexOf ( "open" ) ) return this ; l ( "opening %s" , this . uri ) ; this . engine = e ( this . uri , this . opts ) ; var b = this . engine ; var c = this ; this . readyState = "opening" ; var d = i ( b , "open" , function ( ) { c . onopen ( ) ; a && a ( ) } ) ; var f = i ( b , "error" , function ( b ) { l ( "connect_error" ) ; c . cleanup ( ) ; c . readyState = "closed" ; c . emitAll ( "connect_error" , b ) ; if ( a ) { var d = new Error ( "Connection error" ) ; d . data = b ; a ( d ) } c . maybeReconnectOnOpen ( ) } ) ; if ( false !== this . _timeout ) { var g = this . _timeout ; l ( "connect attempt will timeout after %d" , g ) ; var h = setTimeout ( function ( ) { l ( "connect attempt timed out after %d" , g ) ; d . destroy ( ) ; b . close ( ) ; b . emit ( "error" , "timeout" ) ; c . emitAll ( "connect_timeout" , g ) } , g ) ; this . subs . push ( { destroy : function ( ) { clearTimeout ( h ) } } ) } this . subs . push ( d ) ; this . subs . push ( f ) ; return this } ; m . prototype . onopen = function ( ) { l ( "open" ) ; this . cleanup ( ) ; this . readyState = "open" ; this . emit ( "open" ) ; var a = this . engine ; this . subs . push ( i ( a , "data" , j ( this , "ondata" ) ) ) ; this . subs . push ( i ( this . decoder , "decoded" , j ( this , "ondecoded" ) ) ) ; this . subs . push ( i ( a , "error" , j ( this , "onerror" ) ) ) ; this . subs . push ( i ( a , "close" , j ( this , "onclose" ) ) ) } ; m . prototype . ondata = function ( a ) { this . decoder . add ( a ) } ; m . prototype . ondecoded = function ( a ) { this . emit ( "packet" , a ) } ; m . prototype . onerror = function ( a ) { l ( "error" , a ) ; this . emitAll ( "error" , a ) } ; m . prototype . socket = function ( a ) { var b = this . nsps [ a ] ; if ( ! b ) { b = new f ( this , a ) ; this . nsps [ a ] = b ; var c = this ; b . on ( "connect" , function ( ) { c . connected ++ } ) } return b } ; m . prototype . destroy = function ( a ) { -- this . connected || this . close ( ) } ; m . prototype . packet = function ( a ) { l ( "writing packet %j" , a ) ; var b = this ; if ( ! b . encoding ) { b . encoding = true ; this . encoder . encode ( a , function ( a ) { for ( var c = 0 ; c < a . length ; c ++ ) { b . engine . write ( a [ c ] ) } b . encoding = false ; b . processPacketQueue ( ) } ) } else { b . packetBuffer . push ( a ) } } ; m . prototype . processPacketQueue = function ( ) { if ( this . packetBuffer . length > 0 && ! this . encoding ) { var a = this . packetBuffer . shift ( ) ; this . packet ( a ) } } ; m . prototype . cleanup = function ( ) { var a ; while ( a = this . subs . shift ( ) ) a . destroy ( ) ; this . packetBuffer = [ ] ; this . encoding = false ; this . decoder . destroy ( ) } ; m . prototype . close = m . prototype . disconnect = function ( ) { this . skipReconnect = true ; this . engine . close ( ) } ; m . prototype . onclose = function ( a ) { l ( "close" ) ; this . cleanup ( ) ; this . readyState = "closed" ; this . emit ( "close" , a ) ; if ( this . _reconnection && ! this . skipReconnect ) { this . reconnect ( ) } } ; m . prototype . reconnect = function ( ) { if ( this . reconnecting ) return this ; var a = this ; this . attempts ++ ; if ( this . attempts > this . _reconnectionAttempts ) { l ( "reconnect failed" ) ; this . emitAll ( "reconnect_failed" ) ; this . reconnecting = false } else { var b = this . attempts * this . reconnectionDelay ( ) ; b = Math . min ( b , this . reconnectionDelayMax ( ) ) ; l ( "will wait %dms before reconnect attempt" , b ) ; this . reconnecting = true ; var c = setTimeout ( function ( ) { l ( "attempting reconnect" ) ; a . emitAll ( "reconnect_attempt" , a . attempts ) ; a . emitAll ( "reconnecting" , a . attempts ) ; a . open ( function ( b ) { if ( b ) { l ( "reconnect attempt error" ) ; a . reconnecting = false ; a . reconnect ( ) ; a . emitAll ( "reconnect_error" , b . data ) } else { l ( "reconnect success" ) ; a . onreconnect ( ) } } ) } , b ) ; this . subs . push ( { destroy : function ( ) { clearTimeout ( c ) } } ) } } ; m . prototype . onreconnect = function ( ) { var a = this . attempts ; this . attempts = 0 ; this . reconnecting = false ; this . emitAll ( "reconnect" , a ) } } , { "./on" : 4 , "./socket" : 5 , "./url" : 6 , "component-bind" : 7 , "component-emitter" : 8 , debug : 9 , "engine.io-client" : 11 , "object-component" : 37 , "socket.io-parser" : 40 } ] , 4 : [ function ( a , b , c ) { b . export
b . exports = function ( a ) { var b = a . xdomain ; try { if ( "undefined" != typeof XMLHttpRequest && ( ! b || d ) ) { return new XMLHttpRequest } } catch ( c ) { } if ( ! b ) { try { return new ActiveXObject ( "Microsoft.XMLHTTP" ) } catch ( c ) { } } } } , { "has-cors" : 34 } ] , 21 : [ function ( a , b , c ) { b . exports = function ( a , b ) { var c = function ( ) { } ; c . prototype = b . prototype ; a . prototype = new c ; a . prototype . constructor = a } } , { } ] , 22 : [ function ( a , b , c ) { var d = typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : { } ; var e = a ( "./keys" ) ; var f = a ( "arraybuffer.slice" ) ; var g = a ( "base64-arraybuffer" ) ; var h = a ( "after" ) ; var i = a ( "utf8" ) ; var j = navigator . userAgent . match ( /Android/i ) ; c . protocol = 2 ; var k = c . packets = { open : 0 , close : 1 , ping : 2 , pong : 3 , message : 4 , upgrade : 5 , noop : 6 } ; var l = e ( k ) ; var m = { type : "error" , data : "parser error" } ; var n = a ( "blob" ) ; c . encodePacket = function ( a , b , c ) { if ( typeof b == "function" ) { c = b ; b = false } var e = a . data === undefined ? undefined : a . data . buffer || a . data ; if ( d . ArrayBuffer && e instanceof ArrayBuffer ) { return o ( a , b , c ) } else if ( n && e instanceof d . Blob ) { return q ( a , b , c ) } var f = k [ a . type ] ; if ( undefined !== a . data ) { f += i . encode ( String ( a . data ) ) } return c ( "" + f ) } ; function o ( a , b , d ) { if ( ! b ) { return c . encodeBase64Packet ( a , d ) } var e = a . data ; var f = new Uint8Array ( e ) ; var g = new Uint8Array ( 1 + e . byteLength ) ; g [ 0 ] = k [ a . type ] ; for ( var h = 0 ; h < f . length ; h ++ ) { g [ h + 1 ] = f [ h ] } return d ( g . buffer ) } function p ( a , b , d ) { if ( ! b ) { return c . encodeBase64Packet ( a , d ) } var e = new FileReader ; e . onload = function ( ) { a . data = e . result ; c . encodePacket ( a , b , d ) } ; return e . readAsArrayBuffer ( a . data ) } function q ( a , b , d ) { if ( ! b ) { return c . encodeBase64Packet ( a , d ) } if ( j ) { return p ( a , b , d ) } var e = new Uint8Array ( 1 ) ; e [ 0 ] = k [ a . type ] ; var f = new n ( [ e . buffer , a . data ] ) ; return d ( f ) } c . encodeBase64Packet = function ( a , b ) { var e = "b" + c . packets [ a . type ] ; if ( n && a . data instanceof n ) { var f = new FileReader ; f . onload = function ( ) { var a = f . result . split ( "," ) [ 1 ] ; b ( e + a ) } ; return f . readAsDataURL ( a . data ) } var g ; try { g = String . fromCharCode . apply ( null , new Uint8Array ( a . data ) ) } catch ( h ) { var i = new Uint8Array ( a . data ) ; var j = new Array ( i . length ) ; for ( var k = 0 ; k < i . length ; k ++ ) { j [ k ] = i [ k ] } g = String . fromCharCode . apply ( null , j ) } e += d . btoa ( g ) ; return b ( e ) } ; c . decodePacket = function ( a , b ) { if ( typeof a == "string" || a === undefined ) { if ( a . charAt ( 0 ) == "b" ) { return c . decodeBase64Packet ( a . substr ( 1 ) , b ) } a = i . decode ( a ) ; var d = a . charAt ( 0 ) ; if ( Number ( d ) != d || ! l [ d ] ) { return m } if ( a . length > 1 ) { return { type : l [ d ] , data : a . substring ( 1 ) } } else { return { type : l [ d ] } } } var e = new Uint8Array ( a ) ; var d = e [ 0 ] ; var g = f ( a , 1 ) ; if ( n && b === "blob" ) { g = new n ( [ g ] ) } return { type : l [ d ] , data : g } } ; c . decodeBase64Packet = function ( a , b ) { var c = l [ a . charAt ( 0 ) ] ; if ( ! d . ArrayBuffer ) { return { type : c , data : { base64 : true , data : a . substr ( 1 ) } } } var e = g . decode ( a . substr ( 1 ) ) ; if ( b === "blob" && n ) { e = new n ( [ e ] ) } return { type : c , data : e } } ; c . encodePayload = function ( a , b , d ) { if ( typeof b == "function" ) { d = b ; b = null } if ( b ) { if ( n && ! j ) { return c . encodePayloadAsBlob ( a , d ) } return c . encodePayloadAsArrayBuffer ( a , d ) } if ( ! a . length ) { return d ( "0:" ) } function e ( a ) { return a . length + ":" + a } function f ( a , d ) { c . encodePacket ( a , b , function ( a ) { d ( null , e ( a ) ) } ) } r ( a , f , function ( a , b ) { return d ( b . join ( "" ) ) } ) } ; function r ( a , b , c ) { var d = new Array ( a . length ) ; var e = h ( a . length , c ) ; var f = function ( a , c , e ) { b ( c , function ( b , c ) { d [ a ] = c ; e ( b , d ) } ) } ; for ( var g = 0 ; g < a . length ; g ++ ) { f ( g , a [ g ] , e ) } } c . decodePayload = function ( a , b , d ) { if ( typeof a != "string" ) { return c . decodePayloadAsBinary ( a , b , d ) } if ( typeof b === "function" ) { d = b ; b = null } var e ; if ( a == "" ) { return d ( m , 0 , 1 ) } var f = "" , g , h ; for ( var i = 0 , j = a . length ; i < j ; i ++ ) { var k = a . charAt ( i ) ; if ( ":" != k ) { f += k } else { if ( "" == f || f != ( g = Number ( f ) ) ) { return d ( m , 0 , 1 ) } h = a . substr ( i + 1 , g ) ; if ( f != h . length ) { return d ( m , 0 , 1 ) } if ( h . length ) { e = c . decodePacket ( h , b ) ; if ( m . type == e . type && m . data == e . data ) { return d ( m , 0 , 1 ) } var l = d ( e , i + g , j ) ; if ( false === l ) return } i += g ; f = "" } } if ( f != "" ) { return d ( m , 0 , 1 ) } } ; c . encodePayloadAsArrayBuffer = function ( a , b ) { if ( ! a . length ) { return b ( new ArrayBuffer ( 0 ) ) } function d ( a , b ) { c . encodePacket ( a , true , function ( a ) { return b ( null , a ) } ) } r ( a , d , function ( a , c ) { var d = c . reduce ( function ( a , b ) { var c ; if ( typeof b === "string" ) { c = b . length } else { c = b . byteLength } return a + c . toString ( ) . length + c + 2 } , 0 ) ; var e = new Uint8Array ( d ) ; var f = 0 ; c . forEach ( function ( a ) { var b = typeof a === "string" ; var c = a ; if ( b ) { var d = new Uint8Array ( a . length ) ; for ( var g = 0 ; g < a . length ; g ++ ) { d [ g ] = a . charCodeAt
} else { c [ h ] = i } } return c } ; f . build = function ( a ) { var b = "" ; if ( a . protocol ) { b += a . protocol + ":" } if ( ! a . urn && ( b || a . hostname ) ) { b += "//" } b += f . buildAuthority ( a ) || "" ; if ( typeof a . path === "string" ) { if ( a . path . charAt ( 0 ) !== "/" && typeof a . hostname === "string" ) { b += "/" } b += a . path } if ( typeof a . query === "string" && a . query ) { b += "?" + a . query } if ( typeof a . fragment === "string" && a . fragment ) { b += "#" + a . fragment } return b } ; f . buildHost = function ( a ) { var b = "" ; if ( ! a . hostname ) { return "" } else if ( f . ip6 _expression . test ( a . hostname ) ) { b += "[" + a . hostname + "]" } else { b += a . hostname } if ( a . port ) { b += ":" + a . port } return b } ; f . buildAuthority = function ( a ) { return f . buildUserinfo ( a ) + f . buildHost ( a ) } ; f . buildUserinfo = function ( a ) { var b = "" ; if ( a . username ) { b += f . encode ( a . username ) ; if ( a . password ) { b += ":" + f . encode ( a . password ) } b += "@" } return b } ; f . buildQuery = function ( a , b , c ) { var d = "" ; var e , g , i , j ; for ( g in a ) { if ( h . call ( a , g ) && g ) { if ( k ( a [ g ] ) ) { e = { } ; for ( i = 0 , j = a [ g ] . length ; i < j ; i ++ ) { if ( a [ g ] [ i ] !== undefined && e [ a [ g ] [ i ] + "" ] === undefined ) { d += "&" + f . buildQueryParameter ( g , a [ g ] [ i ] , c ) ; if ( b !== true ) { e [ a [ g ] [ i ] + "" ] = true } } } } else if ( a [ g ] !== undefined ) { d += "&" + f . buildQueryParameter ( g , a [ g ] , c ) } } } return d . substring ( 1 ) } ; f . buildQueryParameter = function ( a , b , c ) { return f . encodeQuery ( a , c ) + ( b !== null ? "=" + f . encodeQuery ( b , c ) : "" ) } ; f . addQuery = function ( a , b , c ) { if ( typeof b === "object" ) { for ( var d in b ) { if ( h . call ( b , d ) ) { f . addQuery ( a , d , b [ d ] ) } } } else if ( typeof b === "string" ) { if ( a [ b ] === undefined ) { a [ b ] = c ; return } else if ( typeof a [ b ] === "string" ) { a [ b ] = [ a [ b ] ] } if ( ! k ( c ) ) { c = [ c ] } a [ b ] = a [ b ] . concat ( c ) } else { throw new TypeError ( "URI.addQuery() accepts an object, string as the name parameter" ) } } ; f . removeQuery = function ( a , b , c ) { var d , e , g ; if ( k ( b ) ) { for ( d = 0 , e = b . length ; d < e ; d ++ ) { a [ b [ d ] ] = undefined } } else if ( typeof b === "object" ) { for ( g in b ) { if ( h . call ( b , g ) ) { f . removeQuery ( a , g , b [ g ] ) } } } else if ( typeof b === "string" ) { if ( c !== undefined ) { if ( a [ b ] === c ) { a [ b ] = undefined } else if ( k ( a [ b ] ) ) { a [ b ] = l ( a [ b ] , c ) } } else { a [ b ] = undefined } } else { throw new TypeError ( "URI.addQuery() accepts an object, string as the first parameter" ) } } ; f . hasQuery = function ( a , b , c , d ) { if ( typeof b === "object" ) { for ( var e in b ) { if ( h . call ( b , e ) ) { if ( ! f . hasQuery ( a , e , b [ e ] ) ) { return false } } } return true } else if ( typeof b !== "string" ) { throw new TypeError ( "URI.hasQuery() accepts an object, string as the name parameter" ) } switch ( j ( c ) ) { case "Undefined" : return b in a ; case "Boolean" : var g = Boolean ( k ( a [ b ] ) ? a [ b ] . length : a [ b ] ) ; return c === g ; case "Function" : return ! ! c ( a [ b ] , b , a ) ; case "Array" : if ( ! k ( a [ b ] ) ) { return false } var i = d ? m : n ; return i ( a [ b ] , c ) ; case "RegExp" : if ( ! k ( a [ b ] ) ) { return Boolean ( a [ b ] && a [ b ] . match ( c ) ) } if ( ! d ) { return false } return m ( a [ b ] , c ) ; case "Number" : c = String ( c ) ; case "String" : if ( ! k ( a [ b ] ) ) { return a [ b ] === c } if ( ! d ) { return false } return m ( a [ b ] , c ) ; default : throw new TypeError ( "URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter" ) } } ; f . commonPath = function ( a , b ) { var c = Math . min ( a . length , b . length ) ; var d ; for ( d = 0 ; d < c ; d ++ ) { if ( a . charAt ( d ) !== b . charAt ( d ) ) { d -- ; break } } if ( d < 1 ) { return a . charAt ( 0 ) === b . charAt ( 0 ) && a . charAt ( 0 ) === "/" ? "/" : "" } if ( a . charAt ( d ) !== "/" || b . charAt ( d ) !== "/" ) { d = a . substring ( 0 , d ) . lastIndexOf ( "/" ) } return a . substring ( 0 , d + 1 ) } ; f . withinString = function ( a , b , c ) { c || ( c = { } ) ; var d = c . start || f . findUri . start ; var e = c . end || f . findUri . end ; var g = c . trim || f . findUri . trim ; var h = /[a-z0-9-]=["']?$/i ; d . lastIndex = 0 ; while ( true ) { var i = d . exec ( a ) ; if ( ! i ) { break } var j = i . index ; if ( c . ignoreHtml ) { var k = a . slice ( Math . max ( j - 3 , 0 ) , j ) ; if ( k && h . test ( k ) ) { continue } } var l = j + a . slice ( j ) . search ( e ) ; var m = a . slice ( j , l ) . replace ( g , "" ) ; if ( c . ignore && c . ignore . test ( m ) ) { continue } l = j + m . length ; var n = b ( m , j , l , a ) ; a = a . slice ( 0 , j ) + n + a . slice ( l ) ; d . lastIndex = j + n . length } d . lastIndex = 0 ; return a } ; f . ensureValidHostname = function ( b ) { if ( b . match ( f . invalid _hostname _characters ) ) { if ( ! a ) { throw new TypeError ( 'Hostname "' + b + '" contains characters other than [A-Z0-9.-] and Punycode.js is not available' ) } if ( a . toASCII ( b ) . match ( f . invalid _hostname _characters ) ) { throw new TypeError ( 'Hostname "' + b + '" contains characters other than [A-Z0-9.-]' ) } } } ; f . noConflict = function ( a ) { if ( a ) { var b = { URI : this . noConflict ( ) } ; if ( d . URITemplate && typeof d . URITemplate . noConflict === "function" ) { b . URITemplate = d . URITemplate . noConflict ( ) } if ( d . IPv6 && typeof d . IPv6 . noConf