2012-05-21 04:12:37 -07: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-10 17:28:08 -07: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 12:37:34 -07:00
//getElementAttribute
var getElementAttribute = function ( ) { return function ( ) { var f = null , g = ! 1 , h = this ;
2012-04-10 17:28:08 -07: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 ) ; }
//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 ) ; }
2012-11-14 13:51:11 -08:00
2012-11-08 12:58:17 -08:00
// isElementDisplayed
2012-11-14 13:51:11 -08:00
var isElementDisplayed = function ( ) { return function ( ) { function h ( a ) { throw a ; } var i = void 0 , j = ! 0 , k = null , m = ! 1 ; function n ( a ) { return function ( ) { return this [ a ] } } function aa ( a ) { return function ( ) { return a } } var p = this ;
2012-11-08 12:58:17 -08:00
function ba ( 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" ;
2012-11-14 13:51:11 -08:00
else if ( "function" == b && "undefined" == typeof a . call ) return "object" ; return b } function r ( a ) { return a !== i } function s ( a ) { return "string" == typeof a } Math . floor ( 2147483648 * Math . random ( ) ) . toString ( 36 ) ; function u ( a , b ) { function c ( ) { } c . prototype = b . prototype ; a . fa = b . prototype ; a . prototype = new c } ; var ca = window ; function da ( a ) { Error . captureStackTrace ? Error . captureStackTrace ( this , da ) : this . stack = Error ( ) . stack || "" ; a && ( this . message = String ( a ) ) } u ( da , Error ) ; da . prototype . name = "CustomError" ; function ea ( a , b ) { for ( var c = 1 ; c < arguments . length ; c ++ ) var d = String ( arguments [ c ] ) . replace ( /\$/g , "$$$$" ) , a = a . replace ( /\%s/ , d ) ; return a } ; function fa ( a , b ) { b . unshift ( a ) ; da . call ( this , ea . apply ( k , b ) ) ; b . shift ( ) ; this . da = a } u ( fa , da ) ; fa . prototype . name = "AssertionError" ; function ga ( a , b , c , d ) { var e = "Assertion failed" ; if ( c ) var e = e + ( ": " + c ) , f = d ; else a && ( e += ": " + a , f = b ) ; h ( new fa ( "" + e , f || [ ] ) ) } function ha ( a , b , c ) { a || ga ( "" , k , b , Array . prototype . slice . call ( arguments , 2 ) ) } function ia ( a , b , c ) { var d = typeof a ; "object" == d && a != k || "function" == d || ga ( "Expected object but got %s: %s." , [ ba ( a ) , a ] , b , Array . prototype . slice . call ( arguments , 2 ) ) } ; var ja = Array . prototype ; function v ( a , b ) { for ( var c = a . length , d = s ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) e in d && b . call ( i , d [ e ] , e , a ) } function ka ( a , b ) { for ( var c = a . length , d = [ ] , e = 0 , f = s ( a ) ? a . split ( "" ) : a , g = 0 ; g < c ; g ++ ) if ( g in f ) { var l = f [ g ] ; b . call ( i , l , g , a ) && ( d [ e ++ ] = l ) } return d } function la ( a , b , c ) { if ( a . reduce ) return a . reduce ( b , c ) ; var d = c ; v ( a , function ( c , f ) { d = b . call ( i , d , c , f , a ) } ) ; return d } function ma ( a , b ) { for ( var c = a . length , d = s ( a ) ? a . split ( "" ) : a , e = 0 ; e < c ; e ++ ) if ( e in d && b . call ( i , d [ e ] , e , a ) ) return j ; return m }
function na ( a , b ) { var c ; a : if ( s ( a ) ) c = ! s ( 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 } function oa ( a ) { return ja . concat . apply ( ja , arguments ) } function pa ( a , b , c ) { ha ( a . length != k ) ; return 2 >= arguments . length ? ja . slice . call ( a , b ) : ja . slice . call ( a , b , c ) } ; var qa = { aliceblue : "#f0f8ff" , antiquewhite : "#faebd7" , aqua : "#00ffff" , aquamarine : "#7fffd4" , azure : "#f0ffff" , beige : "#f5f5dc" , bisque : "#ffe4c4" , black : "#000000" , blanchedalmond : "#ffebcd" , blue : "#0000ff" , blueviolet : "#8a2be2" , brown : "#a52a2a" , burlywood : "#deb887" , cadetblue : "#5f9ea0" , chartreuse : "#7fff00" , chocolate : "#d2691e" , coral : "#ff7f50" , cornflowerblue : "#6495ed" , cornsilk : "#fff8dc" , crimson : "#dc143c" , cyan : "#00ffff" , darkblue : "#00008b" , darkcyan : "#008b8b" , darkgoldenrod : "#b8860b" , darkgray : "#a9a9a9" , darkgreen : "#006400" ,
2012-11-08 12:58:17 -08:00
darkgrey : "#a9a9a9" , darkkhaki : "#bdb76b" , darkmagenta : "#8b008b" , darkolivegreen : "#556b2f" , darkorange : "#ff8c00" , darkorchid : "#9932cc" , darkred : "#8b0000" , darksalmon : "#e9967a" , darkseagreen : "#8fbc8f" , darkslateblue : "#483d8b" , darkslategray : "#2f4f4f" , darkslategrey : "#2f4f4f" , darkturquoise : "#00ced1" , darkviolet : "#9400d3" , deeppink : "#ff1493" , deepskyblue : "#00bfff" , dimgray : "#696969" , dimgrey : "#696969" , dodgerblue : "#1e90ff" , firebrick : "#b22222" , floralwhite : "#fffaf0" , forestgreen : "#228b22" , fuchsia : "#ff00ff" , gainsboro : "#dcdcdc" ,
ghostwhite : "#f8f8ff" , gold : "#ffd700" , goldenrod : "#daa520" , gray : "#808080" , green : "#008000" , greenyellow : "#adff2f" , grey : "#808080" , honeydew : "#f0fff0" , hotpink : "#ff69b4" , indianred : "#cd5c5c" , indigo : "#4b0082" , ivory : "#fffff0" , khaki : "#f0e68c" , lavender : "#e6e6fa" , lavenderblush : "#fff0f5" , lawngreen : "#7cfc00" , lemonchiffon : "#fffacd" , lightblue : "#add8e6" , lightcoral : "#f08080" , lightcyan : "#e0ffff" , lightgoldenrodyellow : "#fafad2" , lightgray : "#d3d3d3" , lightgreen : "#90ee90" , lightgrey : "#d3d3d3" , lightpink : "#ffb6c1" , lightsalmon : "#ffa07a" ,
lightseagreen : "#20b2aa" , lightskyblue : "#87cefa" , lightslategray : "#778899" , lightslategrey : "#778899" , lightsteelblue : "#b0c4de" , lightyellow : "#ffffe0" , lime : "#00ff00" , limegreen : "#32cd32" , linen : "#faf0e6" , magenta : "#ff00ff" , maroon : "#800000" , mediumaquamarine : "#66cdaa" , mediumblue : "#0000cd" , mediumorchid : "#ba55d3" , mediumpurple : "#9370d8" , mediumseagreen : "#3cb371" , mediumslateblue : "#7b68ee" , mediumspringgreen : "#00fa9a" , mediumturquoise : "#48d1cc" , mediumvioletred : "#c71585" , midnightblue : "#191970" , mintcream : "#f5fffa" , mistyrose : "#ffe4e1" ,
moccasin : "#ffe4b5" , navajowhite : "#ffdead" , navy : "#000080" , oldlace : "#fdf5e6" , olive : "#808000" , olivedrab : "#6b8e23" , orange : "#ffa500" , orangered : "#ff4500" , orchid : "#da70d6" , palegoldenrod : "#eee8aa" , palegreen : "#98fb98" , paleturquoise : "#afeeee" , palevioletred : "#d87093" , papayawhip : "#ffefd5" , peachpuff : "#ffdab9" , peru : "#cd853f" , pink : "#ffc0cb" , plum : "#dda0dd" , powderblue : "#b0e0e6" , purple : "#800080" , red : "#ff0000" , rosybrown : "#bc8f8f" , royalblue : "#4169e1" , saddlebrown : "#8b4513" , salmon : "#fa8072" , sandybrown : "#f4a460" , seagreen : "#2e8b57" ,
2012-11-14 13:51:11 -08:00
seashell : "#fff5ee" , sienna : "#a0522d" , silver : "#c0c0c0" , skyblue : "#87ceeb" , slateblue : "#6a5acd" , slategray : "#708090" , slategrey : "#708090" , snow : "#fffafa" , springgreen : "#00ff7f" , steelblue : "#4682b4" , tan : "#d2b48c" , teal : "#008080" , thistle : "#d8bfd8" , tomato : "#ff6347" , turquoise : "#40e0d0" , violet : "#ee82ee" , wheat : "#f5deb3" , white : "#ffffff" , whitesmoke : "#f5f5f5" , yellow : "#ffff00" , yellowgreen : "#9acd32" } ; var ra = "background-color border-top-color border-right-color border-bottom-color border-left-color color outline-color" . split ( " " ) , sa = /#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/ ; function ta ( a ) { ua . test ( a ) || h ( Error ( "'" + a + "' is not a valid hex color" ) ) ; 4 == a . length && ( a = a . replace ( sa , "#$1$1$2$2$3$3" ) ) ; return a . toLowerCase ( ) } var ua = /^#(?:[0-9a-f]{3}){1,2}$/i , va = /^(?:rgba)?\((\d{1,3}),\s?(\d{1,3}),\s?(\d{1,3}),\s?(0|1|0\.\d*)\)$/i ;
function wa ( a ) { var b = a . match ( va ) ; if ( b ) { var a = Number ( b [ 1 ] ) , c = Number ( b [ 2 ] ) , d = Number ( b [ 3 ] ) , b = Number ( b [ 4 ] ) ; if ( 0 <= a && 255 >= a && 0 <= c && 255 >= c && 0 <= d && 255 >= d && 0 <= b && 1 >= b ) return [ a , c , d , b ] } return [ ] } var xa = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i ; function ya ( a ) { var b = a . match ( xa ) ; if ( b ) { var a = Number ( b [ 1 ] ) , c = Number ( b [ 2 ] ) , b = Number ( b [ 3 ] ) ; if ( 0 <= a && 255 >= a && 0 <= c && 255 >= c && 0 <= b && 255 >= b ) return [ a , c , b ] } return [ ] } ; function za ( a , b ) { this . code = a ; this . message = b || "" ; this . name = Aa [ a ] || Aa [ 13 ] ; var c = Error ( this . message ) ; c . name = this . name ; this . stack = c . stack || "" } u ( za , Error ) ;
2012-11-08 12:58:17 -08:00
var Aa = { 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" , 35 : "SqlDatabaseError" , 34 : "MoveTargetOutOfBoundsError" } ;
2012-11-14 13:51:11 -08:00
za . prototype . toString = function ( ) { return this . name + ": " + this . message } ; var w = m , x = m , y = j ; function Ba ( ) { var a = p . document ; return a ? a . documentMode : i } var Ca ; a : { var Da = "" , Ea ; if ( w && p . opera ) var Fa = p . opera . version , Da = "function" == typeof Fa ? Fa ( ) : Fa ; else if ( y ? Ea = /rv\:([^\);]+)(\)|;)/ : x && ( Ea = /MSIE\s+([^\);]+)(\)|;)/ ) , Ea ) var Ga = Ea . exec ( p . navigator ? p . navigator . userAgent : k ) , Da = Ga ? Ga [ 1 ] : "" ; if ( x ) { var Ha = Ba ( ) ; if ( Ha > parseFloat ( Da ) ) { Ca = String ( Ha ) ; break a } } Ca = Da } var Ia = { } ;
function Ja ( a ) { var b ; if ( ! ( b = Ia [ a ] ) ) { b = 0 ; for ( var c = String ( Ca ) . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) . split ( "." ) , d = String ( a ) . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) . split ( "." ) , e = Math . max ( c . length , d . length ) , f = 0 ; 0 == b && f < e ; f ++ ) { var g = c [ f ] || "" , l = d [ f ] || "" , q = RegExp ( "(\\d*)(\\D*)" , "g" ) , t = RegExp ( "(\\d*)(\\D*)" , "g" ) ; do { var I = q . exec ( g ) || [ "" , "" , "" ] , N = t . exec ( l ) || [ "" , "" , "" ] ; if ( 0 == I [ 0 ] . length && 0 == N [ 0 ] . length ) break ; b = ( ( 0 == I [ 1 ] . length ? 0 : parseInt ( I [ 1 ] , 10 ) ) < ( 0 == N [ 1 ] . length ? 0 : parseInt ( N [ 1 ] , 10 ) ) ? - 1 : ( 0 == I [ 1 ] . length ? 0 : parseInt ( I [ 1 ] ,
10 ) ) > ( 0 == N [ 1 ] . length ? 0 : parseInt ( N [ 1 ] , 10 ) ) ? 1 : 0 ) || ( ( 0 == I [ 2 ] . length ) < ( 0 == N [ 2 ] . length ) ? - 1 : ( 0 == I [ 2 ] . length ) > ( 0 == N [ 2 ] . length ) ? 1 : 0 ) || ( I [ 2 ] < N [ 2 ] ? - 1 : I [ 2 ] > N [ 2 ] ? 1 : 0 ) } while ( 0 == b ) } b = Ia [ a ] = 0 <= b } return b } function z ( a ) { return x && Ka >= a } var La = p . document , Ka = ! La || ! x ? i : Ba ( ) || ( "CSS1Compat" == La . compatMode ? parseInt ( Ca , 10 ) : 5 ) ; var Ma ; ! y && ! x || x && z ( 9 ) || y && Ja ( "1.9.1" ) ; x && Ja ( "9" ) ; var Na = "BODY" ; function A ( a , b ) { this . x = r ( a ) ? a : 0 ; this . y = r ( b ) ? b : 0 } A . prototype . toString = function ( ) { return "(" + this . x + ", " + this . y + ")" } ; function B ( a , b ) { this . width = a ; this . height = b } B . prototype . toString = function ( ) { return "(" + this . width + " x " + this . height + ")" } ; B . prototype . ceil = function ( ) { this . width = Math . ceil ( this . width ) ; this . height = Math . ceil ( this . height ) ; return this } ; B . prototype . floor = function ( ) { this . width = Math . floor ( this . width ) ; this . height = Math . floor ( this . height ) ; return this } ; B . prototype . round = function ( ) { this . width = Math . round ( this . width ) ; this . height = Math . round ( this . height ) ; return this } ; var Oa = 3 ; function Pa ( a ) { return a ? new Qa ( C ( a ) ) : Ma || ( Ma = new Qa ) } function Ra ( 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 Sa ( a , b ) { if ( a == b ) return 0 ; if ( a . compareDocumentPosition ) return a . compareDocumentPosition ( b ) & 2 ? 1 : - 1 ; if ( x && ! z ( 9 ) ) { if ( 9 == a . nodeType ) return - 1 ; if ( 9 == b . nodeType ) return 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 ? Ta ( a , b ) : ! c && Ra ( e , b ) ? - 1 * Ua ( a , b ) : ! d && Ra ( f , a ) ? Ua ( b , a ) : ( c ? a . sourceIndex : e . sourceIndex ) - ( d ? b . sourceIndex : f . sourceIndex ) } d = C ( a ) ; c = d . createRange ( ) ;
c . selectNode ( a ) ; c . collapse ( j ) ; d = d . createRange ( ) ; d . selectNode ( b ) ; d . collapse ( j ) ; return c . compareBoundaryPoints ( p . Range . START _TO _END , d ) } function Ua ( a , b ) { var c = a . parentNode ; if ( c == b ) return - 1 ; for ( var d = b ; d . parentNode != c ; ) d = d . parentNode ; return Ta ( d , a ) } function Ta ( a , b ) { for ( var c = b ; c = c . previousSibling ; ) if ( c == a ) return - 1 ; return 1 } function C ( a ) { return 9 == a . nodeType ? a : a . ownerDocument || a . document }
function Va ( a , b , c , d ) { if ( a != k ) for ( a = a . firstChild ; a ; ) { if ( b ( a ) && ( c . push ( a ) , d ) || Va ( a , b , c , d ) ) return j ; a = a . nextSibling } return m } function Wa ( a , b ) { for ( var a = a . parentNode , c = 0 ; a ; ) { if ( b ( a ) ) return a ; a = a . parentNode ; c ++ } return k } function Qa ( a ) { this . K = a || p . document || document } function Xa ( a ) { var b = a . K , a = "CSS1Compat" == b . compatMode ? b . documentElement : b . body , b = b . parentWindow || b . defaultView ; return new A ( b . pageXOffset || a . scrollLeft , b . pageYOffset || a . scrollTop ) } Qa . prototype . contains = Ra ; function D ( a , b , c ) { this . c = a ; this . ba = b || 1 ; this . j = c || 1 } ; var E = x && ! z ( 9 ) , Ya = x && ! z ( 8 ) ; function Za ( a , b , c , d , e ) { this . c = a ; this . nodeName = c ; this . nodeValue = d ; this . nodeType = 2 ; this . ownerElement = b ; this . ea = e ; this . parentNode = b } function $a ( a , b , c ) { var d = Ya && "href" == b . nodeName ? a . getAttribute ( b . nodeName , 2 ) : b . nodeValue ; return new Za ( b , a , b . nodeName , d , c ) } ; function ab ( a ) { this . I = a ; this . z = 0 } var bb = RegExp ( "\\$?(?:(?![0-9-])[\\w-]+:)?(?![0-9-])[\\w-]+|\\/\\/|\\.\\.|::|\\d+(?:\\.\\d*)?|\\.\\d+|\"[^\"]*\"|'[^']*'|[!<>]=|\\s+|." , "g" ) , cb = /^\s/ ; function F ( a , b ) { return a . I [ a . z + ( b || 0 ) ] } ab . prototype . next = function ( ) { return this . I [ this . z ++ ] } ; ab . prototype . back = function ( ) { this . z -- } ; ab . prototype . empty = function ( ) { return this . I . length <= this . z } ; function G ( a ) { var b = k , c = a . nodeType ; 1 == c && ( b = a . textContent , b = b == i || b == k ? a . innerText : b , b = b == i || b == k ? "" : b ) ; if ( "string" != typeof b ) if ( E && "title" == a . nodeName . toLowerCase ( ) && 1 == c ) b = a . text ; else if ( 9 == c || 1 == c ) for ( var a = 9 == c ? a . documentElement : a . firstChild , c = 0 , d = [ ] , b = "" ; a ; ) { do 1 != a . nodeType && ( b += a . nodeValue ) , E && "title" == a . nodeName . toLowerCase ( ) && ( b += a . text ) , d [ c ++ ] = a ; while ( a = a . firstChild ) ; for ( ; c && ! ( a = d [ -- c ] . nextSibling ) ; ) ; } else b = a . nodeValue ; return "" + b }
function H ( a , b , c ) { if ( b === k ) return j ; try { if ( ! a . getAttribute ) return m } catch ( d ) { return m } Ya && "class" == b && ( b = "className" ) ; return c == k ? ! ! a . getAttribute ( b ) : a . getAttribute ( b , 2 ) == c } function db ( a , b , c , d , e ) { return ( E ? eb : fb ) . call ( k , a , b , s ( c ) ? c : k , s ( d ) ? d : k , e || new J ) }
function eb ( a , b , c , d , e ) { if ( a instanceof K || 8 == a . i || c && a . i === k ) { var f = b . all ; if ( ! f ) return e ; a = gb ( a ) ; if ( "*" != a && ( f = b . getElementsByTagName ( a ) , ! f ) ) return e ; if ( c ) { for ( var g = [ ] , l = 0 ; b = f [ l ++ ] ; ) H ( b , c , d ) && g . push ( b ) ; f = g } for ( l = 0 ; b = f [ l ++ ] ; ) ( "*" != a || "!" != b . tagName ) && e . add ( b ) ; return e } hb ( a , b , c , d , e ) ; return e }
function fb ( a , b , c , d , e ) { b . getElementsByName && d && "name" == c && ! x ? ( b = b . getElementsByName ( d ) , v ( b , function ( b ) { a . matches ( b ) && e . add ( b ) } ) ) : b . getElementsByClassName && d && "class" == c ? ( b = b . getElementsByClassName ( d ) , v ( b , function ( b ) { b . className == d && a . matches ( b ) && e . add ( b ) } ) ) : a instanceof L ? hb ( a , b , c , d , e ) : b . getElementsByTagName && ( b = b . getElementsByTagName ( a . getName ( ) ) , v ( b , function ( a ) { H ( a , c , d ) && e . add ( a ) } ) ) ; return e }
function ib ( a , b , c , d , e ) { var f ; if ( ( a instanceof K || 8 == a . i || c && a . i === k ) && ( f = b . childNodes ) ) { var g = gb ( a ) ; if ( "*" != g && ( f = ka ( f , function ( a ) { return a . tagName && a . tagName . toLowerCase ( ) == g } ) , ! f ) ) return e ; c && ( f = ka ( f , function ( a ) { return H ( a , c , d ) } ) ) ; v ( f , function ( a ) { ( "*" != g || "!" != a . tagName && ! ( "*" == g && 1 != a . nodeType ) ) && e . add ( a ) } ) ; return e } return jb ( a , b , c , d , e ) } function jb ( a , b , c , d , e ) { for ( b = b . firstChild ; b ; b = b . nextSibling ) H ( b , c , d ) && a . matches ( b ) && e . add ( b ) ; return e }
function hb ( a , b , c , d , e ) { for ( b = b . firstChild ; b ; b = b . nextSibling ) H ( b , c , d ) && a . matches ( b ) && e . add ( b ) , hb ( a , b , c , d , e ) } function gb ( a ) { if ( a instanceof L ) { if ( 8 == a . i ) return "!" ; if ( a . i === k ) return "*" } return a . getName ( ) } ; function J ( ) { this . j = this . g = k ; this . t = 0 } function kb ( a ) { this . l = a ; this . next = this . q = k } function lb ( a , b ) { if ( a . g ) { if ( ! b . g ) return a } else return b ; for ( var c = a . g , d = b . g , e = k , f = k , g = 0 ; c && d ; ) c . l == d . l || c . l instanceof Za && d . l instanceof Za && c . l . c == d . l . c ? ( f = c , c = c . next , d = d . next ) : 0 < Sa ( c . l , d . l ) ? ( f = d , d = d . next ) : ( f = c , c = c . next ) , ( f . q = e ) ? e . next = f : a . g = f , e = f , g ++ ; for ( f = c || d ; f ; ) f . q = e , e = e . next = f , g ++ , f = f . next ; a . j = e ; a . t = g ; return a }
J . prototype . unshift = function ( a ) { a = new kb ( a ) ; a . next = this . g ; this . j ? this . g . q = a : this . g = this . j = a ; this . g = a ; this . t ++ } ; J . prototype . add = function ( a ) { a = new kb ( a ) ; a . q = this . j ; this . g ? this . j . next = a : this . g = this . j = a ; this . j = a ; this . t ++ } ; function mb ( a ) { return ( a = a . g ) ? a . l : k } J . prototype . m = n ( "t" ) ; function nb ( a ) { return ( a = mb ( a ) ) ? G ( a ) : "" } function M ( a , b ) { return new ob ( a , ! ! b ) } function ob ( a , b ) { this . Z = a ; this . J = ( this . r = b ) ? a . j : a . g ; this . F = k }
ob . prototype . next = function ( ) { var a = this . J ; if ( a == k ) return k ; var b = this . F = a ; this . J = this . r ? a . q : a . next ; return b . l } ; ob . prototype . remove = function ( ) { var a = this . Z , b = this . F ; b || h ( Error ( "Next must be called at least once before remove." ) ) ; var c = b . q , b = b . next ; c ? c . next = b : a . g = b ; b ? b . q = c : a . j = c ; a . t -- ; this . F = k } ; function O ( a ) { this . f = a ; this . e = this . k = m ; this . u = k } O . prototype . d = n ( "k" ) ; O . prototype . o = n ( "u" ) ; function P ( a , b ) { var c = a . evaluate ( b ) ; return c instanceof J ? + nb ( c ) : + c } function Q ( a , b ) { var c = a . evaluate ( b ) ; return c instanceof J ? nb ( c ) : "" + c } function pb ( a , b ) { var c = a . evaluate ( b ) ; return c instanceof J ? ! ! c . m ( ) : ! ! c } ; function qb ( a , b , c ) { O . call ( this , a . f ) ; this . H = a ; this . O = b ; this . T = c ; this . k = b . d ( ) || c . d ( ) ; this . e = b . e || c . e ; this . H == rb && ( ! c . e && ! c . d ( ) && 4 != c . f && 0 != c . f && b . o ( ) ? this . u = { name : b . o ( ) . name , s : c } : ! b . e && ( ! b . d ( ) && 4 != b . f && 0 != b . f && c . o ( ) ) && ( this . u = { name : c . o ( ) . name , s : b } ) ) } u ( qb , O ) ;
function sb ( a , b , c , d , e ) { var b = b . evaluate ( d ) , c = c . evaluate ( d ) , f ; if ( b instanceof J && c instanceof J ) { f = M ( b ) ; for ( b = f . next ( ) ; b ; b = f . next ( ) ) { e = M ( c ) ; for ( d = e . next ( ) ; d ; d = e . next ( ) ) if ( a ( G ( b ) , G ( d ) ) ) return j } return m } if ( b instanceof J || c instanceof J ) { b instanceof J ? e = b : ( e = c , c = b ) ; e = M ( e ) ; b = typeof c ; for ( d = e . next ( ) ; d ; d = e . next ( ) ) { switch ( b ) { case "number" : f = + G ( d ) ; break ; case "boolean" : f = ! ! G ( d ) ; break ; case "string" : f = G ( d ) ; break ; default : h ( Error ( "Illegal primitive type for comparison." ) ) } if ( a ( f , c ) ) return j } return m } return e ?
2012-11-08 12:58:17 -08:00
"boolean" == typeof b || "boolean" == typeof c ? a ( ! ! b , ! ! c ) : "number" == typeof b || "number" == typeof c ? a ( + b , + c ) : a ( b , c ) : a ( + b , + c ) } qb . prototype . evaluate = function ( a ) { return this . H . p ( this . O , this . T , a ) } ; qb . prototype . toString = function ( a ) { var a = a || "" , b = a + "binary expression: " + this . H + "\n" , a = a + " " , b = b + ( this . O . toString ( a ) + "\n" ) ; return b += this . T . toString ( a ) } ; function tb ( a , b , c , d ) { this . aa = a ; this . R = b ; this . f = c ; this . p = d } tb . prototype . toString = n ( "aa" ) ; var ub = { } ;
function R ( a , b , c , d ) { a in ub && h ( Error ( "Binary operator already created: " + a ) ) ; a = new tb ( a , b , c , d ) ; return ub [ a . toString ( ) ] = a } R ( "div" , 6 , 1 , function ( a , b , c ) { return P ( a , c ) / P ( b , c ) } ) ; R ( "mod" , 6 , 1 , function ( a , b , c ) { return P ( a , c ) % P ( b , c ) } ) ; R ( "*" , 6 , 1 , function ( a , b , c ) { return P ( a , c ) * P ( b , c ) } ) ; R ( "+" , 5 , 1 , function ( a , b , c ) { return P ( a , c ) + P ( b , c ) } ) ; R ( "-" , 5 , 1 , function ( a , b , c ) { return P ( a , c ) - P ( b , c ) } ) ; R ( "<" , 4 , 2 , function ( a , b , c ) { return sb ( function ( a , b ) { return a < b } , a , b , c ) } ) ;
2012-11-14 13:51:11 -08:00
R ( ">" , 4 , 2 , function ( a , b , c ) { return sb ( function ( a , b ) { return a > b } , a , b , c ) } ) ; R ( "<=" , 4 , 2 , function ( a , b , c ) { return sb ( function ( a , b ) { return a <= b } , a , b , c ) } ) ; R ( ">=" , 4 , 2 , function ( a , b , c ) { return sb ( function ( a , b ) { return a >= b } , a , b , c ) } ) ; var rb = R ( "=" , 3 , 2 , function ( a , b , c ) { return sb ( function ( a , b ) { return a == b } , a , b , c , j ) } ) ; R ( "!=" , 3 , 2 , function ( a , b , c ) { return sb ( function ( a , b ) { return a != b } , a , b , c , j ) } ) ; R ( "and" , 2 , 2 , function ( a , b , c ) { return pb ( a , c ) && pb ( b , c ) } ) ; R ( "or" , 1 , 2 , function ( a , b , c ) { return pb ( a , c ) || pb ( b , c ) } ) ; function vb ( a , b ) { b . m ( ) && 4 != a . f && h ( Error ( "Primary expression must evaluate to nodeset if filter has predicate(s)." ) ) ; O . call ( this , a . f ) ; this . S = a ; this . b = b ; this . k = a . d ( ) ; this . e = a . e } u ( vb , O ) ; vb . prototype . evaluate = function ( a ) { a = this . S . evaluate ( a ) ; return wb ( this . b , a ) } ; vb . prototype . toString = function ( a ) { var a = a || "" , b = a + "Filter: \n" , a = a + " " , b = b + this . S . toString ( a ) ; return b += this . b . toString ( a ) } ; function xb ( a , b ) { b . length < a . Q && h ( Error ( "Function " + a . h + " expects at least" + a . Q + " arguments, " + b . length + " given" ) ) ; a . G !== k && b . length > a . G && h ( Error ( "Function " + a . h + " expects at most " + a . G + " arguments, " + b . length + " given" ) ) ; a . $ && v ( b , function ( b , d ) { 4 != b . f && h ( Error ( "Argument " + d + " to function " + a . h + " is not of type Nodeset: " + b ) ) } ) ; O . call ( this , a . f ) ; this . w = a ; this . C = b ; this . k = a . k || ma ( b , function ( a ) { return a . d ( ) } ) ; this . e = a . Y && ! b . length || a . X && ! ! b . length || ma ( b , function ( a ) { return a . e } ) } u ( xb , O ) ;
xb . prototype . evaluate = function ( a ) { return this . w . p . apply ( k , oa ( a , this . C ) ) } ; xb . prototype . toString = function ( a ) { var b = a || "" , a = b + "Function: " + this . w + "\n" , b = b + " " ; this . C . length && ( a += b + "Arguments:" , b += " " , a = la ( this . C , function ( a , d ) { return a + "\n" + d . toString ( b ) } , a ) ) ; return a } ; function yb ( a , b , c , d , e , f , g , l , q ) { this . h = a ; this . f = b ; this . k = c ; this . Y = d ; this . X = e ; this . p = f ; this . Q = g ; this . G = r ( l ) ? l : g ; this . $ = ! ! q } yb . prototype . toString = n ( "h" ) ; var zb = { } ;
function S ( a , b , c , d , e , f , g , l ) { a in zb && h ( Error ( "Function already created: " + a + "." ) ) ; zb [ a ] = new yb ( a , b , c , d , m , e , f , g , l ) } S ( "boolean" , 2 , m , m , function ( a , b ) { return pb ( b , a ) } , 1 ) ; S ( "ceiling" , 1 , m , m , function ( a , b ) { return Math . ceil ( P ( b , a ) ) } , 1 ) ; S ( "concat" , 3 , m , m , function ( a , b ) { var c = pa ( arguments , 1 ) ; return la ( c , function ( b , c ) { return b + Q ( c , a ) } , "" ) } , 2 , k ) ; S ( "contains" , 2 , m , m , function ( a , b , c ) { b = Q ( b , a ) ; a = Q ( c , a ) ; return - 1 != b . indexOf ( a ) } , 2 ) ; S ( "count" , 1 , m , m , function ( a , b ) { return b . evaluate ( a ) . m ( ) } , 1 , 1 , j ) ; S ( "false" , 2 , m , m , aa ( m ) , 0 ) ;
2012-11-08 12:58:17 -08:00
S ( "floor" , 1 , m , m , function ( a , b ) { return Math . floor ( P ( b , a ) ) } , 1 ) ;
2012-11-14 13:51:11 -08:00
S ( "id" , 4 , m , m , function ( a , b ) { function c ( a ) { if ( E ) { var b = e . all [ a ] ; if ( b ) { if ( b . nodeType && a == b . id ) return b ; if ( b . length ) { var c ; a : { c = function ( b ) { return a == b . id } ; for ( var d = b . length , f = s ( b ) ? b . split ( "" ) : b , g = 0 ; g < d ; g ++ ) if ( g in f && c . call ( i , f [ g ] ) ) { c = g ; break a } c = - 1 } return 0 > c ? k : s ( b ) ? b . charAt ( c ) : b [ c ] } } return k } return e . getElementById ( a ) } var d = a . c , e = 9 == d . nodeType ? d : d . ownerDocument , d = Q ( b , a ) . split ( /\s+/ ) , f = [ ] ; v ( d , function ( a ) { ( a = c ( a ) ) && ! na ( f , a ) && f . push ( a ) } ) ; f . sort ( Sa ) ; var g = new J ; v ( f , function ( a ) { g . add ( a ) } ) ; return g } , 1 ) ;
S ( "lang" , 2 , m , m , aa ( m ) , 1 ) ; S ( "last" , 1 , j , m , function ( a ) { 1 != arguments . length && h ( Error ( "Function last expects ()" ) ) ; return a . j } , 0 ) ; S ( "local-name" , 3 , m , j , function ( a , b ) { var c = b ? mb ( b . evaluate ( a ) ) : a . c ; return c ? c . nodeName . toLowerCase ( ) : "" } , 0 , 1 , j ) ; S ( "name" , 3 , m , j , function ( a , b ) { var c = b ? mb ( b . evaluate ( a ) ) : a . c ; return c ? c . nodeName . toLowerCase ( ) : "" } , 0 , 1 , j ) ; S ( "namespace-uri" , 3 , j , m , aa ( "" ) , 0 , 1 , j ) ; S ( "normalize-space" , 3 , m , j , function ( a , b ) { return ( b ? Q ( b , a ) : G ( a . c ) ) . replace ( /[\s\xa0]+/g , " " ) . replace ( /^\s+|\s+$/g , "" ) } , 0 , 1 ) ;
S ( "not" , 2 , m , m , function ( a , b ) { return ! pb ( b , a ) } , 1 ) ; S ( "number" , 1 , m , j , function ( a , b ) { return b ? P ( b , a ) : + G ( a . c ) } , 0 , 1 ) ; S ( "position" , 1 , j , m , function ( a ) { return a . ba } , 0 ) ; S ( "round" , 1 , m , m , function ( a , b ) { return Math . round ( P ( b , a ) ) } , 1 ) ; S ( "starts-with" , 2 , m , m , function ( a , b , c ) { b = Q ( b , a ) ; a = Q ( c , a ) ; return 0 == b . lastIndexOf ( a , 0 ) } , 2 ) ; S ( "string" , 3 , m , j , function ( a , b ) { return b ? Q ( b , a ) : G ( a . c ) } , 0 , 1 ) ; S ( "string-length" , 1 , m , j , function ( a , b ) { return ( b ? Q ( b , a ) : G ( a . c ) ) . length } , 0 , 1 ) ;
2012-11-08 12:58:17 -08:00
S ( "substring" , 3 , m , m , function ( a , b , c , d ) { c = P ( c , a ) ; if ( isNaN ( c ) || Infinity == c || - Infinity == c ) return "" ; d = d ? P ( d , a ) : Infinity ; if ( isNaN ( d ) || - Infinity === d ) return "" ; var c = Math . round ( c ) - 1 , e = Math . max ( c , 0 ) , a = Q ( b , a ) ; if ( Infinity == d ) return a . substring ( e ) ; b = Math . round ( d ) ; return a . substring ( e , c + b ) } , 2 , 3 ) ; S ( "substring-after" , 3 , m , m , function ( a , b , c ) { b = Q ( b , a ) ; a = Q ( c , a ) ; c = b . indexOf ( a ) ; return - 1 == c ? "" : b . substring ( c + a . length ) } , 2 ) ;
2012-11-14 13:51:11 -08:00
S ( "substring-before" , 3 , m , m , function ( a , b , c ) { b = Q ( b , a ) ; a = Q ( c , a ) ; a = b . indexOf ( a ) ; return - 1 == a ? "" : b . substring ( 0 , a ) } , 2 ) ; S ( "sum" , 1 , m , m , function ( a , b ) { for ( var c = M ( b . evaluate ( a ) ) , d = 0 , e = c . next ( ) ; e ; e = c . next ( ) ) d += + G ( e ) ; return d } , 1 , 1 , j ) ; S ( "translate" , 3 , m , m , function ( a , b , c , d ) { for ( var b = Q ( b , a ) , c = Q ( c , a ) , e = Q ( d , a ) , a = [ ] , d = 0 ; d < c . length ; d ++ ) { var f = c . charAt ( d ) ; f in a || ( a [ f ] = e . charAt ( d ) ) } c = "" ; for ( d = 0 ; d < b . length ; d ++ ) f = b . charAt ( d ) , c += f in a ? a [ f ] : f ; return c } , 3 ) ; S ( "true" , 2 , m , m , aa ( j ) , 0 ) ; function L ( a , b ) { this . V = a ; this . P = r ( b ) ? b : k ; this . i = k ; switch ( a ) { case "comment" : this . i = 8 ; break ; case "text" : this . i = Oa ; break ; case "processing-instruction" : this . i = 7 ; break ; case "node" : break ; default : h ( Error ( "Unexpected argument" ) ) } } function Ab ( a ) { return "comment" == a || "text" == a || "processing-instruction" == a || "node" == a } L . prototype . matches = function ( a ) { return this . i === k || this . i == a . nodeType } ; L . prototype . getName = n ( "V" ) ;
L . prototype . toString = function ( a ) { var a = a || "" , b = a + "kindtest: " + this . V ; this . P === k || ( b += "\n" + this . P . toString ( a + " " ) ) ; return b } ; function Bb ( a ) { O . call ( this , 3 ) ; this . U = a . substring ( 1 , a . length - 1 ) } u ( Bb , O ) ; Bb . prototype . evaluate = n ( "U" ) ; Bb . prototype . toString = function ( a ) { return ( a || "" ) + "literal: " + this . U } ; function K ( a ) { this . h = a . toLowerCase ( ) } K . prototype . matches = function ( a ) { var b = a . nodeType ; if ( 1 == b || 2 == b ) return "*" == this . h || this . h == a . nodeName . toLowerCase ( ) ? j : this . h == ( a . namespaceURI || "http://www.w3.org/1999/xhtml" ) + ":*" } ; K . prototype . getName = n ( "h" ) ; K . prototype . toString = function ( a ) { return ( a || "" ) + "nametest: " + this . h } ; function Cb ( a ) { O . call ( this , 1 ) ; this . W = a } u ( Cb , O ) ; Cb . prototype . evaluate = n ( "W" ) ; Cb . prototype . toString = function ( a ) { return ( a || "" ) + "number: " + this . W } ; function Db ( a , b ) { O . call ( this , a . f ) ; this . M = a ; this . v = b ; this . k = a . d ( ) ; this . e = a . e ; if ( 1 == this . v . length ) { var c = this . v [ 0 ] ; ! c . D && c . n == Eb && ( c = c . B , "*" != c . getName ( ) && ( this . u = { name : c . getName ( ) , s : k } ) ) } } u ( Db , O ) ; function Fb ( ) { O . call ( this , 4 ) } u ( Fb , O ) ; Fb . prototype . evaluate = function ( a ) { var b = new J , a = a . c ; 9 == a . nodeType ? b . add ( a ) : b . add ( a . ownerDocument ) ; return b } ; Fb . prototype . toString = function ( a ) { return a + "RootHelperExpr" } ; function Gb ( ) { O . call ( this , 4 ) } u ( Gb , O ) ; Gb . prototype . evaluate = function ( a ) { var b = new J ; b . add ( a . c ) ; return b } ;
2012-11-08 12:58:17 -08:00
Gb . prototype . toString = function ( a ) { return a + "ContextHelperExpr" } ;
2012-11-14 13:51:11 -08:00
Db . prototype . evaluate = function ( a ) { var b = this . M . evaluate ( a ) ; b instanceof J || h ( Error ( "FilterExpr must evaluate to nodeset." ) ) ; for ( var a = this . v , c = 0 , d = a . length ; c < d && b . m ( ) ; c ++ ) { var e = a [ c ] , f = M ( b , e . n . r ) , g ; if ( ! e . d ( ) && e . n == Hb ) { for ( g = f . next ( ) ; ( b = f . next ( ) ) && ( ! g . contains || g . contains ( b ) ) && b . compareDocumentPosition ( g ) & 8 ; g = b ) ; b = e . evaluate ( new D ( g ) ) } else if ( ! e . d ( ) && e . n == Ib ) g = f . next ( ) , b = e . evaluate ( new D ( g ) ) ; else { g = f . next ( ) ; for ( b = e . evaluate ( new D ( g ) ) ; ( g = f . next ( ) ) != k ; ) g = e . evaluate ( new D ( g ) ) , b = lb ( b , g ) } } return b } ;
Db . prototype . toString = function ( a ) { var b = a || "" , c = b + "PathExpr:\n" , b = b + " " , c = c + this . M . toString ( b ) ; this . v . length && ( c += b + "Steps:\n" , b += " " , v ( this . v , function ( a ) { c += a . toString ( b ) } ) ) ; return c } ; function T ( a , b ) { this . b = a ; this . r = ! ! b } function wb ( a , b , c ) { for ( c = c || 0 ; c < a . b . length ; c ++ ) for ( var d = a . b [ c ] , e = M ( b ) , f = b . m ( ) , g , l = 0 ; g = e . next ( ) ; l ++ ) { var q = a . r ? f - l : l + 1 ; g = d . evaluate ( new D ( g , q , f ) ) ; var t ; "number" == typeof g ? t = q == g : "string" == typeof g || "boolean" == typeof g ? t = ! ! g : g instanceof J ? t = 0 < g . m ( ) : h ( Error ( "Predicate.evaluate returned an unexpected type." ) ) ; t || e . remove ( ) } return b } T . prototype . o = function ( ) { return 0 < this . b . length ? this . b [ 0 ] . o ( ) : k } ;
T . prototype . d = function ( ) { for ( var a = 0 ; a < this . b . length ; a ++ ) { var b = this . b [ a ] ; if ( b . d ( ) || 1 == b . f || 0 == b . f ) return j } return m } ; T . prototype . m = function ( ) { return this . b . length } ; T . prototype . toString = function ( a ) { var b = a || "" , a = b + "Predicates:" , b = b + " " ; return la ( this . b , function ( a , d ) { return a + "\n" + b + d . toString ( b ) } , a ) } ; function U ( a , b , c , d ) { O . call ( this , 4 ) ; this . n = a ; this . B = b ; this . b = c || new T ( [ ] ) ; this . D = ! ! d ; b = this . b . o ( ) ; a . ca && b && ( a = b . name , a = E ? a . toLowerCase ( ) : a , this . u = { name : a , s : b . s } ) ; this . k = this . b . d ( ) } u ( U , O ) ;
U . prototype . evaluate = function ( a ) { var b = a . c , c = k , c = this . o ( ) , d = k , e = k , f = 0 ; c && ( d = c . name , e = c . s ? Q ( c . s , a ) : k , f = 1 ) ; if ( this . D ) if ( ! this . d ( ) && this . n == Jb ) c = db ( this . B , b , d , e ) , c = wb ( this . b , c , f ) ; else if ( a = M ( ( new U ( Kb , new L ( "node" ) ) ) . evaluate ( a ) ) , b = a . next ( ) ) for ( c = this . p ( b , d , e , f ) ; ( b = a . next ( ) ) != k ; ) c = lb ( c , this . p ( b , d , e , f ) ) ; else c = new J ; else c = this . p ( a . c , d , e , f ) ; return c } ; U . prototype . p = function ( a , b , c , d ) { a = this . n . w ( this . B , a , b , c ) ; return a = wb ( this . b , a , d ) } ;
2012-11-08 12:58:17 -08:00
U . prototype . toString = function ( a ) { var a = a || "" , b = a + "Step: \n" , a = a + " " , b = b + ( a + "Operator: " + ( this . D ? "//" : "/" ) + "\n" ) ; this . n . h && ( b += a + "Axis: " + this . n + "\n" ) ; b += this . B . toString ( a ) ; if ( this . b . length ) for ( var b = b + ( a + "Predicates: \n" ) , c = 0 ; c < this . b . length ; c ++ ) var d = c < this . b . length - 1 ? ", " : "" , b = b + ( this . b [ c ] . toString ( a ) + d ) ; return b } ; function Lb ( a , b , c , d ) { this . h = a ; this . w = b ; this . r = c ; this . ca = d } Lb . prototype . toString = n ( "h" ) ; var Mb = { } ;
function V ( a , b , c , d ) { a in Mb && h ( Error ( "Axis already created: " + a ) ) ; b = new Lb ( a , b , c , ! ! d ) ; return Mb [ a ] = b } V ( "ancestor" , function ( a , b ) { for ( var c = new J , d = b ; d = d . parentNode ; ) a . matches ( d ) && c . unshift ( d ) ; return c } , j ) ; V ( "ancestor-or-self" , function ( a , b ) { var c = new J , d = b ; do a . matches ( d ) && c . unshift ( d ) ; while ( d = d . parentNode ) ; return c } , j ) ;
2012-11-14 13:51:11 -08:00
var Eb = V ( "attribute" , function ( a , b ) { var c = new J , d = a . getName ( ) ; if ( "style" == d && b . style && E ) return c . add ( new Za ( b . style , b , "style" , b . style . cssText , b . sourceIndex ) ) , c ; var e = b . attributes ; if ( e ) if ( a instanceof L && a . i === k || "*" == d ) for ( var d = b . sourceIndex , f = 0 , g ; g = e [ f ] ; f ++ ) E ? g . nodeValue && c . add ( $a ( b , g , d ) ) : c . add ( g ) ; else ( g = e . getNamedItem ( d ) ) && ( E ? g . nodeValue && c . add ( $a ( b , g , b . sourceIndex ) ) : c . add ( g ) ) ; return c } , m ) , Jb = V ( "child" , function ( a , b , c , d , e ) { return ( E ? ib : jb ) . call ( k , a , b , s ( c ) ? c : k , s ( d ) ? d : k , e || new J ) } , m , j ) ;
V ( "descendant" , db , m , j ) ; var Kb = V ( "descendant-or-self" , function ( a , b , c , d ) { var e = new J ; H ( b , c , d ) && a . matches ( b ) && e . add ( b ) ; return db ( a , b , c , d , e ) } , m , j ) , Hb = V ( "following" , function ( a , b , c , d ) { var e = new J ; do for ( var f = b ; f = f . nextSibling ; ) H ( f , c , d ) && a . matches ( f ) && e . add ( f ) , e = db ( a , f , c , d , e ) ; while ( b = b . parentNode ) ; return e } , m , j ) ; V ( "following-sibling" , function ( a , b ) { for ( var c = new J , d = b ; d = d . nextSibling ; ) a . matches ( d ) && c . add ( d ) ; return c } , m ) ; V ( "namespace" , function ( ) { return new J } , m ) ;
var Nb = V ( "parent" , function ( a , b ) { var c = new J ; if ( 9 == b . nodeType ) return c ; if ( 2 == b . nodeType ) return c . add ( b . ownerElement ) , c ; var d = b . parentNode ; a . matches ( d ) && c . add ( d ) ; return c } , m ) , Ib = V ( "preceding" , function ( a , b , c , d ) { var e = new J , f = [ ] ; do f . unshift ( b ) ; while ( b = b . parentNode ) ; for ( var g = 1 , l = f . length ; g < l ; g ++ ) { for ( var q = [ ] , b = f [ g ] ; b = b . previousSibling ; ) q . unshift ( b ) ; for ( var t = 0 , I = q . length ; t < I ; t ++ ) b = q [ t ] , H ( b , c , d ) && a . matches ( b ) && e . add ( b ) , e = db ( a , b , c , d , e ) } return e } , j , j ) ;
V ( "preceding-sibling" , function ( a , b ) { for ( var c = new J , d = b ; d = d . previousSibling ; ) a . matches ( d ) && c . unshift ( d ) ; return c } , j ) ; var Ob = V ( "self" , function ( a , b ) { var c = new J ; a . matches ( b ) && c . add ( b ) ; return c } , m ) ; function Pb ( a ) { O . call ( this , 1 ) ; this . L = a ; this . k = a . d ( ) ; this . e = a . e } u ( Pb , O ) ; Pb . prototype . evaluate = function ( a ) { return - P ( this . L , a ) } ; Pb . prototype . toString = function ( a ) { var a = a || "" , b = a + "UnaryExpr: -\n" ; return b += this . L . toString ( a + " " ) } ; function Qb ( a ) { O . call ( this , 4 ) ; this . A = a ; this . k = ma ( this . A , function ( a ) { return a . d ( ) } ) ; this . e = ma ( this . A , function ( a ) { return a . e } ) } u ( Qb , O ) ; Qb . prototype . evaluate = function ( a ) { var b = new J ; v ( this . A , function ( c ) { c = c . evaluate ( a ) ; c instanceof J || h ( Error ( "PathExpr must evaluate to NodeSet." ) ) ; b = lb ( b , c ) } ) ; return b } ; Qb . prototype . toString = function ( a ) { var b = a || "" , c = b + "UnionExpr:\n" , b = b + " " ; v ( this . A , function ( a ) { c += a . toString ( b ) + "\n" } ) ; return c . substring ( 0 , c . length ) } ; function Rb ( a ) { this . a = a } function Sb ( a ) { for ( var b , c = [ ] ; ; ) { W ( a , "Missing right hand side of binary expression." ) ; b = Tb ( a ) ; var d = a . a . next ( ) ; if ( ! d ) break ; var e = ( d = ub [ d ] || k ) && d . R ; if ( ! e ) { a . a . back ( ) ; break } for ( ; c . length && e <= c [ c . length - 1 ] . R ; ) b = new qb ( c . pop ( ) , c . pop ( ) , b ) ; c . push ( b , d ) } for ( ; c . length ; ) b = new qb ( c . pop ( ) , c . pop ( ) , b ) ; return b } function W ( a , b ) { a . a . empty ( ) && h ( Error ( b ) ) } function Ub ( a , b ) { var c = a . a . next ( ) ; c != b && h ( Error ( "Bad token, expected: " + b + " got: " + c ) ) }
2012-11-08 12:58:17 -08:00
function Vb ( a ) { a = a . a . next ( ) ; ")" != a && h ( Error ( "Bad token: " + a ) ) } function Wb ( a ) { a = a . a . next ( ) ; 2 > a . length && h ( Error ( "Unclosed literal string" ) ) ; return new Bb ( a ) } function Xb ( a ) { return "*" != F ( a . a ) && ":" == F ( a . a , 1 ) && "*" == F ( a . a , 2 ) ? new K ( a . a . next ( ) + a . a . next ( ) + a . a . next ( ) ) : new K ( a . a . next ( ) ) }
function Yb ( a ) { var b , c = [ ] , d ; if ( "/" == F ( a . a ) || "//" == F ( a . a ) ) { b = a . a . next ( ) ; d = F ( a . a ) ; if ( "/" == b && ( a . a . empty ( ) || "." != d && ".." != d && "@" != d && "*" != d && ! /(?![0-9])[\w]/ . test ( d ) ) ) return new Fb ; d = new Fb ; W ( a , "Missing next location step." ) ; b = Zb ( a , b ) ; c . push ( b ) } else { a : { b = F ( a . a ) ; d = b . charAt ( 0 ) ; switch ( d ) { case "$" : h ( Error ( "Variable reference not allowed in HTML XPath" ) ) ; case "(" : a . a . next ( ) ; b = Sb ( a ) ; W ( a , 'unclosed "("' ) ; Ub ( a , ")" ) ; break ; case '"' : case "'" : b = Wb ( a ) ; break ; default : if ( isNaN ( + b ) ) if ( ! Ab ( b ) && /(?![0-9])[\w]/ . test ( d ) &&
"(" == F ( a . a , 1 ) ) { b = a . a . next ( ) ; b = zb [ b ] || k ; a . a . next ( ) ; for ( d = [ ] ; ")" != F ( a . a ) ; ) { W ( a , "Missing function argument list." ) ; d . push ( Sb ( a ) ) ; if ( "," != F ( a . a ) ) break ; a . a . next ( ) } W ( a , "Unclosed function argument list." ) ; Vb ( a ) ; b = new xb ( b , d ) } else { b = k ; break a } else b = new Cb ( + a . a . next ( ) ) } "[" == F ( a . a ) && ( d = new T ( $b ( a ) ) , b = new vb ( b , d ) ) } if ( b ) if ( "/" == F ( a . a ) || "//" == F ( a . a ) ) d = b ; else return b ; else b = Zb ( a , "/" ) , d = new Gb , c . push ( b ) } for ( ; "/" == F ( a . a ) || "//" == F ( a . a ) ; ) b = a . a . next ( ) , W ( a , "Missing next location step." ) , b = Zb ( a , b ) , c . push ( b ) ; return new Db ( d ,
c ) }
function Zb ( a , b ) { var c , d , e ; "/" != b && "//" != b && h ( Error ( 'Step op should be "/" or "//"' ) ) ; if ( "." == F ( a . a ) ) return d = new U ( Ob , new L ( "node" ) ) , a . a . next ( ) , d ; if ( ".." == F ( a . a ) ) return d = new U ( Nb , new L ( "node" ) ) , a . a . next ( ) , d ; var f ; "@" == F ( a . a ) ? ( f = Eb , a . a . next ( ) , W ( a , "Missing attribute name" ) ) : "::" == F ( a . a , 1 ) ? ( /(?![0-9])[\w]/ . test ( F ( a . a ) . charAt ( 0 ) ) || h ( Error ( "Bad token: " + a . a . next ( ) ) ) , e = a . a . next ( ) , ( f = Mb [ e ] || k ) || h ( Error ( "No axis with name: " + e ) ) , a . a . next ( ) , W ( a , "Missing node name" ) ) : f = Jb ; e = F ( a . a ) ; if ( /(?![0-9])[\w]/ . test ( e . charAt ( 0 ) ) ) if ( "(" == F ( a . a ,
1 ) ) { Ab ( e ) || h ( Error ( "Invalid node type: " + e ) ) ; c = a . a . next ( ) ; Ab ( c ) || h ( Error ( "Invalid type name: " + c ) ) ; Ub ( a , "(" ) ; W ( a , "Bad nodetype" ) ; e = F ( a . a ) . charAt ( 0 ) ; var g = k ; if ( '"' == e || "'" == e ) g = Wb ( a ) ; W ( a , "Bad nodetype" ) ; Vb ( a ) ; c = new L ( c , g ) } else c = Xb ( a ) ; else "*" == e ? c = Xb ( a ) : h ( Error ( "Bad token: " + a . a . next ( ) ) ) ; e = new T ( $b ( a ) , f . r ) ; return d || new U ( f , c , e , "//" == b ) }
function $b ( a ) { for ( var b = [ ] ; "[" == F ( a . a ) ; ) { a . a . next ( ) ; W ( a , "Missing predicate expression." ) ; var c = Sb ( a ) ; b . push ( c ) ; W ( a , "Unclosed predicate expression." ) ; Ub ( a , "]" ) } return b } function Tb ( a ) { if ( "-" == F ( a . a ) ) return a . a . next ( ) , new Pb ( Tb ( a ) ) ; var b = Yb ( a ) ; if ( "|" != F ( a . a ) ) a = b ; else { for ( b = [ b ] ; "|" == a . a . next ( ) ; ) W ( a , "Missing next union location path." ) , b . push ( Yb ( a ) ) ; a . a . back ( ) ; a = new Qb ( b ) } return a } ; function ac ( a ) { a . length || h ( Error ( "Empty XPath expression." ) ) ; for ( var a = a . match ( bb ) , b = 0 ; b < a . length ; b ++ ) cb . test ( a [ b ] ) && a . splice ( b , 1 ) ; a = new ab ( a ) ; a . empty ( ) && h ( Error ( "Invalid XPath expression." ) ) ; var c = Sb ( new Rb ( a ) ) ; a . empty ( ) || h ( Error ( "Bad token: " + a . next ( ) ) ) ; this . evaluate = function ( a , b ) { var f = c . evaluate ( new D ( a ) ) ; return new X ( f , b ) } }
2012-11-14 13:51:11 -08:00
function X ( a , b ) { 0 == b && ( a instanceof J ? b = 4 : "string" == typeof a ? b = 2 : "number" == typeof a ? b = 1 : "boolean" == typeof a ? b = 3 : h ( Error ( "Unexpected evaluation result." ) ) ) ; 2 != b && ( 1 != b && 3 != b && ! ( a instanceof J ) ) && h ( Error ( "document.evaluate called with wrong result type." ) ) ; this . resultType = b ; var c ; switch ( b ) { case 2 : this . stringValue = a instanceof J ? nb ( a ) : "" + a ; break ; case 1 : this . numberValue = a instanceof J ? + nb ( a ) : + a ; break ; case 3 : this . booleanValue = a instanceof J ? 0 < a . m ( ) : ! ! a ; break ; case 4 : case 5 : case 6 : case 7 : var d = M ( a ) ; c = [ ] ;
2012-11-08 12:58:17 -08:00
for ( var e = d . next ( ) ; e ; e = d . next ( ) ) c . push ( e instanceof Za ? e . c : e ) ; this . snapshotLength = a . m ( ) ; this . invalidIteratorState = m ; break ; case 8 : case 9 : d = mb ( a ) ; this . singleNodeValue = d instanceof Za ? d . c : d ; break ; default : h ( Error ( "Unknown XPathResult type." ) ) } var f = 0 ; this . iterateNext = function ( ) { 4 != b && 5 != b && h ( Error ( "iterateNext called with wrong result type." ) ) ; return f >= c . length ? k : c [ f ++ ] } ; this . snapshotItem = function ( a ) { 6 != b && 7 != b && h ( Error ( "snapshotItem called with wrong result type." ) ) ; return a >= c . length || 0 > a ? k : c [ a ] } }
2012-11-14 13:51:11 -08:00
X . ANY _TYPE = 0 ; X . NUMBER _TYPE = 1 ; X . STRING _TYPE = 2 ; X . BOOLEAN _TYPE = 3 ; X . UNORDERED _NODE _ITERATOR _TYPE = 4 ; X . ORDERED _NODE _ITERATOR _TYPE = 5 ; X . UNORDERED _NODE _SNAPSHOT _TYPE = 6 ; X . ORDERED _NODE _SNAPSHOT _TYPE = 7 ; X . ANY _UNORDERED _NODE _TYPE = 8 ; X . FIRST _ORDERED _NODE _TYPE = 9 ; var bc , cc = { ga : "http://www.w3.org/2000/svg" } ; bc = function ( a ) { return cc [ a ] || k } ; ( function ( ) { if ( ! y ) return m ; var a = p . Components ; if ( ! a ) return m ; try { if ( ! a . classes ) return m } catch ( b ) { return m } 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 j } ) ( ) ; var dc = x && ! z ( 8 ) , ec = x && ! z ( 9 ) , fc = x && ! z ( 10 ) ; function gc ( a , b ) { var c = C ( a ) ; return c . defaultView && c . defaultView . getComputedStyle && ( c = c . defaultView . getComputedStyle ( a , k ) ) ? c [ b ] || c . getPropertyValue ( b ) || "" : "" } function hc ( a , b ) { return gc ( a , b ) || ( a . currentStyle ? a . currentStyle [ b ] : k ) || a . style && a . style [ b ] } function ic ( a ) { var b = a . getBoundingClientRect ( ) ; x && ( a = a . ownerDocument , b . left -= a . documentElement . clientLeft + a . body . clientLeft , b . top -= a . documentElement . clientTop + a . body . clientTop ) ; return b }
function jc ( a ) { if ( x && ! z ( 8 ) ) return a . offsetParent ; for ( var b = C ( a ) , c = hc ( a , "position" ) , d = "fixed" == c || "absolute" == c , a = a . parentNode ; a && a != b ; a = a . parentNode ) if ( c = hc ( 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 kc ( a ) { var b = new A ; if ( 1 == a . nodeType ) { if ( a . getBoundingClientRect ) { var c = ic ( a ) ; b . x = c . left ; b . y = c . top } else { c = Xa ( Pa ( a ) ) ; var d , e = C ( a ) , f = hc ( a , "position" ) ; ia ( a , "Parameter is required" ) ; var g = y && e . getBoxObjectFor && ! a . getBoundingClientRect && "absolute" == f && ( d = e . getBoxObjectFor ( a ) ) && ( 0 > d . screenX || 0 > d . screenY ) , f = new A ( 0 , 0 ) , l ; d = e ? C ( e ) : document ; if ( l = x ) if ( l = ! z ( 9 ) ) l = "CSS1Compat" != Pa ( d ) . K . compatMode ; l = l ? d . body : d . documentElement ; if ( a != l ) if ( a . getBoundingClientRect ) d = ic ( a ) , e = Xa ( Pa ( e ) ) , f . x = d . left + e . x , f . y = d . top +
e . y ; else if ( e . getBoxObjectFor && ! g ) d = e . getBoxObjectFor ( a ) , e = e . getBoxObjectFor ( l ) , f . x = d . screenX - e . screenX , f . y = d . screenY - e . 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 ) ; w && ( f . y -= e . body . offsetTop ) ; for ( d = a ; ( d = jc ( d ) ) && d != e . body && d != l ; ) if ( f . x -= d . scrollLeft , ! w || "TR" != d . tagName ) f . y -= d . scrollTop } b . x = f . x - c . x ; b . y = f . y - c . y } if ( y && ! Ja ( 12 ) ) { var q ; x ? q = "-ms-transform" : w ? q = "-o-transform" : y && ( q = "-moz-transform" ) ; var t ; q && ( t = hc ( a ,
q ) ) ; t || ( t = hc ( a , "transform" ) ) ; t ? ( a = t . match ( lc ) , a = ! a ? new A ( 0 , 0 ) : new A ( parseFloat ( a [ 1 ] ) , parseFloat ( a [ 2 ] ) ) ) : a = new A ( 0 , 0 ) ; b = new A ( b . x + a . x , b . y + a . y ) } } else q = "function" == ba ( a . N ) , t = a , a . targetTouches ? t = a . targetTouches [ 0 ] : q && a . N ( ) . targetTouches && ( t = a . N ( ) . targetTouches [ 0 ] ) , b . x = t . clientX , b . y = t . clientY ; return b } function mc ( a ) { var b = a . offsetWidth , c = a . offsetHeight ; return ! r ( b ) && a . getBoundingClientRect ? ( a = ic ( a ) , new B ( a . right - a . left , a . bottom - a . top ) ) : new B ( b , c ) } var lc = /matrix\([0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, ([0-9\.\-]+)p?x?, ([0-9\.\-]+)p?x?\)/ ; function Y ( a , b ) { return ! ! a && 1 == a . nodeType && ( ! b || a . tagName . toUpperCase ( ) == b ) } var nc = /[;]+(?=(?:(?:[^"]*"){2})*[^"]*$)(?=(?:(?:[^']*'){2})*[^']*$)(?=(?:[^()]*\([^()]*\))*[^()]*$)/ ;
function oc ( a ) { var b ; b = "usemap" ; if ( "style" == b ) { var c = [ ] ; v ( a . style . cssText . split ( nc ) , function ( a ) { var b = a . indexOf ( ":" ) ; 0 < b && ( a = [ a . slice ( 0 , b ) , a . slice ( b + 1 ) ] , 2 == a . length && c . push ( a [ 0 ] . toLowerCase ( ) , ":" , a [ 1 ] , ";" ) ) } ) ; c = c . join ( "" ) ; c = ";" == c . charAt ( c . length - 1 ) ? c : c + ";" ; return w ? c . replace ( /\w+:;/g , "" ) : c } return dc && "value" == b && Y ( a , "INPUT" ) ? a . value : ec && a [ b ] === j ? String ( a . getAttribute ( b ) ) : ( a = a . getAttributeNode ( b ) ) && a . specified ? a . value : k }
function pc ( a ) { for ( a = a . parentNode ; a && 1 != a . nodeType && 9 != a . nodeType && 11 != a . nodeType ; ) a = a . parentNode ; return Y ( a ) ? a : k }
function Z ( a , b ) { var c = String ( b ) . replace ( /\-([a-z])/g , function ( a , b ) { return b . toUpperCase ( ) } ) ; if ( "float" == c || "cssFloat" == c || "styleFloat" == c ) c = ec ? "styleFloat" : "cssFloat" ; c = gc ( a , c ) || qc ( a , c ) ; if ( c === k ) c = k ; else if ( na ( ra , b ) && ( ua . test ( "#" == c . charAt ( 0 ) ? c : "#" + c ) || ya ( c ) . length || qa && qa [ c . toLowerCase ( ) ] || wa ( c ) . length ) ) { var d = wa ( c ) ; if ( ! d . length ) { a : if ( d = ya ( c ) , ! d . length ) { d = qa [ c . toLowerCase ( ) ] ; d = ! d ? "#" == c . charAt ( 0 ) ? c : "#" + c : d ; if ( ua . test ( d ) && ( d = ta ( d ) , d = ta ( d ) , d = [ parseInt ( d . substr ( 1 , 2 ) , 16 ) , parseInt ( d . substr ( 3 , 2 ) , 16 ) , parseInt ( d . substr ( 5 ,
2 ) , 16 ) ] , d . length ) ) break a ; d = [ ] } 3 == d . length && d . push ( 1 ) } c = 4 != d . length ? c : "rgba(" + d . join ( ", " ) + ")" } return c } function qc ( a , b ) { var c = a . currentStyle || a . style , d = c [ b ] ; ! r ( d ) && "function" == ba ( c . getPropertyValue ) && ( d = c . getPropertyValue ( b ) ) ; return "inherit" != d ? r ( d ) ? d : k : ( c = pc ( a ) ) ? qc ( c , b ) : k }
function rc ( a ) { if ( "function" == ba ( a . getBBox ) ) try { var b = a . getBBox ( ) ; if ( b ) return b } catch ( c ) { } if ( Y ( a , Na ) ) { b = ( C ( a ) ? C ( a ) . parentWindow || C ( a ) . defaultView : window ) || i ; "hidden" != Z ( a , "overflow" ) ? a = j : ( a = pc ( a ) , ! a || ! Y ( a , "HTML" ) ? a = j : ( a = Z ( a , "overflow" ) , a = "auto" == a || "scroll" == a ) ) ; if ( a ) { var b = ( b || ca ) . document , a = b . documentElement , d = b . body ; d || h ( new za ( 13 , "No BODY element present" ) ) ; b = [ a . clientHeight , a . scrollHeight , a . offsetHeight , d . scrollHeight , d . offsetHeight ] ; a = Math . max . apply ( k , [ a . clientWidth , a . scrollWidth , a . offsetWidth ,
d . scrollWidth , d . offsetWidth ] ) ; b = Math . max . apply ( k , b ) ; a = new B ( a , b ) } else a = ( b || window ) . document , a = "CSS1Compat" == a . compatMode ? a . documentElement : a . body , a = new B ( a . clientWidth , a . clientHeight ) ; return a } if ( "none" != hc ( a , "display" ) ) a = mc ( 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 = mc ( a ) ; b . display = d ; b . position = f ; b . visibility = e } return a }
function sc ( a , b ) { function c ( a ) { if ( "none" == Z ( a , "display" ) ) return m ; a = pc ( a ) ; return ! a || c ( a ) } function d ( a ) { var b = rc ( a ) ; return 0 < b . height && 0 < b . width ? j : Y ( a , "PATH" ) && ( 0 < b . height || 0 < b . width ) ? ( a = Z ( a , "stroke-width" ) , ! ! a && 0 < parseInt ( a , 10 ) ) : ma ( a . childNodes , function ( a ) { return a . nodeType == Oa || Y ( a ) && d ( a ) } ) } function e ( a ) { var b = jc ( a ) , c = y || x || w ? pc ( a ) : b ; if ( ( y || x || w ) && Y ( c , Na ) ) b = c ; if ( b && "hidden" == Z ( b , "overflow" ) ) { var c = rc ( b ) , d = kc ( b ) , a = kc ( a ) ; return d . x + c . width < a . x || d . y + c . height < a . y ? m : e ( b ) } return j } function f ( a ) { var b =
Z ( a , "-o-transform" ) || Z ( a , "-webkit-transform" ) || Z ( a , "-ms-transform" ) || Z ( a , "-moz-transform" ) || Z ( a , "transform" ) ; if ( b && "none" !== b ) return a = kc ( a ) , 0 <= a . x && 0 <= a . y ? j : m ; a = pc ( a ) ; return ! a || f ( a ) } Y ( a ) || h ( Error ( "Argument to isShown must be of type Element" ) ) ; if ( Y ( a , "OPTION" ) || Y ( a , "OPTGROUP" ) ) { var g = Wa ( a , function ( a ) { return Y ( a , "SELECT" ) } ) ; return ! ! g && sc ( g , j ) } if ( Y ( a , "MAP" ) ) { if ( ! a . name ) return m ; var l = C ( a ) ; if ( l . evaluate ) { var q = '/descendant::*[@usemap = "#' + a . name + '"]' , g = function ( ) { var a ; a : { var b = C ( l ) ; if ( x ) { var c = ( b ?
b . parentWindow || b . defaultView : window ) || p , d = c . document ; d . evaluate || ( c . XPathResult = X , d . evaluate = function ( a , b , c , d ) { return ( new ac ( a ) ) . evaluate ( b , d ) } , d . createExpression = function ( a ) { return new ac ( a ) } ) } try { var e = b . createNSResolver ? b . createNSResolver ( b . documentElement ) : bc ; a = x && ! Ja ( 7 ) ? b . evaluate . call ( b , q , l , e , 9 , k ) : b . evaluate ( q , l , e , 9 , k ) ; break a } catch ( f ) { y && "NS_ERROR_ILLEGAL_VALUE" == f . name || h ( new za ( 32 , "Unable to locate an element with the xpath expression " + q + " because of the following error:\n" + f ) ) } a = i } return a ?
( a = a . singleNodeValue , w ? a : a || k ) : l . selectSingleNode ? ( a = C ( l ) , a . setProperty && a . setProperty ( "SelectionLanguage" , "XPath" ) , l . selectSingleNode ( q ) ) : k } ( ) ; g !== k && ( ! g || 1 != g . nodeType ) && h ( new za ( 32 , 'The result of the xpath expression "' + q + '" is: ' + g + ". It should be an element." ) ) } else g = [ ] , g = Va ( l , function ( b ) { return Y ( b ) && oc ( b ) == "#" + a . name } , g , j ) ? g [ 0 ] : i ; return ! ! g && sc ( g , b ) } if ( Y ( a , "AREA" ) ) return g = Wa ( a , function ( a ) { return Y ( a , "MAP" ) } ) , ! ! g && sc ( g , b ) ; if ( ! ( g = Y ( a , "INPUT" ) && "hidden" == a . type . toLowerCase ( ) || Y ( a , "NOSCRIPT" ) ||
"hidden" == Z ( a , "visibility" ) || ! c ( a ) ) ) if ( g = ! b ) fc ? "relative" == Z ( a , "position" ) ? g = 1 : ( g = Z ( a , "filter" ) , g = ( g = g . match ( /^alpha\(opacity=(\d*)\)/ ) || g . match ( /^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/ ) ) ? Number ( g [ 1 ] ) / 100 : 1 ) : g = tc ( a ) , g = 0 == g ; return g || ! d ( a ) || ! e ( a ) ? m : f ( a ) } function tc ( a ) { var b = 1 , c = Z ( a , "opacity" ) ; c && ( b = Number ( c ) ) ; ( a = pc ( a ) ) && ( b *= tc ( a ) ) ; return b } ; var uc = sc , vc = [ "_" ] , $ = p ; ! ( vc [ 0 ] in $ ) && $ . execScript && $ . execScript ( "var " + vc [ 0 ] ) ; for ( var wc ; vc . length && ( wc = vc . shift ( ) ) ; ) ! vc . length && r ( uc ) ? $ [ wc ] = uc : $ = $ [ wc ] ? $ [ wc ] : $ [ wc ] = { } ; ; return this . _ . apply ( null , arguments ) ; } . apply ( { navigator : typeof window != undefined ? window . navigator : null } , arguments ) ; }