2012-05-21 15:12:37 +04:00
/ * T h i s S o u r c e C o d e F o r m i s s u b j e c t t o t h e t e r m s o f t h e M o z i l l a P u b l i c
* License , v . 2.0 . If a copy of the MPL was not distributed with this
* file , You can obtain one at http : //mozilla.org/MPL/2.0/. */
2012-04-11 04:28:08 +04:00
//clearElement
var clearElement = function ( ) { return function ( ) { function g ( a ) { throw a ; } var h = void 0 , i = ! 0 , k = null , l = ! 1 ; function n ( a ) { return function ( ) { return this [ a ] } } function o ( a ) { return function ( ) { return a } } var p , q = this ;
function aa ( a ) { var b = typeof a ; if ( "object" == b ) if ( a ) { if ( a instanceof Array ) return "array" ; if ( a instanceof Object ) return b ; var c = Object . prototype . toString . call ( a ) ; if ( "[object Window]" == c ) return "object" ; if ( "[object Array]" == c || "number" == typeof a . length && "undefined" != typeof a . splice && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "splice" ) ) return "array" ; if ( "[object Function]" == c || "undefined" != typeof a . call && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "call" ) ) return "function" } else return "null" ;
else if ( "function" == b && "undefined" == typeof a . call ) return "object" ; return b } function r ( a ) { return a !== h } function ba ( a ) { var b = aa ( a ) ; return "array" == b || "object" == b && "number" == typeof a . length } function t ( a ) { return "string" == typeof a } function w ( a ) { return "function" == aa ( a ) } function ca ( a ) { a = aa ( a ) ; return "object" == a || "array" == a || "function" == a } var da = "closure_uid_" + Math . floor ( 2147483648 * Math . random ( ) ) . toString ( 36 ) , ea = 0 , fa = Date . now || function ( ) { return + new Date } ;
function x ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . $ = b . prototype ; a . prototype = new c } ; function ga ( a , b ) { for ( var c = 1 ; c < arguments . length ; c ++ ) var d = ( "" + arguments [ c ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } function ha ( a ) { return a . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) } function ia ( a ) { if ( ! ja . test ( a ) ) return a ; - 1 != a . indexOf ( "&" ) && ( a = a . replace ( ka , "&" ) ) ; - 1 != a . indexOf ( "<" ) && ( a = a . replace ( la , "<" ) ) ; - 1 != a . indexOf ( ">" ) && ( a = a . replace ( ma , ">" ) ) ; - 1 != a . indexOf ( '"' ) && ( a = a . replace ( na , """ ) ) ; return a } var ka = /&/g , la = /</g , ma = />/g , na = /\"/g , ja = /[&<>\"]/ ;
function oa ( a , b ) { for ( var c = 0 , d = ha ( "" + a ) . split ( "." ) , e = ha ( "" + b ) . split ( "." ) , f = Math . max ( d . length , e . length ) , j = 0 ; 0 == c && j < f ; j ++ ) { var m = d [ j ] || "" , s = e [ j ] || "" , O = RegExp ( "(\\d*)(\\D*)" , "g" ) , E = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var u = O . exec ( m ) || [ "" , "" , "" ] , v = E . exec ( s ) || [ "" , "" , "" ] ; if ( 0 == u [ 0 ] . length && 0 == v [ 0 ] . length ) break ; c = ( ( 0 == u [ 1 ] . length ? 0 : parseInt ( u [ 1 ] , 10 ) ) < ( 0 == v [ 1 ] . length ? 0 : parseInt ( v [ 1 ] , 10 ) ) ? - 1 : ( 0 == u [ 1 ] . length ? 0 : parseInt ( u [ 1 ] , 10 ) ) > ( 0 == v [ 1 ] . length ? 0 : parseInt ( v [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == u [ 2 ] . length ) < ( 0 == v [ 2 ] . length ) ? - 1 : ( 0 ==
u [ 2 ] . length ) > ( 0 == v [ 2 ] . length ) ? 1 : 0 ) || ( u [ 2 ] < v [ 2 ] ? - 1 : u [ 2 ] > v [ 2 ] ? 1 : 0 ) } while ( 0 == c ) } return c } var pa = 2147483648 * Math . random ( ) | 0 , qa = { } ; function ra ( a ) { return qa [ a ] || ( qa [ a ] = ( "" + a ) . replace ( /\-([a-z])/g , function ( a , c ) { return c . toUpperCase ( ) } ) ) } ; var sa , ta ; function ua ( ) { return q . navigator ? q . navigator . userAgent : k } var va , wa = q . navigator ; va = wa && wa . platform || "" ; sa = - 1 != va . indexOf ( "Mac" ) ; ta = - 1 != va . indexOf ( "Win" ) ; var xa = - 1 != va . indexOf ( "Linux" ) , ya , za = "" , Aa = /rv\:([^\);]+)(\)|;)/ . exec ( ua ( ) ) ; ya = za = Aa ? Aa [ 1 ] : "" ; var Ba = { } ; var Ca = window ; function Da ( a , b ) { for ( var c in a ) b . call ( h , a [ c ] , c , a ) } function Ea ( a ) { var b = [ ] , c = 0 , d ; for ( d in a ) b [ c ++ ] = a [ d ] ; return b } ; function y ( a , b ) { this . code = a ; this . message = b || "" ; this . name = Fa [ a ] || Fa [ 13 ] ; var c = Error ( this . message ) ; c . name = this . name ; this . stack = c . stack || "" } x ( y , Error ) ;
var Fa = { 7 : "NoSuchElementError" , 8 : "NoSuchFrameError" , 9 : "UnknownCommandError" , 10 : "StaleElementReferenceError" , 11 : "ElementNotVisibleError" , 12 : "InvalidElementStateError" , 13 : "UnknownError" , 15 : "ElementNotSelectableError" , 19 : "XPathLookupError" , 23 : "NoSuchWindowError" , 24 : "InvalidCookieDomainError" , 25 : "UnableToSetCookieError" , 26 : "ModalDialogOpenedError" , 27 : "NoModalDialogOpenError" , 28 : "ScriptTimeoutError" , 32 : "InvalidSelectorError" , 33 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
y . prototype . toString = function ( ) { return "[" + this . name + "] " + this . message } ; function Ga ( a ) { this . stack = Error ( ) . stack || "" ; a && ( this . message = "" + a ) } x ( Ga , Error ) ; Ga . prototype . name = "CustomError" ; function Ha ( a , b ) { b . unshift ( a ) ; Ga . call ( this , ga . apply ( k , b ) ) ; b . shift ( ) } x ( Ha , Ga ) ; Ha . prototype . name = "AssertionError" ; function Ia ( a , b , c ) { if ( ! a ) { var d = Array . prototype . slice . call ( arguments , 2 ) , e = "Assertion failed" ; if ( b ) var e = e + ( ": " + b ) , f = d ; g ( new Ha ( "" + e , f || [ ] ) ) } } function Ja ( a , b ) { g ( new Ha ( "Failure" + ( a ? ": " + a : "" ) , Array . prototype . slice . call ( arguments , 1 ) ) ) } ; function z ( a ) { return a [ a . length - 1 ] } var Ka = Array . prototype ; function A ( a , b ) { if ( t ( a ) ) return ! t ( b ) || 1 != b . length ? - 1 : a . indexOf ( b , 0 ) ; for ( var c = 0 ; c < a . length ; c ++ ) if ( c in a && a [ c ] === b ) return c ; return - 1 } function La ( a , b ) { for ( var c = a . length , d = t ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) e in d && b . call ( h , d [ e ] , e , a ) } function Ma ( a , b ) { for ( var c = a . length , d = Array ( c ) , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < c ; f ++ ) f in e && ( d [ f ] = b . call ( h , e [ f ] , f , a ) ) ; return d }
function Na ( a , b , c ) { for ( var d = a . length , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < d ; f ++ ) if ( f in e && b . call ( c , e [ f ] , f , a ) ) return i ; return l } function Oa ( a , b , c ) { for ( var d = a . length , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < d ; f ++ ) if ( f in e && ! b . call ( c , e [ f ] , f , a ) ) return l ; return i } function Pa ( a , b ) { var c ; a : { c = a . length ; for ( var d = t ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) if ( e in d && b . call ( h , d [ e ] , e , a ) ) { c = e ; break a } c = - 1 } return 0 > c ? k : t ( a ) ? a . charAt ( c ) : a [ c ] } function Qa ( a ) { return Ka . concat . apply ( Ka , arguments ) }
function Ra ( a ) { if ( "array" == aa ( a ) ) return Qa ( a ) ; for ( var b = [ ] , c = 0 , d = a . length ; c < d ; c ++ ) b [ c ] = a [ c ] ; return b } function Sa ( a , b , c ) { Ia ( a . length != k ) ; return 2 >= arguments . length ? Ka . slice . call ( a , b ) : Ka . slice . call ( a , b , c ) } ; var Ta ; Ba [ "1.9.1" ] || ( Ba [ "1.9.1" ] = 0 <= oa ( ya , "1.9.1" ) ) ; function Ua ( a , b ) { var c ; c = ( c = a . className ) && "function" == typeof c . split ? c . split ( /\s+/ ) : [ ] ; var d = Sa ( arguments , 1 ) , e ; e = c ; for ( var f = 0 , j = 0 ; j < d . length ; j ++ ) 0 <= A ( e , d [ j ] ) || ( e . push ( d [ j ] ) , f ++ ) ; e = f == d . length ; a . className = c . join ( " " ) ; return e } ; function B ( a , b ) { this . x = r ( a ) ? a : 0 ; this . y = r ( b ) ? b : 0 } B . prototype . toString = function ( ) { return "(" + this . x + ", " + this . y + ")" } ; function Va ( a , b ) { this . width = a ; this . height = b } Va . prototype . toString = function ( ) { return "(" + this . width + " x " + this . height + ")" } ; Va . prototype . floor = function ( ) { this . width = Math . floor ( this . width ) ; this . height = Math . floor ( this . height ) ; return this } ; Va . prototype . scale = function ( a ) { this . width *= a ; this . height *= a ; return this } ; var C = 3 ; function Wa ( a ) { return a ? new Xa ( D ( a ) ) : Ta || ( Ta = new Xa ) } function Ya ( a , b ) { Da ( b , function ( b , d ) { "style" == d ? a . style . cssText = b : "class" == d ? a . className = b : "for" == d ? a . htmlFor = b : d in Za ? a . setAttribute ( Za [ d ] , b ) : 0 == d . lastIndexOf ( "aria-" , 0 ) ? a . setAttribute ( d , b ) : a [ d ] = b } ) } var Za = { cellpadding : "cellPadding" , cellspacing : "cellSpacing" , colspan : "colSpan" , rowspan : "rowSpan" , valign : "vAlign" , height : "height" , width : "width" , usemap : "useMap" , frameborder : "frameBorder" , maxlength : "maxLength" , type : "type" } ;
function F ( a ) { return a ? a . parentWindow || a . defaultView : window } function $a ( a , b , c ) { function d ( c ) { c && b . appendChild ( t ( c ) ? a . createTextNode ( c ) : c ) } for ( var e = 2 ; e < c . length ; e ++ ) { var f = c [ e ] ; ba ( f ) && ! ( ca ( f ) && 0 < f . nodeType ) ? La ( ab ( f ) ? Ra ( f ) : f , d ) : d ( f ) } } function bb ( a ) { return a && a . parentNode ? a . parentNode . removeChild ( a ) : k }
function G ( a , b ) { if ( a . contains && 1 == b . nodeType ) return a == b || a . contains ( b ) ; if ( "undefined" != typeof a . compareDocumentPosition ) return a == b || Boolean ( a . compareDocumentPosition ( b ) & 16 ) ; for ( ; b && a != b ; ) b = b . parentNode ; return b == a }
function cb ( a , b ) { if ( a == b ) return 0 ; if ( a . compareDocumentPosition ) return a . compareDocumentPosition ( b ) & 2 ? 1 : - 1 ; if ( "sourceIndex" in a || a . parentNode && "sourceIndex" in a . parentNode ) { var c = 1 == a . nodeType , d = 1 == b . nodeType ; if ( c && d ) return a . sourceIndex - b . sourceIndex ; var e = a . parentNode , f = b . parentNode ; return e == f ? db ( a , b ) : ! c && G ( e , b ) ? - 1 * eb ( a , b ) : ! d && G ( f , a ) ? eb ( b , a ) : ( c ? a . sourceIndex : e . sourceIndex ) - ( d ? b . sourceIndex : f . sourceIndex ) } d = D ( a ) ; c = d . createRange ( ) ; c . selectNode ( a ) ; c . collapse ( i ) ; d = d . createRange ( ) ; d . selectNode ( b ) ; d . collapse ( i ) ;
return c . compareBoundaryPoints ( q . Range . START _TO _END , d ) } function eb ( a , b ) { var c = a . parentNode ; if ( c == b ) return - 1 ; for ( var d = b ; d . parentNode != c ; ) d = d . parentNode ; return db ( d , a ) } function db ( a , b ) { for ( var c = b ; c = c . previousSibling ; ) if ( c == a ) return - 1 ; return 1 }
function fb ( a ) { var b , c = arguments . length ; if ( c ) { if ( 1 == c ) return arguments [ 0 ] } else return k ; var d = [ ] , e = Infinity ; for ( b = 0 ; b < c ; b ++ ) { for ( var f = [ ] , j = arguments [ b ] ; j ; ) f . unshift ( j ) , j = j . parentNode ; d . push ( f ) ; e = Math . min ( e , f . length ) } f = k ; for ( b = 0 ; b < e ; b ++ ) { for ( var j = d [ 0 ] [ b ] , m = 1 ; m < c ; m ++ ) if ( j != d [ m ] [ b ] ) return f ; f = j } return f } function D ( a ) { return 9 == a . nodeType ? a : a . ownerDocument || a . document } function gb ( a , b ) { var c = [ ] ; return hb ( a , b , c , i ) ? c [ 0 ] : h }
function hb ( a , b , c , d ) { if ( a != k ) for ( a = a . firstChild ; a ; ) { if ( b ( a ) && ( c . push ( a ) , d ) || hb ( a , b , c , d ) ) return i ; a = a . nextSibling } return l } var ib = { SCRIPT : 1 , STYLE : 1 , HEAD : 1 , IFRAME : 1 , OBJECT : 1 } , jb = { IMG : " " , BR : "\n" } ; function kb ( a , b , c ) { if ( ! ( a . nodeName in ib ) ) if ( a . nodeType == C ) c ? b . push ( ( "" + a . nodeValue ) . replace ( /(\r\n|\r|\n)/g , "" ) ) : b . push ( a . nodeValue ) ; else if ( a . nodeName in jb ) b . push ( jb [ a . nodeName ] ) ; else for ( a = a . firstChild ; a ; ) kb ( a , b , c ) , a = a . nextSibling }
function ab ( a ) { if ( a && "number" == typeof a . length ) { if ( ca ( a ) ) return "function" == typeof a . item || "string" == typeof a . item ; if ( w ( a ) ) return "function" == typeof a . item } return l } function lb ( a , b ) { for ( var a = a . parentNode , c = 0 ; a ; ) { if ( b ( a ) ) return a ; a = a . parentNode ; c ++ } return k } function Xa ( a ) { this . v = a || q . document || document } p = Xa . prototype ; p . ea = n ( "v" ) ; p . z = function ( a ) { return t ( a ) ? this . v . getElementById ( a ) : a } ;
p . da = function ( a , b , c ) { var d = this . v , e = arguments , f = e [ 1 ] , j = d . createElement ( e [ 0 ] ) ; f && ( t ( f ) ? j . className = f : "array" == aa ( f ) ? Ua . apply ( k , [ j ] . concat ( f ) ) : Ya ( j , f ) ) ; 2 < e . length && $a ( d , j , e ) ; return j } ; p . createElement = function ( a ) { return this . v . createElement ( a ) } ; p . createTextNode = function ( a ) { return this . v . createTextNode ( a ) } ; p . qa = function ( ) { return this . v . parentWindow || this . v . defaultView } ;
function mb ( a ) { var b = a . v , a = "CSS1Compat" == b . compatMode ? b . documentElement : b . body , b = b . parentWindow || b . defaultView ; return new B ( b . pageXOffset || a . scrollLeft , b . pageYOffset || a . scrollTop ) } p . appendChild = function ( a , b ) { a . appendChild ( b ) } ; p . removeNode = bb ; p . contains = G ; var H = { } ; H . ya = function ( ) { var a = { Oa : "http://www.w3.org/2000/svg" } ; return function ( b ) { return a [ b ] || k } } ( ) ; H . ma = function ( a , b , c ) { var d = D ( a ) ; if ( ! d . implementation . hasFeature ( "XPath" , "3.0" ) ) return k ; try { var e = d . createNSResolver ? d . createNSResolver ( d . documentElement ) : H . ya ; return d . evaluate ( b , a , e , c , k ) } catch ( f ) { "NS_ERROR_ILLEGAL_VALUE" != f . name && g ( new y ( 32 , "Unable to locate an element with the xpath expression " + b + " because of the following error:\n" + f ) ) } } ;
H . ka = function ( a , b ) { ( ! a || 1 != a . nodeType ) && g ( new y ( 32 , 'The result of the xpath expression "' + b + '" is: ' + a + ". It should be an element." ) ) } ; H . Ia = function ( a , b ) { var c = function ( ) { var c = H . ma ( b , a , 9 ) ; return c ? c . singleNodeValue || k : b . selectSingleNode ? ( c = D ( b ) , c . setProperty && c . setProperty ( "SelectionLanguage" , "XPath" ) , b . selectSingleNode ( a ) ) : k } ( ) ; c === k || H . ka ( c , a ) ; return c } ;
H . Na = function ( a , b ) { var c = function ( ) { var c = H . ma ( b , a , 7 ) ; if ( c ) { for ( var e = c . snapshotLength , f = [ ] , j = 0 ; j < e ; ++ j ) f . push ( c . snapshotItem ( j ) ) ; return f } return b . selectNodes ? ( c = D ( b ) , c . setProperty && c . setProperty ( "SelectionLanguage" , "XPath" ) , b . selectNodes ( a ) ) : [ ] } ( ) ; La ( c , function ( b ) { H . ka ( b , a ) } ) ; return c } ; var nb , ob = "" , pb = /Firefox\/([0-9.]+)/ . exec ( ua ( ) ) ; nb = ob = pb ? pb [ 2 ] || pb [ 1 ] : "" ; var qb = k , rb = function ( ) { var a = q . Components ; if ( ! a ) return l ; try { if ( ! a . classes ) return l } catch ( b ) { return l } var c = a . classes , a = a . interfaces , d = c [ "@mozilla.org/xpcom/version-comparator;1" ] . getService ( a . nsIVersionComparator ) , e = c [ "@mozilla.org/xre/app-info;1" ] . getService ( a . nsIXULAppInfo ) . version ; qb = function ( a ) { return 0 <= d . Ka ( e , "" + a ) } ; return i } ( ) ; var I = "StopIteration" in q ? q . StopIteration : Error ( "StopIteration" ) ; function J ( ) { } J . prototype . next = function ( ) { g ( I ) } ; J . prototype . r = function ( ) { return this } ; function sb ( a ) { if ( a instanceof J ) return a ; if ( "function" == typeof a . r ) return a . r ( l ) ; if ( ba ( a ) ) { var b = 0 , c = new J ; c . next = function ( ) { for ( ; ; ) { b >= a . length && g ( I ) ; if ( b in a ) return a [ b ++ ] ; b ++ } } ; return c } g ( Error ( "Not implemented" ) ) } ; function K ( a , b , c , d , e ) { this . o = ! ! b ; a && L ( this , a , d ) ; this . depth = e != h ? e : this . q || 0 ; this . o && ( this . depth *= - 1 ) ; this . za = ! c } x ( K , J ) ; p = K . prototype ; p . p = k ; p . q = 0 ; p . ha = l ; function L ( a , b , c , d ) { if ( a . p = b ) a . q = "number" == typeof c ? c : 1 != a . p . nodeType ? 0 : a . o ? - 1 : 1 ; "number" == typeof d && ( a . depth = d ) }
p . next = function ( ) { var a ; if ( this . ha ) { ( ! this . p || this . za && 0 == this . depth ) && g ( I ) ; a = this . p ; var b = this . o ? - 1 : 1 ; if ( this . q == b ) { var c = this . o ? a . lastChild : a . firstChild ; c ? L ( this , c ) : L ( this , a , - 1 * b ) } else ( c = this . o ? a . previousSibling : a . nextSibling ) ? L ( this , c ) : L ( this , a . parentNode , - 1 * b ) ; this . depth += this . q * ( this . o ? - 1 : 1 ) } else this . ha = i ; ( a = this . p ) || g ( I ) ; return a } ;
p . splice = function ( a ) { var b = this . p , c = this . o ? 1 : - 1 ; this . q == c && ( this . q = - 1 * c , this . depth += this . q * ( this . o ? - 1 : 1 ) ) ; this . o = ! this . o ; K . prototype . next . call ( this ) ; this . o = ! this . o ; for ( var c = ba ( arguments [ 0 ] ) ? arguments [ 0 ] : arguments , d = c . length - 1 ; 0 <= d ; d -- ) b . parentNode && b . parentNode . insertBefore ( c [ d ] , b . nextSibling ) ; bb ( b ) } ; function tb ( a , b , c , d ) { K . call ( this , a , b , c , k , d ) } x ( tb , K ) ; tb . prototype . next = function ( ) { do tb . $ . next . call ( this ) ; while ( - 1 == this . q ) ; return this . p } ; function ub ( a , b ) { var c = D ( a ) ; return c . defaultView && c . defaultView . getComputedStyle && ( c = c . defaultView . getComputedStyle ( a , k ) ) ? c [ b ] || c . getPropertyValue ( b ) : "" } function vb ( a , b ) { return ub ( a , b ) || ( a . currentStyle ? a . currentStyle [ b ] : k ) || a . style && a . style [ b ] }
function wb ( a ) { for ( var b = D ( a ) , c = vb ( a , "position" ) , d = "fixed" == c || "absolute" == c , a = a . parentNode ; a && a != b ; a = a . parentNode ) if ( c = vb ( a , "position" ) , d = d && "static" == c && a != b . documentElement && a != b . body , ! d && ( a . scrollWidth > a . clientWidth || a . scrollHeight > a . clientHeight || "fixed" == c || "absolute" == c || "relative" == c ) ) return a ; return k }
function xb ( a ) { var b = new B ; if ( 1 == a . nodeType ) if ( a . getBoundingClientRect ) a = a . getBoundingClientRect ( ) , b . x = a . left , b . y = a . top ; else { var c = mb ( Wa ( a ) ) ; var d , e = D ( a ) , f = vb ( a , "position" ) , j = e . getBoxObjectFor && ! a . getBoundingClientRect && "absolute" == f && ( d = e . getBoxObjectFor ( a ) ) && ( 0 > d . screenX || 0 > d . screenY ) , f = new B ( 0 , 0 ) , m = ( e ? 9 == e . nodeType ? e : D ( e ) : document ) . documentElement ; if ( a != m ) if ( a . getBoundingClientRect ) d = a . getBoundingClientRect ( ) , a = mb ( Wa ( e ) ) , f . x = d . left + a . x , f . y = d . top + a . y ; else if ( e . getBoxObjectFor && ! j ) d = e . getBoxObjectFor ( a ) ,
a = e . getBoxObjectFor ( m ) , f . x = d . screenX - a . screenX , f . y = d . screenY - a . screenY ; else { d = a ; do f . x += d . offsetLeft , f . y += d . offsetTop , d != a && ( f . x += d . clientLeft || 0 , f . y += d . clientTop || 0 ) , d = d . offsetParent ; while ( d && d != a ) ; for ( d = a ; ( d = wb ( d ) ) && d != e . body && d != m ; ) f . x -= d . scrollLeft , f . y -= d . scrollTop } b . x = f . x - c . x ; b . y = f . y - c . y } else c = w ( a . pa ) , d = a , a . targetTouches ? d = a . targetTouches [ 0 ] : c && a . pa ( ) . targetTouches && ( d = a . pa ( ) . targetTouches [ 0 ] ) , b . x = d . clientX , b . y = d . clientY ; return b }
function yb ( a ) { var b = a . offsetWidth , c = a . offsetHeight ; return ! r ( b ) && a . getBoundingClientRect ? ( a = a . getBoundingClientRect ( ) , new Va ( a . right - a . left , a . bottom - a . top ) ) : new Va ( b , c ) } ; function M ( a , b ) { return ! ! a && 1 == a . nodeType && ( ! b || a . tagName . toUpperCase ( ) == b ) } var zb = { "class" : "className" , readonly : "readOnly" } , Ab = [ "checked" , "disabled" , "draggable" , "hidden" ] ; function Bb ( a , b ) { var c = zb [ b ] || b , d = a [ c ] ; if ( ! r ( d ) && 0 <= A ( Ab , c ) ) return l ; if ( c = "value" == b ) if ( c = M ( a , "OPTION" ) ) { var e ; c = b . toLowerCase ( ) ; if ( a . hasAttribute ) e = a . hasAttribute ( c ) ; else try { e = a . attributes [ c ] . specified } catch ( f ) { e = l } c = ! e } c && ( d = [ ] , kb ( a , d , l ) , d = d . join ( "" ) ) ; return d }
var Cb = "async,autofocus,autoplay,checked,compact,complete,controls,declare,defaultchecked,defaultselected,defer,disabled,draggable,ended,formnovalidate,hidden,indeterminate,iscontenteditable,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,paused,pubdate,readonly,required,reversed,scoped,seamless,seeking,selected,spellcheck,truespeed,willvalidate" . split ( "," ) , Db = "BUTTON,INPUT,OPTGROUP,OPTION,SELECT,TEXTAREA" . split ( "," ) ;
function Eb ( a ) { var b = a . tagName . toUpperCase ( ) ; return ! ( 0 <= A ( Db , b ) ) ? i : Bb ( a , "disabled" ) ? l : a . parentNode && 1 == a . parentNode . nodeType && "OPTGROUP" == b || "OPTION" == b ? Eb ( a . parentNode ) : i } var Fb = "text,search,tel,url,email,password,number" . split ( "," ) ; function Gb ( a ) { return M ( a , "TEXTAREA" ) ? i : M ( a , "INPUT" ) ? 0 <= A ( Fb , a . type . toLowerCase ( ) ) : Hb ( a ) ? i : l }
function Hb ( a ) { function b ( a ) { return "inherit" == a . contentEditable ? ( a = Ib ( a ) ) ? b ( a ) : l : "true" == a . contentEditable } return ! r ( a . contentEditable ) ? l : r ( a . isContentEditable ) ? a . isContentEditable : b ( a ) } function Ib ( a ) { for ( a = a . parentNode ; a && 1 != a . nodeType && 9 != a . nodeType && 11 != a . nodeType ; ) a = a . parentNode ; return M ( a ) ? a : k } function Jb ( a , b ) { b = ra ( b ) ; return ub ( a , b ) || Kb ( a , b ) }
function Kb ( a , b ) { var c = a . currentStyle || a . style , d = c [ b ] ; ! r ( d ) && w ( c . getPropertyValue ) && ( d = c . getPropertyValue ( b ) ) ; return "inherit" != d ? r ( d ) ? d : k : ( c = Ib ( a ) ) ? Kb ( c , b ) : k } function Lb ( a ) { if ( w ( a . getBBox ) ) try { var b = a . getBBox ( ) ; if ( b ) return b } catch ( c ) { } if ( "none" != vb ( a , "display" ) ) a = yb ( a ) ; else { var b = a . style , d = b . display , e = b . visibility , f = b . position ; b . visibility = "hidden" ; b . position = "absolute" ; b . display = "inline" ; a = yb ( a ) ; b . display = d ; b . position = f ; b . visibility = e } return a }
function Mb ( a , b ) { function c ( a ) { if ( "none" == Jb ( a , "display" ) ) return l ; a = Ib ( a ) ; return ! a || c ( a ) } function d ( a ) { var b = Lb ( a ) ; return 0 < b . height && 0 < b . width ? i : Na ( a . childNodes , function ( a ) { return a . nodeType == C || M ( a ) && d ( a ) } ) } function e ( a ) { var b = Ib ( a ) ; if ( b && "hidden" == Jb ( b , "overflow" ) ) { var c = Lb ( b ) , d = xb ( b ) , a = xb ( a ) ; return d . x + c . width < a . x || d . y + c . height < a . y ? l : e ( b ) } return i } M ( a ) || g ( Error ( "Argument to isShown must be of type Element" ) ) ; if ( M ( a , "OPTION" ) || M ( a , "OPTGROUP" ) ) { var f = lb ( a , function ( a ) { return M ( a , "SELECT" ) } ) ; return ! ! f &&
Mb ( f , i ) } if ( M ( a , "MAP" ) ) { if ( ! a . name ) return l ; f = D ( a ) ; f = f . evaluate ? H . Ia ( '/descendant::*[@usemap = "#' + a . name + '"]' , f ) : gb ( f , function ( b ) { var c ; if ( c = M ( b ) ) 8 == b . nodeType ? b = k : ( c = "usemap" , "style" == c ? ( b = ha ( b . style . cssText ) . toLowerCase ( ) , b = ";" == b . charAt ( b . length - 1 ) ? b : b + ";" ) : ( b = b . getAttributeNode ( c ) , b = ! b ? k : 0 <= A ( Cb , c ) ? "true" : b . specified ? b . value : k ) ) , c = b == "#" + a . name ; return c } ) ; return ! ! f && Mb ( f , b ) } return M ( a , "AREA" ) ? ( f = lb ( a , function ( a ) { return M ( a , "MAP" ) } ) , ! ! f && Mb ( f , b ) ) : M ( a , "INPUT" ) && "hidden" == a . type . toLowerCase ( ) || M ( a ,
"NOSCRIPT" ) || "hidden" == Jb ( a , "visibility" ) || ! c ( a ) || ! b && 0 == Nb ( a ) || ! d ( a ) || ! e ( a ) ? l : i } function Nb ( a ) { var b = 1 , c = Jb ( a , "opacity" ) ; c && ( b = Number ( c ) ) ; ( a = Ib ( a ) ) && ( b *= Nb ( a ) ) ; return b } ; function N ( ) { this . w = Ca . document . documentElement ; this . ua = k ; var a = D ( this . w ) . activeElement ; a && Ob ( this , a ) } N . prototype . z = n ( "w" ) ; function Ob ( a , b ) { a . w = b ; a . ua = M ( b , "OPTION" ) ? lb ( b , function ( a ) { return M ( a , "SELECT" ) } ) : k }
function Pb ( a , b , c , d , e , f ) { function j ( a , c ) { var d = { identifier : a , screenX : c . x , screenY : c . y , clientX : c . x , clientY : c . y , pageX : c . x , pageY : c . y } ; m . changedTouches . push ( d ) ; if ( b == Qb || b == Rb ) m . touches . push ( d ) , m . targetTouches . push ( d ) } var m = { touches : [ ] , targetTouches : [ ] , changedTouches : [ ] , altKey : l , ctrlKey : l , shiftKey : l , metaKey : l , relatedTarget : k , scale : 0 , rotation : 0 } ; j ( c , d ) ; r ( e ) && j ( e , f ) ; Sb ( a . w , b , m ) } rb && rb && ( rb ? qb ( 4 ) : oa ( nb , 4 ) ) ; rb && ( rb ? qb ( 4 ) : oa ( nb , 4 ) ) ; function P ( a , b , c ) { this . J = a ; this . S = b ; this . T = c } P . prototype . create = function ( a ) { a = D ( a ) . createEvent ( "HTMLEvents" ) ; a . initEvent ( this . J , this . S , this . T ) ; return a } ; P . prototype . toString = n ( "J" ) ; function Q ( a , b , c ) { P . call ( this , a , b , c ) } x ( Q , P ) ;
Q . prototype . create = function ( a , b ) { var c = D ( a ) , d = F ( c ) , c = c . createEvent ( "MouseEvents" ) , e = 1 ; this == Tb && ( e = b . wheelDelta / - 40 ) ; this == Ub && ( e = b . wheelDelta ) ; c . initMouseEvent ( this . J , this . S , this . T , d , e , 0 , 0 , b . clientX , b . clientY , b . ctrlKey , b . altKey , b . shiftKey , b . metaKey , b . button , b . relatedTarget ) ; return c } ; function Vb ( a , b , c ) { P . call ( this , a , b , c ) } x ( Vb , P ) ;
Vb . prototype . create = function ( a , b ) { var c = D ( a ) , d = F ( c ) , e = b . charCode ? 0 : b . keyCode , c = c . createEvent ( "KeyboardEvent" ) ; c . initKeyEvent ( this . J , this . S , this . T , d , b . ctrlKey , b . altKey , b . shiftKey , b . metaKey , e , b . charCode ) ; this . J == Wb && b . preventDefault && c . preventDefault ( ) ; return c } ; function Xb ( a , b , c ) { P . call ( this , a , b , c ) } x ( Xb , P ) ;
Xb . prototype . create = function ( a , b ) { function c ( b ) { var c = Ma ( b , function ( b ) { return { identifier : b . identifier , screenX : b . screenX , screenY : b . screenY , clientX : b . clientX , clientY : b . clientY , pageX : b . pageX , pageY : b . pageY , target : a } } ) ; c . item = function ( a ) { return c [ a ] } ; return c } var d = D ( a ) , e = F ( d ) , f = c ( b . changedTouches ) , j = b . touches == b . changedTouches ? f : c ( b . touches ) , m = b . targetTouches == b . changedTouches ? f : c ( b . targetTouches ) , d = d . createEvent ( "MouseEvents" ) ; d . initMouseEvent ( this . J , this . S , this . T , e , 1 , 0 , 0 , b . clientX , b . clientY , b . ctrlKey ,
b . altKey , b . shiftKey , b . metaKey , 0 , b . relatedTarget ) ; d . touches = j ; d . targetTouches = m ; d . changedTouches = f ; d . scale = b . scale ; d . rotation = b . rotation ; return d } ;
var Yb = new P ( "change" , i , l ) , Zb = new Q ( "click" , i , i ) , $b = new Q ( "contextmenu" , i , i ) , ac = new Q ( "dblclick" , i , i ) , bc = new Q ( "mousedown" , i , i ) , cc = new Q ( "mousemove" , i , l ) , dc = new Q ( "mouseout" , i , i ) , ec = new Q ( "mouseover" , i , i ) , fc = new Q ( "mouseup" , i , i ) , Tb = new Q ( "DOMMouseScroll" , i , i ) , Ub = new Q ( "MozMousePixelScroll" , i , i ) , Wb = new Vb ( "keypress" , i , i ) , Rb = new Xb ( "touchmove" , i , i ) , Qb = new Xb ( "touchstart" , i , i ) ; function Sb ( a , b , c ) { b = b . create ( a , c ) ; "isTrusted" in b || ( b . La = l ) ; a . dispatchEvent ( b ) } ; function gc ( a ) { if ( "function" == typeof a . L ) return a . L ( ) ; if ( t ( a ) ) return a . split ( "" ) ; if ( ba ( a ) ) { for ( var b = [ ] , c = a . length , d = 0 ; d < c ; d ++ ) b . push ( a [ d ] ) ; return b } return Ea ( a ) } ; function hc ( a , b ) { this . n = { } ; this . ta = { } ; var c = arguments . length ; if ( 1 < c ) { c % 2 && g ( Error ( "Uneven number of arguments" ) ) ; for ( var d = 0 ; d < c ; d += 2 ) this . set ( arguments [ d ] , arguments [ d + 1 ] ) } else a && this . aa ( a ) } p = hc . prototype ; p . ia = 0 ; p . L = function ( ) { var a = [ ] , b ; for ( b in this . n ) ":" == b . charAt ( 0 ) && a . push ( this . n [ b ] ) ; return a } ; function ic ( a ) { var b = [ ] , c ; for ( c in a . n ) if ( ":" == c . charAt ( 0 ) ) { var d = c . substring ( 1 ) ; b . push ( a . ta [ c ] ? Number ( d ) : d ) } return b }
p . set = function ( a , b ) { var c = ":" + a ; c in this . n || ( this . ia ++ , "number" == typeof a && ( this . ta [ c ] = i ) ) ; this . n [ c ] = b } ; p . aa = function ( a ) { var b ; if ( a instanceof hc ) b = ic ( a ) , a = a . L ( ) ; else { b = [ ] ; var c = 0 , d ; for ( d in a ) b [ c ++ ] = d ; a = Ea ( a ) } for ( c = 0 ; c < b . length ; c ++ ) this . set ( b [ c ] , a [ c ] ) } ; p . r = function ( a ) { var b = 0 , c = ic ( this ) , d = this . n , e = this . ia , f = this , j = new J ; j . next = function ( ) { for ( ; ; ) { e != f . ia && g ( Error ( "The map has changed since the iterator was created" ) ) ; b >= c . length && g ( I ) ; var j = c [ b ++ ] ; return a ? j : d [ ":" + j ] } } ; return j } ; function jc ( a ) { this . n = new hc ; a && this . aa ( a ) } function kc ( a ) { var b = typeof a ; return "object" == b && a || "function" == b ? "o" + ( a [ da ] || ( a [ da ] = ++ ea ) ) : b . substr ( 0 , 1 ) + a } p = jc . prototype ; p . add = function ( a ) { this . n . set ( kc ( a ) , a ) } ; p . aa = function ( a ) { for ( var a = gc ( a ) , b = a . length , c = 0 ; c < b ; c ++ ) this . add ( a [ c ] ) } ; p . contains = function ( a ) { return ":" + kc ( a ) in this . n . n } ; p . L = function ( ) { return this . n . L ( ) } ; p . r = function ( ) { return this . n . r ( l ) } ; function lc ( ) { N . call ( this ) ; Gb ( this . z ( ) ) && Bb ( this . z ( ) , "readOnly" ) ; this . Ha = new jc } x ( lc , N ) ; var mc = { } ; function R ( a , b , c ) { ca ( a ) && ( a = a . c ) ; a = new nc ( a ) ; if ( b && ( ! ( b in mc ) || c ) ) mc [ b ] = { key : a , shift : l } , c && ( mc [ c ] = { key : a , shift : i } ) } function nc ( a ) { this . code = a } R ( 8 ) ; R ( 9 ) ; R ( 13 ) ; R ( 16 ) ; R ( 17 ) ; R ( 18 ) ; R ( 19 ) ; R ( 20 ) ; R ( 27 ) ; R ( 32 , " " ) ; R ( 33 ) ; R ( 34 ) ; R ( 35 ) ; R ( 36 ) ; R ( 37 ) ; R ( 38 ) ; R ( 39 ) ; R ( 40 ) ; R ( 44 ) ; R ( 45 ) ; R ( 46 ) ; R ( 48 , "0" , ")" ) ; R ( 49 , "1" , "!" ) ; R ( 50 , "2" , "@" ) ; R ( 51 , "3" , "#" ) ; R ( 52 , "4" , "$" ) ; R ( 53 , "5" , "%" ) ; R ( 54 , "6" , "^" ) ; R ( 55 , "7" , "&" ) ; R ( 56 , "8" , "*" ) ;
R ( 57 , "9" , "(" ) ; R ( 65 , "a" , "A" ) ; R ( 66 , "b" , "B" ) ; R ( 67 , "c" , "C" ) ; R ( 68 , "d" , "D" ) ; R ( 69 , "e" , "E" ) ; R ( 70 , "f" , "F" ) ; R ( 71 , "g" , "G" ) ; R ( 72 , "h" , "H" ) ; R ( 73 , "i" , "I" ) ; R ( 74 , "j" , "J" ) ; R ( 75 , "k" , "K" ) ; R ( 76 , "l" , "L" ) ; R ( 77 , "m" , "M" ) ; R ( 78 , "n" , "N" ) ; R ( 79 , "o" , "O" ) ; R ( 80 , "p" , "P" ) ; R ( 81 , "q" , "Q" ) ; R ( 82 , "r" , "R" ) ; R ( 83 , "s" , "S" ) ; R ( 84 , "t" , "T" ) ; R ( 85 , "u" , "U" ) ; R ( 86 , "v" , "V" ) ; R ( 87 , "w" , "W" ) ; R ( 88 , "x" , "X" ) ; R ( 89 , "y" , "Y" ) ; R ( 90 , "z" , "Z" ) ; R ( ta ? { c : 91 , e : 91 , opera : 219 } : sa ? { c : 224 , e : 91 , opera : 17 } : { c : 0 , e : 91 , opera : k } ) ;
R ( ta ? { c : 92 , e : 92 , opera : 220 } : sa ? { c : 224 , e : 93 , opera : 17 } : { c : 0 , e : 92 , opera : k } ) ; R ( ta ? { c : 93 , e : 93 , opera : 0 } : sa ? { c : 0 , e : 0 , opera : 16 } : { c : 93 , e : k , opera : 0 } ) ; R ( { c : 96 , e : 96 , opera : 48 } , "0" ) ; R ( { c : 97 , e : 97 , opera : 49 } , "1" ) ; R ( { c : 98 , e : 98 , opera : 50 } , "2" ) ; R ( { c : 99 , e : 99 , opera : 51 } , "3" ) ; R ( { c : 100 , e : 100 , opera : 52 } , "4" ) ; R ( { c : 101 , e : 101 , opera : 53 } , "5" ) ; R ( { c : 102 , e : 102 , opera : 54 } , "6" ) ; R ( { c : 103 , e : 103 , opera : 55 } , "7" ) ; R ( { c : 104 , e : 104 , opera : 56 } , "8" ) ; R ( { c : 105 , e : 105 , opera : 57 } , "9" ) ; R ( { c : 106 , e : 106 , opera : xa ? 56 : 42 } , "*" ) ; R ( { c : 107 , e : 107 , opera : xa ? 61 : 43 } , "+" ) ;
R ( { c : 109 , e : 109 , opera : xa ? 109 : 45 } , "-" ) ; R ( { c : 110 , e : 110 , opera : xa ? 190 : 78 } , "." ) ; R ( { c : 111 , e : 111 , opera : xa ? 191 : 47 } , "/" ) ; R ( 144 ) ; R ( 112 ) ; R ( 113 ) ; R ( 114 ) ; R ( 115 ) ; R ( 116 ) ; R ( 117 ) ; R ( 118 ) ; R ( 119 ) ; R ( 120 ) ; R ( 121 ) ; R ( 122 ) ; R ( 123 ) ; R ( { c : 107 , e : 187 , opera : 61 } , "=" , "+" ) ; R ( { c : 109 , e : 189 , opera : 109 } , "-" , "_" ) ; R ( 188 , "," , "<" ) ; R ( 190 , "." , ">" ) ; R ( 191 , "/" , "?" ) ; R ( 192 , "`" , "~" ) ; R ( 219 , "[" , "{" ) ; R ( 220 , "\\" , "|" ) ; R ( 221 , "]" , "}" ) ; R ( { c : 59 , e : 186 , opera : 59 } , ";" , ":" ) ; R ( 222 , "'" , '"' ) ; lc . prototype . X = function ( a ) { return this . Ha . contains ( a ) } ; function oc ( a ) { return pc ( a || arguments . callee . caller , [ ] ) }
function pc ( a , b ) { var c = [ ] ; if ( 0 <= A ( b , a ) ) c . push ( "[...circular reference...]" ) ; else if ( a && 50 > b . length ) { c . push ( qc ( a ) + "(" ) ; for ( var d = a . arguments , e = 0 ; e < d . length ; e ++ ) { 0 < e && c . push ( ", " ) ; var f ; f = d [ e ] ; switch ( typeof f ) { case "object" : f = f ? "object" : "null" ; break ; case "string" : break ; case "number" : f = "" + f ; break ; case "boolean" : f = f ? "true" : "false" ; break ; case "function" : f = ( f = qc ( f ) ) ? f : "[fn]" ; break ; default : f = typeof f } 40 < f . length && ( f = f . substr ( 0 , 40 ) + "..." ) ; c . push ( f ) } b . push ( a ) ; c . push ( ")\n" ) ; try { c . push ( pc ( a . caller , b ) ) } catch ( j ) { c . push ( "[exception trying to get caller]\n" ) } } else a ?
c . push ( "[...long stack...]" ) : c . push ( "[end]" ) ; return c . join ( "" ) } function qc ( a ) { if ( rc [ a ] ) return rc [ a ] ; a = "" + a ; if ( ! rc [ a ] ) { var b = /function ([^\(]+)/ . exec ( a ) ; rc [ a ] = b ? b [ 1 ] : "[Anonymous]" } return rc [ a ] } var rc = { } ; function sc ( a , b , c , d , e ) { this . reset ( a , b , c , d , e ) } sc . prototype . oa = k ; sc . prototype . na = k ; var tc = 0 ; sc . prototype . reset = function ( a , b , c , d , e ) { "number" == typeof e || tc ++ ; d || fa ( ) ; this . N = a ; this . Fa = b ; delete this . oa ; delete this . na } ; sc . prototype . va = function ( a ) { this . N = a } ; function S ( a ) { this . Ga = a } S . prototype . Y = k ; S . prototype . N = k ; S . prototype . ba = k ; S . prototype . ra = k ; function uc ( a , b ) { this . name = a ; this . value = b } uc . prototype . toString = n ( "name" ) ; var vc = new uc ( "WARNING" , 900 ) , wc = new uc ( "CONFIG" , 700 ) ; S . prototype . getParent = n ( "Y" ) ; S . prototype . va = function ( a ) { this . N = a } ; function xc ( a ) { if ( a . N ) return a . N ; if ( a . Y ) return xc ( a . Y ) ; Ja ( "Root logger has no level set." ) ; return k }
S . prototype . log = function ( a , b , c ) { if ( a . value >= xc ( this ) . value ) { a = this . Ca ( a , b , c ) ; b = "log:" + a . Fa ; q . console && ( q . console . timeStamp ? q . console . timeStamp ( b ) : q . console . markTimeline && q . console . markTimeline ( b ) ) ; q . msWriteProfilerMark && q . msWriteProfilerMark ( b ) ; for ( b = this ; b ; ) { var c = b , d = a ; if ( c . ra ) for ( var e = 0 , f = h ; f = c . ra [ e ] ; e ++ ) f ( d ) ; b = b . getParent ( ) } } } ;
S . prototype . Ca = function ( a , b , c ) { var d = new sc ( a , "" + b , this . Ga ) ; if ( c ) { d . oa = c ; var e ; var f = arguments . callee . caller ; try { var j ; var m ; c : { for ( var s = [ "window" , "location" , "href" ] , O = q , E ; E = s . shift ( ) ; ) if ( O [ E ] != k ) O = O [ E ] ; else { m = k ; break c } m = O } if ( t ( c ) ) j = { message : c , name : "Unknown error" , lineNumber : "Not available" , fileName : m , stack : "Not available" } ; else { var u , v , s = l ; try { u = c . lineNumber || c . Ma || "Not available" } catch ( md ) { u = "Not available" , s = i } try { v = c . fileName || c . filename || c . sourceURL || m } catch ( nd ) { v = "Not available" , s = i } j = s ||
! c . lineNumber || ! c . fileName || ! c . stack ? { message : c . message , name : c . name , lineNumber : u , fileName : v , stack : c . stack || "Not available" } : c } e = "Message: " + ia ( j . message ) + '\nUrl: <a href="view-source:' + j . fileName + '" target="_new">' + j . fileName + "</a>\nLine: " + j . lineNumber + "\n\nBrowser stack:\n" + ia ( j . stack + "-> " ) + "[end]\n\nJS stack traversal:\n" + ia ( oc ( f ) + "-> " ) } catch ( kd ) { e = "Exception trying to expose exception! You win, we lose. " + kd } d . na = e } return d } ; var yc = { } , zc = k ;
function Ac ( a ) { zc || ( zc = new S ( "" ) , yc [ "" ] = zc , zc . va ( wc ) ) ; var b ; if ( ! ( b = yc [ a ] ) ) { b = new S ( a ) ; var c = a . lastIndexOf ( "." ) , d = a . substr ( c + 1 ) , c = Ac ( a . substr ( 0 , c ) ) ; c . ba || ( c . ba = { } ) ; c . ba [ d ] = b ; b . Y = c ; yc [ a ] = b } return b } ; function Bc ( ) { } x ( Bc , function ( ) { } ) ; Ac ( "goog.dom.SavedRange" ) ; x ( function ( a ) { this . Ja = "goog_" + pa ++ ; this . Aa = "goog_" + pa ++ ; this . la = Wa ( a . ea ( ) ) ; a . R ( this . la . da ( "SPAN" , { id : this . Ja } ) , this . la . da ( "SPAN" , { id : this . Aa } ) ) } , Bc ) ; function T ( ) { } function Cc ( a ) { if ( a . getSelection ) return a . getSelection ( ) ; var a = a . document , b = a . selection ; if ( b ) { try { var c = b . createRange ( ) ; if ( c . parentElement ) { if ( c . parentElement ( ) . document != a ) return k } else if ( ! c . length || c . item ( 0 ) . document != a ) return k } catch ( d ) { return k } return b } return k } function Dc ( a ) { for ( var b = [ ] , c = 0 , d = a . D ( ) ; c < d ; c ++ ) b . push ( a . A ( c ) ) ; return b } T . prototype . F = o ( l ) ; T . prototype . ea = function ( ) { return D ( this . b ( ) ) } ; T . prototype . qa = function ( ) { return F ( this . ea ( ) ) } ;
T . prototype . containsNode = function ( a , b ) { return this . u ( Ec ( Fc ( a ) , h ) , b ) } ; function U ( a , b ) { K . call ( this , a , b , i ) } x ( U , K ) ; function V ( ) { } x ( V , T ) ; V . prototype . u = function ( a , b ) { var c = Dc ( this ) , d = Dc ( a ) ; return ( b ? Na : Oa ) ( d , function ( a ) { return Na ( c , function ( c ) { return c . u ( a , b ) } ) } ) } ; V . prototype . insertNode = function ( a , b ) { if ( b ) { var c = this . b ( ) ; c . parentNode && c . parentNode . insertBefore ( a , c ) } else c = this . g ( ) , c . parentNode && c . parentNode . insertBefore ( a , c . nextSibling ) ; return a } ; V . prototype . R = function ( a , b ) { this . insertNode ( a , i ) ; this . insertNode ( b , l ) } ; function Gc ( a , b , c , d , e ) { var f ; if ( a && ( this . f = a , this . i = b , this . d = c , this . h = d , 1 == a . nodeType && "BR" != a . tagName && ( a = a . childNodes , ( b = a [ b ] ) ? ( this . f = b , this . i = 0 ) : ( a . length && ( this . f = z ( a ) ) , f = i ) ) , 1 == c . nodeType ) ) ( this . d = c . childNodes [ d ] ) ? this . h = 0 : this . d = c ; U . call ( this , e ? this . d : this . f , e ) ; if ( f ) try { this . next ( ) } catch ( j ) { j != I && g ( j ) } } x ( Gc , U ) ; p = Gc . prototype ; p . f = k ; p . d = k ; p . i = 0 ; p . h = 0 ; p . b = n ( "f" ) ; p . g = n ( "d" ) ; p . M = function ( ) { return this . ha && this . p == this . d && ( ! this . h || 1 != this . q ) } ; p . next = function ( ) { this . M ( ) && g ( I ) ; return Gc . $ . next . call ( this ) } ; "ScriptEngine" in q && "JScript" == q . ScriptEngine ( ) && ( q . ScriptEngineMajorVersion ( ) , q . ScriptEngineMinorVersion ( ) , q . ScriptEngineBuildVersion ( ) ) ; function Hc ( ) { } Hc . prototype . u = function ( a , b ) { var c = b && ! a . isCollapsed ( ) , d = a . a ; try { return c ? 0 <= this . l ( d , 0 , 1 ) && 0 >= this . l ( d , 1 , 0 ) : 0 <= this . l ( d , 0 , 0 ) && 0 >= this . l ( d , 1 , 1 ) } catch ( e ) { g ( e ) } } ; Hc . prototype . containsNode = function ( a , b ) { return this . u ( Fc ( a ) , b ) } ; Hc . prototype . r = function ( ) { return new Gc ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; function Ic ( a ) { this . a = a } x ( Ic , Hc ) ; p = Ic . prototype ; p . C = function ( ) { return this . a . commonAncestorContainer } ; p . b = function ( ) { return this . a . startContainer } ; p . j = function ( ) { return this . a . startOffset } ; p . g = function ( ) { return this . a . endContainer } ; p . k = function ( ) { return this . a . endOffset } ; p . l = function ( a , b , c ) { return this . a . compareBoundaryPoints ( 1 == c ? 1 == b ? q . Range . START _TO _START : q . Range . START _TO _END : 1 == b ? q . Range . END _TO _START : q . Range . END _TO _END , a ) } ; p . isCollapsed = function ( ) { return this . a . collapsed } ;
p . select = function ( a ) { this . Z ( F ( D ( this . b ( ) ) ) . getSelection ( ) , a ) } ; p . Z = function ( a ) { a . removeAllRanges ( ) ; a . addRange ( this . a ) } ; p . insertNode = function ( a , b ) { var c = this . a . cloneRange ( ) ; c . collapse ( b ) ; c . insertNode ( a ) ; c . detach ( ) ; return a } ;
p . R = function ( a , b ) { var c = F ( D ( this . b ( ) ) ) ; if ( c = ( c = Cc ( c || window ) ) && Jc ( c ) ) var d = c . b ( ) , e = c . g ( ) , f = c . j ( ) , j = c . k ( ) ; var m = this . a . cloneRange ( ) , s = this . a . cloneRange ( ) ; m . collapse ( l ) ; s . collapse ( i ) ; m . insertNode ( b ) ; s . insertNode ( a ) ; m . detach ( ) ; s . detach ( ) ; if ( c ) { if ( d . nodeType == C ) for ( ; f > d . length ; ) { f -= d . length ; do d = d . nextSibling ; while ( d == a || d == b ) } if ( e . nodeType == C ) for ( ; j > e . length ; ) { j -= e . length ; do e = e . nextSibling ; while ( e == a || e == b ) } c = new Kc ; c . G = Lc ( d , f , e , j ) ; "BR" == d . tagName && ( m = d . parentNode , f = A ( m . childNodes , d ) , d = m ) ; "BR" == e . tagName &&
( m = e . parentNode , j = A ( m . childNodes , e ) , e = m ) ; c . G ? ( c . f = e , c . i = j , c . d = d , c . h = f ) : ( c . f = d , c . i = f , c . d = e , c . h = j ) ; c . select ( ) } } ; p . collapse = function ( a ) { this . a . collapse ( a ) } ; function W ( a ) { this . a = a } x ( W , Ic ) ; function Fc ( a ) { var b = D ( a ) . createRange ( ) ; if ( a . nodeType == C ) b . setStart ( a , 0 ) , b . setEnd ( a , a . length ) ; else if ( X ( a ) ) { for ( var c , d = a ; ( c = d . firstChild ) && X ( c ) ; ) d = c ; b . setStart ( d , 0 ) ; for ( d = a ; ( c = d . lastChild ) && X ( c ) ; ) d = c ; b . setEnd ( d , 1 == d . nodeType ? d . childNodes . length : d . length ) } else c = a . parentNode , a = A ( c . childNodes , a ) , b . setStart ( c , a ) , b . setEnd ( c , a + 1 ) ; return new W ( b ) }
W . prototype . Z = function ( a , b ) { var c = b ? this . g ( ) : this . b ( ) , d = b ? this . k ( ) : this . j ( ) , e = b ? this . b ( ) : this . g ( ) , f = b ? this . j ( ) : this . k ( ) ; a . collapse ( c , d ) ; ( c != e || d != f ) && a . extend ( e , f ) } ; function Mc ( a ) { this . a = a } x ( Mc , Hc ) ; Ac ( "goog.dom.browserrange.IeRange" ) ; function Nc ( a ) { var b = D ( a ) . body . createTextRange ( ) ; if ( 1 == a . nodeType ) b . moveToElementText ( a ) , X ( a ) && ! a . childNodes . length && b . collapse ( l ) ; else { for ( var c = 0 , d = a ; d = d . previousSibling ; ) { var e = d . nodeType ; if ( e == C ) c += d . length ; else if ( 1 == e ) { b . moveToElementText ( d ) ; break } } d || b . moveToElementText ( a . parentNode ) ; b . collapse ( ! d ) ; c && b . move ( "character" , c ) ; b . moveEnd ( "character" , a . length ) } return b } p = Mc . prototype ; p . O = k ; p . f = k ; p . d = k ; p . i = - 1 ; p . h = - 1 ;
p . s = function ( ) { this . O = this . f = this . d = k ; this . i = this . h = - 1 } ;
p . C = function ( ) { if ( ! this . O ) { var a = this . a . text , b = this . a . duplicate ( ) , c = a . replace ( / +$/ , "" ) ; ( c = a . length - c . length ) && b . moveEnd ( "character" , - c ) ; c = b . parentElement ( ) ; b = b . htmlText . replace ( /(\r\n|\r|\n)+/g , " " ) . length ; if ( this . isCollapsed ( ) && 0 < b ) return this . O = c ; for ( ; b > c . outerHTML . replace ( /(\r\n|\r|\n)+/g , " " ) . length ; ) c = c . parentNode ; for ( ; 1 == c . childNodes . length && c . innerText == ( c . firstChild . nodeType == C ? c . firstChild . nodeValue : c . firstChild . innerText ) && X ( c . firstChild ) ; ) c = c . firstChild ; 0 == a . length && ( c = Oc ( this , c ) ) ; this . O =
c } return this . O } ; function Oc ( a , b ) { for ( var c = b . childNodes , d = 0 , e = c . length ; d < e ; d ++ ) { var f = c [ d ] ; if ( X ( f ) ) { var j = Nc ( f ) , m = j . htmlText != f . outerHTML ; if ( a . isCollapsed ( ) && m ? 0 <= a . l ( j , 1 , 1 ) && 0 >= a . l ( j , 1 , 0 ) : a . a . inRange ( j ) ) return Oc ( a , f ) } } return b } p . b = function ( ) { this . f || ( this . f = Pc ( this , 1 ) , this . isCollapsed ( ) && ( this . d = this . f ) ) ; return this . f } ; p . j = function ( ) { 0 > this . i && ( this . i = Qc ( this , 1 ) , this . isCollapsed ( ) && ( this . h = this . i ) ) ; return this . i } ;
p . g = function ( ) { if ( this . isCollapsed ( ) ) return this . b ( ) ; this . d || ( this . d = Pc ( this , 0 ) ) ; return this . d } ; p . k = function ( ) { if ( this . isCollapsed ( ) ) return this . j ( ) ; 0 > this . h && ( this . h = Qc ( this , 0 ) , this . isCollapsed ( ) && ( this . i = this . h ) ) ; return this . h } ; p . l = function ( a , b , c ) { return this . a . compareEndPoints ( ( 1 == b ? "Start" : "End" ) + "To" + ( 1 == c ? "Start" : "End" ) , a ) } ;
function Pc ( a , b , c ) { c = c || a . C ( ) ; if ( ! c || ! c . firstChild ) return c ; for ( var d = 1 == b , e = 0 , f = c . childNodes . length ; e < f ; e ++ ) { var j = d ? e : f - e - 1 , m = c . childNodes [ j ] , s ; try { s = Fc ( m ) } catch ( O ) { continue } var E = s . a ; if ( a . isCollapsed ( ) ) if ( X ( m ) ) { if ( s . u ( a ) ) return Pc ( a , b , m ) } else { if ( 0 == a . l ( E , 1 , 1 ) ) { a . i = a . h = j ; break } } else { if ( a . u ( s ) ) { if ( ! X ( m ) ) { d ? a . i = j : a . h = j + 1 ; break } return Pc ( a , b , m ) } if ( 0 > a . l ( E , 1 , 0 ) && 0 < a . l ( E , 0 , 1 ) ) return Pc ( a , b , m ) } } return c }
function Qc ( a , b ) { var c = 1 == b , d = c ? a . b ( ) : a . g ( ) ; if ( 1 == d . nodeType ) { for ( var d = d . childNodes , e = d . length , f = c ? 1 : - 1 , j = c ? 0 : e - 1 ; 0 <= j && j < e ; j += f ) { var m = d [ j ] ; if ( ! X ( m ) && 0 == a . a . compareEndPoints ( ( 1 == b ? "Start" : "End" ) + "To" + ( 1 == b ? "Start" : "End" ) , Fc ( m ) . a ) ) return c ? j : j + 1 } return - 1 == j ? 0 : j } e = a . a . duplicate ( ) ; f = Nc ( d ) ; e . setEndPoint ( c ? "EndToEnd" : "StartToStart" , f ) ; e = e . text . length ; return c ? d . length - e : e } p . isCollapsed = function ( ) { return 0 == this . a . compareEndPoints ( "StartToEnd" , this . a ) } ; p . select = function ( ) { this . a . select ( ) } ;
function Rc ( a , b , c ) { var d ; d = d || Wa ( a . parentElement ( ) ) ; var e ; 1 != b . nodeType && ( e = i , b = d . da ( "DIV" , k , b ) ) ; a . collapse ( c ) ; d = d || Wa ( a . parentElement ( ) ) ; var f = c = b . id ; c || ( c = b . id = "goog_" + pa ++ ) ; a . pasteHTML ( b . outerHTML ) ; ( b = d . z ( c ) ) && ( f || b . removeAttribute ( "id" ) ) ; if ( e ) { a = b . firstChild ; e = b ; if ( ( d = e . parentNode ) && 11 != d . nodeType ) if ( e . removeNode ) e . removeNode ( l ) ; else { for ( ; b = e . firstChild ; ) d . insertBefore ( b , e ) ; bb ( e ) } b = a } return b } p . insertNode = function ( a , b ) { var c = Rc ( this . a . duplicate ( ) , a , b ) ; this . s ( ) ; return c } ;
p . R = function ( a , b ) { var c = this . a . duplicate ( ) , d = this . a . duplicate ( ) ; Rc ( c , a , i ) ; Rc ( d , b , l ) ; this . s ( ) } ; p . collapse = function ( a ) { this . a . collapse ( a ) ; a ? ( this . d = this . f , this . h = this . i ) : ( this . f = this . d , this . i = this . h ) } ; function Sc ( a ) { this . a = a } x ( Sc , Ic ) ; Sc . prototype . Z = function ( a ) { a . collapse ( this . b ( ) , this . j ( ) ) ; ( this . g ( ) != this . b ( ) || this . k ( ) != this . j ( ) ) && a . extend ( this . g ( ) , this . k ( ) ) ; 0 == a . rangeCount && a . addRange ( this . a ) } ; function Tc ( a ) { this . a = a } x ( Tc , Ic ) ; Tc . prototype . l = function ( a , b , c ) { return Ba [ "528" ] || ( Ba [ "528" ] = 0 <= oa ( ya , "528" ) ) ? Tc . $ . l . call ( this , a , b , c ) : this . a . compareBoundaryPoints ( 1 == c ? 1 == b ? q . Range . START _TO _START : q . Range . END _TO _START : 1 == b ? q . Range . START _TO _END : q . Range . END _TO _END , a ) } ; Tc . prototype . Z = function ( a , b ) { a . removeAllRanges ( ) ; b ? a . setBaseAndExtent ( this . g ( ) , this . k ( ) , this . b ( ) , this . j ( ) ) : a . setBaseAndExtent ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; function X ( a ) { var b ; a : if ( 1 != a . nodeType ) b = l ; else { switch ( a . tagName ) { case "APPLET" : case "AREA" : case "BASE" : case "BR" : case "COL" : case "FRAME" : case "HR" : case "IMG" : case "INPUT" : case "IFRAME" : case "ISINDEX" : case "LINK" : case "NOFRAMES" : case "NOSCRIPT" : case "META" : case "OBJECT" : case "PARAM" : case "SCRIPT" : case "STYLE" : b = l ; break a } b = i } return b || a . nodeType == C } ; function Kc ( ) { } x ( Kc , T ) ; function Ec ( a , b ) { var c = new Kc ; c . K = a ; c . G = ! ! b ; return c } p = Kc . prototype ; p . K = k ; p . f = k ; p . i = k ; p . d = k ; p . h = k ; p . G = l ; p . fa = o ( "text" ) ; p . W = function ( ) { return Y ( this ) . a } ; p . s = function ( ) { this . f = this . i = this . d = this . h = k } ; p . D = o ( 1 ) ; p . A = function ( ) { return this } ; function Y ( a ) { var b ; if ( ! ( b = a . K ) ) { b = a . b ( ) ; var c = a . j ( ) , d = a . g ( ) , e = a . k ( ) , f = D ( b ) . createRange ( ) ; f . setStart ( b , c ) ; f . setEnd ( d , e ) ; b = a . K = new W ( f ) } return b } p . C = function ( ) { return Y ( this ) . C ( ) } ; p . b = function ( ) { return this . f || ( this . f = Y ( this ) . b ( ) ) } ;
p . j = function ( ) { return this . i != k ? this . i : this . i = Y ( this ) . j ( ) } ; p . g = function ( ) { return this . d || ( this . d = Y ( this ) . g ( ) ) } ; p . k = function ( ) { return this . h != k ? this . h : this . h = Y ( this ) . k ( ) } ; p . F = n ( "G" ) ; p . u = function ( a , b ) { var c = a . fa ( ) ; return "text" == c ? Y ( this ) . u ( Y ( a ) , b ) : "control" == c ? ( c = Uc ( a ) , ( b ? Na : Oa ) ( c , function ( a ) { return this . containsNode ( a , b ) } , this ) ) : l } ; p . isCollapsed = function ( ) { return Y ( this ) . isCollapsed ( ) } ; p . r = function ( ) { return new Gc ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; p . select = function ( ) { Y ( this ) . select ( this . G ) } ;
p . insertNode = function ( a , b ) { var c = Y ( this ) . insertNode ( a , b ) ; this . s ( ) ; return c } ; p . R = function ( a , b ) { Y ( this ) . R ( a , b ) ; this . s ( ) } ; p . ga = function ( ) { return new Vc ( this ) } ; p . collapse = function ( a ) { a = this . F ( ) ? ! a : a ; this . K && this . K . collapse ( a ) ; a ? ( this . d = this . f , this . h = this . i ) : ( this . f = this . d , this . i = this . h ) ; this . G = l } ; function Vc ( a ) { a . F ( ) ? a . g ( ) : a . b ( ) ; a . F ( ) ? a . k ( ) : a . j ( ) ; a . F ( ) ? a . b ( ) : a . g ( ) ; a . F ( ) ? a . j ( ) : a . k ( ) } x ( Vc , Bc ) ; function Wc ( ) { } x ( Wc , V ) ; p = Wc . prototype ; p . a = k ; p . m = k ; p . Q = k ; p . s = function ( ) { this . Q = this . m = k } ; p . fa = o ( "control" ) ; p . W = function ( ) { return this . a || document . body . createControlRange ( ) } ; p . D = function ( ) { return this . a ? this . a . length : 0 } ; p . A = function ( a ) { a = this . a . item ( a ) ; return Ec ( Fc ( a ) , h ) } ; p . C = function ( ) { return fb . apply ( k , Uc ( this ) ) } ; p . b = function ( ) { return Xc ( this ) [ 0 ] } ; p . j = o ( 0 ) ; p . g = function ( ) { var a = Xc ( this ) , b = z ( a ) ; return Pa ( a , function ( a ) { return G ( a , b ) } ) } ; p . k = function ( ) { return this . g ( ) . childNodes . length } ;
function Uc ( a ) { if ( ! a . m && ( a . m = [ ] , a . a ) ) for ( var b = 0 ; b < a . a . length ; b ++ ) a . m . push ( a . a . item ( b ) ) ; return a . m } function Xc ( a ) { a . Q || ( a . Q = Uc ( a ) . concat ( ) , a . Q . sort ( function ( a , c ) { return a . sourceIndex - c . sourceIndex } ) ) ; return a . Q } p . isCollapsed = function ( ) { return ! this . a || ! this . a . length } ; p . r = function ( ) { return new Yc ( this ) } ; p . select = function ( ) { this . a && this . a . select ( ) } ; p . ga = function ( ) { return new Zc ( this ) } ; p . collapse = function ( ) { this . a = k ; this . s ( ) } ; function Zc ( a ) { this . m = Uc ( a ) } x ( Zc , Bc ) ;
function Yc ( a ) { a && ( this . m = Xc ( a ) , this . f = this . m . shift ( ) , this . d = z ( this . m ) || this . f ) ; U . call ( this , this . f , l ) } x ( Yc , U ) ; p = Yc . prototype ; p . f = k ; p . d = k ; p . m = k ; p . b = n ( "f" ) ; p . g = n ( "d" ) ; p . M = function ( ) { return ! this . depth && ! this . m . length } ; p . next = function ( ) { this . M ( ) && g ( I ) ; if ( ! this . depth ) { var a = this . m . shift ( ) ; L ( this , a , 1 , 1 ) ; return a } return Yc . $ . next . call ( this ) } ; function $c ( ) { this . t = [ ] ; this . P = [ ] ; this . U = this . I = k } x ( $c , V ) ; p = $c . prototype ; p . Ea = Ac ( "goog.dom.MultiRange" ) ; p . s = function ( ) { this . P = [ ] ; this . U = this . I = k } ; p . fa = o ( "mutli" ) ; p . W = function ( ) { 1 < this . t . length && this . Ea . log ( vc , "getBrowserRangeObject called on MultiRange with more than 1 range" , h ) ; return this . t [ 0 ] } ; p . D = function ( ) { return this . t . length } ; p . A = function ( a ) { this . P [ a ] || ( this . P [ a ] = Ec ( new W ( this . t [ a ] ) , h ) ) ; return this . P [ a ] } ;
p . C = function ( ) { if ( ! this . U ) { for ( var a = [ ] , b = 0 , c = this . D ( ) ; b < c ; b ++ ) a . push ( this . A ( b ) . C ( ) ) ; this . U = fb . apply ( k , a ) } return this . U } ; function ad ( a ) { a . I || ( a . I = Dc ( a ) , a . I . sort ( function ( a , c ) { var d = a . b ( ) , e = a . j ( ) , f = c . b ( ) , j = c . j ( ) ; return d == f && e == j ? 0 : Lc ( d , e , f , j ) ? 1 : - 1 } ) ) ; return a . I } p . b = function ( ) { return ad ( this ) [ 0 ] . b ( ) } ; p . j = function ( ) { return ad ( this ) [ 0 ] . j ( ) } ; p . g = function ( ) { return z ( ad ( this ) ) . g ( ) } ; p . k = function ( ) { return z ( ad ( this ) ) . k ( ) } ; p . isCollapsed = function ( ) { return 0 == this . t . length || 1 == this . t . length && this . A ( 0 ) . isCollapsed ( ) } ;
p . r = function ( ) { return new bd ( this ) } ; p . select = function ( ) { var a = Cc ( this . qa ( ) ) ; a . removeAllRanges ( ) ; for ( var b = 0 , c = this . D ( ) ; b < c ; b ++ ) a . addRange ( this . A ( b ) . W ( ) ) } ; p . ga = function ( ) { return new cd ( this ) } ; p . collapse = function ( a ) { if ( ! this . isCollapsed ( ) ) { var b = a ? this . A ( 0 ) : this . A ( this . D ( ) - 1 ) ; this . s ( ) ; b . collapse ( a ) ; this . P = [ b ] ; this . I = [ b ] ; this . t = [ b . W ( ) ] } } ; function cd ( a ) { Ma ( Dc ( a ) , function ( a ) { return a . ga ( ) } ) } x ( cd , Bc ) ; function bd ( a ) { a && ( this . H = Ma ( ad ( a ) , function ( a ) { return sb ( a ) } ) ) ; U . call ( this , a ? this . b ( ) : k , l ) } x ( bd , U ) ; p = bd . prototype ;
p . H = k ; p . V = 0 ; p . b = function ( ) { return this . H [ 0 ] . b ( ) } ; p . g = function ( ) { return z ( this . H ) . g ( ) } ; p . M = function ( ) { return this . H [ this . V ] . M ( ) } ; p . next = function ( ) { try { var a = this . H [ this . V ] , b = a . next ( ) ; L ( this , a . p , a . q , a . depth ) ; return b } catch ( c ) { return ( c !== I || this . H . length - 1 == this . V ) && g ( c ) , this . V ++ , this . next ( ) } } ; function Jc ( a ) { var b , c = l ; if ( a . createRange ) try { b = a . createRange ( ) } catch ( d ) { return k } else if ( a . rangeCount ) { if ( 1 < a . rangeCount ) { b = new $c ; for ( var c = 0 , e = a . rangeCount ; c < e ; c ++ ) b . t . push ( a . getRangeAt ( c ) ) ; return b } b = a . getRangeAt ( 0 ) ; c = Lc ( a . anchorNode , a . anchorOffset , a . focusNode , a . focusOffset ) } else return k ; b && b . addElement ? ( a = new Wc , a . a = b ) : a = Ec ( new W ( b ) , c ) ; return a }
function Lc ( a , b , c , d ) { if ( a == c ) return d < b ; var e ; if ( 1 == a . nodeType && b ) if ( e = a . childNodes [ b ] ) a = e , b = 0 ; else if ( G ( a , c ) ) return i ; if ( 1 == c . nodeType && d ) if ( e = c . childNodes [ d ] ) c = e , d = 0 ; else if ( G ( c , a ) ) return l ; return 0 < ( cb ( a , c ) || b - d ) } ; function dd ( ) { N . call ( this ) ; this . ja = k ; this . B = new B ( 0 , 0 ) ; this . sa = l } x ( dd , N ) ; var Z = { } ; Z [ Zb ] = [ 0 , 1 , 2 , k ] ; Z [ $b ] = [ k , k , 2 , k ] ; Z [ fc ] = [ 0 , 1 , 2 , k ] ; Z [ dc ] = [ 0 , 0 , 0 , 0 ] ; Z [ cc ] = [ 0 , 0 , 0 , 0 ] ; Z [ ac ] = Z [ Zb ] ; Z [ bc ] = Z [ fc ] ; Z [ ec ] = Z [ dc ] ; dd . prototype . move = function ( a , b ) { var c = xb ( a ) ; this . B . x = b . x + c . x ; this . B . y = b . y + c . y ; a != this . z ( ) && ( c = this . z ( ) === Ca . document . documentElement || this . z ( ) === Ca . document . body , c = ! this . sa && c ? k : this . z ( ) , ed ( this , dc , a ) , Ob ( this , a ) , ed ( this , ec , c ) ) ; ed ( this , cc ) } ;
function ed ( a , b , c ) { a . sa = i ; var d = a . B , e ; b in Z ? ( e = Z [ b ] [ a . ja === k ? 3 : a . ja ] , e === k && g ( new y ( 13 , "Event does not permit the specified mouse button." ) ) ) : e = 0 ; Mb ( a . w , i ) && Eb ( a . w ) && ( c && ! ( ec == b || dc == b ) && g ( new y ( 12 , "Event type does not allow related target: " + b ) ) , c = { clientX : d . x , clientY : d . y , button : e , altKey : l , ctrlKey : l , shiftKey : l , metaKey : l , wheelDelta : 0 , relatedTarget : c || k } , ( a = a . w ) && Sb ( a , b , c ) ) } ; function fd ( ) { N . call ( this ) ; this . B = new B ( 0 , 0 ) ; this . ca = new B ( 0 , 0 ) } x ( fd , N ) ; fd . prototype . xa = 0 ; fd . prototype . wa = 0 ; fd . prototype . move = function ( a , b , c ) { this . X ( ) || Ob ( this , a ) ; a = xb ( a ) ; this . B . x = b . x + a . x ; this . B . y = b . y + a . y ; r ( c ) && ( this . ca . x = c . x + a . x , this . ca . y = c . y + a . y ) ; if ( this . X ( ) ) { b = Rb ; this . X ( ) || g ( new y ( 13 , "Should never fire event when touchscreen is not pressed." ) ) ; var d , e ; this . wa && ( d = this . wa , e = this . ca ) ; Pb ( this , b , this . xa , this . B , d , e ) } } ; fd . prototype . X = function ( ) { return ! ! this . xa } ; function gd ( a , b ) { this . x = a ; this . y = b } x ( gd , B ) ; gd . prototype . scale = function ( a ) { this . x *= a ; this . y *= a ; return this } ; gd . prototype . add = function ( a ) { this . x += a . x ; this . y += a . y ; return this } ; function hd ( ) { N . call ( this ) } x ( hd , N ) ; ( function ( a ) { a . Ba = function ( ) { return a . Da || ( a . Da = new a ) } } ) ( hd ) ; function id ( a ) { ( ! Mb ( a , i ) || ! Eb ( a ) ) && g ( new y ( 12 , "Element is not currently interactable and may not be manipulated" ) ) ; ( ! Gb ( a ) || Bb ( a , "readOnly" ) ) && g ( new y ( 12 , "Element must be user-editable in order to clear it." ) ) ; var b = hd . Ba ( ) ; Ob ( b , a ) ; var b = b . ua || b . w , c = D ( b ) . activeElement ; if ( b != c ) { if ( c && w ( c . blur ) ) try { c . blur ( ) } catch ( d ) { g ( d ) } w ( b . focus ) && b . focus ( ) } a . value && ( a . value = "" , Sb ( a , Yb ) ) ; Hb ( a ) && ( a . innerHTML = " " ) } var jd = [ "_" ] , $ = q ; ! ( jd [ 0 ] in $ ) && $ . execScript && $ . execScript ( "var " + jd [ 0 ] ) ;
for ( var ld ; jd . length && ( ld = jd . shift ( ) ) ; ) ! jd . length && r ( id ) ? $ [ ld ] = id : $ = $ [ ld ] ? $ [ ld ] : $ [ ld ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != 'undefined' ? window . navigator : null } , arguments ) ; }
//click
var click = function ( ) { return function ( ) { function g ( a ) { throw a ; } var h = void 0 , i = ! 0 , k = null , l = ! 1 ; function n ( a ) { return function ( ) { return this [ a ] } } function o ( a ) { return function ( ) { return a } } var p , q = this ;
function aa ( a ) { var b = typeof a ; if ( "object" == b ) if ( a ) { if ( a instanceof Array ) return "array" ; if ( a instanceof Object ) return b ; var c = Object . prototype . toString . call ( a ) ; if ( "[object Window]" == c ) return "object" ; if ( "[object Array]" == c || "number" == typeof a . length && "undefined" != typeof a . splice && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "splice" ) ) return "array" ; if ( "[object Function]" == c || "undefined" != typeof a . call && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "call" ) ) return "function" } else return "null" ;
else if ( "function" == b && "undefined" == typeof a . call ) return "object" ; return b } function r ( a ) { return a !== h } function ba ( a ) { var b = aa ( a ) ; return "array" == b || "object" == b && "number" == typeof a . length } function t ( a ) { return "string" == typeof a } function u ( a ) { return "function" == aa ( a ) } function ca ( a ) { a = aa ( a ) ; return "object" == a || "array" == a || "function" == a } var da = "closure_uid_" + Math . floor ( 2147483648 * Math . random ( ) ) . toString ( 36 ) , ea = 0 , fa = Date . now || function ( ) { return + new Date } ;
function x ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . ca = b . prototype ; a . prototype = new c } ; function ga ( a , b ) { for ( var c = 1 ; c < arguments . length ; c ++ ) var d = ( "" + arguments [ c ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } function ha ( a ) { return a . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) } function ia ( a ) { if ( ! ja . test ( a ) ) return a ; - 1 != a . indexOf ( "&" ) && ( a = a . replace ( ka , "&" ) ) ; - 1 != a . indexOf ( "<" ) && ( a = a . replace ( la , "<" ) ) ; - 1 != a . indexOf ( ">" ) && ( a = a . replace ( ma , ">" ) ) ; - 1 != a . indexOf ( '"' ) && ( a = a . replace ( na , """ ) ) ; return a } var ka = /&/g , la = /</g , ma = />/g , na = /\"/g , ja = /[&<>\"]/ ;
function oa ( a , b ) { for ( var c = 0 , d = ha ( "" + a ) . split ( "." ) , e = ha ( "" + b ) . split ( "." ) , f = Math . max ( d . length , e . length ) , j = 0 ; 0 == c && j < f ; j ++ ) { var m = d [ j ] || "" , s = e [ j ] || "" , F = RegExp ( "(\\d*)(\\D*)" , "g" ) , B = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var v = F . exec ( m ) || [ "" , "" , "" ] , w = B . exec ( s ) || [ "" , "" , "" ] ; if ( 0 == v [ 0 ] . length && 0 == w [ 0 ] . length ) break ; c = ( ( 0 == v [ 1 ] . length ? 0 : parseInt ( v [ 1 ] , 10 ) ) < ( 0 == w [ 1 ] . length ? 0 : parseInt ( w [ 1 ] , 10 ) ) ? - 1 : ( 0 == v [ 1 ] . length ? 0 : parseInt ( v [ 1 ] , 10 ) ) > ( 0 == w [ 1 ] . length ? 0 : parseInt ( w [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == v [ 2 ] . length ) < ( 0 == w [ 2 ] . length ) ? - 1 : ( 0 ==
v [ 2 ] . length ) > ( 0 == w [ 2 ] . length ) ? 1 : 0 ) || ( v [ 2 ] < w [ 2 ] ? - 1 : v [ 2 ] > w [ 2 ] ? 1 : 0 ) } while ( 0 == c ) } return c } var pa = 2147483648 * Math . random ( ) | 0 , qa = { } ; function ra ( a ) { return qa [ a ] || ( qa [ a ] = ( "" + a ) . replace ( /\-([a-z])/g , function ( a , c ) { return c . toUpperCase ( ) } ) ) } ; var sa , ta ; function ua ( ) { return q . navigator ? q . navigator . userAgent : k } var va , wa = q . navigator ; va = wa && wa . platform || "" ; sa = - 1 != va . indexOf ( "Mac" ) ; ta = - 1 != va . indexOf ( "Win" ) ; var xa = - 1 != va . indexOf ( "Linux" ) , ya , za = "" , Aa = /rv\:([^\);]+)(\)|;)/ . exec ( ua ( ) ) ; ya = za = Aa ? Aa [ 1 ] : "" ; var Ba = { } ; var Ca = window ; function Da ( a , b ) { for ( var c in a ) b . call ( h , a [ c ] , c , a ) } function Ea ( a ) { var b = [ ] , c = 0 , d ; for ( d in a ) b [ c ++ ] = a [ d ] ; return b } ; function y ( a , b ) { this . code = a ; this . message = b || "" ; this . name = Fa [ a ] || Fa [ 13 ] ; var c = Error ( this . message ) ; c . name = this . name ; this . stack = c . stack || "" } x ( y , Error ) ;
var Fa = { 7 : "NoSuchElementError" , 8 : "NoSuchFrameError" , 9 : "UnknownCommandError" , 10 : "StaleElementReferenceError" , 11 : "ElementNotVisibleError" , 12 : "InvalidElementStateError" , 13 : "UnknownError" , 15 : "ElementNotSelectableError" , 19 : "XPathLookupError" , 23 : "NoSuchWindowError" , 24 : "InvalidCookieDomainError" , 25 : "UnableToSetCookieError" , 26 : "ModalDialogOpenedError" , 27 : "NoModalDialogOpenError" , 28 : "ScriptTimeoutError" , 32 : "InvalidSelectorError" , 33 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
y . prototype . toString = function ( ) { return "[" + this . name + "] " + this . message } ; function Ga ( a ) { this . stack = Error ( ) . stack || "" ; a && ( this . message = "" + a ) } x ( Ga , Error ) ; Ga . prototype . name = "CustomError" ; function Ha ( a , b ) { b . unshift ( a ) ; Ga . call ( this , ga . apply ( k , b ) ) ; b . shift ( ) } x ( Ha , Ga ) ; Ha . prototype . name = "AssertionError" ; function Ia ( a , b , c ) { if ( ! a ) { var d = Array . prototype . slice . call ( arguments , 2 ) , e = "Assertion failed" ; if ( b ) var e = e + ( ": " + b ) , f = d ; g ( new Ha ( "" + e , f || [ ] ) ) } } function Ja ( a , b ) { g ( new Ha ( "Failure" + ( a ? ": " + a : "" ) , Array . prototype . slice . call ( arguments , 1 ) ) ) } ; function z ( a ) { return a [ a . length - 1 ] } var Ka = Array . prototype ; function A ( a , b ) { if ( t ( a ) ) return ! t ( b ) || 1 != b . length ? - 1 : a . indexOf ( b , 0 ) ; for ( var c = 0 ; c < a . length ; c ++ ) if ( c in a && a [ c ] === b ) return c ; return - 1 } function La ( a , b ) { for ( var c = a . length , d = t ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) e in d && b . call ( h , d [ e ] , e , a ) } function Ma ( a , b ) { for ( var c = a . length , d = Array ( c ) , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < c ; f ++ ) f in e && ( d [ f ] = b . call ( h , e [ f ] , f , a ) ) ; return d }
function Na ( a , b , c ) { for ( var d = a . length , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < d ; f ++ ) if ( f in e && b . call ( c , e [ f ] , f , a ) ) return i ; return l } function Oa ( a , b , c ) { for ( var d = a . length , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < d ; f ++ ) if ( f in e && ! b . call ( c , e [ f ] , f , a ) ) return l ; return i } function Pa ( a , b ) { var c ; a : { c = a . length ; for ( var d = t ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) if ( e in d && b . call ( h , d [ e ] , e , a ) ) { c = e ; break a } c = - 1 } return 0 > c ? k : t ( a ) ? a . charAt ( c ) : a [ c ] } function Qa ( a ) { return Ka . concat . apply ( Ka , arguments ) }
function Ra ( a ) { if ( "array" == aa ( a ) ) return Qa ( a ) ; for ( var b = [ ] , c = 0 , d = a . length ; c < d ; c ++ ) b [ c ] = a [ c ] ; return b } function Sa ( a , b , c ) { Ia ( a . length != k ) ; return 2 >= arguments . length ? Ka . slice . call ( a , b ) : Ka . slice . call ( a , b , c ) } ; var Ta ; Ba [ "1.9.1" ] || ( Ba [ "1.9.1" ] = 0 <= oa ( ya , "1.9.1" ) ) ; function Ua ( a , b ) { var c ; c = ( c = a . className ) && "function" == typeof c . split ? c . split ( /\s+/ ) : [ ] ; var d = Sa ( arguments , 1 ) , e ; e = c ; for ( var f = 0 , j = 0 ; j < d . length ; j ++ ) 0 <= A ( e , d [ j ] ) || ( e . push ( d [ j ] ) , f ++ ) ; e = f == d . length ; a . className = c . join ( " " ) ; return e } ; function C ( a , b ) { this . x = r ( a ) ? a : 0 ; this . y = r ( b ) ? b : 0 } C . prototype . toString = function ( ) { return "(" + this . x + ", " + this . y + ")" } ; function Va ( a , b ) { this . width = a ; this . height = b } Va . prototype . toString = function ( ) { return "(" + this . width + " x " + this . height + ")" } ; Va . prototype . floor = function ( ) { this . width = Math . floor ( this . width ) ; this . height = Math . floor ( this . height ) ; return this } ; Va . prototype . scale = function ( a ) { this . width *= a ; this . height *= a ; return this } ; var D = 3 ; function Wa ( a ) { return a ? new Xa ( E ( a ) ) : Ta || ( Ta = new Xa ) } function Ya ( a , b ) { Da ( b , function ( b , d ) { "style" == d ? a . style . cssText = b : "class" == d ? a . className = b : "for" == d ? a . htmlFor = b : d in Za ? a . setAttribute ( Za [ d ] , b ) : 0 == d . lastIndexOf ( "aria-" , 0 ) ? a . setAttribute ( d , b ) : a [ d ] = b } ) } var Za = { cellpadding : "cellPadding" , cellspacing : "cellSpacing" , colspan : "colSpan" , rowspan : "rowSpan" , valign : "vAlign" , height : "height" , width : "width" , usemap : "useMap" , frameborder : "frameBorder" , maxlength : "maxLength" , type : "type" } ;
function $a ( a ) { var b = "CSS1Compat" == a . compatMode ? a . documentElement : a . body , a = a . parentWindow || a . defaultView ; return new C ( a . pageXOffset || b . scrollLeft , a . pageYOffset || b . scrollTop ) } function G ( a ) { return a ? a . parentWindow || a . defaultView : window } function ab ( a , b , c ) { function d ( c ) { c && b . appendChild ( t ( c ) ? a . createTextNode ( c ) : c ) } for ( var e = 2 ; e < c . length ; e ++ ) { var f = c [ e ] ; ba ( f ) && ! ( ca ( f ) && 0 < f . nodeType ) ? La ( bb ( f ) ? Ra ( f ) : f , d ) : d ( f ) } } function cb ( a ) { return a && a . parentNode ? a . parentNode . removeChild ( a ) : k }
function H ( a , b ) { if ( a . contains && 1 == b . nodeType ) return a == b || a . contains ( b ) ; if ( "undefined" != typeof a . compareDocumentPosition ) return a == b || Boolean ( a . compareDocumentPosition ( b ) & 16 ) ; for ( ; b && a != b ; ) b = b . parentNode ; return b == a }
function db ( a , b ) { if ( a == b ) return 0 ; if ( a . compareDocumentPosition ) return a . compareDocumentPosition ( b ) & 2 ? 1 : - 1 ; if ( "sourceIndex" in a || a . parentNode && "sourceIndex" in a . parentNode ) { var c = 1 == a . nodeType , d = 1 == b . nodeType ; if ( c && d ) return a . sourceIndex - b . sourceIndex ; var e = a . parentNode , f = b . parentNode ; return e == f ? eb ( a , b ) : ! c && H ( e , b ) ? - 1 * fb ( a , b ) : ! d && H ( f , a ) ? fb ( b , a ) : ( c ? a . sourceIndex : e . sourceIndex ) - ( d ? b . sourceIndex : f . sourceIndex ) } d = E ( a ) ; c = d . createRange ( ) ; c . selectNode ( a ) ; c . collapse ( i ) ; d = d . createRange ( ) ; d . selectNode ( b ) ; d . collapse ( i ) ;
return c . compareBoundaryPoints ( q . Range . START _TO _END , d ) } function fb ( a , b ) { var c = a . parentNode ; if ( c == b ) return - 1 ; for ( var d = b ; d . parentNode != c ; ) d = d . parentNode ; return eb ( d , a ) } function eb ( a , b ) { for ( var c = b ; c = c . previousSibling ; ) if ( c == a ) return - 1 ; return 1 }
function gb ( a ) { var b , c = arguments . length ; if ( c ) { if ( 1 == c ) return arguments [ 0 ] } else return k ; var d = [ ] , e = Infinity ; for ( b = 0 ; b < c ; b ++ ) { for ( var f = [ ] , j = arguments [ b ] ; j ; ) f . unshift ( j ) , j = j . parentNode ; d . push ( f ) ; e = Math . min ( e , f . length ) } f = k ; for ( b = 0 ; b < e ; b ++ ) { for ( var j = d [ 0 ] [ b ] , m = 1 ; m < c ; m ++ ) if ( j != d [ m ] [ b ] ) return f ; f = j } return f } function E ( a ) { return 9 == a . nodeType ? a : a . ownerDocument || a . document } function hb ( a , b ) { var c = [ ] ; return ib ( a , b , c , i ) ? c [ 0 ] : h }
function ib ( a , b , c , d ) { if ( a != k ) for ( a = a . firstChild ; a ; ) { if ( b ( a ) && ( c . push ( a ) , d ) || ib ( a , b , c , d ) ) return i ; a = a . nextSibling } return l } var jb = { SCRIPT : 1 , STYLE : 1 , HEAD : 1 , IFRAME : 1 , OBJECT : 1 } , kb = { IMG : " " , BR : "\n" } ; function lb ( a , b , c ) { if ( ! ( a . nodeName in jb ) ) if ( a . nodeType == D ) c ? b . push ( ( "" + a . nodeValue ) . replace ( /(\r\n|\r|\n)/g , "" ) ) : b . push ( a . nodeValue ) ; else if ( a . nodeName in kb ) b . push ( kb [ a . nodeName ] ) ; else for ( a = a . firstChild ; a ; ) lb ( a , b , c ) , a = a . nextSibling }
function bb ( a ) { if ( a && "number" == typeof a . length ) { if ( ca ( a ) ) return "function" == typeof a . item || "string" == typeof a . item ; if ( u ( a ) ) return "function" == typeof a . item } return l } function mb ( a , b ) { for ( var a = a . parentNode , c = 0 ; a ; ) { if ( b ( a ) ) return a ; a = a . parentNode ; c ++ } return k } function Xa ( a ) { this . v = a || q . document || document } p = Xa . prototype ; p . ia = n ( "v" ) ; p . m = function ( a ) { return t ( a ) ? this . v . getElementById ( a ) : a } ;
p . ga = function ( a , b , c ) { var d = this . v , e = arguments , f = e [ 1 ] , j = d . createElement ( e [ 0 ] ) ; f && ( t ( f ) ? j . className = f : "array" == aa ( f ) ? Ua . apply ( k , [ j ] . concat ( f ) ) : Ya ( j , f ) ) ; 2 < e . length && ab ( d , j , e ) ; return j } ; p . createElement = function ( a ) { return this . v . createElement ( a ) } ; p . createTextNode = function ( a ) { return this . v . createTextNode ( a ) } ; p . ta = function ( ) { return this . v . parentWindow || this . v . defaultView } ; p . appendChild = function ( a , b ) { a . appendChild ( b ) } ; p . removeNode = cb ; p . contains = H ; var I = { } ; I . Aa = function ( ) { var a = { Qa : "http://www.w3.org/2000/svg" } ; return function ( b ) { return a [ b ] || k } } ( ) ; I . pa = function ( a , b , c ) { var d = E ( a ) ; if ( ! d . implementation . hasFeature ( "XPath" , "3.0" ) ) return k ; try { var e = d . createNSResolver ? d . createNSResolver ( d . documentElement ) : I . Aa ; return d . evaluate ( b , a , e , c , k ) } catch ( f ) { "NS_ERROR_ILLEGAL_VALUE" != f . name && g ( new y ( 32 , "Unable to locate an element with the xpath expression " + b + " because of the following error:\n" + f ) ) } } ;
I . na = function ( a , b ) { ( ! a || 1 != a . nodeType ) && g ( new y ( 32 , 'The result of the xpath expression "' + b + '" is: ' + a + ". It should be an element." ) ) } ; I . Ja = function ( a , b ) { var c = function ( ) { var c = I . pa ( b , a , 9 ) ; return c ? c . singleNodeValue || k : b . selectSingleNode ? ( c = E ( b ) , c . setProperty && c . setProperty ( "SelectionLanguage" , "XPath" ) , b . selectSingleNode ( a ) ) : k } ( ) ; c === k || I . na ( c , a ) ; return c } ;
I . Pa = function ( a , b ) { var c = function ( ) { var c = I . pa ( b , a , 7 ) ; if ( c ) { for ( var e = c . snapshotLength , f = [ ] , j = 0 ; j < e ; ++ j ) f . push ( c . snapshotItem ( j ) ) ; return f } return b . selectNodes ? ( c = E ( b ) , c . setProperty && c . setProperty ( "SelectionLanguage" , "XPath" ) , b . selectNodes ( a ) ) : [ ] } ( ) ; La ( c , function ( b ) { I . na ( b , a ) } ) ; return c } ; var nb , ob = "" , pb = /Firefox\/([0-9.]+)/ . exec ( ua ( ) ) ; nb = ob = pb ? pb [ 2 ] || pb [ 1 ] : "" ; function qb ( ) { return J ? rb ( 4 ) : 0 <= oa ( nb , 4 ) } var rb = k , J = function ( ) { var a = q . Components ; if ( ! a ) return l ; try { if ( ! a . classes ) return l } catch ( b ) { return l } var c = a . classes , a = a . interfaces , d = c [ "@mozilla.org/xpcom/version-comparator;1" ] . getService ( a . nsIVersionComparator ) , e = c [ "@mozilla.org/xre/app-info;1" ] . getService ( a . nsIXULAppInfo ) . version ; rb = function ( a ) { return 0 <= d . La ( e , "" + a ) } ; return i } ( ) ; var K = "StopIteration" in q ? q . StopIteration : Error ( "StopIteration" ) ; function L ( ) { } L . prototype . next = function ( ) { g ( K ) } ; L . prototype . t = function ( ) { return this } ; function sb ( a ) { if ( a instanceof L ) return a ; if ( "function" == typeof a . t ) return a . t ( l ) ; if ( ba ( a ) ) { var b = 0 , c = new L ; c . next = function ( ) { for ( ; ; ) { b >= a . length && g ( K ) ; if ( b in a ) return a [ b ++ ] ; b ++ } } ; return c } g ( Error ( "Not implemented" ) ) } ; function M ( a , b , c , d , e ) { this . q = ! ! b ; a && N ( this , a , d ) ; this . depth = e != h ? e : this . s || 0 ; this . q && ( this . depth *= - 1 ) ; this . Ba = ! c } x ( M , L ) ; p = M . prototype ; p . r = k ; p . s = 0 ; p . la = l ; function N ( a , b , c , d ) { if ( a . r = b ) a . s = "number" == typeof c ? c : 1 != a . r . nodeType ? 0 : a . q ? - 1 : 1 ; "number" == typeof d && ( a . depth = d ) }
p . next = function ( ) { var a ; if ( this . la ) { ( ! this . r || this . Ba && 0 == this . depth ) && g ( K ) ; a = this . r ; var b = this . q ? - 1 : 1 ; if ( this . s == b ) { var c = this . q ? a . lastChild : a . firstChild ; c ? N ( this , c ) : N ( this , a , - 1 * b ) } else ( c = this . q ? a . previousSibling : a . nextSibling ) ? N ( this , c ) : N ( this , a . parentNode , - 1 * b ) ; this . depth += this . s * ( this . q ? - 1 : 1 ) } else this . la = i ; ( a = this . r ) || g ( K ) ; return a } ;
p . splice = function ( a ) { var b = this . r , c = this . q ? 1 : - 1 ; this . s == c && ( this . s = - 1 * c , this . depth += this . s * ( this . q ? - 1 : 1 ) ) ; this . q = ! this . q ; M . prototype . next . call ( this ) ; this . q = ! this . q ; for ( var c = ba ( arguments [ 0 ] ) ? arguments [ 0 ] : arguments , d = c . length - 1 ; 0 <= d ; d -- ) b . parentNode && b . parentNode . insertBefore ( c [ d ] , b . nextSibling ) ; cb ( b ) } ; function tb ( a , b , c , d ) { M . call ( this , a , b , c , k , d ) } x ( tb , M ) ; tb . prototype . next = function ( ) { do tb . ca . next . call ( this ) ; while ( - 1 == this . s ) ; return this . r } ; function ub ( a , b , c , d ) { this . top = a ; this . right = b ; this . bottom = c ; this . left = d } ub . prototype . toString = function ( ) { return "(" + this . top + "t, " + this . right + "r, " + this . bottom + "b, " + this . left + "l)" } ; ub . prototype . contains = function ( a ) { return ! this || ! a ? l : a instanceof ub ? a . left >= this . left && a . right <= this . right && a . top >= this . top && a . bottom <= this . bottom : a . x >= this . left && a . x <= this . right && a . y >= this . top && a . y <= this . bottom } ; function O ( a , b ) { var c = E ( a ) ; return c . defaultView && c . defaultView . getComputedStyle && ( c = c . defaultView . getComputedStyle ( a , k ) ) ? c [ b ] || c . getPropertyValue ( b ) : "" } function vb ( a , b ) { return O ( a , b ) || ( a . currentStyle ? a . currentStyle [ b ] : k ) || a . style && a . style [ b ] }
function wb ( a ) { for ( var b = E ( a ) , c = vb ( a , "position" ) , d = "fixed" == c || "absolute" == c , a = a . parentNode ; a && a != b ; a = a . parentNode ) if ( c = vb ( a , "position" ) , d = d && "static" == c && a != b . documentElement && a != b . body , ! d && ( a . scrollWidth > a . clientWidth || a . scrollHeight > a . clientHeight || "fixed" == c || "absolute" == c || "relative" == c ) ) return a ; return k }
function xb ( a ) { var b , c = E ( a ) , d = vb ( a , "position" ) , e = c . getBoxObjectFor && ! a . getBoundingClientRect && "absolute" == d && ( b = c . getBoxObjectFor ( a ) ) && ( 0 > b . screenX || 0 > b . screenY ) , d = new C ( 0 , 0 ) , f = ( c ? 9 == c . nodeType ? c : E ( c ) : document ) . documentElement ; if ( a == f ) return d ; if ( a . getBoundingClientRect ) b = a . getBoundingClientRect ( ) , a = Wa ( c ) , a = $a ( a . v ) , d . x = b . left + a . x , d . y = b . top + a . y ; else if ( c . getBoxObjectFor && ! e ) b = c . getBoxObjectFor ( a ) , a = c . getBoxObjectFor ( f ) , d . x = b . screenX - a . screenX , d . y = b . screenY - a . screenY ; else { b = a ; do d . x += b . offsetLeft , d . y +=
b . offsetTop , b != a && ( d . x += b . clientLeft || 0 , d . y += b . clientTop || 0 ) , b = b . offsetParent ; while ( b && b != a ) ; for ( b = a ; ( b = wb ( b ) ) && b != c . body && b != f ; ) d . x -= b . scrollLeft , d . y -= b . scrollTop } return d }
function yb ( a ) { var b = new C ; if ( 1 == a . nodeType ) if ( a . getBoundingClientRect ) a = a . getBoundingClientRect ( ) , b . x = a . left , b . y = a . top ; else { var c ; c = Wa ( a ) ; c = $a ( c . v ) ; a = xb ( a ) ; b . x = a . x - c . x ; b . y = a . y - c . y } else { c = u ( a . sa ) ; var d = a ; a . targetTouches ? d = a . targetTouches [ 0 ] : c && a . sa ( ) . targetTouches && ( d = a . sa ( ) . targetTouches [ 0 ] ) ; b . x = d . clientX ; b . y = d . clientY } return b }
function zb ( a ) { if ( "none" != vb ( a , "display" ) ) return Ab ( a ) ; var b = a . style , c = b . display , d = b . visibility , e = b . position ; b . visibility = "hidden" ; b . position = "absolute" ; b . display = "inline" ; a = Ab ( a ) ; b . display = c ; b . position = e ; b . visibility = d ; return a } function Ab ( a ) { var b = a . offsetWidth , c = a . offsetHeight ; return ! r ( b ) && a . getBoundingClientRect ? ( a = a . getBoundingClientRect ( ) , new Va ( a . right - a . left , a . bottom - a . top ) ) : new Va ( b , c ) } ; function P ( a , b ) { return ! ! a && 1 == a . nodeType && ( ! b || a . tagName . toUpperCase ( ) == b ) } function Bb ( a ) { return P ( a , "OPTION" ) ? i : P ( a , "INPUT" ) ? ( a = a . type . toLowerCase ( ) , "checkbox" == a || "radio" == a ) : l } var Cb = { "class" : "className" , readonly : "readOnly" } , Db = [ "checked" , "disabled" , "draggable" , "hidden" ] ;
function Eb ( a , b ) { var c = Cb [ b ] || b , d = a [ c ] ; if ( ! r ( d ) && 0 <= A ( Db , c ) ) return l ; if ( c = "value" == b ) if ( c = P ( a , "OPTION" ) ) { var e ; c = b . toLowerCase ( ) ; if ( a . hasAttribute ) e = a . hasAttribute ( c ) ; else try { e = a . attributes [ c ] . specified } catch ( f ) { e = l } c = ! e } c && ( d = [ ] , lb ( a , d , l ) , d = d . join ( "" ) ) ; return d }
var Fb = "async,autofocus,autoplay,checked,compact,complete,controls,declare,defaultchecked,defaultselected,defer,disabled,draggable,ended,formnovalidate,hidden,indeterminate,iscontenteditable,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,paused,pubdate,readonly,required,reversed,scoped,seamless,seeking,selected,spellcheck,truespeed,willvalidate" . split ( "," ) , Gb = "BUTTON,INPUT,OPTGROUP,OPTION,SELECT,TEXTAREA" . split ( "," ) ;
function Hb ( a ) { var b = a . tagName . toUpperCase ( ) ; return ! ( 0 <= A ( Gb , b ) ) ? i : Eb ( a , "disabled" ) ? l : a . parentNode && 1 == a . parentNode . nodeType && "OPTGROUP" == b || "OPTION" == b ? Hb ( a . parentNode ) : i } var Ib = "text,search,tel,url,email,password,number" . split ( "," ) ; function Jb ( a ) { function b ( a ) { return "inherit" == a . contentEditable ? ( a = Kb ( a ) ) ? b ( a ) : l : "true" == a . contentEditable } return ! r ( a . contentEditable ) ? l : r ( a . isContentEditable ) ? a . isContentEditable : b ( a ) }
function Kb ( a ) { for ( a = a . parentNode ; a && 1 != a . nodeType && 9 != a . nodeType && 11 != a . nodeType ; ) a = a . parentNode ; return P ( a ) ? a : k } function Lb ( a , b ) { b = ra ( b ) ; return O ( a , b ) || Mb ( a , b ) } function Mb ( a , b ) { var c = a . currentStyle || a . style , d = c [ b ] ; ! r ( d ) && u ( c . getPropertyValue ) && ( d = c . getPropertyValue ( b ) ) ; return "inherit" != d ? r ( d ) ? d : k : ( c = Kb ( a ) ) ? Mb ( c , b ) : k } function Nb ( a ) { if ( u ( a . getBBox ) ) try { var b = a . getBBox ( ) ; if ( b ) return b } catch ( c ) { } return zb ( a ) }
function Ob ( a , b ) { function c ( a ) { if ( "none" == Lb ( a , "display" ) ) return l ; a = Kb ( a ) ; return ! a || c ( a ) } function d ( a ) { var b = Nb ( a ) ; return 0 < b . height && 0 < b . width ? i : Na ( a . childNodes , function ( a ) { return a . nodeType == D || P ( a ) && d ( a ) } ) } function e ( a ) { var b = Kb ( a ) ; if ( b && "hidden" == Lb ( b , "overflow" ) ) { var c = Nb ( b ) , d = yb ( b ) , a = yb ( a ) ; return d . x + c . width < a . x || d . y + c . height < a . y ? l : e ( b ) } return i } P ( a ) || g ( Error ( "Argument to isShown must be of type Element" ) ) ; if ( P ( a , "OPTION" ) || P ( a , "OPTGROUP" ) ) { var f = mb ( a , function ( a ) { return P ( a , "SELECT" ) } ) ; return ! ! f &&
Ob ( f , i ) } if ( P ( a , "MAP" ) ) { if ( ! a . name ) return l ; f = E ( a ) ; f = f . evaluate ? I . Ja ( '/descendant::*[@usemap = "#' + a . name + '"]' , f ) : hb ( f , function ( b ) { var c ; if ( c = P ( b ) ) 8 == b . nodeType ? b = k : ( c = "usemap" , "style" == c ? ( b = ha ( b . style . cssText ) . toLowerCase ( ) , b = ";" == b . charAt ( b . length - 1 ) ? b : b + ";" ) : ( b = b . getAttributeNode ( c ) , b = ! b ? k : 0 <= A ( Fb , c ) ? "true" : b . specified ? b . value : k ) ) , c = b == "#" + a . name ; return c } ) ; return ! ! f && Ob ( f , b ) } return P ( a , "AREA" ) ? ( f = mb ( a , function ( a ) { return P ( a , "MAP" ) } ) , ! ! f && Ob ( f , b ) ) : P ( a , "INPUT" ) && "hidden" == a . type . toLowerCase ( ) || P ( a ,
"NOSCRIPT" ) || "hidden" == Lb ( a , "visibility" ) || ! c ( a ) || ! b && 0 == Pb ( a ) || ! d ( a ) || ! e ( a ) ? l : i } function Pb ( a ) { var b = 1 , c = Lb ( a , "opacity" ) ; c && ( b = Number ( c ) ) ; ( a = Kb ( a ) ) && ( b *= Pb ( a ) ) ; return b } ; function Q ( ) { this . l = Ca . document . documentElement ; this . ba = k ; var a = E ( this . l ) . activeElement ; a && Qb ( this , a ) } Q . prototype . m = n ( "l" ) ; function Qb ( a , b ) { a . l = b ; a . ba = P ( b , "OPTION" ) ? mb ( b , function ( a ) { return P ( a , "SELECT" ) } ) : k } function Rb ( a , b , c , d , e , f ) { if ( ! Ob ( a . l , i ) || ! Hb ( a . l ) ) return l ; e && ! ( Sb == b || Tb == b ) && g ( new y ( 12 , "Event type does not allow related target: " + b ) ) ; c = { clientX : c . x , clientY : c . y , button : d , altKey : l , ctrlKey : l , shiftKey : l , metaKey : l , wheelDelta : f || 0 , relatedTarget : e || k } ; return ( a = a . l ) ? Ub ( a , b , c ) : i }
function Vb ( a , b , c , d , e , f ) { function j ( a , c ) { var d = { identifier : a , screenX : c . x , screenY : c . y , clientX : c . x , clientY : c . y , pageX : c . x , pageY : c . y } ; m . changedTouches . push ( d ) ; if ( b == Wb || b == Xb ) m . touches . push ( d ) , m . targetTouches . push ( d ) } var m = { touches : [ ] , targetTouches : [ ] , changedTouches : [ ] , altKey : l , ctrlKey : l , shiftKey : l , metaKey : l , relatedTarget : k , scale : 0 , rotation : 0 } ; j ( c , d ) ; r ( e ) && j ( e , f ) ; Ub ( a . l , b , m ) } var Yb = ! J || J && ! qb ( ) , Zb = J && qb ( ) , $b = J ;
function ac ( a ) { if ( ! a . href ) return l ; if ( ! J ) return i ; if ( Zb ) return l ; if ( a . target || 0 == a . href . toLowerCase ( ) . indexOf ( "javascript" ) ) return ! $b ; var b = G ( E ( a ) ) , c = b . location . href ; var b = b . location , d = a . href . match ( bc ) ; if ( d ) { var a = d [ 1 ] || "" , e = d [ 2 ] || "" , f = d [ 3 ] || "" , j = d [ 4 ] || "" , d = d [ 5 ] || "" ; if ( ! a && ( a = b . protocol , ! e ) ) if ( e = b . host , f ) { if ( "/" != f . charAt ( 0 ) ) { var m = b . pathname . lastIndexOf ( "/" ) ; - 1 != m && ( f = b . pathname . substr ( 0 , m + 1 ) + f ) } } else f = b . pathname , j = j || b . search ; b = a + "//" + e + f + j + d } else b = "" ; return c . split ( "#" ) [ 0 ] !== b . split ( "#" ) [ 0 ] }
var bc = /^([^:/?#.]+:)?(?:\/\/([^/]*))?([^?#]+)?(\?[^#]*)?(#.*)?$/ ; function R ( a , b , c ) { this . K = a ; this . T = b ; this . U = c } R . prototype . create = function ( a ) { a = E ( a ) . createEvent ( "HTMLEvents" ) ; a . initEvent ( this . K , this . T , this . U ) ; return a } ; R . prototype . toString = n ( "K" ) ; function S ( a , b , c ) { R . call ( this , a , b , c ) } x ( S , R ) ;
S . prototype . create = function ( a , b ) { var c = E ( a ) , d = G ( c ) , c = c . createEvent ( "MouseEvents" ) , e = 1 ; this == cc && ( e = b . wheelDelta / - 40 ) ; this == dc && ( e = b . wheelDelta ) ; c . initMouseEvent ( this . K , this . T , this . U , d , e , 0 , 0 , b . clientX , b . clientY , b . ctrlKey , b . altKey , b . shiftKey , b . metaKey , b . button , b . relatedTarget ) ; return c } ; function ec ( a , b , c ) { R . call ( this , a , b , c ) } x ( ec , R ) ;
ec . prototype . create = function ( a , b ) { var c = E ( a ) , d = G ( c ) , e = b . charCode ? 0 : b . keyCode , c = c . createEvent ( "KeyboardEvent" ) ; c . initKeyEvent ( this . K , this . T , this . U , d , b . ctrlKey , b . altKey , b . shiftKey , b . metaKey , e , b . charCode ) ; this . K == fc && b . preventDefault && c . preventDefault ( ) ; return c } ; function gc ( a , b , c ) { R . call ( this , a , b , c ) } x ( gc , R ) ;
gc . prototype . create = function ( a , b ) { function c ( b ) { var c = Ma ( b , function ( b ) { return { identifier : b . identifier , screenX : b . screenX , screenY : b . screenY , clientX : b . clientX , clientY : b . clientY , pageX : b . pageX , pageY : b . pageY , target : a } } ) ; c . item = function ( a ) { return c [ a ] } ; return c } var d = E ( a ) , e = G ( d ) , f = c ( b . changedTouches ) , j = b . touches == b . changedTouches ? f : c ( b . touches ) , m = b . targetTouches == b . changedTouches ? f : c ( b . targetTouches ) , d = d . createEvent ( "MouseEvents" ) ; d . initMouseEvent ( this . K , this . T , this . U , e , 1 , 0 , 0 , b . clientX , b . clientY , b . ctrlKey ,
b . altKey , b . shiftKey , b . metaKey , 0 , b . relatedTarget ) ; d . touches = j ; d . targetTouches = m ; d . changedTouches = f ; d . scale = b . scale ; d . rotation = b . rotation ; return d } ;
var hc = new R ( "change" , i , l ) , ic = new S ( "click" , i , i ) , jc = new S ( "contextmenu" , i , i ) , kc = new S ( "dblclick" , i , i ) , lc = new S ( "mousedown" , i , i ) , mc = new S ( "mousemove" , i , l ) , Tb = new S ( "mouseout" , i , i ) , Sb = new S ( "mouseover" , i , i ) , nc = new S ( "mouseup" , i , i ) , cc = new S ( "DOMMouseScroll" , i , i ) , dc = new S ( "MozMousePixelScroll" , i , i ) , fc = new ec ( "keypress" , i , i ) , Xb = new gc ( "touchmove" , i , i ) , Wb = new gc ( "touchstart" , i , i ) ; function Ub ( a , b , c ) { b = b . create ( a , c ) ; "isTrusted" in b || ( b . Na = l ) ; return a . dispatchEvent ( b ) } ; function oc ( a ) { if ( "function" == typeof a . M ) return a . M ( ) ; if ( t ( a ) ) return a . split ( "" ) ; if ( ba ( a ) ) { for ( var b = [ ] , c = a . length , d = 0 ; d < c ; d ++ ) b . push ( a [ d ] ) ; return b } return Ea ( a ) } ; function pc ( a , b ) { this . p = { } ; this . wa = { } ; var c = arguments . length ; if ( 1 < c ) { c % 2 && g ( Error ( "Uneven number of arguments" ) ) ; for ( var d = 0 ; d < c ; d += 2 ) this . set ( arguments [ d ] , arguments [ d + 1 ] ) } else a && this . da ( a ) } p = pc . prototype ; p . ma = 0 ; p . M = function ( ) { var a = [ ] , b ; for ( b in this . p ) ":" == b . charAt ( 0 ) && a . push ( this . p [ b ] ) ; return a } ; function qc ( a ) { var b = [ ] , c ; for ( c in a . p ) if ( ":" == c . charAt ( 0 ) ) { var d = c . substring ( 1 ) ; b . push ( a . wa [ c ] ? Number ( d ) : d ) } return b }
p . set = function ( a , b ) { var c = ":" + a ; c in this . p || ( this . ma ++ , "number" == typeof a && ( this . wa [ c ] = i ) ) ; this . p [ c ] = b } ; p . da = function ( a ) { var b ; if ( a instanceof pc ) b = qc ( a ) , a = a . M ( ) ; else { b = [ ] ; var c = 0 , d ; for ( d in a ) b [ c ++ ] = d ; a = Ea ( a ) } for ( c = 0 ; c < b . length ; c ++ ) this . set ( b [ c ] , a [ c ] ) } ; p . t = function ( a ) { var b = 0 , c = qc ( this ) , d = this . p , e = this . ma , f = this , j = new L ; j . next = function ( ) { for ( ; ; ) { e != f . ma && g ( Error ( "The map has changed since the iterator was created" ) ) ; b >= c . length && g ( K ) ; var j = c [ b ++ ] ; return a ? j : d [ ":" + j ] } } ; return j } ; function rc ( a ) { this . p = new pc ; a && this . da ( a ) } function sc ( a ) { var b = typeof a ; return "object" == b && a || "function" == b ? "o" + ( a [ da ] || ( a [ da ] = ++ ea ) ) : b . substr ( 0 , 1 ) + a } p = rc . prototype ; p . add = function ( a ) { this . p . set ( sc ( a ) , a ) } ; p . da = function ( a ) { for ( var a = oc ( a ) , b = a . length , c = 0 ; c < b ; c ++ ) this . add ( a [ c ] ) } ; p . contains = function ( a ) { return ":" + sc ( a ) in this . p . p } ; p . M = function ( ) { return this . p . M ( ) } ; p . t = function ( ) { return this . p . t ( l ) } ; function tc ( ) { Q . call ( this ) ; var a = this . m ( ) ; ( P ( a , "TEXTAREA" ) || ( P ( a , "INPUT" ) ? 0 <= A ( Ib , a . type . toLowerCase ( ) ) : Jb ( a ) ) ) && Eb ( a , "readOnly" ) ; this . Ia = new rc } x ( tc , Q ) ; var uc = { } ; function T ( a , b , c ) { ca ( a ) && ( a = a . c ) ; a = new vc ( a ) ; if ( b && ( ! ( b in uc ) || c ) ) uc [ b ] = { key : a , shift : l } , c && ( uc [ c ] = { key : a , shift : i } ) } function vc ( a ) { this . code = a } T ( 8 ) ; T ( 9 ) ; T ( 13 ) ; T ( 16 ) ; T ( 17 ) ; T ( 18 ) ; T ( 19 ) ; T ( 20 ) ; T ( 27 ) ; T ( 32 , " " ) ; T ( 33 ) ; T ( 34 ) ; T ( 35 ) ; T ( 36 ) ; T ( 37 ) ; T ( 38 ) ; T ( 39 ) ; T ( 40 ) ; T ( 44 ) ; T ( 45 ) ; T ( 46 ) ; T ( 48 , "0" , ")" ) ; T ( 49 , "1" , "!" ) ; T ( 50 , "2" , "@" ) ; T ( 51 , "3" , "#" ) ; T ( 52 , "4" , "$" ) ;
T ( 53 , "5" , "%" ) ; T ( 54 , "6" , "^" ) ; T ( 55 , "7" , "&" ) ; T ( 56 , "8" , "*" ) ; T ( 57 , "9" , "(" ) ; T ( 65 , "a" , "A" ) ; T ( 66 , "b" , "B" ) ; T ( 67 , "c" , "C" ) ; T ( 68 , "d" , "D" ) ; T ( 69 , "e" , "E" ) ; T ( 70 , "f" , "F" ) ; T ( 71 , "g" , "G" ) ; T ( 72 , "h" , "H" ) ; T ( 73 , "i" , "I" ) ; T ( 74 , "j" , "J" ) ; T ( 75 , "k" , "K" ) ; T ( 76 , "l" , "L" ) ; T ( 77 , "m" , "M" ) ; T ( 78 , "n" , "N" ) ; T ( 79 , "o" , "O" ) ; T ( 80 , "p" , "P" ) ; T ( 81 , "q" , "Q" ) ; T ( 82 , "r" , "R" ) ; T ( 83 , "s" , "S" ) ; T ( 84 , "t" , "T" ) ; T ( 85 , "u" , "U" ) ; T ( 86 , "v" , "V" ) ; T ( 87 , "w" , "W" ) ; T ( 88 , "x" , "X" ) ; T ( 89 , "y" , "Y" ) ; T ( 90 , "z" , "Z" ) ; T ( ta ? { c : 91 , e : 91 , opera : 219 } : sa ? { c : 224 , e : 91 , opera : 17 } : { c : 0 , e : 91 , opera : k } ) ;
T ( ta ? { c : 92 , e : 92 , opera : 220 } : sa ? { c : 224 , e : 93 , opera : 17 } : { c : 0 , e : 92 , opera : k } ) ; T ( ta ? { c : 93 , e : 93 , opera : 0 } : sa ? { c : 0 , e : 0 , opera : 16 } : { c : 93 , e : k , opera : 0 } ) ; T ( { c : 96 , e : 96 , opera : 48 } , "0" ) ; T ( { c : 97 , e : 97 , opera : 49 } , "1" ) ; T ( { c : 98 , e : 98 , opera : 50 } , "2" ) ; T ( { c : 99 , e : 99 , opera : 51 } , "3" ) ; T ( { c : 100 , e : 100 , opera : 52 } , "4" ) ; T ( { c : 101 , e : 101 , opera : 53 } , "5" ) ; T ( { c : 102 , e : 102 , opera : 54 } , "6" ) ; T ( { c : 103 , e : 103 , opera : 55 } , "7" ) ; T ( { c : 104 , e : 104 , opera : 56 } , "8" ) ; T ( { c : 105 , e : 105 , opera : 57 } , "9" ) ; T ( { c : 106 , e : 106 , opera : xa ? 56 : 42 } , "*" ) ; T ( { c : 107 , e : 107 , opera : xa ? 61 : 43 } , "+" ) ;
T ( { c : 109 , e : 109 , opera : xa ? 109 : 45 } , "-" ) ; T ( { c : 110 , e : 110 , opera : xa ? 190 : 78 } , "." ) ; T ( { c : 111 , e : 111 , opera : xa ? 191 : 47 } , "/" ) ; T ( 144 ) ; T ( 112 ) ; T ( 113 ) ; T ( 114 ) ; T ( 115 ) ; T ( 116 ) ; T ( 117 ) ; T ( 118 ) ; T ( 119 ) ; T ( 120 ) ; T ( 121 ) ; T ( 122 ) ; T ( 123 ) ; T ( { c : 107 , e : 187 , opera : 61 } , "=" , "+" ) ; T ( { c : 109 , e : 189 , opera : 109 } , "-" , "_" ) ; T ( 188 , "," , "<" ) ; T ( 190 , "." , ">" ) ; T ( 191 , "/" , "?" ) ; T ( 192 , "`" , "~" ) ; T ( 219 , "[" , "{" ) ; T ( 220 , "\\" , "|" ) ; T ( 221 , "]" , "}" ) ; T ( { c : 59 , e : 186 , opera : 59 } , ";" , ":" ) ; T ( 222 , "'" , '"' ) ; tc . prototype . Y = function ( a ) { return this . Ia . contains ( a ) } ; function wc ( a ) { return xc ( a || arguments . callee . caller , [ ] ) }
function xc ( a , b ) { var c = [ ] ; if ( 0 <= A ( b , a ) ) c . push ( "[...circular reference...]" ) ; else if ( a && 50 > b . length ) { c . push ( yc ( a ) + "(" ) ; for ( var d = a . arguments , e = 0 ; e < d . length ; e ++ ) { 0 < e && c . push ( ", " ) ; var f ; f = d [ e ] ; switch ( typeof f ) { case "object" : f = f ? "object" : "null" ; break ; case "string" : break ; case "number" : f = "" + f ; break ; case "boolean" : f = f ? "true" : "false" ; break ; case "function" : f = ( f = yc ( f ) ) ? f : "[fn]" ; break ; default : f = typeof f } 40 < f . length && ( f = f . substr ( 0 , 40 ) + "..." ) ; c . push ( f ) } b . push ( a ) ; c . push ( ")\n" ) ; try { c . push ( xc ( a . caller , b ) ) } catch ( j ) { c . push ( "[exception trying to get caller]\n" ) } } else a ?
c . push ( "[...long stack...]" ) : c . push ( "[end]" ) ; return c . join ( "" ) } function yc ( a ) { if ( zc [ a ] ) return zc [ a ] ; a = "" + a ; if ( ! zc [ a ] ) { var b = /function ([^\(]+)/ . exec ( a ) ; zc [ a ] = b ? b [ 1 ] : "[Anonymous]" } return zc [ a ] } var zc = { } ; function Ac ( a , b , c , d , e ) { this . reset ( a , b , c , d , e ) } Ac . prototype . ra = k ; Ac . prototype . qa = k ; var Bc = 0 ; Ac . prototype . reset = function ( a , b , c , d , e ) { "number" == typeof e || Bc ++ ; d || fa ( ) ; this . O = a ; this . Ga = b ; delete this . ra ; delete this . qa } ; Ac . prototype . xa = function ( a ) { this . O = a } ; function U ( a ) { this . Ha = a } U . prototype . $ = k ; U . prototype . O = k ; U . prototype . ea = k ; U . prototype . ua = k ; function Cc ( a , b ) { this . name = a ; this . value = b } Cc . prototype . toString = n ( "name" ) ; var Dc = new Cc ( "WARNING" , 900 ) , Ec = new Cc ( "CONFIG" , 700 ) ; U . prototype . getParent = n ( "$" ) ; U . prototype . xa = function ( a ) { this . O = a } ; function Fc ( a ) { if ( a . O ) return a . O ; if ( a . $ ) return Fc ( a . $ ) ; Ja ( "Root logger has no level set." ) ; return k }
U . prototype . log = function ( a , b , c ) { if ( a . value >= Fc ( this ) . value ) { a = this . Da ( a , b , c ) ; b = "log:" + a . Ga ; q . console && ( q . console . timeStamp ? q . console . timeStamp ( b ) : q . console . markTimeline && q . console . markTimeline ( b ) ) ; q . msWriteProfilerMark && q . msWriteProfilerMark ( b ) ; for ( b = this ; b ; ) { var c = b , d = a ; if ( c . ua ) for ( var e = 0 , f = h ; f = c . ua [ e ] ; e ++ ) f ( d ) ; b = b . getParent ( ) } } } ;
U . prototype . Da = function ( a , b , c ) { var d = new Ac ( a , "" + b , this . Ha ) ; if ( c ) { d . ra = c ; var e ; var f = arguments . callee . caller ; try { var j ; var m ; c : { for ( var s = [ "window" , "location" , "href" ] , F = q , B ; B = s . shift ( ) ; ) if ( F [ B ] != k ) F = F [ B ] ; else { m = k ; break c } m = F } if ( t ( c ) ) j = { message : c , name : "Unknown error" , lineNumber : "Not available" , fileName : m , stack : "Not available" } ; else { var v , w , s = l ; try { v = c . lineNumber || c . Oa || "Not available" } catch ( xd ) { v = "Not available" , s = i } try { w = c . fileName || c . filename || c . sourceURL || m } catch ( yd ) { w = "Not available" , s = i } j = s ||
! c . lineNumber || ! c . fileName || ! c . stack ? { message : c . message , name : c . name , lineNumber : v , fileName : w , stack : c . stack || "Not available" } : c } e = "Message: " + ia ( j . message ) + '\nUrl: <a href="view-source:' + j . fileName + '" target="_new">' + j . fileName + "</a>\nLine: " + j . lineNumber + "\n\nBrowser stack:\n" + ia ( j . stack + "-> " ) + "[end]\n\nJS stack traversal:\n" + ia ( wc ( f ) + "-> " ) } catch ( vd ) { e = "Exception trying to expose exception! You win, we lose. " + vd } d . qa = e } return d } ; var Gc = { } , Hc = k ;
function Ic ( a ) { Hc || ( Hc = new U ( "" ) , Gc [ "" ] = Hc , Hc . xa ( Ec ) ) ; var b ; if ( ! ( b = Gc [ a ] ) ) { b = new U ( a ) ; var c = a . lastIndexOf ( "." ) , d = a . substr ( c + 1 ) , c = Ic ( a . substr ( 0 , c ) ) ; c . ea || ( c . ea = { } ) ; c . ea [ d ] = b ; b . $ = c ; Gc [ a ] = b } return b } ; function Jc ( ) { } x ( Jc , function ( ) { } ) ; Ic ( "goog.dom.SavedRange" ) ; x ( function ( a ) { this . Ka = "goog_" + pa ++ ; this . Ca = "goog_" + pa ++ ; this . oa = Wa ( a . ia ( ) ) ; a . S ( this . oa . ga ( "SPAN" , { id : this . Ka } ) , this . oa . ga ( "SPAN" , { id : this . Ca } ) ) } , Jc ) ; function Kc ( ) { } function Lc ( a ) { if ( a . getSelection ) return a . getSelection ( ) ; var a = a . document , b = a . selection ; if ( b ) { try { var c = b . createRange ( ) ; if ( c . parentElement ) { if ( c . parentElement ( ) . document != a ) return k } else if ( ! c . length || c . item ( 0 ) . document != a ) return k } catch ( d ) { return k } return b } return k } function Mc ( a ) { for ( var b = [ ] , c = 0 , d = a . F ( ) ; c < d ; c ++ ) b . push ( a . C ( c ) ) ; return b } Kc . prototype . G = o ( l ) ; Kc . prototype . ia = function ( ) { return E ( this . b ( ) ) } ; Kc . prototype . ta = function ( ) { return G ( this . ia ( ) ) } ;
Kc . prototype . containsNode = function ( a , b ) { return this . B ( Nc ( Oc ( a ) , h ) , b ) } ; function V ( a , b ) { M . call ( this , a , b , i ) } x ( V , M ) ; function Pc ( ) { } x ( Pc , Kc ) ; Pc . prototype . B = function ( a , b ) { var c = Mc ( this ) , d = Mc ( a ) ; return ( b ? Na : Oa ) ( d , function ( a ) { return Na ( c , function ( c ) { return c . B ( a , b ) } ) } ) } ; Pc . prototype . insertNode = function ( a , b ) { if ( b ) { var c = this . b ( ) ; c . parentNode && c . parentNode . insertBefore ( a , c ) } else c = this . g ( ) , c . parentNode && c . parentNode . insertBefore ( a , c . nextSibling ) ; return a } ; Pc . prototype . S = function ( a , b ) { this . insertNode ( a , i ) ; this . insertNode ( b , l ) } ; function Qc ( a , b , c , d , e ) { var f ; if ( a && ( this . f = a , this . i = b , this . d = c , this . h = d , 1 == a . nodeType && "BR" != a . tagName && ( a = a . childNodes , ( b = a [ b ] ) ? ( this . f = b , this . i = 0 ) : ( a . length && ( this . f = z ( a ) ) , f = i ) ) , 1 == c . nodeType ) ) ( this . d = c . childNodes [ d ] ) ? this . h = 0 : this . d = c ; V . call ( this , e ? this . d : this . f , e ) ; if ( f ) try { this . next ( ) } catch ( j ) { j != K && g ( j ) } } x ( Qc , V ) ; p = Qc . prototype ; p . f = k ; p . d = k ; p . i = 0 ; p . h = 0 ; p . b = n ( "f" ) ; p . g = n ( "d" ) ; p . N = function ( ) { return this . la && this . r == this . d && ( ! this . h || 1 != this . s ) } ; p . next = function ( ) { this . N ( ) && g ( K ) ; return Qc . ca . next . call ( this ) } ; "ScriptEngine" in q && "JScript" == q . ScriptEngine ( ) && ( q . ScriptEngineMajorVersion ( ) , q . ScriptEngineMinorVersion ( ) , q . ScriptEngineBuildVersion ( ) ) ; function Rc ( ) { } Rc . prototype . B = function ( a , b ) { var c = b && ! a . isCollapsed ( ) , d = a . a ; try { return c ? 0 <= this . n ( d , 0 , 1 ) && 0 >= this . n ( d , 1 , 0 ) : 0 <= this . n ( d , 0 , 0 ) && 0 >= this . n ( d , 1 , 1 ) } catch ( e ) { g ( e ) } } ; Rc . prototype . containsNode = function ( a , b ) { return this . B ( Oc ( a ) , b ) } ; Rc . prototype . t = function ( ) { return new Qc ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; function Sc ( a ) { this . a = a } x ( Sc , Rc ) ; p = Sc . prototype ; p . D = function ( ) { return this . a . commonAncestorContainer } ; p . b = function ( ) { return this . a . startContainer } ; p . j = function ( ) { return this . a . startOffset } ; p . g = function ( ) { return this . a . endContainer } ; p . k = function ( ) { return this . a . endOffset } ; p . n = function ( a , b , c ) { return this . a . compareBoundaryPoints ( 1 == c ? 1 == b ? q . Range . START _TO _START : q . Range . START _TO _END : 1 == b ? q . Range . END _TO _START : q . Range . END _TO _END , a ) } ; p . isCollapsed = function ( ) { return this . a . collapsed } ;
p . select = function ( a ) { this . aa ( G ( E ( this . b ( ) ) ) . getSelection ( ) , a ) } ; p . aa = function ( a ) { a . removeAllRanges ( ) ; a . addRange ( this . a ) } ; p . insertNode = function ( a , b ) { var c = this . a . cloneRange ( ) ; c . collapse ( b ) ; c . insertNode ( a ) ; c . detach ( ) ; return a } ;
p . S = function ( a , b ) { var c = G ( E ( this . b ( ) ) ) ; if ( c = ( c = Lc ( c || window ) ) && Tc ( c ) ) var d = c . b ( ) , e = c . g ( ) , f = c . j ( ) , j = c . k ( ) ; var m = this . a . cloneRange ( ) , s = this . a . cloneRange ( ) ; m . collapse ( l ) ; s . collapse ( i ) ; m . insertNode ( b ) ; s . insertNode ( a ) ; m . detach ( ) ; s . detach ( ) ; if ( c ) { if ( d . nodeType == D ) for ( ; f > d . length ; ) { f -= d . length ; do d = d . nextSibling ; while ( d == a || d == b ) } if ( e . nodeType == D ) for ( ; j > e . length ; ) { j -= e . length ; do e = e . nextSibling ; while ( e == a || e == b ) } c = new Uc ; c . H = Vc ( d , f , e , j ) ; "BR" == d . tagName && ( m = d . parentNode , f = A ( m . childNodes , d ) , d = m ) ; "BR" == e . tagName &&
( m = e . parentNode , j = A ( m . childNodes , e ) , e = m ) ; c . H ? ( c . f = e , c . i = j , c . d = d , c . h = f ) : ( c . f = d , c . i = f , c . d = e , c . h = j ) ; c . select ( ) } } ; p . collapse = function ( a ) { this . a . collapse ( a ) } ; function Wc ( a ) { this . a = a } x ( Wc , Sc ) ; function Oc ( a ) { var b = E ( a ) . createRange ( ) ; if ( a . nodeType == D ) b . setStart ( a , 0 ) , b . setEnd ( a , a . length ) ; else if ( W ( a ) ) { for ( var c , d = a ; ( c = d . firstChild ) && W ( c ) ; ) d = c ; b . setStart ( d , 0 ) ; for ( d = a ; ( c = d . lastChild ) && W ( c ) ; ) d = c ; b . setEnd ( d , 1 == d . nodeType ? d . childNodes . length : d . length ) } else c = a . parentNode , a = A ( c . childNodes , a ) , b . setStart ( c , a ) , b . setEnd ( c , a + 1 ) ; return new Wc ( b ) }
Wc . prototype . aa = function ( a , b ) { var c = b ? this . g ( ) : this . b ( ) , d = b ? this . k ( ) : this . j ( ) , e = b ? this . b ( ) : this . g ( ) , f = b ? this . j ( ) : this . k ( ) ; a . collapse ( c , d ) ; ( c != e || d != f ) && a . extend ( e , f ) } ; function Xc ( a ) { this . a = a } x ( Xc , Rc ) ; Ic ( "goog.dom.browserrange.IeRange" ) ; function Yc ( a ) { var b = E ( a ) . body . createTextRange ( ) ; if ( 1 == a . nodeType ) b . moveToElementText ( a ) , W ( a ) && ! a . childNodes . length && b . collapse ( l ) ; else { for ( var c = 0 , d = a ; d = d . previousSibling ; ) { var e = d . nodeType ; if ( e == D ) c += d . length ; else if ( 1 == e ) { b . moveToElementText ( d ) ; break } } d || b . moveToElementText ( a . parentNode ) ; b . collapse ( ! d ) ; c && b . move ( "character" , c ) ; b . moveEnd ( "character" , a . length ) } return b } p = Xc . prototype ; p . P = k ; p . f = k ; p . d = k ; p . i = - 1 ; p . h = - 1 ;
p . u = function ( ) { this . P = this . f = this . d = k ; this . i = this . h = - 1 } ;
p . D = function ( ) { if ( ! this . P ) { var a = this . a . text , b = this . a . duplicate ( ) , c = a . replace ( / +$/ , "" ) ; ( c = a . length - c . length ) && b . moveEnd ( "character" , - c ) ; c = b . parentElement ( ) ; b = b . htmlText . replace ( /(\r\n|\r|\n)+/g , " " ) . length ; if ( this . isCollapsed ( ) && 0 < b ) return this . P = c ; for ( ; b > c . outerHTML . replace ( /(\r\n|\r|\n)+/g , " " ) . length ; ) c = c . parentNode ; for ( ; 1 == c . childNodes . length && c . innerText == ( c . firstChild . nodeType == D ? c . firstChild . nodeValue : c . firstChild . innerText ) && W ( c . firstChild ) ; ) c = c . firstChild ; 0 == a . length && ( c = Zc ( this , c ) ) ; this . P =
c } return this . P } ; function Zc ( a , b ) { for ( var c = b . childNodes , d = 0 , e = c . length ; d < e ; d ++ ) { var f = c [ d ] ; if ( W ( f ) ) { var j = Yc ( f ) , m = j . htmlText != f . outerHTML ; if ( a . isCollapsed ( ) && m ? 0 <= a . n ( j , 1 , 1 ) && 0 >= a . n ( j , 1 , 0 ) : a . a . inRange ( j ) ) return Zc ( a , f ) } } return b } p . b = function ( ) { this . f || ( this . f = $c ( this , 1 ) , this . isCollapsed ( ) && ( this . d = this . f ) ) ; return this . f } ; p . j = function ( ) { 0 > this . i && ( this . i = ad ( this , 1 ) , this . isCollapsed ( ) && ( this . h = this . i ) ) ; return this . i } ;
p . g = function ( ) { if ( this . isCollapsed ( ) ) return this . b ( ) ; this . d || ( this . d = $c ( this , 0 ) ) ; return this . d } ; p . k = function ( ) { if ( this . isCollapsed ( ) ) return this . j ( ) ; 0 > this . h && ( this . h = ad ( this , 0 ) , this . isCollapsed ( ) && ( this . i = this . h ) ) ; return this . h } ; p . n = function ( a , b , c ) { return this . a . compareEndPoints ( ( 1 == b ? "Start" : "End" ) + "To" + ( 1 == c ? "Start" : "End" ) , a ) } ;
function $c ( a , b , c ) { c = c || a . D ( ) ; if ( ! c || ! c . firstChild ) return c ; for ( var d = 1 == b , e = 0 , f = c . childNodes . length ; e < f ; e ++ ) { var j = d ? e : f - e - 1 , m = c . childNodes [ j ] , s ; try { s = Oc ( m ) } catch ( F ) { continue } var B = s . a ; if ( a . isCollapsed ( ) ) if ( W ( m ) ) { if ( s . B ( a ) ) return $c ( a , b , m ) } else { if ( 0 == a . n ( B , 1 , 1 ) ) { a . i = a . h = j ; break } } else { if ( a . B ( s ) ) { if ( ! W ( m ) ) { d ? a . i = j : a . h = j + 1 ; break } return $c ( a , b , m ) } if ( 0 > a . n ( B , 1 , 0 ) && 0 < a . n ( B , 0 , 1 ) ) return $c ( a , b , m ) } } return c }
function ad ( a , b ) { var c = 1 == b , d = c ? a . b ( ) : a . g ( ) ; if ( 1 == d . nodeType ) { for ( var d = d . childNodes , e = d . length , f = c ? 1 : - 1 , j = c ? 0 : e - 1 ; 0 <= j && j < e ; j += f ) { var m = d [ j ] ; if ( ! W ( m ) && 0 == a . a . compareEndPoints ( ( 1 == b ? "Start" : "End" ) + "To" + ( 1 == b ? "Start" : "End" ) , Oc ( m ) . a ) ) return c ? j : j + 1 } return - 1 == j ? 0 : j } e = a . a . duplicate ( ) ; f = Yc ( d ) ; e . setEndPoint ( c ? "EndToEnd" : "StartToStart" , f ) ; e = e . text . length ; return c ? d . length - e : e } p . isCollapsed = function ( ) { return 0 == this . a . compareEndPoints ( "StartToEnd" , this . a ) } ; p . select = function ( ) { this . a . select ( ) } ;
function bd ( a , b , c ) { var d ; d = d || Wa ( a . parentElement ( ) ) ; var e ; 1 != b . nodeType && ( e = i , b = d . ga ( "DIV" , k , b ) ) ; a . collapse ( c ) ; d = d || Wa ( a . parentElement ( ) ) ; var f = c = b . id ; c || ( c = b . id = "goog_" + pa ++ ) ; a . pasteHTML ( b . outerHTML ) ; ( b = d . m ( c ) ) && ( f || b . removeAttribute ( "id" ) ) ; if ( e ) { a = b . firstChild ; e = b ; if ( ( d = e . parentNode ) && 11 != d . nodeType ) if ( e . removeNode ) e . removeNode ( l ) ; else { for ( ; b = e . firstChild ; ) d . insertBefore ( b , e ) ; cb ( e ) } b = a } return b } p . insertNode = function ( a , b ) { var c = bd ( this . a . duplicate ( ) , a , b ) ; this . u ( ) ; return c } ;
p . S = function ( a , b ) { var c = this . a . duplicate ( ) , d = this . a . duplicate ( ) ; bd ( c , a , i ) ; bd ( d , b , l ) ; this . u ( ) } ; p . collapse = function ( a ) { this . a . collapse ( a ) ; a ? ( this . d = this . f , this . h = this . i ) : ( this . f = this . d , this . i = this . h ) } ; function cd ( a ) { this . a = a } x ( cd , Sc ) ; cd . prototype . aa = function ( a ) { a . collapse ( this . b ( ) , this . j ( ) ) ; ( this . g ( ) != this . b ( ) || this . k ( ) != this . j ( ) ) && a . extend ( this . g ( ) , this . k ( ) ) ; 0 == a . rangeCount && a . addRange ( this . a ) } ; function dd ( a ) { this . a = a } x ( dd , Sc ) ; dd . prototype . n = function ( a , b , c ) { return Ba [ "528" ] || ( Ba [ "528" ] = 0 <= oa ( ya , "528" ) ) ? dd . ca . n . call ( this , a , b , c ) : this . a . compareBoundaryPoints ( 1 == c ? 1 == b ? q . Range . START _TO _START : q . Range . END _TO _START : 1 == b ? q . Range . START _TO _END : q . Range . END _TO _END , a ) } ; dd . prototype . aa = function ( a , b ) { a . removeAllRanges ( ) ; b ? a . setBaseAndExtent ( this . g ( ) , this . k ( ) , this . b ( ) , this . j ( ) ) : a . setBaseAndExtent ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; function W ( a ) { var b ; a : if ( 1 != a . nodeType ) b = l ; else { switch ( a . tagName ) { case "APPLET" : case "AREA" : case "BASE" : case "BR" : case "COL" : case "FRAME" : case "HR" : case "IMG" : case "INPUT" : case "IFRAME" : case "ISINDEX" : case "LINK" : case "NOFRAMES" : case "NOSCRIPT" : case "META" : case "OBJECT" : case "PARAM" : case "SCRIPT" : case "STYLE" : b = l ; break a } b = i } return b || a . nodeType == D } ; function Uc ( ) { } x ( Uc , Kc ) ; function Nc ( a , b ) { var c = new Uc ; c . L = a ; c . H = ! ! b ; return c } p = Uc . prototype ; p . L = k ; p . f = k ; p . i = k ; p . d = k ; p . h = k ; p . H = l ; p . ja = o ( "text" ) ; p . X = function ( ) { return X ( this ) . a } ; p . u = function ( ) { this . f = this . i = this . d = this . h = k } ; p . F = o ( 1 ) ; p . C = function ( ) { return this } ; function X ( a ) { var b ; if ( ! ( b = a . L ) ) { b = a . b ( ) ; var c = a . j ( ) , d = a . g ( ) , e = a . k ( ) , f = E ( b ) . createRange ( ) ; f . setStart ( b , c ) ; f . setEnd ( d , e ) ; b = a . L = new Wc ( f ) } return b } p . D = function ( ) { return X ( this ) . D ( ) } ; p . b = function ( ) { return this . f || ( this . f = X ( this ) . b ( ) ) } ;
p . j = function ( ) { return this . i != k ? this . i : this . i = X ( this ) . j ( ) } ; p . g = function ( ) { return this . d || ( this . d = X ( this ) . g ( ) ) } ; p . k = function ( ) { return this . h != k ? this . h : this . h = X ( this ) . k ( ) } ; p . G = n ( "H" ) ; p . B = function ( a , b ) { var c = a . ja ( ) ; return "text" == c ? X ( this ) . B ( X ( a ) , b ) : "control" == c ? ( c = ed ( a ) , ( b ? Na : Oa ) ( c , function ( a ) { return this . containsNode ( a , b ) } , this ) ) : l } ; p . isCollapsed = function ( ) { return X ( this ) . isCollapsed ( ) } ; p . t = function ( ) { return new Qc ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; p . select = function ( ) { X ( this ) . select ( this . H ) } ;
p . insertNode = function ( a , b ) { var c = X ( this ) . insertNode ( a , b ) ; this . u ( ) ; return c } ; p . S = function ( a , b ) { X ( this ) . S ( a , b ) ; this . u ( ) } ; p . ka = function ( ) { return new fd ( this ) } ; p . collapse = function ( a ) { a = this . G ( ) ? ! a : a ; this . L && this . L . collapse ( a ) ; a ? ( this . d = this . f , this . h = this . i ) : ( this . f = this . d , this . i = this . h ) ; this . H = l } ; function fd ( a ) { a . G ( ) ? a . g ( ) : a . b ( ) ; a . G ( ) ? a . k ( ) : a . j ( ) ; a . G ( ) ? a . b ( ) : a . g ( ) ; a . G ( ) ? a . j ( ) : a . k ( ) } x ( fd , Jc ) ; function gd ( ) { } x ( gd , Pc ) ; p = gd . prototype ; p . a = k ; p . o = k ; p . R = k ; p . u = function ( ) { this . R = this . o = k } ; p . ja = o ( "control" ) ; p . X = function ( ) { return this . a || document . body . createControlRange ( ) } ; p . F = function ( ) { return this . a ? this . a . length : 0 } ; p . C = function ( a ) { a = this . a . item ( a ) ; return Nc ( Oc ( a ) , h ) } ; p . D = function ( ) { return gb . apply ( k , ed ( this ) ) } ; p . b = function ( ) { return hd ( this ) [ 0 ] } ; p . j = o ( 0 ) ; p . g = function ( ) { var a = hd ( this ) , b = z ( a ) ; return Pa ( a , function ( a ) { return H ( a , b ) } ) } ; p . k = function ( ) { return this . g ( ) . childNodes . length } ;
function ed ( a ) { if ( ! a . o && ( a . o = [ ] , a . a ) ) for ( var b = 0 ; b < a . a . length ; b ++ ) a . o . push ( a . a . item ( b ) ) ; return a . o } function hd ( a ) { a . R || ( a . R = ed ( a ) . concat ( ) , a . R . sort ( function ( a , c ) { return a . sourceIndex - c . sourceIndex } ) ) ; return a . R } p . isCollapsed = function ( ) { return ! this . a || ! this . a . length } ; p . t = function ( ) { return new id ( this ) } ; p . select = function ( ) { this . a && this . a . select ( ) } ; p . ka = function ( ) { return new jd ( this ) } ; p . collapse = function ( ) { this . a = k ; this . u ( ) } ; function jd ( a ) { this . o = ed ( a ) } x ( jd , Jc ) ;
function id ( a ) { a && ( this . o = hd ( a ) , this . f = this . o . shift ( ) , this . d = z ( this . o ) || this . f ) ; V . call ( this , this . f , l ) } x ( id , V ) ; p = id . prototype ; p . f = k ; p . d = k ; p . o = k ; p . b = n ( "f" ) ; p . g = n ( "d" ) ; p . N = function ( ) { return ! this . depth && ! this . o . length } ; p . next = function ( ) { this . N ( ) && g ( K ) ; if ( ! this . depth ) { var a = this . o . shift ( ) ; N ( this , a , 1 , 1 ) ; return a } return id . ca . next . call ( this ) } ; function kd ( ) { this . w = [ ] ; this . Q = [ ] ; this . V = this . J = k } x ( kd , Pc ) ; p = kd . prototype ; p . Fa = Ic ( "goog.dom.MultiRange" ) ; p . u = function ( ) { this . Q = [ ] ; this . V = this . J = k } ; p . ja = o ( "mutli" ) ; p . X = function ( ) { 1 < this . w . length && this . Fa . log ( Dc , "getBrowserRangeObject called on MultiRange with more than 1 range" , h ) ; return this . w [ 0 ] } ; p . F = function ( ) { return this . w . length } ; p . C = function ( a ) { this . Q [ a ] || ( this . Q [ a ] = Nc ( new Wc ( this . w [ a ] ) , h ) ) ; return this . Q [ a ] } ;
p . D = function ( ) { if ( ! this . V ) { for ( var a = [ ] , b = 0 , c = this . F ( ) ; b < c ; b ++ ) a . push ( this . C ( b ) . D ( ) ) ; this . V = gb . apply ( k , a ) } return this . V } ; function ld ( a ) { a . J || ( a . J = Mc ( a ) , a . J . sort ( function ( a , c ) { var d = a . b ( ) , e = a . j ( ) , f = c . b ( ) , j = c . j ( ) ; return d == f && e == j ? 0 : Vc ( d , e , f , j ) ? 1 : - 1 } ) ) ; return a . J } p . b = function ( ) { return ld ( this ) [ 0 ] . b ( ) } ; p . j = function ( ) { return ld ( this ) [ 0 ] . j ( ) } ; p . g = function ( ) { return z ( ld ( this ) ) . g ( ) } ; p . k = function ( ) { return z ( ld ( this ) ) . k ( ) } ; p . isCollapsed = function ( ) { return 0 == this . w . length || 1 == this . w . length && this . C ( 0 ) . isCollapsed ( ) } ;
p . t = function ( ) { return new md ( this ) } ; p . select = function ( ) { var a = Lc ( this . ta ( ) ) ; a . removeAllRanges ( ) ; for ( var b = 0 , c = this . F ( ) ; b < c ; b ++ ) a . addRange ( this . C ( b ) . X ( ) ) } ; p . ka = function ( ) { return new nd ( this ) } ; p . collapse = function ( a ) { if ( ! this . isCollapsed ( ) ) { var b = a ? this . C ( 0 ) : this . C ( this . F ( ) - 1 ) ; this . u ( ) ; b . collapse ( a ) ; this . Q = [ b ] ; this . J = [ b ] ; this . w = [ b . X ( ) ] } } ; function nd ( a ) { Ma ( Mc ( a ) , function ( a ) { return a . ka ( ) } ) } x ( nd , Jc ) ; function md ( a ) { a && ( this . I = Ma ( ld ( a ) , function ( a ) { return sb ( a ) } ) ) ; V . call ( this , a ? this . b ( ) : k , l ) } x ( md , V ) ; p = md . prototype ;
p . I = k ; p . W = 0 ; p . b = function ( ) { return this . I [ 0 ] . b ( ) } ; p . g = function ( ) { return z ( this . I ) . g ( ) } ; p . N = function ( ) { return this . I [ this . W ] . N ( ) } ; p . next = function ( ) { try { var a = this . I [ this . W ] , b = a . next ( ) ; N ( this , a . r , a . s , a . depth ) ; return b } catch ( c ) { return ( c !== K || this . I . length - 1 == this . W ) && g ( c ) , this . W ++ , this . next ( ) } } ; function Tc ( a ) { var b , c = l ; if ( a . createRange ) try { b = a . createRange ( ) } catch ( d ) { return k } else if ( a . rangeCount ) { if ( 1 < a . rangeCount ) { b = new kd ; for ( var c = 0 , e = a . rangeCount ; c < e ; c ++ ) b . w . push ( a . getRangeAt ( c ) ) ; return b } b = a . getRangeAt ( 0 ) ; c = Vc ( a . anchorNode , a . anchorOffset , a . focusNode , a . focusOffset ) } else return k ; b && b . addElement ? ( a = new gd , a . a = b ) : a = Nc ( new Wc ( b ) , c ) ; return a }
function Vc ( a , b , c , d ) { if ( a == c ) return d < b ; var e ; if ( 1 == a . nodeType && b ) if ( e = a . childNodes [ b ] ) a = e , b = 0 ; else if ( H ( a , c ) ) return i ; if ( 1 == c . nodeType && d ) if ( e = c . childNodes [ d ] ) c = e , d = 0 ; else if ( H ( c , a ) ) return l ; return 0 < ( db ( a , c ) || b - d ) } ; function od ( ) { Q . call ( this ) ; this . ha = this . z = k ; this . A = new C ( 0 , 0 ) ; this . va = this . Z = l } x ( od , Q ) ; var Y = { } ; Y [ ic ] = [ 0 , 1 , 2 , k ] ; Y [ jc ] = [ k , k , 2 , k ] ; Y [ nc ] = [ 0 , 1 , 2 , k ] ; Y [ Tb ] = [ 0 , 0 , 0 , 0 ] ; Y [ mc ] = [ 0 , 0 , 0 , 0 ] ; Y [ kc ] = Y [ ic ] ; Y [ lc ] = Y [ nc ] ; Y [ Sb ] = Y [ Tb ] ; od . prototype . move = function ( a , b ) { var c = yb ( a ) ; this . A . x = b . x + c . x ; this . A . y = b . y + c . y ; a != this . m ( ) && ( c = this . m ( ) === Ca . document . documentElement || this . m ( ) === Ca . document . body , c = ! this . va && c ? k : this . m ( ) , Z ( this , Tb , a ) , Qb ( this , a ) , Z ( this , Sb , c ) ) ; Z ( this , mc ) ; this . Z = l } ;
function Z ( a , b , c ) { a . va = i ; return Rb ( a , b , a . A , pd ( a , b ) , c , h ) } function pd ( a , b ) { if ( ! ( b in Y ) ) return 0 ; var c = Y [ b ] [ a . z === k ? 3 : a . z ] ; c === k && g ( new y ( 13 , "Event does not permit the specified mouse button." ) ) ; return c } ; function qd ( ) { Q . call ( this ) ; this . A = new C ( 0 , 0 ) ; this . fa = new C ( 0 , 0 ) } x ( qd , Q ) ; qd . prototype . za = 0 ; qd . prototype . ya = 0 ; qd . prototype . move = function ( a , b , c ) { this . Y ( ) || Qb ( this , a ) ; a = yb ( a ) ; this . A . x = b . x + a . x ; this . A . y = b . y + a . y ; r ( c ) && ( this . fa . x = c . x + a . x , this . fa . y = c . y + a . y ) ; if ( this . Y ( ) ) { b = Xb ; this . Y ( ) || g ( new y ( 13 , "Should never fire event when touchscreen is not pressed." ) ) ; var d , e ; this . ya && ( d = this . ya , e = this . fa ) ; Vb ( this , b , this . za , this . A , d , e ) } } ; qd . prototype . Y = function ( ) { return ! ! this . za } ; function rd ( a , b ) { this . x = a ; this . y = b } x ( rd , C ) ; rd . prototype . scale = function ( a ) { this . x *= a ; this . y *= a ; return this } ; rd . prototype . add = function ( a ) { this . x += a . x ; this . y += a . y ; return this } ; function sd ( ) { Q . call ( this ) } x ( sd , Q ) ; ( function ( a ) { a . Ma = function ( ) { return a . Ea || ( a . Ea = new a ) } } ) ( sd ) ; function td ( a , b , c ) { Ob ( a , i ) || g ( new y ( 11 , "Element is not currently visible and may not be manipulated" ) ) ; var d = E ( a ) . documentElement , e = xb ( a ) , f = xb ( d ) , j , m , s , F ; F = O ( d , "borderLeftWidth" ) ; s = O ( d , "borderRightWidth" ) ; j = O ( d , "borderTopWidth" ) ; m = O ( d , "borderBottomWidth" ) ; j = new ub ( parseFloat ( j ) , parseFloat ( s ) , parseFloat ( m ) , parseFloat ( F ) ) ; m = e . x - f . x - j . left ; e = e . y - f . y - j . top ; f = d . clientHeight - a . offsetHeight ; d . scrollLeft += Math . min ( m , Math . max ( m - ( d . clientWidth - a . offsetWidth ) , 0 ) ) ; d . scrollTop += Math . min ( e , Math . max ( e - f , 0 ) ) ; b ||
( b = zb ( a ) , b = new C ( b . width / 2 , b . height / 2 ) ) ; c = c || new od ; c . move ( a , b ) ; c . z !== k && g ( new y ( 13 , "Cannot press more then one button or an already pressed button." ) ) ; c . z = 0 ; c . ha = c . m ( ) ; ! qb ( ) && ( P ( c . m ( ) , "OPTION" ) || P ( c . m ( ) , "SELECT" ) ) ? a = i : ( a = E ( c . m ( ) ) . activeElement , a = ( b = Z ( c , lc ) ) && a != E ( c . m ( ) ) . activeElement ? l : b ) ; if ( a && ( a = c . ba || c . l , b = E ( a ) . activeElement , a != b ) ) { if ( b && u ( b . blur ) ) try { b . blur ( ) } catch ( B ) { g ( B ) } u ( a . focus ) && a . focus ( ) } c . z === k && g ( new y ( 13 , "Cannot release a button when no button is pressed." ) ) ; Z ( c , nc ) ; if ( 0 == c . z && c . m ( ) ==
c . ha ) { b = c . A ; d = pd ( c , ic ) ; if ( Ob ( c . l , i ) && Hb ( c . l ) ) { a = k ; if ( Yb ) for ( e = c . l ; e ; e = e . parentNode ) if ( P ( e , "A" ) ) { a = e ; break } else { a : { if ( P ( e , "INPUT" ) && ( f = e . type . toLowerCase ( ) , "submit" == f || "image" == f ) ) { f = i ; break a } if ( P ( e , "BUTTON" ) && ( f = e . type . toLowerCase ( ) , "submit" == f ) ) { f = i ; break a } f = l } if ( f ) break } if ( e = Bb ( c . l ) ) { e = c . l ; Bb ( e ) || g ( new y ( 15 , "Element is not selectable" ) ) ; f = "selected" ; m = e . type && e . type . toLowerCase ( ) ; if ( "checkbox" == m || "radio" == m ) f = "checked" ; e = ! ! Eb ( e , f ) } if ( c . ba && ( f = c . ba , ! e || f . multiple ) ) c . l . selected = ! e , Ub ( f , hc ) ; Rb ( c ,
ic , b , d ) && a && ac ( a ) && ( b = a . href , d = G ( E ( a ) ) , a . target ? d . open ( b , a . target ) : d . location . href = b ) } c . Z && Z ( c , kc ) ; c . Z = ! c . Z } else 2 == c . z && Z ( c , jc ) ; c . z = k ; c . ha = k } var ud = [ "_" ] , $ = q ; ! ( ud [ 0 ] in $ ) && $ . execScript && $ . execScript ( "var " + ud [ 0 ] ) ; for ( var wd ; ud . length && ( wd = ud . shift ( ) ) ; ) ! ud . length && r ( td ) ? $ [ wd ] = td : $ = $ [ wd ] ? $ [ wd ] : $ [ wd ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != 'undefined' ? window . navigator : null } , arguments ) ; }
2012-05-01 23:37:34 +04:00
//getElementAttribute
var getElementAttribute = function ( ) { return function ( ) { var f = null , g = ! 1 , h = this ;
2012-04-11 04:28:08 +04:00
function i ( a ) { var c = typeof a ; if ( "object" == c ) if ( a ) { if ( a instanceof Array ) return "array" ; if ( a instanceof Object ) return c ; var b = Object . prototype . toString . call ( a ) ; if ( "[object Window]" == b ) return "object" ; if ( "[object Array]" == b || "number" == typeof a . length && "undefined" != typeof a . splice && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "splice" ) ) return "array" ; if ( "[object Function]" == b || "undefined" != typeof a . call && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "call" ) ) return "function" } else return "null" ; else if ( "function" ==
c && "undefined" == typeof a . call ) return "object" ; return c } function j ( a , c ) { function b ( ) { } b . prototype = c . prototype ; a . f = c . prototype ; a . prototype = new b } ; function k ( a , c ) { for ( var b = 1 ; b < arguments . length ; b ++ ) var d = ( "" + arguments [ b ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } function l ( a ) { return a . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) } ; var m , n = "" , o = /rv\:([^\);]+)(\)|;)/ . exec ( h . navigator ? h . navigator . userAgent : f ) ; m = n = o ? o [ 1 ] : "" ; var p = { } ; function q ( a , c ) { this . code = a ; this . message = c || "" ; this . name = r [ a ] || r [ 13 ] ; var b = Error ( this . message ) ; b . name = this . name ; this . stack = b . stack || "" } j ( q , Error ) ;
var r = { 7 : "NoSuchElementError" , 8 : "NoSuchFrameError" , 9 : "UnknownCommandError" , 10 : "StaleElementReferenceError" , 11 : "ElementNotVisibleError" , 12 : "InvalidElementStateError" , 13 : "UnknownError" , 15 : "ElementNotSelectableError" , 19 : "XPathLookupError" , 23 : "NoSuchWindowError" , 24 : "InvalidCookieDomainError" , 25 : "UnableToSetCookieError" , 26 : "ModalDialogOpenedError" , 27 : "NoModalDialogOpenError" , 28 : "ScriptTimeoutError" , 32 : "InvalidSelectorError" , 33 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
q . prototype . toString = function ( ) { return "[" + this . name + "] " + this . message } ; function s ( a ) { this . stack = Error ( ) . stack || "" ; a && ( this . message = "" + a ) } j ( s , Error ) ; s . prototype . name = "CustomError" ; function t ( a , c ) { c . unshift ( a ) ; s . call ( this , k . apply ( f , c ) ) ; c . shift ( ) } j ( t , s ) ; t . prototype . name = "AssertionError" ; function u ( a , c ) { if ( "string" == typeof a ) return "string" != typeof c || 1 != c . length ? - 1 : a . indexOf ( c , 0 ) ; for ( var b = 0 ; b < a . length ; b ++ ) if ( b in a && a [ b ] === c ) return b ; return - 1 } ; if ( ! p [ "1.9.1" ] ) { for ( var v = 0 , w = l ( "" + m ) . split ( "." ) , x = l ( "1.9.1" ) . split ( "." ) , y = Math . max ( w . length , x . length ) , z = 0 ; 0 == v && z < y ; z ++ ) { var A = w [ z ] || "" , B = x [ z ] || "" , C = RegExp ( "(\\d*)(\\D*)" , "g" ) , D = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var E = C . exec ( A ) || [ "" , "" , "" ] , F = D . exec ( B ) || [ "" , "" , "" ] ; if ( 0 == E [ 0 ] . length && 0 == F [ 0 ] . length ) break ; v = ( ( 0 == E [ 1 ] . length ? 0 : parseInt ( E [ 1 ] , 10 ) ) < ( 0 == F [ 1 ] . length ? 0 : parseInt ( F [ 1 ] , 10 ) ) ? - 1 : ( 0 == E [ 1 ] . length ? 0 : parseInt ( E [ 1 ] , 10 ) ) > ( 0 == F [ 1 ] . length ? 0 : parseInt ( F [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == E [ 2 ] . length ) < ( 0 == F [ 2 ] . length ) ? - 1 : ( 0 ==
E [ 2 ] . length ) > ( 0 == F [ 2 ] . length ) ? 1 : 0 ) || ( E [ 2 ] < F [ 2 ] ? - 1 : E [ 2 ] > F [ 2 ] ? 1 : 0 ) } while ( 0 == v ) } p [ "1.9.1" ] = 0 <= v } ; var G = { SCRIPT : 1 , STYLE : 1 , HEAD : 1 , IFRAME : 1 , OBJECT : 1 } , H = { IMG : " " , BR : "\n" } ; function I ( a , c , b ) { if ( ! ( a . nodeName in G ) ) if ( 3 == a . nodeType ) b ? c . push ( ( "" + a . nodeValue ) . replace ( /(\r\n|\r|\n)/g , "" ) ) : c . push ( a . nodeValue ) ; else if ( a . nodeName in H ) c . push ( H [ a . nodeName ] ) ; else for ( a = a . firstChild ; a ; ) I ( a , c , b ) , a = a . nextSibling } ; ( function ( ) { var a = h . Components ; if ( ! a ) return g ; try { if ( ! a . classes ) return g } catch ( c ) { return g } var b = a . classes , a = a . interfaces ; b [ "@mozilla.org/xpcom/version-comparator;1" ] . getService ( a . nsIVersionComparator ) ; b [ "@mozilla.org/xre/app-info;1" ] . getService ( a . nsIXULAppInfo ) ; return ! 0 } ) ( ) ; var J = "StopIteration" in h ? h . StopIteration : Error ( "StopIteration" ) ; function K ( ) { } K . prototype . next = function ( ) { throw J ; } ; function L ( a , c , b , d , e ) { this . a = ! ! c ; a && M ( this , a , d ) ; this . depth = void 0 != e ? e : this . c || 0 ; this . a && ( this . depth *= - 1 ) ; this . e = ! b } j ( L , K ) ; L . prototype . b = f ; L . prototype . c = 0 ; L . prototype . d = g ; function M ( a , c , b ) { if ( a . b = c ) a . c = "number" == typeof b ? b : 1 != a . b . nodeType ? 0 : a . a ? - 1 : 1 }
L . prototype . next = function ( ) { var a ; if ( this . d ) { if ( ! this . b || this . e && 0 == this . depth ) throw J ; a = this . b ; var c = this . a ? - 1 : 1 ; if ( this . c == c ) { var b = this . a ? a . lastChild : a . firstChild ; b ? M ( this , b ) : M ( this , a , - 1 * c ) } else ( b = this . a ? a . previousSibling : a . nextSibling ) ? M ( this , b ) : M ( this , a . parentNode , - 1 * c ) ; this . depth += this . c * ( this . a ? - 1 : 1 ) } else this . d = ! 0 ; a = this . b ; if ( ! this . b ) throw J ; return a } ;
L . prototype . splice = function ( a ) { var c = this . b , b = this . a ? 1 : - 1 ; this . c == b && ( this . c = - 1 * b , this . depth += this . c * ( this . a ? - 1 : 1 ) ) ; this . a = ! this . a ; L . prototype . next . call ( this ) ; this . a = ! this . a ; for ( var b = arguments [ 0 ] , d = i ( b ) , b = "array" == d || "object" == d && "number" == typeof b . length ? arguments [ 0 ] : arguments , d = b . length - 1 ; 0 <= d ; d -- ) c . parentNode && c . parentNode . insertBefore ( b [ d ] , c . nextSibling ) ; c && c . parentNode && c . parentNode . removeChild ( c ) } ; function N ( a , c , b , d ) { L . call ( this , a , c , b , f , d ) } j ( N , L ) ; N . prototype . next = function ( ) { do N . f . next . call ( this ) ; while ( - 1 == this . c ) ; return this . b } ; function O ( a , c ) { return ! ! a && 1 == a . nodeType && ( ! c || a . tagName . toUpperCase ( ) == c ) } function P ( a ) { return O ( a , "OPTION" ) ? ! 0 : O ( a , "INPUT" ) ? ( a = a . type . toLowerCase ( ) , "checkbox" == a || "radio" == a ) : g } var Q = { "class" : "className" , readonly : "readOnly" } , R = [ "checked" , "disabled" , "draggable" , "hidden" ] ;
function S ( a , c ) { var b = Q [ c ] || c , d = a [ b ] ; if ( void 0 === d && 0 <= u ( R , b ) ) return g ; if ( b = "value" == c ) if ( b = O ( a , "OPTION" ) ) { var e ; b = c . toLowerCase ( ) ; if ( a . hasAttribute ) e = a . hasAttribute ( b ) ; else try { e = a . attributes [ b ] . specified } catch ( Y ) { e = g } b = ! e } b && ( d = [ ] , I ( a , d , g ) , d = d . join ( "" ) ) ; return d } var T = "async,autofocus,autoplay,checked,compact,complete,controls,declare,defaultchecked,defaultselected,defer,disabled,draggable,ended,formnovalidate,hidden,indeterminate,iscontenteditable,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,paused,pubdate,readonly,required,reversed,scoped,seamless,seeking,selected,spellcheck,truespeed,willvalidate" . split ( "," ) ;
function U ( a , c ) { if ( 8 == a . nodeType ) return f ; c = c . toLowerCase ( ) ; if ( "style" == c ) { var b = l ( a . style . cssText ) . toLowerCase ( ) ; return b = ";" == b . charAt ( b . length - 1 ) ? b : b + ";" } b = a . getAttributeNode ( c ) ; return ! b ? f : 0 <= u ( T , c ) ? "true" : b . specified ? b . value : f } ; function V ( a , c ) { var b = f , d = c . toLowerCase ( ) ; if ( "style" == c . toLowerCase ( ) ) { if ( ( b = a . style ) && "string" != typeof b ) b = b . cssText ; return b } if ( "selected" == d || "checked" == d && P ( a ) ) { if ( ! P ( a ) ) throw new q ( 15 , "Element is not selectable" ) ; var e = "selected" , d = a . type && a . type . toLowerCase ( ) ; if ( "checkbox" == d || "radio" == d ) e = "checked" ; return S ( a , e ) ? "true" : f } b = O ( a , "A" ) ; if ( O ( a , "IMG" ) && "src" == d || b && "href" == d ) return ( b = U ( a , d ) ) && ( b = S ( a , d ) ) , b ; try { e = S ( a , c ) } catch ( Y ) { } if ( ! ( d = e == f ) ) d = i ( e ) , d = "object" == d || "array" == d || "function" == d ; b = d ? U ( a ,
c ) : e ; return b != f ? b . toString ( ) : f } var W = [ "_" ] , X = h ; ! ( W [ 0 ] in X ) && X . execScript && X . execScript ( "var " + W [ 0 ] ) ; for ( var Z ; W . length && ( Z = W . shift ( ) ) ; ) ! W . length && void 0 !== V ? X [ Z ] = V : X = X [ Z ] ? X [ Z ] : X [ Z ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != 'undefined' ? window . navigator : null } , arguments ) ; }
//getElementText
var getElementText = function ( ) { return function ( ) { var g = void 0 , h = ! 0 , i = null , j = ! 1 , k = this ;
function l ( a ) { var b = typeof a ; if ( "object" == b ) if ( a ) { if ( a instanceof Array ) return "array" ; if ( a instanceof Object ) return b ; var c = Object . prototype . toString . call ( a ) ; if ( "[object Window]" == c ) return "object" ; if ( "[object Array]" == c || "number" == typeof a . length && "undefined" != typeof a . splice && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "splice" ) ) return "array" ; if ( "[object Function]" == c || "undefined" != typeof a . call && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "call" ) ) return "function" } else return "null" ;
else if ( "function" == b && "undefined" == typeof a . call ) return "object" ; return b } function m ( a ) { return "string" == typeof a } function n ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . h = b . prototype ; a . prototype = new c } ; function o ( a ) { var b = a . length - 1 ; return 0 <= b && a . indexOf ( " " , b ) == b } function aa ( a , b ) { for ( var c = 1 ; c < arguments . length ; c ++ ) var d = ( "" + arguments [ c ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } function p ( a ) { return a . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) } var q = { } ; function ba ( a ) { return q [ a ] || ( q [ a ] = ( "" + a ) . replace ( /\-([a-z])/g , function ( a , c ) { return c . toUpperCase ( ) } ) ) } ; var s , ca = "" , u = /rv\:([^\);]+)(\)|;)/ . exec ( k . navigator ? k . navigator . userAgent : i ) ; s = ca = u ? u [ 1 ] : "" ; var v = { } ; var da = window ; function w ( a , b ) { this . code = a ; this . message = b || "" ; this . name = x [ a ] || x [ 13 ] ; var c = Error ( this . message ) ; c . name = this . name ; this . stack = c . stack || "" } n ( w , Error ) ;
var x = { 7 : "NoSuchElementError" , 8 : "NoSuchFrameError" , 9 : "UnknownCommandError" , 10 : "StaleElementReferenceError" , 11 : "ElementNotVisibleError" , 12 : "InvalidElementStateError" , 13 : "UnknownError" , 15 : "ElementNotSelectableError" , 19 : "XPathLookupError" , 23 : "NoSuchWindowError" , 24 : "InvalidCookieDomainError" , 25 : "UnableToSetCookieError" , 26 : "ModalDialogOpenedError" , 27 : "NoModalDialogOpenError" , 28 : "ScriptTimeoutError" , 32 : "InvalidSelectorError" , 33 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
w . prototype . toString = function ( ) { return "[" + this . name + "] " + this . message } ; function y ( a ) { this . stack = Error ( ) . stack || "" ; a && ( this . message = "" + a ) } n ( y , Error ) ; y . prototype . name = "CustomError" ; function z ( a , b ) { b . unshift ( a ) ; y . call ( this , aa . apply ( i , b ) ) ; b . shift ( ) } n ( z , y ) ; z . prototype . name = "AssertionError" ; function ea ( a , b ) { for ( var c = a . length , d = m ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) e in d && b . call ( g , d [ e ] , e , a ) } function fa ( a , b ) { for ( var c = a . length , d = m ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) if ( e in d && b . call ( g , d [ e ] , e , a ) ) return h ; return j } function A ( a , b ) { var c ; a : if ( m ( a ) ) c = ! m ( b ) || 1 != b . length ? - 1 : a . indexOf ( b , 0 ) ; else { for ( c = 0 ; c < a . length ; c ++ ) if ( c in a && a [ c ] === b ) break a ; c = - 1 } return 0 <= c } ; var B ;
if ( ! v [ "1.9.1" ] ) { for ( var C = 0 , D = p ( "" + s ) . split ( "." ) , E = p ( "1.9.1" ) . split ( "." ) , ga = Math . max ( D . length , E . length ) , F = 0 ; 0 == C && F < ga ; F ++ ) { var ha = D [ F ] || "" , ia = E [ F ] || "" , ja = RegExp ( "(\\d*)(\\D*)" , "g" ) , ka = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var G = ja . exec ( ha ) || [ "" , "" , "" ] , H = ka . exec ( ia ) || [ "" , "" , "" ] ; if ( 0 == G [ 0 ] . length && 0 == H [ 0 ] . length ) break ; C = ( ( 0 == G [ 1 ] . length ? 0 : parseInt ( G [ 1 ] , 10 ) ) < ( 0 == H [ 1 ] . length ? 0 : parseInt ( H [ 1 ] , 10 ) ) ? - 1 : ( 0 == G [ 1 ] . length ? 0 : parseInt ( G [ 1 ] , 10 ) ) > ( 0 == H [ 1 ] . length ? 0 : parseInt ( H [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == G [ 2 ] . length ) < ( 0 == H [ 2 ] . length ) ? - 1 :
( 0 == G [ 2 ] . length ) > ( 0 == H [ 2 ] . length ) ? 1 : 0 ) || ( G [ 2 ] < H [ 2 ] ? - 1 : G [ 2 ] > H [ 2 ] ? 1 : 0 ) } while ( 0 == C ) } v [ "1.9.1" ] = 0 <= C } ; function I ( a , b ) { this . x = a !== g ? a : 0 ; this . y = b !== g ? b : 0 } I . prototype . toString = function ( ) { return "(" + this . x + ", " + this . y + ")" } ; function J ( a , b ) { this . width = a ; this . height = b } J . prototype . toString = function ( ) { return "(" + this . width + " x " + this . height + ")" } ; var K = 3 ; function L ( a ) { return 9 == a . nodeType ? a : a . ownerDocument || a . document } function la ( a , b ) { var c = [ ] ; return M ( a , b , c , h ) ? c [ 0 ] : g } function M ( a , b , c , d ) { if ( a != i ) for ( a = a . firstChild ; a ; ) { if ( b ( a ) && ( c . push ( a ) , d ) || M ( a , b , c , d ) ) return h ; a = a . nextSibling } return j } function ma ( a , b ) { for ( var a = a . parentNode , c = 0 ; a ; ) { if ( b ( a ) ) return a ; a = a . parentNode ; c ++ } return i } function N ( a ) { this . g = a || k . document || document }
function na ( a ) { var b = a . g , a = "CSS1Compat" == b . compatMode ? b . documentElement : b . body , b = b . parentWindow || b . defaultView ; return new I ( b . pageXOffset || a . scrollLeft , b . pageYOffset || a . scrollTop ) } ; var oa = function ( ) { var a = { i : "http://www.w3.org/2000/svg" } ; return function ( b ) { return a [ b ] || i } } ( ) ;
function pa ( a , b ) { var c = function ( ) { var c ; a : { var e = L ( b ) ; if ( e . implementation . hasFeature ( "XPath" , "3.0" ) ) { try { var f = e . createNSResolver ? e . createNSResolver ( e . documentElement ) : oa ; c = e . evaluate ( a , b , f , 9 , i ) ; break a } catch ( r ) { if ( "NS_ERROR_ILLEGAL_VALUE" != r . name ) throw new w ( 32 , "Unable to locate an element with the xpath expression " + a + " because of the following error:\n" + r ) ; } c = g } else c = i } return c ? c . singleNodeValue || i : b . selectSingleNode ? ( c = L ( b ) , c . setProperty && c . setProperty ( "SelectionLanguage" , "XPath" ) , b . selectSingleNode ( a ) ) :
i } ( ) ; if ( c !== i && ( ! c || 1 != c . nodeType ) ) throw new w ( 32 , 'The result of the xpath expression "' + a + '" is: ' + c + ". It should be an element." ) ; return c } ; ( function ( ) { var a = k . Components ; if ( ! a ) return j ; try { if ( ! a . classes ) return j } catch ( b ) { return j } var c = a . classes , a = a . interfaces ; c [ "@mozilla.org/xpcom/version-comparator;1" ] . getService ( a . nsIVersionComparator ) ; c [ "@mozilla.org/xre/app-info;1" ] . getService ( a . nsIXULAppInfo ) ; return h } ) ( ) ; var P = "StopIteration" in k ? k . StopIteration : Error ( "StopIteration" ) ; function qa ( ) { } qa . prototype . next = function ( ) { throw P ; } ; function Q ( a , b , c , d , e ) { this . a = ! ! b ; a && R ( this , a , d ) ; this . depth = e != g ? e : this . c || 0 ; this . a && ( this . depth *= - 1 ) ; this . f = ! c } n ( Q , qa ) ; Q . prototype . b = i ; Q . prototype . c = 0 ; Q . prototype . e = j ; function R ( a , b , c ) { if ( a . b = b ) a . c = "number" == typeof c ? c : 1 != a . b . nodeType ? 0 : a . a ? - 1 : 1 }
Q . prototype . next = function ( ) { var a ; if ( this . e ) { if ( ! this . b || this . f && 0 == this . depth ) throw P ; a = this . b ; var b = this . a ? - 1 : 1 ; if ( this . c == b ) { var c = this . a ? a . lastChild : a . firstChild ; c ? R ( this , c ) : R ( this , a , - 1 * b ) } else ( c = this . a ? a . previousSibling : a . nextSibling ) ? R ( this , c ) : R ( this , a . parentNode , - 1 * b ) ; this . depth += this . c * ( this . a ? - 1 : 1 ) } else this . e = h ; a = this . b ; if ( ! this . b ) throw P ; return a } ;
Q . prototype . splice = function ( a ) { var b = this . b , c = this . a ? 1 : - 1 ; this . c == c && ( this . c = - 1 * c , this . depth += this . c * ( this . a ? - 1 : 1 ) ) ; this . a = ! this . a ; Q . prototype . next . call ( this ) ; this . a = ! this . a ; for ( var c = arguments [ 0 ] , d = l ( c ) , c = "array" == d || "object" == d && "number" == typeof c . length ? arguments [ 0 ] : arguments , d = c . length - 1 ; 0 <= d ; d -- ) b . parentNode && b . parentNode . insertBefore ( c [ d ] , b . nextSibling ) ; b && b . parentNode && b . parentNode . removeChild ( b ) } ; function S ( a , b , c , d ) { Q . call ( this , a , b , c , i , d ) } n ( S , Q ) ; S . prototype . next = function ( ) { do S . h . next . call ( this ) ; while ( - 1 == this . c ) ; return this . b } ; function ra ( a , b ) { var c = L ( a ) ; return c . defaultView && c . defaultView . getComputedStyle && ( c = c . defaultView . getComputedStyle ( a , i ) ) ? c [ b ] || c . getPropertyValue ( b ) : "" } function T ( a , b ) { return ra ( a , b ) || ( a . currentStyle ? a . currentStyle [ b ] : i ) || a . style && a . style [ b ] }
function sa ( a ) { for ( var b = L ( a ) , c = T ( a , "position" ) , d = "fixed" == c || "absolute" == c , a = a . parentNode ; a && a != b ; a = a . parentNode ) if ( c = T ( a , "position" ) , d = d && "static" == c && a != b . documentElement && a != b . body , ! d && ( a . scrollWidth > a . clientWidth || a . scrollHeight > a . clientHeight || "fixed" == c || "absolute" == c || "relative" == c ) ) return a ; return i }
function ta ( a ) { var b = new I ; if ( 1 == a . nodeType ) if ( a . getBoundingClientRect ) a = a . getBoundingClientRect ( ) , b . x = a . left , b . y = a . top ; else { var c = na ( a ? new N ( L ( a ) ) : B || ( B = new N ) ) ; var d , e = L ( a ) , f = T ( a , "position" ) , r = e . getBoxObjectFor && ! a . getBoundingClientRect && "absolute" == f && ( d = e . getBoxObjectFor ( a ) ) && ( 0 > d . screenX || 0 > d . screenY ) , f = new I ( 0 , 0 ) , t = ( e ? 9 == e . nodeType ? e : L ( e ) : document ) . documentElement ; if ( a != t ) if ( a . getBoundingClientRect ) d = a . getBoundingClientRect ( ) , a = na ( e ? new N ( L ( e ) ) : B || ( B = new N ) ) , f . x = d . left + a . x , f . y = d . top + a . y ; else if ( e . getBoxObjectFor &&
! r ) d = e . getBoxObjectFor ( a ) , a = e . getBoxObjectFor ( t ) , f . x = d . screenX - a . screenX , f . y = d . screenY - a . screenY ; else { d = a ; do f . x += d . offsetLeft , f . y += d . offsetTop , d != a && ( f . x += d . clientLeft || 0 , f . y += d . clientTop || 0 ) , d = d . offsetParent ; while ( d && d != a ) ; for ( d = a ; ( d = sa ( d ) ) && d != e . body && d != t ; ) f . x -= d . scrollLeft , f . y -= d . scrollTop } b . x = f . x - c . x ; b . y = f . y - c . y } else c = "function" == l ( a . d ) , d = a , a . targetTouches ? d = a . targetTouches [ 0 ] : c && a . d ( ) . targetTouches && ( d = a . d ( ) . targetTouches [ 0 ] ) , b . x = d . clientX , b . y = d . clientY ; return b }
function ua ( a ) { var b = a . offsetWidth , c = a . offsetHeight ; return b === g && a . getBoundingClientRect ? ( a = a . getBoundingClientRect ( ) , new J ( a . right - a . left , a . bottom - a . top ) ) : new J ( b , c ) } ; function U ( a , b ) { return ! ! a && 1 == a . nodeType && ( ! b || a . tagName . toUpperCase ( ) == b ) } var va = "async,autofocus,autoplay,checked,compact,complete,controls,declare,defaultchecked,defaultselected,defer,disabled,draggable,ended,formnovalidate,hidden,indeterminate,iscontenteditable,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,paused,pubdate,readonly,required,reversed,scoped,seamless,seeking,selected,spellcheck,truespeed,willvalidate" . split ( "," ) ;
function V ( a ) { for ( a = a . parentNode ; a && 1 != a . nodeType && 9 != a . nodeType && 11 != a . nodeType ; ) a = a . parentNode ; return U ( a ) ? a : i } function W ( a , b ) { b = ba ( b ) ; return ra ( a , b ) || wa ( a , b ) } function wa ( a , b ) { var c = a . currentStyle || a . style , d = c [ b ] ; d === g && "function" == l ( c . getPropertyValue ) && ( d = c . getPropertyValue ( b ) ) ; return "inherit" != d ? d !== g ? d : i : ( c = V ( a ) ) ? wa ( c , b ) : i }
function xa ( a ) { if ( "function" == l ( a . getBBox ) ) try { var b = a . getBBox ( ) ; if ( b ) return b } catch ( c ) { } if ( "none" != T ( a , "display" ) ) a = ua ( a ) ; else { var b = a . style , d = b . display , e = b . visibility , f = b . position ; b . visibility = "hidden" ; b . position = "absolute" ; b . display = "inline" ; a = ua ( a ) ; b . display = d ; b . position = f ; b . visibility = e } return a }
function X ( a , b ) { function c ( a ) { if ( "none" == W ( a , "display" ) ) return j ; a = V ( a ) ; return ! a || c ( a ) } function d ( a ) { var b = xa ( a ) ; return 0 < b . height && 0 < b . width ? h : fa ( a . childNodes , function ( a ) { return a . nodeType == K || U ( a ) && d ( a ) } ) } function e ( a ) { var b = V ( a ) ; if ( b && "hidden" == W ( b , "overflow" ) ) { var c = xa ( b ) , d = ta ( b ) , a = ta ( a ) ; return d . x + c . width < a . x || d . y + c . height < a . y ? j : e ( b ) } return h } if ( ! U ( a ) ) throw Error ( "Argument to isShown must be of type Element" ) ; if ( U ( a , "OPTION" ) || U ( a , "OPTGROUP" ) ) { var f = ma ( a , function ( a ) { return U ( a , "SELECT" ) } ) ; return ! ! f &&
X ( f , h ) } if ( U ( a , "MAP" ) ) { if ( ! a . name ) return j ; f = L ( a ) ; f = f . evaluate ? pa ( '/descendant::*[@usemap = "#' + a . name + '"]' , f ) : la ( f , function ( b ) { var c ; if ( c = U ( b ) ) 8 == b . nodeType ? b = i : ( c = "usemap" , "style" == c ? ( b = p ( b . style . cssText ) . toLowerCase ( ) , b = ";" == b . charAt ( b . length - 1 ) ? b : b + ";" ) : ( b = b . getAttributeNode ( c ) , b = ! b ? i : A ( va , c ) ? "true" : b . specified ? b . value : i ) ) , c = b == "#" + a . name ; return c } ) ; return ! ! f && X ( f , b ) } return U ( a , "AREA" ) ? ( f = ma ( a , function ( a ) { return U ( a , "MAP" ) } ) , ! ! f && X ( f , b ) ) : U ( a , "INPUT" ) && "hidden" == a . type . toLowerCase ( ) || U ( a , "NOSCRIPT" ) ||
"hidden" == W ( a , "visibility" ) || ! c ( a ) || ! b && 0 == ya ( a ) || ! d ( a ) || ! e ( a ) ? j : h } function za ( a ) { return a . replace ( /^[^\S\xa0]+|[^\S\xa0]+$/g , "" ) }
function Aa ( a , b ) { if ( U ( a , "BR" ) ) b . push ( "" ) ; else { var c = U ( a , "TD" ) , d = W ( a , "display" ) , e = ! c && ! A ( Ba , d ) ; e && ! /^[\s\xa0]*$/ . test ( b [ b . length - 1 ] || "" ) && b . push ( "" ) ; var f = X ( a ) , r = i , t = i ; f && ( r = W ( a , "white-space" ) , t = W ( a , "text-transform" ) ) ; ea ( a . childNodes , function ( a ) { a . nodeType == K && f ? Ca ( a , b , r , t ) : U ( a ) && Aa ( a , b ) } ) ; var O = b [ b . length - 1 ] || "" ; if ( ( c || "table-cell" == d ) && O && ! o ( O ) ) b [ b . length - 1 ] += " " ; e && ! /^[\s\xa0]*$/ . test ( O ) && b . push ( "" ) } } var Ba = "inline,inline-block,inline-table,none,table-cell,table-column,table-column-group" . split ( "," ) ;
function Ca ( a , b , c , d ) { a = a . nodeValue . replace ( /\u200b/g , "" ) ; a = a . replace ( /(\r\n|\r|\n)/g , "\n" ) ; if ( "normal" == c || "nowrap" == c ) a = a . replace ( /\n/g , " " ) ; a = "pre" == c || "pre-wrap" == c ? a . replace ( /[ \f\t\v\u2028\u2029]/g , "\u00a0" ) : a . replace ( /[\ \f\t\v\u2028\u2029]+/g , " " ) ; "capitalize" == d ? a = a . replace ( /(^|\s)(\S)/g , function ( a , b , c ) { return b + c . toUpperCase ( ) } ) : "uppercase" == d ? a = a . toUpperCase ( ) : "lowercase" == d && ( a = a . toLowerCase ( ) ) ; c = b . pop ( ) || "" ; o ( c ) && 0 == a . lastIndexOf ( " " , 0 ) && ( a = a . substr ( 1 ) ) ; b . push ( c + a ) }
function ya ( a ) { var b = 1 , c = W ( a , "opacity" ) ; c && ( b = Number ( c ) ) ; ( a = V ( a ) ) && ( b *= ya ( a ) ) ; return b } ; function Da ( a ) { var b ; a : { for ( b = a ; b ; ) { if ( b . tagName && "head" == b . tagName . toLowerCase ( ) ) { b = h ; break a } try { b = b . parentNode } catch ( c ) { break } } b = j } if ( b ) return b = L ( a ) , "TITLE" == a . tagName . toUpperCase ( ) && ( b ? b . parentWindow || b . defaultView : window ) == da . top ? p ( b . title ) : "" ; b = [ ] ; Aa ( a , b ) ; var d = b , a = d . length ; b = Array ( a ) ; for ( var d = m ( d ) ? d . split ( "" ) : d , e = 0 ; e < a ; e ++ ) e in d && ( b [ e ] = za . call ( g , d [ e ] ) ) ; return za ( b . join ( "\n" ) ) . replace ( /\xa0/g , " " ) } var Y = [ "_" ] , Z = k ; ! ( Y [ 0 ] in Z ) && Z . execScript && Z . execScript ( "var " + Y [ 0 ] ) ;
for ( var $ ; Y . length && ( $ = Y . shift ( ) ) ; ) ! Y . length && Da !== g ? Z [ $ ] = Da : Z = Z [ $ ] ? Z [ $ ] : Z [ $ ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != 'undefined' ? window . navigator : null } , arguments ) ; }
//isElementDisplayed
var isElementDisplayed = function ( ) { return function ( ) { var g = void 0 , h = ! 0 , i = null , j = ! 1 , k = this ;
function l ( a ) { var b = typeof a ; if ( "object" == b ) if ( a ) { if ( a instanceof Array ) return "array" ; if ( a instanceof Object ) return b ; var c = Object . prototype . toString . call ( a ) ; if ( "[object Window]" == c ) return "object" ; if ( "[object Array]" == c || "number" == typeof a . length && "undefined" != typeof a . splice && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "splice" ) ) return "array" ; if ( "[object Function]" == c || "undefined" != typeof a . call && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "call" ) ) return "function" } else return "null" ;
else if ( "function" == b && "undefined" == typeof a . call ) return "object" ; return b } function m ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . h = b . prototype ; a . prototype = new c } ; function aa ( a , b ) { for ( var c = 1 ; c < arguments . length ; c ++ ) var d = ( "" + arguments [ c ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } function n ( a ) { return a . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) } var o = { } ; function ba ( a ) { return o [ a ] || ( o [ a ] = ( "" + a ) . replace ( /\-([a-z])/g , function ( a , c ) { return c . toUpperCase ( ) } ) ) } ; var p , ca = "" , q = /rv\:([^\);]+)(\)|;)/ . exec ( k . navigator ? k . navigator . userAgent : i ) ; p = ca = q ? q [ 1 ] : "" ; var r = { } ; function s ( a , b ) { this . code = a ; this . message = b || "" ; this . name = t [ a ] || t [ 13 ] ; var c = Error ( this . message ) ; c . name = this . name ; this . stack = c . stack || "" } m ( s , Error ) ;
var t = { 7 : "NoSuchElementError" , 8 : "NoSuchFrameError" , 9 : "UnknownCommandError" , 10 : "StaleElementReferenceError" , 11 : "ElementNotVisibleError" , 12 : "InvalidElementStateError" , 13 : "UnknownError" , 15 : "ElementNotSelectableError" , 19 : "XPathLookupError" , 23 : "NoSuchWindowError" , 24 : "InvalidCookieDomainError" , 25 : "UnableToSetCookieError" , 26 : "ModalDialogOpenedError" , 27 : "NoModalDialogOpenError" , 28 : "ScriptTimeoutError" , 32 : "InvalidSelectorError" , 33 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
s . prototype . toString = function ( ) { return "[" + this . name + "] " + this . message } ; function u ( a ) { this . stack = Error ( ) . stack || "" ; a && ( this . message = "" + a ) } m ( u , Error ) ; u . prototype . name = "CustomError" ; function v ( a , b ) { b . unshift ( a ) ; u . call ( this , aa . apply ( i , b ) ) ; b . shift ( ) } m ( v , u ) ; v . prototype . name = "AssertionError" ; function da ( a , b ) { for ( var c = a . length , d = "string" == typeof a ? a . split ( "" ) : a , f = 0 ; f < c ; f ++ ) if ( f in d && b . call ( g , d [ f ] , f , a ) ) return h ; return j } ; var w ;
if ( ! r [ "1.9.1" ] ) { for ( var x = 0 , y = n ( "" + p ) . split ( "." ) , z = n ( "1.9.1" ) . split ( "." ) , ea = Math . max ( y . length , z . length ) , A = 0 ; 0 == x && A < ea ; A ++ ) { var fa = y [ A ] || "" , ga = z [ A ] || "" , ha = RegExp ( "(\\d*)(\\D*)" , "g" ) , ia = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var B = ha . exec ( fa ) || [ "" , "" , "" ] , C = ia . exec ( ga ) || [ "" , "" , "" ] ; if ( 0 == B [ 0 ] . length && 0 == C [ 0 ] . length ) break ; x = ( ( 0 == B [ 1 ] . length ? 0 : parseInt ( B [ 1 ] , 10 ) ) < ( 0 == C [ 1 ] . length ? 0 : parseInt ( C [ 1 ] , 10 ) ) ? - 1 : ( 0 == B [ 1 ] . length ? 0 : parseInt ( B [ 1 ] , 10 ) ) > ( 0 == C [ 1 ] . length ? 0 : parseInt ( C [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == B [ 2 ] . length ) < ( 0 == C [ 2 ] . length ) ? - 1 :
( 0 == B [ 2 ] . length ) > ( 0 == C [ 2 ] . length ) ? 1 : 0 ) || ( B [ 2 ] < C [ 2 ] ? - 1 : B [ 2 ] > C [ 2 ] ? 1 : 0 ) } while ( 0 == x ) } r [ "1.9.1" ] = 0 <= x } ; function D ( a , b ) { this . x = a !== g ? a : 0 ; this . y = b !== g ? b : 0 } D . prototype . toString = function ( ) { return "(" + this . x + ", " + this . y + ")" } ; function F ( a , b ) { this . width = a ; this . height = b } F . prototype . toString = function ( ) { return "(" + this . width + " x " + this . height + ")" } ; var ja = 3 ; function G ( a ) { return 9 == a . nodeType ? a : a . ownerDocument || a . document } function ka ( a , b ) { var c = [ ] ; return H ( a , b , c , h ) ? c [ 0 ] : g } function H ( a , b , c , d ) { if ( a != i ) for ( a = a . firstChild ; a ; ) { if ( b ( a ) && ( c . push ( a ) , d ) || H ( a , b , c , d ) ) return h ; a = a . nextSibling } return j } function I ( a , b ) { for ( var a = a . parentNode , c = 0 ; a ; ) { if ( b ( a ) ) return a ; a = a . parentNode ; c ++ } return i } function J ( a ) { this . g = a || k . document || document }
function K ( a ) { var b = a . g , a = "CSS1Compat" == b . compatMode ? b . documentElement : b . body , b = b . parentWindow || b . defaultView ; return new D ( b . pageXOffset || a . scrollLeft , b . pageYOffset || a . scrollTop ) } ; var la = function ( ) { var a = { i : "http://www.w3.org/2000/svg" } ; return function ( b ) { return a [ b ] || i } } ( ) ;
function ma ( a , b ) { var c = function ( ) { var c ; a : { var f = G ( b ) ; if ( f . implementation . hasFeature ( "XPath" , "3.0" ) ) { try { var e = f . createNSResolver ? f . createNSResolver ( f . documentElement ) : la ; c = f . evaluate ( a , b , e , 9 , i ) ; break a } catch ( E ) { if ( "NS_ERROR_ILLEGAL_VALUE" != E . name ) throw new s ( 32 , "Unable to locate an element with the xpath expression " + a + " because of the following error:\n" + E ) ; } c = g } else c = i } return c ? c . singleNodeValue || i : b . selectSingleNode ? ( c = G ( b ) , c . setProperty && c . setProperty ( "SelectionLanguage" , "XPath" ) , b . selectSingleNode ( a ) ) :
i } ( ) ; if ( c !== i && ( ! c || 1 != c . nodeType ) ) throw new s ( 32 , 'The result of the xpath expression "' + a + '" is: ' + c + ". It should be an element." ) ; return c } ; ( function ( ) { var a = k . Components ; if ( ! a ) return j ; try { if ( ! a . classes ) return j } catch ( b ) { return j } var c = a . classes , a = a . interfaces ; c [ "@mozilla.org/xpcom/version-comparator;1" ] . getService ( a . nsIVersionComparator ) ; c [ "@mozilla.org/xre/app-info;1" ] . getService ( a . nsIXULAppInfo ) ; return h } ) ( ) ; var L = "StopIteration" in k ? k . StopIteration : Error ( "StopIteration" ) ; function M ( ) { } M . prototype . next = function ( ) { throw L ; } ; function O ( a , b , c , d , f ) { this . a = ! ! b ; a && P ( this , a , d ) ; this . depth = f != g ? f : this . c || 0 ; this . a && ( this . depth *= - 1 ) ; this . f = ! c } m ( O , M ) ; O . prototype . b = i ; O . prototype . c = 0 ; O . prototype . e = j ; function P ( a , b , c ) { if ( a . b = b ) a . c = "number" == typeof c ? c : 1 != a . b . nodeType ? 0 : a . a ? - 1 : 1 }
O . prototype . next = function ( ) { var a ; if ( this . e ) { if ( ! this . b || this . f && 0 == this . depth ) throw L ; a = this . b ; var b = this . a ? - 1 : 1 ; if ( this . c == b ) { var c = this . a ? a . lastChild : a . firstChild ; c ? P ( this , c ) : P ( this , a , - 1 * b ) } else ( c = this . a ? a . previousSibling : a . nextSibling ) ? P ( this , c ) : P ( this , a . parentNode , - 1 * b ) ; this . depth += this . c * ( this . a ? - 1 : 1 ) } else this . e = h ; a = this . b ; if ( ! this . b ) throw L ; return a } ;
O . prototype . splice = function ( a ) { var b = this . b , c = this . a ? 1 : - 1 ; this . c == c && ( this . c = - 1 * c , this . depth += this . c * ( this . a ? - 1 : 1 ) ) ; this . a = ! this . a ; O . prototype . next . call ( this ) ; this . a = ! this . a ; for ( var c = arguments [ 0 ] , d = l ( c ) , c = "array" == d || "object" == d && "number" == typeof c . length ? arguments [ 0 ] : arguments , d = c . length - 1 ; 0 <= d ; d -- ) b . parentNode && b . parentNode . insertBefore ( c [ d ] , b . nextSibling ) ; b && b . parentNode && b . parentNode . removeChild ( b ) } ; function Q ( a , b , c , d ) { O . call ( this , a , b , c , i , d ) } m ( Q , O ) ; Q . prototype . next = function ( ) { do Q . h . next . call ( this ) ; while ( - 1 == this . c ) ; return this . b } ; function R ( a , b ) { var c = G ( a ) ; return c . defaultView && c . defaultView . getComputedStyle && ( c = c . defaultView . getComputedStyle ( a , i ) ) ? c [ b ] || c . getPropertyValue ( b ) : "" } function S ( a , b ) { return R ( a , b ) || ( a . currentStyle ? a . currentStyle [ b ] : i ) || a . style && a . style [ b ] }
function na ( a ) { for ( var b = G ( a ) , c = S ( a , "position" ) , d = "fixed" == c || "absolute" == c , a = a . parentNode ; a && a != b ; a = a . parentNode ) if ( c = S ( a , "position" ) , d = d && "static" == c && a != b . documentElement && a != b . body , ! d && ( a . scrollWidth > a . clientWidth || a . scrollHeight > a . clientHeight || "fixed" == c || "absolute" == c || "relative" == c ) ) return a ; return i }
function oa ( a ) { var b = new D ; if ( 1 == a . nodeType ) if ( a . getBoundingClientRect ) a = a . getBoundingClientRect ( ) , b . x = a . left , b . y = a . top ; else { var c = K ( a ? new J ( G ( a ) ) : w || ( w = new J ) ) ; var d , f = G ( a ) , e = S ( a , "position" ) , E = f . getBoxObjectFor && ! a . getBoundingClientRect && "absolute" == e && ( d = f . getBoxObjectFor ( a ) ) && ( 0 > d . screenX || 0 > d . screenY ) , e = new D ( 0 , 0 ) , N = ( f ? 9 == f . nodeType ? f : G ( f ) : document ) . documentElement ; if ( a != N ) if ( a . getBoundingClientRect ) d = a . getBoundingClientRect ( ) , a = K ( f ? new J ( G ( f ) ) : w || ( w = new J ) ) , e . x = d . left + a . x , e . y = d . top + a . y ; else if ( f . getBoxObjectFor &&
! E ) d = f . getBoxObjectFor ( a ) , a = f . getBoxObjectFor ( N ) , e . x = d . screenX - a . screenX , e . y = d . screenY - a . screenY ; else { d = a ; do e . x += d . offsetLeft , e . y += d . offsetTop , d != a && ( e . x += d . clientLeft || 0 , e . y += d . clientTop || 0 ) , d = d . offsetParent ; while ( d && d != a ) ; for ( d = a ; ( d = na ( d ) ) && d != f . body && d != N ; ) e . x -= d . scrollLeft , e . y -= d . scrollTop } b . x = e . x - c . x ; b . y = e . y - c . y } else c = "function" == l ( a . d ) , d = a , a . targetTouches ? d = a . targetTouches [ 0 ] : c && a . d ( ) . targetTouches && ( d = a . d ( ) . targetTouches [ 0 ] ) , b . x = d . clientX , b . y = d . clientY ; return b }
function pa ( a ) { var b = a . offsetWidth , c = a . offsetHeight ; return b === g && a . getBoundingClientRect ? ( a = a . getBoundingClientRect ( ) , new F ( a . right - a . left , a . bottom - a . top ) ) : new F ( b , c ) } ; function T ( a , b ) { return ! ! a && 1 == a . nodeType && ( ! b || a . tagName . toUpperCase ( ) == b ) } var U = "async,autofocus,autoplay,checked,compact,complete,controls,declare,defaultchecked,defaultselected,defer,disabled,draggable,ended,formnovalidate,hidden,indeterminate,iscontenteditable,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,paused,pubdate,readonly,required,reversed,scoped,seamless,seeking,selected,spellcheck,truespeed,willvalidate" . split ( "," ) ;
function V ( a ) { for ( a = a . parentNode ; a && 1 != a . nodeType && 9 != a . nodeType && 11 != a . nodeType ; ) a = a . parentNode ; return T ( a ) ? a : i } function W ( a , b ) { b = ba ( b ) ; return R ( a , b ) || qa ( a , b ) } function qa ( a , b ) { var c = a . currentStyle || a . style , d = c [ b ] ; d === g && "function" == l ( c . getPropertyValue ) && ( d = c . getPropertyValue ( b ) ) ; return "inherit" != d ? d !== g ? d : i : ( c = V ( a ) ) ? qa ( c , b ) : i }
function ra ( a ) { if ( "function" == l ( a . getBBox ) ) try { var b = a . getBBox ( ) ; if ( b ) return b } catch ( c ) { } if ( "none" != S ( a , "display" ) ) a = pa ( a ) ; else { var b = a . style , d = b . display , f = b . visibility , e = b . position ; b . visibility = "hidden" ; b . position = "absolute" ; b . display = "inline" ; a = pa ( a ) ; b . display = d ; b . position = e ; b . visibility = f } return a }
function X ( a , b ) { function c ( a ) { if ( "none" == W ( a , "display" ) ) return j ; a = V ( a ) ; return ! a || c ( a ) } function d ( a ) { var b = ra ( a ) ; return 0 < b . height && 0 < b . width ? h : da ( a . childNodes , function ( a ) { return a . nodeType == ja || T ( a ) && d ( a ) } ) } function f ( a ) { var b = V ( a ) ; if ( b && "hidden" == W ( b , "overflow" ) ) { var c = ra ( b ) , d = oa ( b ) , a = oa ( a ) ; return d . x + c . width < a . x || d . y + c . height < a . y ? j : f ( b ) } return h } if ( ! T ( a ) ) throw Error ( "Argument to isShown must be of type Element" ) ; if ( T ( a , "OPTION" ) || T ( a , "OPTGROUP" ) ) { var e = I ( a , function ( a ) { return T ( a , "SELECT" ) } ) ; return ! ! e &&
X ( e , h ) } if ( T ( a , "MAP" ) ) { if ( ! a . name ) return j ; e = G ( a ) ; e = e . evaluate ? ma ( '/descendant::*[@usemap = "#' + a . name + '"]' , e ) : ka ( e , function ( b ) { var c ; if ( c = T ( b ) ) { if ( 8 == b . nodeType ) c = i ; else if ( c = "usemap" , "style" == c ) c = n ( b . style . cssText ) . toLowerCase ( ) , c = ";" == c . charAt ( c . length - 1 ) ? c : c + ";" ; else if ( b = b . getAttributeNode ( c ) ) { b : if ( "string" == typeof U ) c = "string" != typeof c || 1 != c . length ? - 1 : U . indexOf ( c , 0 ) ; else { for ( var d = 0 ; d < U . length ; d ++ ) if ( d in U && U [ d ] === c ) { c = d ; break b } c = - 1 } c = 0 <= c ? "true" : b . specified ? b . value : i } else c = i ; c = c == "#" + a . name } return c } ) ;
return ! ! e && X ( e , b ) } return T ( a , "AREA" ) ? ( e = I ( a , function ( a ) { return T ( a , "MAP" ) } ) , ! ! e && X ( e , b ) ) : T ( a , "INPUT" ) && "hidden" == a . type . toLowerCase ( ) || T ( a , "NOSCRIPT" ) || "hidden" == W ( a , "visibility" ) || ! c ( a ) || ! b && 0 == sa ( a ) || ! d ( a ) || ! f ( a ) ? j : h } function sa ( a ) { var b = 1 , c = W ( a , "opacity" ) ; c && ( b = Number ( c ) ) ; ( a = V ( a ) ) && ( b *= sa ( a ) ) ; return b } ; var ta = X , Y = [ "_" ] , Z = k ; ! ( Y [ 0 ] in Z ) && Z . execScript && Z . execScript ( "var " + Y [ 0 ] ) ; for ( var $ ; Y . length && ( $ = Y . shift ( ) ) ; ) ! Y . length && ta !== g ? Z [ $ ] = ta : Z = Z [ $ ] ? Z [ $ ] : Z [ $ ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != 'undefined' ? window . navigator : null } , arguments ) ; }
//isElementEnabled
var isElementEnabled = function ( ) { return function ( ) { var e = this ; function f ( a , c ) { function b ( ) { } b . prototype = c . prototype ; a . d = c . prototype ; a . prototype = new b } ; function g ( a , c ) { for ( var b = 1 ; b < arguments . length ; b ++ ) var d = ( "" + arguments [ b ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } ; var h , i = "" , j = /rv\:([^\);]+)(\)|;)/ . exec ( e . navigator ? e . navigator . userAgent : null ) ; h = i = j ? j [ 1 ] : "" ; var k = { } ; function l ( a , c ) { this . code = a ; this . message = c || "" ; this . name = m [ a ] || m [ 13 ] ; var b = Error ( this . message ) ; b . name = this . name ; this . stack = b . stack || "" } f ( l , Error ) ;
var m = { 7 : "NoSuchElementError" , 8 : "NoSuchFrameError" , 9 : "UnknownCommandError" , 10 : "StaleElementReferenceError" , 11 : "ElementNotVisibleError" , 12 : "InvalidElementStateError" , 13 : "UnknownError" , 15 : "ElementNotSelectableError" , 19 : "XPathLookupError" , 23 : "NoSuchWindowError" , 24 : "InvalidCookieDomainError" , 25 : "UnableToSetCookieError" , 26 : "ModalDialogOpenedError" , 27 : "NoModalDialogOpenError" , 28 : "ScriptTimeoutError" , 32 : "InvalidSelectorError" , 33 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
l . prototype . toString = function ( ) { return "[" + this . name + "] " + this . message } ; function n ( a ) { this . stack = Error ( ) . stack || "" ; a && ( this . message = "" + a ) } f ( n , Error ) ; n . prototype . name = "CustomError" ; function o ( a , c ) { c . unshift ( a ) ; n . call ( this , g . apply ( null , c ) ) ; c . shift ( ) } f ( o , n ) ; o . prototype . name = "AssertionError" ; function p ( a , c ) { var b ; a : if ( "string" == typeof a ) b = "string" != typeof c || 1 != c . length ? - 1 : a . indexOf ( c , 0 ) ; else { for ( b = 0 ; b < a . length ; b ++ ) if ( b in a && a [ b ] === c ) break a ; b = - 1 } return 0 <= b } ; if ( ! k [ "1.9.1" ] ) { for ( var q = 0 , r = ( "" + h ) . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) . split ( "." ) , s = "1.9.1" . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) . split ( "." ) , t = Math . max ( r . length , s . length ) , u = 0 ; 0 == q && u < t ; u ++ ) { var v = r [ u ] || "" , w = s [ u ] || "" , x = RegExp ( "(\\d*)(\\D*)" , "g" ) , z = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var A = x . exec ( v ) || [ "" , "" , "" ] , B = z . exec ( w ) || [ "" , "" , "" ] ; if ( 0 == A [ 0 ] . length && 0 == B [ 0 ] . length ) break ; q = ( ( 0 == A [ 1 ] . length ? 0 : parseInt ( A [ 1 ] , 10 ) ) < ( 0 == B [ 1 ] . length ? 0 : parseInt ( B [ 1 ] , 10 ) ) ? - 1 : ( 0 == A [ 1 ] . length ? 0 : parseInt ( A [ 1 ] , 10 ) ) > ( 0 == B [ 1 ] . length ?
0 : parseInt ( B [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == A [ 2 ] . length ) < ( 0 == B [ 2 ] . length ) ? - 1 : ( 0 == A [ 2 ] . length ) > ( 0 == B [ 2 ] . length ) ? 1 : 0 ) || ( A [ 2 ] < B [ 2 ] ? - 1 : A [ 2 ] > B [ 2 ] ? 1 : 0 ) } while ( 0 == q ) } k [ "1.9.1" ] = 0 <= q } ; ( function ( ) { var a = e . Components ; if ( ! a ) return ! 1 ; try { if ( ! a . classes ) return ! 1 } catch ( c ) { return ! 1 } var b = a . classes , a = a . interfaces ; b [ "@mozilla.org/xpcom/version-comparator;1" ] . getService ( a . nsIVersionComparator ) ; b [ "@mozilla.org/xre/app-info;1" ] . getService ( a . nsIXULAppInfo ) ; return ! 0 } ) ( ) ; function C ( a , c , b , d , y ) { this . b = ! ! c ; if ( a && ( this . a = a ) ) this . c = "number" == typeof d ? d : 1 != this . a . nodeType ? 0 : this . b ? - 1 : 1 ; this . depth = void 0 != y ? y : this . c || 0 ; this . b && ( this . depth *= - 1 ) } f ( C , function ( ) { } ) ; C . prototype . a = null ; C . prototype . c = 0 ; f ( function ( a , c , b , d ) { C . call ( this , a , c , 0 , null , d ) } , C ) ; var D = { "class" : "className" , readonly : "readOnly" } , E = [ "checked" , "disabled" , "draggable" , "hidden" ] , F = "BUTTON,INPUT,OPTGROUP,OPTION,SELECT,TEXTAREA" . split ( "," ) ; function G ( a ) { var c = a . tagName . toUpperCase ( ) ; if ( p ( F , c ) ) { var b ; b = D . disabled || "disabled" ; var d = a [ b ] ; b = void 0 === d && p ( E , b ) ? ! 1 : d ; a = b ? ! 1 : a . parentNode && 1 == a . parentNode . nodeType && "OPTGROUP" == c || "OPTION" == c ? G ( a . parentNode ) : ! 0 } else a = ! 0 ; return a } ; var H = G , I = [ "_" ] , J = e ; ! ( I [ 0 ] in J ) && J . execScript && J . execScript ( "var " + I [ 0 ] ) ; for ( var K ; I . length && ( K = I . shift ( ) ) ; ) ! I . length && void 0 !== H ? J [ K ] = H : J = J [ K ] ? J [ K ] : J [ K ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != 'undefined' ? window . navigator : null } , arguments ) ; }
//isElementSelected
var isElementSelected = function ( ) { return function ( ) { var f = ! 1 , g = this ; function h ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . d = b . prototype ; a . prototype = new c } ; function i ( a , b ) { for ( var c = 1 ; c < arguments . length ; c ++ ) var d = ( "" + arguments [ c ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } ; var k , l = "" , m = /rv\:([^\);]+)(\)|;)/ . exec ( g . navigator ? g . navigator . userAgent : null ) ; k = l = m ? m [ 1 ] : "" ; var n = { } ; function o ( a , b ) { this . code = a ; this . message = b || "" ; this . name = p [ a ] || p [ 13 ] ; var c = Error ( this . message ) ; c . name = this . name ; this . stack = c . stack || "" } h ( o , Error ) ;
var p = { 7 : "NoSuchElementError" , 8 : "NoSuchFrameError" , 9 : "UnknownCommandError" , 10 : "StaleElementReferenceError" , 11 : "ElementNotVisibleError" , 12 : "InvalidElementStateError" , 13 : "UnknownError" , 15 : "ElementNotSelectableError" , 19 : "XPathLookupError" , 23 : "NoSuchWindowError" , 24 : "InvalidCookieDomainError" , 25 : "UnableToSetCookieError" , 26 : "ModalDialogOpenedError" , 27 : "NoModalDialogOpenError" , 28 : "ScriptTimeoutError" , 32 : "InvalidSelectorError" , 33 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
o . prototype . toString = function ( ) { return "[" + this . name + "] " + this . message } ; function q ( a ) { this . stack = Error ( ) . stack || "" ; a && ( this . message = "" + a ) } h ( q , Error ) ; q . prototype . name = "CustomError" ; function r ( a , b ) { b . unshift ( a ) ; q . call ( this , i . apply ( null , b ) ) ; b . shift ( ) } h ( r , q ) ; r . prototype . name = "AssertionError" ; if ( ! n [ "1.9.1" ] ) { for ( var s = 0 , t = ( "" + k ) . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) . split ( "." ) , u = "1.9.1" . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) . split ( "." ) , v = Math . max ( t . length , u . length ) , w = 0 ; 0 == s && w < v ; w ++ ) { var x = t [ w ] || "" , y = u [ w ] || "" , z = RegExp ( "(\\d*)(\\D*)" , "g" ) , A = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var B = z . exec ( x ) || [ "" , "" , "" ] , C = A . exec ( y ) || [ "" , "" , "" ] ; if ( 0 == B [ 0 ] . length && 0 == C [ 0 ] . length ) break ; s = ( ( 0 == B [ 1 ] . length ? 0 : parseInt ( B [ 1 ] , 10 ) ) < ( 0 == C [ 1 ] . length ? 0 : parseInt ( C [ 1 ] , 10 ) ) ? - 1 : ( 0 == B [ 1 ] . length ? 0 : parseInt ( B [ 1 ] , 10 ) ) > ( 0 == C [ 1 ] . length ?
0 : parseInt ( C [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == B [ 2 ] . length ) < ( 0 == C [ 2 ] . length ) ? - 1 : ( 0 == B [ 2 ] . length ) > ( 0 == C [ 2 ] . length ) ? 1 : 0 ) || ( B [ 2 ] < C [ 2 ] ? - 1 : B [ 2 ] > C [ 2 ] ? 1 : 0 ) } while ( 0 == s ) } n [ "1.9.1" ] = 0 <= s } ; var D = { SCRIPT : 1 , STYLE : 1 , HEAD : 1 , IFRAME : 1 , OBJECT : 1 } , E = { IMG : " " , BR : "\n" } ; function F ( a , b , c ) { if ( ! ( a . nodeName in D ) ) if ( 3 == a . nodeType ) c ? b . push ( ( "" + a . nodeValue ) . replace ( /(\r\n|\r|\n)/g , "" ) ) : b . push ( a . nodeValue ) ; else if ( a . nodeName in E ) b . push ( E [ a . nodeName ] ) ; else for ( a = a . firstChild ; a ; ) F ( a , b , c ) , a = a . nextSibling } ; ( function ( ) { var a = g . Components ; if ( ! a ) return f ; try { if ( ! a . classes ) return f } catch ( b ) { return f } var c = a . classes , a = a . interfaces ; c [ "@mozilla.org/xpcom/version-comparator;1" ] . getService ( a . nsIVersionComparator ) ; c [ "@mozilla.org/xre/app-info;1" ] . getService ( a . nsIXULAppInfo ) ; return ! 0 } ) ( ) ; function G ( a , b , c , d , e ) { this . b = ! ! b ; if ( a && ( this . a = a ) ) this . c = "number" == typeof d ? d : 1 != this . a . nodeType ? 0 : this . b ? - 1 : 1 ; this . depth = void 0 != e ? e : this . c || 0 ; this . b && ( this . depth *= - 1 ) } h ( G , function ( ) { } ) ; G . prototype . a = null ; G . prototype . c = 0 ; h ( function ( a , b , c , d ) { G . call ( this , a , b , 0 , null , d ) } , G ) ; function H ( a , b ) { return ! ! a && 1 == a . nodeType && ( ! b || a . tagName . toUpperCase ( ) == b ) } function I ( a ) { return H ( a , "OPTION" ) ? ! 0 : H ( a , "INPUT" ) ? ( a = a . type . toLowerCase ( ) , "checkbox" == a || "radio" == a ) : f } var J = { "class" : "className" , readonly : "readOnly" } , K = [ "checked" , "disabled" , "draggable" , "hidden" ] ; function L ( a ) { if ( I ( a ) ) { if ( ! I ( a ) ) throw new o ( 15 , "Element is not selectable" ) ; var b = "selected" , c = a . type && a . type . toLowerCase ( ) ; if ( "checkbox" == c || "radio" == c ) b = "checked" ; var c = b , d = J [ c ] || c , b = a [ d ] , e ; if ( e = void 0 === b ) { b : if ( "string" == typeof K ) d = "string" != typeof d || 1 != d . length ? - 1 : K . indexOf ( d , 0 ) ; else { for ( e = 0 ; e < K . length ; e ++ ) if ( e in K && K [ e ] === d ) { d = e ; break b } d = - 1 } e = 0 <= d } if ( e ) a = f ; else { if ( d = "value" == c ) if ( d = H ( a , "OPTION" ) ) { var j ; c = c . toLowerCase ( ) ; if ( a . hasAttribute ) j = a . hasAttribute ( c ) ; else try { j = a . attributes [ c ] . specified } catch ( P ) { j =
f } d = ! j } d && ( j = [ ] , F ( a , j , f ) , b = j . join ( "" ) ) ; a = b } a = ! ! a } else a = f ; return a } var M = [ "_" ] , N = g ; ! ( M [ 0 ] in N ) && N . execScript && N . execScript ( "var " + M [ 0 ] ) ; for ( var O ; M . length && ( O = M . shift ( ) ) ; ) ! M . length && void 0 !== L ? N [ O ] = L : N = N [ O ] ? N [ O ] : N [ O ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != 'undefined' ? window . navigator : null } , arguments ) ; }
//sendKeysToElement/type
var sendKeysToElement = function ( ) { return function ( ) { function g ( a ) { throw a ; } var h = void 0 , i = ! 0 , k = null , l = ! 1 ; function n ( a ) { return function ( ) { return this [ a ] } } function o ( a ) { return function ( ) { return a } } var p , q = this ;
function aa ( a ) { var b = typeof a ; if ( "object" == b ) if ( a ) { if ( a instanceof Array ) return "array" ; if ( a instanceof Object ) return b ; var c = Object . prototype . toString . call ( a ) ; if ( "[object Window]" == c ) return "object" ; if ( "[object Array]" == c || "number" == typeof a . length && "undefined" != typeof a . splice && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "splice" ) ) return "array" ; if ( "[object Function]" == c || "undefined" != typeof a . call && "undefined" != typeof a . propertyIsEnumerable && ! a . propertyIsEnumerable ( "call" ) ) return "function" } else return "null" ;
else if ( "function" == b && "undefined" == typeof a . call ) return "object" ; return b } function s ( a ) { return a !== h } function ba ( a ) { var b = aa ( a ) ; return "array" == b || "object" == b && "number" == typeof a . length } function t ( a ) { return "string" == typeof a } function u ( a ) { return "function" == aa ( a ) } function ca ( a ) { a = aa ( a ) ; return "object" == a || "array" == a || "function" == a } var da = "closure_uid_" + Math . floor ( 2147483648 * Math . random ( ) ) . toString ( 36 ) , ea = 0 , fa = Date . now || function ( ) { return + new Date } ;
function x ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . aa = b . prototype ; a . prototype = new c } ; function ga ( a , b ) { for ( var c = 1 ; c < arguments . length ; c ++ ) var d = ( "" + arguments [ c ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } function ha ( a ) { return a . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) } function ia ( a ) { if ( ! ja . test ( a ) ) return a ; - 1 != a . indexOf ( "&" ) && ( a = a . replace ( ka , "&" ) ) ; - 1 != a . indexOf ( "<" ) && ( a = a . replace ( la , "<" ) ) ; - 1 != a . indexOf ( ">" ) && ( a = a . replace ( ma , ">" ) ) ; - 1 != a . indexOf ( '"' ) && ( a = a . replace ( na , """ ) ) ; return a } var ka = /&/g , la = /</g , ma = />/g , na = /\"/g , ja = /[&<>\"]/ ;
function oa ( a , b ) { for ( var c = 0 , d = ha ( "" + a ) . split ( "." ) , e = ha ( "" + b ) . split ( "." ) , f = Math . max ( d . length , e . length ) , j = 0 ; 0 == c && j < f ; j ++ ) { var m = d [ j ] || "" , r = e [ j ] || "" , O = RegExp ( "(\\d*)(\\D*)" , "g" ) , G = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var v = O . exec ( m ) || [ "" , "" , "" ] , w = G . exec ( r ) || [ "" , "" , "" ] ; if ( 0 == v [ 0 ] . length && 0 == w [ 0 ] . length ) break ; c = ( ( 0 == v [ 1 ] . length ? 0 : parseInt ( v [ 1 ] , 10 ) ) < ( 0 == w [ 1 ] . length ? 0 : parseInt ( w [ 1 ] , 10 ) ) ? - 1 : ( 0 == v [ 1 ] . length ? 0 : parseInt ( v [ 1 ] , 10 ) ) > ( 0 == w [ 1 ] . length ? 0 : parseInt ( w [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == v [ 2 ] . length ) < ( 0 == w [ 2 ] . length ) ? - 1 : ( 0 ==
v [ 2 ] . length ) > ( 0 == w [ 2 ] . length ) ? 1 : 0 ) || ( v [ 2 ] < w [ 2 ] ? - 1 : v [ 2 ] > w [ 2 ] ? 1 : 0 ) } while ( 0 == c ) } return c } var pa = 2147483648 * Math . random ( ) | 0 , qa = { } ; function ra ( a ) { return qa [ a ] || ( qa [ a ] = ( "" + a ) . replace ( /\-([a-z])/g , function ( a , c ) { return c . toUpperCase ( ) } ) ) } ; var sa , ta ; function ua ( ) { return q . navigator ? q . navigator . userAgent : k } var va , wa = q . navigator ; va = wa && wa . platform || "" ; sa = - 1 != va . indexOf ( "Mac" ) ; ta = - 1 != va . indexOf ( "Win" ) ; var xa = - 1 != va . indexOf ( "Linux" ) , ya , za = "" , Aa = /rv\:([^\);]+)(\)|;)/ . exec ( ua ( ) ) ; ya = za = Aa ? Aa [ 1 ] : "" ; var Ba = { } ; var Ca = window ; function Da ( a , b ) { for ( var c in a ) b . call ( h , a [ c ] , c , a ) } function Ea ( a ) { var b = [ ] , c = 0 , d ; for ( d in a ) b [ c ++ ] = a [ d ] ; return b } ; function y ( a , b ) { this . code = a ; this . message = b || "" ; this . name = Fa [ a ] || Fa [ 13 ] ; var c = Error ( this . message ) ; c . name = this . name ; this . stack = c . stack || "" } x ( y , Error ) ;
var Fa = { 7 : "NoSuchElementError" , 8 : "NoSuchFrameError" , 9 : "UnknownCommandError" , 10 : "StaleElementReferenceError" , 11 : "ElementNotVisibleError" , 12 : "InvalidElementStateError" , 13 : "UnknownError" , 15 : "ElementNotSelectableError" , 19 : "XPathLookupError" , 23 : "NoSuchWindowError" , 24 : "InvalidCookieDomainError" , 25 : "UnableToSetCookieError" , 26 : "ModalDialogOpenedError" , 27 : "NoModalDialogOpenError" , 28 : "ScriptTimeoutError" , 32 : "InvalidSelectorError" , 33 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
y . prototype . toString = function ( ) { return "[" + this . name + "] " + this . message } ; function Ga ( a ) { this . stack = Error ( ) . stack || "" ; a && ( this . message = "" + a ) } x ( Ga , Error ) ; Ga . prototype . name = "CustomError" ; function Ha ( a , b ) { b . unshift ( a ) ; Ga . call ( this , ga . apply ( k , b ) ) ; b . shift ( ) } x ( Ha , Ga ) ; Ha . prototype . name = "AssertionError" ; function Ia ( a , b , c ) { if ( ! a ) { var d = Array . prototype . slice . call ( arguments , 2 ) , e = "Assertion failed" ; if ( b ) var e = e + ( ": " + b ) , f = d ; g ( new Ha ( "" + e , f || [ ] ) ) } } function Ja ( a , b ) { g ( new Ha ( "Failure" + ( a ? ": " + a : "" ) , Array . prototype . slice . call ( arguments , 1 ) ) ) } ; function z ( a ) { return a [ a . length - 1 ] } var Ka = Array . prototype ; function A ( a , b ) { if ( t ( a ) ) return ! t ( b ) || 1 != b . length ? - 1 : a . indexOf ( b , 0 ) ; for ( var c = 0 ; c < a . length ; c ++ ) if ( c in a && a [ c ] === b ) return c ; return - 1 } function La ( a , b ) { for ( var c = a . length , d = t ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) e in d && b . call ( h , d [ e ] , e , a ) } function Ma ( a , b ) { for ( var c = a . length , d = Array ( c ) , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < c ; f ++ ) f in e && ( d [ f ] = b . call ( h , e [ f ] , f , a ) ) ; return d }
function Na ( a , b , c ) { for ( var d = a . length , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < d ; f ++ ) if ( f in e && b . call ( c , e [ f ] , f , a ) ) return i ; return l } function Oa ( a , b , c ) { for ( var d = a . length , e = t ( a ) ? a . split ( "" ) : a , f = 0 ; f < d ; f ++ ) if ( f in e && ! b . call ( c , e [ f ] , f , a ) ) return l ; return i } function Pa ( a , b ) { var c ; a : { c = a . length ; for ( var d = t ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) if ( e in d && b . call ( h , d [ e ] , e , a ) ) { c = e ; break a } c = - 1 } return 0 > c ? k : t ( a ) ? a . charAt ( c ) : a [ c ] } function Qa ( a ) { return Ka . concat . apply ( Ka , arguments ) }
function Ra ( a ) { if ( "array" == aa ( a ) ) return Qa ( a ) ; for ( var b = [ ] , c = 0 , d = a . length ; c < d ; c ++ ) b [ c ] = a [ c ] ; return b } function Sa ( a , b , c ) { Ia ( a . length != k ) ; return 2 >= arguments . length ? Ka . slice . call ( a , b ) : Ka . slice . call ( a , b , c ) } ; var Ta ; Ba [ "1.9.1" ] || ( Ba [ "1.9.1" ] = 0 <= oa ( ya , "1.9.1" ) ) ; function Ua ( a , b ) { var c ; c = ( c = a . className ) && "function" == typeof c . split ? c . split ( /\s+/ ) : [ ] ; var d = Sa ( arguments , 1 ) , e ; e = c ; for ( var f = 0 , j = 0 ; j < d . length ; j ++ ) 0 <= A ( e , d [ j ] ) || ( e . push ( d [ j ] ) , f ++ ) ; e = f == d . length ; a . className = c . join ( " " ) ; return e } ; function B ( a , b ) { this . x = s ( a ) ? a : 0 ; this . y = s ( b ) ? b : 0 } B . prototype . toString = function ( ) { return "(" + this . x + ", " + this . y + ")" } ; function Va ( a , b ) { this . width = a ; this . height = b } Va . prototype . toString = function ( ) { return "(" + this . width + " x " + this . height + ")" } ; Va . prototype . floor = function ( ) { this . width = Math . floor ( this . width ) ; this . height = Math . floor ( this . height ) ; return this } ; Va . prototype . scale = function ( a ) { this . width *= a ; this . height *= a ; return this } ; var C = 3 ; function Wa ( a ) { return a ? new Xa ( D ( a ) ) : Ta || ( Ta = new Xa ) } function Ya ( a , b ) { Da ( b , function ( b , d ) { "style" == d ? a . style . cssText = b : "class" == d ? a . className = b : "for" == d ? a . htmlFor = b : d in Za ? a . setAttribute ( Za [ d ] , b ) : 0 == d . lastIndexOf ( "aria-" , 0 ) ? a . setAttribute ( d , b ) : a [ d ] = b } ) } var Za = { cellpadding : "cellPadding" , cellspacing : "cellSpacing" , colspan : "colSpan" , rowspan : "rowSpan" , valign : "vAlign" , height : "height" , width : "width" , usemap : "useMap" , frameborder : "frameBorder" , maxlength : "maxLength" , type : "type" } ;
function E ( a ) { return a ? a . parentWindow || a . defaultView : window } function $a ( a , b , c ) { function d ( c ) { c && b . appendChild ( t ( c ) ? a . createTextNode ( c ) : c ) } for ( var e = 2 ; e < c . length ; e ++ ) { var f = c [ e ] ; ba ( f ) && ! ( ca ( f ) && 0 < f . nodeType ) ? La ( ab ( f ) ? Ra ( f ) : f , d ) : d ( f ) } } function bb ( a ) { return a && a . parentNode ? a . parentNode . removeChild ( a ) : k }
function F ( a , b ) { if ( a . contains && 1 == b . nodeType ) return a == b || a . contains ( b ) ; if ( "undefined" != typeof a . compareDocumentPosition ) return a == b || Boolean ( a . compareDocumentPosition ( b ) & 16 ) ; for ( ; b && a != b ; ) b = b . parentNode ; return b == a }
function cb ( a , b ) { if ( a == b ) return 0 ; if ( a . compareDocumentPosition ) return a . compareDocumentPosition ( b ) & 2 ? 1 : - 1 ; if ( "sourceIndex" in a || a . parentNode && "sourceIndex" in a . parentNode ) { var c = 1 == a . nodeType , d = 1 == b . nodeType ; if ( c && d ) return a . sourceIndex - b . sourceIndex ; var e = a . parentNode , f = b . parentNode ; return e == f ? db ( a , b ) : ! c && F ( e , b ) ? - 1 * eb ( a , b ) : ! d && F ( f , a ) ? eb ( b , a ) : ( c ? a . sourceIndex : e . sourceIndex ) - ( d ? b . sourceIndex : f . sourceIndex ) } d = D ( a ) ; c = d . createRange ( ) ; c . selectNode ( a ) ; c . collapse ( i ) ; d = d . createRange ( ) ; d . selectNode ( b ) ; d . collapse ( i ) ;
return c . compareBoundaryPoints ( q . Range . START _TO _END , d ) } function eb ( a , b ) { var c = a . parentNode ; if ( c == b ) return - 1 ; for ( var d = b ; d . parentNode != c ; ) d = d . parentNode ; return db ( d , a ) } function db ( a , b ) { for ( var c = b ; c = c . previousSibling ; ) if ( c == a ) return - 1 ; return 1 }
function fb ( a ) { var b , c = arguments . length ; if ( c ) { if ( 1 == c ) return arguments [ 0 ] } else return k ; var d = [ ] , e = Infinity ; for ( b = 0 ; b < c ; b ++ ) { for ( var f = [ ] , j = arguments [ b ] ; j ; ) f . unshift ( j ) , j = j . parentNode ; d . push ( f ) ; e = Math . min ( e , f . length ) } f = k ; for ( b = 0 ; b < e ; b ++ ) { for ( var j = d [ 0 ] [ b ] , m = 1 ; m < c ; m ++ ) if ( j != d [ m ] [ b ] ) return f ; f = j } return f } function D ( a ) { return 9 == a . nodeType ? a : a . ownerDocument || a . document } function gb ( a , b ) { var c = [ ] ; return hb ( a , b , c , i ) ? c [ 0 ] : h }
function hb ( a , b , c , d ) { if ( a != k ) for ( a = a . firstChild ; a ; ) { if ( b ( a ) && ( c . push ( a ) , d ) || hb ( a , b , c , d ) ) return i ; a = a . nextSibling } return l } var ib = { SCRIPT : 1 , STYLE : 1 , HEAD : 1 , IFRAME : 1 , OBJECT : 1 } , jb = { IMG : " " , BR : "\n" } ; function kb ( a , b , c ) { if ( ! ( a . nodeName in ib ) ) if ( a . nodeType == C ) c ? b . push ( ( "" + a . nodeValue ) . replace ( /(\r\n|\r|\n)/g , "" ) ) : b . push ( a . nodeValue ) ; else if ( a . nodeName in jb ) b . push ( jb [ a . nodeName ] ) ; else for ( a = a . firstChild ; a ; ) kb ( a , b , c ) , a = a . nextSibling }
function ab ( a ) { if ( a && "number" == typeof a . length ) { if ( ca ( a ) ) return "function" == typeof a . item || "string" == typeof a . item ; if ( u ( a ) ) return "function" == typeof a . item } return l } function lb ( a , b ) { for ( var a = a . parentNode , c = 0 ; a ; ) { if ( b ( a ) ) return a ; a = a . parentNode ; c ++ } return k } function Xa ( a ) { this . A = a || q . document || document } p = Xa . prototype ; p . ha = n ( "A" ) ; p . q = function ( a ) { return t ( a ) ? this . A . getElementById ( a ) : a } ;
p . fa = function ( a , b , c ) { var d = this . A , e = arguments , f = e [ 1 ] , j = d . createElement ( e [ 0 ] ) ; f && ( t ( f ) ? j . className = f : "array" == aa ( f ) ? Ua . apply ( k , [ j ] . concat ( f ) ) : Ya ( j , f ) ) ; 2 < e . length && $a ( d , j , e ) ; return j } ; p . createElement = function ( a ) { return this . A . createElement ( a ) } ; p . createTextNode = function ( a ) { return this . A . createTextNode ( a ) } ; p . ua = function ( ) { return this . A . parentWindow || this . A . defaultView } ;
function mb ( a ) { var b = a . A , a = "CSS1Compat" == b . compatMode ? b . documentElement : b . body , b = b . parentWindow || b . defaultView ; return new B ( b . pageXOffset || a . scrollLeft , b . pageYOffset || a . scrollTop ) } p . appendChild = function ( a , b ) { a . appendChild ( b ) } ; p . removeNode = bb ; p . contains = F ; var H = { } ; H . Ba = function ( ) { var a = { Ra : "http://www.w3.org/2000/svg" } ; return function ( b ) { return a [ b ] || k } } ( ) ; H . qa = function ( a , b , c ) { var d = D ( a ) ; if ( ! d . implementation . hasFeature ( "XPath" , "3.0" ) ) return k ; try { var e = d . createNSResolver ? d . createNSResolver ( d . documentElement ) : H . Ba ; return d . evaluate ( b , a , e , c , k ) } catch ( f ) { "NS_ERROR_ILLEGAL_VALUE" != f . name && g ( new y ( 32 , "Unable to locate an element with the xpath expression " + b + " because of the following error:\n" + f ) ) } } ;
H . oa = function ( a , b ) { ( ! a || 1 != a . nodeType ) && g ( new y ( 32 , 'The result of the xpath expression "' + b + '" is: ' + a + ". It should be an element." ) ) } ; H . Ka = function ( a , b ) { var c = function ( ) { var c = H . qa ( b , a , 9 ) ; return c ? c . singleNodeValue || k : b . selectSingleNode ? ( c = D ( b ) , c . setProperty && c . setProperty ( "SelectionLanguage" , "XPath" ) , b . selectSingleNode ( a ) ) : k } ( ) ; c === k || H . oa ( c , a ) ; return c } ;
H . Qa = function ( a , b ) { var c = function ( ) { var c = H . qa ( b , a , 7 ) ; if ( c ) { for ( var e = c . snapshotLength , f = [ ] , j = 0 ; j < e ; ++ j ) f . push ( c . snapshotItem ( j ) ) ; return f } return b . selectNodes ? ( c = D ( b ) , c . setProperty && c . setProperty ( "SelectionLanguage" , "XPath" ) , b . selectNodes ( a ) ) : [ ] } ( ) ; La ( c , function ( b ) { H . oa ( b , a ) } ) ; return c } ; var nb , ob = "" , pb = /Firefox\/([0-9.]+)/ . exec ( ua ( ) ) ; nb = ob = pb ? pb [ 2 ] || pb [ 1 ] : "" ; var qb = k , rb = function ( ) { var a = q . Components ; if ( ! a ) return l ; try { if ( ! a . classes ) return l } catch ( b ) { return l } var c = a . classes , a = a . interfaces , d = c [ "@mozilla.org/xpcom/version-comparator;1" ] . getService ( a . nsIVersionComparator ) , e = c [ "@mozilla.org/xre/app-info;1" ] . getService ( a . nsIXULAppInfo ) . version ; qb = function ( a ) { return 0 <= d . Ma ( e , "" + a ) } ; return i } ( ) ; var I = "StopIteration" in q ? q . StopIteration : Error ( "StopIteration" ) ; function J ( ) { } J . prototype . next = function ( ) { g ( I ) } ; J . prototype . t = function ( ) { return this } ; function sb ( a ) { if ( a instanceof J ) return a ; if ( "function" == typeof a . t ) return a . t ( l ) ; if ( ba ( a ) ) { var b = 0 , c = new J ; c . next = function ( ) { for ( ; ; ) { b >= a . length && g ( I ) ; if ( b in a ) return a [ b ++ ] ; b ++ } } ; return c } g ( Error ( "Not implemented" ) ) } ; function K ( a , b , c , d , e ) { this . p = ! ! b ; a && L ( this , a , d ) ; this . depth = e != h ? e : this . s || 0 ; this . p && ( this . depth *= - 1 ) ; this . Ca = ! c } x ( K , J ) ; p = K . prototype ; p . r = k ; p . s = 0 ; p . ma = l ; function L ( a , b , c , d ) { if ( a . r = b ) a . s = "number" == typeof c ? c : 1 != a . r . nodeType ? 0 : a . p ? - 1 : 1 ; "number" == typeof d && ( a . depth = d ) }
p . next = function ( ) { var a ; if ( this . ma ) { ( ! this . r || this . Ca && 0 == this . depth ) && g ( I ) ; a = this . r ; var b = this . p ? - 1 : 1 ; if ( this . s == b ) { var c = this . p ? a . lastChild : a . firstChild ; c ? L ( this , c ) : L ( this , a , - 1 * b ) } else ( c = this . p ? a . previousSibling : a . nextSibling ) ? L ( this , c ) : L ( this , a . parentNode , - 1 * b ) ; this . depth += this . s * ( this . p ? - 1 : 1 ) } else this . ma = i ; ( a = this . r ) || g ( I ) ; return a } ;
p . splice = function ( a ) { var b = this . r , c = this . p ? 1 : - 1 ; this . s == c && ( this . s = - 1 * c , this . depth += this . s * ( this . p ? - 1 : 1 ) ) ; this . p = ! this . p ; K . prototype . next . call ( this ) ; this . p = ! this . p ; for ( var c = ba ( arguments [ 0 ] ) ? arguments [ 0 ] : arguments , d = c . length - 1 ; 0 <= d ; d -- ) b . parentNode && b . parentNode . insertBefore ( c [ d ] , b . nextSibling ) ; bb ( b ) } ; function tb ( a , b , c , d ) { K . call ( this , a , b , c , k , d ) } x ( tb , K ) ; tb . prototype . next = function ( ) { do tb . aa . next . call ( this ) ; while ( - 1 == this . s ) ; return this . r } ; function ub ( a , b ) { var c = D ( a ) ; return c . defaultView && c . defaultView . getComputedStyle && ( c = c . defaultView . getComputedStyle ( a , k ) ) ? c [ b ] || c . getPropertyValue ( b ) : "" } function vb ( a , b ) { return ub ( a , b ) || ( a . currentStyle ? a . currentStyle [ b ] : k ) || a . style && a . style [ b ] }
function wb ( a ) { for ( var b = D ( a ) , c = vb ( a , "position" ) , d = "fixed" == c || "absolute" == c , a = a . parentNode ; a && a != b ; a = a . parentNode ) if ( c = vb ( a , "position" ) , d = d && "static" == c && a != b . documentElement && a != b . body , ! d && ( a . scrollWidth > a . clientWidth || a . scrollHeight > a . clientHeight || "fixed" == c || "absolute" == c || "relative" == c ) ) return a ; return k }
function xb ( a ) { var b = new B ; if ( 1 == a . nodeType ) if ( a . getBoundingClientRect ) a = a . getBoundingClientRect ( ) , b . x = a . left , b . y = a . top ; else { var c = mb ( Wa ( a ) ) ; var d , e = D ( a ) , f = vb ( a , "position" ) , j = e . getBoxObjectFor && ! a . getBoundingClientRect && "absolute" == f && ( d = e . getBoxObjectFor ( a ) ) && ( 0 > d . screenX || 0 > d . screenY ) , f = new B ( 0 , 0 ) , m = ( e ? 9 == e . nodeType ? e : D ( e ) : document ) . documentElement ; if ( a != m ) if ( a . getBoundingClientRect ) d = a . getBoundingClientRect ( ) , a = mb ( Wa ( e ) ) , f . x = d . left + a . x , f . y = d . top + a . y ; else if ( e . getBoxObjectFor && ! j ) d = e . getBoxObjectFor ( a ) ,
a = e . getBoxObjectFor ( m ) , f . x = d . screenX - a . screenX , f . y = d . screenY - a . screenY ; else { d = a ; do f . x += d . offsetLeft , f . y += d . offsetTop , d != a && ( f . x += d . clientLeft || 0 , f . y += d . clientTop || 0 ) , d = d . offsetParent ; while ( d && d != a ) ; for ( d = a ; ( d = wb ( d ) ) && d != e . body && d != m ; ) f . x -= d . scrollLeft , f . y -= d . scrollTop } b . x = f . x - c . x ; b . y = f . y - c . y } else c = u ( a . ta ) , d = a , a . targetTouches ? d = a . targetTouches [ 0 ] : c && a . ta ( ) . targetTouches && ( d = a . ta ( ) . targetTouches [ 0 ] ) , b . x = d . clientX , b . y = d . clientY ; return b }
function yb ( a ) { var b = a . offsetWidth , c = a . offsetHeight ; return ! s ( b ) && a . getBoundingClientRect ? ( a = a . getBoundingClientRect ( ) , new Va ( a . right - a . left , a . bottom - a . top ) ) : new Va ( b , c ) } ; function M ( a , b ) { return ! ! a && 1 == a . nodeType && ( ! b || a . tagName . toUpperCase ( ) == b ) } var zb = { "class" : "className" , readonly : "readOnly" } , Ab = [ "checked" , "disabled" , "draggable" , "hidden" ] ; function Bb ( a , b ) { var c = zb [ b ] || b , d = a [ c ] ; if ( ! s ( d ) && 0 <= A ( Ab , c ) ) return l ; if ( c = "value" == b ) if ( c = M ( a , "OPTION" ) ) { var e ; c = b . toLowerCase ( ) ; if ( a . hasAttribute ) e = a . hasAttribute ( c ) ; else try { e = a . attributes [ c ] . specified } catch ( f ) { e = l } c = ! e } c && ( d = [ ] , kb ( a , d , l ) , d = d . join ( "" ) ) ; return d }
var Cb = "async,autofocus,autoplay,checked,compact,complete,controls,declare,defaultchecked,defaultselected,defer,disabled,draggable,ended,formnovalidate,hidden,indeterminate,iscontenteditable,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,paused,pubdate,readonly,required,reversed,scoped,seamless,seeking,selected,spellcheck,truespeed,willvalidate" . split ( "," ) , Db = "BUTTON,INPUT,OPTGROUP,OPTION,SELECT,TEXTAREA" . split ( "," ) ;
function Eb ( a ) { var b = a . tagName . toUpperCase ( ) ; return ! ( 0 <= A ( Db , b ) ) ? i : Bb ( a , "disabled" ) ? l : a . parentNode && 1 == a . parentNode . nodeType && "OPTGROUP" == b || "OPTION" == b ? Eb ( a . parentNode ) : i } var Fb = "text,search,tel,url,email,password,number" . split ( "," ) ; function Gb ( a ) { return M ( a , "TEXTAREA" ) ? i : M ( a , "INPUT" ) ? 0 <= A ( Fb , a . type . toLowerCase ( ) ) : Hb ( a ) ? i : l }
function Hb ( a ) { function b ( a ) { return "inherit" == a . contentEditable ? ( a = Ib ( a ) ) ? b ( a ) : l : "true" == a . contentEditable } return ! s ( a . contentEditable ) ? l : s ( a . isContentEditable ) ? a . isContentEditable : b ( a ) } function Ib ( a ) { for ( a = a . parentNode ; a && 1 != a . nodeType && 9 != a . nodeType && 11 != a . nodeType ; ) a = a . parentNode ; return M ( a ) ? a : k } function Jb ( a , b ) { b = ra ( b ) ; return ub ( a , b ) || Kb ( a , b ) }
function Kb ( a , b ) { var c = a . currentStyle || a . style , d = c [ b ] ; ! s ( d ) && u ( c . getPropertyValue ) && ( d = c . getPropertyValue ( b ) ) ; return "inherit" != d ? s ( d ) ? d : k : ( c = Ib ( a ) ) ? Kb ( c , b ) : k } function Lb ( a ) { if ( u ( a . getBBox ) ) try { var b = a . getBBox ( ) ; if ( b ) return b } catch ( c ) { } if ( "none" != vb ( a , "display" ) ) a = yb ( a ) ; else { var b = a . style , d = b . display , e = b . visibility , f = b . position ; b . visibility = "hidden" ; b . position = "absolute" ; b . display = "inline" ; a = yb ( a ) ; b . display = d ; b . position = f ; b . visibility = e } return a }
function N ( a , b ) { function c ( a ) { if ( "none" == Jb ( a , "display" ) ) return l ; a = Ib ( a ) ; return ! a || c ( a ) } function d ( a ) { var b = Lb ( a ) ; return 0 < b . height && 0 < b . width ? i : Na ( a . childNodes , function ( a ) { return a . nodeType == C || M ( a ) && d ( a ) } ) } function e ( a ) { var b = Ib ( a ) ; if ( b && "hidden" == Jb ( b , "overflow" ) ) { var c = Lb ( b ) , d = xb ( b ) , a = xb ( a ) ; return d . x + c . width < a . x || d . y + c . height < a . y ? l : e ( b ) } return i } M ( a ) || g ( Error ( "Argument to isShown must be of type Element" ) ) ; if ( M ( a , "OPTION" ) || M ( a , "OPTGROUP" ) ) { var f = lb ( a , function ( a ) { return M ( a , "SELECT" ) } ) ; return ! ! f &&
N ( f , i ) } if ( M ( a , "MAP" ) ) { if ( ! a . name ) return l ; f = D ( a ) ; f = f . evaluate ? H . Ka ( '/descendant::*[@usemap = "#' + a . name + '"]' , f ) : gb ( f , function ( b ) { var c ; if ( c = M ( b ) ) 8 == b . nodeType ? b = k : ( c = "usemap" , "style" == c ? ( b = ha ( b . style . cssText ) . toLowerCase ( ) , b = ";" == b . charAt ( b . length - 1 ) ? b : b + ";" ) : ( b = b . getAttributeNode ( c ) , b = ! b ? k : 0 <= A ( Cb , c ) ? "true" : b . specified ? b . value : k ) ) , c = b == "#" + a . name ; return c } ) ; return ! ! f && N ( f , b ) } return M ( a , "AREA" ) ? ( f = lb ( a , function ( a ) { return M ( a , "MAP" ) } ) , ! ! f && N ( f , b ) ) : M ( a , "INPUT" ) && "hidden" == a . type . toLowerCase ( ) || M ( a ,
"NOSCRIPT" ) || "hidden" == Jb ( a , "visibility" ) || ! c ( a ) || ! b && 0 == Mb ( a ) || ! d ( a ) || ! e ( a ) ? l : i } function Mb ( a ) { var b = 1 , c = Jb ( a , "opacity" ) ; c && ( b = Number ( c ) ) ; ( a = Ib ( a ) ) && ( b *= Mb ( a ) ) ; return b } ; function P ( ) { this . v = Ca . document . documentElement ; this . xa = k ; var a = D ( this . v ) . activeElement ; a && Nb ( this , a ) } P . prototype . q = n ( "v" ) ; function Nb ( a , b ) { a . v = b ; a . xa = M ( b , "OPTION" ) ? lb ( b , function ( a ) { return M ( a , "SELECT" ) } ) : k }
function Ob ( a , b , c , d , e , f ) { function j ( a , c ) { var d = { identifier : a , screenX : c . x , screenY : c . y , clientX : c . x , clientY : c . y , pageX : c . x , pageY : c . y } ; m . changedTouches . push ( d ) ; if ( b == Pb || b == Qb ) m . touches . push ( d ) , m . targetTouches . push ( d ) } var m = { touches : [ ] , targetTouches : [ ] , changedTouches : [ ] , altKey : l , ctrlKey : l , shiftKey : l , metaKey : l , relatedTarget : k , scale : 0 , rotation : 0 } ; j ( c , d ) ; s ( e ) && j ( e , f ) ; Rb ( a . v , b , m ) } rb && rb && ( rb ? qb ( 4 ) : oa ( nb , 4 ) ) ; rb && ( rb ? qb ( 4 ) : oa ( nb , 4 ) ) ; function Q ( a , b , c ) { this . L = a ; this . U = b ; this . V = c } Q . prototype . create = function ( a ) { a = D ( a ) . createEvent ( "HTMLEvents" ) ; a . initEvent ( this . L , this . U , this . V ) ; return a } ; Q . prototype . toString = n ( "L" ) ; function R ( a , b , c ) { Q . call ( this , a , b , c ) } x ( R , Q ) ;
R . prototype . create = function ( a , b ) { var c = D ( a ) , d = E ( c ) , c = c . createEvent ( "MouseEvents" ) , e = 1 ; this == Sb && ( e = b . wheelDelta / - 40 ) ; this == Tb && ( e = b . wheelDelta ) ; c . initMouseEvent ( this . L , this . U , this . V , d , e , 0 , 0 , b . clientX , b . clientY , b . ctrlKey , b . altKey , b . shiftKey , b . metaKey , b . button , b . relatedTarget ) ; return c } ; function Ub ( a , b , c ) { Q . call ( this , a , b , c ) } x ( Ub , Q ) ;
Ub . prototype . create = function ( a , b ) { var c = D ( a ) , d = E ( c ) , e = b . charCode ? 0 : b . keyCode , c = c . createEvent ( "KeyboardEvent" ) ; c . initKeyEvent ( this . L , this . U , this . V , d , b . ctrlKey , b . altKey , b . shiftKey , b . metaKey , e , b . charCode ) ; this . L == Vb && b . preventDefault && c . preventDefault ( ) ; return c } ; function Wb ( a , b , c ) { Q . call ( this , a , b , c ) } x ( Wb , Q ) ;
Wb . prototype . create = function ( a , b ) { function c ( b ) { var c = Ma ( b , function ( b ) { return { identifier : b . identifier , screenX : b . screenX , screenY : b . screenY , clientX : b . clientX , clientY : b . clientY , pageX : b . pageX , pageY : b . pageY , target : a } } ) ; c . item = function ( a ) { return c [ a ] } ; return c } var d = D ( a ) , e = E ( d ) , f = c ( b . changedTouches ) , j = b . touches == b . changedTouches ? f : c ( b . touches ) , m = b . targetTouches == b . changedTouches ? f : c ( b . targetTouches ) , d = d . createEvent ( "MouseEvents" ) ; d . initMouseEvent ( this . L , this . U , this . V , e , 1 , 0 , 0 , b . clientX , b . clientY , b . ctrlKey ,
b . altKey , b . shiftKey , b . metaKey , 0 , b . relatedTarget ) ; d . touches = j ; d . targetTouches = m ; d . changedTouches = f ; d . scale = b . scale ; d . rotation = b . rotation ; return d } ;
var Xb = new R ( "click" , i , i ) , Yb = new R ( "contextmenu" , i , i ) , Zb = new R ( "dblclick" , i , i ) , $b = new R ( "mousedown" , i , i ) , ac = new R ( "mousemove" , i , l ) , bc = new R ( "mouseout" , i , i ) , cc = new R ( "mouseover" , i , i ) , dc = new R ( "mouseup" , i , i ) , Sb = new R ( "DOMMouseScroll" , i , i ) , Tb = new R ( "MozMousePixelScroll" , i , i ) , ec = new Ub ( "keydown" , i , i ) , Vb = new Ub ( "keypress" , i , i ) , fc = new Ub ( "keyup" , i , i ) , Qb = new Wb ( "touchmove" , i , i ) , Pb = new Wb ( "touchstart" , i , i ) ; function Rb ( a , b , c ) { b = b . create ( a , c ) ; "isTrusted" in b || ( b . Oa = l ) ; return a . dispatchEvent ( b ) } ; function gc ( a , b ) { hc ( a ) && ( a . selectionStart = b , a . selectionEnd = b ) } function hc ( a ) { try { return "number" == typeof a . selectionStart } catch ( b ) { return l } } ; function ic ( a ) { if ( "function" == typeof a . N ) return a . N ( ) ; if ( t ( a ) ) return a . split ( "" ) ; if ( ba ( a ) ) { for ( var b = [ ] , c = a . length , d = 0 ; d < c ; d ++ ) b . push ( a [ d ] ) ; return b } return Ea ( a ) } ; function jc ( a , b ) { this . l = { } ; this . ja = { } ; var c = arguments . length ; if ( 1 < c ) { c % 2 && g ( Error ( "Uneven number of arguments" ) ) ; for ( var d = 0 ; d < c ; d += 2 ) this . set ( arguments [ d ] , arguments [ d + 1 ] ) } else a && this . ca ( a ) } p = jc . prototype ; p . ba = 0 ; p . N = function ( ) { var a = [ ] , b ; for ( b in this . l ) ":" == b . charAt ( 0 ) && a . push ( this . l [ b ] ) ; return a } ; function kc ( a ) { var b = [ ] , c ; for ( c in a . l ) if ( ":" == c . charAt ( 0 ) ) { var d = c . substring ( 1 ) ; b . push ( a . ja [ c ] ? Number ( d ) : d ) } return b }
p . remove = function ( a ) { var a = ":" + a , b = this . l , c ; ( c = a in b ) && delete b [ a ] ; return c ? ( delete this . ja [ a ] , this . ba ++ , i ) : l } ; p . set = function ( a , b ) { var c = ":" + a ; c in this . l || ( this . ba ++ , "number" == typeof a && ( this . ja [ c ] = i ) ) ; this . l [ c ] = b } ; p . ca = function ( a ) { var b ; if ( a instanceof jc ) b = kc ( a ) , a = a . N ( ) ; else { b = [ ] ; var c = 0 , d ; for ( d in a ) b [ c ++ ] = d ; a = Ea ( a ) } for ( c = 0 ; c < b . length ; c ++ ) this . set ( b [ c ] , a [ c ] ) } ;
p . t = function ( a ) { var b = 0 , c = kc ( this ) , d = this . l , e = this . ba , f = this , j = new J ; j . next = function ( ) { for ( ; ; ) { e != f . ba && g ( Error ( "The map has changed since the iterator was created" ) ) ; b >= c . length && g ( I ) ; var j = c [ b ++ ] ; return a ? j : d [ ":" + j ] } } ; return j } ; function lc ( a ) { this . l = new jc ; a && this . ca ( a ) } function mc ( a ) { var b = typeof a ; return "object" == b && a || "function" == b ? "o" + ( a [ da ] || ( a [ da ] = ++ ea ) ) : b . substr ( 0 , 1 ) + a } p = lc . prototype ; p . add = function ( a ) { this . l . set ( mc ( a ) , a ) } ; p . ca = function ( a ) { for ( var a = ic ( a ) , b = a . length , c = 0 ; c < b ; c ++ ) this . add ( a [ c ] ) } ; p . remove = function ( a ) { return this . l . remove ( mc ( a ) ) } ; p . contains = function ( a ) { return ":" + mc ( a ) in this . l . l } ; p . N = function ( ) { return this . l . N ( ) } ; p . t = function ( ) { return this . l . t ( l ) } ; function nc ( ) { P . call ( this ) ; this . ga = Gb ( this . q ( ) ) && ! Bb ( this . q ( ) , "readOnly" ) ; this . ka = new lc } x ( nc , P ) ; var oc = { } ; function S ( a , b , c ) { ca ( a ) && ( a = a . c ) ; a = new pc ( a , b , c ) ; if ( b && ( ! ( b in oc ) || c ) ) oc [ b ] = { key : a , shift : l } , c && ( oc [ c ] = { key : a , shift : i } ) ; return a } function pc ( a , b , c ) { this . code = a ; this . C = b || k ; this . Ja = c || this . C } S ( 8 ) ; S ( 9 ) ; var qc = S ( 13 ) , T = S ( 16 ) , rc = S ( 17 ) , sc = S ( 18 ) ; S ( 19 ) ; S ( 20 ) ; S ( 27 ) ; S ( 32 , " " ) ; S ( 33 ) ; S ( 34 ) ; S ( 35 ) ; S ( 36 ) ; var tc = S ( 37 ) ; S ( 38 ) ; var uc = S ( 39 ) ; S ( 40 ) ; S ( 44 ) ; S ( 45 ) ; S ( 46 ) ; S ( 48 , "0" , ")" ) ; S ( 49 , "1" , "!" ) ; S ( 50 , "2" , "@" ) ;
S ( 51 , "3" , "#" ) ; S ( 52 , "4" , "$" ) ; S ( 53 , "5" , "%" ) ; S ( 54 , "6" , "^" ) ; S ( 55 , "7" , "&" ) ; S ( 56 , "8" , "*" ) ; S ( 57 , "9" , "(" ) ; S ( 65 , "a" , "A" ) ; S ( 66 , "b" , "B" ) ; S ( 67 , "c" , "C" ) ; S ( 68 , "d" , "D" ) ; S ( 69 , "e" , "E" ) ; S ( 70 , "f" , "F" ) ; S ( 71 , "g" , "G" ) ; S ( 72 , "h" , "H" ) ; S ( 73 , "i" , "I" ) ; S ( 74 , "j" , "J" ) ; S ( 75 , "k" , "K" ) ; S ( 76 , "l" , "L" ) ; S ( 77 , "m" , "M" ) ; S ( 78 , "n" , "N" ) ; S ( 79 , "o" , "O" ) ; S ( 80 , "p" , "P" ) ; S ( 81 , "q" , "Q" ) ; S ( 82 , "r" , "R" ) ; S ( 83 , "s" , "S" ) ; S ( 84 , "t" , "T" ) ; S ( 85 , "u" , "U" ) ; S ( 86 , "v" , "V" ) ; S ( 87 , "w" , "W" ) ; S ( 88 , "x" , "X" ) ; S ( 89 , "y" , "Y" ) ; S ( 90 , "z" , "Z" ) ;
var vc = S ( ta ? { c : 91 , e : 91 , opera : 219 } : sa ? { c : 224 , e : 91 , opera : 17 } : { c : 0 , e : 91 , opera : k } ) , wc = S ( ta ? { c : 92 , e : 92 , opera : 220 } : sa ? { c : 224 , e : 93 , opera : 17 } : { c : 0 , e : 92 , opera : k } ) , xc = S ( ta ? { c : 93 , e : 93 , opera : 0 } : sa ? { c : 0 , e : 0 , opera : 16 } : { c : 93 , e : k , opera : 0 } ) ; S ( { c : 96 , e : 96 , opera : 48 } , "0" ) ; S ( { c : 97 , e : 97 , opera : 49 } , "1" ) ; S ( { c : 98 , e : 98 , opera : 50 } , "2" ) ; S ( { c : 99 , e : 99 , opera : 51 } , "3" ) ; S ( { c : 100 , e : 100 , opera : 52 } , "4" ) ; S ( { c : 101 , e : 101 , opera : 53 } , "5" ) ; S ( { c : 102 , e : 102 , opera : 54 } , "6" ) ; S ( { c : 103 , e : 103 , opera : 55 } , "7" ) ; S ( { c : 104 , e : 104 , opera : 56 } , "8" ) ;
S ( { c : 105 , e : 105 , opera : 57 } , "9" ) ; S ( { c : 106 , e : 106 , opera : xa ? 56 : 42 } , "*" ) ; S ( { c : 107 , e : 107 , opera : xa ? 61 : 43 } , "+" ) ; S ( { c : 109 , e : 109 , opera : xa ? 109 : 45 } , "-" ) ; S ( { c : 110 , e : 110 , opera : xa ? 190 : 78 } , "." ) ; S ( { c : 111 , e : 111 , opera : xa ? 191 : 47 } , "/" ) ; S ( 144 ) ; S ( 112 ) ; S ( 113 ) ; S ( 114 ) ; S ( 115 ) ; S ( 116 ) ; S ( 117 ) ; S ( 118 ) ; S ( 119 ) ; S ( 120 ) ; S ( 121 ) ; S ( 122 ) ; S ( 123 ) ; S ( { c : 107 , e : 187 , opera : 61 } , "=" , "+" ) ; S ( { c : 109 , e : 189 , opera : 109 } , "-" , "_" ) ; S ( 188 , "," , "<" ) ; S ( 190 , "." , ">" ) ; S ( 191 , "/" , "?" ) ; S ( 192 , "`" , "~" ) ; S ( 219 , "[" , "{" ) ; S ( 220 , "\\" , "|" ) ; S ( 221 , "]" , "}" ) ;
S ( { c : 59 , e : 186 , opera : 59 } , ";" , ":" ) ; S ( 222 , "'" , '"' ) ; var yc = [ sc , rc , vc , T ] ; nc . prototype . m = function ( a ) { return this . ka . contains ( a ) } ; function zc ( a , b ) { a . m ( b ) && 0 <= A ( yc , b ) && g ( new y ( 13 , "Cannot press a modifier key that is already pressed." ) ) ; var c = b . code !== k && Ac ( a , ec , b ) ; if ( ( ! Bc ( b ) || Ac ( a , Vb , b , ! c ) ) && c && a . ga && ! b . C ) switch ( b ) { case tc : case uc : var c = a . q ( ) , d = 0 ; hc ( c ) && ( d = c . selectionStart ) ; c = d ; b == tc ? gc ( a . q ( ) , c - 1 ) : gc ( a . q ( ) , c + 1 ) } a . ka . add ( b ) }
function Bc ( a ) { if ( a . C || a == qc ) return i ; switch ( a ) { case T : case rc : case sc : return l ; case vc : case wc : case xc : return i ; default : return i } } function Cc ( a , b ) { a . m ( b ) || g ( new y ( 13 , "Cannot release a key that is not pressed." ) ) ; b . code === k || Ac ( a , fc , b ) ; a . ka . remove ( b ) }
function Ac ( a , b , c , d ) { c . code === k && g ( new y ( 13 , "Key must have a keycode to be fired." ) ) ; var e = a . m ( sc ) , f = a . m ( rc ) , j = a . m ( vc ) , m = a . m ( T ) , r = c . code ; c . C && b == Vb ? ( c . C || g ( new y ( 13 , "not a character key" ) ) , c = ( a . m ( T ) ? c . Ja : c . C ) . charCodeAt ( 0 ) ) : c = 0 ; return Rb ( a . v , b , { altKey : e , ctrlKey : f , metaKey : j , shiftKey : m , keyCode : r , charCode : c , preventDefault : ! ! d } ) }
function Dc ( a , b ) { Nb ( a , b ) ; a . ga = Gb ( b ) && ! Bb ( b , "readOnly" ) ; var c ; c = a . xa || a . v ; var d = D ( c ) . activeElement ; if ( c == d ) c = l ; else { if ( d && u ( d . blur ) ) try { d . blur ( ) } catch ( e ) { g ( e ) } u ( c . focus ) ? ( c . focus ( ) , c = i ) : c = l } a . ga && c && gc ( b , b . value . length ) } ; function Ec ( a ) { return Fc ( a || arguments . callee . caller , [ ] ) }
function Fc ( a , b ) { var c = [ ] ; if ( 0 <= A ( b , a ) ) c . push ( "[...circular reference...]" ) ; else if ( a && 50 > b . length ) { c . push ( Gc ( a ) + "(" ) ; for ( var d = a . arguments , e = 0 ; e < d . length ; e ++ ) { 0 < e && c . push ( ", " ) ; var f ; f = d [ e ] ; switch ( typeof f ) { case "object" : f = f ? "object" : "null" ; break ; case "string" : break ; case "number" : f = "" + f ; break ; case "boolean" : f = f ? "true" : "false" ; break ; case "function" : f = ( f = Gc ( f ) ) ? f : "[fn]" ; break ; default : f = typeof f } 40 < f . length && ( f = f . substr ( 0 , 40 ) + "..." ) ; c . push ( f ) } b . push ( a ) ; c . push ( ")\n" ) ; try { c . push ( Fc ( a . caller , b ) ) } catch ( j ) { c . push ( "[exception trying to get caller]\n" ) } } else a ?
c . push ( "[...long stack...]" ) : c . push ( "[end]" ) ; return c . join ( "" ) } function Gc ( a ) { if ( Hc [ a ] ) return Hc [ a ] ; a = "" + a ; if ( ! Hc [ a ] ) { var b = /function ([^\(]+)/ . exec ( a ) ; Hc [ a ] = b ? b [ 1 ] : "[Anonymous]" } return Hc [ a ] } var Hc = { } ; function Ic ( a , b , c , d , e ) { this . reset ( a , b , c , d , e ) } Ic . prototype . sa = k ; Ic . prototype . ra = k ; var Jc = 0 ; Ic . prototype . reset = function ( a , b , c , d , e ) { "number" == typeof e || Jc ++ ; d || fa ( ) ; this . P = a ; this . Ha = b ; delete this . sa ; delete this . ra } ; Ic . prototype . ya = function ( a ) { this . P = a } ; function U ( a ) { this . Ia = a } U . prototype . Z = k ; U . prototype . P = k ; U . prototype . da = k ; U . prototype . va = k ; function Kc ( a , b ) { this . name = a ; this . value = b } Kc . prototype . toString = n ( "name" ) ; var Lc = new Kc ( "WARNING" , 900 ) , Mc = new Kc ( "CONFIG" , 700 ) ; U . prototype . getParent = n ( "Z" ) ; U . prototype . ya = function ( a ) { this . P = a } ; function Nc ( a ) { if ( a . P ) return a . P ; if ( a . Z ) return Nc ( a . Z ) ; Ja ( "Root logger has no level set." ) ; return k }
U . prototype . log = function ( a , b , c ) { if ( a . value >= Nc ( this ) . value ) { a = this . Ea ( a , b , c ) ; b = "log:" + a . Ha ; q . console && ( q . console . timeStamp ? q . console . timeStamp ( b ) : q . console . markTimeline && q . console . markTimeline ( b ) ) ; q . msWriteProfilerMark && q . msWriteProfilerMark ( b ) ; for ( b = this ; b ; ) { var c = b , d = a ; if ( c . va ) for ( var e = 0 , f = h ; f = c . va [ e ] ; e ++ ) f ( d ) ; b = b . getParent ( ) } } } ;
U . prototype . Ea = function ( a , b , c ) { var d = new Ic ( a , "" + b , this . Ia ) ; if ( c ) { d . sa = c ; var e ; var f = arguments . callee . caller ; try { var j ; var m ; c : { for ( var r = [ "window" , "location" , "href" ] , O = q , G ; G = r . shift ( ) ; ) if ( O [ G ] != k ) O = O [ G ] ; else { m = k ; break c } m = O } if ( t ( c ) ) j = { message : c , name : "Unknown error" , lineNumber : "Not available" , fileName : m , stack : "Not available" } ; else { var v , w , r = l ; try { v = c . lineNumber || c . Pa || "Not available" } catch ( Ed ) { v = "Not available" , r = i } try { w = c . fileName || c . filename || c . sourceURL || m } catch ( Fd ) { w = "Not available" , r = i } j = r ||
! c . lineNumber || ! c . fileName || ! c . stack ? { message : c . message , name : c . name , lineNumber : v , fileName : w , stack : c . stack || "Not available" } : c } e = "Message: " + ia ( j . message ) + '\nUrl: <a href="view-source:' + j . fileName + '" target="_new">' + j . fileName + "</a>\nLine: " + j . lineNumber + "\n\nBrowser stack:\n" + ia ( j . stack + "-> " ) + "[end]\n\nJS stack traversal:\n" + ia ( Ec ( f ) + "-> " ) } catch ( Cd ) { e = "Exception trying to expose exception! You win, we lose. " + Cd } d . ra = e } return d } ; var Oc = { } , Pc = k ;
function Qc ( a ) { Pc || ( Pc = new U ( "" ) , Oc [ "" ] = Pc , Pc . ya ( Mc ) ) ; var b ; if ( ! ( b = Oc [ a ] ) ) { b = new U ( a ) ; var c = a . lastIndexOf ( "." ) , d = a . substr ( c + 1 ) , c = Qc ( a . substr ( 0 , c ) ) ; c . da || ( c . da = { } ) ; c . da [ d ] = b ; b . Z = c ; Oc [ a ] = b } return b } ; function Rc ( ) { } x ( Rc , function ( ) { } ) ; Qc ( "goog.dom.SavedRange" ) ; x ( function ( a ) { this . La = "goog_" + pa ++ ; this . Da = "goog_" + pa ++ ; this . pa = Wa ( a . ha ( ) ) ; a . T ( this . pa . fa ( "SPAN" , { id : this . La } ) , this . pa . fa ( "SPAN" , { id : this . Da } ) ) } , Rc ) ; function V ( ) { } function Sc ( a ) { if ( a . getSelection ) return a . getSelection ( ) ; var a = a . document , b = a . selection ; if ( b ) { try { var c = b . createRange ( ) ; if ( c . parentElement ) { if ( c . parentElement ( ) . document != a ) return k } else if ( ! c . length || c . item ( 0 ) . document != a ) return k } catch ( d ) { return k } return b } return k } function Tc ( a ) { for ( var b = [ ] , c = 0 , d = a . G ( ) ; c < d ; c ++ ) b . push ( a . B ( c ) ) ; return b } V . prototype . H = o ( l ) ; V . prototype . ha = function ( ) { return D ( this . b ( ) ) } ; V . prototype . ua = function ( ) { return E ( this . ha ( ) ) } ;
V . prototype . containsNode = function ( a , b ) { return this . z ( Uc ( Vc ( a ) , h ) , b ) } ; function W ( a , b ) { K . call ( this , a , b , i ) } x ( W , K ) ; function Wc ( ) { } x ( Wc , V ) ; Wc . prototype . z = function ( a , b ) { var c = Tc ( this ) , d = Tc ( a ) ; return ( b ? Na : Oa ) ( d , function ( a ) { return Na ( c , function ( c ) { return c . z ( a , b ) } ) } ) } ; Wc . prototype . insertNode = function ( a , b ) { if ( b ) { var c = this . b ( ) ; c . parentNode && c . parentNode . insertBefore ( a , c ) } else c = this . g ( ) , c . parentNode && c . parentNode . insertBefore ( a , c . nextSibling ) ; return a } ; Wc . prototype . T = function ( a , b ) { this . insertNode ( a , i ) ; this . insertNode ( b , l ) } ; function Xc ( a , b , c , d , e ) { var f ; if ( a && ( this . f = a , this . i = b , this . d = c , this . h = d , 1 == a . nodeType && "BR" != a . tagName && ( a = a . childNodes , ( b = a [ b ] ) ? ( this . f = b , this . i = 0 ) : ( a . length && ( this . f = z ( a ) ) , f = i ) ) , 1 == c . nodeType ) ) ( this . d = c . childNodes [ d ] ) ? this . h = 0 : this . d = c ; W . call ( this , e ? this . d : this . f , e ) ; if ( f ) try { this . next ( ) } catch ( j ) { j != I && g ( j ) } } x ( Xc , W ) ; p = Xc . prototype ; p . f = k ; p . d = k ; p . i = 0 ; p . h = 0 ; p . b = n ( "f" ) ; p . g = n ( "d" ) ; p . O = function ( ) { return this . ma && this . r == this . d && ( ! this . h || 1 != this . s ) } ; p . next = function ( ) { this . O ( ) && g ( I ) ; return Xc . aa . next . call ( this ) } ; "ScriptEngine" in q && "JScript" == q . ScriptEngine ( ) && ( q . ScriptEngineMajorVersion ( ) , q . ScriptEngineMinorVersion ( ) , q . ScriptEngineBuildVersion ( ) ) ; function Yc ( ) { } Yc . prototype . z = function ( a , b ) { var c = b && ! a . isCollapsed ( ) , d = a . a ; try { return c ? 0 <= this . n ( d , 0 , 1 ) && 0 >= this . n ( d , 1 , 0 ) : 0 <= this . n ( d , 0 , 0 ) && 0 >= this . n ( d , 1 , 1 ) } catch ( e ) { g ( e ) } } ; Yc . prototype . containsNode = function ( a , b ) { return this . z ( Vc ( a ) , b ) } ; Yc . prototype . t = function ( ) { return new Xc ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; function Zc ( a ) { this . a = a } x ( Zc , Yc ) ; p = Zc . prototype ; p . F = function ( ) { return this . a . commonAncestorContainer } ; p . b = function ( ) { return this . a . startContainer } ; p . j = function ( ) { return this . a . startOffset } ; p . g = function ( ) { return this . a . endContainer } ; p . k = function ( ) { return this . a . endOffset } ; p . n = function ( a , b , c ) { return this . a . compareBoundaryPoints ( 1 == c ? 1 == b ? q . Range . START _TO _START : q . Range . START _TO _END : 1 == b ? q . Range . END _TO _START : q . Range . END _TO _END , a ) } ; p . isCollapsed = function ( ) { return this . a . collapsed } ;
p . select = function ( a ) { this . $ ( E ( D ( this . b ( ) ) ) . getSelection ( ) , a ) } ; p . $ = function ( a ) { a . removeAllRanges ( ) ; a . addRange ( this . a ) } ; p . insertNode = function ( a , b ) { var c = this . a . cloneRange ( ) ; c . collapse ( b ) ; c . insertNode ( a ) ; c . detach ( ) ; return a } ;
p . T = function ( a , b ) { var c = E ( D ( this . b ( ) ) ) ; if ( c = ( c = Sc ( c || window ) ) && $c ( c ) ) var d = c . b ( ) , e = c . g ( ) , f = c . j ( ) , j = c . k ( ) ; var m = this . a . cloneRange ( ) , r = this . a . cloneRange ( ) ; m . collapse ( l ) ; r . collapse ( i ) ; m . insertNode ( b ) ; r . insertNode ( a ) ; m . detach ( ) ; r . detach ( ) ; if ( c ) { if ( d . nodeType == C ) for ( ; f > d . length ; ) { f -= d . length ; do d = d . nextSibling ; while ( d == a || d == b ) } if ( e . nodeType == C ) for ( ; j > e . length ; ) { j -= e . length ; do e = e . nextSibling ; while ( e == a || e == b ) } c = new ad ; c . I = bd ( d , f , e , j ) ; "BR" == d . tagName && ( m = d . parentNode , f = A ( m . childNodes , d ) , d = m ) ; "BR" == e . tagName &&
( m = e . parentNode , j = A ( m . childNodes , e ) , e = m ) ; c . I ? ( c . f = e , c . i = j , c . d = d , c . h = f ) : ( c . f = d , c . i = f , c . d = e , c . h = j ) ; c . select ( ) } } ; p . collapse = function ( a ) { this . a . collapse ( a ) } ; function cd ( a ) { this . a = a } x ( cd , Zc ) ; function Vc ( a ) { var b = D ( a ) . createRange ( ) ; if ( a . nodeType == C ) b . setStart ( a , 0 ) , b . setEnd ( a , a . length ) ; else if ( X ( a ) ) { for ( var c , d = a ; ( c = d . firstChild ) && X ( c ) ; ) d = c ; b . setStart ( d , 0 ) ; for ( d = a ; ( c = d . lastChild ) && X ( c ) ; ) d = c ; b . setEnd ( d , 1 == d . nodeType ? d . childNodes . length : d . length ) } else c = a . parentNode , a = A ( c . childNodes , a ) , b . setStart ( c , a ) , b . setEnd ( c , a + 1 ) ; return new cd ( b ) }
cd . prototype . $ = function ( a , b ) { var c = b ? this . g ( ) : this . b ( ) , d = b ? this . k ( ) : this . j ( ) , e = b ? this . b ( ) : this . g ( ) , f = b ? this . j ( ) : this . k ( ) ; a . collapse ( c , d ) ; ( c != e || d != f ) && a . extend ( e , f ) } ; function dd ( a ) { this . a = a } x ( dd , Yc ) ; Qc ( "goog.dom.browserrange.IeRange" ) ; function ed ( a ) { var b = D ( a ) . body . createTextRange ( ) ; if ( 1 == a . nodeType ) b . moveToElementText ( a ) , X ( a ) && ! a . childNodes . length && b . collapse ( l ) ; else { for ( var c = 0 , d = a ; d = d . previousSibling ; ) { var e = d . nodeType ; if ( e == C ) c += d . length ; else if ( 1 == e ) { b . moveToElementText ( d ) ; break } } d || b . moveToElementText ( a . parentNode ) ; b . collapse ( ! d ) ; c && b . move ( "character" , c ) ; b . moveEnd ( "character" , a . length ) } return b } p = dd . prototype ; p . Q = k ; p . f = k ; p . d = k ; p . i = - 1 ; p . h = - 1 ;
p . u = function ( ) { this . Q = this . f = this . d = k ; this . i = this . h = - 1 } ;
p . F = function ( ) { if ( ! this . Q ) { var a = this . a . text , b = this . a . duplicate ( ) , c = a . replace ( / +$/ , "" ) ; ( c = a . length - c . length ) && b . moveEnd ( "character" , - c ) ; c = b . parentElement ( ) ; b = b . htmlText . replace ( /(\r\n|\r|\n)+/g , " " ) . length ; if ( this . isCollapsed ( ) && 0 < b ) return this . Q = c ; for ( ; b > c . outerHTML . replace ( /(\r\n|\r|\n)+/g , " " ) . length ; ) c = c . parentNode ; for ( ; 1 == c . childNodes . length && c . innerText == ( c . firstChild . nodeType == C ? c . firstChild . nodeValue : c . firstChild . innerText ) && X ( c . firstChild ) ; ) c = c . firstChild ; 0 == a . length && ( c = fd ( this , c ) ) ; this . Q =
c } return this . Q } ; function fd ( a , b ) { for ( var c = b . childNodes , d = 0 , e = c . length ; d < e ; d ++ ) { var f = c [ d ] ; if ( X ( f ) ) { var j = ed ( f ) , m = j . htmlText != f . outerHTML ; if ( a . isCollapsed ( ) && m ? 0 <= a . n ( j , 1 , 1 ) && 0 >= a . n ( j , 1 , 0 ) : a . a . inRange ( j ) ) return fd ( a , f ) } } return b } p . b = function ( ) { this . f || ( this . f = gd ( this , 1 ) , this . isCollapsed ( ) && ( this . d = this . f ) ) ; return this . f } ; p . j = function ( ) { 0 > this . i && ( this . i = hd ( this , 1 ) , this . isCollapsed ( ) && ( this . h = this . i ) ) ; return this . i } ;
p . g = function ( ) { if ( this . isCollapsed ( ) ) return this . b ( ) ; this . d || ( this . d = gd ( this , 0 ) ) ; return this . d } ; p . k = function ( ) { if ( this . isCollapsed ( ) ) return this . j ( ) ; 0 > this . h && ( this . h = hd ( this , 0 ) , this . isCollapsed ( ) && ( this . i = this . h ) ) ; return this . h } ; p . n = function ( a , b , c ) { return this . a . compareEndPoints ( ( 1 == b ? "Start" : "End" ) + "To" + ( 1 == c ? "Start" : "End" ) , a ) } ;
function gd ( a , b , c ) { c = c || a . F ( ) ; if ( ! c || ! c . firstChild ) return c ; for ( var d = 1 == b , e = 0 , f = c . childNodes . length ; e < f ; e ++ ) { var j = d ? e : f - e - 1 , m = c . childNodes [ j ] , r ; try { r = Vc ( m ) } catch ( O ) { continue } var G = r . a ; if ( a . isCollapsed ( ) ) if ( X ( m ) ) { if ( r . z ( a ) ) return gd ( a , b , m ) } else { if ( 0 == a . n ( G , 1 , 1 ) ) { a . i = a . h = j ; break } } else { if ( a . z ( r ) ) { if ( ! X ( m ) ) { d ? a . i = j : a . h = j + 1 ; break } return gd ( a , b , m ) } if ( 0 > a . n ( G , 1 , 0 ) && 0 < a . n ( G , 0 , 1 ) ) return gd ( a , b , m ) } } return c }
function hd ( a , b ) { var c = 1 == b , d = c ? a . b ( ) : a . g ( ) ; if ( 1 == d . nodeType ) { for ( var d = d . childNodes , e = d . length , f = c ? 1 : - 1 , j = c ? 0 : e - 1 ; 0 <= j && j < e ; j += f ) { var m = d [ j ] ; if ( ! X ( m ) && 0 == a . a . compareEndPoints ( ( 1 == b ? "Start" : "End" ) + "To" + ( 1 == b ? "Start" : "End" ) , Vc ( m ) . a ) ) return c ? j : j + 1 } return - 1 == j ? 0 : j } e = a . a . duplicate ( ) ; f = ed ( d ) ; e . setEndPoint ( c ? "EndToEnd" : "StartToStart" , f ) ; e = e . text . length ; return c ? d . length - e : e } p . isCollapsed = function ( ) { return 0 == this . a . compareEndPoints ( "StartToEnd" , this . a ) } ; p . select = function ( ) { this . a . select ( ) } ;
function id ( a , b , c ) { var d ; d = d || Wa ( a . parentElement ( ) ) ; var e ; 1 != b . nodeType && ( e = i , b = d . fa ( "DIV" , k , b ) ) ; a . collapse ( c ) ; d = d || Wa ( a . parentElement ( ) ) ; var f = c = b . id ; c || ( c = b . id = "goog_" + pa ++ ) ; a . pasteHTML ( b . outerHTML ) ; ( b = d . q ( c ) ) && ( f || b . removeAttribute ( "id" ) ) ; if ( e ) { a = b . firstChild ; e = b ; if ( ( d = e . parentNode ) && 11 != d . nodeType ) if ( e . removeNode ) e . removeNode ( l ) ; else { for ( ; b = e . firstChild ; ) d . insertBefore ( b , e ) ; bb ( e ) } b = a } return b } p . insertNode = function ( a , b ) { var c = id ( this . a . duplicate ( ) , a , b ) ; this . u ( ) ; return c } ;
p . T = function ( a , b ) { var c = this . a . duplicate ( ) , d = this . a . duplicate ( ) ; id ( c , a , i ) ; id ( d , b , l ) ; this . u ( ) } ; p . collapse = function ( a ) { this . a . collapse ( a ) ; a ? ( this . d = this . f , this . h = this . i ) : ( this . f = this . d , this . i = this . h ) } ; function jd ( a ) { this . a = a } x ( jd , Zc ) ; jd . prototype . $ = function ( a ) { a . collapse ( this . b ( ) , this . j ( ) ) ; ( this . g ( ) != this . b ( ) || this . k ( ) != this . j ( ) ) && a . extend ( this . g ( ) , this . k ( ) ) ; 0 == a . rangeCount && a . addRange ( this . a ) } ; function kd ( a ) { this . a = a } x ( kd , Zc ) ; kd . prototype . n = function ( a , b , c ) { return Ba [ "528" ] || ( Ba [ "528" ] = 0 <= oa ( ya , "528" ) ) ? kd . aa . n . call ( this , a , b , c ) : this . a . compareBoundaryPoints ( 1 == c ? 1 == b ? q . Range . START _TO _START : q . Range . END _TO _START : 1 == b ? q . Range . START _TO _END : q . Range . END _TO _END , a ) } ; kd . prototype . $ = function ( a , b ) { a . removeAllRanges ( ) ; b ? a . setBaseAndExtent ( this . g ( ) , this . k ( ) , this . b ( ) , this . j ( ) ) : a . setBaseAndExtent ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; function X ( a ) { var b ; a : if ( 1 != a . nodeType ) b = l ; else { switch ( a . tagName ) { case "APPLET" : case "AREA" : case "BASE" : case "BR" : case "COL" : case "FRAME" : case "HR" : case "IMG" : case "INPUT" : case "IFRAME" : case "ISINDEX" : case "LINK" : case "NOFRAMES" : case "NOSCRIPT" : case "META" : case "OBJECT" : case "PARAM" : case "SCRIPT" : case "STYLE" : b = l ; break a } b = i } return b || a . nodeType == C } ; function ad ( ) { } x ( ad , V ) ; function Uc ( a , b ) { var c = new ad ; c . M = a ; c . I = ! ! b ; return c } p = ad . prototype ; p . M = k ; p . f = k ; p . i = k ; p . d = k ; p . h = k ; p . I = l ; p . ia = o ( "text" ) ; p . Y = function ( ) { return Y ( this ) . a } ; p . u = function ( ) { this . f = this . i = this . d = this . h = k } ; p . G = o ( 1 ) ; p . B = function ( ) { return this } ; function Y ( a ) { var b ; if ( ! ( b = a . M ) ) { b = a . b ( ) ; var c = a . j ( ) , d = a . g ( ) , e = a . k ( ) , f = D ( b ) . createRange ( ) ; f . setStart ( b , c ) ; f . setEnd ( d , e ) ; b = a . M = new cd ( f ) } return b } p . F = function ( ) { return Y ( this ) . F ( ) } ; p . b = function ( ) { return this . f || ( this . f = Y ( this ) . b ( ) ) } ;
p . j = function ( ) { return this . i != k ? this . i : this . i = Y ( this ) . j ( ) } ; p . g = function ( ) { return this . d || ( this . d = Y ( this ) . g ( ) ) } ; p . k = function ( ) { return this . h != k ? this . h : this . h = Y ( this ) . k ( ) } ; p . H = n ( "I" ) ; p . z = function ( a , b ) { var c = a . ia ( ) ; return "text" == c ? Y ( this ) . z ( Y ( a ) , b ) : "control" == c ? ( c = ld ( a ) , ( b ? Na : Oa ) ( c , function ( a ) { return this . containsNode ( a , b ) } , this ) ) : l } ; p . isCollapsed = function ( ) { return Y ( this ) . isCollapsed ( ) } ; p . t = function ( ) { return new Xc ( this . b ( ) , this . j ( ) , this . g ( ) , this . k ( ) ) } ; p . select = function ( ) { Y ( this ) . select ( this . I ) } ;
p . insertNode = function ( a , b ) { var c = Y ( this ) . insertNode ( a , b ) ; this . u ( ) ; return c } ; p . T = function ( a , b ) { Y ( this ) . T ( a , b ) ; this . u ( ) } ; p . la = function ( ) { return new md ( this ) } ; p . collapse = function ( a ) { a = this . H ( ) ? ! a : a ; this . M && this . M . collapse ( a ) ; a ? ( this . d = this . f , this . h = this . i ) : ( this . f = this . d , this . i = this . h ) ; this . I = l } ; function md ( a ) { a . H ( ) ? a . g ( ) : a . b ( ) ; a . H ( ) ? a . k ( ) : a . j ( ) ; a . H ( ) ? a . b ( ) : a . g ( ) ; a . H ( ) ? a . j ( ) : a . k ( ) } x ( md , Rc ) ; function nd ( ) { } x ( nd , Wc ) ; p = nd . prototype ; p . a = k ; p . o = k ; p . S = k ; p . u = function ( ) { this . S = this . o = k } ; p . ia = o ( "control" ) ; p . Y = function ( ) { return this . a || document . body . createControlRange ( ) } ; p . G = function ( ) { return this . a ? this . a . length : 0 } ; p . B = function ( a ) { a = this . a . item ( a ) ; return Uc ( Vc ( a ) , h ) } ; p . F = function ( ) { return fb . apply ( k , ld ( this ) ) } ; p . b = function ( ) { return od ( this ) [ 0 ] } ; p . j = o ( 0 ) ; p . g = function ( ) { var a = od ( this ) , b = z ( a ) ; return Pa ( a , function ( a ) { return F ( a , b ) } ) } ; p . k = function ( ) { return this . g ( ) . childNodes . length } ;
function ld ( a ) { if ( ! a . o && ( a . o = [ ] , a . a ) ) for ( var b = 0 ; b < a . a . length ; b ++ ) a . o . push ( a . a . item ( b ) ) ; return a . o } function od ( a ) { a . S || ( a . S = ld ( a ) . concat ( ) , a . S . sort ( function ( a , c ) { return a . sourceIndex - c . sourceIndex } ) ) ; return a . S } p . isCollapsed = function ( ) { return ! this . a || ! this . a . length } ; p . t = function ( ) { return new pd ( this ) } ; p . select = function ( ) { this . a && this . a . select ( ) } ; p . la = function ( ) { return new qd ( this ) } ; p . collapse = function ( ) { this . a = k ; this . u ( ) } ; function qd ( a ) { this . o = ld ( a ) } x ( qd , Rc ) ;
function pd ( a ) { a && ( this . o = od ( a ) , this . f = this . o . shift ( ) , this . d = z ( this . o ) || this . f ) ; W . call ( this , this . f , l ) } x ( pd , W ) ; p = pd . prototype ; p . f = k ; p . d = k ; p . o = k ; p . b = n ( "f" ) ; p . g = n ( "d" ) ; p . O = function ( ) { return ! this . depth && ! this . o . length } ; p . next = function ( ) { this . O ( ) && g ( I ) ; if ( ! this . depth ) { var a = this . o . shift ( ) ; L ( this , a , 1 , 1 ) ; return a } return pd . aa . next . call ( this ) } ; function rd ( ) { this . w = [ ] ; this . R = [ ] ; this . W = this . K = k } x ( rd , Wc ) ; p = rd . prototype ; p . Ga = Qc ( "goog.dom.MultiRange" ) ; p . u = function ( ) { this . R = [ ] ; this . W = this . K = k } ; p . ia = o ( "mutli" ) ; p . Y = function ( ) { 1 < this . w . length && this . Ga . log ( Lc , "getBrowserRangeObject called on MultiRange with more than 1 range" , h ) ; return this . w [ 0 ] } ; p . G = function ( ) { return this . w . length } ; p . B = function ( a ) { this . R [ a ] || ( this . R [ a ] = Uc ( new cd ( this . w [ a ] ) , h ) ) ; return this . R [ a ] } ;
p . F = function ( ) { if ( ! this . W ) { for ( var a = [ ] , b = 0 , c = this . G ( ) ; b < c ; b ++ ) a . push ( this . B ( b ) . F ( ) ) ; this . W = fb . apply ( k , a ) } return this . W } ; function sd ( a ) { a . K || ( a . K = Tc ( a ) , a . K . sort ( function ( a , c ) { var d = a . b ( ) , e = a . j ( ) , f = c . b ( ) , j = c . j ( ) ; return d == f && e == j ? 0 : bd ( d , e , f , j ) ? 1 : - 1 } ) ) ; return a . K } p . b = function ( ) { return sd ( this ) [ 0 ] . b ( ) } ; p . j = function ( ) { return sd ( this ) [ 0 ] . j ( ) } ; p . g = function ( ) { return z ( sd ( this ) ) . g ( ) } ; p . k = function ( ) { return z ( sd ( this ) ) . k ( ) } ; p . isCollapsed = function ( ) { return 0 == this . w . length || 1 == this . w . length && this . B ( 0 ) . isCollapsed ( ) } ;
p . t = function ( ) { return new td ( this ) } ; p . select = function ( ) { var a = Sc ( this . ua ( ) ) ; a . removeAllRanges ( ) ; for ( var b = 0 , c = this . G ( ) ; b < c ; b ++ ) a . addRange ( this . B ( b ) . Y ( ) ) } ; p . la = function ( ) { return new ud ( this ) } ; p . collapse = function ( a ) { if ( ! this . isCollapsed ( ) ) { var b = a ? this . B ( 0 ) : this . B ( this . G ( ) - 1 ) ; this . u ( ) ; b . collapse ( a ) ; this . R = [ b ] ; this . K = [ b ] ; this . w = [ b . Y ( ) ] } } ; function ud ( a ) { Ma ( Tc ( a ) , function ( a ) { return a . la ( ) } ) } x ( ud , Rc ) ; function td ( a ) { a && ( this . J = Ma ( sd ( a ) , function ( a ) { return sb ( a ) } ) ) ; W . call ( this , a ? this . b ( ) : k , l ) } x ( td , W ) ; p = td . prototype ;
p . J = k ; p . X = 0 ; p . b = function ( ) { return this . J [ 0 ] . b ( ) } ; p . g = function ( ) { return z ( this . J ) . g ( ) } ; p . O = function ( ) { return this . J [ this . X ] . O ( ) } ; p . next = function ( ) { try { var a = this . J [ this . X ] , b = a . next ( ) ; L ( this , a . r , a . s , a . depth ) ; return b } catch ( c ) { return ( c !== I || this . J . length - 1 == this . X ) && g ( c ) , this . X ++ , this . next ( ) } } ; function $c ( a ) { var b , c = l ; if ( a . createRange ) try { b = a . createRange ( ) } catch ( d ) { return k } else if ( a . rangeCount ) { if ( 1 < a . rangeCount ) { b = new rd ; for ( var c = 0 , e = a . rangeCount ; c < e ; c ++ ) b . w . push ( a . getRangeAt ( c ) ) ; return b } b = a . getRangeAt ( 0 ) ; c = bd ( a . anchorNode , a . anchorOffset , a . focusNode , a . focusOffset ) } else return k ; b && b . addElement ? ( a = new nd , a . a = b ) : a = Uc ( new cd ( b ) , c ) ; return a }
function bd ( a , b , c , d ) { if ( a == c ) return d < b ; var e ; if ( 1 == a . nodeType && b ) if ( e = a . childNodes [ b ] ) a = e , b = 0 ; else if ( F ( a , c ) ) return i ; if ( 1 == c . nodeType && d ) if ( e = c . childNodes [ d ] ) c = e , d = 0 ; else if ( F ( c , a ) ) return l ; return 0 < ( cb ( a , c ) || b - d ) } ; function vd ( ) { P . call ( this ) ; this . na = k ; this . D = new B ( 0 , 0 ) ; this . wa = l } x ( vd , P ) ; var Z = { } ; Z [ Xb ] = [ 0 , 1 , 2 , k ] ; Z [ Yb ] = [ k , k , 2 , k ] ; Z [ dc ] = [ 0 , 1 , 2 , k ] ; Z [ bc ] = [ 0 , 0 , 0 , 0 ] ; Z [ ac ] = [ 0 , 0 , 0 , 0 ] ; Z [ Zb ] = Z [ Xb ] ; Z [ $b ] = Z [ dc ] ; Z [ cc ] = Z [ bc ] ; vd . prototype . move = function ( a , b ) { var c = xb ( a ) ; this . D . x = b . x + c . x ; this . D . y = b . y + c . y ; a != this . q ( ) && ( c = this . q ( ) === Ca . document . documentElement || this . q ( ) === Ca . document . body , c = ! this . wa && c ? k : this . q ( ) , wd ( this , bc , a ) , Nb ( this , a ) , wd ( this , cc , c ) ) ; wd ( this , ac ) } ;
function wd ( a , b , c ) { a . wa = i ; var d = a . D , e ; b in Z ? ( e = Z [ b ] [ a . na === k ? 3 : a . na ] , e === k && g ( new y ( 13 , "Event does not permit the specified mouse button." ) ) ) : e = 0 ; N ( a . v , i ) && Eb ( a . v ) && ( c && ! ( cc == b || bc == b ) && g ( new y ( 12 , "Event type does not allow related target: " + b ) ) , c = { clientX : d . x , clientY : d . y , button : e , altKey : l , ctrlKey : l , shiftKey : l , metaKey : l , wheelDelta : 0 , relatedTarget : c || k } , ( a = a . v ) && Rb ( a , b , c ) ) } ; function xd ( ) { P . call ( this ) ; this . D = new B ( 0 , 0 ) ; this . ea = new B ( 0 , 0 ) } x ( xd , P ) ; xd . prototype . Aa = 0 ; xd . prototype . za = 0 ; xd . prototype . move = function ( a , b , c ) { this . m ( ) || Nb ( this , a ) ; a = xb ( a ) ; this . D . x = b . x + a . x ; this . D . y = b . y + a . y ; s ( c ) && ( this . ea . x = c . x + a . x , this . ea . y = c . y + a . y ) ; if ( this . m ( ) ) { b = Qb ; this . m ( ) || g ( new y ( 13 , "Should never fire event when touchscreen is not pressed." ) ) ; var d , e ; this . za && ( d = this . za , e = this . ea ) ; Ob ( this , b , this . Aa , this . D , d , e ) } } ; xd . prototype . m = function ( ) { return ! ! this . Aa } ; function yd ( a , b ) { this . x = a ; this . y = b } x ( yd , B ) ; yd . prototype . scale = function ( a ) { this . x *= a ; this . y *= a ; return this } ; yd . prototype . add = function ( a ) { this . x += a . x ; this . y += a . y ; return this } ; function zd ( ) { P . call ( this ) } x ( zd , P ) ; ( function ( a ) { a . Na = function ( ) { return a . Fa || ( a . Fa = new a ) } } ) ( zd ) ; function Ad ( a , b ) { N ( a , i ) || g ( new y ( 11 , "Element is not currently visible and may not be manipulated" ) ) ; ( ! N ( a , i ) || ! Eb ( a ) ) && g ( new y ( 12 , "Element is not currently interactable and may not be manipulated" ) ) ; var c = new nc ; Dc ( c , a ) ; var d = Sa ( arguments , 1 ) ; La ( d , function ( a ) { t ( a ) ? La ( a . split ( "" ) , function ( a ) { 1 != a . length && g ( new y ( 13 , "Argument not a single character: " + a ) ) ; var b = oc [ a ] ; b || ( b = a . toUpperCase ( ) , b = S ( b . charCodeAt ( 0 ) , a . toLowerCase ( ) , b ) , b = { key : b , shift : a != b . C } ) ; a = b ; a . shift && zc ( c , T ) ; zc ( c , a . key ) ; Cc ( c , a . key ) ; a . shift &&
Cc ( c , T ) } ) : 0 <= A ( yc , a ) ? c . m ( a ) ? Cc ( c , a ) : zc ( c , a ) : ( zc ( c , a ) , Cc ( c , a ) ) } ) ; La ( yc , function ( a ) { c . m ( a ) && Cc ( c , a ) } ) } var Bd = [ "_" ] , $ = q ; ! ( Bd [ 0 ] in $ ) && $ . execScript && $ . execScript ( "var " + Bd [ 0 ] ) ; for ( var Dd ; Bd . length && ( Dd = Bd . shift ( ) ) ; ) ! Bd . length && s ( Ad ) ? $ [ Dd ] = Ad : $ = $ [ Dd ] ? $ [ Dd ] : $ [ Dd ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != 'undefined' ? window . navigator : null } , arguments ) ; }