// 4.1.7 (2014-11-27)
! function ( e , t ) { "use strict" ; function n ( e , t ) { for ( var n , r = [ ] , i = 0 ; i < e . length ; ++ i ) { if ( n = s [ e [ i ] ] || o ( e [ i ] ) , ! n ) throw "module definition dependecy not found: " + e [ i ] ; r . push ( n ) } t . apply ( null , r ) } function r ( e , r , i ) { if ( "string" != typeof e ) throw "invalid module definition, module id must be defined and be a string" ; if ( r === t ) throw "invalid module definition, dependencies must be specified" ; if ( i === t ) throw "invalid module definition, definition function must be specified" ; n ( r , function ( ) { s [ e ] = i . apply ( null , arguments ) } ) } function i ( e ) { return ! ! s [ e ] } function o ( t ) { for ( var n = e , r = t . split ( /[.\/]/ ) , i = 0 ; i < r . length ; ++ i ) { if ( ! n [ r [ i ] ] ) return ; n = n [ r [ i ] ] } return n } function a ( n ) { for ( var r = 0 ; r < n . length ; r ++ ) { for ( var i = e , o = n [ r ] , a = o . split ( /[.\/]/ ) , l = 0 ; l < a . length - 1 ; ++ l ) i [ a [ l ] ] === t && ( i [ a [ l ] ] = { } ) , i = i [ a [ l ] ] ; i [ a [ a . length - 1 ] ] = s [ o ] } } var s = { } , l = "tinymce/dom/EventUtils" , c = "tinymce/dom/Sizzle" , u = "tinymce/Env" , d = "tinymce/util/Tools" , f = "tinymce/dom/DomQuery" , p = "tinymce/html/Styles" , h = "tinymce/dom/TreeWalker" , m = "tinymce/dom/Range" , g = "tinymce/html/Entities" , v = "tinymce/dom/StyleSheetLoader" , y = "tinymce/dom/DOMUtils" , b = "tinymce/dom/ScriptLoader" , C = "tinymce/AddOnManager" , x = "tinymce/dom/RangeUtils" , w = "tinymce/NodeChange" , _ = "tinymce/html/Node" , E = "tinymce/html/Schema" , N = "tinymce/html/SaxParser" , k = "tinymce/html/DomParser" , S = "tinymce/html/Writer" , T = "tinymce/html/Serializer" , R = "tinymce/dom/Serializer" , A = "tinymce/dom/TridentSelection" , B = "tinymce/util/VK" , D = "tinymce/dom/ControlSelection" , L = "tinymce/dom/BookmarkManager" , H = "tinymce/dom/Selection" , M = "tinymce/dom/ElementUtils" , P = "tinymce/fmt/Preview" , O = "tinymce/Formatter" , I = "tinymce/UndoManager" , F = "tinymce/EnterKey" , z = "tinymce/ForceBlocks" , W = "tinymce/EditorCommands" , V = "tinymce/util/URI" , U = "tinymce/util/Class" , $ = "tinymce/util/EventDispatcher" , q = "tinymce/ui/Selector" , j = "tinymce/ui/Collection" , Y = "tinymce/ui/DomUtils" , K = "tinymce/ui/Control" , G = "tinymce/ui/Factory" , X = "tinymce/ui/KeyboardNavigation" , J = "tinymce/ui/Container" , Q = "tinymce/ui/DragHelper" , Z = "tinymce/ui/Scrollable" , et = "tinymce/ui/Panel" , tt = "tinymce/ui/Movable" , nt = "tinymce/ui/Resizable" , rt = "tinymce/ui/FloatPanel" , it = "tinymce/ui/Window" , ot = "tinymce/ui/MessageBox" , at = "tinymce/WindowManager" , st = "tinymce/util/Quirks" , lt = "tinymce/util/Observable" , ct = "tinymce/EditorObservable" , ut = "tinymce/Shortcuts" , dt = "tinymce/Editor" , ft = "tinymce/util/I18n" , pt = "tinymce/FocusManager" , ht = "tinymce/EditorManager" , mt = "tinymce/LegacyInput" , gt = "tinymce/util/XHR" , vt = "tinymce/util/JSON" , yt = "tinymce/util/JSONRequest" , bt = "tinymce/util/JSONP" , Ct = "tinymce/util/LocalStorage" , xt = "tinymce/Compat" , wt = "tinymce/ui/Layout" , _t = "tinymce/ui/AbsoluteLayout" , Et = "tinymce/ui/Tooltip" , Nt = "tinymce/ui/Widget" , kt = "tinymce/ui/Button" , St = "tinymce/ui/ButtonGroup" , Tt = "tinymce/ui/Checkbox" , Rt = "tinymce/ui/ComboBox" , At = "tinymce/ui/ColorBox" , Bt = "tinymce/ui/PanelButton" , Dt = "tinymce/ui/ColorButton" , Lt = "tinymce/util/Color" , Ht = "tinymce/ui/ColorPicker" , Mt = "tinymce/ui/Path" , Pt = "tinymce/ui/ElementPath" , Ot = "tinymce/ui/FormItem" , It = "tinymce/ui/Form" , Ft = "tinymce/ui/FieldSet" , zt = "tinymce/ui/FilePicker" , Wt = "tinymce/ui/FitLayout" , Vt = "tinymce/ui/FlexLayout" , Ut = "tinymce/ui/FlowLayout" , $t = "tinymce/ui/FormatControls" , qt = "tinymce/ui/GridLayout" , jt = "tinymce/ui/Iframe" , Yt = "tinymce/ui/Label" , Kt = "tinymce/ui/Toolbar" , Gt = "tinymce/ui/MenuBar" , Xt = "tinymce/ui/MenuButton" , Jt = "tinymce/ui/ListBox" , Qt = "tinymce/ui/MenuItem" , Zt = "tinymce/ui/Menu" , en = "tinymce/ui/Radio" , tn = "tinymce/ui/ResizeHandle" , nn = "tinymce/ui/Spacer" , rn = "tinymce/ui/SplitButton" , on = "tinymce/ui/StackLayout" , an = "tinymce/ui/TabPanel" , sn = "tinymce/ui/TextBox" , ln = "tinymce/ui/Throbber" ; r ( l , [ ] , function ( ) { function e ( e , t , n , r ) { e . addEventListener ? e . addEventListener ( t , n , r || ! 1 ) : e . attachEvent && e . attachEvent ( "on" + t , n ) } function t ( e , t , n , r ) { e . removeEventListener ? e . removeEventListener ( t , n , r || ! 1 ) : e . detachEvent && e . detachEvent ( "on" + t , n ) } function n ( e , t ) { function n ( ) { return ! 1 } function r ( ) { return ! 0 } var i , o = t || { } , l ; for ( i in e ) s [ i ] || ( o [ i ] = e [ i ] ) ; if ( o . target || ( o . target = o . srcElement || document ) , e && a . test ( e . type ) && e . pageX === l && e . clientX !== l ) { var c = o . target . ownerDocument || document , u = c . documentElement , d = c . body ; o . pageX = e . clientX + ( u && u . scrollLeft || d && d . scro
else _ . apply ( n , f . makeArray ( e ) ) ; return n } , attr : function ( e , t ) { var n = this , r ; if ( "object" == typeof e ) m ( e , function ( e , t ) { n . attr ( e , t ) } ) ; else { if ( ! o ( t ) ) { if ( n [ 0 ] && 1 === n [ 0 ] . nodeType ) { if ( r = D [ e ] , r && r . get ) return r . get ( n [ 0 ] , e ) ; if ( R [ e ] ) return n . prop ( e ) ? e : S ; t = n [ 0 ] . getAttribute ( e , 2 ) , null === t && ( t = S ) } return t } this . each ( function ( ) { var n ; if ( 1 === this . nodeType ) { if ( n = D [ e ] , n && n . set ) return void n . set ( this , t ) ; null === t ? this . removeAttribute ( e , 2 ) : this . setAttribute ( e , t , 2 ) } } ) } return n } , removeAttr : function ( e ) { return this . attr ( e , null ) } , prop : function ( e , t ) { var n = this ; if ( e = A [ e ] || e , "object" == typeof e ) m ( e , function ( e , t ) { n . prop ( e , t ) } ) ; else { if ( ! o ( t ) ) return n [ 0 ] && n [ 0 ] . nodeType && e in n [ 0 ] ? n [ 0 ] [ e ] : t ; this . each ( function ( ) { 1 == this . nodeType && ( this [ e ] = t ) } ) } return n } , css : function ( e , t ) { function n ( e ) { return e . replace ( /-(\D)/g , function ( e , t ) { return t . toUpperCase ( ) } ) } function r ( e ) { return e . replace ( /[A-Z]/g , function ( e ) { return "-" + e } ) } var i = this , a , s ; if ( "object" == typeof e ) m ( e , function ( e , t ) { i . css ( e , t ) } ) ; else if ( o ( t ) ) e = n ( e ) , "number" != typeof t || T [ e ] || ( t += "px" ) , i . each ( function ( ) { var n = this . style ; if ( s = L [ e ] , s && s . set ) return void s . set ( this , t ) ; try { this . style [ B [ e ] || e ] = t } catch ( i ) { } ( null === t || "" === t ) && ( n . removeProperty ? n . removeProperty ( r ( e ) ) : n . removeAttribute ( e ) ) } ) ; else { if ( a = i [ 0 ] , s = L [ e ] , s && s . get ) return s . get ( a ) ; if ( a . ownerDocument . defaultView ) try { return a . ownerDocument . defaultView . getComputedStyle ( a , null ) . getPropertyValue ( r ( e ) ) } catch ( l ) { return S } else if ( a . currentStyle ) return a . currentStyle [ n ( e ) ] } return i } , remove : function ( ) { for ( var e = this , t , n = this . length ; n -- ; ) t = e [ n ] , k . clean ( t ) , t . parentNode && t . parentNode . removeChild ( t ) ; return this } , empty : function ( ) { for ( var e = this , t , n = this . length ; n -- ; ) for ( t = e [ n ] ; t . firstChild ; ) t . removeChild ( t . firstChild ) ; return this } , html : function ( e ) { var t = this , n ; if ( o ( e ) ) { n = t . length ; try { for ( ; n -- ; ) t [ n ] . innerHTML = e } catch ( r ) { f ( t [ n ] ) . empty ( ) . append ( e ) } return t } return t [ 0 ] ? t [ 0 ] . innerHTML : "" } , text : function ( e ) { var t = this , n ; if ( o ( e ) ) { for ( n = t . length ; n -- ; ) "innerText" in t [ n ] ? t [ n ] . innerText = e : t [ 0 ] . textContent = e ; return t } return t [ 0 ] ? t [ 0 ] . innerText || t [ 0 ] . textContent : "" } , append : function ( ) { return c ( this , arguments , function ( e ) { 1 === this . nodeType && this . appendChild ( e ) } ) } , prepend : function ( ) { return c ( this , arguments , function ( e ) { 1 === this . nodeType && this . insertBefore ( e , this . firstChild ) } , ! 0 ) } , before : function ( ) { var e = this ; return e [ 0 ] && e [ 0 ] . parentNode ? c ( e , arguments , function ( e ) { this . parentNode . insertBefore ( e , this ) } ) : e } , after : function ( ) { var e = this ; return e [ 0 ] && e [ 0 ] . parentNode ? c ( e , arguments , function ( e ) { this . parentNode . insertBefore ( e , this . nextSibling ) } , ! 0 ) : e } , appendTo : function ( e ) { return f ( e ) . append ( this ) , this } , prependTo : function ( e ) { return f ( e ) . prepend ( this ) , this } , replaceWith : function ( e ) { return this . before ( e ) . remove ( ) } , wrap : function ( e ) { return d ( this , e ) } , wrapAll : function ( e ) { return d ( this , e , ! 0 ) } , wrapInner : function ( e ) { return this . each ( function ( ) { f ( this ) . contents ( ) . wrapAll ( e ) } ) , this } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { f ( this ) . replaceWith ( this . childNodes ) } ) } , clone : function ( ) { var e = [ ] ; return this . each ( function ( ) { e . push ( this . cloneNode ( ! 0 ) ) } ) , f ( e ) } , addClass : function ( e ) { return this . toggleClass ( e , ! 0 ) } , removeClass : function ( e ) { return this . toggleClass ( e , ! 1 ) } , toggleClass : function ( e , t ) { var n = this ; return "string" != typeof e ? n : ( - 1 !== e . indexOf ( " " ) ? m ( e . split ( " " ) , function ( ) { n . toggleClass ( this , t ) } ) : n . each ( function ( n , r ) { var i , o ; o = u ( r , e ) , o !== t && ( i = r . className , o ? r . className = h ( ( " " + i + " " ) . replace ( " " + e + " " , " " ) ) : r . className += i ? " " + e : e ) } ) , n ) } , hasClass : function ( e ) { return u ( this [ 0 ] , e ) } , each : function ( e ) { return m ( this , e ) } , on : function ( e , t ) { return this . each ( function ( ) { k . bind ( this , e , t ) } ) } , off : function ( e , t ) { return this . each ( function ( ) { k . unbind ( this , e , t ) } ) } , trigger : function ( e ) { return this . each ( function ( ) { "object" == typeof e ? k . fire ( this , e . type , e ) : k . fire ( this , e ) } ) } , show : function ( ) { return this . css ( "display" , "" ) } , hide : function ( ) { return this . css ( "display" , "none" ) } , slice : function ( ) { return new f ( E . apply ( this , arguments ) ) } , eq : function ( e ) { return - 1 === e ? this . slice ( e ) : this . slice ( e , + e + 1 ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , find : function ( e ) { var t , n , r = [ ] ; for ( t = 0 , n = this . length ; n > t ; t ++ ) f . find ( e , this [ t ] , r ) ; return
} else if ( 1 == a && ( o = e . childNodes , 1 == o . length && o [ 0 ] && 1 == o [ 0 ] . nodeType && "bookmark" == o [ 0 ] . getAttribute ( "data-mce-type" ) && e . parentNode . insertBefore ( o [ 0 ] , e ) , o . length || /^(br|hr|input|img)$/i . test ( e . nodeName ) ) ) return ; i . remove ( e ) } return e } } var i = this , o = i . createRng ( ) , a , s , l ; return e && t ? ( o . setStart ( e . parentNode , i . nodeIndex ( e ) ) , o . setEnd ( t . parentNode , i . nodeIndex ( t ) ) , a = o . extractContents ( ) , o = i . createRng ( ) , o . setStart ( t . parentNode , i . nodeIndex ( t ) + 1 ) , o . setEnd ( e . parentNode , i . nodeIndex ( e ) + 1 ) , s = o . extractContents ( ) , l = e . parentNode , l . insertBefore ( r ( a ) , e ) , n ? l . replaceChild ( n , t ) : l . insertBefore ( t , e ) , l . insertBefore ( r ( s ) , e ) , i . remove ( e ) , n || t ) : void 0 } , bind : function ( e , t , n , r ) { var i = this ; if ( c . isArray ( e ) ) { for ( var o = e . length ; o -- ; ) e [ o ] = i . bind ( e [ o ] , t , n , r ) ; return e } return ! i . settings . collect || e !== i . doc && e !== i . win || i . boundEvents . push ( [ e , t , n , r ] ) , i . events . bind ( e , t , n , r || i ) } , unbind : function ( e , t , n ) { var r = this , i ; if ( c . isArray ( e ) ) { for ( i = e . length ; i -- ; ) e [ i ] = r . unbind ( e [ i ] , t , n ) ; return e } if ( r . boundEvents && ( e === r . doc || e === r . win ) ) for ( i = r . boundEvents . length ; i -- ; ) { var o = r . boundEvents [ i ] ; e != o [ 0 ] || t && t != o [ 1 ] || n && n != o [ 2 ] || this . events . unbind ( o [ 0 ] , o [ 1 ] , o [ 2 ] ) } return this . events . unbind ( e , t , n ) } , fire : function ( e , t , n ) { return this . events . fire ( e , t , n ) } , getContentEditable : function ( e ) { var t ; return e && 1 == e . nodeType ? ( t = e . getAttribute ( "data-mce-contenteditable" ) , t && "inherit" !== t ? t : "inherit" !== e . contentEditable ? e . contentEditable : null ) : null } , getContentEditableParent : function ( e ) { for ( var t = this . getRoot ( ) , n = null ; e && e !== t && ( n = this . getContentEditable ( e ) , null === n ) ; e = e . parentNode ) ; return n } , destroy : function ( ) { var t = this ; if ( t . boundEvents ) { for ( var n = t . boundEvents . length ; n -- ; ) { var r = t . boundEvents [ n ] ; this . events . unbind ( r [ 0 ] , r [ 1 ] , r [ 2 ] ) } t . boundEvents = null } e . setDocument && e . setDocument ( ) , t . win = t . doc = t . root = t . events = t . frag = null } , isChildOf : function ( e , t ) { for ( ; e ; ) { if ( t === e ) return ! 0 ; e = e . parentNode } return ! 1 } , dumpRng : function ( e ) { return "startContainer: " + e . startContainer . nodeName + ", startOffset: " + e . startOffset + ", endContainer: " + e . endContainer . nodeName + ", endOffset: " + e . endOffset } , _findSib : function ( e , t , n ) { var r = this , i = t ; if ( e ) for ( "string" == typeof i && ( i = function ( e ) { return r . is ( e , t ) } ) , e = e [ n ] ; e ; e = e [ n ] ) if ( i ( e ) ) return e ; return null } } , f . DOM = new f ( document ) , f } ) , r ( b , [ y , d ] , function ( e , t ) { function n ( ) { function e ( e , n ) { function i ( ) { a . remove ( l ) , s && ( s . onreadystatechange = s . onload = s = null ) , n ( ) } function o ( ) { "undefined" != typeof console && console . log && console . log ( "Failed to load: " + e ) } var a = r , s , l ; l = a . uniqueId ( ) , s = document . createElement ( "script" ) , s . id = l , s . type = "text/javascript" , s . src = t . _addCacheSuffix ( e ) , "onreadystatechange" in s ? s . onreadystatechange = function ( ) { /loaded|complete/ . test ( s . readyState ) && i ( ) } : s . onload = i , s . onerror = o , ( document . getElementsByTagName ( "head" ) [ 0 ] || document . body ) . appendChild ( s ) } var n = 0 , a = 1 , s = 2 , l = { } , c = [ ] , u = { } , d = [ ] , f = 0 , p ; this . isDone = function ( e ) { return l [ e ] == s } , this . markDone = function ( e ) { l [ e ] = s } , this . add = this . load = function ( e , t , r ) { var i = l [ e ] ; i == p && ( c . push ( e ) , l [ e ] = n ) , t && ( u [ e ] || ( u [ e ] = [ ] ) , u [ e ] . push ( { func : t , scope : r || this } ) ) } , this . loadQueue = function ( e , t ) { this . loadScripts ( c , e , t ) } , this . loadScripts = function ( t , n , r ) { function c ( e ) { i ( u [ e ] , function ( e ) { e . func . call ( e . scope ) } ) , u [ e ] = p } var h ; d . push ( { func : n , scope : r || this } ) , ( h = function ( ) { var n = o ( t ) ; t . length = 0 , i ( n , function ( t ) { return l [ t ] == s ? void c ( t ) : void ( l [ t ] != a && ( l [ t ] = a , f ++ , e ( t , function ( ) { l [ t ] = s , f -- , c ( t ) , h ( ) } ) ) ) } ) , f || ( i ( d , function ( e ) { e . func . call ( e . scope ) } ) , d . length = 0 ) } ) ( ) } } var r = e . DOM , i = t . each , o = t . grep ; return n . ScriptLoader = new n , n } ) , r ( C , [ b , d ] , function ( e , n ) { function r ( ) { var e = this ; e . items = [ ] , e . urls = { } , e . lookup = { } } var i = n . each ; return r . prototype = { get : function ( e ) { return this . lookup [ e ] ? this . lookup [ e ] . instance : t } , dependencies : function ( e ) { var t ; return this . lookup [ e ] && ( t = this . lookup [ e ] . dependencies ) , t || [ ] } , requireLangPack : function ( t , n ) { var i = r . language ; if ( i && r . languageLoad !== ! 1 ) { if ( n ) if ( n = "," + n + "," , - 1 != n . indexOf ( "," + i . substr ( 0 , 2 ) + "," ) ) i = i . substr ( 0 , 2 ) ; else if ( - 1 == n . indexOf ( "," + i + "," ) ) return ; e . ScriptLoader . add ( this . urls [ t ] + "/langs/" + i + ".js" ) } } , add : function ( e , t , n ) { return this . items . push ( t ) , this . lookup [ e ] = { instance : t , dependencies : n } , t } , createUrl : function ( e , t ) { return "object" == typeof t ? t : { prefix : e . prefix , resource
b = b . parent } } } , l ) , y = b = new e ( o . context || r . root _name , 11 ) , v . parse ( t ) , S && A . length && ( o . context ? o . invalid = ! 0 : c ( A ) ) , I && ( "body" == y . name || o . isRootContent ) && a ( ) , ! o . invalid ) { for ( k in p ) { for ( N = d [ k ] , C = p [ k ] , _ = C . length ; _ -- ; ) C [ _ ] . parent || C . splice ( _ , 1 ) ; for ( x = 0 , w = N . length ; w > x ; x ++ ) N [ x ] ( C , k , o ) } for ( x = 0 , w = f . length ; w > x ; x ++ ) if ( N = f [ x ] , N . name in h ) { for ( C = h [ N . name ] , _ = C . length ; _ -- ; ) C [ _ ] . parent || C . splice ( _ , 1 ) ; for ( _ = 0 , E = N . callbacks . length ; E > _ ; _ ++ ) N . callbacks [ _ ] ( C , N . name , o ) } } return y } , r . remove _trailing _brs && u . addNodeFilter ( "br" , function ( t ) { var n , r = t . length , i , o = s ( { } , l . getBlockElements ( ) ) , a = l . getNonEmptyElements ( ) , c , u , d , f , p , h ; for ( o . body = 1 , n = 0 ; r > n ; n ++ ) if ( i = t [ n ] , c = i . parent , o [ i . parent . name ] && i === c . lastChild ) { for ( d = i . prev ; d ; ) { if ( f = d . name , "span" !== f || "bookmark" !== d . attr ( "data-mce-type" ) ) { if ( "br" !== f ) break ; if ( "br" === f ) { i = null ; break } } d = d . prev } i && ( i . remove ( ) , c . isEmpty ( a ) && ( p = l . getElementRule ( c . name ) , p && ( p . removeEmpty ? c . remove ( ) : p . paddEmpty && ( c . empty ( ) . append ( new e ( "#text" , 3 ) ) . value = "\xa0" ) ) ) ) } else { for ( u = i ; c && c . firstChild === u && c . lastChild === u && ( u = c , ! o [ c . name ] ) ; ) c = c . parent ; u === c && ( h = new e ( "#text" , 3 ) , h . value = "\xa0" , i . replace ( h ) ) } } ) , r . allow _html _in _named _anchor || u . addAttributeFilter ( "id,name" , function ( e ) { for ( var t = e . length , n , r , i , o ; t -- ; ) if ( o = e [ t ] , "a" === o . name && o . firstChild && ! o . attr ( "href" ) ) { i = o . parent , n = o . lastChild ; do r = n . prev , i . insert ( n , o ) , n = r ; while ( n ) } } ) , r . validate && l . getValidClasses ( ) && u . addAttributeFilter ( "class" , function ( e ) { for ( var t = e . length , n , r , i , o , a , s = l . getValidClasses ( ) , c , u ; t -- ; ) { for ( n = e [ t ] , r = n . attr ( "class" ) . split ( " " ) , a = "" , i = 0 ; i < r . length ; i ++ ) o = r [ i ] , u = ! 1 , c = s [ "*" ] , c && c [ o ] && ( u = ! 0 ) , c = s [ n . name ] , u || ! c || c [ o ] || ( u = ! 0 ) , u && ( a && ( a += " " ) , a += o ) ; a . length || ( a = null ) , n . attr ( "class" , a ) } } ) } } ) , r ( S , [ g , d ] , function ( e , t ) { var n = t . makeMap ; return function ( t ) { var r = [ ] , i , o , a , s , l ; return t = t || { } , i = t . indent , o = n ( t . indent _before || "" ) , a = n ( t . indent _after || "" ) , s = e . getEncodeFunc ( t . entity _encoding || "raw" , t . entities ) , l = "html" == t . element _format , { start : function ( e , t , n ) { var c , u , d , f ; if ( i && o [ e ] && r . length > 0 && ( f = r [ r . length - 1 ] , f . length > 0 && "\n" !== f && r . push ( "\n" ) ) , r . push ( "<" , e ) , t ) for ( c = 0 , u = t . length ; u > c ; c ++ ) d = t [ c ] , r . push ( " " , d . name , '="' , s ( d . value , ! 0 ) , '"' ) ; r [ r . length ] = ! n || l ? ">" : " />" , n && i && a [ e ] && r . length > 0 && ( f = r [ r . length - 1 ] , f . length > 0 && "\n" !== f && r . push ( "\n" ) ) } , end : function ( e ) { var t ; r . push ( "</" , e , ">" ) , i && a [ e ] && r . length > 0 && ( t = r [ r . length - 1 ] , t . length > 0 && "\n" !== t && r . push ( "\n" ) ) } , text : function ( e , t ) { e . length > 0 && ( r [ r . length ] = t ? e : s ( e ) ) } , cdata : function ( e ) { r . push ( "<![CDATA[" , e , "]]>" ) } , comment : function ( e ) { r . push ( "<!--" , e , "-->" ) } , pi : function ( e , t ) { t ? r . push ( "<?" , e , " " , t , "?>" ) : r . push ( "<?" , e , "?>" ) , i && r . push ( "\n" ) } , doctype : function ( e ) { r . push ( "<!DOCTYPE" , e , ">" , i ? "\n" : "" ) } , reset : function ( ) { r . length = 0 } , getContent : function ( ) { return r . join ( "" ) . replace ( /\n$/ , "" ) } } } } ) , r ( T , [ S , E ] , function ( e , t ) { return function ( n , r ) { var i = this , o = new e ( n ) ; n = n || { } , n . validate = "validate" in n ? n . validate : ! 0 , i . schema = r = r || new t , i . writer = o , i . serialize = function ( e ) { function t ( e ) { var n = i [ e . type ] , s , l , c , u , d , f , p , h , m ; if ( n ) n ( e ) ; else { if ( s = e . name , l = e . shortEnded , c = e . attributes , a && c && c . length > 1 ) { for ( f = [ ] , f . map = { } , m = r . getElementRule ( e . name ) , p = 0 , h = m . attributesOrder . length ; h > p ; p ++ ) u = m . attributesOrder [ p ] , u in c . map && ( d = c . map [ u ] , f . map [ u ] = d , f . push ( { name : u , value : d } ) ) ; for ( p = 0 , h = c . length ; h > p ; p ++ ) u = c [ p ] . name , u in f . map || ( d = c . map [ u ] , f . map [ u ] = d , f . push ( { name : u , value : d } ) ) ; c = f } if ( o . start ( e . name , c , l ) , ! l ) { if ( e = e . firstChild ) do t ( e ) ; while ( e = e . next ) ; o . end ( s ) } } } var i , a ; return a = n . validate , i = { 3 : function ( e ) { o . text ( e . value , e . raw ) } , 8 : function ( e ) { o . comment ( e . value ) } , 7 : function ( e ) { o . pi ( e . name , e . value ) } , 10 : function ( e ) { o . doctype ( e . value ) } , 4 : function ( e ) { o . cdata ( e . value ) } , 11 : function ( e ) { if ( e = e . firstChild ) do t ( e ) ; while ( e = e . next ) } } , o . reset ( ) , 1 != e . type || n . inner ? i [ 11 ] ( e ) : t ( e ) , o . getContent ( ) } } } ) , r ( R , [ y , k , g , T , _ , E , u , d ] , function ( e , t , n , r , i , o , a , s ) { var l = s . each , c = s . trim , u = e . DOM ; return function ( e , i ) { var s , d , f ; return i && ( s = i . dom , d = i . schema ) , s = s || u , d = d || new o ( e ) , e . entity _encoding = e . entity _encoding || "named" , e . remove _trailing _brs = "remove_trailing_brs" in e ? e . remove _trailing _brs : ! 0 , f = new t ( e , d ) , f . addAttributeFilter ( "data-mce-tabindex" , function ( e , t ) { for ( var n = e . length , r ; n -- ; ) r = e [ n ] , r . attr ( "tabindex" , r . attributes . map [ " data -
} "border" == t && n && ( s += "padding:0 2px;" ) , s += t + ":" + n + ";" } } ) , e . fire ( "AfterPreviewFormats" ) , a . remove ( o ) , s } var n = e . each ; return { getCssText : t } } ) , r ( O , [ h , x , L , M , d , P ] , function ( e , t , n , r , i , o ) { return function ( a ) { function s ( e ) { return e . nodeType && ( e = e . nodeName ) , ! ! a . schema . getTextBlockElements ( ) [ e . toLowerCase ( ) ] } function l ( e , t ) { return U . getParents ( e , t , U . getRoot ( ) ) } function c ( e ) { return 1 === e . nodeType && "_mce_caret" === e . id } function u ( ) { p ( { valigntop : [ { selector : "td,th" , styles : { verticalAlign : "top" } } ] , valignmiddle : [ { selector : "td,th" , styles : { verticalAlign : "middle" } } ] , valignbottom : [ { selector : "td,th" , styles : { verticalAlign : "bottom" } } ] , alignleft : [ { selector : "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li" , styles : { textAlign : "left" } , defaultBlock : "div" } , { selector : "img,table" , collapsed : ! 1 , styles : { "float" : "left" } } ] , aligncenter : [ { selector : "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li" , styles : { textAlign : "center" } , defaultBlock : "div" } , { selector : "img" , collapsed : ! 1 , styles : { display : "block" , marginLeft : "auto" , marginRight : "auto" } } , { selector : "table" , collapsed : ! 1 , styles : { marginLeft : "auto" , marginRight : "auto" } } ] , alignright : [ { selector : "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li" , styles : { textAlign : "right" } , defaultBlock : "div" } , { selector : "img,table" , collapsed : ! 1 , styles : { "float" : "right" } } ] , alignjustify : [ { selector : "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li" , styles : { textAlign : "justify" } , defaultBlock : "div" } ] , bold : [ { inline : "strong" , remove : "all" } , { inline : "span" , styles : { fontWeight : "bold" } } , { inline : "b" , remove : "all" } ] , italic : [ { inline : "em" , remove : "all" } , { inline : "span" , styles : { fontStyle : "italic" } } , { inline : "i" , remove : "all" } ] , underline : [ { inline : "span" , styles : { textDecoration : "underline" } , exact : ! 0 } , { inline : "u" , remove : "all" } ] , strikethrough : [ { inline : "span" , styles : { textDecoration : "line-through" } , exact : ! 0 } , { inline : "strike" , remove : "all" } ] , forecolor : { inline : "span" , styles : { color : "%value" } , links : ! 0 , remove _similar : ! 0 } , hilitecolor : { inline : "span" , styles : { backgroundColor : "%value" } , links : ! 0 , remove _similar : ! 0 } , fontname : { inline : "span" , styles : { fontFamily : "%value" } } , fontsize : { inline : "span" , styles : { fontSize : "%value" } } , fontsize _class : { inline : "span" , attributes : { "class" : "%value" } } , blockquote : { block : "blockquote" , wrapper : 1 , remove : "all" } , subscript : { inline : "sub" } , superscript : { inline : "sup" } , code : { inline : "code" } , link : { inline : "a" , selector : "a" , remove : "all" , split : ! 0 , deep : ! 0 , onmatch : function ( ) { return ! 0 } , onformat : function ( e , t , n ) { at ( n , function ( t , n ) { U . setAttrib ( e , n , t ) } ) } } , removeformat : [ { selector : "b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q" , remove : "all" , split : ! 0 , expand : ! 1 , block _expand : ! 0 , deep : ! 0 } , { selector : "span" , attributes : [ "style" , "class" ] , remove : "empty" , split : ! 0 , expand : ! 1 , deep : ! 0 } , { selector : "*" , attributes : [ "style" , "class" ] , split : ! 1 , expand : ! 1 , deep : ! 0 } ] } ) , at ( "p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp" . split ( /\s/ ) , function ( e ) { p ( e , { block : e , remove : "all" } ) } ) , p ( a . settings . formats ) } function d ( ) { a . addShortcut ( "ctrl+b" , "bold_desc" , "Bold" ) , a . addShortcut ( "ctrl+i" , "italic_desc" , "Italic" ) , a . addShortcut ( "ctrl+u" , "underline_desc" , "Underline" ) ; for ( var e = 1 ; 6 >= e ; e ++ ) a . addShortcut ( "ctrl+" + e , "" , [ "FormatBlock" , ! 1 , "h" + e ] ) ; a . addShortcut ( "ctrl+7" , "" , [ "FormatBlock" , ! 1 , "p" ] ) , a . addShortcut ( "ctrl+8" , "" , [ "FormatBlock" , ! 1 , "div" ] ) , a . addShortcut ( "ctrl+9" , "" , [ "FormatBlock" , ! 1 , "address" ] ) } function f ( e ) { return e ? V [ e ] : V } function p ( e , t ) { e && ( "string" != typeof e ? at ( e , function ( e , t ) { p ( t , e ) } ) : ( t = t . length ? t : [ t ] , at ( t , function ( e ) { e . deep === tt && ( e . deep = ! e . selector ) , e . split === tt && ( e . split = ! e . selector || e . inline ) , e . remove === tt && e . selector && ! e . inline && ( e . remove = "none" ) , e . selector && e . inline && ( e . mixed = ! 0 , e . block _expand = ! 0 ) , "string" == typeof e . classes && ( e . classes = e . classes . split ( /\s+/ ) ) } ) , V [ e ] = t ) ) } function h ( e ) { return e && V [ e ] && delete V [ e ] , V } function m ( e ) { var t ; return a . dom . getParent ( e , function ( e ) { return t = a . dom . getStyle ( e , "text-decoration" ) , t && "none" !== t } ) , t } function g ( e ) { var t ; 1 === e . nodeType && e . parentNode && 1 === e . parentNode . nodeType && ( t = m ( e . parentNode ) , a . dom . getStyle ( e , "color" ) && t ? a . dom . setStyle ( e , "text-decoration" , t ) : a . dom . getStyle ( e , "textdecoration" ) === t && a . dom . setStyle ( e , "text-decoration" , null ) ) } function v ( t , n , r ) { funct
} , "InsertUnorderedList,InsertOrderedList" : function ( e ) { var t , n ; x ( e ) , t = k . getParent ( S . getNode ( ) , "ol,ul" ) , t && ( n = t . parentNode , /^(H[1-6]|P|ADDRESS|PRE)$/ . test ( n . nodeName ) && ( E ( ) , k . split ( n , t ) , N ( ) ) ) } , "Bold,Italic,Underline,Strikethrough,Superscript,Subscript" : function ( e ) { _ ( e ) } , "ForeColor,HiliteColor,FontName" : function ( e , t , n ) { _ ( e , n ) } , FontSize : function ( e , t , n ) { var r , i ; n >= 1 && 7 >= n && ( i = d ( R . font _size _style _values ) , r = d ( R . font _size _classes ) , n = r ? r [ n - 1 ] || n : i [ n - 1 ] || n ) , _ ( e , n ) } , RemoveFormat : function ( e ) { A . remove ( e ) } , mceBlockQuote : function ( ) { _ ( "blockquote" ) } , FormatBlock : function ( e , t , n ) { return _ ( n || "p" ) } , mceCleanup : function ( ) { var e = S . getBookmark ( ) ; r . setContent ( r . getContent ( { cleanup : m } ) , { cleanup : m } ) , S . moveToBookmark ( e ) } , mceRemoveNode : function ( e , t , n ) { var i = n || S . getNode ( ) ; i != r . getBody ( ) && ( E ( ) , r . dom . remove ( i , m ) , N ( ) ) } , mceSelectNodeDepth : function ( e , t , n ) { var i = 0 ; k . getParent ( S . getNode ( ) , function ( e ) { return 1 == e . nodeType && i ++ == n ? ( S . select ( e ) , g ) : void 0 } , r . getBody ( ) ) } , mceSelectNode : function ( e , t , n ) { S . select ( n ) } , mceInsertContent : function ( t , n , o ) { function a ( e ) { function t ( e ) { return r [ e ] && 3 == r [ e ] . nodeType } var n , r , i ; return n = S . getRng ( ! 0 ) , r = n . startContainer , i = n . startOffset , 3 == r . nodeType && ( i > 0 ? e = e . replace ( /^ / , " " ) : t ( "previousSibling" ) || ( e = e . replace ( /^ / , " " ) ) , i < r . length ? e = e . replace ( / (<br>|)$/ , " " ) : t ( "nextSibling" ) || ( e = e . replace ( /( | )(<br>|)$/ , " " ) ) ) , e } function l ( e ) { if ( w ) for ( b = e . firstChild ; b ; b = b . walk ( ! 0 ) ) _ [ b . name ] && b . attr ( "data-mce-new" , "true" ) } function c ( ) { if ( w ) { var e = r . getBody ( ) , t = new i ( k ) ; s ( k . select ( "*[data-mce-new]" ) , function ( n ) { n . removeAttribute ( "data-mce-new" ) ; for ( var r = n . parentNode ; r && r != e ; r = r . parentNode ) t . compare ( r , n ) && k . remove ( n , ! 0 ) } ) } } var u , d , f , h , m , g , v , y , b , C , x , w , _ = r . schema . getTextInlineElements ( ) ; "string" != typeof o && ( w = o . merge , o = o . content ) , /^ | $/ . test ( o ) && ( o = a ( o ) ) , u = r . parser , d = new e ( { } , r . schema ) , x = '<span id="mce_marker" data-mce-type="bookmark">​</span>' , g = { content : o , format : "html" , selection : ! 0 } , r . fire ( "BeforeSetContent" , g ) , o = g . content , - 1 == o . indexOf ( "{$caret}" ) && ( o += "{$caret}" ) , o = o . replace ( /\{\$caret\}/ , x ) , y = S . getRng ( ) ; var E = y . startContainer || ( y . parentElement ? y . parentElement ( ) : null ) , N = r . getBody ( ) ; E === N && S . isCollapsed ( ) && k . isBlock ( N . firstChild ) && k . isEmpty ( N . firstChild ) && ( y = k . createRng ( ) , y . setStart ( N . firstChild , 0 ) , y . setEnd ( N . firstChild , 0 ) , S . setRng ( y ) ) , S . isCollapsed ( ) || r . getDoc ( ) . execCommand ( "Delete" , ! 1 , null ) , f = S . getNode ( ) ; var T = { context : f . nodeName . toLowerCase ( ) } ; if ( m = u . parse ( o , T ) , l ( m ) , b = m . lastChild , "mce_marker" == b . attr ( "id" ) ) for ( v = b , b = b . prev ; b ; b = b . walk ( ! 0 ) ) if ( 3 == b . type || ! k . isBlock ( b . name ) ) { r . schema . isValidChild ( b . parent . name , "span" ) && b . parent . insert ( v , b , "br" === b . name ) ; break } if ( T . invalid ) { for ( S . setContent ( x ) , f = S . getNode ( ) , h = r . getBody ( ) , 9 == f . nodeType ? f = b = h : b = f ; b !== h ; ) f = b , b = b . parentNode ; o = f == h ? h . innerHTML : k . getOuterHTML ( f ) , o = d . serialize ( u . parse ( o . replace ( /<span (id="mce_marker"|id=mce_marker).+?<\/span>/i , function ( ) { return d . serialize ( m ) } ) ) ) , f == h ? k . setHTML ( h , o ) : k . setOuterHTML ( f , o ) } else o = d . serialize ( m ) , b = f . firstChild , C = f . lastChild , ! b || b === C && "BR" === b . nodeName ? k . setHTML ( f , o ) : S . setContent ( o ) ; c ( ) , v = k . get ( "mce_marker" ) , S . scrollIntoView ( v ) , y = k . createRng ( ) , b = v . previousSibling , b && 3 == b . nodeType ? ( y . setStart ( b , b . nodeValue . length ) , p || ( C = v . nextSibling , C && 3 == C . nodeType && ( b . appendData ( C . data ) , C . parentNode . removeChild ( C ) ) ) ) : ( y . setStartBefore ( v ) , y . setEndBefore ( v ) ) , k . remove ( v ) , S . setRng ( y ) , r . fire ( "SetContent" , g ) , r . addVisual ( ) } , mceInsertRawHTML : function ( e , t , n ) { S . setContent ( "tiny_mce_marker" ) , r . setContent ( r . getContent ( ) . replace ( /tiny_mce_marker/g , function ( ) { return n } ) ) } , mceToggleFormat : function ( e , t , n ) { _ ( n ) } , mceSetContent : function ( e , t , n ) { r . setContent ( n ) } , "Indent,Outdent" : function ( e ) { var t , n , i ; t = R . indentation , n = /[a-z%]+$/i . exec ( t ) , t = parseInt ( t , 10 ) , y ( "InsertUnorderedList" ) || y ( "InsertOrderedList" ) ? x ( e ) : ( R . forced _root _block || k . getParent ( S . getNode ( ) , k . isBlock ) || A . apply ( "div" ) , s ( S . getSelectedBlocks ( ) , function ( o ) { if ( "LI" != o . nodeName ) { var a = r . getParam ( "indent_use_margin" , ! 1 ) ? "margin" : "padding" ; a += "rtl" == k . getStyle ( o , "direction" , ! 0 ) ? "Right" : "Left" , "outdent" == e ? ( i = Math . max ( 0 , parseInt ( o . style [ a ] || 0 , 10 ) - t ) , k . setStyle ( o , a , i ? i + n : "" ) ) : ( i = parseInt ( o . style [
} , focus : function ( e ) { var t = this , n , r , i ; return e && ( r = t . keyboardNav || t . parents ( ) . eq ( - 1 ) [ 0 ] . keyboardNav ) ? void r . focusFirst ( t ) : ( i = t . find ( "*" ) , t . statusbar && i . add ( t . statusbar . items ( ) ) , i . each ( function ( e ) { return e . settings . autofocus ? ( n = null , ! 1 ) : void ( e . canFocus && ( n = n || e ) ) } ) , n && n . focus ( ) , t ) } , replace : function ( e , t ) { for ( var n , r = this . items ( ) , i = r . length ; i -- ; ) if ( r [ i ] === e ) { r [ i ] = t ; break } i >= 0 && ( n = t . getEl ( ) , n && n . parentNode . removeChild ( n ) , n = e . getEl ( ) , n && n . parentNode . removeChild ( n ) ) , t . parent ( this ) } , create : function ( t ) { var n = this , i , a = [ ] ; return o . isArray ( t ) || ( t = [ t ] ) , o . each ( t , function ( t ) { t && ( t instanceof e || ( "string" == typeof t && ( t = { type : t } ) , i = o . extend ( { } , n . settings . defaults , t ) , t . type = i . type = i . type || t . type || n . settings . defaultType || ( i . defaults ? i . defaults . type : null ) , t = r . create ( i ) ) , a . push ( t ) ) } ) , a } , renderNew : function ( ) { var e = this ; return e . items ( ) . each ( function ( t , n ) { var r , i ; t . parent ( e ) , t . _rendered || ( r = e . getEl ( "body" ) , i = a . createFragment ( t . renderHtml ( ) ) , r . hasChildNodes ( ) && n <= r . childNodes . length - 1 ? r . insertBefore ( i , r . childNodes [ n ] ) : r . appendChild ( i ) , t . postRender ( ) ) } ) , e . _layout . applyClasses ( e ) , e . _lastRect = null , e } , append : function ( e ) { return this . add ( e ) . renderNew ( ) } , prepend : function ( e ) { var t = this ; return t . items ( ) . set ( t . create ( e ) . concat ( t . items ( ) . toArray ( ) ) ) , t . renderNew ( ) } , insert : function ( e , t , n ) { var r = this , i , o , a ; return e = r . create ( e ) , i = r . items ( ) , ! n && t < i . length - 1 && ( t += 1 ) , t >= 0 && t < i . length && ( o = i . slice ( 0 , t ) . toArray ( ) , a = i . slice ( t ) . toArray ( ) , i . set ( o . concat ( e , a ) ) ) , r . renderNew ( ) } , fromJSON : function ( e ) { var t = this ; for ( var n in e ) t . find ( "#" + n ) . value ( e [ n ] ) ; return t } , toJSON : function ( ) { var e = this , t = { } ; return e . find ( "*" ) . each ( function ( e ) { var n = e . name ( ) , r = e . value ( ) ; n && "undefined" != typeof r && ( t [ n ] = r ) } ) , t } , preRender : function ( ) { } , renderHtml : function ( ) { var e = this , t = e . _layout , n = this . settings . role ; return e . preRender ( ) , t . preRender ( e ) , '<div id="' + e . _id + '" class="' + e . classes ( ) + '"' + ( n ? ' role="' + this . settings . role + '"' : "" ) + '><div id="' + e . _id + '-body" class="' + e . classes ( "body" ) + '">' + ( e . settings . html || "" ) + t . renderHtml ( e ) + "</div></div>" } , postRender : function ( ) { var e = this , t ; return e . items ( ) . exec ( "postRender" ) , e . _super ( ) , e . _layout . postRender ( e ) , e . _rendered = ! 0 , e . settings . style && a . css ( e . getEl ( ) , e . settings . style ) , e . settings . border && ( t = e . borderBox ( ) , a . css ( e . getEl ( ) , { "border-top-width" : t . top , "border-right-width" : t . right , "border-bottom-width" : t . bottom , "border-left-width" : t . left } ) ) , e . parent ( ) || ( e . keyboardNav = new i ( { root : e } ) ) , e } , initLayoutRect : function ( ) { var e = this , t = e . _super ( ) ; return e . _layout . recalc ( e ) , t } , recalc : function ( ) { var e = this , t = e . _layoutRect , n = e . _lastRect ; return n && n . w == t . w && n . h == t . h ? void 0 : ( e . _layout . recalc ( e ) , t = e . layoutRect ( ) , e . _lastRect = { x : t . x , y : t . y , w : t . w , h : t . h } , ! 0 ) } , reflow : function ( ) { var t ; if ( this . visible ( ) ) { for ( e . repaintControls = [ ] , e . repaintControls . map = { } , this . recalc ( ) , t = e . repaintControls . length ; t -- ; ) e . repaintControls [ t ] . repaint ( ) ; "flow" !== this . settings . layout && "stack" !== this . settings . layout && this . repaint ( ) , e . repaintControls = [ ] } return this } } ) } ) , r ( Q , [ Y ] , function ( e ) { function t ( ) { var e = document , t , n , r , i , o , a , s , l , c = Math . max ; return t = e . documentElement , n = e . body , r = c ( t . scrollWidth , n . scrollWidth ) , i = c ( t . clientWidth , n . clientWidth ) , o = c ( t . offsetWidth , n . offsetWidth ) , a = c ( t . scrollHeight , n . scrollHeight ) , s = c ( t . clientHeight , n . clientHeight ) , l = c ( t . offsetHeight , n . offsetHeight ) , { width : o > r ? i : r , height : l > a ? s : a } } return function ( n , r ) { function i ( ) { return a . getElementById ( r . handle || n ) } var o , a = document , s , l , c , u , d , f ; r = r || { } , l = function ( n ) { var l = t ( ) , p , h ; n . preventDefault ( ) , s = n . button , p = i ( ) , d = n . screenX , f = n . screenY , h = window . getComputedStyle ? window . getComputedStyle ( p , null ) . getPropertyValue ( "cursor" ) : p . runtimeStyle . cursor , o = a . createElement ( "div" ) , e . css ( o , { position : "absolute" , top : 0 , left : 0 , width : l . width , height : l . height , zIndex : 2147483647 , opacity : 1e-4 , cursor : h } ) , a . body . appendChild ( o ) , e . on ( a , "mousemove" , u ) , e . on ( a , "mouseup" , c ) , r . start ( n ) } , u = function ( e ) { return e . button !== s ? c ( e ) : ( e . deltaX = e . screenX - d , e . deltaY = e . screenY - f , e . preventDefault ( ) , void r . drag ( e ) ) } , c = function ( t ) { e . off ( a , "mousemove" , u ) , e . off ( a , "mouseup" , c ) , o . parentNode . removeChild ( o ) , r . stop && r . stop ( t ) } , this . destroy = function ( ) { e . off ( i ( ) ) } , e . on ( i ( ) , "mousedown" , l ) } } ) , r ( Z , [ Y , Q ] , function (
} ) } ) , a . add = function ( t , a , l , c ) { var u ; return u = l , "string" == typeof l ? l = function ( ) { o . execCommand ( u , ! 1 , null ) } : e . isArray ( u ) && ( l = function ( ) { o . execCommand ( u [ 0 ] , u [ 1 ] , u [ 2 ] ) } ) , n ( r ( t . toLowerCase ( ) ) , function ( e ) { var t = { func : l , scope : c || o , desc : o . translate ( a ) , alt : ! 1 , ctrl : ! 1 , shift : ! 1 } ; n ( r ( e , "+" ) , function ( e ) { switch ( e ) { case "alt" : case "ctrl" : case "shift" : t [ e ] = ! 0 ; break ; default : /^[0-9]{2,}$/ . test ( e ) ? t . keyCode = parseInt ( e , 10 ) : ( t . charCode = e . charCodeAt ( 0 ) , t . keyCode = i [ e ] || e . toUpperCase ( ) . charCodeAt ( 0 ) ) } } ) , s [ ( t . ctrl ? "ctrl" : "" ) + "," + ( t . alt ? "alt" : "" ) + "," + ( t . shift ? "shift" : "" ) + "," + t . keyCode ] = t } ) , ! 0 } } } ) , r ( dt , [ y , f , C , w , _ , R , T , H , O , I , F , z , W , V , b , l , at , E , k , st , u , d , ct , ut ] , function ( e , n , r , i , o , a , s , l , c , u , d , f , p , h , m , g , v , y , b , C , x , w , _ , E ) { function N ( e , t , i ) { var o = this , a , s ; a = o . documentBaseUrl = i . documentBaseURL , s = i . baseURI , o . settings = t = R ( { id : e , theme : "modern" , delta _width : 0 , delta _height : 0 , popup _css : "" , plugins : "" , document _base _url : a , add _form _submit _trigger : ! 0 , submit _patch : ! 0 , add _unload _trigger : ! 0 , convert _urls : ! 0 , relative _urls : ! 0 , remove _script _host : ! 0 , object _resizing : ! 0 , doctype : "<!DOCTYPE html>" , visual : ! 0 , font _size _style _values : "xx-small,x-small,small,medium,large,x-large,xx-large" , font _size _legacy _values : "xx-small,small,medium,large,x-large,xx-large,300%" , forced _root _block : "p" , hidden _input : ! 0 , padd _empty _editor : ! 0 , render _ui : ! 0 , indentation : "30px" , inline _styles : ! 0 , convert _fonts _to _spans : ! 0 , indent : "simple" , indent _before : "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist" , indent _after : "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist" , validate : ! 0 , entity _encoding : "named" , url _converter : o . convertURL , url _converter _scope : o , ie7 _compat : ! 0 } , t ) , r . language = t . language || "en" , r . languageLoad = t . language _load , r . baseURL = i . baseURL , o . id = t . id = e , o . isNotDirty = ! 0 , o . plugins = { } , o . documentBaseURI = new h ( t . document _base _url || a , { base _uri : s } ) , o . baseURI = s , o . contentCSS = [ ] , o . contentStyles = [ ] , o . shortcuts = new E ( o ) , o . execCommands = { } , o . queryStateCommands = { } , o . queryValueCommands = { } , o . loadedCSS = { } , t . target && ( o . targetElm = t . target ) , o . suffix = i . suffix , o . editorManager = i , o . inline = t . inline , t . cache _suffix && ( x . cacheSuffix = t . cache _suffix . replace ( /^[\?\&]+/ , "" ) ) , i . fire ( "SetupEditor" , o ) , o . execCallback ( "setup" , o ) , o . $ = n . overrideDefaults ( function ( ) { return { context : o . inline ? o . getBody ( ) : o . getDoc ( ) , element : o . getBody ( ) } } ) } var k = e . DOM , S = r . ThemeManager , T = r . PluginManager , R = w . extend , A = w . each , B = w . explode , D = w . inArray , L = w . trim , H = w . resolve , M = g . Event , P = x . gecko , O = x . ie ; return N . prototype = { render : function ( ) { function e ( ) { k . unbind ( window , "ready" , e ) , n . render ( ) } function t ( ) { var e = m . ScriptLoader ; if ( r . language && "en" != r . language && ! r . language _url && ( r . language _url = n . editorManager . baseURL + "/langs/" + r . language + ".js" ) , r . language _url && e . add ( r . language _url ) , r . theme && "function" != typeof r . theme && "-" != r . theme . charAt ( 0 ) && ! S . urls [ r . theme ] ) { var t = r . theme _url ; t = t ? n . documentBaseURI . toAbsolute ( t ) : "themes/" + r . theme + "/theme" + o + ".js" , S . load ( r . theme , t ) } w . isArray ( r . plugins ) && ( r . plugins = r . plugins . join ( " " ) ) , A ( r . external _plugins , function ( e , t ) { T . load ( t , e ) , r . plugins += " " + t } ) , A ( r . plugins . split ( /[ ,]/ ) , function ( e ) { if ( e = L ( e ) , e && ! T . urls [ e ] ) if ( "-" == e . charAt ( 0 ) ) { e = e . substr ( 1 , e . length ) ; var t = T . dependencies ( e ) ; A ( t , function ( e ) { var t = { prefix : "plugins/" , resource : e , suffix : "/plugin" + o + ".js" } ; e = T . createUrl ( t , e ) , T . load ( e . resource , e ) } ) } else T . load ( e , { prefix : "plugins/" , resource : e , suffix : "/plugin" + o + ".js" } ) } ) , e . loadQueue ( function ( ) { n . removed || n . init ( ) } ) } var n = this , r = n . settings , i = n . id , o = n . suffix ; if ( ! M . domLoaded ) return void k . bind ( window , "ready" , e ) ; if ( n . getElement ( ) && x . contentEditable ) { r . inline ? n . inline = ! 0 : ( n . orgVisibility = n . getElement ( ) . style . visibility , n . getElement ( ) . style . visibility = "hidden" ) ; var a = n . getElement ( ) . form || k . getParent ( i , "form" ) ; a && ( n . formElement = a , r . hidden _input && ! /TEXTAREA|INPUT/i . test ( n . getElement ( ) . nodeName ) && ( k . insertAfter ( k . create ( "input" , { type : "hidden" , name : i } ) , i ) , n . hasHiddenInput = ! 0 ) , n . formEventDelegate = function ( e ) { n . fire ( e . type , e ) } , k . bind ( a , " sub
return r = e . items ( ) , r . eq ( 0 ) . addClass ( n . firstControlClass ) , r . eq ( - 1 ) . addClass ( n . lastControlClass ) , r . each ( function ( e ) { n . controlClass && e . addClass ( n . controlClass ) , i += e . renderHtml ( ) } ) , i } , recalc : function ( ) { } , postRender : function ( ) { } } ) } ) , r ( _t , [ wt ] , function ( e ) { return e . extend ( { Defaults : { containerClass : "abs-layout" , controlClass : "abs-layout-item" } , recalc : function ( e ) { e . items ( ) . filter ( ":visible" ) . each ( function ( e ) { var t = e . settings ; e . layoutRect ( { x : t . x , y : t . y , w : t . w , h : t . h } ) , e . recalc && e . recalc ( ) } ) } , renderHtml : function ( e ) { return '<div id="' + e . _id + '-absend" class="' + e . classPrefix + 'abs-end"></div>' + this . _super ( e ) } } ) } ) , r ( Et , [ K , tt ] , function ( e , t ) { return e . extend ( { Mixins : [ t ] , Defaults : { classes : "widget tooltip tooltip-n" } , text : function ( e ) { var t = this ; return "undefined" != typeof e ? ( t . _value = e , t . _rendered && ( t . getEl ( ) . lastChild . innerHTML = t . encode ( e ) ) , t ) : t . _value } , renderHtml : function ( ) { var e = this , t = e . classPrefix ; return '<div id="' + e . _id + '" class="' + e . classes ( ) + '" role="presentation"><div class="' + t + 'tooltip-arrow"></div><div class="' + t + 'tooltip-inner">' + e . encode ( e . _text ) + "</div></div>" } , repaint : function ( ) { var e = this , t , n ; t = e . getEl ( ) . style , n = e . _layoutRect , t . left = n . x + "px" , t . top = n . y + "px" , t . zIndex = 131070 } } ) } ) , r ( Nt , [ K , Et ] , function ( e , t ) { var n , r = e . extend ( { init : function ( e ) { var t = this ; t . _super ( e ) , e = t . settings , t . canFocus = ! 0 , e . tooltip && r . tooltips !== ! 1 && ( t . on ( "mouseenter" , function ( n ) { var r = t . tooltip ( ) . moveTo ( - 65535 ) ; if ( n . control == t ) { var i = r . text ( e . tooltip ) . show ( ) . testMoveRel ( t . getEl ( ) , [ "bc-tc" , "bc-tl" , "bc-tr" ] ) ; r . toggleClass ( "tooltip-n" , "bc-tc" == i ) , r . toggleClass ( "tooltip-nw" , "bc-tl" == i ) , r . toggleClass ( "tooltip-ne" , "bc-tr" == i ) , r . moveRel ( t . getEl ( ) , i ) } else r . hide ( ) } ) , t . on ( "mouseleave mousedown click" , function ( ) { t . tooltip ( ) . hide ( ) } ) ) , t . aria ( "label" , e . ariaLabel || e . tooltip ) } , tooltip : function ( ) { return n || ( n = new t ( { type : "tooltip" } ) , n . renderTo ( ) ) , n } , active : function ( e ) { var t = this , n ; return e !== n && ( t . aria ( "pressed" , e ) , t . toggleClass ( "active" , e ) ) , t . _super ( e ) } , disabled : function ( e ) { var t = this , n ; return e !== n && ( t . aria ( "disabled" , e ) , t . toggleClass ( "disabled" , e ) ) , t . _super ( e ) } , postRender : function ( ) { var e = this , t = e . settings ; e . _rendered = ! 0 , e . _super ( ) , e . parent ( ) || ! t . width && ! t . height || ( e . initLayoutRect ( ) , e . repaint ( ) ) , t . autofocus && e . focus ( ) } , remove : function ( ) { this . _super ( ) , n && ( n . remove ( ) , n = null ) } } ) ; return r } ) , r ( kt , [ Nt ] , function ( e ) { return e . extend ( { Defaults : { classes : "widget btn" , role : "button" } , init : function ( e ) { var t = this , n ; t . on ( "click mousedown" , function ( e ) { e . preventDefault ( ) } ) , t . _super ( e ) , n = e . size , e . subtype && t . addClass ( e . subtype ) , n && t . addClass ( "btn-" + n ) } , icon : function ( e ) { var t = this , n = t . classPrefix ; if ( "undefined" == typeof e ) return t . settings . icon ; if ( t . settings . icon = e , e = e ? n + "ico " + n + "i-" + t . settings . icon : "" , t . _rendered ) { var r = t . getEl ( ) . firstChild , i = r . getElementsByTagName ( "i" ) [ 0 ] ; e ? ( i && i == r . firstChild || ( i = document . createElement ( "i" ) , r . insertBefore ( i , r . firstChild ) ) , i . className = e ) : i && r . removeChild ( i ) , t . text ( t . _text ) } return t } , repaint : function ( ) { var e = this . getEl ( ) . firstChild . style ; e . width = e . height = "100%" , this . _super ( ) } , text : function ( e ) { var t = this ; if ( t . _rendered ) { var n = t . getEl ( ) . lastChild . lastChild ; n && ( n . data = t . translate ( e ) ) } return t . _super ( e ) } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . classPrefix , r = e . settings . icon , i ; return i = e . settings . image , i ? ( r = "none" , "string" != typeof i && ( i = window . getSelection ? i [ 0 ] : i [ 1 ] ) , i = " style=\"background-image: url('" + i + "')\"" ) : i = "" , r = e . settings . icon ? n + "ico " + n + "i-" + r : "" , '<div id="' + t + '" class="' + e . classes ( ) + '" tabindex="-1" aria-labelledby="' + t + '"><button role="presentation" type="button" tabindex="-1">' + ( r ? '<i class="' + r + '"' + i + "></i>" : "" ) + ( e . _text ? ( r ? "\xa0" : "" ) + e . encode ( e . _text ) : "" ) + "</button></div>" } } ) } ) , r ( St , [ J ] , function ( e ) { return e . extend ( { Defaults : { defaultType : "button" , role : "group" } , renderHtml : function ( ) { var e = this , t = e . _layout ; return e . addClass ( "btn-group" ) , e . preRender ( ) , t . preRender ( e ) , '<div id="' + e . _id + '" class="' + e . classes ( ) + '"><div id="' + e . _id + '-body">' + ( e . settings . html || "" ) + t . renderHtml ( e ) + "</div></div>" } } ) } ) , r ( Tt , [ Nt ] , function ( e ) { return e . extend ( { Defaults : { classes : "checkbox" , role : "checkbox" , checked : ! 1 } , init : function ( e ) { var t = this ; t . _super ( e ) , t . on ( "click mousedown" , func
} } ) } ) , r ( Kt , [ J ] , function ( e ) { return e . extend ( { Defaults : { role : "toolbar" , layout : "flow" } , init : function ( e ) { var t = this ; t . _super ( e ) , t . addClass ( "toolbar" ) } , postRender : function ( ) { var e = this ; return e . items ( ) . addClass ( "toolbar-item" ) , e . _super ( ) } } ) } ) , r ( Gt , [ Kt ] , function ( e ) { return e . extend ( { Defaults : { role : "menubar" , containerCls : "menubar" , ariaRoot : ! 0 , defaults : { type : "menubutton" } } } ) } ) , r ( Xt , [ kt , G , Gt ] , function ( e , t , n ) { function r ( e , t ) { for ( ; e ; ) { if ( t === e ) return ! 0 ; e = e . parentNode } return ! 1 } var i = e . extend ( { init : function ( e ) { var t = this ; t . _renderOpen = ! 0 , t . _super ( e ) , t . addClass ( "menubtn" ) , e . fixedWidth && t . addClass ( "fixed-width" ) , t . aria ( "haspopup" , ! 0 ) , t . hasPopup = ! 0 } , showMenu : function ( ) { var e = this , n = e . settings , r ; return e . menu && e . menu . visible ( ) ? e . hideMenu ( ) : ( e . menu || ( r = n . menu || [ ] , r . length ? r = { type : "menu" , items : r } : r . type = r . type || "menu" , e . menu = t . create ( r ) . parent ( e ) . renderTo ( ) , e . fire ( "createmenu" ) , e . menu . reflow ( ) , e . menu . on ( "cancel" , function ( t ) { t . control . parent ( ) === e . menu && ( t . stopPropagation ( ) , e . focus ( ) , e . hideMenu ( ) ) } ) , e . menu . on ( "select" , function ( ) { e . focus ( ) } ) , e . menu . on ( "show hide" , function ( t ) { t . control == e . menu && e . activeMenu ( "show" == t . type ) , e . aria ( "expanded" , "show" == t . type ) } ) . fire ( "show" ) ) , e . menu . show ( ) , e . menu . layoutRect ( { w : e . layoutRect ( ) . w } ) , void e . menu . moveRel ( e . getEl ( ) , e . isRtl ( ) ? [ "br-tr" , "tr-br" ] : [ "bl-tl" , "tl-bl" ] ) ) } , hideMenu : function ( ) { var e = this ; e . menu && ( e . menu . items ( ) . each ( function ( e ) { e . hideMenu && e . hideMenu ( ) } ) , e . menu . hide ( ) ) } , activeMenu : function ( e ) { this . toggleClass ( "active" , e ) } , renderHtml : function ( ) { var e = this , t = e . _id , r = e . classPrefix , i = e . settings . icon , o ; return o = e . settings . image , o ? ( i = "none" , "string" != typeof o && ( o = window . getSelection ? o [ 0 ] : o [ 1 ] ) , o = " style=\"background-image: url('" + o + "')\"" ) : o = "" , i = e . settings . icon ? r + "ico " + r + "i-" + i : "" , e . aria ( "role" , e . parent ( ) instanceof n ? "menuitem" : "button" ) , '<div id="' + t + '" class="' + e . classes ( ) + '" tabindex="-1" aria-labelledby="' + t + '"><button id="' + t + '-open" role="presentation" type="button" tabindex="-1">' + ( i ? '<i class="' + i + '"' + o + "></i>" : "" ) + "<span>" + ( e . _text ? ( i ? "\xa0" : "" ) + e . encode ( e . _text ) : "" ) + '</span> <i class="' + r + 'caret"></i></button></div>' } , postRender : function ( ) { var e = this ; return e . on ( "click" , function ( t ) { t . control === e && r ( t . target , e . getEl ( ) ) && ( e . showMenu ( ) , t . aria && e . menu . items ( ) [ 0 ] . focus ( ) ) } ) , e . on ( "mouseenter" , function ( t ) { var n = t . control , r = e . parent ( ) , o ; n && r && n instanceof i && n . parent ( ) == r && ( r . items ( ) . filter ( "MenuButton" ) . each ( function ( e ) { e . hideMenu && e != n && ( e . menu && e . menu . visible ( ) && ( o = ! 0 ) , e . hideMenu ( ) ) } ) , o && ( n . focus ( ) , n . showMenu ( ) ) ) } ) , e . _super ( ) } , text : function ( e ) { var t = this , n , r ; if ( t . _rendered ) for ( r = t . getEl ( "open" ) . getElementsByTagName ( "span" ) , n = 0 ; n < r . length ; n ++ ) r [ n ] . innerHTML = ( t . settings . icon && e ? "\xa0" : "" ) + t . encode ( e ) ; return this . _super ( e ) } , remove : function ( ) { this . _super ( ) , this . menu && this . menu . remove ( ) } } ) ; return i } ) , r ( Jt , [ Xt ] , function ( e ) { return e . extend ( { init : function ( e ) { function t ( r ) { for ( var a = 0 ; a < r . length ; a ++ ) { if ( i = r [ a ] . selected || e . value === r [ a ] . value ) { o = o || r [ a ] . text , n . _value = r [ a ] . value ; break } r [ a ] . menu && t ( r [ a ] . menu ) } } var n = this , r , i , o , a ; n . _values = r = e . values , r && ( "undefined" != typeof e . value && t ( r ) , ! i && r . length > 0 && ( o = r [ 0 ] . text , n . _value = r [ 0 ] . value ) , e . menu = r ) , e . text = e . text || o || r [ 0 ] . text , n . _super ( e ) , n . addClass ( "listbox" ) , n . on ( "select" , function ( t ) { var r = t . control ; a && ( t . lastControl = a ) , e . multiple ? r . active ( ! r . active ( ) ) : n . value ( t . control . settings . value ) , a = r } ) } , value : function ( e ) { function t ( e , n ) { e . items ( ) . each ( function ( e ) { i = e . value ( ) === n , i && ( o = o || e . text ( ) ) , e . active ( i ) , e . menu && t ( e . menu , n ) } ) } function n ( t ) { for ( var r = 0 ; r < t . length ; r ++ ) i = t [ r ] . value == e , i && ( o = o || t [ r ] . text ) , t [ r ] . active = i , t [ r ] . menu && n ( t [ r ] . menu ) } var r = this , i , o , a ; return "undefined" != typeof e && ( r . menu ? t ( r . menu , e ) : ( a = r . settings . menu , n ( a ) ) , r . text ( o || this . settings . text ) ) , r . _super ( e ) } } ) } ) , r ( Qt , [ Nt , G , u ] , function ( e , t , n ) { return e . extend ( { Defaults : { border : 0 , role : "menuitem" } , init : function ( e ) { var t = this ; t . hasPopup = ! 0 , t . _super ( e ) , e = t . settings , t . addClass ( "menu-item" ) , e . menu && t . addClass ( "menu-item-expand" ) , e . preview && t . addClass ( "menu-item-preview" ) , ( "-" === t . _text || "|" === t . _text ) && ( t . addClass ( "menu-item-sep" ) , t . aria ( "role" , "separator" ) , t . _text = "-" ) , e . selectable && ( t . aria ( "role" , " menuitemchec