2016-01-19 23:18:33 -05:00
// 4.3.3 (2016-01-14)
! 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 ) { var r , i , o , a , l ; for ( r = 0 ; r < n . length ; r ++ ) { i = e , o = n [ r ] , a = o . split ( /[.\/]/ ) ; for ( var c = 0 ; c < a . length - 1 ; ++ c ) i [ a [ c ] ] === t && ( i [ a [ c ] ] = { } ) , i = i [ a [ c ] ] ; i [ a [ a . length - 1 ] ] = s [ o ] } if ( e . AMDLC _TESTS ) { l = e . privateModules || { } ; for ( o in s ) l [ o ] = s [ o ] ; for ( r = 0 ; r < n . length ; r ++ ) delete l [ n [ r ] ] ; e . privateModules = l } } var s = { } , l = "tinymce/geom/Rect" , c = "tinymce/util/Promise" , u = "tinymce/util/Delay" , d = "tinymce/dom/EventUtils" , f = "tinymce/dom/Sizzle" , h = "tinymce/Env" , p = "tinymce/util/Arr" , m = "tinymce/util/Tools" , g = "tinymce/dom/DomQuery" , v = "tinymce/html/Styles" , y = "tinymce/dom/TreeWalker" , b = "tinymce/dom/Range" , C = "tinymce/html/Entities" , x = "tinymce/dom/StyleSheetLoader" , w = "tinymce/dom/DOMUtils" , E = "tinymce/dom/ScriptLoader" , N = "tinymce/AddOnManager" , _ = "tinymce/dom/NodeType" , S = "tinymce/text/Zwsp" , k = "tinymce/caret/CaretContainer" , T = "tinymce/dom/RangeUtils" , R = "tinymce/NodeChange" , A = "tinymce/html/Node" , B = "tinymce/html/Schema" , D = "tinymce/html/SaxParser" , M = "tinymce/html/DomParser" , L = "tinymce/html/Writer" , P = "tinymce/html/Serializer" , H = "tinymce/dom/Serializer" , O = "tinymce/dom/TridentSelection" , I = "tinymce/util/VK" , F = "tinymce/dom/ControlSelection" , z = "tinymce/util/Fun" , W = "tinymce/caret/CaretCandidate" , V = "tinymce/geom/ClientRect" , U = "tinymce/text/ExtendingChar" , $ = "tinymce/caret/CaretPosition" , q = "tinymce/caret/CaretBookmark" , j = "tinymce/dom/BookmarkManager" , Y = "tinymce/dom/Selection" , X = "tinymce/dom/ElementUtils" , K = "tinymce/fmt/Preview" , G = "tinymce/Formatter" , J = "tinymce/UndoManager" , Q = "tinymce/EnterKey" , Z = "tinymce/ForceBlocks" , ee = "tinymce/EditorCommands" , te = "tinymce/util/URI" , ne = "tinymce/util/Class" , re = "tinymce/util/EventDispatcher" , ie = "tinymce/data/Binding" , oe = "tinymce/util/Observable" , ae = "tinymce/data/ObservableObject" , se = "tinymce/ui/Selector" , le = "tinymce/ui/Collection" , ce = "tinymce/ui/DomUtils" , ue = "tinymce/ui/BoxUtils" , de = "tinymce/ui/ClassList" , fe = "tinymce/ui/ReflowQueue" , he = "tinymce/ui/Control" , pe = "tinymce/ui/Factory" , me = "tinymce/ui/KeyboardNavigation" , ge = "tinymce/ui/Container" , ve = "tinymce/ui/DragHelper" , ye = "tinymce/ui/Scrollable" , be = "tinymce/ui/Panel" , Ce = "tinymce/ui/Movable" , xe = "tinymce/ui/Resizable" , we = "tinymce/ui/FloatPanel" , Ee = "tinymce/ui/Window" , Ne = "tinymce/ui/MessageBox" , _e = "tinymce/WindowManager" , Se = "tinymce/ui/Tooltip" , ke = "tinymce/ui/Widget" , Te = "tinymce/ui/Progress" , Re = "tinymce/ui/Notification" , Ae = "tinymce/NotificationManager" , Be = "tinymce/dom/NodePath" , De = "tinymce/util/Quirks" , Me = "tinymce/EditorObservable" , Le = "tinymce/Mode" , Pe = "tinymce/Shortcuts" , He = "tinymce/file/Uploader" , Oe = "tinymce/file/Conversions" , Ie = "tinymce/file/ImageScanner" , Fe = "tinymce/file/BlobCache" , ze = "tinymce/EditorUpload" , We = "tinymce/caret/CaretUtils" , Ve = "tinymce/caret/CaretWalker" , Ue = "tinymce/caret/FakeCaret" , $e = "tinymce/dom/Dimensions" , qe = "tinymce/caret/LineWalker" , je = "tinymce/caret/LineUtils" , Ye = "tinymce/DragDropOverrides" , Xe = "tinymce/SelectionOverrides" , Ke = "tinymce/Editor" , Ge = "tinymce/util/I18n" , Je = "tinymce/FocusManager" , Qe = "tinymce/EditorManager" , Ze = "tinymce/LegacyInput" , et = "tinymce/util/XHR" , tt = "tinymce/util/JSON" , nt = "tinymce/util/JSONRequest" , rt = "tinymce/util/JSONP" , it = "tinymce/util/LocalStorage" , ot = "tinymce/Compat" , at = "tinymce/ui/Layout" , st = "tinymce/ui/AbsoluteLayout" , lt = "tinymce/ui/Button" , ct = "tinymce/ui/ButtonGroup" , ut = "tinymce/ui/Checkbox" , dt = "tinymce/ui/ComboBox" , ft = "tinymce/ui/ColorBox" , ht = "tinymce/ui/PanelButton" , pt = "tinymce/ui/ColorButton" , mt = "tinymce/util/Color" , gt = "tinymce/ui/ColorPicker" , vt = "tinymce/ui/Path" , yt = "tinymce/ui/ElementPath" , bt = "tinymce/ui/FormItem" , Ct = " tinymce / ui
u = /(iPad|iPhone)/ . test ( n ) , f = "FormData" in window && "FileReader" in window && "URL" in window && ! ! URL . createObjectURL , h = e ( "only screen and (max-device-width: 480px)" ) && ( d || u ) , p = e ( "only screen and (min-width: 800px)" ) && ( d || u ) , s && ( i = ! 1 ) ; var m = ! u || f || n . match ( /AppleWebKit\/(\d*)/ ) [ 1 ] >= 534 ; return { opera : r , webkit : i , ie : o , gecko : l , mac : c , iOS : u , android : d , contentEditable : m , transparentSrc : "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" , caretAfter : 8 != o , range : window . getSelection && "Range" in window , documentMode : o && ! s ? document . documentMode || 7 : 10 , fileApi : f , ceFalse : o === ! 1 || o > 8 , desktop : ! h && ! p } } ) , r ( p , [ ] , function ( ) { function e ( e ) { var t = e , n , r ; if ( ! u ( e ) ) for ( t = [ ] , n = 0 , r = e . length ; r > n ; n ++ ) t [ n ] = e [ n ] ; return t } function n ( e , n , r ) { var i , o ; if ( ! e ) return 0 ; if ( r = r || e , e . length !== t ) { for ( i = 0 , o = e . length ; o > i ; i ++ ) if ( n . call ( r , e [ i ] , i , e ) === ! 1 ) return 0 } else for ( i in e ) if ( e . hasOwnProperty ( i ) && n . call ( r , e [ i ] , i , e ) === ! 1 ) return 0 ; return 1 } function r ( e , t ) { var r = [ ] ; return n ( e , function ( n , i ) { r . push ( t ( n , i , e ) ) } ) , r } function i ( e , t ) { var r = [ ] ; return n ( e , function ( n , i ) { ( ! t || t ( n , i , e ) ) && r . push ( n ) } ) , r } function o ( e , t ) { var n , r ; if ( e ) for ( n = 0 , r = e . length ; r > n ; n ++ ) if ( e [ n ] === t ) return n ; return - 1 } function a ( e , t , n , r ) { var i = 0 ; for ( arguments . length < 3 && ( n = e [ 0 ] ) ; i < e . length ; i ++ ) n = t . call ( r , n , e [ i ] , i ) ; return n } function s ( e , t , n ) { var r , i ; for ( r = 0 , i = e . length ; i > r ; r ++ ) if ( t . call ( n , e [ r ] , r , e ) ) return r ; return - 1 } function l ( e , n , r ) { var i = s ( e , n , r ) ; return - 1 !== i ? e [ i ] : t } function c ( e ) { return e [ e . length - 1 ] } var u = Array . isArray || function ( e ) { return "[object Array]" === Object . prototype . toString . call ( e ) } ; return { isArray : u , toArray : e , each : n , map : r , filter : i , indexOf : o , reduce : a , findIndex : s , find : l , last : c } } ) , r ( m , [ h , p ] , function ( e , n ) { function r ( e ) { return null === e || e === t ? "" : ( "" + e ) . replace ( h , "" ) } function i ( e , r ) { return r ? "array" == r && n . isArray ( e ) ? ! 0 : typeof e == r : e !== t } function o ( e , t , n ) { var r ; for ( e = e || [ ] , t = t || "," , "string" == typeof e && ( e = e . split ( t ) ) , n = n || { } , r = e . length ; r -- ; ) n [ e [ r ] ] = { } ; return n } function a ( e , t , n ) { var r = this , i , o , a , s , l , c = 0 ; if ( e = /^((static) )?([\w.]+)(:([\w.]+))?/ . exec ( e ) , a = e [ 3 ] . match ( /(^|\.)(\w+)$/i ) [ 2 ] , o = r . createNS ( e [ 3 ] . replace ( /\.\w+$/ , "" ) , n ) , ! o [ a ] ) { if ( "static" == e [ 2 ] ) return o [ a ] = t , void ( this . onCreate && this . onCreate ( e [ 2 ] , e [ 3 ] , o [ a ] ) ) ; t [ a ] || ( t [ a ] = function ( ) { } , c = 1 ) , o [ a ] = t [ a ] , r . extend ( o [ a ] . prototype , t ) , e [ 5 ] && ( i = r . resolve ( e [ 5 ] ) . prototype , s = e [ 5 ] . match ( /\.(\w+)$/i ) [ 1 ] , l = o [ a ] , c ? o [ a ] = function ( ) { return i [ s ] . apply ( this , arguments ) } : o [ a ] = function ( ) { return this . parent = i [ s ] , l . apply ( this , arguments ) } , o [ a ] . prototype [ a ] = o [ a ] , r . each ( i , function ( e , t ) { o [ a ] . prototype [ t ] = i [ t ] } ) , r . each ( t , function ( e , t ) { i [ t ] ? o [ a ] . prototype [ t ] = function ( ) { return this . parent = i [ t ] , e . apply ( this , arguments ) } : t != a && ( o [ a ] . prototype [ t ] = e ) } ) ) , r . each ( t [ "static" ] , function ( e , t ) { o [ a ] [ t ] = e } ) } } function s ( e , n ) { var r , i , o , a = arguments , s ; for ( r = 1 , i = a . length ; i > r ; r ++ ) { n = a [ r ] ; for ( o in n ) n . hasOwnProperty ( o ) && ( s = n [ o ] , s !== t && ( e [ o ] = s ) ) } return e } function l ( e , t , r , i ) { i = i || this , e && ( r && ( e = e [ r ] ) , n . each ( e , function ( e , n ) { return t . call ( i , e , n , r ) === ! 1 ? ! 1 : void l ( e , t , r , i ) } ) ) } function c ( e , t ) { var n , r ; for ( t = t || window , e = e . split ( "." ) , n = 0 ; n < e . length ; n ++ ) r = e [ n ] , t [ r ] || ( t [ r ] = { } ) , t = t [ r ] ; return t } function u ( e , t ) { var n , r ; for ( t = t || window , e = e . split ( "." ) , n = 0 , r = e . length ; r > n && ( t = t [ e [ n ] ] , t ) ; n ++ ) ; return t } function d ( e , t ) { return ! e || i ( e , "array" ) ? e : n . map ( e . split ( t || "," ) , r ) } function f ( t ) { var n = e . cacheSuffix ; return n && ( t += ( - 1 === t . indexOf ( "?" ) ? "?" : "&" ) + n ) , t } var h = /^\s*|\s*$/g ; return { trim : r , isArray : n . isArray , is : i , toArray : n . toArray , makeMap : o , each : n . each , map : n . map , grep : n . filter , inArray : n . indexOf , extend : s , create : a , walk : l , createNS : c , resolve : u , explode : d , _addCacheSuffix : f } } ) , r ( g , [ d , f , m , h ] , function ( e , n , r , i ) { function o ( e ) { return "undefined" != typeof e } function a ( e ) { return "string" == typeof e } function s ( e ) { return e && e == e . window } function l ( e , t ) { var n , r , i ; for ( t = t || w , i = t . createElement ( "div" ) , n = t . createDocumentFragment ( ) , i . innerHTML = e ; r = i . firstChild ; ) n . appendChild ( r ) ; return n } function c ( e , t , n , r ) { var i ; if ( a ( t ) ) t = l ( t , v ( e [ 0 ] ) ) ; else if ( t . length && ! t . nodeType ) { if ( t = f . makeArray ( t ) , r ) for ( i = t . length - 1 ; i >= 0 ; i -- ) c ( e , t [ i ] , n , r ) ; else for ( i = 0 ; i < t . length ; i ++ ) c ( e , t [ i ] , n , r ) ; return e } if ( t . nodeType ) for ( i = e . length ; i -- ; ) n . call ( e [ i ] , t ) ; return e } function u ( e , t ) { return e && t
} , add : function ( e , t , n , r , i ) { var o = this ; return this . run ( e , function ( e ) { var a ; return a = g ( t , "string" ) ? o . doc . createElement ( t ) : t , o . setAttribs ( a , n ) , r && ( r . nodeType ? a . appendChild ( r ) : o . setHTML ( a , r ) ) , i ? a : e . appendChild ( a ) } ) } , create : function ( e , t , n ) { return this . add ( this . doc . createElement ( e ) , e , t , n , 1 ) } , createHTML : function ( e , t , n ) { var r = "" , i ; r += "<" + e ; for ( i in t ) t . hasOwnProperty ( i ) && null !== t [ i ] && "undefined" != typeof t [ i ] && ( r += " " + i + '="' + this . encode ( t [ i ] ) + '"' ) ; return "undefined" != typeof n ? r + ">" + n + "</" + e + ">" : r + " />" } , createFragment : function ( e ) { var t , n , r = this . doc , i ; for ( i = r . createElement ( "div" ) , t = r . createDocumentFragment ( ) , e && ( i . innerHTML = e ) ; n = i . firstChild ; ) t . appendChild ( n ) ; return t } , remove : function ( e , t ) { return e = this . $$ ( e ) , t ? e . each ( function ( ) { for ( var e ; e = this . firstChild ; ) 3 == e . nodeType && 0 === e . data . length ? this . removeChild ( e ) : this . parentNode . insertBefore ( e , this ) } ) . remove ( ) : e . remove ( ) , e . length > 1 ? e . toArray ( ) : e [ 0 ] } , setStyle : function ( e , t , n ) { e = this . $$ ( e ) . css ( t , n ) , this . settings . update _styles && f ( this , e ) } , getStyle : function ( e , n , r ) { return e = this . $$ ( e ) , r ? e . css ( n ) : ( n = n . replace ( /-(\D)/g , function ( e , t ) { return t . toUpperCase ( ) } ) , "float" == n && ( n = l . ie && l . ie < 12 ? "styleFloat" : "cssFloat" ) , e [ 0 ] && e [ 0 ] . style ? e [ 0 ] . style [ n ] : t ) } , setStyles : function ( e , t ) { e = this . $$ ( e ) . css ( t ) , this . settings . update _styles && f ( this , e ) } , removeAllAttribs : function ( e ) { return this . run ( e , function ( e ) { var t , n = e . attributes ; for ( t = n . length - 1 ; t >= 0 ; t -- ) e . removeAttributeNode ( n . item ( t ) ) } ) } , setAttrib : function ( e , t , n ) { var r = this , i , o , a = r . settings ; "" === n && ( n = null ) , e = r . $$ ( e ) , i = e . attr ( t ) , e . length && ( o = r . attrHooks [ t ] , o && o . set ? o . set ( e , n , t ) : e . attr ( t , n ) , i != n && a . onSetAttrib && a . onSetAttrib ( { attrElm : e , attrName : t , attrValue : n } ) ) } , setAttribs : function ( e , t ) { var n = this ; n . $$ ( e ) . each ( function ( e , r ) { m ( t , function ( e , t ) { n . setAttrib ( r , t , e ) } ) } ) } , getAttrib : function ( e , t , n ) { var r = this , i , o ; return e = r . $$ ( e ) , e . length && ( i = r . attrHooks [ t ] , o = i && i . get ? i . get ( e , t ) : e . attr ( t ) ) , "undefined" == typeof o && ( o = n || "" ) , o } , getPos : function ( e , t ) { var r = this , i = 0 , o = 0 , a , s = r . doc , l = s . body , c ; if ( e = r . get ( e ) , t = t || l , e ) { if ( t === l && e . getBoundingClientRect && "static" === n ( l ) . css ( "position" ) ) return c = e . getBoundingClientRect ( ) , t = r . boxModel ? s . documentElement : l , i = c . left + ( s . documentElement . scrollLeft || l . scrollLeft ) - t . clientLeft , o = c . top + ( s . documentElement . scrollTop || l . scrollTop ) - t . clientTop , { x : i , y : o } ; for ( a = e ; a && a != t && a . nodeType ; ) i += a . offsetLeft || 0 , o += a . offsetTop || 0 , a = a . offsetParent ; for ( a = e . parentNode ; a && a != t && a . nodeType ; ) i -= a . scrollLeft || 0 , o -= a . scrollTop || 0 , a = a . parentNode } return { x : i , y : o } } , parseStyle : function ( e ) { return this . styles . parse ( e ) } , serializeStyle : function ( e , t ) { return this . styles . serialize ( e , t ) } , addStyle : function ( e ) { var t = this , n = t . doc , r , i ; if ( t !== p . DOM && n === document ) { var o = p . DOM . addedStyles ; if ( o = o || [ ] , o [ e ] ) return ; o [ e ] = ! 0 , p . DOM . addedStyles = o } i = n . getElementById ( "mceDefaultStyles" ) , i || ( i = n . createElement ( "style" ) , i . id = "mceDefaultStyles" , i . type = "text/css" , r = n . getElementsByTagName ( "head" ) [ 0 ] , r . firstChild ? r . insertBefore ( i , r . firstChild ) : r . appendChild ( i ) ) , i . styleSheet ? i . styleSheet . cssText += e : i . appendChild ( n . createTextNode ( e ) ) } , loadCSS : function ( e ) { var t = this , n = t . doc , r ; return t !== p . DOM && n === document ? void p . DOM . loadCSS ( e ) : ( e || ( e = "" ) , r = n . getElementsByTagName ( "head" ) [ 0 ] , void m ( e . split ( "," ) , function ( e ) { var i ; e = c . _addCacheSuffix ( e ) , t . files [ e ] || ( t . files [ e ] = ! 0 , i = t . create ( "link" , { rel : "stylesheet" , href : e } ) , b && n . documentMode && n . recalc && ( i . onload = function ( ) { n . recalc && n . recalc ( ) , i . onload = null } ) , r . appendChild ( i ) ) } ) ) } , addClass : function ( e , t ) { this . $$ ( e ) . addClass ( t ) } , removeClass : function ( e , t ) { this . toggleClass ( e , t , ! 1 ) } , hasClass : function ( e , t ) { return this . $$ ( e ) . hasClass ( t ) } , toggleClass : function ( e , t , r ) { this . $$ ( e ) . toggleClass ( t , r ) . each ( function ( ) { "" === this . className && n ( this ) . attr ( "class" , null ) } ) } , show : function ( e ) { this . $$ ( e ) . show ( ) } , hide : function ( e ) { this . $$ ( e ) . hide ( ) } , isHidden : function ( e ) { return "none" == this . $$ ( e ) . css ( "display" ) } , uniqueId : function ( e ) { return ( e ? e : "mce_" ) + this . counter ++ } , setHTML : function ( e , t ) { e = this . $$ ( e ) , b ? e . each ( function ( e , r ) { if ( r . canHaveHTML !== ! 1 ) { for ( ; r . firstChild ; ) r . removeChild ( r . firstChild ) ; try { r . innerHTML = "<br>" + t , r . removeChild ( r . firstChild ) } catch ( i ) { n ( "<div>" ) . html ( "<br>" + t ) . contents ( ) . slice ( 1 ) . appendTo
x = r ( e . valid _styles ) , w = r ( e . invalid _styles , "map" ) , T = r ( e . valid _classes , "map" ) , N = o ( "whitespace_elements" , "pre script noscript style textarea video audio iframe object" ) , _ = o ( "self_closing_elements" , "colgroup dd dt li option p td tfoot th thead tr" ) , S = o ( "short_ended_elements" , "area base basefont br col frame hr img input isindex link meta param embed source wbr track" ) , k = o ( "boolean_attributes" , "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls" ) , A = o ( "non_empty_elements" , "td th iframe video audio object script" , S ) , B = o ( "move_caret_before_on_enter_elements" , "table" , A ) , D = o ( "text_block_elements" , "h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure" ) , R = o ( "block_elements" , "hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption" , D ) , M = o ( "text_inline_elements" , "span strong b em i font strike u var cite dfn code mark q sup sub samp" ) , s ( ( e . special || "script noscript style textarea" ) . split ( " " ) , function ( e ) { P [ e ] = new RegExp ( "</" + e + "[^>]*>" , "gi" ) } ) , e . valid _elements ? h ( e . valid _elements ) : ( s ( E , function ( e , t ) { y [ t ] = { attributes : e . attributes , attributesOrder : e . attributesOrder } , b [ t ] = e . children } ) , "html5" != e . schema && s ( t ( "strong/b em/i" ) , function ( e ) { e = t ( e , "/" ) , y [ e [ 1 ] ] . outputName = e [ 0 ] } ) , y . img . attributesDefault = [ { name : "alt" , value : "" } ] , s ( t ( "ol ul sub sup blockquote span font a table tbody tr strong em b i" ) , function ( e ) { y [ e ] && ( y [ e ] . removeEmpty = ! 0 ) } ) , s ( t ( "p h1 h2 h3 h4 h5 h6 th td pre div address caption" ) , function ( e ) { y [ e ] . paddEmpty = ! 0 } ) , s ( t ( "span" ) , function ( e ) { y [ e ] . removeEmptyAttrs = ! 0 } ) ) , p ( e . custom _elements ) , m ( e . valid _children ) , f ( e . extended _valid _elements ) , m ( "+ol[ul|ol],+ul[ul|ol]" ) , e . invalid _elements && s ( c ( e . invalid _elements ) , function ( e ) { y [ e ] && delete y [ e ] } ) , g ( "span" ) || f ( "span[!data-mce-type|*]" ) , v . children = b , v . getValidStyles = function ( ) { return x } , v . getInvalidStyles = function ( ) { return w } , v . getValidClasses = function ( ) { return T } , v . getBoolAttrs = function ( ) { return k } , v . getBlockElements = function ( ) { return R } , v . getTextBlockElements = function ( ) { return D } , v . getTextInlineElements = function ( ) { return M } , v . getShortEndedElements = function ( ) { return S } , v . getSelfClosingElements = function ( ) { return _ } , v . getNonEmptyElements = function ( ) { return A } , v . getMoveCaretBeforeOnEnterElements = function ( ) { return B } , v . getWhiteSpaceElements = function ( ) { return N } , v . getSpecialElements = function ( ) { return P } , v . isValidChild = function ( e , t ) { var n = b [ e ] ; return ! ( ! n || ! n [ t ] ) } , v . isValid = function ( e , t ) { var n , r , i = g ( e ) ; if ( i ) { if ( ! t ) return ! 0 ; if ( i . attributes [ t ] ) return ! 0 ; if ( n = i . attributePatterns ) for ( r = n . length ; r -- ; ) if ( n [ r ] . pattern . test ( e ) ) return ! 0 } return ! 1 } , v . getElementRule = g , v . getCustomElements = function ( ) { return L } , v . addValidElements = f , v . setValidElements = h , v . addCustomElements = p , v . addValidChildren = m , v . elements = y } } ) , r ( D , [ B , C , m ] , function ( e , t , n ) { function r ( e , t , n ) { var r = 1 , i , o , a , s ; for ( s = e . getShortEndedElements ( ) , a = /<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g , a . lastIndex = i = n ; o = a . exec ( t ) ; ) { if ( i = a . lastIndex , "/" === o [ 1 ] ) r -- ; else if ( ! o [ 1 ] ) { if ( o [ 2 ] in s ) continue ; r ++ } if ( 0 === r ) break } return i } function i ( i , a ) { function s ( ) { } var l = this ; i = i || { } , l . schema = a = a || new e , i . fix _self _closing !== ! 1 && ( i . fix _self _closing = ! 0 ) , o ( "comment cdata text start end pi doctype" . split ( " " ) , function ( e ) { e && ( l [ e ] = i [ e ] || s ) } ) , l . parse = function ( e ) { function o ( e ) { var t , n ; for ( t = h . length ; t -- && h [ t ] . name !== e ; ) ; if ( t >= 0 ) { for ( n = h . length - 1 ; n >= t ; n -- ) e = h [ n ] , e . valid && l . end ( e . name ) ; h . length = t } } function s ( e , t , n , r , o ) { var a , s , l = /[\s\u0000-\u001F]+/g ; if ( t = t . toLowerCase ( ) , n = t in x ? t : z ( n || r || o || "" ) , E && ! y && 0 !== t . indexOf ( "data-" ) ) { if ( a = T [ t ] , ! a && R ) { for ( s = R . length ; s -- && ( a = R [ s ] , ! a . pattern . test ( t ) ) ; ) ; - 1 === s && ( a = null ) } if ( ! a ) return ; if ( a . validValues && ! ( n in a . validValues ) ) return } if ( V [ t ] && ! i . allow _script _urls ) { var c = n . replace ( l , "" ) ; try { c = decodeURIComponent ( c ) } catch ( u ) { c = unescape ( c ) } if ( U . test ( c ) ) return ; if ( ! i . allow _html _data _urls && $ . test ( c ) && ! /^data:image\//i . test ( c ) ) return } p . map [ t ] = n , p . push ( { name : t , value : n } ) } var l = this , c , u = 0 , d , f , h = [ ] , p , m , g ,
} function i ( e , t ) { return e . bottom < t . top ? ! 0 : e . top > t . bottom ? ! 1 : r ( t . top - e . bottom , e , t ) } function o ( e , t ) { return e . top > t . bottom ? ! 0 : e . bottom < t . top ? ! 1 : r ( t . bottom - e . top , e , t ) } function a ( e , t ) { return e . left < t . left } function s ( e , t ) { return e . right > t . right } function l ( e , t ) { return i ( e , t ) ? - 1 : o ( e , t ) ? 1 : a ( e , t ) ? - 1 : s ( e , t ) ? 1 : 0 } var c = Math . round ; return { clone : e , collapse : t , isEqual : n , isAbove : i , isBelow : o , isLeft : a , isRight : s , compare : l } } ) , r ( U , [ ] , function ( ) { function e ( e ) { return "string" == typeof e && e . charCodeAt ( 0 ) >= 768 && t . test ( e ) } var t = new RegExp ( "[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]" ) ; return { isExtendingChar : e } } ) , r ( $ , [ z , _ , w , T , W , V , U ] , function ( e , t , n , r , i , o , a ) { function s ( e ) { return e && /[\r\n\t ]/ . test ( e ) } function l ( e ) { var t = e . startContainer , n = e . startOffset , r ; return s ( e . toString ( ) ) && g ( t . parentNode ) && ( r = t . data , s ( r [ n - 1 ] ) || s ( r [ n + 1 ] ) ) ? ! 0 : ! 1 } function c ( e ) { function t ( e ) { var t = e . ownerDocument , n = t . createRange ( ) , r = t . createTextNode ( "\xa0" ) , i = e . parentNode , a ; return i . insertBefore ( r , e ) , n . setStart ( r , 0 ) , n . setEnd ( r , 1 ) , a = o . clone ( n . getBoundingClientRect ( ) ) , i . removeChild ( r ) , a } function n ( e ) { var n , r ; return r = e . getClientRects ( ) , n = r . length > 0 ? o . clone ( r [ 0 ] ) : o . clone ( e . getBoundingClientRect ( ) ) , y ( e ) && 0 === n . left ? t ( e ) : n } function r ( e , t ) { return e = o . collapse ( e , t ) , e . width = 1 , e . right = e . left + 1 , e } function i ( e ) { 0 !== e . height && ( c . length > 0 && o . isEqual ( e , c [ c . length - 1 ] ) || c . push ( e ) ) } function s ( e , t ) { var o = e . ownerDocument . createRange ( ) ; return t < e . data . length && a . isExtendingChar ( e . data [ t ] ) ? c : ( t > 0 && ( o . setStart ( e , t - 1 ) , o . setEnd ( e , t ) , l ( o ) || i ( r ( n ( o ) , ! 1 ) ) ) , void ( t < e . data . length && ( o . setStart ( e , t ) , o . setEnd ( e , t + 1 ) , l ( o ) || i ( r ( n ( o ) , ! 0 ) ) ) ) ) } var c = [ ] , u , f ; if ( v ( e . container ( ) ) ) return s ( e . container ( ) , e . offset ( ) ) , c ; if ( d ( e . container ( ) ) ) if ( e . isAtEnd ( ) ) f = C ( e . container ( ) , e . offset ( ) ) , v ( f ) && s ( f , f . data . length ) , m ( f ) && ! y ( f ) && i ( r ( n ( f ) , ! 1 ) ) ; else { if ( f = C ( e . container ( ) , e . offset ( ) ) , v ( f ) && s ( f , 0 ) , m ( f ) && e . isAtEnd ( ) ) return i ( r ( n ( f ) , ! 1 ) ) , c ; u = C ( e . container ( ) , e . offset ( ) - 1 ) , m ( u ) && ! y ( u ) && ( h ( u ) || h
var r = q . getRoot ( ) ; return n === r ? ! 1 : ( n = q . getParent ( n , function ( n ) { return n . parentNode === r || ! ! w ( n , e , t , ! 0 ) } ) , w ( n , e , t ) ) } var i ; return n ? r ( n ) : ( n = j . getNode ( ) , r ( n ) ? te : ( i = j . getStart ( ) , i != n && r ( i ) ? te : ee ) ) } function N ( e , t ) { var n , r = [ ] , i = { } ; return n = j . getStart ( ) , q . getParent ( n , function ( n ) { var o , a ; for ( o = 0 ; o < e . length ; o ++ ) a = e [ o ] , ! i [ a ] && w ( n , a , t ) && ( i [ a ] = ! 0 , r . push ( a ) ) } , q . getRoot ( ) ) , r } function _ ( e ) { var t = p ( e ) , n , r , i , o , a ; if ( t ) for ( n = j . getStart ( ) , r = u ( n ) , o = t . length - 1 ; o >= 0 ; o -- ) { if ( a = t [ o ] . selector , ! a || t [ o ] . defaultBlock ) return te ; for ( i = r . length - 1 ; i >= 0 ; i -- ) if ( q . is ( r [ i ] , a ) ) return te } return ee } function S ( e , t , n ) { var r ; return ne || ( ne = { } , r = { } , a . on ( "NodeChange" , function ( e ) { var t = u ( e . element ) , n = { } ; t = i . grep ( t , function ( e ) { return 1 == e . nodeType && ! e . getAttribute ( "data-mce-bogus" ) } ) , le ( ne , function ( e , i ) { le ( t , function ( o ) { return w ( o , i , { } , e . similar ) ? ( r [ i ] || ( le ( e , function ( e ) { e ( ! 0 , { node : o , format : i , parents : t } ) } ) , r [ i ] = e ) , n [ i ] = e , ! 1 ) : void 0 } ) } ) , le ( r , function ( i , o ) { n [ o ] || ( delete r [ o ] , le ( i , function ( n ) { n ( ! 1 , { node : e . element , format : o , parents : t } ) } ) ) } ) } ) ) , le ( e . split ( "," ) , function ( e ) { ne [ e ] || ( ne [ e ] = [ ] , ne [ e ] . similar = n ) , ne [ e ] . push ( t ) } ) , this } function k ( e ) { return o . getCssText ( a , e ) } function T ( e , t ) { return R ( e , t . inline ) ? te : R ( e , t . block ) ? te : t . selector ? 1 == e . nodeType && q . is ( e , t . selector ) : void 0 } function R ( e , t ) { return e = e || "" , t = t || "" , e = "" + ( e . nodeName || e ) , t = "" + ( t . nodeName || t ) , e . toLowerCase ( ) == t . toLowerCase ( ) } function A ( e , t ) { return B ( q . getStyle ( e , t ) , t ) } function B ( e , t ) { return ( "color" == t || "backgroundColor" == t ) && ( e = q . toHex ( e ) ) , "fontWeight" == t && 700 == e && ( e = "bold" ) , "fontFamily" == t && ( e = e . replace ( /[\'\"]/g , "" ) . replace ( /,\s+/g , "," ) ) , "" + e } function D ( e , t ) { return "string" != typeof e ? e = e ( t ) : t && ( e = e . replace ( /%(\w+)/g , function ( e , n ) { return t [ n ] || e } ) ) , e } function M ( e ) { return e && 3 === e . nodeType && /^([\t \r\n]+|)$/ . test ( e . nodeValue ) } function L ( e , t , n ) { var r = q . create ( t , n ) ; return e . parentNode . insertBefore ( r , e ) , r . appendChild ( e ) , r } function P ( t , n , r ) { function i ( e ) { function t ( e ) { return "BR" == e . nodeName && e . getAttribute ( "data-mce-bogus" ) && ! e . nextSibling } var r , i , o , a , s ; if ( r = i = e ? g : y , a = e ? "previousSibling" : "nextSibling" , s = q . getRoot ( ) , 3 == r . nodeType && ! M ( r ) && ( e ? v > 0 : b < r . nodeValue . length ) ) return r ; for ( ; ; ) { if ( ! n [ 0 ] . block _expand && K ( i ) ) return i ; for ( o = i [ a ] ; o ; o = o [ a ] ) if ( ! se ( o ) && ! M ( o ) && ! t ( o ) ) return i ; if ( i == s || i . parentNode == s ) { r = i ; break } i = i . parentNode } return r } function o ( e , t ) { for ( t === re && ( t = 3 === e . nodeType ? e . length : e . childNodes . length ) ; e && e . hasChildNodes ( ) ; ) e = e . childNodes [ t ] , e && ( t = 3 === e . nodeType ? e . length : e . childNodes . length ) ; return { node : e , offset : t } } function l ( e ) { for ( var t = e ; t ; ) { if ( 1 === t . nodeType && ie ( t ) ) return "false" === ie ( t ) ? t : e ; t = t . parentNode } return e } function c ( t , n , i ) { function o ( e , t ) { var n , o , a = e . nodeValue ; return "undefined" == typeof t && ( t = i ? a . length : 0 ) , i ? ( n = a . lastIndexOf ( " " , t ) , o = a . lastIndexOf ( "\xa0" , t ) , n = n > o ? n : o , - 1 === n || r || n ++ ) : ( n = a . indexOf ( " " , t ) , o = a . indexOf ( "\xa0" , t ) , n = - 1 !== n && ( - 1 === o || o > n ) ? n : o ) , n } var s , l , c , u ; if ( 3 === t . nodeType ) { if ( c = o ( t , n ) , - 1 !== c ) return { container : t , offset : c } ; u = t } for ( s = new e ( t , q . getParent ( t , K ) || a . getBody ( ) ) ; l = s [ i ? "prev" : "next" ] ( ) ; ) if ( 3 === l . nodeType ) { if ( u = l , c = o ( l ) , - 1 !== c ) return { container : l , offset : c } } else if ( K ( l ) ) break ; return u ? ( n = i ? 0 : u . length , { container : u , offset : n } ) : void 0 } function d ( e , r ) { var i , o , a , s ; for ( 3 == e . nodeType && 0 === e . nodeValue . length && e [ r ] && ( e = e [ r ] ) , i = u ( e ) , o = 0 ; o < i . length ; o ++ ) for ( a = 0 ; a < n . length ; a ++ ) if ( s = n [ a ] , ! ( "collapsed" in s && s . collapsed !== t . collapsed ) && q . is ( i [ o ] , s . selector ) ) return i [ o ] ; return e } function f ( e , t ) { var r , i = q . getRoot ( ) ; if ( n [ 0 ] . wrapper || ( r = q . getParent ( e , n [ 0 ] . block , i ) ) , r || ( r = q . getParent ( 3 == e . nodeType ? e . parentNode : e , function ( e ) { return e != i && s ( e ) } ) ) , r && n [ 0 ] . wrapper && ( r = u ( r , "ul,ol" ) . reverse ( ) [ 0 ] || r ) , ! r ) for ( r = e ; r [ t ] && ! K ( r [ t ] ) && ( r = r [ t ] , ! R ( r , "br" ) ) ; ) ; return r || e } var h , p , m , g = t . startContainer , v = t . startOffset , y = t . endContainer , b = t . endOffset ; if ( 1 == g . nodeType && g . hasChildNodes ( ) && ( h = g . childNodes . length - 1 , g = g . childNodes [ v > h ? h : v ] , 3 == g . nodeType && ( v = 0 ) ) , 1 == y . nodeType && y . hasChildNodes ( ) && ( h = y . childNodes . length - 1 , y = y . childNodes [ b > h ? h : b - 1 ] , 3 == y . nodeType && ( b = y . nodeValue . length ) ) , g = l ( g ) , y = l ( y ) , ( se ( g . parentNode ) || se ( g ) ) && ( g = se ( g ) ? g : g . parentNode , g = g . nextSibling || g , 3 == g . nodeType && ( v = 0 ) ) , ( se ( y . parentNode ) || se ( y ) ) && ( y = se ( y ) ? y : y . parentNode , y = y . pr
o = a . settings = o || { } , s = o . base _uri , /^([\w\-]+):([^\/]{2})/i . test ( e ) || /^\s*#/ . test ( e ) ) return void ( a . source = e ) ; var c = 0 === e . indexOf ( "//" ) ; 0 !== e . indexOf ( "/" ) || c || ( e = ( s ? s . protocol || "http" : "http" ) + "://mce_host" + e ) , /^[\w\-]*:?\/\// . test ( e ) || ( l = o . base _uri ? o . base _uri . path : new t ( location . href ) . directory , "" === o . base _uri . protocol ? e = "//mce_host" + a . toAbsPath ( l , e ) : ( e = /([^#?]*)([#?]?.*)/ . exec ( e ) , e = ( s && s . protocol || "http" ) + "://mce_host" + a . toAbsPath ( l , e [ 1 ] ) + e [ 2 ] ) ) , e = e . replace ( /@@/g , "(mce_at)" ) , e = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ . exec ( e ) , n ( i , function ( t , n ) { var r = e [ n ] ; r && ( r = r . replace ( /\(mce_at\)/g , "@@" ) ) , a [ t ] = r } ) , s && ( a . protocol || ( a . protocol = s . protocol ) , a . userInfo || ( a . userInfo = s . userInfo ) , a . port || "mce_host" !== a . host || ( a . port = s . port ) , a . host && "mce_host" !== a . host || ( a . host = s . host ) , a . source = "" ) , c && ( a . protocol = "" ) } var n = e . each , r = e . trim , i = "source protocol authority userInfo user password host port relative path directory file query anchor" . split ( " " ) , o = { ftp : 21 , http : 80 , https : 443 , mailto : 25 } ; return t . prototype = { setPath : function ( e ) { var t = this ; e = /^(.*?)\/?(\w+)?$/ . exec ( e ) , t . path = e [ 0 ] , t . directory = e [ 1 ] , t . file = e [ 2 ] , t . source = "" , t . getURI ( ) } , toRelative : function ( e ) { var n = this , r ; if ( "./" === e ) return e ; if ( e = new t ( e , { base _uri : n } ) , "mce_host" != e . host && n . host != e . host && e . host || n . port != e . port || n . protocol != e . protocol && "" !== e . protocol ) return e . getURI ( ) ; var i = n . getURI ( ) , o = e . getURI ( ) ; return i == o || "/" == i . charAt ( i . length - 1 ) && i . substr ( 0 , i . length - 1 ) == o ? i : ( r = n . toRelPath ( n . path , e . path ) , e . query && ( r += "?" + e . query ) , e . anchor && ( r += "#" + e . anchor ) , r ) } , toAbsolute : function ( e , n ) { return e = new t ( e , { base _uri : this } ) , e . getURI ( n && this . isSameOrigin ( e ) ) } , isSameOrigin : function ( e ) { if ( this . host == e . host && this . protocol == e . protocol ) { if ( this . port == e . port ) return ! 0 ; var t = o [ this . protocol ] ; if ( t && ( this . port || t ) == ( e . port || t ) ) return ! 0 } return ! 1 } , toRelPath : function ( e , t ) { var n , r = 0 , i = "" , o , a ; if ( e = e . substring ( 0 , e . lastIndexOf ( "/" ) ) , e = e . split ( "/" ) , n = t . split ( "/" ) , e . length >= n . length ) for ( o = 0 , a = e . length ; a > o ; o ++ ) if ( o >= n . length || e [ o ] != n [ o ] ) { r = o + 1 ; break } if ( e . length < n . length ) for ( o = 0 , a = n . length ; a > o ; o ++ ) if ( o >= e . length || e [ o ] != n [ o ] ) { r = o + 1 ; break } if ( 1 === r ) return t ; for ( o = 0 , a = e . length - ( r - 1 ) ; a > o ; o ++ ) i += "../" ; for ( o = r - 1 , a = n . length ; a > o ; o ++ ) i += o != r - 1 ? "/" + n [ o ] : n [ o ] ; return i } , toAbsPath : function ( e , t ) { var r , i = 0 , o = [ ] , a , s ; for ( a = /\/$/ . test ( t ) ? "/" : "" , e = e . split ( "/" ) , t = t . split ( "/" ) , n ( e , function ( e ) { e && o . push ( e ) } ) , e = o , r = t . length - 1 , o = [ ] ; r >= 0 ; r -- ) 0 !== t [ r ] . length && "." !== t [ r ] && ( ".." !== t [ r ] ? i > 0 ? i -- : o . push ( t [ r ] ) : i ++ ) ; return r = e . length - i , s = 0 >= r ? o . reverse ( ) . join ( "/" ) : e . slice ( 0 , r ) . join ( "/" ) + "/" + o . reverse ( ) . join ( "/" ) , 0 !== s . indexOf ( "/" ) && ( s = "/" + s ) , a && s . lastIndexOf ( "/" ) !== s . length - 1 && ( s += a ) , s } , getURI : function ( e ) { var t , n = this ; return ( ! n . source || e ) && ( t = "" , e || ( t += n . protocol ? n . protocol + "://" : "//" , n . userInfo && ( t += n . userInfo + "@" ) , n . host && ( t += n . host ) , n . port && ( t += ":" + n . port ) ) , n . path && ( t += n . path ) , n . query && ( t += "?" + n . query ) , n . anchor && ( t += "#" + n . anchor ) , n . source = t ) , n . source } } , t . parseDataUri = function ( e ) { var t , n ; return e = decodeURIComponent ( e ) . split ( "," ) , n = /data:([^;]+)/ . exec ( e [ 0 ] ) , n && ( t = n [ 1 ] ) , { type : t , data : e [ 1 ] } } , t } ) , r ( ne , [ m ] , function ( e ) { function t ( ) { } var n = e . each , r = e . extend , i , o ; return t . extend = i = function ( e ) { function t ( ) { var e , t , n , r = this ; if ( ! o && ( r . init && r . init . apply ( r , arguments ) , t = r . Mixins ) ) for ( e = t . length ; e -- ; ) n = t [ e ] , n . init && n . init . apply ( r , arguments ) } function a ( ) { return this } function s ( e , t ) { return function ( ) { var n = this , r = n . _super , i ; return n . _super = c [ e ] , i = t . apply ( n , arguments ) , n . _super = r , i } } var l = this , c = l . prototype , u , d , f ; o = ! 0 , u = new l , o = ! 1 , e . Mixins && ( n ( e . Mixins , function ( t ) { t = t ; for ( var n in t ) "init" !== n && ( e [ n ] = t [ n ] ) } ) , c . Mixins && ( e . Mixins = c . Mixins . concat ( e . Mixins ) ) ) , e . Methods && n ( e . Methods . split ( "," ) , function ( t ) { e [ t ] = a } ) , e . Properties && n ( e . Properties . split ( "," ) , function ( t ) { var n = "_" + t ; e [ t ] = function ( e ) { var t = this , r ; return e !== r ? ( t [ n ] = e , t ) : t [ n ] } } ) , e . Statics && n ( e . Statics , function ( e , n ) { t [ n ] = e } ) , e . Defaults && c . Defaults && ( e . Defaults = r ( { } , c . Defaults , e . Defaults ) ) ; for ( d in e ) f = e [ d ] , "function" == typeof f && c [ d ] ? u [ d ] = s ( d , f ) : u [ d ] = f ; return t . prototyp
} } ) , r ( ye , [ g , ve ] , function ( e , t ) { return { init : function ( ) { var e = this ; e . on ( "repaint" , e . renderScroll ) } , renderScroll : function ( ) { function n ( ) { function t ( t , a , s , l , c , u ) { var d , f , h , p , m , g , v , y , b ; if ( f = i . getEl ( "scroll" + t ) ) { if ( y = a . toLowerCase ( ) , b = s . toLowerCase ( ) , e ( i . getEl ( "absend" ) ) . css ( y , i . layoutRect ( ) [ l ] - 1 ) , ! c ) return void e ( f ) . css ( "display" , "none" ) ; e ( f ) . css ( "display" , "block" ) , d = i . getEl ( "body" ) , h = i . getEl ( "scroll" + t + "t" ) , p = d [ "client" + s ] - 2 * o , p -= n && r ? f [ "client" + u ] : 0 , m = d [ "scroll" + s ] , g = p / m , v = { } , v [ y ] = d [ "offset" + a ] + o , v [ b ] = p , e ( f ) . css ( v ) , v = { } , v [ y ] = d [ "scroll" + a ] * g , v [ b ] = p * g , e ( h ) . css ( v ) } } var n , r , a ; a = i . getEl ( "body" ) , n = a . scrollWidth > a . clientWidth , r = a . scrollHeight > a . clientHeight , t ( "h" , "Left" , "Width" , "contentW" , n , "Height" ) , t ( "v" , "Top" , "Height" , "contentH" , r , "Width" ) } function r ( ) { function n ( n , r , a , s , l ) { var c , u = i . _id + "-scroll" + n , d = i . classPrefix ; e ( i . getEl ( ) ) . append ( '<div id="' + u + '" class="' + d + "scrollbar " + d + "scrollbar-" + n + '"><div id="' + u + 't" class="' + d + 'scrollbar-thumb"></div></div>' ) , i . draghelper = new t ( u + "t" , { start : function ( ) { c = i . getEl ( "body" ) [ "scroll" + r ] , e ( "#" + u ) . addClass ( d + "active" ) } , drag : function ( e ) { var t , u , d , f , h = i . layoutRect ( ) ; u = h . contentW > h . innerW , d = h . contentH > h . innerH , f = i . getEl ( "body" ) [ "client" + a ] - 2 * o , f -= u && d ? i . getEl ( "scroll" + n ) [ "client" + l ] : 0 , t = f / i . getEl ( "body" ) [ "scroll" + a ] , i . getEl ( "body" ) [ "scroll" + r ] = c + e [ "delta" + s ] / t } , stop : function ( ) { e ( "#" + u ) . removeClass ( d + "active" ) } } ) } i . classes . add ( "scroll" ) , n ( "v" , "Top" , "Height" , "Y" , "Width" ) , n ( "h" , "Left" , "Width" , "X" , "Height" ) } var i = this , o = 2 ; i . settings . autoScroll && ( i . _hasScroll || ( i . _hasScroll = ! 0 , r ( ) , i . on ( "wheel" , function ( e ) { var t = i . getEl ( "body" ) ; t . scrollLeft += 10 * ( e . deltaX || 0 ) , t . scrollTop += 10 * e . deltaY , n ( ) } ) , e ( i . getEl ( "body" ) ) . on ( "scroll" , n ) ) , n ( ) ) } } } ) , r ( be , [ ge , ye ] , function ( e , t ) { return e . extend ( { Defaults : { layout : "fit" , containerCls : "panel" } , Mixins : [ t ] , renderHtml : function ( ) { var e = this , t = e . _layout , n = e . settings . html ; return e . preRender ( ) , t . preRender ( e ) , "undefined" == typeof n ? n = '<div id="' + e . _id + '-body" class="' + e . bodyClasses + '">' + t . renderHtml ( e ) + "</div>" : ( "function" == typeof n && ( n = n . call ( e ) ) , e . _hasBody = ! 1 ) , '<div id="' + e . _id + '" class="' + e . classes + '" hidefocus="1" tabindex="-1" role="group">' + ( e . _preBodyHtml || "" ) + n + "</div>" } } ) } ) , r ( Ce , [ ce ] , function ( e ) { function t ( t , n , r ) { var i , o , a , s , l , c , u , d , f , h ; return f = e . getViewPort ( ) , o = e . getPos ( n ) , a = o . x , s = o . y , t . state . get ( "fixed" ) && "static" == e . getRuntimeStyle ( document . body , "position" ) && ( a -= f . x , s -= f . y ) , i = t . getEl ( ) , h = e . getSize ( i ) , l = h . width , c = h . height , h = e . getSize ( n ) , u = h . width , d = h . height , r = ( r || "" ) . split ( "" ) , "b" === r [ 0 ] && ( s += d ) , "r" === r [ 1 ] && ( a += u ) , "c" === r [ 0 ] && ( s += Math . round ( d / 2 ) ) , "c" === r [ 1 ] && ( a += Math . round ( u / 2 ) ) , "b" === r [ 3 ] && ( s -= c ) , "r" === r [ 4 ] && ( a -= l ) , "c" === r [ 3 ] && ( s -= Math . round ( c / 2 ) ) , "c" === r [ 4 ] && ( a -= Math . round ( l / 2 ) ) , { x : a , y : s , w : l , h : c } } return { testMoveRel : function ( n , r ) { for ( var i = e . getViewPort ( ) , o = 0 ; o < r . length ; o ++ ) { var a = t ( this , n , r [ o ] ) ; if ( this . state . get ( "fixed" ) ) { if ( a . x > 0 && a . x + a . w < i . w && a . y > 0 && a . y + a . h < i . h ) return r [ o ] } else if ( a . x > i . x && a . x + a . w < i . w + i . x && a . y > i . y && a . y + a . h < i . h + i . y ) return r [ o ] } return r [ 0 ] } , moveRel : function ( e , n ) { "string" != typeof n && ( n = this . testMoveRel ( e , n ) ) ; var r = t ( this , e , n ) ; return this . moveTo ( r . x , r . y ) } , moveBy : function ( e , t ) { var n = this , r = n . layoutRect ( ) ; return n . moveTo ( r . x + e , r . y + t ) , n } , moveTo : function ( t , n ) { function r ( e , t , n ) { return 0 > e ? 0 : e + n > t ? ( e = t - n , 0 > e ? 0 : e ) : e } var i = this ; if ( i . settings . constrainToViewport ) { var o = e . getViewPort ( window ) , a = i . layoutRect ( ) ; t = r ( t , o . w + o . x , a . w ) , n = r ( n , o . h + o . y , a . h ) } return i . state . get ( "rendered" ) ? i . layoutRect ( { x : t , y : n } ) . repaint ( ) : ( i . settings . x = t , i . settings . y = n ) , i . fire ( "move" , { x : t , y : n } ) , i } } } ) , r ( xe , [ ce ] , function ( e ) { return { resizeToContent : function ( ) { this . _layoutRect . autoResize = ! 0 , this . _lastRect = null , this . reflow ( ) } , resizeTo : function ( t , n ) { if ( 1 >= t || 1 >= n ) { var r = e . getWindowSize ( ) ; t = 1 >= t ? t * r . w : t , n = 1 >= n ? n * r . h : n } return this . _layoutRect . autoResize = ! 1 , this . layoutRect ( { minW : t , minH : n , w : t , h : n } ) . reflow ( ) } , resizeBy : function ( e , t ) { var n = this , r = n . layoutRect ( ) ; return n . resizeTo ( r . w + e , r . h + t ) } } } ) , r ( we , [ be , Ce , xe , ce , g , u ] , function ( e , t , n , r , i , o ) { function a ( e , t ) { for ( ; e ; ) { if ( e == t ) return ! 0 ; e = e . parent ( ) } } function s ( e ) { for ( var t = v . length ; t -- ; ) { var n = v [ t ] , r = n . getParentCtrl ( e . target ) ; if ( n . settings . autohide ) { if ( r && ( a ( r , n
e += ( n > 0 ? "," : "" ) + t + ":empty" } ) , u . contentStyles . push ( e + "{padding-right: 1px !important}" ) ) } function P ( ) { f ( ) < 9 && ( ee . addNodeFilter ( "noscript" , function ( e ) { for ( var t = e . length , n , r ; t -- ; ) n = e [ t ] , r = n . firstChild , r && n . attr ( "data-mce-innertext" , r . value ) } ) , te . addNodeFilter ( "noscript" , function ( e ) { for ( var t = e . length , n , r , a ; t -- ; ) n = e [ t ] , r = e [ t ] . firstChild , r ? r . value = o . decode ( r . value ) : ( a = n . attributes . map [ "data-mce-innertext" ] , a && ( n . attr ( "data-mce-innertext" , null ) , r = new i ( "#text" , 3 ) , r . value = a , r . raw = ! 0 , n . append ( r ) ) ) } ) ) } function H ( ) { function e ( e , t ) { var n = i . createTextRange ( ) ; try { n . moveToPoint ( e , t ) } catch ( r ) { n = null } return n } function t ( t ) { var r ; t . button ? ( r = e ( t . x , t . y ) , r && ( r . compareEndPoints ( "StartToStart" , a ) > 0 ? r . setEndPoint ( "StartToStart" , a ) : r . setEndPoint ( "EndToEnd" , a ) , r . select ( ) ) ) : n ( ) } function n ( ) { var e = r . selection . createRange ( ) ; a && ! e . item && 0 === e . compareEndPoints ( "StartToEnd" , e ) && a . select ( ) , J . unbind ( r , "mouseup" , n ) , J . unbind ( r , "mousemove" , t ) , a = o = 0 } var r = J . doc , i = r . body , o , a , s ; r . documentElement . unselectable = ! 0 , J . bind ( r , "mousedown contextmenu" , function ( i ) { if ( "HTML" === i . target . nodeName ) { if ( o && n ( ) , s = r . documentElement , s . scrollHeight > s . clientHeight ) return ; o = 1 , a = e ( i . x , i . y ) , a && ( J . bind ( r , "mouseup" , n ) , J . bind ( r , "mousemove" , t ) , J . getRoot ( ) . focus ( ) , a . select ( ) ) } } ) } function O ( ) { u . on ( "keyup focusin mouseup" , function ( t ) { 65 == t . keyCode && e . metaKeyPressed ( t ) || Q . normalize ( ) } , ! 0 ) } function I ( ) { u . contentStyles . push ( "img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}" ) } function F ( ) { u . inline || u . on ( "keydown" , function ( ) { document . activeElement == document . body && u . getWin ( ) . focus ( ) } ) } function z ( ) { u . inline || ( u . contentStyles . push ( "body {min-height: 150px}" ) , u . on ( "click" , function ( e ) { var t ; if ( "HTML" == e . target . nodeName ) { if ( a . ie > 11 ) return void u . getBody ( ) . focus ( ) ; t = u . selection . getRng ( ) , u . getBody ( ) . focus ( ) , u . selection . setRng ( t ) , u . selection . normalize ( ) , u . nodeChanged ( ) } } ) ) } function W ( ) { a . mac && u . on ( "keydown" , function ( t ) { ! e . metaKeyPressed ( t ) || t . shiftKey || 37 != t . keyCode && 39 != t . keyCode || ( t . preventDefault ( ) , u . selection . getSel ( ) . modify ( "move" , 37 == t . keyCode ? "backward" : "forward" , "lineboundary" ) ) } ) } function V ( ) { d ( "AutoUrlDetect" , ! 1 ) } function U ( ) { u . on ( "click" , function ( e ) { var t = e . target ; do if ( "A" === t . tagName ) return void e . preventDefault ( ) ; while ( t = t . parentNode ) } ) , u . contentStyles . push ( ".mce-content-body {-webkit-touch-callout: none}" ) } function $ ( ) { u . on ( "init" , function ( ) { u . dom . bind ( u . getBody ( ) , "submit" , function ( e ) { e . preventDefault ( ) } ) } ) } function q ( ) { ee . addNodeFilter ( "br" , function ( e ) { for ( var t = e . length ; t -- ; ) "Apple-interchange-newline" == e [ t ] . attr ( "class" ) && e [ t ] . remove ( ) } ) } function j ( ) { u . on ( "dragstart" , function ( e ) { p ( e ) } ) , u . on ( "drop" , function ( e ) { if ( ! h ( e ) ) { var n = m ( e ) ; if ( n && n . id != u . id ) { e . preventDefault ( ) ; var r = t . getCaretRangeFromPoint ( e . x , e . y , u . getDoc ( ) ) ; Q . setRng ( r ) , g ( n . html ) } } } ) } var Y = s . each , X = u . $ , K = e . BACKSPACE , G = e . DELETE , J = u . dom , Q = u . selection , Z = u . settings , ee = u . parser , te = u . serializer , ne = a . gecko , re = a . ie , ie = a . webkit , oe = "data:text/mce-internal," , ae = re ? "Text" : "URL" ; R ( ) , y ( ) , O ( ) , ie && ( v ( ) , C ( ) , E ( ) , D ( ) , $ ( ) , S ( ) , q ( ) , a . iOS ? ( F ( ) , z ( ) , U ( ) ) : b ( ) ) , re && a . ie < 11 && ( x ( ) , _ ( ) , k ( ) , T ( ) , M ( ) , L ( ) , P ( ) , H ( ) ) , a . ie >= 11 && ( z ( ) , S ( ) ) , a . ie && ( b ( ) , V ( ) , j ( ) ) , ne && ( x ( ) , w ( ) , N ( ) , A ( ) , B ( ) , I ( ) , W ( ) , S ( ) ) } } ) , r ( Me , [ oe , w , m ] , function ( e , t , n ) { function r ( e , t ) { return "selectionchange" == t ? e . getDoc ( ) : ! e . inline && /^mouse|click|contextmenu|drop|dragover|dragend/ . test ( t ) ? e . getDoc ( ) . documentElement : e . settings . event _root ? ( e . eventRoot || ( e . eventRoot = o . select ( e . settings . event _root ) [ 0 ] ) , e . eventRoot ) : e . getBody ( ) } function i ( e , t ) { function n ( e ) { return ! e . hidden && ! e . readonly } var i = r ( e , t ) , s ; if ( e . delegates || ( e . delegates = { } ) , ! e . delegates [ t ] ) if ( e . settings . event _root ) { if ( a || ( a = { } , e . editorManager . on ( "removeEditor" , function ( ) { var t ; if ( ! e . editorManager . activeEditor && a ) { for ( t in a ) e . dom . unbind ( r ( e , t ) ) ; a = null } } ) ) , a [ t ] ) return ; s = function ( r ) { for ( var i = r . target , a = e . editorManager . editors , s = a . length ; s -- ; ) { var l = a [ s ] . getBody ( ) ; ( l === i || o . isChildOf ( i , l ) ) && n ( a [ s ] ) && a [ s ] . fire ( t , r ) } } , a [ t ] = s , o . bind ( i , t , s ) } else s = function ( r ) { n ( e ) && e . fire ( t , r ) } , o . bind ( i , t , s ) , e . delegates [ t ] = s } var o = t . DOM , a , s = { bindPendingEventDelegates : function ( ) { var e = this ; n . each ( e . _pendingNativeEvents , function ( t ) { i ( e , t ) } ) } , t
r . inline ? n . inline = ! 0 : ( n . orgVisibility = n . getElement ( ) . style . visibility , n . getElement ( ) . style . visibility = "hidden" ) ; var a = n . getElement ( ) . form || B . getParent ( i , "form" ) ; a && ( n . formElement = a , r . hidden _input && ! /TEXTAREA|INPUT/i . test ( n . getElement ( ) . nodeName ) && ( B . insertAfter ( B . create ( "input" , { type : "hidden" , name : i } ) , i ) , n . hasHiddenInput = ! 0 ) , n . formEventDelegate = function ( e ) { n . fire ( e . type , e ) } , B . bind ( a , "submit reset" , n . formEventDelegate ) , n . on ( "reset" , function ( ) { n . setContent ( n . startContent , { format : "raw" } ) } ) , ! r . submit _patch || a . submit . nodeType || a . submit . length || a . _mceOldSubmit || ( a . _mceOldSubmit = a . submit , a . submit = function ( ) { return n . editorManager . triggerSave ( ) , n . setDirty ( ! 1 ) , a . _mceOldSubmit ( a ) } ) ) , n . windowManager = new v ( n ) , n . notificationManager = new y ( n ) , "xml" == r . encoding && n . on ( "GetContent" , function ( e ) { e . save && ( e . content = B . encode ( e . content ) ) } ) , r . add _form _submit _trigger && n . on ( "submit" , function ( ) { n . initialized && n . save ( ) } ) , r . add _unload _trigger && ( n . _beforeUnload = function ( ) { ! n . initialized || n . destroyed || n . isHidden ( ) || n . save ( { format : "raw" , no _events : ! 0 , set _dirty : ! 1 } ) } , n . editorManager . on ( "BeforeUnload" , n . _beforeUnload ) ) , t ( ) } } , init : function ( ) { function e ( n ) { var r = M . get ( n ) , i , o ; if ( i = M . urls [ n ] || t . documentBaseUrl . replace ( /\/$/ , "" ) , n = I ( n ) , r && - 1 === O ( m , n ) ) { if ( P ( M . dependencies ( n ) , function ( t ) { e ( t ) } ) , t . plugins [ n ] ) return ; o = new r ( t , i , t . $ ) , t . plugins [ n ] = o , o . init && ( o . init ( t , i ) , m . push ( n ) ) } } var t = this , n = t . settings , r = t . getElement ( ) , i , o , a , s , l , c , u , d , f , h , p , m = [ ] ; if ( this . editorManager . i18n . setCode ( n . language ) , t . rtl = n . rtl _ui || this . editorManager . i18n . rtl , t . editorManager . add ( t ) , n . aria _label = n . aria _label || B . getAttrib ( r , "aria-label" , t . getLang ( "aria.rich_text_area" ) ) , n . theme && ( "function" != typeof n . theme ? ( n . theme = n . theme . replace ( /-/ , "" ) , c = D . get ( n . theme ) , t . theme = new c ( t , D . urls [ n . theme ] ) , t . theme . init && t . theme . init ( t , D . urls [ n . theme ] || t . documentBaseUrl . replace ( /\/$/ , "" ) , t . $ ) ) : t . theme = n . theme ) , P ( n . plugins . replace ( /\-/g , "" ) . split ( /[ ,]/ ) , e ) , n . render _ui && t . theme && ( t . orgDisplay = r . style . display , "function" != typeof n . theme ? ( i = n . width || r . style . width || r . offsetWidth , o = n . height || r . style . height || r . offsetHeight , a = n . min _height || 100 , h = /^[0-9\.]+(|px)$/i , h . test ( "" + i ) && ( i = Math . max ( parseInt ( i , 10 ) , 100 ) ) , h . test ( "" + o ) && ( o = Math . max ( parseInt ( o , 10 ) , a ) ) , l = t . theme . renderUI ( { targetNode : r , width : i , height : o , deltaWidth : n . delta _width , deltaHeight : n . delta _height } ) , n . content _editable || ( o = ( l . iframeHeight || o ) + ( "number" == typeof o ? l . deltaHeight || 0 : "" ) , a > o && ( o = a ) ) ) : ( l = n . theme ( t , r ) , l . editorContainer . nodeType && ( l . editorContainer = l . editorContainer . id = l . editorContainer . id || t . id + "_parent" ) , l . iframeContainer . nodeType && ( l . iframeContainer = l . iframeContainer . id = l . iframeContainer . id || t . id + "_iframecontainer" ) , o = l . iframeHeight || r . offsetHeight ) , t . editorContainer = l . editorContainer ) , n . content _css && P ( H ( n . content _css ) , function ( e ) { t . contentCSS . push ( t . documentBaseURI . toAbsolute ( e ) ) } ) , n . content _style && t . contentStyles . push ( n . content _style ) , n . content _editable ) return r = s = l = null , t . initContentBody ( ) ; for ( t . iframeHTML = n . doctype + "<html><head>" , n . document _base _url != t . documentBaseUrl && ( t . iframeHTML += '<base href="' + t . documentBaseURI . getURI ( ) + '" />' ) , ! w . caretAfter && n . ie7 _compat && ( t . iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />' ) , t . iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' , p = 0 ; p < t . contentCSS . length ; p ++ ) { var g = t . contentCSS [ p ] ; t . iframeHTML += '<link type="text/css" rel="stylesheet" href="' + E . _addCacheSuffix ( g ) + '" />' , t . loadedCSS [ g ] = ! 0 } d = n . body _id || "tinymce" , - 1 != d . indexOf ( "=" ) && ( d = t . getParam ( "body_id" , "" , "hash" ) , d = d [ t . id ] || d ) , f = n . body _class || "" , - 1 != f . indexOf ( "=" ) && ( f = t . getParam ( "body_class" , "" , "hash" ) , f = f [ t . id ] || "" ) , n . content _security _policy && ( t . iframeHTML += '<meta http-equiv="Content-Security-Policy" content="' + n . content _security _policy + '" />' ) , t . iframeHTML += '</head><body id="' + d + '" class="mce-content-body ' + f + '" data-id="' + t . id + '"><br></body></html>' ; var v = 'javascript:(function(){document.open();document.domain="' + document . domain + '";var ed = window.parent.tinymce.get("' + t . id + '");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()' ; document . domain != location . hostname && w . ie && w . ie < 12 &&
} , checked : function ( e ) { return arguments . length ? ( this . state . set ( "checked" , e ) , this ) : this . state . get ( "checked" ) } , value : function ( e ) { return arguments . length ? this . checked ( e ) : this . checked ( ) } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . classPrefix ; return '<div id="' + t + '" class="' + e . classes + '" unselectable="on" aria-labelledby="' + t + '-al" tabindex="-1"><i class="' + n + "ico " + n + 'i-checkbox"></i><span id="' + t + '-al" class="' + n + 'label">' + e . encode ( e . state . get ( "text" ) ) + "</span></div>" } , bindStates : function ( ) { function e ( e ) { t . classes . toggle ( "checked" , e ) , t . aria ( "checked" , e ) } var t = this ; return t . state . on ( "change:text" , function ( e ) { t . getEl ( "al" ) . firstChild . data = t . translate ( e . value ) } ) , t . state . on ( "change:checked change:value" , function ( n ) { t . fire ( "change" ) , e ( n . value ) } ) , t . state . on ( "change:icon" , function ( e ) { var n = e . value , r = t . classPrefix ; if ( "undefined" == typeof n ) return t . settings . icon ; t . settings . icon = n , n = n ? r + "ico " + r + "i-" + t . settings . icon : "" ; var i = t . getEl ( ) . firstChild , o = i . getElementsByTagName ( "i" ) [ 0 ] ; n ? ( o && o == i . firstChild || ( o = document . createElement ( "i" ) , i . insertBefore ( o , i . firstChild ) ) , o . className = n ) : o && i . removeChild ( o ) } ) , t . state . get ( "checked" ) && e ( ! 0 ) , t . _super ( ) } } ) } ) , r ( dt , [ ke , pe , ce , g ] , function ( e , t , n , r ) { return e . extend ( { init : function ( e ) { var t = this ; t . _super ( e ) , e = t . settings , t . classes . add ( "combobox" ) , t . subinput = ! 0 , t . ariaTarget = "inp" , e . menu = e . menu || e . values , e . menu && ( e . icon = "caret" ) , t . on ( "click" , function ( n ) { var i = n . target , o = t . getEl ( ) ; if ( r . contains ( o , i ) || i == o ) for ( ; i && i != o ; ) i . id && - 1 != i . id . indexOf ( "-open" ) && ( t . fire ( "action" ) , e . menu && ( t . showMenu ( ) , n . aria && t . menu . items ( ) [ 0 ] . focus ( ) ) ) , i = i . parentNode } ) , t . on ( "keydown" , function ( e ) { "INPUT" == e . target . nodeName && 13 == e . keyCode && t . parents ( ) . reverse ( ) . each ( function ( n ) { var r = t . state . get ( "value" ) , i = t . getEl ( "inp" ) . value ; return e . preventDefault ( ) , t . state . set ( "value" , i ) , r != i && t . fire ( "change" ) , n . hasEventListeners ( "submit" ) && n . toJSON ? ( n . fire ( "submit" , { data : n . toJSON ( ) } ) , ! 1 ) : void 0 } ) } ) , t . on ( "keyup" , function ( e ) { "INPUT" == e . target . nodeName && t . state . set ( "value" , e . target . value ) } ) } , showMenu : function ( ) { var e = this , n = e . settings , r ; 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 . getContainerElm ( ) ) , e . fire ( "createmenu" ) , e . menu . reflow ( ) , e . menu . on ( "cancel" , function ( t ) { t . control === e . menu && e . focus ( ) } ) , e . menu . on ( "show hide" , function ( t ) { t . control . items ( ) . each ( function ( t ) { t . active ( t . value ( ) == e . value ( ) ) } ) } ) . fire ( "show" ) , e . menu . on ( "select" , function ( t ) { e . value ( t . control . value ( ) ) } ) , e . on ( "focusin" , function ( t ) { "INPUT" == t . target . tagName . toUpperCase ( ) && e . menu . hide ( ) } ) , e . aria ( "expanded" , ! 0 ) ) , e . menu . show ( ) , e . menu . layoutRect ( { w : e . layoutRect ( ) . w } ) , e . menu . moveRel ( e . getEl ( ) , e . isRtl ( ) ? [ "br-tr" , "tr-br" ] : [ "bl-tl" , "tl-bl" ] ) } , focus : function ( ) { this . getEl ( "inp" ) . focus ( ) } , repaint : function ( ) { var e = this , t = e . getEl ( ) , i = e . getEl ( "open" ) , o = e . layoutRect ( ) , a , s ; a = i ? o . w - n . getSize ( i ) . width - 10 : o . w - 10 ; var l = document ; return l . all && ( ! l . documentMode || l . documentMode <= 8 ) && ( s = e . layoutRect ( ) . h - 2 + "px" ) , r ( t . firstChild ) . css ( { width : a , lineHeight : s } ) , e . _super ( ) , e } , postRender : function ( ) { var e = this ; return r ( this . getEl ( "inp" ) ) . on ( "change" , function ( t ) { e . state . set ( "value" , t . target . value ) , e . fire ( "change" , t ) } ) , e . _super ( ) } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . settings , r = e . classPrefix , i = e . state . get ( "value" ) || "" , o , a , s = "" , l = "" ; return "spellcheck" in n && ( l += ' spellcheck="' + n . spellcheck + '"' ) , n . maxLength && ( l += ' maxlength="' + n . maxLength + '"' ) , n . size && ( l += ' size="' + n . size + '"' ) , n . subtype && ( l += ' type="' + n . subtype + '"' ) , e . disabled ( ) && ( l += ' disabled="disabled"' ) , o = n . icon , o && "caret" != o && ( o = r + "ico " + r + "i-" + n . icon ) , a = e . state . get ( "text" ) , ( o || a ) && ( s = '<div id="' + t + '-open" class="' + r + "btn " + r + 'open" tabIndex="-1" role="button"><button id="' + t + '-action" type="button" hidefocus="1" tabindex="-1">' + ( "caret" != o ? '<i class="' + o + '"></i>' : '<i class="' + r + 'caret"></i>' ) + ( a ? ( o ? " " : "" ) + a : "" ) + "</button></div>" , e . classes . add ( "has-open" ) ) , '<div id="' + t + '" class="' + e . classes + '"><input id="' + t + '-inp" class="' + r + 'textbox" value="' + e . encode ( i , ! 1 ) + '" hidefocus="1"' + l + ' placeholder="' + e . encode ( n . placeholder ) + '" />' + s + "</div>" } , value : function ( e ) { return arguments . length ? ( this . state
t . state . set ( "text" , "-" ) ) , e . selectable && ( t . aria ( "role" , "menuitemcheckbox" ) , t . classes . add ( "menu-item-checkbox" ) , e . icon = "selected" ) , e . preview || e . selectable || t . classes . add ( "menu-item-normal" ) , t . on ( "mousedown" , function ( e ) { e . preventDefault ( ) } ) , e . menu && ! e . ariaHideMenu && t . aria ( "haspopup" , ! 0 ) } , hasMenus : function ( ) { return ! ! this . settings . menu } , showMenu : function ( ) { var e = this , n = e . settings , r , i = e . parent ( ) ; if ( i . items ( ) . each ( function ( t ) { t !== e && t . hideMenu ( ) } ) , n . menu ) { r = e . menu , r ? r . show ( ) : ( r = n . menu , r . length ? r = { type : "menu" , items : r } : r . type = r . type || "menu" , i . settings . itemDefaults && ( r . itemDefaults = i . settings . itemDefaults ) , r = e . menu = t . create ( r ) . parent ( e ) . renderTo ( ) , r . reflow ( ) , r . on ( "cancel" , function ( t ) { t . stopPropagation ( ) , e . focus ( ) , r . hide ( ) } ) , r . on ( "show hide" , function ( e ) { e . control . items ( ) . each ( function ( e ) { e . active ( e . settings . selected ) } ) } ) . fire ( "show" ) , r . on ( "hide" , function ( t ) { t . control === r && e . classes . remove ( "selected" ) } ) , r . submenu = ! 0 ) , r . _parentMenu = i , r . classes . add ( "menu-sub" ) ; var o = r . testMoveRel ( e . getEl ( ) , e . isRtl ( ) ? [ "tl-tr" , "bl-br" , "tr-tl" , "br-bl" ] : [ "tr-tl" , "br-bl" , "tl-tr" , "bl-br" ] ) ; r . moveRel ( e . getEl ( ) , o ) , r . rel = o , o = "menu-sub-" + o , r . classes . remove ( r . _lastRel ) . add ( o ) , r . _lastRel = o , e . classes . add ( "selected" ) , e . aria ( "expanded" , ! 0 ) } } , hideMenu : function ( ) { var e = this ; return e . menu && ( e . menu . items ( ) . each ( function ( e ) { e . hideMenu && e . hideMenu ( ) } ) , e . menu . hide ( ) , e . aria ( "expanded" , ! 1 ) ) , e } , renderHtml : function ( ) { function e ( e ) { var t , r , i = { } ; for ( i = n . mac ? { alt : "⌥" , ctrl : "⌘" , shift : "⇧" , meta : "⌘" } : { meta : "Ctrl" } , e = e . split ( "+" ) , t = 0 ; t < e . length ; t ++ ) r = i [ e [ t ] . toLowerCase ( ) ] , r && ( e [ t ] = r ) ; return e . join ( "+" ) } var t = this , r = t . _id , i = t . settings , o = t . classPrefix , a = t . encode ( t . state . get ( "text" ) ) , s = t . settings . icon , l = "" , c = i . shortcut ; return s && t . parent ( ) . classes . add ( "menu-has-icons" ) , i . image && ( l = " style=\"background-image: url('" + i . image + "')\"" ) , c && ( c = e ( c ) ) , s = o + "ico " + o + "i-" + ( t . settings . icon || "none" ) , '<div id="' + r + '" class="' + t . classes + '" tabindex="-1">' + ( "-" !== a ? '<i class="' + s + '"' + l + "></i>\xa0" : "" ) + ( "-" !== a ? '<span id="' + r + '-text" class="' + o + 'text">' + a + "</span>" : "" ) + ( c ? '<div id="' + r + '-shortcut" class="' + o + 'menu-shortcut">' + c + "</div>" : "" ) + ( i . menu ? '<div class="' + o + 'caret"></div>' : "" ) + "</div>" } , postRender : function ( ) { var e = this , t = e . settings , n = t . textStyle ; if ( "function" == typeof n && ( n = n . call ( this ) ) , n ) { var r = e . getEl ( "text" ) ; r && r . setAttribute ( "style" , n ) } return e . on ( "mouseenter click" , function ( n ) { n . control === e && ( t . menu || "click" !== n . type ? ( e . showMenu ( ) , n . aria && e . menu . focus ( ! 0 ) ) : ( e . fire ( "select" ) , e . parent ( ) . hideAll ( ) ) ) } ) , e . _super ( ) , e } , active : function ( e ) { return "undefined" != typeof e && this . aria ( "checked" , e ) , this . _super ( e ) } , remove : function ( ) { this . _super ( ) , this . menu && this . menu . remove ( ) } } ) } ) , r ( Lt , [ we , Mt , m ] , function ( e , t , n ) { return e . extend ( { Defaults : { defaultType : "menuitem" , border : 1 , layout : "stack" , role : "application" , bodyRole : "menu" , ariaRoot : ! 0 } , init : function ( e ) { var t = this ; if ( e . autohide = ! 0 , e . constrainToViewport = ! 0 , e . itemDefaults ) for ( var r = e . items , i = r . length ; i -- ; ) r [ i ] = n . extend ( { } , e . itemDefaults , r [ i ] ) ; t . _super ( e ) , t . classes . add ( "menu" ) } , repaint : function ( ) { return this . classes . toggle ( "menu-align" , ! 0 ) , this . _super ( ) , this . getEl ( ) . style . height = "" , this . getEl ( "body" ) . style . height = "" , this } , cancel : function ( ) { var e = this ; e . hideAll ( ) , e . fire ( "select" ) } , hideAll : function ( ) { var e = this ; return this . find ( "menuitem" ) . exec ( "hideMenu" ) , e . _super ( ) } , preRender : function ( ) { var e = this ; return e . items ( ) . each ( function ( t ) { var n = t . settings ; return n . icon || n . image || n . selectable ? ( e . _hasIcons = ! 0 , ! 1 ) : void 0 } ) , e . _super ( ) } } ) } ) , r ( Pt , [ Dt , Lt ] , function ( e , t ) { 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 ) return o = o || r [ a ] . text , n . state . set ( "value" , r [ a ] . value ) , ! 0 ; if ( r [ a ] . menu && t ( r [ a ] . menu ) ) return ! 0 } } var n = this , r , i , o , a ; n . _super ( e ) , e = n . settings , n . _values = r = e . values , r && ( "undefined" != typeof e . value && t ( r ) , ! i && r . length > 0 && ( o = r [ 0 ] . text , n . state . set ( "value" , r [ 0 ] . value ) ) , n . state . set ( "menu" , r ) ) , n . state . set ( "text" , e . text || o ) , n . classes . add ( "listbox" ) , n . on ( "select" , function ( t ) { var r = t . control ; a && ( t . lastControl = a ) , e . multiple ? r . active ( ! r . active ( ) ) : n . value ( t . control . value ( ) ) , a = r } ) } , bindStates : fun